999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于攝像頭的手勢控制小車

2015-11-03 04:23:58謝作如
中國信息技術教育 2015年19期

謝作如

用手勢控制小車,大家往往喜歡用加速度傳感器來實現。最簡單的做法莫過于在手機上裝一個App。這個App能檢測手機的運動方向,然后轉化為控制信息發給小車。

而我總是希望用一種更加有趣、更加自然的方式去控制小車。微軟的Kinect出來后,就有專家寫了一本書——《用最自然的方式與機器對話》。的確,在Kinect的支持下,手勢控制變得非常簡單,其互動游戲很受人歡迎(如圖1)。但對于手勢識別來說,Kinect并不是唯一的選擇,用普通攝像頭我們也能夠實現。

原理分析

在上一期文章中,我們已經大致體驗了Processing的功能。作為一款以互動為特色的開源編程語言,Processing擁有大量的擴展庫,并且提供了各種具體的應用范例。其中視頻庫支持外部攝像頭,可以實時獲取視頻畫面中的每一個像素點,并進行分析。在有效的算法支持下,我們也可以做到圖像分割、物體識別、人臉識別、動作識別、運動跟蹤等。同時,Processing支持串口編程,可以通過串口和外部設備(如Arduino)通訊。這些類似的應用,在Processing范例庫中都能夠找到,技術門檻并不高。用手勢控制小車這件作品的運行原理如圖2所示。

但由于我們使用的是普通攝像頭,當然實現不了如Kinect的動作識別效果。雖然從理論上說,Processing也能實時識別出人的手勢,但是算法非常復雜,不是中小學的學生能夠理解的。所以,我試著用另一種簡單的方式去實現,即讓小車的操控者帶上一只特殊顏色的手套或者手上拿一個特定顏色的LED燈,Processing對視頻畫面的像素點進行遍歷,找到這一顏色后,根據座標對小車發出控制信息。簡單地說,就是實現一個能夠捕捉視頻中特定顏色的程序。

視頻中特定顏色和控制信息的關系具體顯示為:圖3為小車前進,圖4為小車后退,圖5為小車左轉,圖6為小車右轉,畫面中小矩形標志的表示識別出來的顏色。

按照這樣的方式定義“上、下、左、右”的控制信息比較容易,也比較好理解。但是,如果坐標在左上角該怎么處理?如圖7所示。

如果給小車裝上指南針,應該可以實現非常酷的功能。我們可以想象,特定顏色的坐標在畫面的不同方位,就代表控制小車往哪個方向前進。試想一下“走你”的姿勢吧,手一揮,小車如離弦的箭一樣沖向目標,這種操控的樂趣怎一個“酷”字了得。而且,編程也不會太復雜,Processing只要將這個坐標相對于畫面中心點的角度發給小車即可。問題是我在寫這個范例時,手頭并沒有指南針(電子羅盤)模塊,只好放棄這一想法。對這種情況,我就當作左轉來處理。同時,我把畫面上的區域做了規劃,設定中間的區域為“停止”(如圖8)。

制作一輛藍牙小車

我的手頭有好多DFrobot公司的MiniQ小車底盤,來自我的課程“Arduino創意機器人”中使用的機器人套件?!癆rduino創意機器人”課程已經全部開源,關于小車的搭建步驟詳見我們的課程資源。當然,只要加上一塊藍牙模塊,任何一輛Arduino小車都可以。圖9為帶藍牙的MiniQ小車。

一般而言,藍牙模塊有4條線需要和Arduino連接,分別為5V、GND、TX和RX。5V和GND要和Arduino上的5V和GND一一對應,但是RX接在Arduino的TX上,TX要接在Arduino的RX上。因為我選擇的藍牙模塊也是DFrobot公司的,小車使用的控制板為RoMeo V1,上面已經集成了藍牙模塊接口,插上就可以直接使用,不用另外接線。

對于小車的編程,我使用Mixly。Mixly(中文名為米思齊)是北師大創客教育實驗室推出的一款新的Arduino圖形化編程軟件,基于Blockly開發,界面友好,功能比ArduBlock更加強大。Mixly軟件的界面如圖10所示。

