0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于機(jī)器視覺筆跡識(shí)別和Arduino控制機(jī)器人的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師吳畏 ? 2018-07-03 11:20 ? 次閱讀

0 引言

伴隨著現(xiàn)在日益高性能的計(jì)算機(jī)硬件和完善的理論技術(shù),機(jī)器視覺技術(shù)已開始得到廣泛的應(yīng)用。結(jié)合機(jī)器視覺技術(shù)的智能機(jī)器人在現(xiàn)今人工智能趨勢(shì)下扮演一個(gè)重要角色,在智能制造推進(jìn)、智慧城市建設(shè)、家居生活質(zhì)量提高等方面,都有廣闊的施展空間[1]。

1 整體設(shè)計(jì)思路及方案

本設(shè)計(jì)將能勝任機(jī)器視覺處理能力的計(jì)算機(jī)與單片機(jī)作主控的機(jī)器人相結(jié)合,通過無線通信方式構(gòu)建一個(gè)相比其他低成本機(jī)器人具備更高自主性和智能性的機(jī)器人模型,目的在于:(1)對(duì)比評(píng)估主流手寫數(shù)字識(shí)別模型的實(shí)際識(shí)別表現(xiàn);(2)探究低成本機(jī)器人實(shí)現(xiàn)更高智能性的方法[2]。

本設(shè)計(jì)結(jié)合現(xiàn)今熱門的機(jī)器視覺技術(shù)以及Arduino單片機(jī)實(shí)現(xiàn)了一個(gè)能夠通過上位機(jī)識(shí)別手寫數(shù)字并發(fā)送至下位機(jī)進(jìn)行執(zhí)行的機(jī)器人模型,當(dāng)上位機(jī)得到待識(shí)別的圖片后,將進(jìn)行圖片的處理轉(zhuǎn)化為數(shù)據(jù)并輸入已經(jīng)在前期構(gòu)建好的識(shí)別模型,計(jì)算后輸出識(shí)別的內(nèi)容并通過無線通信發(fā)送到下位機(jī),下位機(jī)根據(jù)接收到的識(shí)別信號(hào)執(zhí)行相應(yīng)動(dòng)作。

本設(shè)計(jì)總體可分為上位機(jī)識(shí)別與下位機(jī)執(zhí)行部分。上位機(jī)識(shí)別部分包含前期輸入信號(hào)的處理、手寫字符的識(shí)別模型構(gòu)建、與下位機(jī)通信構(gòu)建等部分;下位機(jī)執(zhí)行部分采用Arduino單片機(jī)結(jié)合各類電子元器件和電路模塊實(shí)現(xiàn)了所期望的執(zhí)行內(nèi)容,包括電源供電設(shè)計(jì)、表盤指示器電路設(shè)計(jì)、人機(jī)交互顯示設(shè)計(jì)以及無線通信設(shè)計(jì)[3]。

1.1 下位機(jī)硬件設(shè)計(jì)方案

該下位機(jī)硬件使用Arduino單片機(jī)作為主控,并結(jié)合步進(jìn)電機(jī)以及步進(jìn)電機(jī)驅(qū)動(dòng)模塊構(gòu)成了指針數(shù)字指示盤,OLED與單片機(jī)相連構(gòu)成人機(jī)交互顯示界面,NRF2401L無線串口模塊與上位機(jī)進(jìn)行通信,使用LM2596穩(wěn)壓模塊輸出9 V電源為Arduino單片機(jī)供電,并且由單片機(jī)供電給各個(gè)執(zhí)行模塊。采用1.3寸OLED顯示屏作為顯示器,輸出經(jīng)過上位機(jī)識(shí)別后發(fā)送至下位機(jī)的信號(hào),采用SSD1306作為驅(qū)動(dòng)的OLED顯示屏顯示出數(shù)字[4]。

