Udacity 電腦視覺 project 1: Face detection/Face recognition

Kevin Chiu
CodingJourney
Published in
2 min readJul 1, 2020

針對人臉辨識 Face detection/Face recognition做深度的研究和探討

General computer vision processing pipeline

1. Computer Vision knowledge

這邊重新講了一遍computer vision的一些知識和應用

包含 sobel, canny edge, grayscale, high-pass filter(e.g. canny edge: 用來找邊緣), low pass filter(e.g. Gaussian blur: 用來濾雜訊), Hough Line detection: 透過圖片的近乎同斜率的點可轉成hough space的交點,進而畫出線段。

2. 介紹臉部辨識會用到的Haar cascade classifier

Haar cascade classifier is a machine learning based approach where a cascade function is trained to solve a binary classification problem: face or not-face; it trains on a lot of positive (face) and negative (not-face) images

Haar cascade classifier能夠快速捨棄不相關的資料使這個演算法速度非常快,可直接應用在電腦或是行動裝置上

所謂的階層式分類器 cascade classifier

以下內容取自:Opencv Cascade Object Detection

Cascade Classifier翻成中文是階層式分類器(亦有人翻為級聯分類器),它是由好幾個Classifier所組成以進行多層的分類。

用在人臉偵測上的作法是一開始先將feature分成好幾個classifier,最先進行的classier辨識率最低,但是可以先篩選掉很大一部份不是人臉的圖片,接下來的Classier處理困難度較高的部份因此篩選掉的圖片會逐次減少,直到所有classier處理完為止,最後留下來的就會是我們想要的人臉的照片。

但是在訓練這種人臉辨識時很大一部分取決於data,例如如果我們用很多白人女性作為訓練集,則系統很大機會對於其他膚色的女性判斷錯誤。

為了解決bias問題,可以使用GAN(Generative Adversarial Network)來解決這個問題:Implementing a fair classifier in PyTorch.

2. Image Contouring

常見應用:Hand recognition, gesture recognition, body recognition…

從OpenCV的網站可以看到更多關於image contour的資訊

3. 介紹 ORB -Oriented FAST and Rotated BRIEF (特徵提取演算法)

使用FAST演算法做特徵點提取 + BRIEF 演算法做特徵點的比對

關鍵點 — 圖像中的小區域特別獨特。e.g.:像素值從亮到暗急劇變化的角。

描述符 — 特徵描述符是一種提取圖像並輸出特徵描述符/特徵向量的算法。特徵描述符將信息編碼成一系列數字,並充當某種數字「指紋」,可用於區分一個特徵與另一個特徵。理想情況下,這些信息在圖像變換下是不變的,所以即使圖像以某種方式變換,我們也可以再次找到特徵。<如下圖>

詳細關於ORB介紹可參考:ORB簡介及Python實現

ORB重要用途:作為real time face detection/recognition 的工具

--

--