使用Python快速实现简单的人脸检测

栏目: Python · 发布时间: 6年前

内容简介:最近有个比较要好的朋友问我能不能从监控视频里识别到从监控跟前经过的指定的人。因为他们单位的监控室经常要花大量的人力跟时间去找某个人在哪个位置出现过的证据。听起来像是一份比较有挑战性的任务,就答应他试试看。先理一下思路,首先要做的工作是从视频中将人脸给框出来,然后拿到这个人脸跟给定的人脸进行对比,如果两张脸相似度很高,那就可以标记此人可能在视频里出现过,然后根据标记点再去人工核实一遍就OK了。那就先从把人脸给框出来入手吧,查了一下资料,貌似Python有个现成的库opencv来完成这个事情,整个的实现代码也就

最近有个比较要好的朋友问我能不能从监控视频里识别到从监控跟前经过的指定的人。因为他们单位的监控室经常要花大量的人力跟时间去找某个人在哪个位置出现过的证据。听起来像是一份比较有挑战性的任务,就答应他试试看。

先理一下思路,首先要做的工作是从视频中将人脸给框出来,然后拿到这个人脸跟给定的人脸进行对比,如果两张脸相似度很高,那就可以标记此人可能在视频里出现过,然后根据标记点再去人工核实一遍就OK了。

那就先从把人脸给框出来入手吧,查了一下资料,貌似 Python 有个现成的库opencv来完成这个事情,整个的实现代码也就10几行,so easy!

照着网上的示例,自己撸了一个测试代码出来,试了一下,效果还是可以的,全部实现代码如下。

import cv2
imagepath="input.jpg"
image = cv2.imread(imagepath)
t1= datetime.now()#测试起始时间
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(
  gray,
  scaleFactor = 1.15,
  minNeighbors = 5,
  minSize = (5,5),
)
for(x,y,w,h) in faces:
    cv2.rectangle(image,(x,y),(x+w,y+w),(0,255,0),2)
cv2.imwrite('output.jpg', image)

原始图片

使用Python快速实现简单的人脸检测

检测结果

使用Python快速实现简单的人脸检测


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Making Things See

Making Things See

Greg Borenstein / Make / 2012-2-3 / USD 39.99

Welcome to the Vision Revolution. With Microsoft's Kinect leading the way, you can now use 3D computer vision technology to build digital 3D models of people and objects that you can manipulate with g......一起来看看 《Making Things See》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具