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

        ?

        基于ROS的人臉識別系統(tǒng)設(shè)計與實現(xiàn)

        2019-06-11 09:53:30胡思旺李春杰
        電子技術(shù)與軟件工程 2019年7期
        關(guān)鍵詞:人臉識別檢測

        文/胡思旺 李春杰

        ROS是2010年由Willow Garage公司發(fā)布開源的機器人操作系統(tǒng),采用分布式,松耦合的架構(gòu)設(shè)計,并提供一種軟件點對點的通信機制,使得開發(fā)人員可以非常靈活的組織機器人的軟件實現(xiàn)。這一切都建立在ROS提供的包括節(jié)點,消息,主題等許多新的編程理念之上。

        圖1:ROS節(jié)點通信圖

        節(jié)點可以認(rèn)為是ROS中獨立的可執(zhí)行程序,在ROS中創(chuàng)建一個節(jié)點類似于創(chuàng)建一個進(jìn)程。消息表示ROS節(jié)點與節(jié)點之間傳送的數(shù)據(jù)內(nèi)容,ROS支持包括諸如浮點,字符串,自定義消息等多種消息類型。主題是指ROS中某個特定消息的名稱,節(jié)點可以發(fā)布針對某個主題的消息,也可以訂閱某個主題的消息。主題發(fā)布者與主題訂閱者互相不知道對方的存在,從而可以實現(xiàn)ROS程序的解耦。ROS各個節(jié)點可以通過訂閱主題來進(jìn)行消息通信。節(jié)點可以發(fā)布消息到主題,其他節(jié)點可以通過訂閱主題來接收消息,這個通信過程如圖1所示。

        1 總體設(shè)計

        為了保證各個功能之間的獨立性,本文在基于ROS框架下,設(shè)計了三個節(jié)點。分別是攝像頭驅(qū)動程序節(jié)點、人臉檢測節(jié)點與人臉識別節(jié)點。攝像頭驅(qū)動程序camera_node節(jié)點發(fā)布image_topic主題;人臉檢測detection_node節(jié)點發(fā)布face_topic主題,同時訂閱image_topic主題;人臉識別recognition_node節(jié)點發(fā)布result_topic主題,同時訂閱face_topic主題。

        本文設(shè)計的總體方案的ROS節(jié)點通信如圖2所示。

        表1:開發(fā)環(huán)境

        圖2:ROS節(jié)點通信圖

        圖3:人臉識別模型圖

        camera_node是攝像頭驅(qū)動程序節(jié)點。該節(jié)點將利用opencv從USB攝像頭中讀取BGR彩色圖像并發(fā)布到image_topic主題中。

        detection_node為自定義的ROS人臉檢測節(jié)點,它從image_topic主題中訂閱到圖像數(shù)據(jù),并通過MTCNN卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行人臉檢測。如果檢測到人臉,并且檢測到的人臉區(qū)域與圖像整體占比超過γ(本文本文設(shè)置γ=0.4),則認(rèn)為人臉檢測成功,并把人臉圖像發(fā)布到face_topic主題中。

        recognition_node為自定義的人臉識別節(jié)點,它訂閱face_topic主題,獲取人臉圖像。然后將人臉圖像輸入到本文自己訓(xùn)練的人臉識別模型中以完成人臉識別,并將人臉識別結(jié)果發(fā)布到result_topic主題中,上層ROS應(yīng)用程序可以在result_topic主題中獲取最終人臉識別的結(jié)果。

        2 驅(qū)動程序節(jié)點設(shè)計

        ROS以其自定義的sensor_msgs/Image消息格式發(fā)布圖像數(shù)據(jù),它的格式與本文傳統(tǒng)的opencv圖像處理格式不同。在ROS上本文可以使用如下命令查看sensor_msgs/Image消息格式:

        rosmsgshowsensor_msgs/Image

        在項目開發(fā)中,ROS為本文提供了C++與python兩種語言的選擇,為了方便集成tensorf low與opencv,本文選擇使用python完成整個人臉識別系統(tǒng)的開發(fā)。ROS以提供封裝成python模塊的形式,為python開發(fā)提供了許多的支持。例如rospy模塊,提供節(jié)點創(chuàng)建,主題訂閱等函數(shù)接口;std_msgs.msg模塊,包含ROS封裝的String消息類型;sensor_msgs.msg模塊,包含有ROS封裝的sensor_msgs/Image消息類型。

        為方便使用opencv操作圖像數(shù)據(jù),本文需要采用ROS提供的cv_brige軟件包。在python中本文可以采用from cv_bridge import CvBridge, CvBridgeError形式直接導(dǎo)入模塊。cv_bridge提供了一個opencv圖像格式與ROS sensor_msgs/image消息格式的相互轉(zhuǎn)換接口。

        本文通過使用cv_brige將opencv獲取的圖像數(shù)據(jù)轉(zhuǎn)換為sensor_msgs/Image消息格式并發(fā)布到主題image_topic中。

        3 人臉檢測節(jié)點設(shè)計

        在設(shè)計人臉檢測節(jié)點中,本文使用了MTCNN卷積神經(jīng)網(wǎng)絡(luò)來進(jìn)行人臉檢測,MTCNN是由張凱鵬等提出的一種基于深度學(xué)習(xí)的人臉檢測算法。它是一個由P-Net,R-Net,O-Net三層級聯(lián)架構(gòu)設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)。關(guān)于MTCNN具體的實現(xiàn)原理可以參考引用文獻(xiàn)[2]。MTCNN卷積神經(jīng)網(wǎng)絡(luò)在人臉檢測中以識別率高,抗干擾性強著稱。由于本文的移動機器人平臺經(jīng)常需要工作在不同的復(fù)雜場合,正是MTCNN具備的這些優(yōu)點非常適用于移動機器平臺上的人臉檢測。MTCNN卷積神經(jīng)網(wǎng)絡(luò)的模型訓(xùn)練中需要計算能力非常高的計算機支持,而本文的ROS移動機器人平臺上大多數(shù)采用普通的嵌入式主板,計算能力非常的有限,無法在移動機器人上面直接訓(xùn)練MTCNN模型。對此本文選擇先在其他機器上使用tensorf low訓(xùn)練好MTCNN卷積神經(jīng)網(wǎng)絡(luò)模型。

        本文的人臉檢測主體包含detection_node節(jié)點與face_topic主題。人臉檢測節(jié)點從image_topic主題中接收sensor_msgs/Image消息并通過cv_brige轉(zhuǎn)換為opencv圖像格式,然后采用MTCNN對圖像進(jìn)行人臉檢測,將檢測到的人臉圖像再此以sensor_msgs/Image消息格式發(fā)送到face_topic主題中。

        4 人臉識別節(jié)點設(shè)計

        4.1 人臉識別節(jié)點流程

        本文的人臉識別主體包含recognition_node節(jié)點與result_topic主題。在人臉檢測中本文設(shè)計了一個detection_node節(jié)點與face_topic主題。detection_node節(jié)點使用MTCNN卷積神經(jīng)網(wǎng)絡(luò)識別人臉并將識別的人臉圖像以ROS中sensor_msgs/Image消息格式發(fā)送到face_topic主題中。人臉識別節(jié)點便需要訂閱face_topic主題,從face_topic主題中接受sensor_msgs/Image消息并通過cv_brige轉(zhuǎn)換為opencv圖像格式,然后利用本文自己設(shè)計的模型對圖像進(jìn)行人臉識別。

        4.2 人臉識別算法設(shè)計

        在人臉識別算法設(shè)計中,本文設(shè)計了一個主成分分析與神經(jīng)網(wǎng)絡(luò)相結(jié)合的模型來實現(xiàn)人臉識別,本文先使用主成分分析方法將檢測到的人臉圖像進(jìn)行全局特征提取,以此來降低訓(xùn)練數(shù)據(jù)的維度。

        假設(shè)人臉圖像訓(xùn)練集合X={x1, x2, xi,…, xn},對應(yīng)的人臉標(biāo)簽為Z={z1, z2, zi,…, zn},n代表訓(xùn)練集中樣本數(shù)目,zi以one-hot向量代表所屬的人臉類別。

        主成分分析的本質(zhì)是將X映射到Y(jié)={y1, y2, yi,…, yn},樣本yi為l維的行向量,其中l(wèi)

        接下來,本文構(gòu)建一個三層神經(jīng)網(wǎng)絡(luò),分別是輸入層,隱藏層,softmax輸出層對經(jīng)過主成分分析提取的人臉全局特征分類。

        softmax函數(shù)定義為:

        本文采用交叉熵?fù)p失函數(shù)作為神經(jīng)網(wǎng)絡(luò)中的優(yōu)化函數(shù),損失函數(shù)定義為:

        其中I{*}為指示函數(shù),*中為真時,函數(shù)輸出1,否則,函數(shù)輸出0。

        L(θ)對θ求偏導(dǎo):

        采用批量梯度下降法來更新參數(shù)θ,目的是求得參數(shù)θ,使得L(θ)最小化。

        最終本文構(gòu)建的人臉識別模型如圖3所示。

        5 開發(fā)環(huán)境

        ROS本身提供catkin工具幫本文創(chuàng)建與編譯ROS工程,包含有catkin_init_workspace、catkin_make等一系列命令構(gòu)建ROS工程,編譯ROS項目,同時支持編寫啟動腳本(.launch)的形式啟動多個節(jié)點,非常方便開發(fā)人員使用。本文在ROS Kinetic Kame版本上實現(xiàn)人臉識別系統(tǒng),本文的開發(fā)環(huán)境如表1所示。

        猜你喜歡
        人臉識別檢測
        人臉識別 等
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        揭開人臉識別的神秘面紗
        基于(2D)2PCA-LBP 的人臉識別方法的研究
        電子制作(2017年17期)2017-12-18 06:40:55
        人臉識別在高校安全防范中的應(yīng)用
        電子制作(2017年1期)2017-05-17 03:54:46
        小波變換在PCB缺陷檢測中的應(yīng)用
        天堂网在线最新版www| 亚洲偷自拍国综合第一页国模| 亚洲av高清一区二区三区| 亚洲av香蕉一区区二区三区| 精品人妻人人做人人爽| 2021av在线| 国产高清不卡在线视频| 国产精选自拍视频网站| 国产精品欧美一区二区三区不卡| 国产精品二区在线观看| 成人自拍视频国产一区| 在线观看午夜视频国产| 国内精品人妻无码久久久影院| 久久福利青草精品免费| 日本草逼视频免费观看| 亚洲中文av中文字幕艳妇| 亚洲精品久久久久中文字幕| 日韩视频第二页| 中文字幕成人乱码亚洲| 亚洲av免费不卡在线观看| 无码av天堂一区二区三区| 日本亚洲欧美在线观看| 人妻中出中文字幕在线| 在线一区二区三区国产精品| 亚洲av成人一区二区三区| 成人无码视频在线观看网站| 国产人妖直男在线视频| 欧洲成人一区二区三区| 亚洲日本va午夜在线电影| 精品一区二区三区影片| 美女免费观看一区二区三区| 免费a级毛片18禁网站app | 精品国产福利在线观看网址2022 | 精品国产乱码久久久久久郑州公司| 久久久久久久无码高潮| 国产三级黄色的在线观看| av免费在线播放视频| 婷婷五月六月综合缴情| 久久久久久一级毛片免费无遮挡| 免费人成在线观看播放视频| 国内精品久久久久国产盗摄|