周雷 蘇文斌 李鶴沈陽工學院
?
基于STM32單片機的簡單形狀識別
周雷蘇文斌李鶴
沈陽工學院
摘要:如今單片機的使用愈發(fā)廣泛,其中STM32單片機優(yōu)越的性能讓它從眾多單片機中脫穎而出。本文簡單介紹了STM32單片機通過攝像頭OV7670進行圖像采集,將圖像信息緩存到FIFO,之后將圖像顯示在TFT-LCD上,并對圖像進行處理,最終實現(xiàn)圓、三角形、長方形等簡單形狀識別的目的。
關鍵字:STM32 OV7670 圖像處理 形狀識別
隨著計算機技術和信息技術的不斷發(fā)展,圖像識別技術也被越來越廣泛的應用。其中圖像采集的速度與質(zhì)量直接影響圖像的整體效果。大多數(shù)嵌入式圖像采集系統(tǒng)都是基于DSP、ARM技術,這些系統(tǒng)操作復雜、成本高、實時圖像處理比較困難。
本文所研究的基于STM32單片機的圖像采集系統(tǒng)具有硬件結構簡單,圖像顯示清晰,可擴展性強,功耗低、成本低等優(yōu)勢,適合便攜式圖像采集系統(tǒng)。
2.1硬件設計
系統(tǒng)的硬件主要包括攝像頭模塊、STM32單片機和液晶顯示屏,系統(tǒng)結構如圖1所示。
圖1 系統(tǒng)結構圖
(1)主控MCU模塊
系統(tǒng)的MCU為以ARM Cortex-M3為內(nèi)核的STM32F103xx單片機,主要進行系統(tǒng)控制和識別算法運算。
(2)攝像頭模塊
系統(tǒng)中采用帶有FIFO的OV7670攝像頭模塊,該模塊具有單片VGA攝像頭和影像處理器所有功能的CMOS圖像傳感器,其VGA圖像最高達到30幀/秒。內(nèi)部的寄存器通過類似于I2C總線的SCCB總線(Serial Camera Control Bus)控制。SCCB總線是由OV公司定義的3線串行攝像頭控制總線,可以控制大部分OV系列圖像傳感器。SCCB也可以工作在2線串行模式(SIO_ C與SIO_D),一條SCCB總線下可以掛載多個從設備,另外SCCB還可以附帶一根PWDN用于關閉或者開啟從設備系統(tǒng)。
(3)顯示屏模塊
TFT-LCD即薄膜晶體管液晶顯示器,顯示分辨率為320×240。由于本次研究使用的OV7670攝像頭QVGA的輸出剛好與TFLCD模塊分辨率一樣,所以輸出一幀數(shù)據(jù)就是一幅圖像,這樣提高速度的同時也不浪費資源。
2.2形狀識別算法
本次設計使用攝像頭模塊QVGA輸出(320*240),QVGA模式為RGB565格式。RGB565使用16位表示一個像素,高5位表示R(紅色),中間6位表示G(綠色),低5位表示B(藍色),即編碼為RRRRRGGGGGGBBBBB。
由于從OV7670的FIFO中讀取到的圖像數(shù)據(jù)為RGB565格式,圖像會被雜色干擾,形成一個濃淡分布不均的多值圖像,因此首先需要將RGB圖像數(shù)據(jù)進行屏蔽字和移位操作得到分量值,然后在轉換為二值圖像數(shù)據(jù),消除干擾。二值圖像中,0級灰度對應于黑色,255級對應于白色。
圖像二值化后,可以利用圖像的邊緣檢測方法,檢測物體形狀,主要是找出黑色像素數(shù)據(jù)中行和列坐標的最大和最小值,作為圖像上、下、左和右的四個邊界,然后通過相關算法判斷圖形形狀。
形狀的判斷是利用圖形邊緣的坐標點的值確定圖形的特征,進而確定圖形形狀。例如:正方形的形狀特征是長等于寬,根據(jù)其特征,只需判斷長、寬的值相等即可。形狀識別算法的中心思想就是利用不同圖形的幾何特征,判斷出形狀。
攝像頭模塊將采集到的圖像送給STM32單片機處理,并進行形狀識別,在液晶屏上可以顯示灰度圖像。這里,我們采用發(fā)光二極管表示對應的圖形,當檢測到相應的圖形時,相應的發(fā)光二級管被點亮,以提示用戶圖形形狀,現(xiàn)象如圖2所示。
圖2 形狀識別結果
本次設計使用STM32芯片搭建了擁有高速處理能力、低成本的硬件平臺。把帶FIFO芯片的OV7670攝像頭模塊作為圖像數(shù)據(jù)采集,解決了CPU讀取數(shù)據(jù)速度與外設速度不匹配問題,同時也使得軟件設計得到了簡化。在本次設計中,經(jīng)過不斷地調(diào)試與改進,總結出以下兩點經(jīng)驗:
(1)選取的攝像頭、STM32的類型要合適。不同類型的攝像頭和STM32有各自的適用環(huán)境,選擇不合適會嚴重影響采集數(shù)據(jù)的準確性。
(2)對于不同形狀的物體識別方面,出現(xiàn)了識別不成功的現(xiàn)象,因此圖像處理、識別有關代碼還有待進一步優(yōu)化。
周雷,男,本科在讀,研究方向為圖像識別算法。
蘇文斌,男,本科在讀,研究方向為嵌入式開發(fā)。
李鶴(通訊作者),男,沈陽工學院信息與控制學院專業(yè)教師,研究方向為人工智能,嵌入式系統(tǒng)開發(fā)。
作者簡介