国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于圖像處理的自動跟隨智能小車設(shè)計(jì)

2024-01-24 14:36黃琳晴趙天翔何金枝
電腦知識與技術(shù) 2023年34期
關(guān)鍵詞:目標(biāo)識別智能小車圖像識別

黃琳晴 趙天翔 何金枝

摘要:文章設(shè)計(jì)了一款基于OpenMV圖像處理技術(shù)的自動跟隨智能小車。小車通過OpenMV攝像頭采集圖像并進(jìn)行圖像識別處理,確定跟蹤目標(biāo),然后通過Arduino控制器控制小車自動跟隨目標(biāo)運(yùn)動。小車同時具備避障功能,可以在跟隨過程中自動避開障礙物。設(shè)計(jì)主要由OpenMV圖像處理模塊和基于Arduino的智能小車兩部分組成。OpenMV圖像處理模塊實(shí)現(xiàn)圖像的采集,目標(biāo)的識別和跟蹤算法的生成?;贏rduino 的智能小車按照算法控制兩臺直流電機(jī)運(yùn)轉(zhuǎn),以及通過紅外傳感器和超聲波傳感器感知障礙物實(shí)現(xiàn)自動避障。設(shè)計(jì)可用于幫助工作人員攜帶更多更重的工具或者戶外活動時幫助人們攜帶物品等功能。

關(guān)鍵詞:圖像識別; 自動跟隨; 智能小車; 目標(biāo)識別; 自動避障;圖像處理

中圖分類號:TP391? ? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2023)34-0020-03

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)

0 引言

智能車具有自主行駛、自動巡航、自動駕駛等功能,可以廣泛運(yùn)用在物流、交通和軍事等領(lǐng)域[1]。智能車系統(tǒng)以快速發(fā)展的汽車電子技術(shù)為背景,涵蓋了電子、計(jì)算機(jī)、機(jī)械、傳感技術(shù)等多個學(xué)科[2]。智能車設(shè)計(jì)中圖像處理技術(shù)屬于十分重要的組成部分。圖像處理技術(shù)能夠?qū)崿F(xiàn)對圖像的分析與處理并提取出目標(biāo)物體的位置、顏色等有用信息[3]。設(shè)計(jì)時可利用圖像處理技術(shù)自動追隨目標(biāo)物體,增強(qiáng)智能車自主性及智能化程度[4]。

1 硬件設(shè)計(jì)

通過自動跟隨小車的研究分析,了解到自動跟隨智能小車設(shè)計(jì)的必要性,自動跟隨技術(shù)是智能化技術(shù)的重要應(yīng)用之一,可在物流、交通和軍事等行業(yè)中得到廣泛應(yīng)用。自動跟隨小車可以自主行駛,實(shí)現(xiàn)對目標(biāo)物體的自動跟隨,提高小車的自主性和智能化程度。該設(shè)計(jì)的自動跟隨智能小車,采用了開源的圖像處理庫OpenMV及Arduino控制器,具有良好的擴(kuò)展性和可編程性。小車主體部分由Arduino控制器、電機(jī)驅(qū)動器、電源、傳感器組成,使用車架用于支撐和保護(hù)小車的所有組件[5],其總體結(jié)構(gòu)設(shè)計(jì)框圖如圖1所示。

設(shè)計(jì)中,Arduino控制器作為系統(tǒng)核心,實(shí)現(xiàn)對小車的控制、傳感數(shù)據(jù)采集以及處理傳輸?shù)剿膱D像數(shù)據(jù);OpenMV主要用于圖像采集識別并處理;超聲波傳感器用于實(shí)現(xiàn)小車避障功能;電源模塊用于給小車供電;電機(jī)驅(qū)動模塊直接控制兩個電機(jī);兩個電機(jī)控制小車行進(jìn)方向。

使用OpenMV的Color Tracking顏色追蹤。OpenMV與Arduino控制器之間的通信采用串口通信,以實(shí)現(xiàn)自動跟隨小車的功能[6]。OpenMV是一個開源的、搭載了一個強(qiáng)大的32位處理器的攝像頭,達(dá)到了設(shè)計(jì)的技術(shù)要求水平,并且使用SD卡可以更方便地將圖像流數(shù)據(jù)提取出來,是一個較為完整的開發(fā)系統(tǒng)[7]。

