精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Python和OpenCV在線打乒乓球

開發 后端
在這篇文章中,我將概述一些我考慮過的因素,如果你希望在任何類似的項目上工作,這些因素可能會有所幫助,并且我想我會嘗試其中的一些其他工作,因此,如果你喜歡這種類型的事情,可以關注我。

使用Python和OpenCV在線打乒乓球

我最喜歡的YouTuber之一,CodeBullet,曾經嘗試創建一個乒乓球 AI來統治所有人。

這似乎是一個非常有趣且簡單的任務,所以我也想嘗試一下。在這篇文章中,我將概述一些我考慮過的因素,如果你希望在任何類似的項目上工作,這些因素可能會有所幫助,并且我想我會嘗試其中的一些其他工作,因此,如果你喜歡這種類型的事情,可以關注我。

使用計算機視覺的好處是,我可以使用已經構建的游戲并處理圖像。話雖如此,我們將使用與ponggame.org上使用的那個與CodeBullet相同的游戲版本。它還具有2人模式,因此我可以與自己的AI對抗;我做到了,這確實很難……

捕捉屏幕

第一件事就是捕捉屏幕。我想確保我的幀速率盡可能快,為此我發現MSS是一個很棒的python包。有了這個,我很容易達到60幀/秒的最高速度,與 PIL 相比,我只能得到大約20幀每秒。它以 numpy 數組的形式返回。

Paddle detection

