请大神指点指点代码感谢,无法检测两个人脸信息。检测一人还出错
-
#一个或者多个人脸识别,并与图片样本库对比,有没有被测者的信息存储,输出最匹配人的样本库编号 import sensor, time, image # Reset sensor sensor.reset() sensor.set_contrast(3) sensor.set_gainceiling(16) sensor.set_framesize(sensor.HQVGA) sensor.set_pixformat(sensor.GRAYSCALE) face_cascade = image.HaarCascade("frontalface", stages=25) print(face_cascade) NUM_SUBJECTS = 3 #图像库中不同人数,一共6人 NUM_SUBJECTS_IMGS = 10 #每人有10张样本图片 img = None pmin = 999999 num=0 def min(pmin, a, s): global num if a<pmin: pmin=a num=s return pmin clock = time.clock() while (True): clock.tick() img = sensor.snapshot() objects = img.find_features(face_cascade, threshold=0.75, scale=1.35) #在找到的目标上画框,标记出来 for r in objects: img.draw_rectangle(r) d0 = img.find_lbp(r) for s in range(1, NUM_SUBJECTS+1): dist = 0 for i in range(2, NUM_SUBJECTS_IMGS+1): img = image.Image("picture/s%d/%d.pgm"%(s, i)) d1 = img.find_lbp((0, 0, img.width(), img.height())) #d1为第s文件夹中的第i张图片的lbp特征 dist += image.match_descriptor(d0, d1)#计算d0 d1即样本图像与被检测人脸的特征差异度。 pmin = min(pmin, dist/NUM_SUBJECTS_IMGS, s)#特征差异度越小,被检测人脸与此样本更相似更匹配。 print("差异度为:%d"%pmin) print("匹配人编号为:%d"%num) # num为当前最匹配的人的编号。 print(clock.fps())
-
没有搞懂你的问题?
请描述详细的问题、步骤、现象、代码。
-
问题:如何识别同时出现在openmv摄像头下的两个人脸
步骤:先进行A、B两人的图片样本库s1与s2的采集,以便后来的对比。当A和B两个人脸同时出现时,运行下面的代码:结果分别输出与A最匹配的样本库编号和与B最匹配的样本库编号。import sensor, time, image # Reset sensor sensor.reset() sensor.set_contrast(3) sensor.set_gainceiling(16) sensor.set_framesize(sensor.HQVGA) sensor.set_pixformat(sensor.GRAYSCALE) face_cascade = image.HaarCascade("frontalface", stages=25) print(face_cascade) NUM_SUBJECTS = 2 #图像库中不同人数,一共2人 NUM_SUBJECTS_IMGS = 10 #每人有10张样本图片 img = None pmin = 999999 num=0 def min(pmin, a, s): global num if a<pmin: pmin=a num=s return pmin clock = time.clock() while (True): clock.tick() img = sensor.snapshot() objects = img.find_features(face_cascade, threshold=0.75, scale=1.35) #在找到的目标上画框,标记出来 for r in objects: img.draw_rectangle(r) d0 = img.find_lbp(r) for s in range(1, NUM_SUBJECTS+1): dist = 0 for i in range(2, NUM_SUBJECTS_IMGS+1): img = image.Image("picture/s%d/%d.pgm"%(s, i)) d1 = img.find_lbp((0, 0, img.width(), img.height())) #d1为第s文件夹中的第i张图片的lbp特征 dist += image.match_descriptor(d0, d1)#计算d0 d1即样本图像与被检测人脸的特征差异度。 print("Average dist for subject %d: %d"%(s, dist/NUM_SUBJECTS_IMGS)) pmin = min(pmin, dist/NUM_SUBJECTS_IMGS, s)#特征差异度越小,被检测人脸与此样本更相似更匹配。 print("差异度为:%d"%pmin) print("匹配人编号为:%d"%num) # num为当前最匹配的人的编号。