python实时检测81人脸部的关键点
文章目录: 1,81要点2,81讨论重点的使用
此库也基于dlib实现,而face_recognition也是基于dlib实现
dlib地址: https://github.com/davisking/dlib
密钥检查: http://dlib.net/face _ landmark _ detection.py.html
一、81个要点介绍首先,仔细看看这个矮小的美女吧。 脸部81个点的分布:
0-67是dlib现有的68张脸的关键点;
68-80是职业猴子新增加的13个前额区的关键。
根据程序猴子的说法,他从Patrick Huber的eos项目(轻量级的3DMM )中,fork出现了分支,利用Surrey的脸部模型找到了自己需要的这13个追加点。
然后,在整个ibug大数据库中训练模型,将81点替换为本来的68点。 但是,训练方法和dlib一样。
(81个关键点也是基于dlib实现的)
二、使用81个关键点importdlibimportnumpyasnpimportcv2cap=cv2.video capture (0) # 设置保存的视频格式fourcc=cv2.video writer _ fourcc (((xourcc ) ) (XX ) ) ) fourcc :指定视频编解码器的4字节码# 输出视频参数设置输出视频名称视频格式视频帧保存视频分辨率out=cv2.video writer (' output.avi ',fourcc,20.0,) ) 640, 480(#要加载的81个密钥的面部检测模型predictor _ path=' shape _ predictor _ 81 _ face _ landmarks.dat ' # 要导入到dlib库detector=dlib.geector的predictor=dlib.shape _ predictor (predictor _ path ) while ) cap.isopened ) frame=cap.read ) #对1 ) dets=detector(frame,0 ) for k,dinenumerate ) dets ) :shape=predictor ) frame,d ) lad ) p.y ) forpishape.parts ((fornuminrange ) shape.num _ parts (: cv2.circle ) frame,) ) nshape.parts ) 帧) )视频out.write (帧) if cv2.waitKey(1)1)0xff==ord ) ' q ' )将每一帧保存到cap.release(out.release )
注意:
保存的视频可能无法打开。 可能是格式分辨率的问题。 您可以在cap.set ()中设置分辨率
到下面参照1的github地址获取81个关键点的模型
参考:
1、https://github.com/code niko/shape _ predictor _ 81 _ face _ landmarks
2、https://blog.csdn.net/QQ _ 25436597/article/details/79621833
码字不易,且看且珍惜!
支付宝(Alipay )收款代码微信收款代码如果你热衷技术,想寻找志同道合的伙伴,欢迎加入我们!
微信交流QQ技术交流群