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

        ?

        基于NAO機器人各類編程方式分析

        2019-06-03 06:52:20王元杰
        實驗室研究與探索 2019年3期
        關(guān)鍵詞:人臉識別指令可視化

        王元杰, 林 都, 鮮 浩

        (中北大學(xué)電氣與控制工程學(xué)院,太原030051)

        0 引言

        機器人技術(shù)是集機械、電子、控制技術(shù)、計算機、人工智能等多個學(xué)科領(lǐng)域于一身的一項綜合性應(yīng)用型技術(shù),是衡量一個國家科技發(fā)展水平高低的重要標(biāo)志[1]。

        機器人研究中極為熱門的研究方向之一——仿人機器人,它有著類人的肢體結(jié)構(gòu)(通常具有仿人的頭部或四肢結(jié)構(gòu)),能夠在特定環(huán)境中代替人類來完成各種工作,進(jìn)一步而言,仿人機器人可以說在很多方面擴展了人類的能力范圍。因此,仿人機器人在科研、教育、醫(yī)療等多個領(lǐng)域中得到了廣泛的應(yīng)用,各科研機構(gòu)在仿人機器人的研究中進(jìn)行了大量的科研工作,仿人機器人也成為全球各發(fā)達(dá)國家不惜投入大量人力、物力、財力去角逐的科技制高點[2-3]。

        NAO機器人是一款仿人形機器人,是目前世界上應(yīng)用最廣泛的仿人型機器人之一[4]。

        NAO機器人高58 cm,具有25個自由度(圖1),以及大量傳感器(圖2),支持遠(yuǎn)程控制,可實現(xiàn)完全編程等功能。他豐富的傳感器資源以及靈活的結(jié)構(gòu),可以完成各種復(fù)雜的操作和功能。

        圖1 NAO傳感器示意圖

        圖2 NAO機器人關(guān)節(jié)示意圖

        同時,NAO機器人也得到了公眾的肯定,在2007年,它成為機器人世界杯(RoboCup)的標(biāo)準(zhǔn)平臺;在2010年,NAO機器人作為科技大使出現(xiàn)[4]在上海世博會上[5]。

        將NAO機器人的技術(shù)開放給所有的高等教育項目,因為它使用Linux系統(tǒng)的嵌入式處理器,所以不僅可以使用C++,Python等語言進(jìn)行編程,也可以使用官方開發(fā)的一套可視化編譯軟件進(jìn)行編程,這就使得NAO機器人的開發(fā)有了很大的自由空間和可能性[6]。

        NAO的研究范圍覆蓋了包括語音識別,視頻處理,模式識別,自閉癥治療,自動化,喜好處理,路徑規(guī)劃等很多的方面和領(lǐng)域。這些領(lǐng)域中間,包括了一些不是以軟件編程為主要方向的研究者,NAO機器人多樣的編譯環(huán)境某種程度上給非控制和軟件方向的研究者帶來了一定的困擾[7]。

        本文主要以人臉識別為例,使用最常用的可視化編程以及Python語言,具體分析各種編譯方式的優(yōu)劣,以及其在各類應(yīng)用場合下的實際情況。

        1 背景知識介紹NAO機器人的視覺系統(tǒng)

        NAO機器人通過攝像頭獲取圖像信息,處理并獲得有效的信息。在機器人的頭部,垂直安裝了兩個高清攝像頭,其參數(shù):輸出YUV422,視場58°,水平視場47.8°,垂直視場 34.8°,聚焦范圍 30 cm ~ ∞,聚焦類型定焦,物理分辨率VGA,QVGA,幀速30 f/s。攝像頭傳感器可捕捉清晰的VGA格式畫面,最高分辨率下可以達(dá)到30幀/s的速度。頭部水平方向可以轉(zhuǎn)動接近239°,垂直方向可轉(zhuǎn)動接近68°;視角范圍在水平方向約61°,垂直方向約為 34.8°(圖3),因此可以識別各類物體。NAO機器人廣為人知的人臉識別就是根據(jù)這個設(shè)計而開發(fā)的一項互動功能。NAO可以學(xué)習(xí)記憶不同的人臉信息,并對其進(jìn)行識別[8-9]。

        圖3 機器人攝像頭時域示意圖

        2 Python語言編程實例

        Python是一種高級的、解釋性的、交互式的、面向?qū)ο蟮哪_本語言,更是一門跨平臺、開源、免費的解釋性高級動態(tài)編程語言,是一種通用編程語言。除了可以解釋執(zhí)行之外,Python還支持將源代碼偽編譯為字節(jié)碼來優(yōu)化程序提高運行效率并對源代碼進(jìn)行保密。Python支持命令式編程(How to do)和函數(shù)式編程(What to do)兩種方式,完全支持嗎?面向?qū)ο蟪绦蛟O(shè)計,語法簡潔清晰,功能強大且易學(xué)易用[10-11]。

        Python的設(shè)計具有很強的可讀性,相比其他語言經(jīng)常使用英文關(guān)鍵字,以及其他語言的一些標(biāo)點符號,它具有比其他語言更有特色的語法結(jié)構(gòu)。Python是一種解釋型語言,開發(fā)過程中沒有編譯這個環(huán)節(jié)。Python是面向?qū)ο笳Z言,它支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對象的編程技術(shù)[12]。

        同時,Python已經(jīng)在很多領(lǐng)域有著非常豐富的應(yīng)用,可以說是一門非常實用的編程語言。例如:Python是云計算中最流行的語言、大量優(yōu)秀的Web框架,以及許多用于Python開發(fā)的科學(xué)計算和人工智能:典型庫numpy等等。而在金融工程領(lǐng)域中,Python同樣被大量使用[13]。

        由于Python是一種動態(tài)語言,語言結(jié)構(gòu)清晰簡潔,庫豐富、成熟、穩(wěn)定,科學(xué)計算和統(tǒng)計分析功能強大,生產(chǎn)效率比 C,C++和 java要高[14]。

        以人臉識別為例,寫了一個這樣一段代碼來完成——一個在看到一個人臉的時候打招呼的程序編譯。

        首先構(gòu)造了一個類,命名為HumanGreeterModule,主要的任務(wù)就是設(shè)定人臉識別和進(jìn)行反饋。

        其中:subscribeToEvent函數(shù)定義了對FaceDetected事件的響應(yīng),onFaceDateced函數(shù)是具體的執(zhí)行任務(wù),調(diào)用tts文件進(jìn)行文字轉(zhuǎn)語音的輸出,完成打招呼的功能。

        class HumanGreeterModule(ALModule):

        def__init__(self,name):

        ALModule.__init__(self,name)

        self.tts=ALProxy( 'ALTextToSpeech')

        global memory

        memory=ALProxy("ALMemory")

        memory. subscribeToEvent ( " FaceDetected","

        HumanGreeter","onFaceDateced")

        def onFaceDateced(self,*_args):memory.subscribeToEvent

        ("FaceDetected","HumanGreeter")

        self.tts.say("Hallo") memory.subscribeToEvent("

        FaceDetected","HumanGreeter","onFaceDateced")

        從這段函數(shù)中可以清晰地看到每個過程的具體步驟,調(diào)用了什么樣的資源,實現(xiàn)了什么樣的功能。

        3 圖形化編程實例

        圖形化編程是官方提供的一種編程方式。在專用的編譯軟件Choregraph中,以官方提供的指令盒為基礎(chǔ)進(jìn)行編程,通過連線的方式即可完成編程[15]。

        Choregraphje軟件(見圖4)是一款編程軟件,可以編寫程序、與NAO鏈接、燒寫程序、與Webots鏈接可以仿真執(zhí)行程序。

        圖4 Choregraph主界面

        如圖5~7所示,通過軟件界面,我們可以直觀的看到機器人的姿態(tài)信息和機器人上的程序信息。

        圖5 機器人視圖

        圖6 機器人關(guān)節(jié)角度

        同樣以人臉識別并進(jìn)行語音問候為例,使用可視化編程方式重新進(jìn)行編程:首先,在指令盒庫(圖8)中找到需要的模塊,指令盒分為兩個部分,列表和備注。然后,通過圖9所示的操作,很簡單的就完成了這個小程序的編寫工作??梢园l(fā)現(xiàn),正好有兩個模塊發(fā)現(xiàn)人臉和語音說話,我們將其連接就可以完成操作。

        圖7 機器人應(yīng)用程序列表

        圖8 指令盒

        圖9 圖形化編程人臉識別并問候

        4 算法比較

        Python和可視化編程可以說是NAO機器人初學(xué)者常用的兩種編程語言,那么又該如何選擇呢?

        從結(jié)構(gòu)上,明顯可以看出,可視化編程要比Python編程更加簡單。相比之下,可視化編程具有更加簡單的結(jié)構(gòu)和更加清晰的流程順序,可以說是一種非常適合新手來了解機器人的一種編程方式。

        但是,可視化編程的局限性同樣也很明顯,即只能使用現(xiàn)有的模塊進(jìn)行編程,同時,對模塊具體實現(xiàn)過程并不是很了解。以人臉識別及問候的實例為例,如圖10所示打開人臉識別模塊可以看到,觸發(fā)的線并沒有接在起始點的位置,而是一個叫做Almemory的event觸點上,如果沒有Python的知識(見圖11),很難解釋這是一個什么樣的event。同時打開最內(nèi)層的模塊,可以看到,這些模塊最后其實還是使用Python進(jìn)行編譯的。但是,很明顯,它的指令不單單是內(nèi)部的函數(shù),還有包括外部接口的一部分內(nèi)容,因此很難對它進(jìn)行二次編譯來達(dá)到我們的目的或者提高效率。

        圖10 Almemory觸點

        圖11 人臉識別模塊內(nèi)部腳本

        實際上,可視化編譯可以理解為是一些已經(jīng)編譯好的、具有較好普適性的Python程序包以一種固定形式進(jìn)行封裝和圖形化之后的產(chǎn)物。這種編譯方式更適合作為機器人啟蒙性質(zhì)的教育,或者針對沒有什么編程基礎(chǔ)的群體進(jìn)行小型實例開發(fā)的編譯環(huán)境,又或者是新手開發(fā)者用來熟悉機器人的一個平臺,因為它具有較好的穩(wěn)定性和更加易讀的性質(zhì)。

        相較于可視化編程,Python具有更大的靈活空間,可以進(jìn)行更復(fù)雜的運算,或者控制器的設(shè)計,實現(xiàn)算法等任務(wù),必須要受到已有的模塊的束縛。同時,我們可以更深入地了解每個功能的具體實現(xiàn)過程,使用更合適的指令,達(dá)到更高的執(zhí)行效率。同樣,如果是針對某個方面的機器人設(shè)計,例如我們需要做個算法的控制器,很難找的全部合適的指令盒供我們使用,這個時候我們只能自己進(jìn)行編譯。

        當(dāng)然對于初學(xué)者來說,完全獨立編寫全部功能的指令可能并不是那么容易,在此可以使用折中的辦法,在無法完成的功能處使用官方的指令盒來實現(xiàn),指令盒不能滿足要求甚至沒有指令盒的部分,調(diào)用Python進(jìn)行編程,混合進(jìn)行編程,在choregraph中調(diào)用Python的指令盒,即可完成這樣的功能,在Python中,可以加載官方naoqi庫,其中也有大量的函數(shù)可供使用,可以大幅減少編程的工作量。

        5 結(jié)語

        編譯環(huán)境日新月異的今天,選擇一個合適的編譯環(huán)境和編程方式對以后的開發(fā)工作有著很大的幫助。明確自己的定位,選擇一個合適的編譯環(huán)境是無疑是一個非常重要的卻很容易被忽視的步驟??偨Y(jié)成一句話,以機器人為輔助平臺或者非計算機類專業(yè)的開發(fā)者更適合圖形化的編譯環(huán)境,這個可以讓你更快地了解機器人,完成相應(yīng)的工作。需要完成相對復(fù)雜的任務(wù)或者有一定編程基礎(chǔ)的開發(fā)者更推薦使用python作為編譯平臺進(jìn)行程序開發(fā),這樣可以使你擁有更大的發(fā)揮空間和拓展余地。

        猜你喜歡
        人臉識別指令可視化
        聽我指令:大催眠術(shù)
        基于CiteSpace的足三里穴研究可視化分析
        人臉識別 等
        基于Power BI的油田注水運行動態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        基于CGAL和OpenGL的海底地形三維可視化
        揭開人臉識別的神秘面紗
        “融評”:黨媒評論的可視化創(chuàng)新
        傳媒評論(2019年4期)2019-07-13 05:49:14
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        基于類獨立核稀疏表示的魯棒人臉識別
        計算機工程(2015年8期)2015-07-03 12:19:07
        婷婷一区二区三区在线| 精品三级av无码一区| 亚洲精品国产成人无码区a片| 国产乱了真实在线观看| 999久久久无码国产精品| 欧美亚洲日韩国产人成在线播放| 亚洲人成人99网站| 在线观看播放免费视频| 日本一区二区三级在线| 高级会所技师自拍视频在线| 国产精品99精品久久免费| 野花社区视频在线观看| 亚洲无码专区无码| 亚洲免费成年女性毛视频| 丰满少妇被啪啪到高潮迷轩| 婷婷伊人久久大香线蕉av| 国产情侣久久久久aⅴ免费| 久久99精品久久久久久齐齐百度| 精品久久久久久99人妻| 国产在线一区二区三区四区乱码| 久久精品国产亚洲av麻豆图片| 老少交欧美另类| 91在线无码精品秘 入口九色十| 国产黄色三级三级三级看三级| 很黄很色的女同视频一区二区| 中文字幕av一区二区三区人妻少妇 | 日韩精品专区av无码| 国产福利姬喷水福利在线观看| 欧美在线视频免费观看| 亚洲阿v天堂2018在线观看| 久久综合九色综合久久久| 日产精品99久久久久久| 桃花影院理论片在线| 亚洲国产精品国自产电影| 国产自拍伦理在线观看| 久久成人成狠狠爱综合网| 欧美与黑人午夜性猛交久久久| 亚洲国产成人精品福利在线观看| 一本色道久久综合中文字幕| 成人麻豆视频免费观看| 无码乱人伦一区二区亚洲一 |