雒珊,邱炎兒,胡鵬飛
(呂梁學院物理系,山西呂梁,033301)
科學技術(shù)的快速發(fā)展,人工智能時代的來臨,機器視覺越來越受到人們的重視?;ヂ?lián)網(wǎng)、物聯(lián)網(wǎng)、工業(yè)4.0革命的興起,基于視覺的目標定位對于機器人視覺導航、機械手對目標進行作業(yè)任務都具有重要的研究意義。
傳統(tǒng)的目標定位技術(shù)主要利用雷達、激光、紅外線等傳感器進行測距以達到目標定位的目的,但是用這些傳感器存在以下缺點:一方面,它們很容易受到機器本身攜帶的其他傳感器的影響,導致測距不準;另一方面,它們的最大缺點是不能識別目標物體[1]。而隨著視覺傳感的發(fā)展,近年來,利用視覺傳感器獲取景物特征,實現(xiàn)定位的方法因其所需要的實驗環(huán)境和硬件條件更加寬松、成本較低、在實際應用中更直觀有效而受到了重視。根據(jù)使用視覺傳感器的數(shù)目不同,視覺定位方法可分為基于單目視覺的定位、基于雙目視覺的定位和基于全方位視覺的定位。在雙目視覺定位方面:王才東提出利用雙目視覺檢測零件的位姿[2]。楊宇提出利用改進的ORB 算法實現(xiàn)雙目視覺定位方法[3][4]。王翰提出利用雙目視覺定位圓特征工件空間[5]。在單目視定位方面:孫龍培提出利用單目視覺實現(xiàn)室內(nèi)多行人目標的聯(lián)系定位[6]。彭冬旭使用單目視覺實現(xiàn)機器人的定位[7]。通過對比研究發(fā)現(xiàn),與雙目視覺和多目視覺技術(shù)相比較,單目視覺技術(shù)具有高效靈活,結(jié)構(gòu)簡單的優(yōu)點,同時消除了雙目視覺的盲區(qū)、最優(yōu)距離和立體匹配難等問題的影響。并且通過設計實現(xiàn)單目視覺的運動目標識別,改善以往灰度傳感器識別的局限性,極大提高適用范圍。
單目視覺技術(shù)和云臺的有效結(jié)合不僅能降低加工成本,而且能提高加工效率。單目視覺的云臺控制系統(tǒng)的設計在一些不適于人工作業(yè)的危險工作環(huán)境或者人工視覺難以滿足要求的場合可以大范圍推廣使用[8]。同時,在大批量重復性工業(yè)生產(chǎn)過程中,用機器視覺檢測方法可以大大提高生產(chǎn)的效率和自動化程度;配合云臺控制的應用,對于提升現(xiàn)代化工廠的生產(chǎn)效率以及自動化程度都有重要的意義。本設計通過設計實現(xiàn)單目視覺的運動目標識別,改善以往灰度傳感器識別的局限性,極大提高適用范圍。
本設計硬件上采用OpenMV4(Cam H7)攝像頭實現(xiàn)目標物體的識別與定位,結(jié)合串口通信電路,把獲取的顏色閾值、位置坐標、距離等信息傳到核心處理器STM32F103ZET6單片機中,通過數(shù)據(jù)解析,結(jié)合按鍵電路的模式切換,將攝像頭實時識別畫面顯示在TFT液晶屏、參數(shù)計算結(jié)果顯示在液晶顯示屏上;軟件采用獨立式分塊編程的設計方式,邏輯結(jié)構(gòu)簡單清晰。
主要包括單片機控制單元、攝像頭采集單元、USART通信單元、LCD液晶屏顯示單元、二軸云臺控制單元五個單元組成。系統(tǒng)結(jié)構(gòu)框圖如圖1所示,系統(tǒng)外觀結(jié)構(gòu)3D視圖如圖2所示,系統(tǒng)電路原理圖圖3所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
圖2 系統(tǒng)外觀結(jié)構(gòu)視3D圖
圖3 系統(tǒng)電路原理圖
采用STM32單片機進行系統(tǒng)的控制。STM32單片機對于控制方面有很多優(yōu)勢。體現(xiàn)在:該系列芯片主時鐘頻率能夠達到72MHz,為系統(tǒng)運行速度、高效的計算能力提供保障。同時具備強大的分頻功能,能夠滿足串口波特率、產(chǎn)生50Hz方波等精細需求。STM32擁有眾多外設及功能,具有極高的集成度[9]。STM32擁有強大的功耗控制的能力。能夠通過軟件設置,進行獨立初始化部分模塊,對于當前不使用的模塊能夠選擇性關(guān)閉,這樣人性化的設計極大降低功耗。較為適合需要快速反應的運動目標圖像采集傳輸,以及二軸云臺系統(tǒng)的控制。
采用Pixy(CMUcam5)攝像頭作為圖像采集。Pixy攝像頭使用的是基于色調(diào)過濾算法來識別物體。計算圖像傳感器每個RGB像素的色度和飽和度將其作為主要的濾波參數(shù)[10]。Pixy可記憶多達多達7種不同的色彩飽和度。并且擁有獨立的處理器進行圖像處理,Pixy處理一幅640×640圖片僅需1/50秒。
采用TFTLCD彩屏。TFTLCD是一種通用的電容觸摸屏幕。使用范圍較為廣泛。實現(xiàn)屏幕顯示也較為容易。很容易做成大屏。TFT液晶顯示器上的每一液晶象素點都是由集成在其后的薄膜晶體管來驅(qū)動,從而可以做到高速高亮高對比度的顯示屏幕信息,實現(xiàn)屏幕顯示也較為容易,易于擴展,制作工藝相對比較成熟,制作成本相對較低。
云臺控制單元,主要由兩個數(shù)字舵機組成,舵機的選擇決定云臺系統(tǒng)的穩(wěn)定。針對本設計需求,高響應,易控制,最終選擇數(shù)據(jù)舵機作為云臺控制基礎。
本系統(tǒng)設計完成的具體性能指標如下:
(1)基于單目視覺的目標物體的識別,回傳目標物體相對位置、顏色等;
(2)基于單目視覺的目標物體的追蹤,實現(xiàn)該系統(tǒng)對于被測物體的實時追蹤;
(3)通過液晶顯示屏實時顯示目標物體信息以及云臺運行狀態(tài)、通過TFT彩屏實現(xiàn)攝像頭對于目標物體畫面的實時顯示;
(4)通過LED指示燈能夠判斷系統(tǒng)運行情況,避免系統(tǒng)運行出錯;
(5)軟件容錯性處理:系統(tǒng)初始化進行系統(tǒng)自檢,模塊化問題定位;
(6)設計有緊急制動按鍵,能夠有效進行云臺緊急制動控制;
(7)供電系統(tǒng):攝像頭、主控芯片5V供電,顯示屏5V供電、云臺舵機12V。
本設計是基于圖像跟蹤的云臺控制系統(tǒng),從系統(tǒng)上電系統(tǒng)開始,首先進行系統(tǒng)重要部件(攝像頭、通信模塊、云臺系統(tǒng)等)初始化,其次是系統(tǒng)自檢,自檢過程對于保證整個系統(tǒng)穩(wěn)定運行具有至關(guān)重要的作用,如果自檢不成功將重新進行系統(tǒng)初始化,直到系統(tǒng)正常工作[11]。經(jīng)過一些列初始化以后,進入系統(tǒng)默認狀態(tài),通過按鍵掃描,如果有按鍵按下,讀取鍵值,按鍵狀態(tài)值為1時,進入到模式一,能夠在屏幕上實時顯示攝像頭采集到的位置坐標以及目標顏色,按鍵狀態(tài)值為2時,進入到模式二狀態(tài),云臺跟隨目標物體的位置坐標,做出指定的動作。如果讀取到的鍵值不是1或者2,將進入到默認模式,云臺禁止狀態(tài)。直到斷開電源,系統(tǒng)結(jié)束運行。系統(tǒng)軟件總流程如圖4所示。
圖4 系統(tǒng)主程序流程圖
攝像頭采集物體的顏色信息、相對位置坐標信息,通過串口通信方式傳到STM32主控制器中,當接收到發(fā)送的信息包,產(chǎn)生特定的數(shù)據(jù)包中斷,進到數(shù)據(jù)解析子程序中,對數(shù)據(jù)進行CRC校驗,檢驗失敗,返回ACK信號標注這包數(shù)據(jù)錯誤,校驗成功,則把一包數(shù)據(jù)保存到定義好的數(shù)組中備份,然后經(jīng)過解析判斷,去掉起始位數(shù)據(jù),結(jié)束符,提取出有效信息,再通過十六進制轉(zhuǎn)換子程序得出需要的十進制數(shù)據(jù),保存到有用信息數(shù)據(jù)中,等待被調(diào)用。圖像信息處理子程序流程如圖5所示。
圖5 圖像數(shù)據(jù)處理子程序流程圖
云臺控制采用輸出兩路50Hz的PWM信號來驅(qū)動,通過接收數(shù)據(jù)解析,得到目標物體的坐標信息,根據(jù)云臺舵機的180的特性,進行坐標信息轉(zhuǎn)換。通過控制不同的占空比控制云臺進行水平方向,垂直方向的位置變化。云臺控制子程序流程圖如圖6所示。
圖6 云臺控制子程序流程圖
串口調(diào)試作為一種常用的調(diào)試方式,具有方便快捷,精準定位等優(yōu)勢。本設計采用串口1(USART1)作為調(diào)試接口。首先需要進行硬件環(huán)境的搭建,RX接到TX,TX接到RX,確保正常通信,軟件層,要實現(xiàn)于上位機正常通信,要保證波特率設置匹配,此處設定為9600baud,數(shù)據(jù)長度為8 Bits。調(diào)試過程界面如圖7所示。
圖7 串口調(diào)試界面
云臺控制調(diào)試,在軟件層主要是輸出PWM不同占空比控制,云臺能否正常,穩(wěn)定的運行,取決于輸出波形的完整性,通過在線調(diào)試模式,能夠看到輸出方波的頻率、幅度值、占空比大小等參數(shù),能夠很大程度上提高設計效率。在編寫好程序后,切換到調(diào)試模式,找到對用輸出串口,進到設置模式,配置輸出I/O模式,此處為按照位輸出方式。PWM輸出調(diào)試界面如圖8所示。
圖8 PWM輸出調(diào)試界面
攝像頭采集穩(wěn)定性測試,主要通過采集幀數(shù)來判斷,根據(jù)每秒采集幀數(shù)的穩(wěn)定值得趨勢來判斷采集數(shù)據(jù)的準確性。穩(wěn)定性測試如圖9所示。
圖9 圖像采集幀數(shù)穩(wěn)定性測試
通過設計實現(xiàn)單目視覺的運動目標識別,改善以往灰度傳感器、顏色傳感器TCS3200、激光測距模塊GY-53的局限性,極大提高適用范圍。通過Openmv使用find_blobs()函數(shù),通過濾波函數(shù),濾除干擾項,進而實現(xiàn)對于被測區(qū)域(ROI)內(nèi)物體的精確識別,識別效果圖如圖10所示。
圖10 識別效果圖
通過Openmv IDE實現(xiàn)測量數(shù)據(jù)的多次記錄,并利用Matlab中的Cftool工具箱,實現(xiàn)函數(shù)擬合測距,達到對于被跟隨物體的精準距離測量,達到對于目標物體的精準距離測量,擬合函數(shù)如圖11所示。
圖11 擬合函數(shù)
通過對于串口數(shù)據(jù)的Json協(xié)議解析,獲取坐標、距離等信息,進而進行二軸云臺的控制,Json數(shù)據(jù)解析如圖12所示。
圖12 數(shù)據(jù)解析
本設計以STM32單片機作為系統(tǒng)微控制器,采用Openmv4攝像頭實現(xiàn)目標物體的識別與定位,運用增量式PID算法進行軟件優(yōu)化設計,改善了以往灰度傳感器、顏色傳感器等的局限性,實現(xiàn)物體的識別和控制,提升現(xiàn)代化工廠的生產(chǎn)效率。系統(tǒng)方案合理、設計優(yōu)化,具有簡單易用和適用范圍廣等特點,可推廣應用于各類人工視覺難以滿足要求的場合,或在大批量重復性工業(yè)生產(chǎn)過程中,用機器視覺檢測方法來提高生產(chǎn)的效率和自動化程度,通過配合云臺控制的應用,對于提升現(xiàn)代化工廠的生產(chǎn)效率以及自動化程度都有重要的意義。