赞
踩
目录
这篇文章,让你用短短的16行代码基于opencv检测一张图片上的人脸,很有意思,快快学起来吧!
先将代码直接粘在下面:
- import cv2 as cv
-
-
- def face_detect_demo(img):
- img = cv.resize(img, dsize=(800, 800))
- gary = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
- face_detect = cv.CascadeClassifier("D:/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml")
- face = face_detect.detectMultiScale(gary, 1.004, 28, 0, (40, 40), (50, 50))
- for x, y, w, h in face:
- cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 225), thickness=4)
- cv.imshow("result", img)
- # img.save("result.jpg") # 保存图片
- cv.imwrite(r"final_result.jpg", img)
-
- img = cv.imread("photo.jpg")
- face_detect_demo(img) # 检测单个图片
-
- while True:
- if ord("q") == cv.waitKey(1):
- break
- cv.destroyAllWindows()
原图片:
识别之后的图片(得自己调参):
我感觉这是一个很有意思的demo,虽然没有什么技术含量,没有数据获取,数据处理,数据训练,模型验证…但是,他能让我们看到cv的强大,如果计算机视觉没有opencv,很多简单的功能将变得复杂,当opencv+openmv,我们能做很多我们感兴趣的事。
回到这个人脸检测里面去,为什么叫人脸检测不叫人脸识别呢?因为这个demo只能够知道图片里有几个人,至于他们到底分别是谁就没有办法知道了。
如果加上神经网络又会怎么样呢?比如现在我有A这个人的大量图片,用神经网络进行训练,让计算机能够认出他。那么在一张合照里面,计算机能够很快认出哪个是A,并把他框选出来。
那么到底有什么用呢?畅想未来:
现在有很多重要犯罪嫌疑人逍遥法外,如果能将他的人脸数据训练出来的模型传到全国各地的摄像头中,无论在哪,只要摄像头检测到他的人脸就把地址信息发回警局,这样是不是就能即使抓捕他。
儿童拐卖同样是一个社会热点,现在也有很多网站在帮助找被拐卖的儿童。父母主要是通过网站上上传的照片去猜测这到底是不是他的孩子。但是很多照片都是孩子被拐卖两三年甚至五年十年之后的照片了,就连是亲生父母都很难辨认。如果能用深度学习,强化学习,根据小时候的照片训练出来的模型去匹配网站上的照片,将匹配结果高的反馈给父母,这样父母和子女是不是更容易重逢呢?当然这只是我的猜想。
人脸作为我们的生物密码给我们带来了不少便利,比如说手机一键解锁,支付宝一键支付,各种门禁刷脸进入。“刷脸”逐渐渗透到我们生活,我们的人脸数据不断传入互联网中,互联网的数据库越来越丰富,对应背后的产业链也越来越发达,面部识别并不是一项全新的技术,但人工智能和机器学习不断使面部识别变得更强大。
文件链接:
https://pan.baidu.com/s/1FV3NWT3Vayq3eKq2QsB3mg?pwd=tsvd
提取码:tsvd
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。