農(nóng)業(yè)儀器網(wǎng)

農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀中多路圖像采集系統(tǒng)的設(shè)計(jì)

來(lái)源: http://m.askacustomsbroker.com/  類別:技術(shù)文章  更新時(shí)間:2013-11-12  閱讀
      近年來(lái),隨著計(jì)算機(jī)圖像處理技術(shù)、人工智能方法、圖像模式識(shí)別和多光譜識(shí)別等高新技術(shù)的發(fā)展,計(jì)算機(jī)圖像處理技術(shù)也日臻成熟,已經(jīng)廣泛深入農(nóng)業(yè)領(lǐng)域,其主要應(yīng)用集中于農(nóng)作物種子資源檢測(cè)、農(nóng)產(chǎn)品分級(jí)、農(nóng)業(yè)機(jī)器視覺(jué)、農(nóng)產(chǎn)品長(zhǎng)勢(shì)檢測(cè)、精細(xì)灌溉、農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀等。作為圖像處理的前端,圖像采集是一個(gè)重要的環(huán)節(jié),它將對(duì)象的可視化圖像和特征轉(zhuǎn)化為能被計(jì)算機(jī)處理的數(shù)據(jù)。所以,圖像采集系統(tǒng)的穩(wěn)定性對(duì)圖像處理的效果具有直接的影響。目前,圖像采集有很多方法,最常用的圖像采集方法是圖像采集卡形式。圖像采集卡工作過(guò)程是通過(guò)視頻接口從視頻源獲取視頻信號(hào),然后視頻信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換,并利用解碼器進(jìn)行解碼,從而可處理視頻數(shù)據(jù)。
      本文研究并實(shí)現(xiàn)農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀的一種嵌入式數(shù)字圖像采集系統(tǒng),該系統(tǒng)基于ARMS3C2440-Linux2.6.30.4平臺(tái),采用的USB2.0數(shù)字?jǐn)z像頭來(lái)獲取圖像,視頻編程采用V4L2API,通過(guò)移植USB gadget下USB device模塊在flash存儲(chǔ)器上開辟空間作為上位機(jī)和PC、下位機(jī)和其它處理終端的共享空間,在此空間中共享圖像數(shù)據(jù)。這樣上位機(jī)可以通過(guò)訪問(wèn)這塊空間實(shí)現(xiàn)圖像的采集,為下一步圖像處理提供穩(wěn)定且高質(zhì)量的圖像來(lái)源。

圖 1 農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀的系統(tǒng)結(jié)構(gòu)圖

  本農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀系統(tǒng)處理器采用s3c2440,該芯片是三星公司推出的16/32RISC處理器,采用ARM920T內(nèi)核,整體設(shè)計(jì)融合了MMU,AMBABUS和Harvard結(jié)構(gòu),具有獨(dú)立的16kB指令Cache和16kB數(shù)據(jù)Cache。Linux內(nèi)核采用Linux2.6.30.4。圖像采集設(shè)備采用中星微ZC301數(shù)字?jǐn)z像頭,該攝像頭為USB接口。該終端的系統(tǒng)結(jié)構(gòu)圖如圖1所示。
  農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀中ARM-Linux平臺(tái)搭建:Linux內(nèi)核移植及配置Linux內(nèi)核是Linux操作系統(tǒng)的核心。它主要包括以下幾個(gè)部分:存儲(chǔ)管理、CPU和進(jìn)程管理、文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)、網(wǎng)絡(luò)通信以及系統(tǒng)的初始化(引導(dǎo))和系統(tǒng)調(diào)用等。
  本系統(tǒng)的軟件部分包括系統(tǒng)初始化引導(dǎo)程序boot loader、Linux2.6.30.4操作系統(tǒng)內(nèi)核、yaffs文件系統(tǒng)、USB攝像頭驅(qū)動(dòng)、Frame buffer設(shè)備驅(qū)動(dòng)、V4L2API和USB device驅(qū)動(dòng)等。Linux內(nèi)核實(shí)現(xiàn)了系統(tǒng)內(nèi)存管理、軟件程序管理、硬件管理和文件系統(tǒng)管理等功能。隨著內(nèi)核的不斷發(fā)展,內(nèi)核的功能逐漸增強(qiáng),但目錄變動(dòng)不大。本文要想實(shí)現(xiàn)圖像的多路采集,首先需要移植內(nèi)核Linux2.6.30.4,主要步驟如下:因?yàn)樾枰玫統(tǒng)affs2文件系統(tǒng),首先要為內(nèi)核增加yaffs2補(bǔ);修改機(jī)器碼,使之與boot loader的機(jī)器碼一致;指定目標(biāo)板、編譯器和編譯器路徑;增加devfs文件系統(tǒng)管理器的支持;修改晶振頻率;修改mtd分區(qū);修改NandFlash驅(qū)動(dòng),支持K9F1G08的Nand Flash;把s3c2440的默認(rèn)配置寫入con fig文件;配置內(nèi)核。
  配置CPU選項(xiàng):
