萬(wàn)瑞豐,黃景帆,彭浩奇,張?jiān)?,張宏飛
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江杭州,310018)
在醫(yī)院病房中,大多數(shù)病人每天都需要按時(shí)服用藥物,護(hù)士有時(shí)因事務(wù)繁忙而出現(xiàn)無(wú)法及時(shí)送藥的情況,這對(duì)于行動(dòng)不便且家屬又不在身邊的病人來(lái)說(shuō)帶來(lái)及時(shí)服藥的困難?;诖?,能夠完成在醫(yī)院藥房與病房間藥品送取作業(yè)的智能小車就具有很大的現(xiàn)實(shí)意義[1]。以本文采用以TC377單片機(jī)為主控制器的系統(tǒng),通過(guò)OpenArt訓(xùn)練識(shí)別圖像與OpenMV掃描標(biāo)記線來(lái)判斷小車行駛位置和方向使小車沿線行駛、識(shí)別停車線,加上直流電機(jī)模塊和萬(wàn)向輪控制小車行進(jìn)和轉(zhuǎn)變方向,最終結(jié)合PID實(shí)現(xiàn)速度的閉環(huán)控制, 使系統(tǒng)能精確控制小車的運(yùn)行,從而實(shí)現(xiàn)高效準(zhǔn)確地運(yùn)送藥品至病人所在病房。
采用AURIXTMTC377單片機(jī)。AURIXTMTC3xx微控制器架構(gòu)具有多達(dá)6個(gè)獨(dú)立的處理器內(nèi)核,2.3DMIPS/MHz,6級(jí)流水線,高達(dá)300MHz,且所有CPU都有32位浮點(diǎn)單元,符合IEEE-754的單精度,片內(nèi)資源豐富且性能強(qiáng)。
采用深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)[2-4]。因?yàn)閳D像相當(dāng)于處于一個(gè)運(yùn)動(dòng)的狀態(tài),采集到的圖像信息較復(fù)雜,此次識(shí)別目標(biāo)可以明顯分為十類,即網(wǎng)絡(luò)輸出十種結(jié)果,適合以深度學(xué)習(xí)的方法去處理。
采用紅外反射式光電傳感器。紅外反射式光電傳感器還有價(jià)格低廉、應(yīng)用簡(jiǎn)便等特點(diǎn)。
用兩輪車配萬(wàn)向輪搭成的三輪小車。用兩輪車搭配支撐材料和萬(wàn)向輪自制的三輪小車轉(zhuǎn)彎半徑小,可靈活調(diào)節(jié)機(jī)械結(jié)構(gòu)。
測(cè)試電路總體設(shè)計(jì)如圖1所示。
圖1 測(cè)試電路
該系統(tǒng)中含有兩個(gè)+5V、一個(gè)+3.3V穩(wěn)壓電源。①5V穩(wěn)壓電源模塊設(shè)計(jì)如圖2所示。兩個(gè)+5V穩(wěn)壓電源分別是開關(guān)電源TPS5450和線性穩(wěn)壓器LT3045。開關(guān)電源TPS5450具有效率高,負(fù)載電流大的優(yōu)點(diǎn),為OpenMV及OpenArt供電。線性穩(wěn)壓器LT3045具有低噪聲的特點(diǎn),為編碼器和傳感類器件供電。TPS5450輸出電壓,取R2=10kΩ,R1= 3.3kΩ,滿足設(shè)計(jì)需求。②3.3V穩(wěn)壓電源模塊設(shè)計(jì)如圖3所示。+3.3V由+5V經(jīng)線性穩(wěn)壓電源芯片ADM7172降壓得到,噪聲小,負(fù)載電流比較大。
圖2 5V穩(wěn)壓電源模塊
圖3 3.3V穩(wěn)壓電源模塊
電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)如圖4所示。采用柵極驅(qū)動(dòng)器IR2104和MOS管IRLR7843構(gòu)成的全橋電路,控制電機(jī)實(shí)現(xiàn)正反轉(zhuǎn)。
圖4 電機(jī)驅(qū)動(dòng)電路
LED燈板設(shè)計(jì)如圖5所示,通過(guò)IO控制燈的亮滅來(lái)顯示小車工作狀態(tài)。
圖5 LED燈板
干簧管模塊設(shè)計(jì)如圖6所示。在小車底部放置干簧管,在放置藥品時(shí)磁性容器接近干簧管使其導(dǎo)通,單片機(jī)檢測(cè)到其狀態(tài)變化開始出發(fā)。
圖6 干簧管模塊電路
軟件總體框圖設(shè)計(jì)如圖7所示。主體由三部分組成:OpenMV、OpenArt和TC377單片機(jī)。
圖7 總體框圖
單片機(jī)工作流程如圖8所示。通過(guò)接收OpenMV和OpenArt通信的數(shù)據(jù)判定所去的病房號(hào)碼。若藥品已裝載,則出發(fā)。途中,根據(jù)兩個(gè)攝像頭的數(shù)據(jù)選擇前進(jìn)方向,最后到達(dá)病房前,并停止等待藥品卸載。待藥品卸載后,開始返回藥房。
圖8 單片機(jī)工作流程
3.2.1 采集數(shù)據(jù)
采集網(wǎng)絡(luò)上開源的Minist數(shù)據(jù)集、隨機(jī)數(shù)字生成集以及實(shí)地拍攝的光度不同的數(shù)字圖片,并對(duì)圖片進(jìn)行各種變換,以達(dá)到良好的數(shù)據(jù)預(yù)處理目的,為后續(xù)模型的泛化性奠定基礎(chǔ)。
3.2.2 訓(xùn)練模型
采用OpenArt采集并訓(xùn)練數(shù)據(jù),第一種方案是通過(guò)tensorflow搭建模型并訓(xùn)練,再根據(jù)tflite量化原則進(jìn)行模型量化,最后將tflite模型部署到OpenArt中,進(jìn)行數(shù)字0~9的實(shí)時(shí)識(shí)別[5]。第二種方案是通過(guò)NNCU的模型量化工具,將tensorflow訓(xùn)練得到的h5模型量化為OpenArt可用的nncu模型,盡可能減少OpenArt內(nèi)存的占用。根據(jù)實(shí)際情況,最終選擇第二種方案來(lái)訓(xùn)練模型。
3.2.3 模型應(yīng)用
將模型部署到OpenArt后,還需要對(duì)攝像進(jìn)行一定的光度、高度、角度調(diào)整,并搜索實(shí)時(shí)拍攝照片中的數(shù)字框,對(duì)框中的內(nèi)容進(jìn)行模型推理,最后的輸出即為識(shí)別的結(jié)果[6]。再通過(guò)串口通信傳輸給主控以便控制[7]。
3.2.4 環(huán)境亮度適應(yīng)
不同角度導(dǎo)致獲取的圖像亮度不同,如圖9和圖10所示。因此導(dǎo)致雖然模型的訓(xùn)練集準(zhǔn)確率很可觀,但實(shí)際使用上卻不盡人意。對(duì)此,采取增加訓(xùn)練集的方法,通過(guò)對(duì)相同圖像進(jìn)行亮度的調(diào)節(jié),使數(shù)據(jù)集在亮度上更加豐富,以貼合實(shí)際使用的情況。從結(jié)果上來(lái)看,圖像識(shí)別的效果會(huì)比原來(lái)的有所提升,對(duì)不同亮度環(huán)境的適應(yīng)度更加好。
圖9
圖10
3.3.1 二值化區(qū)分
使用OpenMV二值化將標(biāo)記路線與其他干擾元素區(qū)分[8],并對(duì)二值化后的標(biāo)記路線進(jìn)行線性回歸擬合處理[9],得到直線的位置偏差以及角度偏差,再通過(guò)串口將偏差傳輸給主控單片機(jī)處理,具體是應(yīng)用模糊的PID進(jìn)行偏差修正[10],根據(jù)PID修正后的結(jié)果控制小車追尋路線[11]。
3.3.2 十字識(shí)別
通過(guò)OpenMV二值化后閾值的判斷以及OpenArt數(shù)字識(shí)別來(lái)實(shí)現(xiàn)十字的左右轉(zhuǎn)彎,但由于存在類似十字狀元素的T字元素,如圖11和圖12所示,若是要將其識(shí)別,必須將OpenMV中的閾值降低,會(huì)導(dǎo)致十字元素提前判定,影響小車的循跡,所以必須反復(fù)去調(diào)整閾值以不斷貼近理想效果。
圖11
圖12
3.3.3 路徑規(guī)劃
通過(guò)放藥后小車識(shí)別數(shù)字一直到達(dá)病房的路程,可反向推導(dǎo)出返回藥房的路線規(guī)劃,即可減少返回時(shí)數(shù)字角度傾斜難以識(shí)別的問(wèn)題,只需識(shí)別十字并結(jié)合推導(dǎo)出的返回藥房的路線規(guī)劃即可實(shí)現(xiàn)小車回到藥房的返程。
字模識(shí)別測(cè)試:進(jìn)行小車靜態(tài)下單字模和動(dòng)態(tài)下和多字模的圖像識(shí)別測(cè)試,將需要識(shí)別的字模平放在行駛線上,系統(tǒng)連接電腦進(jìn)行上位機(jī)顯示所識(shí)別字模的數(shù)據(jù)。
任務(wù)測(cè)試:在特定時(shí)間要求下使小車自動(dòng)行駛,測(cè)試小車在關(guān)鍵節(jié)點(diǎn)之間的運(yùn)行時(shí)間,同時(shí)觀察小車有無(wú)停頓,脫軌,壓線等情況。
字模識(shí)別測(cè)試情況如表1所示。
表1 小車字模動(dòng)態(tài)靜態(tài)識(shí)別測(cè)試情況
小車時(shí)間節(jié)點(diǎn)測(cè)試情況如表2所示。
表2 小車時(shí)間節(jié)點(diǎn)測(cè)試情況
結(jié)論分析:①靜態(tài)的識(shí)別率較高,但動(dòng)態(tài)的識(shí)別率低了很多??赡茉蚴怯捎谔幱趧?dòng)態(tài)下,攝像頭的幀率有所下降,且加上神經(jīng)網(wǎng)絡(luò)占據(jù)大量?jī)?nèi)存,致使幀率下降很多,各個(gè)圖像存在延時(shí),影響數(shù)字識(shí)別。②從任務(wù)測(cè)試的結(jié)果來(lái)看,小車的運(yùn)行效果較為不錯(cuò),但節(jié)點(diǎn)3的時(shí)間稍稍偏長(zhǎng)。雖然嘗試提高小車運(yùn)行速度,但由于數(shù)字識(shí)別時(shí)小車需要減速,故只好提高返程的小車速度,這樣避免了對(duì)數(shù)字識(shí)別的負(fù)面影響。
本文設(shè)計(jì)的智能送藥小車系統(tǒng),采用后輪驅(qū)動(dòng)前輪萬(wàn)向輪結(jié)構(gòu),小車前端裝有OpenArt進(jìn)行字模識(shí)別,同時(shí)裝有OpenMV通過(guò)準(zhǔn)確掃描標(biāo)記線來(lái)控制電機(jī)差速轉(zhuǎn)向?qū)崿F(xiàn)小車循跡。整車系統(tǒng)由各獨(dú)立模塊整合而成,其電源來(lái)自于動(dòng)力型鋰電池,具有較高的可靠性、穩(wěn)定性;用干簧管來(lái)檢測(cè)藥品是否放下,占用空間小且操作簡(jiǎn)單;萬(wàn)向輪搭配后輪驅(qū)動(dòng)的方案使得車可以實(shí)現(xiàn)原地調(diào)頭,簡(jiǎn)化了控制;OpenMV和OpenArt的架設(shè)使得小車在精準(zhǔn)尋跡的同時(shí)保持較高的字模識(shí)別精準(zhǔn)率。但此系統(tǒng)也存在不足之處:采用的OpenArt鏡頭垂直地面的架設(shè)方法需要鏡頭的投影伸出底盤,車模整體邊長(zhǎng),轉(zhuǎn)彎時(shí)有壓實(shí)線的概率;OpenArt對(duì)光線強(qiáng)度的依賴未能有效解決,會(huì)出現(xiàn)字模識(shí)別錯(cuò)誤的情況。