采用步進(jìn)電機(jī)作為儀表盤指示器執(zhí)行部件,其需要相應(yīng)電機(jī)驅(qū)動(dòng)模塊進(jìn)行驅(qū)動(dòng)。設(shè)計(jì)儀表指示器需要對(duì)步進(jìn)電機(jī)進(jìn)行正轉(zhuǎn)、反轉(zhuǎn)控制,從而造成指針的順時(shí)針旋轉(zhuǎn)和逆時(shí)針旋轉(zhuǎn),以便能夠使其根據(jù)輸入的識(shí)別信號(hào)轉(zhuǎn)動(dòng)相應(yīng)角度(有對(duì)應(yīng)的正向角度和負(fù)角度)。電機(jī)接收到單片機(jī)輸出的特定脈沖時(shí),步進(jìn)角(步進(jìn)電機(jī)每前進(jìn)一個(gè)步序所轉(zhuǎn)過的角度)便會(huì)進(jìn)行相應(yīng)的轉(zhuǎn)動(dòng),當(dāng)電機(jī)接收一個(gè)脈沖信號(hào)就會(huì)轉(zhuǎn)過一個(gè)步進(jìn)角,二者呈相互的線性關(guān)系。通過此線性關(guān)系,再根據(jù)原有角度與現(xiàn)在應(yīng)該轉(zhuǎn)動(dòng)角度做差值計(jì)算,求出相差角度,控制電機(jī)轉(zhuǎn)動(dòng)相應(yīng)角度,便可以實(shí)現(xiàn)電機(jī)的儀表指示功能。

1.2 數(shù)據(jù)收集以及上位機(jī)識(shí)別模型

上位機(jī)部分主要負(fù)責(zé)手寫圖片的識(shí)別,其流程包括手寫數(shù)字圖像預(yù)處理、識(shí)別模型訓(xùn)練、識(shí)別模型驗(yàn)證和測(cè)試等。選擇MNIST手寫庫作為模型的數(shù)據(jù),并給出了將MNIST數(shù)據(jù)庫進(jìn)行圖像處理的方法,通過比對(duì)SVM、BP神經(jīng)網(wǎng)絡(luò)、KNN三種識(shí)別模型的發(fā)展歷程、數(shù)學(xué)原理以及算法步驟等,最終選用BP神經(jīng)網(wǎng)絡(luò)識(shí)別模型。

1.3 BP神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別模型及驗(yàn)證

BP神經(jīng)網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)的一種,目前大多數(shù)神經(jīng)網(wǎng)絡(luò)模型都是由BP神經(jīng)網(wǎng)絡(luò)擴(kuò)展而來。對(duì)于本設(shè)計(jì)所需手寫數(shù)字識(shí)別這一應(yīng)用來說,神經(jīng)網(wǎng)絡(luò)主要用于關(guān)于數(shù)字0到數(shù)字9的分類問題。BP神經(jīng)網(wǎng)絡(luò)算法又稱為反向傳播算法,其連接神經(jīng)元的權(quán)值訓(xùn)練從最末層(即網(wǎng)絡(luò)的輸出層)開始,從輸出到輸入依次更新每一層的權(quán)值,所以被稱為反向傳播。

BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法采用方法為δ學(xué)習(xí)規(guī)則(步長(zhǎng)最優(yōu)化),目標(biāo)函數(shù)為:

關(guān)于機(jī)器視覺筆跡識(shí)別和Arduino控制機(jī)器人的設(shè)計(jì)

式中:Yk表示真實(shí)的值,即期望值,是真實(shí)圖片中所代表數(shù)字,k為樣本編號(hào);Tk為預(yù)測(cè)值,即經(jīng)過模型所計(jì)算出來的值;E為真實(shí)值與預(yù)測(cè)值得平方誤差求和。整個(gè)式子的目標(biāo)便是使平方誤差和最小。

其算法過程的流程描述如圖1所示。

關(guān)于機(jī)器視覺筆跡識(shí)別和Arduino控制機(jī)器人的設(shè)計(jì)

BP神經(jīng)網(wǎng)絡(luò)由于只應(yīng)用了均分誤差函數(shù)對(duì)權(quán)值和閾值的一階導(dǎo)數(shù)(即梯度)的信息,在實(shí)際程序中該算法存在收斂速度慢從而計(jì)算時(shí)間長(zhǎng)、容易陷入局部最?。ê雎粤巳肿顑?yōu)解導(dǎo)致不能正確求解)等問題。在實(shí)際的應(yīng)用中,應(yīng)注意這些問題的解決,可以與LM神經(jīng)網(wǎng)絡(luò)、RBF神經(jīng)網(wǎng)絡(luò)等結(jié)合使用來解決[5]。

2 使用CV2庫進(jìn)行圖像預(yù)處理

在設(shè)計(jì)中使用OpenCV庫的擴(kuò)展庫CV2庫對(duì)圖片進(jìn)行了圖像預(yù)處理,過程主要包括手寫數(shù)字圖像的歸一化以及二值化數(shù)據(jù)形式,并保存為逗號(hào)分隔符的csv文件。

