亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行OpenCV及Dlib的人臉檢測比較分析

發布時間:2021-12-15 18:09:41 來源:億速云 閱讀:290 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關如何進行OpenCV及Dlib的人臉檢測比較分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

人臉檢測是計算機視覺最典型的應用之一,早期OpenCV的logo就是Haar人臉檢測的示意圖。

很多人的第一個OpenCV學習目標就是跑通Haar級聯人臉檢測,Dlib庫在業內開始流行很大程度上是因為其HOG-SVM人臉檢測比OpenCV Haar的好,而近年來OpenCV和Dlib均已包含基于深度學習的人臉檢測算法實現。

Haar-Cascade,HOG-SVM,深度學習正是代表著人臉檢測乃至目標檢測的三個時代。

昨天Learn OpenCV網站博主Vikas Gupta博士發表文章,對OpenCV與Dlib中四種人臉檢測算法實現進行了比較分析,包含C++/Python的代碼示例,且對精度和速度都進行了量化。

1. OpenCV Haar Cascade人臉檢測

算法無需贅言。

代碼示例:

如何進行OpenCV及Dlib的人臉檢測比較分析

優點

1)幾乎可以在CPU上實時工作;

2)簡單的架構;

3)可以檢測不同比例的人臉。

缺點

1)會出現大量的把非人臉預測為人臉的情況;

2)不適用于非正面人臉圖像;

3)不抗遮擋。

2. OpenCV DNN 人臉檢測

從OpenCV3.3版本后開始引入,算法出自論文《SSD: Single Shot MultiBox Detector》(https://arxiv.org/abs/1512.02325)。使用ResNet-10作為骨干網。

OpenCV提供了兩個模型:

1)原始Caffe實現的16位浮點型版本(5.4MB);

2)TensorFlow實現的8位量化版本(2.7MB)。

Vikas Gupta的代碼包含了這兩種模型。

模型加載代碼示例:

如何進行OpenCV及Dlib的人臉檢測比較分析

檢測測試代碼示例:

如何進行OpenCV及Dlib的人臉檢測比較分析

優點

1)在這四種方法中是最準確的;

2)在CPU上能夠實時運行;

3)適用于不同的人臉方向:上,下,左,右,側面等。

4)甚至在嚴重遮擋下仍能工作;

5)可以檢測各種尺度的人臉。

缺點

作者認為沒有什么大的缺點^_^

(52CV君不敢妄提缺點,但認為不能使用NVIDIA GPU絕對是個遺憾)

3. Dlib HoG人臉檢測

代碼示例:

如何進行OpenCV及Dlib的人臉檢測比較分析

優點

1)CPU上最快的方法;

2)適用于正面和略微非正面的人臉;

3)與其他三個相比模型很小;

4)在小的遮擋下仍可工作。

缺點

1)不能檢測小臉,因為它訓練數據的最小人臉尺寸為80×80,但是用戶可以用較小尺寸的人臉數據自己訓練檢測器;

2)邊界框通常排除前額的一部分甚至下巴的一部分;

3)在嚴重遮擋下不能很好地工作;

4)不適用于側面和極端非正面,如俯視或仰視。

4. Dlib CNN人臉檢測

算法來自論文《Max-Margin Object Detection》(https://arxiv.org/abs/1502.00046)。

代碼示例:

如何進行OpenCV及Dlib的人臉檢測比較分析

優點

1)適用于不同的人臉方向;

2)對遮擋魯棒;

3)在GPU上工作得非常快;

4)非常簡單的訓練過程。

缺點

1)CPU速度很慢;

2)不能檢測小臉,因為它訓練數據的最小人臉尺寸為80×80,但是用戶可以用較小尺寸的人臉數據自己訓練檢測器;

3)人臉包圍框甚至小于DLib HoG人臉檢測器。

5. 四種方法精度比較

作者在FDDB數據庫中測評了四種人臉檢測算法實現的精度,結果如下:

如何進行OpenCV及Dlib的人臉檢測比較分析

可以看到Dlib的兩種方法效果都不怎么好,作者發現原來Dlib訓練使用的數據集的人臉包圍框較小,導致按照FDDB的評價標準不公平。

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

另外,Dlib無法檢測小臉也拉低了分數。

6. 速度比較

軟硬件環境:

Processor : Intel Core i7 6850K – 6 Core

RAM : 32 GB

GPU : NVIDIA GTX 1080 Ti with 11 GB RAM

OS : Linux 16.04 LTS

Programming Language : Python

圖像大小300*300,測試結果如下:

如何進行OpenCV及Dlib的人臉檢測比較分析

可以看到除了MMOD 其他方法都達到實時,而MMOD方法的GPU計算是最快的。

7. 分情況檢測結果示例

7.1跨尺度檢測

如何進行OpenCV及Dlib的人臉檢測比較分析

7.2 非正面人臉

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

7.3 遮擋

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

如何進行OpenCV及Dlib的人臉檢測比較分析

8 總結推薦

如何在應用中選擇人臉檢測算法呢?作者認為應該首先嘗試OpenCV DNN方法與Dlib HOG方法,然后再做決定。

一般情況

在大多數應用程序中,我們無法知道圖像中人臉尺寸的大小。因此,最好使用OpenCV-DNN方法,因為它非常快速且非常準確,即使對于小尺寸的人臉也是如此。它還可以檢測各種角度的人臉。所以OpenCV-DNN是首選。

中到大尺寸的圖像

Dlib HOG是CPU上最快的方法。但它不能檢測到小臉(<70x70)。因此,如果知道程序不會處理非常小的人臉(例如自拍照),那么基于HOG的人臉檢測器是更好的選擇。

此外,如果你可以使用GPU(NVIDIA家的),那么MMOD人臉檢測器是最好的選擇,因為它在GPU上非常快,并且還提供各種角度的檢測。

高分辨率圖像

由于在高分辨率圖像中,這些算法的速度都會很慢,而如果縮小圖像尺寸,HOG/MMOD可能會失敗,同時OpenCV-DNN卻可以檢測小臉,所以對于高分辨率圖像推薦縮小圖像再使用OpenCV-DNN的方法。

上述就是小編為大家分享的如何進行OpenCV及Dlib的人臉檢測比較分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄浦区| 鄄城县| 扶余县| 巴青县| 惠州市| 长治县| 盐边县| 怀远县| 浦县| 上栗县| 博客| 南阳市| 太白县| 双桥区| 无为县| 东阿县| 长阳| 浮山县| 荣昌县| 漳浦县| 天门市| 博客| 桂平市| 牡丹江市| 满洲里市| 庆安县| 博客| 子长县| 衡南县| 舒城县| 牙克石市| 且末县| 永登县| 合水县| 鞍山市| 兴安盟| 临桂县| 永年县| 新野县| 洛扎县| 洱源县|