1. 磐创AI首页
  2. Medium

编写自拍和人脸检测应用程序

人脸识别是人工智能(AI)和机器学习(ML)最早的实际应用之一。由于FB几年前开始使用人脸识别技术,通过机器学习可以自动识别照片中的人(和他们的名字),面部识别技术已经广为人知。近年来,它也被应用到监控系统中,引起了人们的广泛关注。

我认为,我们中的许多人可能想通过开发自己的应用程序来了解更多关于这项技术的知识,而不仅仅是被别人的面部识别应用程序识别。首先,人们可以尝试使用谷歌的可教机器,它提供了一些实践经验,教你如何训练机器识别不同的人。这是我的YouTube(YOU,2021),向您展示如何做到这一点(图1)。

它很容易使用,但你不能更改应用程序。这篇文章介绍了一个非常简单的编码示例,让你可以用电脑自拍(拍照)并检测照片中的人脸。

几年前,编写机器学习应用程序是相对困难的。以人脸检测应用程序为例,它需要编写一个训练应用程序来训练机器区分人脸和照片中的所有其他实体。这类似于可教机器生成的源代码,您可以意识到它有多复杂。

然而,今天我们有很多经过预先训练的ML库来完成所有这些任务,包括人脸检测、微笑检测等,而且许多专家分享他们的程序代码并制作视频来教我们如何使用这些库,我们自己做ML变得容易得多。

在介绍代码之前,让我先向您展示一下结果。在第一部分中,APP对电脑进行编程,让其拍摄面对相机的场景(自拍)。图2显示了我的示例。我故意拿着我的手机,里面有我的照片,以测试人脸检测应用程序是否可以检测到两个人脸。

我使用以下基于Haar Cascade分类器的OpenCV人脸检测库:

!WGET-NO-CHECK-CERTIFICATE\https://raw.githubusercontent.com/computationalcore/introduction-to-opencv/master/assets/haarcascade_frontalface_default.xml\-O haarcasade_front talface_default.xmlhttps://raw.githubusercontent.com/computationalcore/introduction-to-opencv/master/assets/haarcascade_frontalface_default.xml

这个预先训练的机器学习程序可以识别照片中的两个面孔,并用蓝色方框显示它们。图3显示了结果。还有一些图书馆可以用来检测眼睛、嘴巴和微笑,你可以试试。

如果脸部没有完全露出或侧面怎么办?这是我的第二个测试。图4显示了我拍摄的第二张自拍,手机遮住了我的脸的一部分,手机里显示的照片是一个侧面。背景也比较暗淡。

啊哦!这次检测器只能检测到手机的侧面,但无法识别手机后面的人脸(图5)。是因为照明还是被手机屏蔽了?您可以自己测试并找到答案。

当然,我在这里介绍的只是人脸检测技术最基本的应用。它只检测面孔,但不能辨别出这个人是谁。它离面部识别技术还很远。

关于编码内容,您可以遵循以下两个参考。第一个是CoLab中的完整代码,您可以直接在computer.(https://colab.research.google.com/github/dortmans/ml_notebooks/blob/master/face_detection.ipynb#scrollTo=N77mENRpCDV上运行。https://colab.research.google.com/github/dortmans/ml_notebooks/blob/master/face_detection.ipynb#scrollTo

它说,这些代码是基于Rosebrock(2018年)的“开放式简历和深度学习计划”博客。

我还使用了Cascade分类器程序,它大大简化了人脸检测的编码。请参考https://colab.research.google.com/github/computationalcore/introduction-to-opencv/blob/master/notebooks/4-Cascade_classification.ipynb#scrollTo=rOG12Rey7g9C,,它也是COLAB平台上的一个程序。他们使用基于Haar特征的级联分类器,这是一种识别人脸、微笑和眼睛的预培训程序。https://colab.research.google.com/github/computationalcore/introduction-to-opencv/blob/master/notebooks/

但表现并不尽如人意。有一些错误和遗漏。他们的网页还显示了检测微笑的错误,如图7所示。T恤的折叠被视为微笑!

YouTube上有一段视频,介绍了如何制作一台自动自拍机,自动捕捉所有的微笑。它不需要按任何按钮,只要你微笑着机器检测到,就会自拍。它展示了ML如何帮助我们保持对生活中美好时光的记忆。如果你感兴趣,可以浏览《编程英雄(2021)》。

参考文献:

“编程英雄”(2021)使用Python自动自拍,YouTube,6月23日。https://youtu.be/xhG2AeyJXcUhttps://youtu.be/xhG2AeyJXcU

Rosebrock,A.(2018)Open CV和深度学习计划博客,2月26日。https://www.pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/.https://www.pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/

(2021年)机器学习–训练人去训练机器,媒体,2月2日。https://ecyy.medium.com/learning-machine-learning-7e273c1a4728。https://ecyy.medium.com/learning-machine-learning-7e273c1a4728

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/04/%e7%bc%96%e5%86%99%e8%87%aa%e6%8b%8d%e5%92%8c%e4%ba%ba%e8%84%b8%e6%a3%80%e6%b5%8b%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f-2/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息