我想预测并提取“眼部/眼部区域”
我在眼睛(正图像)和其他(负图像)数据集上训练了我的SVM 图像具有(眼睛)且其他图像具有(0)时预测良好(1)
现在,我添加(haarcascde_eye.xml)文件以检测眼睛并获得预期结果,我想使用我自己的Trained SVM.xml文件,但该文件不断显示此错误
如果我删除此行代码
left join example.table2 as tb2 on tb1.field1 = Substring(tb2.field2,16,1)
代码的其余部分工作正常。我搜索与该问题相关的每个链接,对于以正确的方式指导我将不胜感激。
res = svm.predict(sample)
print (res)
import cv2
import glob
import numpy as np
samples = []
labels = []
i=0
# Get positive samples
for filename in glob.glob("C:\\Users\\ATech\\AppData\\Local\\Programs\\Python\\Python37-32\\interface\\images\\iphone_day_light_short\\eyes\\*.png"):
img = cv2.imread(filename, 1)
#img = cv2.resize(img, (240, 160))
hog = cv2.HOGDescriptor()
hist = hog.compute(img)
samples.append(hist)
labels.append(1)
i+=1
if i > 50:
break
print(hist)
# Get negative samples
for file in glob.glob("C:\\Users\\ATech\\AppData\\Local\\Programs\\Python\\Python37-32\\interface\\images\\iphone_day_light_short\\ng_images\\*.png"):
img = cv2.imread(
file, 1)
img = cv2.resize(img, (240, 160))
hog = cv2.HOGDescriptor()
hist = hog.compute(img)
samples.append(hist)
labels.append(0)
print(hist)
print('done****')
# Convert objects to Numpy Objects
samples = np.float32(samples)
labels = np.array(labels)
# Shuffle Samples
rand = np.random.RandomState(321)
shuffle = rand.permutation(len(samples))
samples = samples[shuffle]
labels = labels[shuffle]
# Create SVM classifier
svm = cv2.ml.SVM_create()
svm.setType(cv2.ml.SVM_C_SVC)
svm.setKernel(cv2.ml.SVM_LINEAR) # cv2.ml.SVM_LINEAR
# svm.setDegree(0.0)
svm.setGamma(5.383)
# svm.setCoef0(0.0)
svm.setC(2.67)
# svm.setNu(0.0)
# svm.setP(0.0)
# svm.setClassWeights(None)
# Train
svm.train(samples, cv2.ml.ROW_SAMPLE, labels)
svm.save('svmdata.xml')