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