亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MediaPipe手勢(shì)識(shí)別:猜拳游戲(提高篇)

        2023-05-30 18:46:19牟奕炫
        電腦報(bào) 2023年19期

        牟奕炫

        在上期的基礎(chǔ)篇中, 我們借助MediaPipe 實(shí)現(xiàn)了對(duì)十個(gè)數(shù)的手勢(shì)識(shí)別(Windows 環(huán)境)。在此基礎(chǔ)之上我們借助樹莓派實(shí)現(xiàn)一個(gè)簡(jiǎn)易的“猜拳”游戲:用戶和樹莓派都隨機(jī)出“剪子包袱錘”(與數(shù)字2、5、0 的手勢(shì)一致)中的一種,由程序來(lái)判定輸贏(輸出文字信息),同時(shí)樹莓派也用不同顏色的LED 燈提示(也可以另外添加蜂鳴器或OLED 顯示屏)。

        1.實(shí)驗(yàn)器材及連接

        實(shí)驗(yàn)硬件包括樹莓派3B+ 主板一塊,古德微擴(kuò)展板一塊,攝像頭一個(gè),紅色、綠色和黃色LED 燈各一支。將綠色和黃色LED 燈按照“長(zhǎng)腿正、短腿負(fù)”的原則,分別插入擴(kuò)展板的6 號(hào)和12 號(hào)引腳處即可。

        2.庫(kù)模塊的添加、函數(shù)代碼的精簡(jiǎn)及LED 燈的初始化

        接下來(lái),給樹莓派通電啟動(dòng)操作系統(tǒng),通過(guò)Windows 的遠(yuǎn)程桌面連接進(jìn)入Thonny 編輯器,開始Python 代碼的編寫。

        將之前的“[01]Recognize_Number.py” 復(fù)制粘貼, 重命名為“[02]Finger_Game.py”。在庫(kù)模塊的導(dǎo)入部分,需要添加語(yǔ)句:“import random”、“import time”和“from gpiozero importLED”; 刪除計(jì)算矢量角度的finger_angle(point1,point2) 函數(shù), 因?yàn)椴辉傩枰R(shí)別數(shù)字9(彎曲的食指);再來(lái)精簡(jiǎn)finger_sign(tip_finger,list_data) 函數(shù)代碼:

        只保留2、5 和0 三個(gè)數(shù)字的相關(guān)代碼,刪除其他7 個(gè)數(shù)字的手勢(shì)識(shí)別代碼,并將對(duì)應(yīng)的變量finger_sign 分別賦值為“剪子”、“包袱”和“錘”,也就是將手勢(shì)識(shí)別結(jié)果進(jìn)行重定義:當(dāng)檢測(cè)到食指指尖和中指指尖同時(shí)在“凸包”區(qū)域外時(shí),則認(rèn)定該手勢(shì)為“剪刀”;當(dāng)檢測(cè)到五個(gè)指尖均在“凸包”區(qū)域外時(shí),則認(rèn)定該手勢(shì)為“包袱”;當(dāng)在“凸包”區(qū)域外沒(méi)有檢測(cè)到有任何手指指尖時(shí),則認(rèn)定該手勢(shì)為“錘”。

        在main() 主程序的初始化部分,需要添加對(duì)三支LED 燈的引腳定義語(yǔ)句:“Red_LED = LED(5)”、“Green_LED = LED(6)” 和“Yellow_LED =LED(12)”。

        3.“while True:”部分代碼的修改

        在程序的手勢(shì)識(shí)別后半部分,新建變量your_finger 并賦值為“finger_sign(tip_finger,list_data)”,作用是“接收”通過(guò)函數(shù)調(diào)用返回后的手勢(shì)識(shí)別結(jié)果;建立三種手勢(shì)名稱的變量guess_list,賦值為“[" 剪刀"," 包袱"," 錘"]”;再建立樹莓派隨機(jī)手勢(shì)變量raspi,賦值為“random.choice(guess_list)”,通過(guò)調(diào)用random庫(kù)中的choice() 函數(shù)從guess_list 列表中隨機(jī)“抽取”一種手勢(shì);建立變量win_list,賦值為“[[" 剪刀"," 包袱"],[" 包袱","錘"],[" 錘"," 剪刀"]]”(列表中嵌套列表數(shù)據(jù)),作用是列舉出三種“勝局”所對(duì)應(yīng)的對(duì)弈情況:“剪刀”勝“包袱”、“包袱”勝“錘”、“錘”勝“剪刀”。

        接下來(lái), 建立“if your_finger:” 選擇結(jié)構(gòu)(當(dāng)有手勢(shì)識(shí)別信息返回時(shí)),先分別打印輸出用戶和樹莓派各自的手勢(shì):“print(" 您出的是:",your_finger)”、“print(" 樹莓派出的是:",raspi)”;然后對(duì)二者進(jìn)行判斷——如果相同(“if your_finger==raspi:”),則輸出提示信息“這是一場(chǎng)平局咯!”,并且控制黃色LED發(fā)光(“Yellow_LED.on()”); 如果二者所組合的列表是變量win_list 所存儲(chǔ)的任意一種“勝局”數(shù)據(jù)(“elif [your_finger,raspi] in win_list:”), 則輸出提示信息“祝賀——您贏,樹莓派輸啦!”,并且控制綠色LED 燈發(fā)光(“Green_LED.on()”);如果不是以上兩種情況(else分支),則輸出提示信息“sorry——樹莓派贏,您輸啦!”,并且控制紅色LED 燈發(fā)光(“Red_LED.on()”)。

        添加時(shí)間延遲語(yǔ)句“time.sleep(3)”, 作用是確保LED 燈每次發(fā)光要持續(xù)3 秒鐘;然后,在進(jìn)入下一輪游戲之前關(guān)閉LED 燈:“Yellow_LED.off()”、“Green_LED.off()” 和“Red_LED.off()”。

        4.測(cè)試猜拳游戲的手勢(shì)識(shí)別

        保存并運(yùn)行程序,分別在攝像頭前多次嘗試剪刀、包袱和錘的隨機(jī)手勢(shì),樹莓派同樣也會(huì)隨機(jī)產(chǎn)生某種手勢(shì)。程序判斷出“輸贏”結(jié)果后,會(huì)在屏幕上顯示輸出相關(guān)的提示信息,同時(shí)所對(duì)應(yīng)顏色的LED燈也會(huì)發(fā)光(如圖)。

        源代碼請(qǐng)關(guān)注壹零社公眾號(hào),從網(wǎng)盤下載2023-19.zip。

        一二区视频免费在线观看| 久久人人玩人妻潮喷内射人人| 蜜桃一区二区三区| 手机看片久久国产免费| 亚洲精品你懂的在线观看| 国产对白刺激在线观看| 国产av区亚洲av毛片| 国产在线一区二区三区四区不卡| 午夜福利av无码一区二区| 欧美激情区| 日韩少妇高潮在线视频| 蜜臀av一区二区三区免费观看| 九九热线有精品视频86| 亚洲天堂免费视频| 亚洲精品国产二区在线观看| 三级国产高清在线观看| 一本色道久久88亚洲精品综合| 怡红院a∨人人爰人人爽| 国产高清吃奶成免费视频网站 | 高清在线有码日韩中文字幕 | 亚洲日韩国产av无码无码精品| 久久人人爽人人爽人人av东京热| 国产av天堂成人网| 丰满少妇a级毛片| 国产成人精品白浆久久69| 99热在线精品播放| 亚洲天堂av免费在线| 亚洲一区二区不卡日韩| 少妇被黑人整得嗷嗷叫视频| 东京热久久综合久久88| 中文乱码人妻系列一区二区| 麻豆变态另类视频在线观看| 久久久免费精品国产色夜| 国产三级不卡一区不卡二区在线 | 久久免费精品国产72精品剧情 | 亚洲乱码中文字幕在线播放| 麻豆精品久久久久久久99蜜桃| 好爽…又高潮了毛片免费看| 亚洲九九九| 少妇人妻精品久久888| 色天使综合婷婷国产日韩av|