圖像處理時(shí)間如表1所示,T1時(shí)間為轉(zhuǎn)化訓(xùn)練集圖片所用時(shí)間,用時(shí)352 s;T2時(shí)間為轉(zhuǎn)化測(cè)試集圖片所用時(shí)間,用時(shí)55 s。

關(guān)于機(jī)器視覺筆跡識(shí)別和Arduino控制機(jī)器人的設(shè)計(jì)

2.1 PCA降維操作

本設(shè)計(jì)使用Python的sklearn庫中的PCA方法,輸入原始數(shù)據(jù)集,即可完成PCA降維操作,其降維結(jié)果如表2所示。

關(guān)于機(jī)器視覺筆跡識(shí)別和Arduino控制機(jī)器人的設(shè)計(jì)

在經(jīng)過PCA(主成分分析法)降維操作去除影響較小的變量影響后,得到了59 989行、67列的X_pca數(shù)據(jù)集,手寫數(shù)字圖片數(shù)量不變,但維數(shù)從784列縮小為67列,從而有效地減輕了支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)以及KNN模型的計(jì)算過程。在后續(xù)的模型訓(xùn)練以及模型識(shí)別準(zhǔn)確度評(píng)估中,也同樣使用了PCA操作對(duì)數(shù)據(jù)簡(jiǎn)化計(jì)算量[6]。

2.2 模型比較以及上位機(jī)識(shí)別模型的選取

本測(cè)試模型中,經(jīng)過轉(zhuǎn)化的訓(xùn)練集數(shù)據(jù)大小1.09 GB(59 989張圖片轉(zhuǎn)化完成的數(shù)據(jù)),測(cè)試集數(shù)據(jù)大小為186 MB(9989張圖片轉(zhuǎn)化完成的數(shù)據(jù)),經(jīng)過PCA降維操作后,測(cè)試集數(shù)據(jù)大小為97.7 MB(由原來的864列數(shù)據(jù)降維為67列數(shù)據(jù)),訓(xùn)練集數(shù)據(jù)大小為16.2 MB。模型數(shù)據(jù)采用PCA降維操作后的數(shù)據(jù)[7]。

從表3中可知,3種模型中,SVM(支持向量機(jī))模型識(shí)別的準(zhǔn)確度最高,但訓(xùn)練時(shí)間比其他兩個(gè)模型稍長(zhǎng)。BP神經(jīng)網(wǎng)絡(luò)模型最小,訓(xùn)練時(shí)間比SVM(支持向量機(jī))稍短,測(cè)試時(shí)間用時(shí)也最短,明顯短于其他兩個(gè)模型,說明識(shí)別速度是最快的。KNN(K近鄰)模型訓(xùn)練時(shí)間雖然最短,但從測(cè)試時(shí)間來看用時(shí)最長(zhǎng),測(cè)試近10 000個(gè)數(shù)據(jù)的時(shí)間比其他兩個(gè)模型訓(xùn)練近60 000個(gè)數(shù)據(jù)的時(shí)間還長(zhǎng)了兩倍多,模型識(shí)別速度最慢。準(zhǔn)確率上來看,小數(shù)據(jù)量時(shí)準(zhǔn)確率只有百分之五六十,只有大數(shù)據(jù)體量下準(zhǔn)確率才有明顯提升,與SVM(支持向量機(jī))和BP神經(jīng)網(wǎng)絡(luò)相比,在手寫數(shù)字識(shí)別方面遜色很多。

關(guān)于機(jī)器視覺筆跡識(shí)別和Arduino控制機(jī)器人的設(shè)計(jì)

對(duì)上面3個(gè)模型根據(jù)識(shí)別時(shí)間、準(zhǔn)確率進(jìn)行比較評(píng)估后,決定以準(zhǔn)確率優(yōu)先,次而考慮識(shí)別時(shí)間,最終決定使用SVM(支持向量機(jī))作為本設(shè)計(jì)的手寫識(shí)別模型[8]。

3 手寫筆跡圖像識(shí)別機(jī)器人整體設(shè)計(jì)

在整體設(shè)計(jì)中,首先選擇NRF2401L無線通信模塊完成了通信硬件的搭建,并根據(jù)其配置表進(jìn)行命令配置完成了硬件的初始化。上位機(jī)方面,使用Python結(jié)合win32u庫和serial庫完成上位機(jī)讀取識(shí)別程序的設(shè)計(jì)。下位機(jī)方面,使用串口結(jié)合下位機(jī)處理硬件完成數(shù)字接收處理的設(shè)計(jì)。整個(gè)系統(tǒng)構(gòu)成一套上位機(jī)對(duì)手寫圖像進(jìn)行識(shí)別,通過無線發(fā)送至下位機(jī)處理的手寫筆跡圖像識(shí)別機(jī)器人。

