小白也能理解的MTCNN(下)

大白话讲MTCNN

环境

环境博主用的是Keras2.2.4+Tensorflow-gpu1.11.0+python3.6,如果有小伙伴还不懂怎么配置gpu环境的话可以看博主第一篇博客噢。
在命令行进入这个环境后就

pip install mtcnn

这样就可以调用这个集成包了。用你自己的脸来检测检测吧,那么还需要cv2来调用你的摄像头。在命令行进入环境后安装这个包。

pip install opencv-python

实战

非常简单首先导入包。来用摄像头捕捉你的大头,实例化mtcnn。
.read()方法就是读取摄像头捕捉的图片。draw呢就是图片了。.detect_faces(draw)方法对图片进行检测。如果检测到人脸,那么face就不是空列表,如果没检测到人脸,face就是个空列表。所以这里进行一个if判断。
那么如果有人脸,这个方法返回的face有什么东西呢?

[{'box': [57, 71, 79, 97],
 'confidence': 0.9995273351669312, 
 'keypoints': {'left_eye': (73, 110), 
 				'right_eye': (106, 104), 
 				'nose': (89, 133), 
 				'mouth_left': (82, 147), 
 				'mouth_right': (114, 141)}}]

box就是人脸框,第一个第二个代表坐标,第三个第四个代表两条邻边的长度。confidence就是置信度,有多大把握认定这个结果。keypoints呢就是上篇博客讲到的5个特征值,看英文就明白意思了,对应的元组是坐标。

from mtcnn import MTCNN
import cv2

video_capture = cv2.VideoCapture(0)
detector = MTCNN()

#不断获取你的大头

while True:
    ret, draw = video_capture.read()
    print(draw)
    face = detector.detect_faces(draw)
    if face:
        face = face[0]
        print(face)
        box = face["box"]
        I = cv2.rectangle(draw, (box[0], box[1]),
                          (box[0] + box[2], box[1] + box[3]),
                          (255, 0, 0), 2)

        cv2.imshow('Video', draw)
    else:
        cv2.imshow('Video', draw)
    if cv2.waitKey(20) & 0xFF == ord('q'):
        break

video_capture.release()
cv2.destroyAllWindows()

.rectangle方法就是画图,用上面一些框的参数进行描绘框。最后imshow出来。
很简单的一个调包程序,你是否学会了呢?
这个就不贴上图了,小伙伴运行一下就知道了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值