2016-06-17 17 views
1

我想用dlib庫實時檢測人臉標誌。 該算法是基於紙張:一個毫秒面對齊迴歸樹合奏由Vahid Kazemi和約瑟芬沙利文Dlib。如何解決實時優化約束?地標融合的想法?

我使用現有的庫:dlib,它是相當緩慢。我在http://dlib.net/faq.html上讀到了如何快速完成它,但在我的計算機上無法執行,因爲我沒有選擇直到SSE4或AVX進行優化。最後,我使用SSE2。 所以我有以下問題:

- 它可以在移動/ Web應用程序庫dlib中使用,以便它實時工作?我不熟悉優化設置等等,這就是爲什麼有趣的是有多少限制。

- 我的電腦可以在沒有優化SSE4的情況下使用,以便它可以實時工作?

- 此文件shape_predictor_68_face_landmarks.dat重95 Mb。我只需要面對+地標檢測,根據我的需要,此文件是否包含冗餘信息?

- 一個算法問題:點(地標)的收斂取決於人臉檢測的邊界框,可以解釋,它是如何完成的?我們擬合邊界框內的平均麪點,然後我們正在尋找其鄰域中每個具有里程碑意義的最佳位置?這附近有多少?

感謝任何幫助

回答

1
-It is possible to use in mobile/web application library dlib in order that it works in real time ? I am not familar with optimization settings and so on, that is why it is interesting how much restrictions there are. 

-It is possible to use in my computer without optimisation SSE4 in order that it works in real time ? 

面部標誌檢測有兩個步驟:人臉檢測和麪部標誌檢測的這張臉。最耗CPU的部分是第一步 - 檢測臉部(運行simple_object_detector),並且只有這部分可以使用AVX/SSE

爲什麼它很慢 - 人臉檢測從80x80像素和如果你將一些高分辨率的圖像放入探測器中,它將花費很多時間在不同尺度的滑動窗口上。大多數情況下,同一幀需要有1-3張臉,而現代移動相機的分辨率相當高。

因此,我建議您減少用於人臉檢測的圖像大小 - 將其縮小並根據某個感興趣的區域進行裁剪。這將使您獲得最大可能的性能優化。

下一個可能的步驟是使面部檢測器不能以不同的比例運行,但可能會在1-2次迭代中運行。看看這個問題 - 它描述了這個問題(dlib's scan_fhog_pyramid : set max_pyramid_levels

-This file shape_predictor_68_face_landmarks.dat weights 95 Mb. I need just face+landmark detection, does this file contain redundant information according to my needs? 

這個文件只有經過培訓的IBUG數據集68個標誌的數據模型。它裏面沒有人臉檢測模型。人臉檢測模型附帶在dlib/image_processing/frontal_face_detector.h文件中

是的,這個文件相當大,但這是它的質量的代價。你可以培養一些新的面孔標誌檢測模型(在http://dlib.net/train_shape_predictor_ex.cpp.html例子說明)witl少里程碑意義的點或質量更低 - 這可以讓你更小的文件

-One algorithm question... 

要回答這個問題 - 請考慮閱讀原始(http://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Kazemi_One_Millisecond_Face_2014_CVPR_paper.pdf)和DLIB/image_processing/shape_predictor。h源代碼

Shortely - 在檢測到邊界(找到邊界框)後,形狀預測器會針對面部邊界框在預先訓練的位置搜索某些特徵(圖像像素值)。取決於特徵值,shape_predictor將的平均臉形變成成爲新的臉形(被裁剪的一個),並且對於每個訓練的迴歸樹形內預測模型

+0

謝謝。只是一個問題。如果我使用不同的人臉檢測器算法,您認爲多少時間只會在給定包圍盒時收斂點(它可以實時沒有優化設置)? 我問了算法問題,因爲如果我使用不同的人臉檢測器,它可能會給邊界框帶來不足,如果點在平均形狀的點附近看,它不能很好地收斂。 (其實我也是俄羅斯=)) – Viktoriia

+0

是的,它會實時工作,我認爲每面1-2毫秒。是的,你會失去一些收斂性,因爲面框的大小和位置會影響形狀預測的精度。但您可以使用探測器作爲邊界框的源來訓練一個新的shape_predictor。它需要不到一天的訓練,你需要32+ GB的RAM。我甚至試圖使用簡單的16x16固定大小的盒子,以不同的真實臉部大小和位置,並且訓練得很好 – Evgeniy