2 軟件設(shè)計(jì)

設(shè)計(jì)采用OpenMV的圖像傳感器進(jìn)行識別檢測目標(biāo)紅色物體,識別成功后通過串口通信將坐標(biāo)信息發(fā)送至Arduino控制器,控制器接收到OpenMV傳來的指令后,根據(jù)接收到的指令控制小車的電機(jī)驅(qū)動模塊,實(shí)現(xiàn)小車的運(yùn)動。設(shè)計(jì)采用PWM控制進(jìn)行位置跟隨,電機(jī)調(diào)速通過PWM控制,占空比不同,輸出模擬電壓的平均值不同,由此來控制電機(jī),實(shí)現(xiàn)調(diào)速。

2.1 圖像處理程序設(shè)計(jì)

首先,使用OpenMV板的攝像頭捕捉圖像,并將其存儲在內(nèi)存中。然后對圖像進(jìn)行處理以減少噪聲,提高圖像質(zhì)量。再從圖像中提取目標(biāo)特征,設(shè)計(jì)中選擇提取紅色的顏色特征,以便進(jìn)行后續(xù)的目標(biāo)檢測或跟蹤。在圖像中使用目標(biāo)檢測算法檢測目標(biāo)物體,以便后續(xù)跟蹤或控制。在圖像中使用目標(biāo)跟蹤算法跟隨目標(biāo)的位置和運(yùn)動軌跡,以便后續(xù)控制或決策[8]。根據(jù)目標(biāo)的位置和運(yùn)動軌跡,生成相應(yīng)的控制指令,如速度、方向等,以便控制小車的移動。使用串口通信將圖像處理結(jié)果發(fā)送給Arduino控制器,控制器接收指令實(shí)現(xiàn)自動跟隨小車的功能。

過程可以描述為:初始化攝像頭傳感器;設(shè)置像素格式和幀大??;跳過前10幀以使新設(shè)置生效;關(guān)閉自動白平衡;定義一個計(jì)時器以跟蹤FPS;定義一個函數(shù)來查找最大的斑點(diǎn);定義一個PID函數(shù),用于計(jì)算偏差并返回控制量;在主循環(huán)中獲取攝像頭圖像,查找紅色斑點(diǎn),計(jì)算偏差并發(fā)送控制量到串口。同時,在圖像上繪制矩形和十字線以指示檢測到的斑點(diǎn)。使用循環(huán)語句不斷執(zhí)行以下操作:

1) 從攝像頭獲取一張圖像,進(jìn)行校正。

2) 識別紅色物體,找到最大的一個色塊。

3) 如果最大的色塊像素?cái)?shù)大于100,則計(jì)算物體在圖像中的位置,并根據(jù)位置輸出控制信號。

4) 輸出控制信號后,LED燈亮起50毫秒。

5) 最終將位置信息轉(zhuǎn)化為字符串,通過串口輸出給Arduino控制器。

2.2 小車控制程序設(shè)計(jì)

Arduino控制器接收到串口發(fā)送的信號后根據(jù)信號指令控制小車運(yùn)動,在調(diào)節(jié)參數(shù)(PID參數(shù)、速度等)后,自動啟動小車。小車運(yùn)動的主程序流程圖如圖2所示。

首先,在OpenMV獲取到跟隨目標(biāo)物體的中心橫坐標(biāo)和距離后,進(jìn)行條件判斷,Arduino控制器接收到通過串口發(fā)送的信息后,控制器根據(jù)獲取的中心橫坐標(biāo)運(yùn)用PID算法計(jì)算并控制舵機(jī)轉(zhuǎn)向,與此同時,Arduino控制器會將從串口獲取的距離與程序中設(shè)定的最大跟隨距離比較,如果距離過大無法獲取圖像信息,則小車原地轉(zhuǎn)圈尋找目標(biāo)物體。

