憑藉.NET、OpenCV和Microsoft API的功能,我們能夠製作出完整的應用程式。對於該應用程式,我們需要按鈕、序列埠和文字方塊。
黑色視窗會顯示來自相機的圖像,視窗中還會添加一個鏡頭框,框內顯示人物名稱。
左側的白色視窗可以添加TTS API(文本轉語音)的文本,提供回饋以檢查工作,並檢查說出的文字是否與顯示的字詞相符。
為了獲得更好的程式結果,您需要在訓練模式下添加多個臉部記錄。訓練是指通過拍攝多個臉部位置以獲得最佳辨識結果(不同拍攝角度、光線條件等)。您需要按下Record 10 Faces按鈕,通過應用程式記錄臉部畫面。
在代碼中,實現這個功能的語句為Face = Parent.faceClassifier;這通過EmguCV平台完成。人臉偵測通過基於主成分分析(PCA)的複雜演算法實現,系統會將偵測到的臉部與訓練後儲存的圖像進行多次比對。
藍色矩形中的圖像是需要儲存的圖像,因為它包含臉部的獨特特徵。
我們需要在不同的位置和不同的光線下獲取更多的臉部特徵:
經過一系列臉部偵測圖像拍攝,如果您認為之前記錄的臉部圖像不利於演算法計算,那麼可以點擊Restart 1 Face按鈕刪除已經保存的檔案,系統將不再偵測該臉部資訊。
如果要記錄多人數讓機器手臂可以進行區分,那麼可以使用Delete Data按鈕刪除照片。
錄製更多圖像後,該演算法應該能夠偵測人臉,並在藍框上方顯示名稱。機器人可以精確偵測像眼鏡這樣的特徵,因為這些特徵具有區別性。