你知道怎么使用OpenCV檢測籃球運動員嗎?
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
簡介
通過使用深度學習和opencv,我們可以從視頻剪輯中提取有趣的見解。請參閱下面的B / w UCF和Duke游戲的gif示例,在這里我們可以識別所有球員+裁判,并根據球員的球衣顏色將其標記為球隊。
我們使用了像Faster RCNN這樣的預訓練檢測模型來檢測玩家。你們可以輕松地從Tensorflow Object Detection API下載針對COCO數據集訓練的Faster RCNN并對其進行測試。API將每幀圖像作為輸入,并在80種不同的類別中進行檢測。請閱讀下面的樣品檢測示例,我們壓制了太大的檢測范圍,無法更清晰地將玩家細分。你們也可以在API中使用得分閾值來過濾掉低置信度檢測。

現在來了有趣的部分。我們如何確定UCF對陣杜克大學的球員?我們可以使用OpenCV來做到這一點。OpenCV允許我們識別特定顏色的蒙版,并且可以使用它來識別白人和黑人玩家。主要步驟是:
將圖像從BGR轉換為HSV色彩空間 在HSV空間中,為白色和黑色指定顏色范圍 使用OpenCV遮罩(彩色)閾值范圍內的像素 OpenCV Bitwise_and將蒙版中不存在的任何像素涂成黑色
請瀏覽下面的輸出以了解白色。它們被屏蔽為“粉紅色”,而其他所有內容均以黑色掩蓋

為了確定每個玩家的團隊,我們從張量流對象檢測中提取了邊界框,并計算該邊界框中非黑色像素的百分比,以確定該玩家的團隊??傮w代碼效果很好。但是,這是用于識別黑白球衣運動員的硬編碼邏輯。通過使用聚類來查找相似的參與者,可以使其更加通用。
OpenPose是一個實時的多人姿勢檢測庫。它可以檢測圖像中的人,并為每個人輸出主要關節(jié)的關鍵點,每個人最多可以有25個關鍵點。安裝后,你們可以通過它運行圖像,并為場景中的所有播放器獲取關鍵點,如下所示。

那么我們如何識別試圖投籃的球員呢?我們可以尋找手腕關鍵點在頭頂上方的玩家。暗示舉手。這可能表示已準備好在上述場景中射擊,也可能具有防御性。此外,球的坐標以及手腕關鍵點的坐標可以用于識別哪個舉手的球員靠近球。
深度學習使得通過鏈接不同的想法進行真正的酷分析成為可能。你們可以使用大量開放源代碼和經過預訓練的模型來開始使用數據。以上僅僅是起點。可以完成的其他很酷的事情包括:
使用OCR讀取比賽成績,以使你們的系統(tǒng)了解哪個球隊獲勝 跟蹤球以預測何時射門可以得分 跟蹤玩家以獲取每個玩家的統(tǒng)計信息 檢測諸如灌籃,三分籃球等事件
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~