配置 CPU 選項(xiàng)
  增加對(duì)ZC301USB攝像頭的支持:
增加對(duì) ZC301 USB 攝像頭的支持
  當(dāng)然也要選擇上Support for Host-side USB,USB device file system,USB device class-devices,OHCIHCD support等選項(xiàng)來(lái)支持USBhost接口。最后make zIm-age,生成內(nèi)核映像。
  交叉編譯工具安裝在Linux系統(tǒng)中,工具鏈?zhǔn)巧蓛?nèi)核映像必需的程序段,工具鏈的工作過(guò)程是從一個(gè)工具的輸出再到下一個(gè)工具的輸入。Linux工具鏈包括3部分:Com-piler,Assembler,Linker。GCC是Linux下C/C++語(yǔ)言的編譯器。本系統(tǒng)采用虛擬機(jī)中安裝RedHat9的方式作為交叉編譯器3.4.1的編譯環(huán)境,將編譯器的壓縮包c(diǎn)ross-3.4.1.tar.bz2拷到Linux某目錄下,進(jìn)入該目錄解壓,修改/etc/bashrc文件,將解壓的3.4.1/bin目錄添加到命名的默認(rèn)路徑。農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀的模塊的編譯和加載使用命令make modulesM=./drivers/usb/gadget編譯生成s3c2410_udc.ko和file_storage.ko;然后將其下載到目標(biāo)機(jī)中Linux2.6.30.4/lib/modules/2.6.30.4目錄下,使用insmods3c2410_udc.ko和insmodg_file_storage.kofile=floppy.Img removable分別加載;等待模塊加載完后,重新插拔USBdevice接口,PC端出現(xiàn)可移動(dòng)存儲(chǔ)設(shè)備,至此Nand Flash模擬U盤成功;然后進(jìn)行格式化,格式為FAT文件系統(tǒng)。
  農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀的V4L2圖像采集部分:V4L2重要接口函數(shù)和數(shù)據(jù)結(jié)構(gòu)Video for Linux(簡(jiǎn)稱V4L),是Linux中支持影像設(shè)備的一組API,它配合適當(dāng)?shù)囊曨l采集設(shè)備和相應(yīng)的驅(qū)動(dòng)程序,可以實(shí)現(xiàn)圖像采集、AM/FM無(wú)線廣播、影像CODEC和頻道切換等功能,F(xiàn)在已有的版本為Video4Linux2(簡(jiǎn)稱為V4L2),是從V4L的基礎(chǔ)上發(fā)展起來(lái)的,從2.5.x版本后開始加入Linux內(nèi)核。
  所謂的V4L2有兩層含義:應(yīng)用程序可以按照此框架訪問(wèn)視頻設(shè)備、獲取圖像信息;在Linux中,視頻設(shè)備是設(shè)備文件,可以像訪問(wèn)普通文件一樣對(duì)其進(jìn)行讀寫,攝像頭在/dev/video0下。主要的函數(shù)有open(),close(),ioctl(),mmap(),write(),read()等。主要涉及的數(shù)據(jù)結(jié)構(gòu)有:structv4l2_buffer,structv4l2_re-quest_buffers,structv4l2_capability,structv4l2_crop-cap,structv4l2_crop,structv4l2_format等。
  農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀用戶空間視頻采集過(guò)程首先在進(jìn)行makemenuconfig操作時(shí),將mul time-dia device菜單中的Video for Linux選項(xiàng)選上,這樣內(nèi)核就配置了為農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀獲取視頻的設(shè)備提供接口的Video4Linux。V4L2下用戶空間應(yīng)用程序的流程如下:首先用open系統(tǒng)調(diào)用打開視頻設(shè)備,通過(guò)io ctl讀取設(shè)備信息并初始化設(shè)備;更改設(shè)備當(dāng)前設(shè)置。視頻采集可采用兩種方法:內(nèi)存映射或直接從設(shè)備讀取;對(duì)采集的視頻進(jìn)行處理;關(guān)閉視頻設(shè)備。在視頻數(shù)據(jù)的傳輸中一般不使用read(),write()系統(tǒng)調(diào)用來(lái)直接運(yùn)行,大多數(shù)情況下使用內(nèi)存映射的流傳輸方式,流傳輸方式不要實(shí)際數(shù)據(jù)的拷貝,驅(qū)動(dòng)和應(yīng)用程序之間只需要交換被映射內(nèi)存的指針就可以了。
  其流程圖如2所示。

