編者按:深度學(xué)習咨詢顧問Priya Dwivedi演示了如何結(jié)合TensorFlow目標檢測API和OpenCV分析足球視頻。
介紹
本屆世界杯爆冷不少,誰能想到奪冠大熱門德國會在小組賽出局?:(
作為數(shù)據(jù)科學(xué)家,我們可以對足球視頻剪輯做些分析。使用深度學(xué)習和opencv我們可以從視頻剪輯中提取有趣的洞見。下面展示了一個例子,澳大利亞對秘魯,我們可以識別所有球員、裁判、足球,同時根據(jù)隊服判定球員所屬。所有這一切都可以實時完成。
本文的相關(guān)代碼見GitHub:priya-dwivedi/Deep-Learning/soccerteamprediction/
步驟概覽
使用Tensorflow的目標檢測API,可以快速搭建目標檢測模型。如果你不熟悉這套API,可以看下我之前寫的介紹Tensorflow目標檢測API,以及如何使用該API搭建定制模型的博客文章。
API提供了在COCO數(shù)據(jù)集上預(yù)訓(xùn)練的目標檢測模型。COCO數(shù)據(jù)集包含90種常見目標。
部分COCO目標分類
在這個例子中,我們關(guān)心的分類是人、足球,COCO數(shù)據(jù)集包含這兩個目標。
API支持很多模型:
部分模型
這些模型在速度和精確性上有不同的折衷。由于我感興趣的是實時分析,所以我選擇了SSDLite mobilenet v2。
使用目標檢測API識別出球員后,就可以使用OpenCV圖像處理庫來判定其所屬球隊。如果你沒接觸過OpenCV,可以先看下OpenCV的教程。
OpenCV可以識別特定顏色的掩碼,我們可以用它識別紅衣球員和黃衣球員。下圖是一個OpenCV檢測紅色的例子。
檢測紅色
主要步驟
請對照相應(yīng)的Python代碼閱讀:
加載SSDLite mobilenet模型和分類列表。
使用cv2.VideoCapture()打開視頻并逐幀讀取。
在每一幀上檢測目標。
SSDLite返回的結(jié)果是識別的分類及相應(yīng)置信度、包圍盒預(yù)測。置信度閾值為0.6。然后我們將置信度大于閾值的識別人員剪切出來。
提取出每個球員后,我們需要讀取其球衣的顏色,并預(yù)測其歸屬。我們首先定義紅色和黃色的顏色區(qū)間。接著使用cv2.inRange和cv2.bitwise創(chuàng)建顏色的掩碼。統(tǒng)計檢測出的紅色和黃色像素的數(shù)目,以及占剪切圖像總像素數(shù)的百分比,以檢測球隊。
最后整合代碼,并使用cv2.imshow顯示結(jié)果。
結(jié)語
很好?,F(xiàn)在你看到了,深度學(xué)習和OpenCV的簡單組合可以產(chǎn)生有趣的結(jié)果。在目標檢測和歸類球隊之后,可以進行進一步的分析,例如:
當相機視角在澳大利亞球門區(qū)域時,你可以計算區(qū)域內(nèi)的秘魯球員和澳大利亞球員人數(shù)比。
你可以為每隊分別繪制足跡的熱圖——例如顯示秘魯隊主要占據(jù)的區(qū)域。
你可以繪制守門員的路徑。
目標檢測API提供了一些更精確但更慢的模型。你也可以試試它們。
如果你喜歡這篇文章,給我加?? :) 我希望你從GitHub拉取代碼親自動手嘗試。
另外,我提供深度學(xué)習咨詢,喜歡解決有趣的問題。我?guī)椭恍﹦?chuàng)業(yè)公司部署了創(chuàng)新的AI解決方案。如果你有需要協(xié)作的項目,請通過我的網(wǎng)站deeplearninganalytics.org或我的郵箱priya.toronto3@gmail.com聯(lián)系我。
-
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24689 -
深度學(xué)習
+關(guān)注
關(guān)注
73文章
5500瀏覽量
121111 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60527
原文標題:使用TensorFlow目標檢測和OpenCV分析足球視頻
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論