?

基于圖像處理的自動跟隨智能小車設計

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

黃琳晴 趙天翔 何金枝

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

關鍵詞:圖像識別; 自動跟隨; 智能小車; 目標識別; 自動避障;圖像處理

中圖分類號:TP391? ? ? ? 文獻標識碼:A

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

開放科學(資源服務)標識碼(OSID)

0 引言

智能車具有自主行駛、自動巡航、自動駕駛等功能,可以廣泛運用在物流、交通和軍事等領域[1]。智能車系統以快速發展的汽車電子技術為背景,涵蓋了電子、計算機、機械、傳感技術等多個學科[2]。智能車設計中圖像處理技術屬于十分重要的組成部分。圖像處理技術能夠實現對圖像的分析與處理并提取出目標物體的位置、顏色等有用信息[3]。設計時可利用圖像處理技術自動追隨目標物體,增強智能車自主性及智能化程度[4]。

1 硬件設計

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

設計中,Arduino控制器作為系統核心,實現對小車的控制、傳感數據采集以及處理傳輸到它的圖像數據;OpenMV主要用于圖像采集識別并處理;超聲波傳感器用于實現小車避障功能;電源模塊用于給小車供電;電機驅動模塊直接控制兩個電機;兩個電機控制小車行進方向。

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

2 軟件設計

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

2.1 圖像處理程序設計

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

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

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

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

3) 如果最大的色塊像素數大于100,則計算物體在圖像中的位置,并根據位置輸出控制信號。

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

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

2.2 小車控制程序設計

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

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

PID算法如公式(1):

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

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

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

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

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

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

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 超聲波避障程序設計

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

3 測試及分析

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

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

4 結束語

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

參考文獻:

[1] 歐冰,楊晶晶.數字圖像處理技術現狀與展望[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的智能小車控制系統設計[J].南方農機,2022,53(16):145-148.

[4] 仝夢豪,丁學文,普靖雯,等.基于Arduino的智能小車遠程監控系統設計[J].計算機與網絡,2020,46(20):59-62.

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

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

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

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

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

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

【通聯編輯:唐一東】

猜你喜歡
目標識別智能小車圖像識別
基于Resnet-50的貓狗圖像識別
高速公路圖像識別技術應用探討
圖像識別在物聯網上的應用
圖像識別在水質檢測中的應用
基于HC—SR04超聲波傳感器的智能避障小車設計
智能安全防盜探測小車
移動機器人圖像目標識別
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合