圖2 V4L2 圖像采集流程圖

  此時(shí)的用戶程序需要包含頭文件<Linux/video-dev2.h>,使用arm-linux-gcc編譯,并下載到目標(biāo)板運(yùn)行。
  農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀的多路協(xié)調(diào)本文以兩路視頻為例。進(jìn)程是運(yùn)行著一個(gè)或多個(gè)線程線程的地址空間和這些線程所需要的系統(tǒng)資源。它是Linux運(yùn)行的基本單元,所有的進(jìn)程都擁有自己獨(dú)立的處理環(huán)境和系統(tǒng)資源。進(jìn)程的環(huán)境由當(dāng)前系統(tǒng)狀態(tài)及其父進(jìn)程信息決定并組成。對(duì)于單CPU系統(tǒng)來(lái)說(shuō),雖然Linux操作系統(tǒng)是一個(gè)多用戶多任務(wù)的操作系統(tǒng),但在某一時(shí)刻,只能有一個(gè)進(jìn)程處于運(yùn)行狀態(tài),各任務(wù)根據(jù)調(diào)度算法在這些狀態(tài)之間不停地切換。在Linux2.6內(nèi)核中,用戶級(jí)進(jìn)程擁有以下幾種狀態(tài):就緒/運(yùn)行態(tài)、等待狀態(tài)(可以被中斷)、等待狀態(tài)(不可以被中斷)、停止?fàn)顟B(tài)和僵死狀態(tài)。每個(gè)進(jìn)程都受調(diào)度策略和優(yōu)先級(jí)的控制。這些參數(shù)可以通過(guò)應(yīng)用程序顯示執(zhí)行sched_setscheduler()和sched_setparam()函數(shù)來(lái)指定。
  用戶進(jìn)程狀態(tài)轉(zhuǎn)換如圖3所示。

圖3 用戶空間進(jìn)程狀態(tài)轉(zhuǎn)換圖

  實(shí)驗(yàn)結(jié)果采集流程:配置USB攝像頭,連續(xù)抓取10幅圖片,分別取第1和第10幅圖像進(jìn)行分析對(duì)比試驗(yàn)。效果如圖4所示。

