4 5 定義人臉和人臉探測器

2021-09-08 16:39:28 字數 1223 閱讀 9983

讓我們用純c++**定義faces和face detector,不使用任何依賴(opencv除外)。這確保了manymasks的計算機視覺功能是可移植的。我們可以使用不同的ui庫集在不同的平台上重用**的核心。

臉是有物種區分的。對於我們的情況,可以分為人,貓,或者混合的。讓我們建立乙個標頭檔案,species.h,並在其中定義如下列舉:

#ifndef species_h

#define species_h

enum species ;

#endif // !species_h

一張臉也有乙個影象資料矩陣和三個特徵點,代表眼睛的中心和鼻尖。我們可以用以下任何一種方法來構造一張臉:

#ifndef face_h 

#define face_h

#include #include "species.h"

class face ;

#endif /* face_hpp */

我們的人臉檢測器有級聯分類器,用於人臉、左眼和右眼以及貓臉。建構函式接受到相關級聯檔案的路徑作為引數。在它被構造之後,人臉檢測器的作用就是簡單地檢測人臉!檢測函式接受場景的當前影象以及向量來填充返回值。可選地,呼叫者還可以指定檢測器應該處理調整大小的影象,並在原始影象上繪製檢測結果的視覺化標誌。可選的視覺化標誌包括顯示檢測到的面部、眼睛和鼻子位置的矩形和圓形。讓我們建立另乙個標頭檔案facedetector.h,並在其中為facedetector類宣告如下公共介面:

#ifndef face_detector_h

#define face_detector_h

#include #include "face.hpp"

class facedetector ;

[注意預處理器條件with_clahe的使用。如果我們在專案build settings|preprocessor macros中定義了預處理器巨集with_clahe,我們的人臉檢測器將利用一種稱為對比度受限自適應直方圖均衡化(clahe)的高階均衡化演算法。否則,它將使用一種更輕量級但不太健壯的均衡演算法。]

在本章的後面,在"檢測臉部元素的層次結構"和"對齊和混合臉部元素"中,我們將在face.cpp和facedetector.cpp檔案中研究值得注意的實現細節。不過,首先讓我們考慮使用faces和face detection的檢視控制器。

###返回到第四章目錄###

###返回到書籍目錄###

重力場和穩態海洋環流探測器(GOCE)

重力場和穩態海洋環流探測器 goce 是esa的第一顆生命星球計畫衛星,旨在以前所未有的細節繪製地球的重力場。該太空飛行器的主要儀器是乙個高靈敏度的重力梯度儀,由三對加速度計組成,它們沿三個正交軸測量重力梯度。goce繪製了地球地幔的深層結構並探測了危險的火山區域。它為海洋行為帶來了新的見解 特別是...

機器學習 人臉檢測和Haar分類器

haar分類器是乙個基於樹的分類器,它建立了boost篩選式級聯分類器。可以使用opencv中的 人臉 檢測器來檢測 基本剛性的 物體 臉,汽車,自行車,人體 通過成千上萬的物體各個角度的訓練影象,訓練出新的分類器 這個技術被用來設計目前最優的檢測演算法。因此,對於此類識別的任務,haar分類器是乙...

機器學習 人臉檢測和Haar分類器

haar分類器是乙個基於樹的分類器,它建立了boost篩選式級聯分類器。可以使用opencv中的 人臉 檢測器來檢測 基本剛性的 物體 臉,汽車,自行車,人體 通過成千上萬的物體各個角度的訓練影象,訓練出新的分類器 這個技術被用來設計目前最優的檢測演算法。因此,對於此類識別的任務,haar分類器是乙...