[Day3] 人脸侦测 (Face Detection)

小游戏,威利在哪里? (威利穿着红白条纹的衬衫并戴着一个绒球帽,手上拿着木制的手杖,还戴着一副眼镜)
Where's Waldo
reference: Amazon - Where's Waldo - Toys Poster 36 x 24in

本文开始

以目前主流随安装即用的技术来说,提到人脸侦测大多会出现下面四种方式:

  1. Google ML Kit - Face Detection
  2. Amazon Rekognition - face detection
  3. Microsoft Azure - 脸部识别API
  4. OpenCV & Dlib solution - 给喜爱DIY的写手

下面就依序先简单介绍各个技术使用吧!


Google ML Kit - Face Detection

face contours
reference: Google ML Kit - Face Detection

前身为Firebase ML-Kit - Face Detection (2020/6/3之後移动到独立Module)

是一个Google开发的脸部识别函示库,可以直接在行动装置上使用,

可以在你开发的专案中整合脸部识别的相关功能:

  • 脸部侦测
  • 脸部识别
  • 人脸追踪
  • 人脸关键点侦测

只需要了解如何使用相关API功能即可,不需要了解实作细节或ML如何运作。

这部分有兴趣的邦友们可以在[Day5] Face Detection - 使用Google ML Kit - Android了解更多细节与实作内容。


Amazon Rekognition - face detection

beauty woman
reference: aws - Detecting and analyzing faces

Amazon在AWS平台上出的影像分析服务,除了与ML Kit一样可以透过API使用外(需事先安装SDK),
有另外提供Online Demo平台可以测试使用。

这部分我会在[Day7] Face Detection - 使用Amazon Rekognition说明更多细节与实作内容。


Microsoft Azure - 脸部识别API

看名字就知道,微软出品,必属精品

同样是在他们自家的平台Azure上提供的脸部识别服务,同样提供API方便使用

由於有其他邦友在这次铁人赛发表Azure上的人脸辨识,有兴趣的可以点连结去看一下。而脸部辨识的说明文件请参考这里,就不再另撰一篇文章说明。

我绝对不会说是因为很久很久以前已注册过Azure免费使用,因为不想付费所以没有平台可以用来测试


OpenCV & Dlib Solution

OpenCV
reference: MLBLR - OpenCV

之後会着墨比较多的部分,也会延伸这个技术到後续开发一个真正互动的应用上。

OpenCV是一个跨平台的视觉处理函示库,只要是处理影像或是影片,而主要开发语言又是C++或Python的话,对它一定不陌生。

而Dlib是由Davis King 独立开发的一个ML相关处理与资料分析的C++函示库,功能太多太强大说不完,而在人脸辨识相关功能中也会很常使用它。

使用OpenCV & Dlib来做人脸侦测,大概可以分为四种方式:

  1. OpenCV Haar cascades
  2. OpenCV deep neural networks (DNNs)
  3. Dlib HOG + Linear SVM
  4. Dlib max-margin object detector (MMOD)

这个系列後半部实作部分都会使用这种方式,我会在[Day9] Face Detection - 使用OpenCV & Dlib:Haar cascades之後说明更多细节与实作内容。


我知道一下出现陌生的函示库名称,一下又多出一堆专有名词会让人怯步,因此先来总结一下这四种方式:

opencv & dlib solution compare

三个重点需要你记得 (未来如果有进入这个领域会很实用,一点过来人经验):

  1. 辨识准确率越高通常会需要花费更多运算时间 (指相同的硬体设备下);如果你会用显示卡(GPU)资源来做ML请直接选第四个 (Dlib max-margin object detector (MMOD))
  2. 只想要试试水温玩人脸侦测不想要知道细节也不想要设定一堆参数,用第二个 (OpenCV deep neural networks (DNNs))就对了;好用、好侦测、好刺激
  3. 有兴趣要往facial landmark (人脸关键点)做应用的,请直接选第三或第四个(Dlib相关);你会发现什麽叫做真正的无缝接轨不踩坑

就这样,下一篇见!


<<:  图的资料结构

>>:  [Day 11] 实作 Ktor i18n 机制

MS Azure ML01

Microsoft Azure Machine Learning 终於开始罗。 <<前提...

DAY22神经网路

昨天介绍完DBSCAN程序,今天要来研究神经网路: (来源: http://programmerma...

DAY12支持向量机演算法(续一)

昨天介绍完SMO算法第一步,今天就要来写这个方法第二步, 而第2步步骤:选取两个点,并计算上下界H和...

Day7 职训(机器学习与资料分析工程师培训班): 专题讨论

人工智慧与资料分析专题 今日由两位助教分别进行专题报告的演示,老师补充专有名词以及须注意的细节,论文...