引言
目前,國內(nèi)智能相機的開發(fā)還是處于起步階段,但是它卻在現(xiàn)實中擁有廣泛的應(yīng)用。典型的機器視覺系統(tǒng)是一般由光源、CCD或CMOS相機、圖像采集卡、圖像處理軟件及一臺PC機構(gòu)成。其中,圖像的采集功能由CCD/CMOS相機及圖像采集卡完成;圖像的處理則是在圖像采集/處理卡的支持下,由軟件在PC機上完成。由于基于PC機的機器視覺體積龐大、結(jié)構(gòu)復(fù)雜,其應(yīng)用系統(tǒng)的開發(fā)周期長、成本高,因此智能相機就應(yīng)運而生。本文提出了一種基于ADSP-BF537嵌入式智能相機的設(shè)計方案,使它能夠達到機器視覺檢測低成本,高速率,高精度,易操作,小體積的目的。
1 硬件平臺設(shè)計
嵌入式智能相機是一個微小的視覺檢測系統(tǒng),包含圖像采集裝置、圖像處理算法、圖像處理軟件和通信控制裝置。圖像采集裝置主要是獲取圖像數(shù)據(jù),使用的是CCD/CMOS傳感器。圖像處理主要是在DSP中進行,是對圖像進行預(yù)處理,識別、檢測圖像特征,分割圖像特征,提取圖像特征,最后得到圖像處理結(jié)果。這主要是在數(shù)字信號處理器(DSP)中完成。圖像通信裝置主要是對圖像處理過程進行控制,并且實現(xiàn)圖像處理結(jié)果輸出。圖1為所設(shè)計智能相機的結(jié)構(gòu)框圖。
在本設(shè)計中,相機采用了ADI公司的ADSP-BF537作為控制核心。ADSP-BF537是具有較高性能的系列成員,擁有容量更大的嵌入式存儲器,從而可滿足諸如視頻安全/監(jiān)控和基于工業(yè)環(huán)境的分布式控制/工廠自動化應(yīng)用等嵌入式應(yīng)用的較高吞吐量需求。ADSP-BF537提供了卓越的性能,并專為諸如遠程監(jiān)視設(shè)備、VoIP、銷售點終端以及生物特征識別/安全應(yīng)用等低成本連接設(shè)備而設(shè)計。作為整個系統(tǒng)的核心,ADSP-BF537具有接口豐富,性能優(yōu)良,價格便宜的特點,并具有強大的多媒體數(shù)據(jù)處理能力。
在圖像采集模塊中,相機使用了CMOS圖像傳感器。與CCD圖像傳感器的高成本相比,CMOS圖像觸感器具有低功耗,低成本的優(yōu)勢。隨著CMOS傳感器制造工藝的發(fā)展,其性能將會越來越接近CCD傳感器。相機通過CMOS圖像傳感器采集圖像數(shù)據(jù),并且在DSP通過I2C的控制下,把數(shù)據(jù)傳入DSP。
在通信控制模塊中,相機通過以太網(wǎng)、串口RS 232,I/O端口與外部進行連接,從而實現(xiàn)相機的數(shù)據(jù)輸出與控制。以太網(wǎng)用以實現(xiàn)上位機與相機的通信與控制,而I/O端口用來外部觸發(fā)控制相機或者實現(xiàn)相機向外部輸出控制信號。串口RS 232主要是用來不通過仿真器來燒寫U_Boot引導(dǎo)程序和uClinux鏡像文件。
2 軟件設(shè)計
相機的軟件程序設(shè)計使用了一個Oscar(Open source camera)框架平臺和OpenCV視覺庫,從而使軟件設(shè)計更加的簡單、方便、快捷,圖2為Oscar框架與OpenCV的關(guān)系圖。Oscar為軟件的設(shè)計提供了簡易的應(yīng)用方法模塊,并且隱藏了硬件接口的復(fù)雜性,從而使軟件設(shè)計者不需要關(guān)心底層硬件程序的設(shè)計。而OpenCV構(gòu)建了一個簡單易用的計算機視覺框架,幫助并發(fā)人員更便捷地設(shè)計更復(fù)雜的計算機視覺相關(guān)的應(yīng)用程序。
2.1 Oscar框架
Oscar軟件框架嘲是為硬件平臺的應(yīng)用而抽取出來的。Oscar框架包含17個模塊,如表1所示,每個模塊都有相應(yīng)的功能和所需的平臺支持。在程序的編譯過程中,應(yīng)用程序只需要加載它需要的應(yīng)用模塊,從而節(jié)省了程序空間,提高了運行效率。
下面主要介紹幾個重要的模塊:
Bitmap模塊提供從文件系統(tǒng)中讀取/寫入bmp圖片的函數(shù),支持24位BGR和Greyscale圖片。
Cam模塊實現(xiàn)了與CMOS傳感器的交互。它包含了讀/寫相機寄存器和捕捉圖片的功能,同時也能夠?qū)﹄p緩沖器和進行自動管理。在目標(biāo)板上,Cam模塊直接與CMOS傳感器的幀捕捉設(shè)備驅(qū)動相連接。它把API方法傳輸?shù)絀OCTL。在主機上,這個模塊保存了傳感器的一個寄存器集,并且時刻讓它保持更新。由于必須從文件系統(tǒng)中加載,因此Cam模塊使用一個文件名來讀取得正確的圖像文件區(qū),并且通過Bitmap模塊來從文件系統(tǒng)中加載圖像。
Ipc模塊提供了一種在相同應(yīng)用程序進程間做內(nèi)部交互的簡單方法。這個交互是以客戶-服務(wù)機的方式進行的。交互通道一面是發(fā)送讀/寫請求到客戶端,然后服務(wù)端響應(yīng)這些請求。這個通道使得低優(yōu)先權(quán)的服務(wù)端和客戶端的人機界面進程之間交互不會阻塞。兩個進程都需要在一系列的參數(shù)和大小上保持一致。通過參數(shù)識別,通信才會執(zhí)行。Ipc模塊在文件系統(tǒng)中通過AF_UNIX套接字發(fā)送請求和相應(yīng)信息。每個這樣的套接字代表的是一個全雙工接口,被稱為一個Ipc通道。通過Ipc通道配置號的注冊,從而允許同時與多個進程的交互。圖3,圖4為Ipc模塊的讀與寫。
2.2 OpenCV
OpenCV(Open Source Computer Vision Library)是一個基于開源的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列C函數(shù)和少量C++類構(gòu)成,同時提供了Python,Ruby,Matlab等語言的接口,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。OpenCV提供的視覺處理算法非常豐富,并且它部分以C語言編寫,加上其開源的特性,處理得當(dāng),不需要添加新的外部支持也可以完整的編譯鏈接生成執(zhí)行程序,所以用它來做算法的移植很方便,OpenCV的代碼經(jīng)過適當(dāng)改寫可以正常的運行在DSP系統(tǒng)和單片機系統(tǒng)中。OpenCV主體分為5個模塊,其中4個模塊如圖5所示。OpenCv的CV模塊包含基本的圖像處理函數(shù)和高級的計算機視覺算法。ML是機器學(xué)習(xí)庫,包含一些基于統(tǒng)計的分類和聚類工具。HighGUI包含圖像和視頻輸入/輸出的函數(shù)。CXCore包含OpenCV的一些基本數(shù)據(jù)結(jié)構(gòu)和相關(guān)函數(shù)。
2.3 程序設(shè)計流程
相機通過RS 232串口把編譯好的U_Boot和μCLinux鏡像文件燒寫到里面的FLASH中,然后通過Eclipse集成開發(fā)環(huán)境進行應(yīng)用軟件設(shè)計。本設(shè)計實現(xiàn)了一個簡單的應(yīng)用,可以通過智能相機來檢測條形碼。流程圖如圖6所示。
在圖像處理模塊中,主要包含了圖像圖像預(yù)處理,分析條形碼黑白條寬度,判斷條形碼類別,最后識別出條形碼并且顯示條形碼數(shù)據(jù),流程框圖如圖7所示。
3 實驗結(jié)果及分析
下面4張圖為在四種不同的速度情況下檢測的條形碼樣本,它們是在相同的外界環(huán)境(光源、曝光時間等)下檢測。圖8是在單幀圖片下的檢測,圖9是在15f/s的速度下檢測,圖10則是在20f/s的速度下檢測。在三種情況下分別對100個條形碼進行檢測,圖11是在30f/s的速度下進行檢測。表2為檢測結(jié)果。
由表2可知,在低速(即在15f/s以下)時,相機能夠?qū)l形碼進行正確的檢測,隨著速度的增加,檢測的合格率會逐漸的下降。
4 結(jié)語
此智能相機的設(shè)計是以ADSP-BF537為處理控制核心,結(jié)合Oscar框架和OpenCV視覺庫而實現(xiàn)的。通過一個簡單的檢測條形碼的應(yīng)用程序可以看出,在檢測速度不高的情況下,此智能相機能夠準(zhǔn)確地檢測產(chǎn)品,并且操作簡單,能夠廣泛地應(yīng)用到生活和生產(chǎn)實踐中。
-
芯片
+關(guān)注
關(guān)注
459文章
52383瀏覽量
439119 -
嵌入式
+關(guān)注
關(guān)注
5147文章
19613瀏覽量
316457 -
機器視覺
+關(guān)注
關(guān)注
163文章
4524瀏覽量
122687
發(fā)布評論請先 登錄
評估ADSP-BF537 Blackfin處理器的ADZS-BF537-EZLITE,ADSP-BF537 EZ-KIT Lite評估系統(tǒng)
嵌入式智能相機有什么優(yōu)點?
求一種基于ADSP-BF537的SOC驗證方案
基于ADSP-BF537的無線視頻傳輸方案

ADSP-BF537 具備嵌入式網(wǎng)絡(luò)連接能力的Blackfin處理器

ADSP-BF534/ADSP-BF536/ADSP-BF537:Blackfin嵌入式處理器數(shù)據(jù)手冊

ADSP-BF537 EZ-KIT Lite電路板設(shè)計數(shù)據(jù)庫

EE-262:ADSP-BF537 Blackfin?針對ADSP-BF533用戶的亮點

ADSP-BF537 EZ-KIT Lite<sup>?</sup>評估系統(tǒng)手冊

ADSP-BF537 Blackfin-SoP-SoP/SoP-Processor硬件參考

適用于ADSP-BF537 Blackfin處理器的EZ-KIT Lite

ADSP-BF537 EZ-KIT Lite電路板設(shè)計數(shù)據(jù)庫

EE-262:面向ADSP-BF533用戶的ADSP-BF537 Blackfin亮點

評論