<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用OpenCV+Tensorflow跟蹤排球的軌跡

          共 2477字,需瀏覽 5分鐘

           ·

          2020-09-18 05:01

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          介紹

          本文將帶領(lǐng)大家如何把人工智能技術(shù)帶到體育項(xiàng)目中。

          運(yùn)動(dòng)中的人工智能是一個(gè)很新的東西,以下是一些有趣的作品:

          • 籃球

            • https://dev.to/stephan007/open-source-sports-video-analysis-using-maching-learning-2ag4
          • 網(wǎng)球
            • https://www.researchgate.net/publication/329740964_Convolutional_Neural_Networks_Based_Ball_Detection_in_Tennis_Games
          • 排球
            • https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/vb14/
          我是個(gè)排球迷,所以讓我們來看看最后一個(gè)網(wǎng)站,這是一個(gè)奧地利研究所的網(wǎng)站,他分析了當(dāng)?shù)貥I(yè)余聯(lián)賽的比賽數(shù)據(jù)。
          其中有一些文檔需要閱讀,最主要的信息是視頻數(shù)據(jù)集。
          排球是一項(xiàng)復(fù)雜的運(yùn)動(dòng),有許多不同的因素,所以我從一個(gè)很小但很重要的部分開始——球。
          跟蹤球是一項(xiàng)非常著名的任務(wù)。谷歌提供了很多鏈接,但其中有許多只是一個(gè)簡單的演示。在攝像機(jī)前識(shí)別和跟蹤一個(gè)彩色的大球是無法與真實(shí)的比賽用球檢測相比較的,因?yàn)楝F(xiàn)實(shí)世界中的球很小,移動(dòng)速度很快,而且融入了背景中。
          最后,我們希望得到這樣的結(jié)果:

          在開始之前,讓我們先來研究以下視頻數(shù)據(jù)集的一些細(xì)節(jié):
          • 攝像機(jī)是靜止的,位于球場后面
          • 如果打球的運(yùn)動(dòng)員技術(shù)水平不是高,我們可以輕松地看到球(專業(yè)人士擊球太猛,如果沒有電視回放幾乎不可能看到球)
          • 球的顏色:藍(lán)色和黃色,與地板的反差不大,這使得所有基于顏色的方法變得毫無意義

          解決方案

          到目前為止最明顯的方法 —— 用顏色 —— 不起作用,所以我利用的是正在移動(dòng)中的球。

          讓我們找到移動(dòng)的物體并識(shí)別出它是球,聽起來很簡單。

          OpenCV包含用于檢測帶有背景移除的移動(dòng)對(duì)象的工具:

          mask?=?backSub.apply(frame)?????
          mask?=?cv.dilate(mask,?None)?????
          mask?=?cv.GaussianBlur(mask,?(15,?15),0)?????
          ret,mask?=?cv.threshold(mask,0,255,cv.THRESH_BINARY?|?cv.THRESH_OTSU)

          將這樣的圖片

          轉(zhuǎn)化成:

          在這個(gè)例子中,球在上面,人腦和眼睛可以很容易地檢測到它,那我們是如何決定的?可以從圖中可以推斷出一些規(guī)律:

          • 這個(gè)球是團(tuán)狀的

          • 這是照片上最高的斑點(diǎn)

          但第二條規(guī)律不太管用,例如在這張照片中,最高的斑點(diǎn)是裁判的肩膀。

          但 highest-blob 方法提供了進(jìn)一步的初始數(shù)據(jù)。
          我們可以收集這些斑點(diǎn)并訓(xùn)練分類器來區(qū)分球。
          此數(shù)據(jù)集如下所示:

          在人工智能方面來看,這是一個(gè)二元分類的彩色圖像,非常類似于Cats-vs-Dogs挑戰(zhàn)。

          • Cats-vs-Dogs:https://www.kaggle.com/c/dogs-vs-cats

          實(shí)現(xiàn)的方法有很多種,但最流行的方法是使用VGG神經(jīng)網(wǎng)絡(luò)。

          • VGG神經(jīng)網(wǎng)絡(luò):https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html

          一個(gè)問題 —— 球的圖片非常小,不適合用多個(gè)卷積層,所以我不得不將VGG簡化為一個(gè)非常簡單的架構(gòu):

          model?=?Sequential([
          Convolution2D(32,(3,3),?activation='relu',???????input_shape=input_shape),?????????MaxPooling2D(),????????????Convolution2D(64,(3,3),?activation='relu'),?????????
          ?MaxPooling2D(),?????????
          Flatten(),?????????
          Dense(64,?activation='relu'),?????????
          Dropout(0.1),?????????
          Dense(2,?activation='softmax')???????
          ])

          model.compile(loss="categorical_crossentropy",???optimizer=SGD(lr=0.01),?metrics=["accuracy"])

          該模型簡單,結(jié)果一般:大約20%的假陽性和30%的假陰性。

          但這總比什么都沒有好,當(dāng)然,這樣還不夠。

          應(yīng)用于游戲的模型會(huì)產(chǎn)生許多“假球”:

          實(shí)際上有兩種假球:
          • 它們隨機(jī)時(shí)間出現(xiàn)在隨機(jī)位置
          • 這個(gè)模型總是犯錯(cuò)誤,把其他東西認(rèn)作一個(gè)球

          軌跡

          下一步,我們的想法是這樣:球不會(huì)隨機(jī)移動(dòng),而是遵循拋物線或線性軌跡。
          對(duì)這個(gè)幾何體上的水滴運(yùn)動(dòng)進(jìn)行驗(yàn)證將切斷隨機(jī)和一致的錯(cuò)誤。
          有一個(gè)記錄一次打球的軌跡的例子:
          其中有向路徑為藍(lán)色,靜態(tài)路徑為綠色,隨機(jī)路徑為灰色。
          只有藍(lán)色的軌跡才是有用的,它們至少由3個(gè)點(diǎn)組成,并且有一個(gè)方向。方向是非常重要的,因?yàn)橛辛朔较蚓涂梢灶A(yù)測下一個(gè)點(diǎn),以防它在實(shí)際流中丟失,并且沒有檢測到新的路徑。
          這個(gè)邏輯應(yīng)用到片段中產(chǎn)生一個(gè)相當(dāng)真實(shí)的跟蹤:

          鏈接

          Github存儲(chǔ)庫
          • https://github.com/tprlab/vball
          參考鏈接:https://towardsdatascience.com/ball-tracking-in-volleyball-with-opencv-and-tensorflow-3d6e857bd2e7



          ☆ END ☆
          瀏覽 64
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩三级电影在线观看 | 国产乱淫AV片免费 | 亚洲色婷婷影视 | 日韩精品毛片 | 偷拍日本大香蕉 |