Mixly使用Java開發,需要先安裝Java環境,建議安裝Java8.0。Mixly為綠色軟件,解壓后運行Mixly.jar文件即可。Mixly的下載地址:http://maker.bnu.edu.cn/,最新版本為0.94。Java的下載地址:http://www.java.com/zh_CN/download/。

Mixly的代碼如圖11所示。我用1、2、3、4鍵來表示“上、下、左、右”。下載代碼后,建議大家先用手機測試控制是否正常。當然,你的手機要裝有藍牙串口助手之類的App。

Processing編程

Processing編程是這件作品的重點所在,在“原理分析”部分我已經具體介紹了這個程序的核心功能,即獲取攝像頭畫面中某個色彩,然后分析該色彩的坐標,根據所在區域,通過串口發送控制信息給小車。

代碼中的frameRate(8)指畫面的幀數,太小了有延時,太大了又會占用太多的CPU資源。我用cnt變量來控制每秒鐘發送的控制信息,這需要在實踐中不斷地調試(如圖12)。

結語

在實際測試中,我發現自己對小車的控制不是很流暢,還需要進一步優化。但從用手機控制小車的角度來看,我還是達到了預設的目標。當然,如果你對視覺識別感興趣,最好還是研究OpenCV,這也是一個著名的開源跨平臺計算機視覺庫,能實現更多的功能。

主站蜘蛛池模板: 国产在线小视频| 91无码国产视频| 久久人人爽人人爽人人片aV东京热| 久久黄色一级视频| 再看日本中文字幕在线观看| 国产乱视频网站| 国产精品亚洲五月天高清| 亚洲三级色| 久久精品娱乐亚洲领先| 久久人妻xunleige无码| 亚洲熟女偷拍| 啦啦啦网站在线观看a毛片| 国产国拍精品视频免费看| 国内精品免费| 久久久久中文字幕精品视频| 日本一区二区三区精品视频| 久久综合五月| 国产区人妖精品人妖精品视频| 亚洲欧美h| 久久香蕉国产线| 亚洲美女一区| 九色国产在线| 国产精品9| 54pao国产成人免费视频| www.91中文字幕| 国产精品内射视频| 黄色三级网站免费| 日韩在线永久免费播放| 成人福利在线视频免费观看| 99在线观看国产| 国模极品一区二区三区| 啪啪永久免费av| 亚洲欧美综合在线观看| 国产成年无码AⅤ片在线| 国产成人高清精品免费5388| 成人午夜免费观看| 国产精品视频公开费视频| 久久窝窝国产精品午夜看片| 91无码国产视频| 91福利在线看| 国产尹人香蕉综合在线电影| 在线国产三级| 色婷婷在线影院| 影音先锋丝袜制服| 老司机久久99久久精品播放| 欧美啪啪精品| 日韩在线观看网站| 亚洲成人高清无码| 亚洲人成影院在线观看| 日本不卡视频在线| 日本三级精品| 欧美日韩午夜| 91黄视频在线观看| 91精品伊人久久大香线蕉| 亚洲视频二| 九九九精品视频| 99热国产这里只有精品无卡顿"| 在线免费观看AV| 1024国产在线| 色偷偷av男人的天堂不卡| 亚洲天堂网在线观看视频| 亚洲精品国产精品乱码不卞| 成人另类稀缺在线观看| 一区二区偷拍美女撒尿视频| 色偷偷男人的天堂亚洲av| 999福利激情视频| 欧美高清视频一区二区三区| 国禁国产you女视频网站| 日韩大乳视频中文字幕| 四虎精品国产AV二区| 丰满少妇αⅴ无码区| 黄色三级网站免费| 欧美日韩精品综合在线一区| 国产a v无码专区亚洲av| AV无码一区二区三区四区| 一级全免费视频播放| 日本一区高清| 71pao成人国产永久免费视频| 亚洲一区二区约美女探花| 婷婷综合色| 伊人成人在线| 欧美精品不卡|