2014-03-04 141 views
0

我想訓練自己的哈爾級聯並生成我自己的xml文件。但我擔心這會花費我所有的時間。我需要訓練5個輪廓圖像的分類器,以便在輪廓圖像中檢測到他們的鼻子和嘴巴。我想知道這樣做需要多長時間,因爲我有幾天的時間來提交我的項目。另外,opencv中是否還有其他替代方法來檢測輪廓圖像中鼻尖和嘴角的座標?我已經發布了幾次,但人們用研究論文回答。訓練分類器的時間

+3

嘗試先訓練lbp級聯。對於幾百個圖像,它會訓練幾分鐘(而不是幾天,如哈爾版本) – berak

+0

lbp級聯?我不需要檢測臉部,只有鼻子和嘴巴在配置文件臉部圖像。我應該如何開始?是否有虛擬指南? :p – Steph

回答

1

如果您沒有足夠的時間,我建議您使用this library(flandmark)替代方法(由opencv完成)。整合非常簡單(不超過3分鐘)。

Download這些文件(cpp,h),把它們放到你項目的目錄中。 它不要忘記在你的代碼中調用這條線是非常重要的:

FLANDMARK_Model *模型= flandmark_init( 「flandmark_model.dat」);

檢查同一頁面中的示例。

實際上flandmark_model.dat是一個檢測模型,已經訓練用於面部標誌檢測。 這個開源庫使用Opencv。

讓我知道你是否有整合的問題

編輯:

如果您只需要眼睛,鼻子和嘴點,您只需選擇從包含臉部標誌數組你的選擇(浮動*地標),例如:

extern_Right eye.x = landmarks[12]; 
extern_Right eye.y = landmarks[13]; 
nose.x = landmarks[14] 
nose.y = landmarks[15] 
leftmouth.x = landmarks[6] 
leftmouth.x = landmarks[7] 
rightmouth.x = landmarks[8] 
rightmouth.x = landmarks[9] 
+0

我知道flandmark,我試過了。有一個靜態圖像的例子。我試圖理解代碼,所以我可以改變它來檢測只有一些臉部特徵,但我不能 – Steph

+0

你不需要改變原來的代碼,如果你只需要其中的一些,你可以從地標數組中獲得你想要的: 你有:float * landmarks =(float *)malloc(2 * model-> data.options.M * sizeof (浮動)); – dervish

+0

請檢查我編輯的答案 – dervish

相關問題