2020年12月1日 星期二

[DL]Static Gestures Recognition(6): Training Model & Next Step

從構想、規劃、試錯到完成深度學習的手勢辨識模型。


reference from Mark Robins



6 Training Model & Next Step

 

當前期充分準備後,後續訓練模型的過程反而沒花那麼多時間。

在建立訓練模型的過程中,反覆測試的過程是難以避免的。

比較值得一提的是測試中發現,模型層數增減影響結果甚為重要,

如果參數太少,在訓練的過程中很快就會發現 loss & accuracy 數值很不理想,

也就沒有必要再繼續跑下去。



但究竟該怎麼設定多寡?  坦白說目前也只有累積經驗值才知 (還請高手賜教)

關於細節請參考GitHub

Static Gesture Recognition @ GitHub


DEMO






What’s next?

儘管完成了初階段目標,但仍有很多方向值得觀察、改善、繼續深究:

 

誤判情形:

當在ROI範圍內迅速切換時,無可避免的是轉換手勢的過程中難免會出現誤判情形,

這是因為webcam不停地擷取影像資訊交給模型預測,在切換的過程中一定會出現非既定圖像的情況,

不過變換的時間只有一下子所以也不會造成太大影響。

實際應用時,應考慮接收手勢持續的時間後(如2秒內)再進行決定採用何種行為,應可有效降低誤判機率。

 


效能表現:

實際在PC上測試,以CPU Intel i5-3470 3.2G, RAM 8G, OS: Win10 硬體為例

執行時CPU使用率高達85+%


若要實際應用,必須要找出有效降低消耗資源的方法(Embedded system or other platform ?)

假設在真正進行判斷之前,先進行 Hand Detection,之後再行gesture recognition

是否有降低消耗資源的可能性(前提是Hand Detection 比起 Gesture Recognition有更好的性能消耗比)

或是降低模型的隱藏層數是否也是可能的方向?  都還有待繼續探索驗證。

 

 

更貼近真實的使用情境:

由於使用的是1 channel灰階圖案,且實際場景與訓練圖片也是刻意去除背景,

未必能完全適用在真實的複雜情境上。若要更廣泛的情境判斷,就必須有更大量的真實圖片提供訓練。抑或是有其他方式?

simple & complex background



擴充的可能:

是否在預訓練的模型上繼續擴充使用這套模型呢 但本專題使用的是單通道灰階圖像,必須要重新設定蒐集訓練圖片才行。



 動態手勢追蹤:

這個模型現階段僅能辨識靜態手勢,如果能進一步識別動態手勢,應用層面想必能更加擴大活躍!



更輕量的檔案大小與裝置:

由於單一模型就有591MB,為了提高效率,採用權重+結構是不可或缺的做法,但即使權重也高達197MB

若減少隱藏層數是否能達到有效降低檔案大小的目標?

到移動性高但可能資源有限的輕量硬體使用,如行動裝置、或樹莓派的可能性?


 

 


後記:

這篇心得記錄是不斷反覆試錯 + 參考網友無私分享的教學文所摸索出來的心得。

 

 

當學習越多,越發覺得不足之處越多。

對於深度學習用的數學公式與理論,自慚資質駑鈍無法參透,只知如何使用。

因此這系列文僅記錄自己的開發/檢討/除錯的過程與思路邏輯,

並不打算描述太多程式的做法,畢竟只是野人獻曝罷了。

有需要的朋友們可自行至 Static Gesture Recognition @ Github 參考。

並希望這系列記錄也能提供給初心者的同好們,

作為一篇打造屬於你自己的影像辨識模型之基礎入門說明書,

若能在學習的路上對你有所幫助,我也感到非常榮幸。






Series link:

[DL]Static Gestures Recognition(1): Conception

[DL]Static Gestures Recognition(2): Solution finding

[DL]Static Gestures Recognition(3): Define workflow

[DL]Static Gestures Recognition(4): Preparing appropriate dataset

[DL]Static Gestures Recognition(5): Time is worth more than money

[DL]Static Gestures Recognition(6): Training Model & Next Step






沒有留言:

張貼留言