圖 4 效果對(duì)比圖

  由圖4可見(jiàn),圖像在灰度為200處右移,實(shí)際表現(xiàn)為亮度變大,圖像質(zhì)量越來(lái)越清晰,說(shuō)明開始階段圖像采集設(shè)備前期具有短暫的調(diào)節(jié)過(guò)程,調(diào)節(jié)后的圖形質(zhì)量明顯提高。
  VC++界面設(shè)計(jì)Windows下,與USB外設(shè)的任何通信需通過(guò)設(shè)備驅(qū)動(dòng),該驅(qū)動(dòng)知道如何與系統(tǒng)的USB驅(qū)動(dòng)和訪問(wèn)設(shè)備的應(yīng)用程序通信。Windows包含應(yīng)用程序與USB通信需要的各種信息,不需要再安裝驅(qū)動(dòng);Win32的應(yīng)用程序接口(API)函數(shù),使得設(shè)備驅(qū)動(dòng)能與應(yīng)用程序之間相互通信,開發(fā)應(yīng)用程序也不需要去了解復(fù)雜的USB協(xié)議。主要步驟有:建立MFC AppWizard(exe)工程;打開設(shè)備并返回設(shè)備句柄;獲取設(shè)備信息;識(shí)別接口信息;識(shí)別設(shè)備路徑名;設(shè)置設(shè)備等。與設(shè)備進(jìn)行數(shù)據(jù)交換,首先把設(shè)備打開,windows下每個(gè)設(shè)備被當(dāng)成一個(gè)文件夾來(lái)訪問(wèn),每個(gè)文件都有一個(gè)文件名。文件打開后就可以使用Read File和Write File來(lái)讀寫文件了。
  本系統(tǒng)采用Nand Flash模擬PC和下位機(jī)之間的交互區(qū)域,實(shí)現(xiàn)了圖像的存儲(chǔ)和訪問(wèn)。其具有如下優(yōu)點(diǎn):結(jié)構(gòu)層次清晰;圖像傳輸可連續(xù);圖像采集可控性強(qiáng);圖像質(zhì)量高。但是,由于FAT不是為Flash設(shè)計(jì),因此需要透過(guò)FTL來(lái)訪問(wèn)Nand Flash。此外,PC和下位機(jī)的同步問(wèn)題也需要進(jìn)一步的研究和改善。
  圖像處理和識(shí)別作為一種更加直觀的途徑正越來(lái)越多的應(yīng)用在農(nóng)業(yè)環(huán)境監(jiān)測(cè)儀的農(nóng)業(yè)領(lǐng)域里。本文設(shè)計(jì)了一種基于嵌入式Linux圖像采集系統(tǒng),重點(diǎn)研究了Nand Flash模擬USB device實(shí)現(xiàn)圖像存儲(chǔ)的過(guò)程。實(shí)驗(yàn)證明,本系統(tǒng)提供的高質(zhì)量且穩(wěn)定的圖像來(lái)源能夠應(yīng)用于農(nóng)業(yè)環(huán)境中。
  • 中國(guó)農(nóng)業(yè)儀器網(wǎng)】聲明部分文章轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),且不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與本網(wǎng)聯(lián)系。
top
推薦儀器
智能人工氣候箱 TP-R系列
型號(hào):TP-R系列
智能蟲情測(cè)報(bào)燈 TPCB-II-C7.0 plus/TPCB-III-C7.0 plus
型號(hào):TPCB-II-C7.0 plus/TPCB-III-C7.0 plus

©2024 http://m.askacustomsbroker.com 版權(quán)所有:浙江托普云農(nóng)科技股份有限公司

地址:杭州市拱墅區(qū)祥園路88號(hào)中國(guó)(杭州)智慧信息產(chǎn)業(yè)園I座11-13樓

聯(lián)系電話:0571-86056609 0571-86059660 0571-88971438

售后服務(wù)專線:400-672-1817

浙ICP備09083614號(hào)

免費(fèi)咨詢

  • 在線詢價(jià): QQ
  • 南:13388425012
  • 微信客服
  • 北:19032001373
  • 微信客服