張健 劉嘉麟
【摘要】 傳統(tǒng)采用LVDT等接觸式測量法檢測作物器官微小變化的方法具有一定的局限性,尤其不適用于柔嫩的花卉作物。該設(shè)計實現(xiàn)了一種基于機(jī)器視覺和無線網(wǎng)絡(luò)的檢測系統(tǒng),通過對視頻圖像的處理獲得被測目標(biāo)的數(shù)據(jù),初步實驗表明該設(shè)計的合理性和實用性。
【關(guān)鍵詞】 機(jī)器視覺 無線 作物監(jiān)測
一、引言
作物器官的微變化反映了植物的生長及生理情況,傳統(tǒng)的人工測量方法操作粗略、精度低[1],通常采用LVDT來測量植株的莖直徑微變化[2]。但是采用LVDT也具有一定的局限性:1、LVDT的回彈力會對作物本身造成傷害,尤其是質(zhì)地柔嫩的作物莖干,如花卉作物等。2、LVDT量程有限。3、LVDT無法準(zhǔn)確測量不光滑的莖干,尤其是無法描述不規(guī)則對象的全貌。本文結(jié)合視頻處理技術(shù)和圖像分割技術(shù),采用機(jī)器視覺無線網(wǎng)絡(luò)實現(xiàn)對作物生長情況的檢測。
二、系統(tǒng)設(shè)計
檢測系統(tǒng)首先要完成對作物圖像的數(shù)據(jù)采集,之后為了獲取需要的目標(biāo)數(shù)據(jù)要取出環(huán)境影響,然后要使用圖像分割技術(shù)分離出目標(biāo)的圖形數(shù)據(jù)并通過無線模塊將數(shù)據(jù)發(fā)送到PC機(jī)。
2.1系統(tǒng)結(jié)構(gòu)
檢測系統(tǒng)使用S5PV210作為圖像處理核心,其他包括圖像采集模塊、圖像預(yù)處理模塊、數(shù)據(jù)處理、無線傳輸?shù)饶K。系統(tǒng)結(jié)構(gòu)如圖1。
2.2 各模塊簡介
S5PV210處理器負(fù)責(zé)完成對圖像數(shù)據(jù)的處理、顯示以及保證無線數(shù)據(jù)傳輸?shù)膶崟r性。它是一個基于ARM Cortex-A8的32處理器。
無線模塊RTL8188是一款低功耗,高線性輸出功率,符合IEEE802.11B/G/N 支持IEEE 802.11i 安全協(xié)議,以及IEEE 802.11e 標(biāo)準(zhǔn)服務(wù)質(zhì)量的150 USB 無線網(wǎng)卡,無線傳輸速率高達(dá)150M,最大傳輸距離可達(dá)300米。
考慮到CCD攝像頭的成本高于CMOS攝像頭,并且CCD卻為被動式,必須外加12V以上電壓讓每個像素中的電荷移動至傳輸通道,為了保證本設(shè)計的低成本和低功耗性,所以使用CMOS攝像頭作為本次設(shè)計的機(jī)器視覺基礎(chǔ)。
三、系統(tǒng)軟件設(shè)計
本系統(tǒng)基于嵌入式Linux操作系統(tǒng)。首先需要對Linux內(nèi)核進(jìn)行配置和裁剪:解壓Linux訥河源碼,清除源碼配置文件和目標(biāo)文件、make menuconfig進(jìn)行內(nèi)核配置與裁剪,make zImage生成內(nèi)核。
3.1 ARM平臺服務(wù)程序
主程序通過調(diào)用各子程序模塊完成初始化工作,初始化完成后啟動無線傳輸和視頻采集并建立網(wǎng)絡(luò)通信,對采集的視頻信號進(jìn)行處理后通過無線網(wǎng)絡(luò)發(fā)送到PC機(jī)。
3.2 攝像頭模塊
由于在Linux系統(tǒng)用戶空間無法直接采集攝像頭圖像數(shù)據(jù),需要將視頻數(shù)據(jù)拷貝到緩沖區(qū),在提取到輸入隊列,才能在系統(tǒng)中進(jìn)行圖像信息數(shù)據(jù)處理。
ioctl(vd->fd, VIDIOC_STREAMON,&type);//攝像頭開始抓取視頻數(shù)據(jù)
ioctl(vd->fd, VIDIOC_DQBUF,&vd->buf);//拷貝到緩沖區(qū)
memcpy(vd->tmpbuffer, vd->mem[vd->buf.index];//拷貝到用戶空間vd->tmpbuffer
3.3 網(wǎng)絡(luò)傳輸模塊
在arm板上建立WiFi無線網(wǎng)絡(luò),將圖像處理數(shù)據(jù)發(fā)送到PC機(jī)上,使PC機(jī)上可以接受到生理監(jiān)測的數(shù),值建立TCP網(wǎng)絡(luò)傳輸環(huán)境,使用SOCKET套接字建立數(shù)據(jù)傳輸網(wǎng)絡(luò),讓圖像視頻數(shù)據(jù)傳輸可以通過無線網(wǎng)絡(luò)傳輸?shù)絇C機(jī)上,部分關(guān)鍵代碼如下:
socket(PF_INET, SOCK_STREAM, 0);//建立socket套接字
setsockopt(pcontext->sd,SOL_SOCKET,SO_ REUSEADDR,&on, sizeof(on);
bind(pcontext->sd,(struct sockaddr*)&addr,sizeof(addr);
listen(pcontext->sd, 10);
accept(pcontext->sd,(struct sockaddr*)&client_addr,&addr_ len);
pthread_create(&client, NULL, &client_thread, pcfd);
3.4 圖像處理
從用戶空間中讀取圖像數(shù)據(jù)再進(jìn)行圖像處理,在圖像中設(shè)置一個單位標(biāo)志物作為監(jiān)測數(shù)值單位,對視頻數(shù)據(jù)進(jìn)行閾值分割后計算單位像素值從而計算出目標(biāo)對象的實際數(shù)值。
3.5 PC端客戶程序
PC端接首先建立其TCP客戶端網(wǎng)絡(luò),向ARM平臺發(fā)送數(shù)據(jù)請求,將接收到的數(shù)據(jù)行進(jìn)圖像和檢測數(shù)值分離后導(dǎo)入到數(shù)據(jù)庫中。PC端直接利用Linux系統(tǒng)的Socket套接字建立客戶端網(wǎng)路接受數(shù)據(jù)。用戶界面使用Qt編寫,使用SQLite建立小型嵌入式數(shù)據(jù)庫。
四、實驗結(jié)果及分析
本系統(tǒng)分別使用花卉和水果進(jìn)行了運行測試,將攝像頭安置在水平位置并且距離監(jiān)測物體距離20cm通過無線WiFi接收到PC機(jī)上,表1為測量數(shù)據(jù)。
五、結(jié)論
本設(shè)計實現(xiàn)了一種基于機(jī)器視覺和無線傳輸?shù)淖魑锷頇z測系統(tǒng),實驗數(shù)據(jù)表明平均誤差<1mm,考慮到花朵在實際測量時可能的測量誤差,本系統(tǒng)的誤差是可以容忍的。
本設(shè)計對圖像處理比較簡單,需要進(jìn)一步對背景噪聲的濾波、圖像分割算法進(jìn)行研究。
參 考 文 獻(xiàn)
[1] 郭天太,郭沖沖,李東升等. 植物器官尺寸變化的傳感器測量技術(shù)綜述[J].機(jī)床與液壓,2012,40(13):184-186;
[2] 高峰,俞立,張文安等.基于無線傳感器網(wǎng)絡(luò)的作物水分狀況檢測系統(tǒng)研究與設(shè)計[J].農(nóng)業(yè)工程學(xué)報.2009,25(2):107-112