几年前我写了这段代码。我重新审视它只是发现在某些语句的使用中有些事情已经发生了变化。该代码通过将卡车、SUV 和轿车的 99 幅图像转换为面向直方图的梯度来检查它们。然后它使用 sklearn 创建一个 SVM
clf.svm.SVC(kernal='linear', probability=True)
clf.fit(feature,targets)
其中特征是 HOG 图像,目标是车辆类型,即 TRK、SED、SUV
一切似乎都运行到了这一点。
然后我将另一个图像(不在训练集中)提交给 SVM 以测试我使用这些语句的模型
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])
Predfile='XXXX.prd.png'
grayscale = rgb2gray(img)
fdPred = hog(grayscale, orientations=8, pixels_per_cell=(6, 6),cells_per_block=(3, 3), visualize=False)
prob=clf.predict_proba(fdPred)
这一点我得到以下错误
File "C:\Users\thiir\.conda\envs\py37\lib\site-packages\sklearn\svm\_base.py", line 670, in _predict_proba
X = self._validate_for_predict(X)
File "C:\Users\thiir\.conda\envs\py37\lib\site-packages\sklearn\svm\_base.py", line 475, in _validate_for_predict
order="C", accept_large_sparse=False)
File "C:\Users\thiir\.conda\envs\py37\lib\site-packages\sklearn\utils\validation.py", line 63, in inner_f
return f(*args, **kwargs)
File "C:\Users\thiir\.conda\envs\py37\lib\site-packages\sklearn\utils\validation.py", line 698, in check_array
"if it contains a single sample.".format(array))
ValueError: Expected 2D array, got 1D array instead:
array=[0. 0. 0. ... 0. 0. 0.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
有什么见解吗?