`` 发帖人用户名 :joeylin248 因部分信息无法呈现,故以截图的形式出现在帖子中。如无法看清此帖,可查看文档 首先感謝 電子發燒友與大聯大提供的這次試用機會。 經過短暫的學習使用,初入圖像處理的門徑,對Movidius的NCS2有了初步的瞭解。 AI的應用若場合,或空間有限時,會使用 AI 開發板來進行 edge compu ting ,例如 Raspberry Pi+INTEL Neural ComputeStick 2 (NCS2),Nvidia 的 Jetson nano。但這篇評測在論壇申請收到NCS2後,使用的是研揚的Up Square對 NCS2上使用物件辨識的效能 。體積上相對小很多。Up Square 是基於INTEL Atom的一部微型電腦,NCS2用於執行神經網路計算,是個易於使用的平台,運作只需 2 瓦,作業系統是Windows10。
建基於英特爾NCS2開發板的識別系統。 摘要
基於現在課堂上已存在的監控系統,加入研揚Up Square開發板及英特爾NCS2進行人臉及情趣識別的理論驗證,通過擷取的完整圖片進行處理,確定人臉出現在圖片中的位置並將畫面進行剪裁、提取,通過對比人臉的特徵點,識別人的正面與負面的反應,並將其加總計分後將結果通過乙太網上傳到上位機。
目錄 一、市場調研 二、演算法實現-定位 三、演算法實現-識別 四、結果上傳 五、測試說明 六、總結。
正文
一、市場調研
首先對現在市場上的了解,關於課堂識別系統算是較少的應用,例如課堂上的行為如舉手,起立,打瞌睡進行辨識。
大體系統的工作流程。 如下,由於攝像頭安裝的位置是固定的, 所以有些人的位置比較遠的,這人體在影片中所佔的pixel數量相較於人臉是多很多,也比較容易辨識到,因此可以看到一些已經成熟的方案中, 對於這一部分的使用。
相較於課堂上的行為,人臉在遠處的偵測雖簡單,但要判別人臉的表情就困難多了,因此要訓練一個精度高卻又反應快的模型,會是相當高的挑戰。
學堂授課反應偵測反應,可以提供演講者對於演說時聽眾的反應的即時反饋,來修正接下來的課程或是演說。
二、演算法實現-人臉偵測
在模型的選擇上,人臉偵測相對於情緒識別來的大且重要,所以效能的需要相對比較高,在之前的一篇效能評估已經測得 SSD Mobilenet-V2 300x300可以得到最佳的11fps,所以此次方案選擇了SSD Mobilenet-V2300x300做為人臉偵測的模型基礎。評測請參考下圖及連結:
http://bbs.elecfans.com/jishu_1981974_1_1.html
那麼,基於SSD的車牌識別,主要就包括如下幾個部分:1、圖像處理的基礎理論,這裡就選用了 png 檔格式,而對於其他的檔格式也都是觸類旁通的。 2、圖像處理庫的的使用3、其他圖像處理演演演算法的實現4、網路通訊的實現 所以整個試用過程也是按這個順序一步步進行的。 整個程式執行程式為: 。
由上面的瞭解,人臉的有效區域是在圖像中的某一固定範圍內的,所以在處理圖像時,是不必將整幅圖都進行處理的,只要將有人臉的部分剪裁出來進行處理就足夠了。 這樣也可以加快圖像中情緒識別速度。
人臉ssd-mobilenet V2模型的訓練過程中,取得了可以免費試用的ORAI 人工智慧軟體 教育版進行人臉的框選訓練。
https://www.programmyschool.org/product/orai-%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7%E8%BB%9F%E9%AB%94-%E6%95%99%E8%82%B2%E7%89%88/?lang=zh-hant
使用Dlib取得人臉並自動label
我特地撰寫了三個工具,分別針對實時影像、影片、相片取得大量的臉孔相片並進行自動face labeling。這三支程式都會自動識別影像中是否有人臉,若有的話便產生VOC xml格式的label檔,並且將image檔及label檔放置於指定的資料夾中。
1. grep_faces_from_webcam.py 只要執行該程式,web camera便會持續的進行攝影、辨識、label人臉,並產生可用於訓練的人臉dataset。 2. grep_faces_from_video.py 你可以給它一個資料夾路徑,裏面放置各類型的影片(mp4, mov, avi…等),該程式會把所有影片中所能抓出的人臉製作成人臉dataset。 3. grep_faces_from_image.py 與上一支程式類似,但資料夾路徑裏面放置的是各類型的圖片(jpg, png, bmp…等),該程式會把該資料夾中所有能抓出的人臉製作成人臉dataset。 進行人臉資料庫的訓練 之後就利用ORAR進行人臉的抓拍的訓練啦,
結果驗證:
驗證方式為使用一千張和訓練時不相關聯的教室裡的人臉做盲測,比較標準答案(ground truth)並取得一千張bounding box的平均分數mAP必須大於80%算是合格。並與OpenVino sample的face detect 0104 模型做比較。
OpenVino object detection face-detection-0104
OpenVino取得
1000張outputs的mAP結果: Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.518
ORAI SSD model training 取得 1000張outputs的mAP結果:
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.83 臉部偵測以取得更為精確的結果
三、演算法實現-識別
人的情緒可以透過一張人臉的影像判斷出來, 但是喜好度若是只使用單張的影像來判斷,會沒辦 法分析人在一段連續時間內的喜好。所以我們認為 喜好度應該要與一段連續序列的臉部影像相關,而 不是使用單張影像來進行分析。例如應用在無人商店時,需要觀察客戶的購買喜好,那就需要一段連 續時間的觀察。同樣的如果使用單張影像分開來分析課堂喜好程度,那麼就不會比一段連續臉部影像的來得準確。 我們的方法分成兩個階段,包括了人臉情緒辨識階段和喜好度分析階段。人臉情緒辨識階段第一階段的架構如下圖
, 其中
x,y的如表2所示
四、結果上傳
下圖為結果經由Network輸出至手機示意圖
五、測試說明
1、經由高精度算法在Up Squre上使用NCS2取得人臉特徵值後進行統計後,將結果經由網路傳送到手機上的APP
2、測試用的APP如下圖,首先依偵測的情緒,Happy, Surprise, Sad, Angry, Natural測得數量依直觀圖形分布來提供參考,最後依權重及方程式算出最後的總積分,分別在手機上顯示總得分為不好,普通,或是很好。
六、展望與總結。 首先這個學堂授課即時反應偵測及反饋只是對於圖像處理的理論驗證,距離真正的產品還有一段距離,這也是之後要做的工作。
1、演算法優化,縮短識別時間。
2、類型增多。
人的表情複雜而且多變、正確的反饋實際的心情對授課或講演質量佔很大因素。 它們的算法分配都是不同的,這項的工作量很大。
3、上位機設計與完善。
通過對NCS2開發板的試用,初入圖像處理的門徑。 對於圖像處理的流程、方法有了一定的瞭解。 訓練了自己在演演演算法上的一些思維與思考。 更是體會到了MYRIADX的VPU強大的計算與數據處理能力。 INTELNCS2開發板具有強大的性能的同時,又兼顧了介面與功能的豐富。 提高了使用者的使用體驗。 開發板功能標註清晰,佈局合理,是二次開發的不錯選擇。
問題與建議:
試用過程中也有幾個問題,都在問題帖子了,關於發燙的問題, 英特爾可以按我帖子的方法進行驗證一下,看是不是個例。 ★最後聲明一下:本人是圖像處理的新手,以此次試用剛開始學習入門的,演演演算法中有什麼不對的地方或效率不高缺乏優化的歡迎指正批評。
``
|