王怡雯 張曉輝
關(guān)鍵詞:STM32F407ZGT6;送藥車(chē);K210 攝像頭;圖像
中圖分類(lèi)號(hào):TP249 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)10-0025-04
0 引言
送藥車(chē)是醫(yī)院藥房藥品轉(zhuǎn)運(yùn)的設(shè)備,適用于藥房和患者之間的藥品傳送?,F(xiàn)有的醫(yī)用送藥車(chē)大多采用手推車(chē),容易造成藥品錯(cuò)發(fā)、漏發(fā)的醫(yī)療糾紛,無(wú)法滿(mǎn)足“未來(lái)醫(yī)院”患者藥品調(diào)劑精細(xì)化、智能化管理的需求,給大數(shù)據(jù)時(shí)代的醫(yī)院工作帶來(lái)各種不方便。
國(guó)外公司的送藥機(jī)器人基本都是室外送藥機(jī)器人,對(duì)于室內(nèi)送藥機(jī)器人與國(guó)內(nèi)一樣有許多問(wèn)題,很多問(wèn)題都處于研究階段,對(duì)于室內(nèi)送藥機(jī)器人的商業(yè)化還有非常大的一段距離。在實(shí)際的運(yùn)行過(guò)程中,發(fā)現(xiàn)了許多的因道路而產(chǎn)生的問(wèn)題:①當(dāng)下雨天有人在地上鋪上毯子,醫(yī)院或藥房送藥時(shí),送藥機(jī)器人對(duì)這一路段的通過(guò)能力大大降低,有失敗的風(fēng)險(xiǎn),并且行駛過(guò)程中穩(wěn)定性也下降不少。②多個(gè)小車(chē)協(xié)作運(yùn)行過(guò)程中的相互避障及對(duì)路線實(shí)時(shí)規(guī)劃的問(wèn)題,環(huán)境因素(人為或非人為)發(fā)生改變后小車(chē)的適應(yīng)性問(wèn)題和學(xué)習(xí)能力等,都還需要改善。尤其近年來(lái),疫情反復(fù)無(wú)常,為了盡量減少醫(yī)生、病人等人員之間的直接接觸機(jī)會(huì),設(shè)計(jì)一種送藥智能車(chē),能夠根據(jù)藥房、病房號(hào)進(jìn)行自動(dòng)識(shí)別,將藥品及其他檢測(cè)樣本進(jìn)行準(zhǔn)確投送。
1 送藥智能車(chē)的總體設(shè)計(jì)
送藥智能車(chē)控制系統(tǒng)原理框圖如圖1所示,主要包括核心控制器STM32F407ZGT6、HC-05 藍(lán)牙通信電路、K210攝像頭、TB6612驅(qū)動(dòng)電路、TFT顯示屏、減速編碼電機(jī)、灰度傳感器、紅外光電感應(yīng)開(kāi)關(guān)等。
系統(tǒng)工作時(shí),利用紅外光電開(kāi)關(guān)檢測(cè)藥品的放置,使用HC-05藍(lán)牙模塊實(shí)現(xiàn)無(wú)線數(shù)據(jù)交換,傳遞送藥智能車(chē)當(dāng)前位置和任務(wù)信息。核心控制器STM32F407ZGT6控制TB6612電動(dòng)驅(qū)動(dòng)模塊實(shí)現(xiàn)送藥車(chē)減速編碼電機(jī)的驅(qū)動(dòng),減速編碼電機(jī)和萬(wàn)向輪驅(qū)動(dòng)小車(chē)實(shí)現(xiàn)行進(jìn)和轉(zhuǎn)向,使送藥車(chē)自動(dòng)運(yùn)行。利用灰度傳感器獲得灰度值,采用七路灰度傳感器高效區(qū)分不同灰度(顏色)的尋徑線,實(shí)現(xiàn)送藥智能車(chē)的尋徑功能。K210攝像頭進(jìn)行圖像采集,并采用浮雕濾波算法進(jìn)行預(yù)處理,實(shí)現(xiàn)圖像識(shí)別、顏色、物體識(shí)別、MNIST手寫(xiě)數(shù)字識(shí)別等多種功能,從而實(shí)現(xiàn)對(duì)多個(gè)病房號(hào)碼識(shí)別功能[1]。
2 送藥車(chē)控制系統(tǒng)硬件電路設(shè)計(jì)
2.1 供電電路
供電電路采用2路LM2596S-ADJ為核心組成的DC-DC可調(diào)降壓電路,LM2596S-ADJ芯片內(nèi)部有開(kāi)關(guān)頻率150KHz的固定頻率發(fā)生器,并具有頻率補(bǔ)償功能,轉(zhuǎn)換效率達(dá)95%以上。供電電路原理圖如圖2 所示:
LM2596S-ADJ芯片只需要4個(gè)外接元器件就可以工作,一路將電池輸出電壓穩(wěn)定在8V供送藥智能車(chē)驅(qū)動(dòng),另一路將電池電壓穩(wěn)定在5V供各模塊使用。
2.2 電機(jī)驅(qū)動(dòng)電路
本系統(tǒng)送藥智能車(chē)使用TB6612 驅(qū)動(dòng)電路,TB6612是一種可以同時(shí)獨(dú)立地控制兩臺(tái)直流電動(dòng)機(jī)的新型驅(qū)動(dòng)芯片。它的集成度非常高,且能輸出比較高的電流提供足夠的產(chǎn)能,在運(yùn)行電動(dòng)機(jī)的性能和能源消耗方面也具有優(yōu)勢(shì)。因此,它可以作為集成、小型電動(dòng)機(jī)的控制系統(tǒng)中非常理想的電機(jī)驅(qū)動(dòng)裝置。驅(qū)動(dòng)電路原理圖如圖3所示:
2.3 主控板電路
主控板采用自主設(shè)計(jì)的集成各功能的PCB電路板,包括鍵盤(pán)、TFT顯示屏、電機(jī)接口、串口以及LED指示燈等,而且板載的1117芯片可將5V電壓轉(zhuǎn)降至3.3V 以供應(yīng)芯片運(yùn)行。主控板電路如圖4 所示,按鍵、陀螺儀模塊電路如圖5所示,顯示屏、串口模塊電路如圖6所示。
3 送藥智能車(chē)的圖像處理
3.1 數(shù)字識(shí)別方法
送藥智能車(chē)駛向目標(biāo)病房需要攝像頭對(duì)病房號(hào)碼的準(zhǔn)確識(shí)別并且對(duì)號(hào)碼位置的精確判斷,前者可以使用目標(biāo)分類(lèi)達(dá)到很好的效果,但對(duì)目標(biāo)數(shù)字位置識(shí)別涉及對(duì)圖片內(nèi)多個(gè)數(shù)字的處理,存在較大的難度。
YOLOv3采用的one stage目標(biāo)檢測(cè)算法具有較高的運(yùn)算速度,可以同時(shí)檢測(cè)多個(gè)目標(biāo),并對(duì)相應(yīng)的目標(biāo)值進(jìn)行標(biāo)注,獲取目標(biāo)的各種信息。能夠同時(shí)測(cè)量多種數(shù)據(jù),并對(duì)相應(yīng)的目標(biāo)值加以標(biāo)注,從而得到項(xiàng)目的所有特征??梢允紫壤锰卣魈崛?shù)字的輸入特征,從而獲取一定尺寸的特征圖形輸出。將圖像分為13×13的網(wǎng)格單元,然后假設(shè)真實(shí)框的一個(gè)對(duì)象的中心位置落在一個(gè)方格上,然后就可以根據(jù)這個(gè)方格來(lái)推測(cè)這個(gè)對(duì)象。如果一個(gè)對(duì)象中有一定數(shù)量的邊界框,在YOLOv3中有三個(gè)邊界框,然后通過(guò)邏輯回歸可以得到用來(lái)推測(cè)的回歸框[2]。
要檢測(cè)出目標(biāo)數(shù)字在圖像中的位置,就得需要位置信息,也就是bounding box,如圖7中所示需要知道中心點(diǎn)的坐標(biāo),框的寬和高,也就是包含4個(gè)值:x,y,w,h,(x,y)代表box 的中心,(w,h)代表box 的寬和高。
3.2 預(yù)測(cè)框回歸
預(yù)測(cè)框回歸圖如圖8所示:
YOLOv3網(wǎng)絡(luò)最終需要通過(guò)回歸檢測(cè)得到這些信息,回歸思想是指先驗(yàn)框(anchor box)到真實(shí)框(ground truth box)之間是一種回歸關(guān)系,先驗(yàn)框是通過(guò)預(yù)先選定的一些框,來(lái)幫助本系統(tǒng)最終得到真實(shí)的框,在代碼中先驗(yàn)框信息(寬和高)是固定在代碼中的,它包含了三個(gè)尺寸,有的大有的小,且橫縱比有一些區(qū)別,如圖通過(guò)YOLOv3網(wǎng)絡(luò)訓(xùn)練后會(huì)得到一種映射關(guān)系,先驗(yàn)框會(huì)回歸到真實(shí)框,Anchor box 到Ground truth box之間可以通過(guò)中心點(diǎn)的坐標(biāo)的偏移,以及框的寬和高的放縮來(lái)最終得到真實(shí)框[3]。
系統(tǒng)采用K210采集大量原始數(shù)據(jù),進(jìn)行數(shù)據(jù)集標(biāo)注,通過(guò)LabelImg工具進(jìn)行數(shù)據(jù)集創(chuàng)建與標(biāo)注,再通過(guò)Tensorflow框架訓(xùn)練YOLOv3模型,本系統(tǒng)將一千兩百?gòu)埐煌嵌取⒉煌靼祵?duì)比度、不同焦距的圖片傳入框架進(jìn)行訓(xùn)練,最終得到滿(mǎn)意的YOLOv3模型,由圖9可以看出,經(jīng)過(guò)9次迭代損失率可以達(dá)到較低水平,大于9次迭代后損失率下降不再明顯。
浮雕濾波器是一種常用數(shù)字濾波器,能夠給圖像一種3D陰影的效果。只需要用中心這一邊的像素減去另一邊的像素。此時(shí),像素值的正負(fù)是不確定的,本系統(tǒng)將小于0當(dāng)成陰影部分,將大于0當(dāng)成光影部分,然后對(duì)圖像的結(jié)果加上偏移。這時(shí)候,圖像大部分就變成灰色了。
將訓(xùn)練的模型YOLOv3.tflite文件轉(zhuǎn)化為YOLOv3.kmodel 文件,將其放在系統(tǒng)SD卡的根目錄下,通過(guò)K210程序調(diào)用攝像頭進(jìn)行數(shù)字的實(shí)時(shí)識(shí)別。將識(shí)別的結(jié)果通過(guò)串口通信實(shí)時(shí)地發(fā)送給主控制器。
3.3 自動(dòng)尋徑方法
本系統(tǒng)采用7路灰度傳感器,裝在送藥智能車(chē)車(chē)頭下方,用于尋徑和記錄送藥智能車(chē)所處位置?;叶葌鞲衅鞑捎霉饷舳O管,在識(shí)別到顏色變化時(shí)改變輸出信號(hào)。尋跡模塊的7個(gè)灰度傳感器檢測(cè)道路,根據(jù)灰度傳感器的返回的灰度值和邏輯電平信號(hào),判斷送藥智能車(chē)相對(duì)道路中間所在的位置,調(diào)整送藥智能車(chē)兩個(gè)電機(jī)的速度從而改變運(yùn)行軌跡,使送藥智能車(chē)始終沿著軌道行走。根據(jù)當(dāng)前傳感器的返回值,確定智能送藥車(chē)所在道路的位置,從而改變車(chē)輛的行駛方向的走向,讓車(chē)輛一直沿著道路中間的實(shí)線運(yùn)行。送藥智能車(chē)的初始位置定在道路的中間,使用最中間的灰度傳感器壓線,送藥智能車(chē)將默認(rèn)以直線方式前進(jìn),在前進(jìn)一段距離后,因?yàn)槟Σ亮蛙壍狼€變化及電機(jī)的區(qū)別等問(wèn)題,送藥智能車(chē)將脫離軌道線而偏向另一方向,這時(shí)車(chē)輛就必須通過(guò)從灰度傳感器中得到的數(shù)據(jù)進(jìn)行判別,以實(shí)時(shí)的方式選擇送藥車(chē)輛運(yùn)行路線[4-5]。
若是七路灰度傳感器檢測(cè)不到道路,表明送藥智能車(chē)到達(dá)了門(mén)口區(qū)域,這時(shí)會(huì)自動(dòng)原地轉(zhuǎn)向進(jìn)行藥品裝卸。
根據(jù)道路情況,在程序內(nèi)部建立各個(gè)病房位置的絕對(duì)坐標(biāo)系和相對(duì)于小車(chē)位置的相對(duì)坐標(biāo)系,主控制器根據(jù)接收到灰度傳感器的數(shù)據(jù)和電機(jī)編碼器的值進(jìn)行計(jì)算,得出送藥智能車(chē)此刻位于道路的位置,通過(guò)送藥智能車(chē)自身傳感器配以PID算法產(chǎn)生中斷對(duì)指令的執(zhí)行進(jìn)行微調(diào),更好地完成任務(wù)。
4 送藥智能車(chē)的控制系統(tǒng)軟件設(shè)計(jì)
送藥智能車(chē)控制系統(tǒng)軟件主要包括主程序、圖像處理程序、數(shù)字識(shí)別程序、自動(dòng)尋徑程序、雙車(chē)通信程序等,限于篇幅,在此僅介紹主程序。系統(tǒng)程序流程圖如圖10所示。
5 結(jié)束語(yǔ)
本次設(shè)計(jì)的醫(yī)用送藥智能車(chē)具有自主避障、自動(dòng)循跡、藥房和病房的自動(dòng)識(shí)別等功能,實(shí)現(xiàn)了藥房與病房之間藥品及其他檢測(cè)樣本的精準(zhǔn)投送,減輕了醫(yī)護(hù)人員的勞動(dòng)強(qiáng)度,提高了工作效率。