-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將的平均臉形變成成爲新的臉形(被裁剪的一個),並且對於每個訓練的迴歸樹形內預測模型
謝謝。只是一個問題。如果我使用不同的人臉檢測器算法,您認爲多少時間只會在給定包圍盒時收斂點(它可以實時沒有優化設置)? 我問了算法問題,因爲如果我使用不同的人臉檢測器,它可能會給邊界框帶來不足,如果點在平均形狀的點附近看,它不能很好地收斂。 (其實我也是俄羅斯=)) – Viktoriia
是的,它會實時工作,我認爲每面1-2毫秒。是的,你會失去一些收斂性,因爲面框的大小和位置會影響形狀預測的精度。但您可以使用探測器作爲邊界框的源來訓練一個新的shape_predictor。它需要不到一天的訓練,你需要32+ GB的RAM。我甚至試圖使用簡單的16x16固定大小的盒子,以不同的真實臉部大小和位置,並且訓練得很好 – Evgeniy