選自Medium
作者:David Lee
機器之心編譯
編輯:魔王、杜偉
計算機視覺可以學習美式手語,進而幫助聽力障礙群體嗎?數據科學家 David Lee 用一個項目給出了答案。
如果聽不到了,你會怎麼辦?如果只能用手語交流呢?
當對方無法理解你時,即使像訂餐、討論財務事項,甚至和朋友家人對話這樣簡單的事情也可能令你氣餒。
對普通人而言輕輕鬆鬆的事情對於聽障群體可能是很困難的,他們甚至還會因此遭到歧視。在很多場景下,他們無法獲取合格的翻譯服務,從而導致失業、社會隔絕和公共衛生問題。
為了讓更多人聽到聽障群體的聲音,數據科學家 David Lee 嘗試利用數據科學項目來解決這一問題:
計算機視覺可以學習美式手語,進而幫助聽力障礙群體嗎?
如果通過機器學習應用可以精確地翻譯美式手語,即使從最基礎的字母表開始,我們也能向著為聽力障礙群體提供更多的便利和教育資源前進一步。
數據和項目介紹
出於多種原因,David Lee 決定創建一個原始圖像數據集。首先,基於行動裝置或攝像頭設置想要的環境,需要的解析度一般是 720p 或 1080p。現有的幾個數據集解析度較低,而且很多不包括字母「J」和「Z」,因為這兩個字母需要一些動作才能完成。
為此,David Lee 在社交平臺上發送了手語圖像數據收集請求,介紹了這個項目和如何提交手語圖像的說明,希望藉此提高大家的認識並收集數據。
項目地址:https://github.com/insigh1/GA_Data_Science_Capstone
數據變形和過採樣
David Lee 為該項目收集了 720 張圖片,其中還有幾張是他自己的手部圖像。由於這個數據集規模較小,於是 David 使用 labelImg 軟體手動進行邊界框標記,設置變換函數的概率以基於同一張圖像創建多個實例,每個實例上的邊界框有所不同。
下圖展示了數據增強示例:
經過數據增強後,該數據集的規模從 720 張圖像擴展到 18,000 張圖像。
建模
David 選擇使用 YOLOv5 進行建模。將數據集中 90% 的圖像用作訓練數據,10% 的圖像用作驗證集。使用遷移學習和 YOLOv5m 預訓練權重訓練 300 個 epoch。
在驗證集上成功創建具備標籤和預測置信度的新邊界框。
由於損失值並未出現增長,表明模型未過擬合,因此該模型或許可以訓練更多輪次。
模型最終獲得了 85.27% 的 mAP@.5:.95 分數。
圖像推斷測試
David 額外收集了他兒子的手部圖像數據作為測試集。事實上,還沒有兒童手部圖像用於訓練該模型。理想情況下,再多幾張圖像有助於展示模型的性能,但這只是個開始。
26 個字母中,有 4 個沒有預測結果(分別是 G、H、J 和 Z)。
四個沒有得到準確預測:
D 被預測為 F;
E 被預測為 T;
P 被預測為 Q;
R 被預測為 U。
視頻推斷測試
即使只有幾個手部圖像用於訓練,模型仍能在如此小的數據集上展現不錯的性能,而且還能以一定的速度提供優秀的預測結果,這一結果表現出了很大的潛力。
更多數據有助於創建可在多種新環境中使用的模型。
如以上視頻所示,即使字母有一部分出框了,模型仍能給出不錯的預測結果。最令人驚訝的是,字母 J 和 Z 也得到了準確識別。
其他測試
David 還執行了其他一些測試,例如:
左手手語測試
幾乎所有原始圖像都顯示的是右手,但 David 驚喜地發現數據增強在這裡起到了作用,因為有 50% 的可能性是針對左手用戶進行水平翻轉。
兒童手語測試
David 兒子的手語數據未被用於訓練集,但模型對此仍有不錯的預測。
多實例
儘管手語的使用和視頻中有所不同,但這個示例表明當多個人出現在屏幕上時,模型可以分辨出不止一個手語實例。
模型局限性
David 發現,該模型還有一些地方有待改進。
距離
許多原始圖像是用手機拍攝的,手到攝像頭的距離比較近,這對遠距離推斷有一定負面影響。
新環境
這支視頻來自於志願者,未用於模型訓練。儘管模型看到過很多字母,但對此的預測置信度較低,還有一些錯誤分類。
背景推斷
該測試旨在驗證不同的背景會影響模型的性能。
結論
這個項目表明:計算機視覺可用於幫助聽力障礙群體獲取更多便利和教育資源!
該模型在僅使用小型數據集的情況下仍能取得不錯的性能。即使對於不同環境中的不同手部,模型也能實現良好的檢測結果。而且一些局限性是可以通過更多訓練數據得到解決的。經過調整和數據集的擴大,該模型或許可以擴展到美式手語字母表以外的場景。
資源
Yolov5 GitHub 項目:https://github.com/ultralytics/yolov5
Yolov5 requirements:https://github.com/ultralytics/yolov5/blob/master/requirements.txt
Cudnn 安裝指南:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
OpenCV 安裝指南:https://www.codegrepper.com/code-examples/python/how+to+install+opencv+in+python+3.8
Roboflow 增強流程:https://docs.roboflow.com/image-transformations/image-augmentation
常用圖像數據增強技術綜述論文:https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0197-0#Sec3
Pillow 庫:https://pillow.readthedocs.io/en/latest/handbook/index.html
labelImg:https://github.com/tzutalin/labelImg
Albumentations 庫:https://github.com/albumentations-team/albumentations
原文連結:https://daviddaeshinlee.medium.com/using-computer-vision-in-helping-the-deaf-and-hard-of-hearing-communities-with-yolov5-7d764c2eb614
原標題:《YOLOv5的妙用:學習手語,幫助聽力障礙群體》
閱讀原文