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

        ?

        一種基于OpenCV的機(jī)器人二維碼識(shí)別方法

        2021-08-09 06:31:24朱玥郭依正詹雪敏
        電子制作 2021年15期
        關(guān)鍵詞:系統(tǒng)結(jié)構(gòu)示例算子

        朱玥,郭依正,詹雪敏

        (南京師范大學(xué)泰州學(xué)院,江蘇泰州,225300)

        0 引言

        隨著智能手機(jī)和通信網(wǎng)絡(luò)技術(shù)的發(fā)展,二維碼(二維條碼)識(shí)別技術(shù)已廣泛應(yīng)用于電子商務(wù)、物流、餐飲、交通、信息安全等領(lǐng)域[1-3]。而機(jī)器人工程是現(xiàn)在產(chǎn)業(yè)發(fā)展的主流方向之一,機(jī)器人的應(yīng)用領(lǐng)域也在逐步擴(kuò)大。讓機(jī)器人具有視覺(jué)能力,快速準(zhǔn)確的識(shí)別二維碼,也是諸多應(yīng)用場(chǎng)景的需要。

        QR(Quick Response Code,快速響應(yīng)矩陣碼)二維碼具有存儲(chǔ)的信息量大、抗噪能力強(qiáng)、識(shí)別快、無(wú)需依附數(shù)據(jù)庫(kù)等優(yōu)點(diǎn),是市場(chǎng)的主流,應(yīng)用最為廣泛。對(duì)QR碼的研究,目前主要集中在光照不均處理、噪聲的消除、斜視畸變校正等幾個(gè)方面[4],比如對(duì)于二維碼去噪,高欣欣等人提出了一種迭代均值濾波算法[5],比如對(duì)于二維碼畸變校正,歐福超等人提出結(jié)合透視變換和插值運(yùn)算的校正算法[6],在二維碼定位算法方面,劉宏偉等人提出了一種基于Hough變換和投影算法定位二維碼邊界[7]。QR碼包括功能圖像和編碼區(qū)兩部分,如圖1所示。因?yàn)槎S碼已經(jīng)應(yīng)用的非常廣泛,如移動(dòng)支付、身份校驗(yàn)、數(shù)據(jù)下載、信息顯示、餐飲、物流等等,所以諸多軟硬件都集成了掃碼功能。本文以應(yīng)用最廣泛的QR碼為例,闡述了一種機(jī)器人系統(tǒng)結(jié)構(gòu),及其基于此的二維碼的預(yù)處理、定位和識(shí)別過(guò)程,并且做了實(shí)驗(yàn)驗(yàn)證。

        圖1 QR碼的結(jié)構(gòu)

        1 系統(tǒng)結(jié)構(gòu)

        如圖2所示,給出了一種典型的機(jī)器人系統(tǒng)結(jié)構(gòu)。該結(jié)構(gòu)分為四層,上層智能手機(jī)為操控端,通過(guò)藍(lán)牙、GPRS等連接樹(shù)莓派進(jìn)而發(fā)出相關(guān)指令,樹(shù)莓派(Raspberry Pi)通過(guò)讀取攝像頭獲取外部圖像并識(shí)別,Arduino單片機(jī)為下位機(jī),可以連接各類(lèi)傳感器,典型的如溫濕度傳感器、火焰?zhèn)鞲衅鳌⒓t外接收傳感器、紅外熱釋電運(yùn)動(dòng)傳感器等等,最底層為機(jī)器人的機(jī)械裝置。

        圖2 機(jī)器人系統(tǒng)結(jié)構(gòu)

        要想在該系統(tǒng)結(jié)構(gòu)上實(shí)現(xiàn)基于OpenCV (Open Source Computer Vision Library)的機(jī)器人二維碼識(shí)別,需要熟悉樹(shù)莓派、Python、OpenCV等。樹(shù)莓派是一款基于ARM的微型電腦主板,以SD卡為硬盤(pán),支持安裝類(lèi)Linux系統(tǒng),體積小但功能齊全,可以完成一臺(tái)普通PC機(jī)能做的諸多事情,可謂是“麻雀雖小,五臟俱全”;Python是一種面向?qū)ο蟮慕忉屝统绦蛟O(shè)計(jì)語(yǔ)言,易學(xué)易用,既支持對(duì)數(shù)據(jù)進(jìn)行分析,也可以分析智能硬件,是目前人工智能、機(jī)器視覺(jué)等領(lǐng)域的首選語(yǔ)言;OpenCV是一種跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),對(duì)許多通用的圖像處理算法進(jìn)行了封裝,OpenCV還提供了Java、Python、CUDA等的接口,讓圖像處理和圖像分析的使用變得更加方便。

        2 二維碼預(yù)處理

        二維碼預(yù)處理是二維碼定位與識(shí)別的基礎(chǔ),其主要工作包括圖像類(lèi)型的轉(zhuǎn)換、圖像邊緣檢測(cè)、數(shù)學(xué)形態(tài)學(xué)處理等。

        (1)圖像類(lèi)型轉(zhuǎn)換是將采集的彩色圖像轉(zhuǎn)換為灰度圖像,可以使用OpenCV中的cv2.cvtColor()函數(shù)實(shí)現(xiàn)。當(dāng)攝像頭讀入圖像后,將讀取的幀轉(zhuǎn)為灰度圖。函數(shù)形式如下:

        有兩個(gè)必選參數(shù),src:原始圖像,code:顏色空間轉(zhuǎn)換方式。本示例中code取值為cv2.COLOR_BGR2GRAY。值得一提的是,在OpenCV中,彩色空間使用的BGR,即藍(lán)-綠-紅顏色空間。

        (2)圖像邊緣檢測(cè)可以使用OpenCV自帶的cv2.Sobel()算子進(jìn)行濾波。Sobel算子是常用的一種邊緣檢測(cè)算子,對(duì)邊緣方向信息的提供比較精確,但由于不是完全精確的邊緣定位,在對(duì)精度要求不是很高的情況下被經(jīng)常采用。

        Sobel算子是一個(gè)無(wú)方向的一階微分邊緣檢測(cè)算子,Sobel算子的表達(dá)式如下:

        其中Dx、Dy分別表示水平方向算子和垂直方向算子。矩陣形式的模板表示如下:

        在OpenCV中,Sobel算子的函數(shù)原型如下:

        dst=cv2.Sobel(src,ddepth,dx,dy[,dst[,ksize[,scale[,d elta[,borderType]]]]])

        其中前四個(gè)參數(shù)是必須的,其余的可選。src:原始圖像,ddepth:圖像像素深度,dx,dy:x和y方向上是否求導(dǎo)。

        (3)數(shù)學(xué)形態(tài)學(xué)處理是對(duì)二值化后的圖像做開(kāi)運(yùn)算。二值化使用OpenCV中的cv2.threshold()函數(shù)實(shí)現(xiàn),開(kāi)運(yùn)算主要作用是去毛刺、孤立點(diǎn),同時(shí)基本保持原圖形狀信息不變,使用cv2.morphologyEx()函數(shù)實(shí)現(xiàn)。

        在OpenCV中,cv2.threshold()的函數(shù)原型如下:

        cv2.threshold(src,thresh,maxval,type[,dst])四個(gè)必選參數(shù)含義分別如下,src:原始圖像,thresh:分割閾值,maxval:大于閾值的點(diǎn)設(shè)置為maxval的值,type:算法類(lèi)型。本示例中type取值為cv2.THRESH_BINARY。

        開(kāi)運(yùn)算一種復(fù)合運(yùn)算,它是對(duì)二值圖像先做腐蝕后做膨脹,公式表示如下所示,其中Θ代表腐蝕運(yùn)算,⊕代表開(kāi)運(yùn)算,X為待處理的二值圖像,B為結(jié)構(gòu)元素:

        在OpenCV中,cv2.morphologyEx()的函數(shù)原型如下:

        必選參數(shù)含義分別如下,src:原始圖像,op:運(yùn)算類(lèi)型,比如常見(jiàn)的開(kāi)閉運(yùn)算,op取值cv2.MORPH_OPEN時(shí)做的是開(kāi)運(yùn)算(先腐蝕后膨脹),op取值cv2. cv2.MORPH_CLOSE時(shí)做的是閉運(yùn)算(先膨脹后腐蝕),kernel:結(jié)構(gòu)元素。

        3 二維碼定位與識(shí)別

        現(xiàn)實(shí)中拍攝的二維碼圖像,或多或少的會(huì)包含一些背景信息。因此,在二維碼預(yù)處理后,需要進(jìn)行邊界提取從而定位出二維碼,繼而提高識(shí)別精度和速度。邊界的提取使用OpenCV中的cv2.findContours()函數(shù)實(shí)現(xiàn)[8,9],該函數(shù)可以對(duì)二值圖像進(jìn)行輪廓檢索,然后返回檢測(cè)到的輪廓數(shù)。接著,計(jì)算邊界最小包圍正方形,就可以定位出二維碼區(qū)域。

        在OpenCV中,cv2.findContours()的函數(shù)原型如下:

        必選參數(shù)含義分別如下,src:原始圖像,mode:檢測(cè)邊緣的方式,method:輪廓的近似方法。本示例中mode取值cv2.RETR_EXTERNAL,method取值cv2.CHAIN_APPROX_SIMPLE。

        最后一步是二維碼識(shí)別,二維碼識(shí)別需要使用zbar庫(kù),需要在終端使用sudo命令安裝,在代碼實(shí)現(xiàn)上,只需要加載該庫(kù),并使用zbar.ImageScanner()進(jìn)行掃描即可。

        4 實(shí)現(xiàn)效果

        為了驗(yàn)證方法的有效性,在仿人機(jī)器人上做了實(shí)驗(yàn)。如圖3所示,為機(jī)器人實(shí)物,并給出了樹(shù)莓派和攝像頭的連接。如圖4所示,給出了二維碼定位結(jié)果示例,進(jìn)而成功識(shí)別出二維碼信息為“你好”。實(shí)驗(yàn)較好的驗(yàn)證了本文所述的基于OpenCV的機(jī)器人二維碼識(shí)別方法的可行性和正確性。

        圖3 機(jī)器人實(shí)物

        圖4 二維碼定位示例

        5 結(jié)束語(yǔ)

        本文論述了一種基于OpenCV的機(jī)器人二維碼識(shí)別方法,在給出了系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,詳述了二維碼預(yù)處理、二維碼定位與識(shí)別等各個(gè)步驟,其中二維碼預(yù)處理重點(diǎn)講述了圖像類(lèi)型轉(zhuǎn)換、圖像邊緣檢測(cè)和灰度化后的二值圖像數(shù)學(xué)形態(tài)學(xué)處理,并做了仿真實(shí)驗(yàn)。對(duì)于開(kāi)發(fā)和設(shè)計(jì)需要二維碼識(shí)別功能的機(jī)器人提供了參考。

        猜你喜歡
        系統(tǒng)結(jié)構(gòu)示例算子
        大還是小
        擬微分算子在Hp(ω)上的有界性
        各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
        2019年高考上海卷作文示例
        常見(jiàn)單位符號(hào)大小寫(xiě)混淆示例
        山東冶金(2019年5期)2019-11-16 09:09:22
        一類(lèi)Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫(huà)
        “全等三角形”錯(cuò)解示例
        Roper-Suffridge延拓算子與Loewner鏈
        中波廣播發(fā)射系統(tǒng)結(jié)構(gòu)及日常維護(hù)技術(shù)研究
        考慮助力器動(dòng)力學(xué)的舵系統(tǒng)結(jié)構(gòu)非線性顫振特性分析
        在线观看日本一区二区三区四区| 国产精品亚洲A∨天堂| 亚洲高清有码在线观看| 日韩精品成人一区二区三区久久久 | 久久夜色撩人精品国产小说| 国产乱子伦视频一区二区三区| 尤物无码一区| 无码高清视频在线播放十区| 久久精品国产亚洲AⅤ无码剧情| 一区二区三区日本美女视频| 一本色道加勒比精品一区二区 | 丝袜美腿爆炒国产在线观看 | 亚洲中文久久精品无码ww16| 中文无码免费在线| 人妻被公上司喝醉在线中文字幕| 少妇被啪出水在线视频| 日韩精品免费在线视频一区| 久久综合久久综合久久| 麻豆视频av在线观看| 沐浴偷拍一区二区视频| 色欲欲www成人网站| 国产人与zoxxxx另类| 老师粉嫩小泬喷水视频90| 亚洲av无码精品色午夜| 猫咪免费人成网站在线观看| 日韩美无码一区二区三区| 日韩人妻大奶子生活片| 亚洲精品第四页中文字幕| 亚洲av天堂免费在线观看| 午夜免费电影| 成人黄色网址| 国产激情久久99久久| 99久久免费中文字幕精品 | 蜜桃18禁成人午夜免费网站| 中国女人做爰视频| 乱人伦视频中文字幕| 国产精品久久久久久2021| 91在线区啪国自产网页| 日本女优五十路中文字幕| 日韩人妻中文无码一区二区| 亚洲av成人精品日韩在线播放|