為了簡單起見,我們需要定義paddle 的位置。這可以用幾種不同的方法來完成,但我認為最明顯的是對每個Paddle的區域進行遮罩,然后運行連接的組件來找到Paddle對象。下面是一段代碼:

  1. def get_objects_in_masked_region(img, vertices,  connectivity = 8): 
  2.     ''':return connected components with stats in masked region 
  3.     [0] retval number of total labels 0 is background 
  4.     [1] labels image 
  5.     [2] stats[0] leftmostx, [1] topmosty, [2] horizontal size, [3] vertical size, [4] area 
  6.     [3] centroids 
  7.     ''
  8.     mask = np.zeros_like(img)    # fill the mask 
  9.     cv2.fillPoly(mask, [vertices], 255) 
  10.     # now only show the area that is the mask 
  11.     mask = cv2.bitwise_and(img, mask) 
  12.     conn = cv2.connectedComponentsWithStats(mask, connectivity, cv2.CV_16U) 
  13.     return conn 

在上面,“vertices”只是定義遮罩區域的坐標列表。一旦在每個區域內有了對象,我就可以得到它們的質心位置或邊界框。需要注意的一點是OpenCV將背景作為任何連接的組件列表中的第0個對象,因此在本例中,我總是獲取第二大的對象。結果如下——右邊綠色質心的球拍是玩家 / 即將成為人工智能控制的球拍。

 

使用Python和OpenCV在線打乒乓球

移動paddle

現在我們有了輸出,我們需要一個輸入。為此,我求助于一個有用的包和其他人的代碼 。

它使用ctypes來模擬鍵盤按下,在這種情況下,游戲是用“k”和“m”鍵來玩的。我這里有掃描碼。在測試了它只是隨機上下移動后,我們就可以開始跟蹤了。

乒乓球檢測

下一步是識別并跟蹤乒乓球。同樣,這可以用幾種方法來處理——其中一種可能是通過使用模板進行對象檢測,然而,我再次使用了連接的組件和對象屬性,即乒乓球的區域,因為它是唯一具有尺寸的對象。

我知道每當乒乓球穿過或碰到其他白色物體時,我都會遇到問題,但我也認為只要我能在大多數時間里追蹤到它,這一切都沒問題。畢竟,它是直線運動的。如果你看下面的視頻,你會看到標記乒乓球的紅色圓圈是如何閃爍的。這是因為它只在每2幀中找到一個。在60幀/秒時,這并不重要。

 

使用Python和OpenCV在線打乒乓球

反彈預測的光線投射

在這一點上,我們已經有一個可工作的人工智能。如果我們只是移動球員的球拍,使其處于與乒乓球相同的y軸位置,它的效果相當不錯。然而,當乒乓球得到良好的反彈時,它確實會遇到問題。球拍太慢了,跟不上,需要預測乒乓球的位置,而不是僅僅移動到當前的位置。這已經在上面的剪輯中實現了,下面是兩種方法的比較。

 

使用Python和OpenCV在線打乒乓球

差別并不大,但如果選擇了正確的人工智能,這絕對是一場更穩定的勝利。為此,我首先為乒乓球創建了一個位置列表。為了公平起見,我把這個列表的長度控制在5個,基本上可以做到。列表不要太長,否則要花更長的時間才能發現它改變了方向。在得到位置列表后,我使用簡單的矢量平均法來平滑并得到方向矢量——如綠色箭頭所示。這也被標準化成一個單位向量,然后乘以一個長度以方便可視化。

投射光線只是這個的延伸——使前向投影變長。然后我檢查了未來的位置是否在頂部和底部區域的邊界之外。如果是這樣的話,它只是將位置投影回游戲區域。對于左側和右側,它計算出與paddle的x位置相交的位置,并將x和y位置固定到該點。這樣可以確保paddle指向正確的位置。如果沒有這一點,它通常會走得太遠。下面是定義光線的代碼,該光線可以預測乒乓球的未來位置:

  1. def pong_ray(pong_pos, dir_vec, l_paddle, r_paddle, boundaries, steps = 250): 
  2.     future_pts_list = []    for i in range(steps): 
  3.         x_tmp = int(i * dir_vect[0] + pong_pos[0]) 
  4.         y_tmp = int(i * dir_vect[1] + pong_pos[1]) 
  5.         if y_tmp > boundaries[3]: #bottom 
  6.             y_end = int(2*boundaries[3] - y_tmp) 
  7.             x_end = x_tmp        elif y_tmp < boundaries[2]: #top 
  8.             y_end = int(-1*y_tmp) 
  9.             x_end = x_tmp        else
  10.             y_end = y_tmp        ##stop where paddle can reach        if x_tmp > r_paddle[0]: #right 
  11.             x_end = int(boundaries[1]) 
  12.             y_end = int(pong_pos[1] + ((boundaries[1] - pong_pos[0])/dir_vec[0])*dir_vec[1]) 
  13.         elif x_tmp < boundaries[0]: #left 
  14.             x_end = int(boundaries[0]) 
  15.             y_end = int(pong_pos[1] + ((boundaries[0] - pong_pos[0]) / dir_vec[0]) * dir_vec[1]) 
  16.         else
  17.             x_end = x_tmp        end_pos = (x_end, y_end)        future_pts_list.append(end_pos) 
  18.     return future_pts_list 

在上面,也許不太明顯的計算方法是確定paddle對目標的左或右位置的截距。我們基本上是通過相似三角形來實現的,圖片和方程如下所示。我們知道在邊界中給定的paddle的x位置的截距。然后我們可以計算出乒乓球將移動多遠,并將其添加到當前的y位置。

 

使用Python和OpenCV在線打乒乓球

paddle雖然看起來筆直,但實際上有一個彎曲的反彈面。也就是說,如果你用球拍向兩端擊球,球會反彈,就像球拍有角度一樣。因此,我允許球拍擊中邊緣,這增加了人工智能的攻擊性,使乒乓球四處飛舞。

結論

盡管是為這種特定的乒乓球實現而設計的,但是相同的概念和代碼也可以用于任何版本——只需要改變一些預處理步驟。當然,另一種方法是通過強化學習或簡單的conv-net使用機器學習,但我喜歡這種經典方法;至少在這種情況下,我不需要健壯的通用性或困難的圖像處理步驟。正如我提到的,這個版本的乒乓球是2人,老實說我無法打敗我自己的AI…

 

[[342950]]

 

 

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2022-10-26 13:52:00

機器人谷歌

2022-10-13 13:07:53

AI人腦細胞游戲

2022-12-20 12:03:39

樹莓派假日彩燈

2012-08-13 13:40:30

WebGL

2021-09-23 11:53:06

網絡安全數據技術

2021-09-16 14:43:27

6G技術5G移動通信

2018-06-05 10:24:03

2015-06-02 04:13:23

Python乒乓球類游戲

2020-12-03 10:14:12

乒乓球機器人

2017-09-14 11:37:25

華為聯合解決方案推廣賽

2025-02-28 09:07:00

2021-08-06 12:08:12

機器人

2024-08-09 14:47:00

2015-04-30 15:43:10

eLTE第53屆世乒賽華為

2011-08-08 23:05:23

婓迅社團活動

2020-12-01 16:51:05

軟件工程師編碼代碼

2014-12-04 14:36:25

2016-09-22 21:12:14

2016-09-14 21:17:47

PythonAsyncio游戲

2016-09-19 21:24:08

PythonAsyncio游戲
點贊
收藏

51CTO技術棧公眾號

国产精品.xx视频.xxtv| 中文字幕久久网| 免费日韩一区二区三区| 色先锋久久av资源部| 视频一区亚洲| 亚洲精品一区二区口爆| 西西裸体人体做爰大胆久久久| 国产一区二区三区丝袜| 一级黄色高清视频| 久久久精品视频国产| 日本精品在线免费观看| 日本一区二区三区播放| 天天亚洲美女在线视频| 亚洲视频电影| 天堂网在线资源| 奇米色一区二区三区四区| 欧美激情手机在线视频 | 亚洲ⅴ国产v天堂a无码二区| 爱情电影网av一区二区| 日韩欧美在线免费| 精品人妻人人做人人爽| 中文字幕 自拍| avtt久久| 2001个疯子在线观看| 欧美天天视频| 中文字幕精品—区二区| 亚洲观看黄色网| www欧美在线观看| 91官网在线免费观看| 日本wwwcom| 免费在线午夜视频| 国产夜色精品一区二区av| 99在线国产| 国产乱码精品一区二区三区精东| 爽爽淫人综合网网站 | 麻豆传媒在线免费看| 久久亚洲精精品中文字幕早川悠里| 亚洲va欧美va国产综合久久| 姑娘第5集在线观看免费好剧| aⅴ色国产欧美| 欧美激情一区二区三区成人| 人人澡人人澡人人看| 国产精品三级| 亚洲美女www午夜| 一起草在线视频| 中文字幕日韩在线| 91麻豆精品国产91久久久资源速度 | 91精品人妻一区二区三区蜜桃2| 91精品店在线| 在线观看日韩电影| 那种视频在线观看| 欧美aa免费在线| 精品av在线播放| 免费一级特黄毛片| 黄视频免费在线看| 亚洲成人激情av| 国产freexxxx性播放麻豆| 18网站在线观看| 亚洲美女精品一区| 永久免费在线看片视频| sm国产在线调教视频| 自拍偷拍亚洲综合| 国产日韩欧美大片| 亚洲小说区图片区都市| 一区二区在线观看免费视频播放| 老司机激情视频| 里番在线播放| 精品国产福利在线| 中文字幕av久久| 午夜激情在线| 婷婷国产v国产偷v亚洲高清| 国产午夜伦鲁鲁| 亚洲欧美se| 91久久精品一区二区三| 国产又大又黄又粗又爽| 欧美日韩破处视频| 5858s免费视频成人| 黑人巨大猛交丰满少妇| 国产精品白丝av嫩草影院| 精品久久国产老人久久综合| 怡红院一区二区| 亚洲人成精品久久久| 国产一区二区三区在线视频| 亚洲色图27p| 欧美色一级片| 国产99久久精品一区二区| 久久人人爽人人爽人人片av免费| 久久国产福利国产秒拍| 99电影网电视剧在线观看| 人妻夜夜爽天天爽| 久久久久国产精品人| 在线看视频不卡| 黄视频在线免费看| 91福利在线观看| 手机精品视频在线| 小嫩嫩12欧美| 久久视频精品在线| 天天综合网久久综合网| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲专区中文字幕| 日本一级在线观看| 亚洲日本丝袜连裤袜办公室| 一二三四视频社区在线| 日韩一级二级| 欧美大片在线观看一区| 黄免费在线观看| 欧美伊人影院| 国产精品第二页| 亚洲美女综合网| 欧美国产激情二区三区| 国产精品久久久久久久久电影网| av激情成人网| 亚洲成人黄色在线观看| 99re6热在线精品视频| 亚洲三级影院| 成人免费在线视频网址| 欧美女v视频| 亚洲一二三四久久| 一道本在线免费视频| 牛牛精品成人免费视频| 久久亚洲精品视频| 亚洲国产av一区二区三区| 国产精品一二一区| 亚洲欧洲精品一区二区三区波多野1战4| 免费在线中文字幕| 欧美精选午夜久久久乱码6080| 韩国三级hd两男一女| 911精品美国片911久久久 | 一级做a爰片久久| 亚洲女同av| 欧美精品一区二| 538精品在线观看| 久久精品久久综合| 日韩精品无码一区二区三区| 理论不卡电影大全神| 日韩欧美综合一区| 国产男女猛烈无遮挡在线喷水| 午夜在线观看免费一区| 黄色国产精品一区二区三区| www在线视频| 在线不卡中文字幕播放| 久久久久亚洲AV成人无在| 国产亚洲激情| 精品一区二区国产| hd国产人妖ts另类视频| 欧美成人一级视频| 少妇影院在线观看| 国产一区二区成人久久免费影院| 午夜欧美性电影| 不卡av免费观看| 91精品国产一区二区三区| 极品色av影院| 国产资源精品在线观看| 亚洲男女性事视频| 韩国黄色一级大片| 伊人久久大香线蕉综合影院首页| 亚洲图片欧美午夜| 一二三区免费视频| 国产清纯在线一区二区www| 欧美日韩一区二区在线免费观看| 亚洲专区视频| 国产精品激情自拍| 在线观看a视频| 9191精品国产综合久久久久久| 五月婷婷综合激情网| 国内成+人亚洲+欧美+综合在线 | 瑟瑟在线观看| 色婷婷av一区二区三区软件 | 中文字幕日韩精品一区| 国产传媒免费观看| 欧美在线亚洲| 国产精品高清一区二区三区| 免费一二一二在线视频| 亚洲三级av在线| 亚洲一区二区三区网站| 亚洲欧美日本在线| 人妻 日韩 欧美 综合 制服| 国产亚洲精品久久久久婷婷瑜伽| 日本一区网站| 国产美女精品视频免费播放软件| 欧美国产日韩xxxxx| 天天综合天天色| 欧美午夜寂寞影院| 国产97免费视频| 国产精品一二三| 欧美日韩二三区| 成人短片线上看| aaa级精品久久久国产片| 黄色软件视频在线观看| 中文字幕成人精品久久不卡| 99视频在线观看免费| 婷婷久久综合九色国产成人| 第一次破处视频| 国产成人精品亚洲日本在线桃色 | 高清精品视频| 1000精品久久久久久久久| 国产女同无遮挡互慰高潮91| 最新国产乱人伦偷精品免费网站| 日本免费高清一区二区| 日韩成人久久| 国产精品草莓在线免费观看| 18av在线播放| 国产午夜精品视频| www.激情五月.com| 在线视频你懂得一区二区三区| 人妻少妇精品一区二区三区| 久久这里只精品最新地址| 日本精品一区在线| 久久国产高清| 日韩精品一区二区在线视频| 欧美日韩国产免费观看视频| 国产精品日韩一区二区三区| 国产三级一区| 欧美亚洲成人xxx| 性直播体位视频在线观看| 在线不卡国产精品| 青青草娱乐在线| 精品国偷自产国产一区| 97国产成人无码精品久久久| 色哟哟国产精品| 日本三级视频在线| 亚洲免费观看高清完整版在线观看 | 日韩亚洲精品视频| 四虎影院在线域名免费观看| 日韩欧美国产高清| 午夜久久久久久久久久影院| 亚洲国产精品视频| 日韩va亚洲va欧美va清高| 国产欧美日本一区二区三区| 中文字幕一区二区三区人妻不卡| 国产乱对白刺激视频不卡| 久久这里只精品| 久热精品视频| 美女日批免费视频| 欧美激情视频一区二区三区免费| 在线精品亚洲一区二区| 精品久久久久久久久久久下田| 精品一区久久久| 欧美调教网站| 精品亚洲欧美日韩| 丝袜美腿综合| 精品久久久久久一区| 成人午夜大片| 国外成人在线视频网站| 波多野结衣欧美| 99热在线播放| 中文字幕区一区二区三| 官网99热精品| 亚洲视频国产| 国产伦视频一区二区三区| 91精品啪在线观看国产手机| 国产传媒一区二区| 成人h动漫精品一区二区器材| 成人免费视频网站| av动漫精品一区二区| 一区二区三区欧美亚洲| 57pao国产成永久免费视频| 美女性感视频久久| 亚洲免费看av| 国产一区二区三区在线观看免费| 亚洲理论中文字幕| 国产伦精品一区二区三区视频青涩| 中文国产在线观看| 国产91精品露脸国语对白| 91精品人妻一区二区三区蜜桃2| 成人污视频在线观看| 性色av蜜臀av色欲av| 国产亚洲精品中文字幕| www久久久久久久| 亚洲嫩草精品久久| 国产小视频在线看| 欧美日韩在线影院| 精品国产www| 91精品国产91综合久久蜜臀| 亚洲第一天堂在线观看| 亚洲国产黄色片| 国产精品久久久久久久龚玥菲 | 91手机在线播放| 久久动漫网址| 亚洲日本一区二区三区在线不卡 | 国产亚洲综合av| 黑人操日本美女| 亚洲超碰97人人做人人爱| 亚洲自拍一区在线观看| 欧美精品18+| 婷婷色在线视频| 最近2019免费中文字幕视频三| 羞羞网站在线免费观看| 国产97色在线|日韩| 国产aa精品| 日韩成人网免费视频| 欧美一区二区三区粗大| 亚洲精品福利视频网站| 国产免费av一区二区| 欧美日韩国产一二三| 少妇高潮一区二区三区99小说| 在线成人激情黄色| 欧洲一区二区三区| 国产成人欧美在线观看| 免费观看亚洲视频大全| 蜜桃视频日韩| 国产精品激情电影| 中文字幕一区二区三区四区在线视频| 国产毛片精品一区| 国产精品密蕾丝袜| 亚洲图片欧美一区| 一起草av在线| 日韩高清a**址| а√中文在线8| 国产精品爽爽爽爽爽爽在线观看| 国产精品色呦| 欧美aaa在线观看| 日韩影院免费视频| 特级西西人体4444xxxx| 最新热久久免费视频| 亚洲乱码国产乱码精品| 精品国产髙清在线看国产毛片| aaa免费在线观看| 在线观看视频日韩| 日韩精品aaa| 国产精品全国免费观看高清 | 欧洲av一区二区三区| 亚洲国产精品久久一线不卡| 国产一区二区三区三州| 亚洲天堂av在线播放| 成人性生交大片免费看网站| 91香蕉亚洲精品| 日韩欧美一区二区三区免费看| 日本成年人网址| www.久久久久久久久| 国产成人自拍网站| 欧美日本一区二区三区四区 | 久热精品视频在线| 无人区在线高清完整免费版 一区二| 国产一区在线观| 在线精品亚洲| 一级黄色电影片| 亚洲一区二区三区中文字幕| 午夜精品久久久久久久99| 精品久久久999| 亚洲欧美综合久久久久久v动漫| 日本高清一区| 日韩黄色在线观看| 免费看黄色的视频| 91国在线观看| 国产福利电影在线| 国产精品美女无圣光视频| 精品国精品国产自在久国产应用 | 亚洲最大免费| 精品中文字幕一区二区小辣椒 | 99热国内精品| 三区视频在线观看| 自拍偷拍国产精品| 精品人妻久久久久一区二区三区| 欧美成人午夜激情| 一区二区三区亚洲变态调教大结局 | 成人国产精品一区| 天天综合精品| ass极品水嫩小美女ass| 亚洲综合一二区| 日本波多野结衣在线| 69av在线视频| 欧美日韩国产免费观看视频| 欧美黄色性生活| 综合色天天鬼久久鬼色| av男人天堂网| 97精品久久久| 亚洲免费专区| 亚洲免费一级视频| 亚洲日本一区二区| 亚洲狼人综合网| 日本视频久久久| 日韩欧美高清| 日本人妻一区二区三区| 欧美日韩国产精品一区二区不卡中文| 波多野结衣激情| 久久久久久久欧美精品| 欧美18—19性高清hd4k| 3d动漫精品啪啪1区2区免费| 欧美野外wwwxxx| 蜜桃视频在线观看成人| 美女免费视频一区| 曰本女人与公拘交酡| 日韩精品黄色网| 另类一区二区| 国产高清av在线播放| 国产女人水真多18毛片18精品视频| 99精品国产99久久久久久97| 91国内免费在线视频| 91日韩免费| 中文成人无字幕乱码精品区| 欧美日韩色一区| 成人bbav| 在线看无码的免费网站| 99国产精品国产精品久久| 中文字幕丰满人伦在线| 久久久欧美一区二区| 青青草成人影院| 在线精品视频播放| 欧美日韩精品系列|