人脸识别opencv+python,使用opencv进行人脸识别的三种方法
人脸检测是OpenCV非常好的一个功能,是人脸识别的基础。人脸识别实际上是一个可以在给定的图像或视频中识别人脸的程序。
人脸识别模块特征
1.就是用一系列的分类图像来“训练”程序,并根据这些图像进行识别。这是OpenCV及其人脸识别模块进行人脸识别的过程。
2.每个识别都有一个置信度得分,在实际应用中可以通过设置阈值来进行筛选。
人脸识别两种方式
1.自己获取图像或免费从人脸数据库获取可用的人脸图像。
2.网上有很多人脸数据库:为了识别这些样本的人脸,需要识别包含人脸的样本图像上的人脸。这是一个学习的过程,但不如自己提供的图片令人满意。
python中OpenCV的人脸检测功能操作实例
进口货
importcv2
fromPILimportImage
importnumpyasnp
defgetImageAndLabels(路径):
facesSamples=[]
ids=[]
imagePaths=[os.path.join(path,f)forfinos.listdir(path)]
#检测面孔
#加载特征数据
人脸检测器=cv2。级联分类器(
d :/Python/opencv/sources/data/haarcascades/haarcascade _ frontal face _ default . XML )
#参数:scaleFactor:图片缩放多少,minNeighbors:至少检测多少次,minSizemaxSize:当前检测到的最小面积。
#scaleFactor=1.01,minNeighbors=3,maxSize=(33,33),minSize=(28,28)
#遍历列表中的图片
forimagePathinimagePaths:
#打开当前图片
PIL_img=Image.open(imagePath)。转换(“L”)
#将图片转换成数组
img_numpy=np.array(PIL_img, uint8 )
faces=face _ detector . detect multi scale(img _ numpy)
#获取每张图片的id
id=int(OS . path . split(image path)[1]。拆分(.)[0])
#获取面部区域
对于x,y,w,hinfaces:
# slice获取图像数组和id
faces samples . append(img _ numpy[y :y h,x:x w])
附加(id)
returnfacesSamples,id
if__name__==__main__:
#图片路径
路径=。/data/jm/
#获取图像数组和id标签数组
faces,ids=getImageAndLabels(path)
#获取循环对象
recognizer=cv2 . face . lbphfacecognizer _ create()
recognizer.train(faces,np.array(ids))
#保存文件
recognizer . write( trainer/trainer . yml )
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。