[Day 14] 人脸识别 (Facial Recognition)

想像一天早上你站在办公室的玻璃门前,看向门口上方的摄影镜头;约莫数秒後,听见悦耳的人声:
早安,山姆大叔,祝您有个愉快的一天
玻璃门打开了,
而同时间,公司後台也默默帮你登记好上班时间纪录...

我知道这不是什麽厉害的技术,只要有钱,什麽都办得到

但假如今天你只要有一个视讯摄影机 + 一腔热血DIY的精神就可以完成,

你是否想过提供自己与周遭人的方便呢?

如果你跟我一样想过要DIY,万丈高楼平地起,先从理解人脸识别开始吧!

本文开始

前面在Day8有提到,人脸识别是找到影像中的人脸 (人脸侦测)後,并且识别出这个人是谁;因此可以简单的说,就是身分认证

人脸识别通常会需要经过下列两步骤:

  1. 侦测出影像中的人脸,框出模型认为的人脸部分 (ROI)
  2. 透过一系列的判断,将ROI分类(辨识)为某一个已知的人脸

因此人脸识别需要两阶段来处理,让我们将这两阶段分别再讲仔细点。

侦测出影像中的人脸,框出模型认为的人脸部分 (ROI)

这个在前面一系列人脸侦测 (Face Detection)有提到了,你可以用OpenCV & Dlib方法、神经网路模型、或是现成的平台API;侦测的结果就是边界框 (Bounding Box)。

只是现在我们只完成人脸辨识的第一阶段,这个边界框还要继续处理,

在这里我们可以称呼这个边界框为ROI

透过一系列的判断,将ROI分类(辨识)为某一个已知的人脸

第一阶段取得的ROIs (通常第一阶段得到的ROI不会只有一个),我们需要判断:

  • ROI之间可能会有重叠的部分,需要判断哪一个ROI最能代表"人脸"
  • 将这个"人脸"取出特徵,可能是五官位置、转成RGB色彩空间的值、或是最能代表人脸的部分线条等等,然後与现有的人脸资料库比对,判断这个人脸最像资料库中的哪一个,得到最终识别的结果

要做人脸识别,一样有几种方式可以用。接下来系列我们将介绍 (由技术发展先後排序):

接下来将依序介绍各个不同的人脸识别方法。


<<:  Day21 订单金流 -- 独立资料

>>:  Day-16 雇用问题, 指示器随机变数(indicator random variable), 随机化演算法

伸缩自如的Flask [day2] blue_print

开始之前,我相信你已经有碰过flask的经验,或是至少知道藉由 pip install Flask ...

[Day11] TS:什麽!型别也有样板字串(Template Literal Types)?

这是我们今天要聊的内容,老样的,如果你已经可以轻松看懂,欢迎直接左转去看我同事 Kyle 精彩的文...

[番外] 来个 Weather App (序)

前言 遥想(?) N 年前看着官方文件认识 Angular 时,充满回忆的 Heros 范例!  认...

【第3天】资料前处理-YOLOv4与自动框选中文字

现况 观察主办单位提供的资料集(约7万张图档),发现图档大致分为下列几种。 1.1 图档内只有1个中...

[day-24] Python-基本认识回圈!(Part .3)

认识for回圈   for回圈可以根据需求将元素一一提取出来,这个行为称为『叠代,Iterable』...