4 結(jié)論

通過本設(shè)計(jì)與研究,取得的主要結(jié)果如下:

(1)選擇了MNIST手寫數(shù)字圖片庫作為手寫識(shí)別模型的原始數(shù)據(jù),設(shè)計(jì)實(shí)際情況完成了MNIST庫圖像的處理和轉(zhuǎn)化,從而得到了原始的訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集。

(2)分別對(duì)SVM(支持向量機(jī)),BP神經(jīng)網(wǎng)絡(luò),KNN(K近鄰)3種分類模型進(jìn)行了對(duì)比,并使用Python分別對(duì)3種模型進(jìn)行了構(gòu)建和測(cè)試。通過3個(gè)模型的訓(xùn)練時(shí)間、測(cè)試時(shí)間以及準(zhǔn)確度等指標(biāo),比較了3個(gè)模型的優(yōu)劣性,最終以準(zhǔn)確率優(yōu)先原則選取準(zhǔn)確度最高的SVM(支持向量機(jī))作為手寫數(shù)字識(shí)別模型并進(jìn)行應(yīng)用。

(3)使用NRF2401L無線通信模塊和串口功能構(gòu)建了上位機(jī)和下位機(jī)之間無線通信,完成了二者的對(duì)接,將單片機(jī)在電子硬件方面的處理和計(jì)算機(jī)對(duì)手寫圖片的識(shí)別進(jìn)行了結(jié)合[9]。

