首頁  >  文章  >  科技週邊  >  今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

WBOY
WBOY轉載
2023-04-12 09:52:051517瀏覽

前天,C羅的球迷們傷心慘了。

12月11日的卡達世界盃上,葡萄牙不敵摩洛哥止步八強,C羅的世界盃之旅,就這樣畫上了遺憾的句點。

#C羅說夢想結束了#的這個熱搜下,集結了不知多少心碎的球迷。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

葡萄牙對摩洛哥的這場比賽,出現了0:1的爆冷結果。羅納多哭了,內馬爾哭了,下一個會是誰?

不過,還沒來得及從為C羅傷心中走出來,今晚又要迎來梅西和莫德里奇的對決了!

怕心臟受不了?

現在,有了這麼一個模型,沒能準能讓你在比賽開始的5分鐘內,就提前知道這場球會不會爆冷。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

當電腦視覺用於足球

#國外的這位機器學習工程師,一直希望把電腦視覺(CV)和自己熱愛的足球結合。

在三年前,他就曾嘗試用YOLOv3來把籃球場上的運動員進行檢測和分類。

而眼下的FIFA世界杯,讓他重新撿起了這個想法。

這次,他使用的是YOLOv5和ByteTRACK的組合,來追蹤球場上的足球員。

第1步:建立預訓練偵測器

#最初,Skalski希望能跳過自訂模型訓練。

他希望從開始到結束只花幾個小時,速戰速決。

因為用於訓練YOLOv5和YOLOv7模型的流行COCO資料集包含他最感興趣的兩個類別— person和sports ball,這就讓他非常樂觀,認為可以從COCO檢查點進行訓練。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

他從Kaggle的德甲數據大戰中快速下載了幾十個簡短的足球比賽視頻,並將預訓練模型用於測試。

在嘗試了iou_threshold,confidence_threshold,input_resolution等各種配置後,他得到的結果令人失望。

在這個模型上,僅僅在幾個視訊畫面上能偵測到球,因為數量太少,模型無法可靠地追蹤如此小且快速移動的物體。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

另一方面,這個模型會偵測到場外的許多冗餘物件-教練、球迷、維修人員、攝影人員等。為了這些冗餘對象,需要寫額外的偵測過濾邏輯,太過麻煩。

可見,即使資料集包含所需的類,但用於推理的影片肯定與用於訓練的影像有很大不同。

在這種情況下,Skalski只能建立自己的資料集,並訓練自訂模型。

第2步:建立自訂偵測器

而訓練自訂模型,就需要付出很多努力。

最主要的原因是,為了註解影像,必須完成大量的手動工作。

由於時間匆忙,需要盡可能的簡化流程。

Skalski從前面提到的Kaggle資料集中選擇了幾十個視頻,並使用FFmpeg從每個視頻中提取10幀——每3秒一個。

接下來,就是對影像執行自動初步註釋,並將偵測到的物件儲存到txt文件,來利用預先訓練的YOLOv5 模型。

接下來,第2階段就是要完善資料了。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

雖然電腦已經完成了90%的工作,但人工修正仍花了Skalski將近5個小時的時間。

同時,他也引進了兩個額外的物件類別-裁判和守門員。他的工作成果,在Roboflow Universe上可見。該資料集是開源的,任何人都可以免費使用。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

預先訓練vs自訂足球員偵測器

#自訂訓練的結果讓Skalski對於解決上述兩個問題充滿自信。

但不幸的是,可能是由於分類不平衡,模型在檢測goalkeeper類別時仍然存在問題。

於是,在接下來,Skalski將每個守門員視為一名普通的足球員。

Skalski的模型和他的資料集一樣,在Roboflow Universe上都是可用的。只需拖放測試圖像即可。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

第3步:追蹤物件

Skalski使用的是ByteTRACK(SOTA多物件追蹤器之一)來追蹤影片中的物件。

ByteTRACK在內部並沒有使用任何神經網路。這個模型的強大功能完全來自於簡單的數學計算:比較各個幀上的邊界框位置。

最重要的是,ByteTRACK不負責偵測,只負責追蹤。因此,它不需要像其他一些追蹤器那樣進行單獨訓練。

因而,ByteTRACK讓我們可以輕鬆地更換偵測器,而無需重新設計整個程式碼的架構。

以下是一段簡化的程式碼片段,在自己的專案中,您需要利用ByteTRACK的起始程式碼。

在ByteTRACK專案中,框架上的每個物件都有一個唯一的ID。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

這是模型的結果:

ByteTRACK單幀結果

可以看到,每個玩家都被分配了一個唯一的編號,並在幀之間進行追蹤。

當然,偵測和追蹤只是個開始。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

#

有了這些,我們就可以更上一層樓了!

例如,現在可以快速分析動作的過程,了解球是如何在球員之間移動的,計算球員移動的距離,或者定位他們最常出現的場地區域。

網友:不去賭球可惜了

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

#有網友表示:既然你掌握了這麼多訊息,不去賭球真的虧了。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

對此,有激動的網友表示:「這也太夢幻了!我一直就想做出這樣一個東西賣給賭球的人。」

「你可以呈現出每個進攻球員的每一秒的傳球狀態和準備狀態。甚至可以對從未被傳球的球員進行360 度的表現評估,這比估計的賠率準確多了!」

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

也有網友表示:dream一個足球比賽的即時小地圖。

今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏

有嚴謹的網友詢問道:「這個腳本是否只適用於一個固定的攝影機角度,例如從覆蓋整個地面的一側?可不可以用在其他攝影角度上,例如對3-4位球員進行對焦拍攝。」

對此帖主回覆:「我認為我們可以添加來自其他角度的用例的數據,重新訓練模型,它應該表現得一樣好。」

而該網友表示:「我感覺換個角度的訓練數據是行不通的。我的想法是,繼續在全攝影機角度拍攝時運行腳本,但要記下球的位置和球周圍的球員,並在任何其他提要上標記資料。」

#

以上是今晚,為梅西和莫德里奇熬夜!這個CV模型,讓你猜球必贏的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除