PID算法如公式(1):

PID輸出值=Kp×e(t) + Ki×∫e(t)dt + Kd×de(t)/dt? (1)

其中,e(t)表示誤差,即目標(biāo)值和測量值的差值;∫e(t)dt表示誤差的積分,即誤差隨時間的累積;de(t)/dt表示誤差隨時間的變化速率。Kp、Ki和Kd分別表示比例、積分和微分系數(shù)。

設(shè)計(jì)首先根據(jù)偏差值計(jì)算出左右輪的PWM輸出,然后進(jìn)行一些限制處理,確保PWM輸出在合理的范圍內(nèi)。最后,通過將PWM輸出寫入左右輪的控制引腳中,控制小車的運(yùn)動。原理如下:

假設(shè)B為后輪兩輪的輪距,L為前后輪的間距,假如最優(yōu)路徑為左前方與車正前方夾角為a的直線(a有正有負(fù)),拐彎半徑在左邊和后輪齊平,轉(zhuǎn)彎半徑為R,那么后兩個輪子的角速度相等[9]。也就是:

v_left/R_in = v_right/R_out = v/R? ? ? ? (2)

其中,v_left為左輪速度,v_right為右輪速度,R_in為內(nèi)圈轉(zhuǎn)彎半徑,R_out為外圈轉(zhuǎn)彎半徑,假設(shè)輪子的中間速度為v(即速度設(shè)定值),而且滿足:

R = L/tan a? ? ? ? ? ? ? ? ?(3)

R_in = R - B/2? ? ? ? ? ? ? ? (4)

R_out = R + B/2? ? ? ? ? ? ? (5)

可以推出:

v_left = v-v*B*tan a /2L? ? ? ? ? ?(6)

v_right = v+v*B*tan a /2L? ? ? ? ?(7)

2.3 超聲波避障程序設(shè)計(jì)

設(shè)計(jì)超聲波避障程序的第一步是對超聲波模塊和Arduino控制器的引腳進(jìn)行初始化,包括設(shè)置超聲波發(fā)送和接收引腳的模式和狀態(tài)。通過超聲波發(fā)送引腳向外發(fā)送超聲波信號,等待一段時間后關(guān)閉發(fā)送引腳,通過超聲波接收引腳接收回波信號,計(jì)算回波信號的時間差,進(jìn)而計(jì)算出距離。根據(jù)距離判斷小車前方是否存在障礙物,如果距離小于設(shè)定值,則認(rèn)為有障礙物,否則認(rèn)為沒有障礙物并通過串口向Arduino控制器發(fā)送相應(yīng)串口信息,根據(jù)距離判斷結(jié)果,控制輸出信號,通過Arduino的數(shù)字輸出口控制電機(jī)驅(qū)動模塊。最后循環(huán)執(zhí)行以上步驟,實(shí)現(xiàn)實(shí)時檢測和避障。

3 測試及分析

基于圖像處理的自動跟隨智能小車是由圖像識別處理和小車驅(qū)動控制模塊兩大模塊組成的。主要對由OpenMV進(jìn)行的圖像識別追蹤、OpenMV與Arduino控制器的串口通信、小車自動跟隨、超聲波避障4個部分進(jìn)行測試及分析。

首先,測試OpenMV對圖像能否正確識別并將數(shù)據(jù)通過串口通信發(fā)送給Arduino控制器,由于設(shè)計(jì)只需要單片機(jī)接收視覺模塊和超聲波模塊的數(shù)據(jù),所以采用串行單工傳輸[10]。通過查看串口監(jiān)視器,檢查Arduino是否能夠成功接收到從OpenMV發(fā)送的數(shù)據(jù)信息,測試能夠接收到后,繼續(xù)測試下一步。將小車安裝并下載好程序后,將小車放置于光線較好位置,將目標(biāo)物體放置在小車前方,檢測OpenMV是否成功捕捉圖像識別色塊,即觀察OpenMV的綠色LED燈是否點(diǎn)亮,檢查識別成功后,測試小車是否能成功接收控制信號前進(jìn)。移動目標(biāo)物體,檢查小車是否根據(jù)目標(biāo)物體的移動而移動跟隨,向左向右移動目標(biāo)物體檢測小車是否能根據(jù)目標(biāo)物體的移動改變左右輪轉(zhuǎn)速以實(shí)現(xiàn)轉(zhuǎn)彎跟隨。由測試結(jié)果顯示,小車能夠自動跟隨目標(biāo)物體移動。最后測試超聲波避障模塊,將目標(biāo)物體靜止放置小車前方距離50 cm,令小車識別并前進(jìn),測試結(jié)果顯示,當(dāng)小車與目標(biāo)物體距離接近30 cm時,小車能夠停止運(yùn)動,避免碰撞。