(4)實(shí)現(xiàn)了Python設(shè)計(jì)上位機(jī)應(yīng)用程序,功能包括圖像讀取、圖像預(yù)處理以及轉(zhuǎn)化、圖像識(shí)別、串口發(fā)送、異常處理等。完成了整個(gè)上位機(jī)的功能,構(gòu)成了一套上位機(jī)手寫圖像識(shí)別,完成了整個(gè)設(shè)計(jì)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    210

    文章

    27859

    瀏覽量

    204715
  • 機(jī)器視覺
    +關(guān)注

    關(guān)注

    161

    文章

    4271

    瀏覽量

    119579
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6454

    瀏覽量

    185965
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LPC2106在足球機(jī)器人控制中的應(yīng)用設(shè)計(jì)

    LPC2106在足球機(jī)器人控制中的應(yīng)用設(shè)計(jì)足球機(jī)器人融合了計(jì)算機(jī)視覺、模式識(shí)別、決策對(duì)策、自動(dòng)控制
    發(fā)表于 03-28 14:03

    足球機(jī)器人控制中的應(yīng)用--畢業(yè)論文

    足球機(jī)器人控制中的應(yīng)用--畢業(yè)論文足球機(jī)器人融合了計(jì)算機(jī)視覺、模式識(shí)別、決策對(duì)策、自動(dòng)控制、無線
    發(fā)表于 05-25 15:35

    機(jī)器人視覺——機(jī)器人的“眼睛”

    目前產(chǎn)業(yè)機(jī)器人僅能在嚴(yán)格定義的結(jié)構(gòu)化環(huán)境中執(zhí)行預(yù)定指令動(dòng)作,缺乏對(duì)環(huán)境的感知與應(yīng)變能力,這極大地限制了機(jī)器人的應(yīng)用。利用機(jī)器人視覺控制,
    發(fā)表于 01-23 15:02

    nao機(jī)器人與其他機(jī)器人的區(qū)別

    機(jī)器人在之前的機(jī)器人的基礎(chǔ)上,加入了可以自由便捷的運(yùn)動(dòng)功能,兩個(gè)攝像頭精準(zhǔn)拍攝、全方位的視覺功能,還有一個(gè)超聲傳感器功能。傳感器可以識(shí)別人類和NAO
    發(fā)表于 02-13 15:43

    【mBot申請(qǐng)】視覺機(jī)器人

    申請(qǐng)理由:現(xiàn)在正在參與視覺機(jī)器人的項(xiàng)目,想了解更多的關(guān)于機(jī)器人的產(chǎn)品與知識(shí)。項(xiàng)目描述:水果采摘機(jī)器人機(jī)
    發(fā)表于 10-29 11:00

    自律型機(jī)器人制作入門.基于Arduino

    了一層硬件接口的Dreamer,使得硬件模塊的連接更加方便、簡(jiǎn)單?!蹲月尚?b class='flag-5'>機(jī)器人制作入門:基于Arduino》是關(guān)于Drearner控制板的第一本書,內(nèi)容循序漸進(jìn),圖文并茂。從最基礎(chǔ)的
    發(fā)表于 06-23 11:18

    先進(jìn)機(jī)器人控制

    ,運(yùn)動(dòng)學(xué)部分從坐標(biāo)變換人手,介紹了正向運(yùn)動(dòng)學(xué)方程的建立、逆向運(yùn)動(dòng)學(xué)的求解以及機(jī)器人的微分運(yùn)動(dòng)等內(nèi)容。控制結(jié)構(gòu)篇著重介紹機(jī)器人的傳感技術(shù)、位置控制和力
    發(fā)表于 09-19 15:30

    【下載】《機(jī)器人學(xué)、機(jī)器視覺控制――MATLAB算法基礎(chǔ)》

    `內(nèi)容簡(jiǎn)介本書是關(guān)于機(jī)器人學(xué)和機(jī)器視覺的實(shí)用參考書, 第一部分“基礎(chǔ)知識(shí)”(第2章和第3章)介紹機(jī)器人及其操作對(duì)象的位置和姿態(tài)描述,以及
    發(fā)表于 01-17 17:38

    【下載】《機(jī)器人學(xué)、機(jī)器視覺控制――MATLAB算法基礎(chǔ)》

    `內(nèi)容簡(jiǎn)介本書是關(guān)于機(jī)器人學(xué)和機(jī)器視覺的實(shí)用參考書, 第一部分“基礎(chǔ)知識(shí)”(第2章和第3章)介紹機(jī)器人及其操作對(duì)象的位置和姿態(tài)描述,以及
    發(fā)表于 04-08 18:19

    LabVIEW 的Tripod 機(jī)器人視覺處理和定位研究

    為對(duì)幾何體的識(shí)別和抓放過程?利用邊緣提取、濾波去噪、圓心檢測(cè)等算法采用LabVIEW視覺模塊及其庫函數(shù)進(jìn)行了圖像的預(yù)處理、特征提取以及中心點(diǎn)定位?研究結(jié)果表明基于LabVIEW的Tripod機(jī)器人系統(tǒng)能夠準(zhǔn)確
    發(fā)表于 06-01 06:00

    機(jī)器人如何識(shí)別?

    現(xiàn)在想做機(jī)器人圖像識(shí)別方面的研究,有問題請(qǐng)教大家,比如說:現(xiàn)在有十種瓶子,機(jī)器人識(shí)別我指定的瓶子,并把它從A位置移動(dòng)到B位置,關(guān)鍵是如何識(shí)別
    發(fā)表于 11-04 09:02

    服務(wù)機(jī)器人視覺系統(tǒng)怎么設(shè)計(jì)?

    隨著計(jì)算機(jī)科學(xué)和自動(dòng)控制技術(shù)的發(fā)展,越來越多的不同種類的智能機(jī)器人出現(xiàn)在工廠、生活當(dāng)中,機(jī)器人視覺系統(tǒng)作為智能機(jī)器人系統(tǒng)中一個(gè)重要的子系統(tǒng),
    發(fā)表于 04-07 07:27

    機(jī)器人視覺機(jī)器視覺有什么不一樣?

    的三維世界的識(shí)別機(jī)器人視覺主要研究用計(jì)算機(jī)來模擬人的視覺功能從客觀事物的圖像中提取信息,進(jìn)行處理并加以理解,最終用于實(shí)際檢測(cè)、測(cè)量和控制。
    發(fā)表于 08-28 10:48

    四元數(shù)數(shù)控:工業(yè)機(jī)器人使用機(jī)器視覺系統(tǒng)的原因

    和提高工作效率,就必須引入機(jī)器視覺技術(shù)來實(shí)現(xiàn)對(duì)目標(biāo)的識(shí)別和定位。目前,裝備了機(jī)器視覺系統(tǒng)的工業(yè)機(jī)器人
    發(fā)表于 04-29 09:42

    工業(yè)機(jī)器人視覺裝配實(shí)訓(xùn)平臺(tái)實(shí)驗(yàn)

    、模塊化綜臺(tái)平臺(tái)各個(gè)功能模塊的認(rèn)識(shí)與實(shí)訓(xùn),可以讓學(xué)生了解機(jī)器人末端央具的機(jī)械組成、電氣控制回路、氣動(dòng)控制回路、視覺
    發(fā)表于 07-01 12:05