4 結(jié)束語

基于圖像處理的自動跟隨智能小車設(shè)計(jì)具有自動跟隨、實(shí)時反饋等特點(diǎn),可以廣泛應(yīng)用于各種需要自動跟隨的場景,如物流、倉儲、醫(yī)療、安防等領(lǐng)域。設(shè)計(jì)過程主要完成了整體框架設(shè)計(jì)、實(shí)物調(diào)試、對OpenMV軟件部分代碼的設(shè)計(jì)編寫、Arduino控制程序設(shè)計(jì)、串口通信程序、PID控制算法、電機(jī)配置PWM脈沖程序、超聲波避障程序、對該智能小車硬件部分的搭建組裝以及系統(tǒng)測試分析和調(diào)優(yōu)。盡管設(shè)計(jì)要求已實(shí)現(xiàn),但仍存在不足,設(shè)計(jì)需要有較好光線的環(huán)境以供攝像頭捕捉識別目標(biāo)物體。

參考文獻(xiàn):

[1] 歐冰,楊晶晶.數(shù)字圖像處理技術(shù)現(xiàn)狀與展望[J].中國新通信,2023,25(1):76-78.

[2] GUO Y,YIN J,WANG Y,et al.Research and implementation of an OpenMV-based target edge detection and tracking system[J].Journal of Physics:Conference Series,2022,2173(1):012083.

[3] 陳維剛,朱天航,吝毅.基于Arduino的智能小車控制系統(tǒng)設(shè)計(jì)[J].南方農(nóng)機(jī),2022,53(16):145-148.

[4] 仝夢豪,丁學(xué)文,普靖雯,等.基于Arduino的智能小車遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2020,46(20):59-62.

[5] 呂開旺,王明睿,劉振國,等.視覺引導(dǎo)機(jī)器人協(xié)作AGV上下料系統(tǒng)研究[J].制造業(yè)自動化,2022,44(1):123-126.

[6] 金清嵩,丁一,張勇,等.一種基于OpenMV的自動跟隨小車設(shè)計(jì)[J].電子制作,2020(13):16-18,55.

[7] 唐孟雪,邢曉燕.基于Open MV的人臉識別智能門鎖設(shè)計(jì)[J].電腦知識與技術(shù),2020,16(25):5-8,18.

[8] 儲澤楠,王偉,蔡勝宇.基于OpenMV的視覺識別系統(tǒng)在六足機(jī)器人中的應(yīng)用[J].河南科技,2019(34):26-29.

[9] 張敏杰,盧倩,崔治.轉(zhuǎn)彎差速在智能車上的運(yùn)用[J].企業(yè)技術(shù)開發(fā),2011,30(19):32-33,59.

[10] 田渠,羅淦,尹海濤.基于OpenMV的智能跟蹤小車設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2019,27(8):167-170,176.

【通聯(lián)編輯:唐一東】

猜你喜歡
目標(biāo)識別智能小車圖像識別
基于Resnet-50的貓狗圖像識別
高速公路圖像識別技術(shù)應(yīng)用探討
圖像識別在物聯(lián)網(wǎng)上的應(yīng)用
圖像識別在水質(zhì)檢測中的應(yīng)用
基于HC—SR04超聲波傳感器的智能避障小車設(shè)計(jì)
智能安全防盜探測小車
移動機(jī)器人圖像目標(biāo)識別