摘要
本項目對于目前全球新冠疫情下低收入國家疫苗接種率不高的問題,運用AMD-Xilinx提供的KV260硬件平臺和Vitis-AI開發(fā)平臺,基于2D圖像的視覺AI輔助的疫苗肌肉注射點檢測技術(shù),結(jié)合輕量級神經(jīng)網(wǎng)絡(luò)模型,利用量化技術(shù)、后處理技術(shù)等,設(shè)計了一個低開發(fā)成本、低人力成本、低交叉感染風(fēng)險的自動疫苗接種方案。
項目背景
新型冠狀病毒還在影響著人們生活的方方面面,給公共衛(wèi)生、全球運輸系統(tǒng)和許多領(lǐng)域帶來了前所未有的挑戰(zhàn)。大多數(shù)政府已經(jīng)實施過封鎖,限制國際旅行等各類政策,以減輕病毒的傳播。鑒于目前還沒有能夠?qū)共《镜奶匦帲臃N疫苗仍然是最有效手段之一。
然而,全球疫苗接種率仍然很低,尤其是在低收入國家。根據(jù)世衛(wèi)組織的數(shù)據(jù),低收入國家只有14.5%的人口接種了至少一劑疫苗[1]。許多非洲國家的疫苗接種率更低,僅在1.5%至4%之間。在這種情況下,如何才能提供一個低成本的疫苗接種方案是最緊急,但也是極具挑戰(zhàn)性的。因為開發(fā)疫苗本身成本很高,接種疫苗這個過程也有一定成本,此外,傳統(tǒng)的疫苗接種可能會增加病毒傳播的風(fēng)險,還有醫(yī)護人員的工作量。
自主機器人注射能成為一種安全有效的方案,人們只需走進封閉的空間,露出手臂。最近,有兩個自動注射機器人原型被開發(fā)出來。第一個是加拿大的初創(chuàng)公司開發(fā)的Cobi:是世界上第一個自動無針注射機器人,它通過激光雷達(dá)傳感器和AI位置跟蹤,得以識別人體識別。然后, 360度深度感知系統(tǒng)會引導(dǎo)機械臂定位,注射藥物[2]。另外一個是“后羿”,它是由上海同濟大學(xué)研發(fā)的國內(nèi)首款自動疫苗注射機器人,它通過三維人體模型,得以自動識別注射位置。通過一個簡單的三維點云相機對人體進行拍攝,快速自動擬合人體對應(yīng)部位的三維模型,準(zhǔn)確識別疫苗注射部位及注射角度。[3, 4]
值得一提的是,這兩種解決方案都采用了無針注射,確保了安全和無痛注射。另一個關(guān)鍵因素是它們檢測注射部位的方案。為了完成檢測任務(wù),這兩種機器人的方案都涉及到復(fù)雜的三維模型識別算法還有多維度的傳感器。雖然這兩個機器人所用的算法可以提供準(zhǔn)確的部位檢測,但它們也涉及大量的開發(fā)工作,多維度傳感技術(shù)和昂貴的硬件支持,這些都會增加這些機器人的整體成本。所以本項目中,我們認(rèn)為有必要去提出一個低成本且有效的注射點識別方案,這樣才將機器人部署到世界各地。
在正式開始項目之前,我們咨詢醫(yī)學(xué)專家得知目前的新冠疫苗主要是靠肌肉注射,因為可以使藥劑迅速參與到系統(tǒng)循環(huán)中。綜合考慮下,三角肌是最適合接種的部位,因為它血供充足,面積大。而且不同個體之間,三角肌差異不大。這啟發(fā)了我們,基于Xilinx KV260,利用視覺AI輔助技術(shù),實現(xiàn)2D肌內(nèi)注射部位檢測方案。
技術(shù)設(shè)計過程總覽
我們的目標(biāo)是讓連接 KV260 的顯示器指示患者手臂上的注射部位。由于硬件資源的限制和目前現(xiàn)有的手臂檢測工作數(shù)量較少,我們決定將問題簡化為人臉檢測輔助后處理來指示結(jié)果。對于我們項目的主體部分,研究重點放在基于 Vitis-AI 的模型選擇和訓(xùn)練策略。而對于后處理,主要使用OpenCV進行代碼編寫,后使用VVAS進行編譯和處理。在測試階段,我們使用收集到的與我們的應(yīng)用場景相匹配的圖片來查看模型與后處理模塊結(jié)合下的準(zhǔn)確性,然后相應(yīng)地調(diào)整我們的模型或是后處理模塊的參數(shù)。
基于Vitis-AI的模型準(zhǔn)備
根據(jù)VVAS官網(wǎng)的描述,VVAS支持 Vitis-AI 模型是有限的,對于我們需要的模型類 FACEDETECT,VVAS 中只有 densebox 可用,并且精度在我們可以接受的范圍內(nèi)。考慮到我們的應(yīng)用場景是疫苗接種。為了降低病毒傳播的風(fēng)險,人們在打針時大多戴口罩。Vitis-AI 中預(yù)訓(xùn)練使用的數(shù)據(jù)集為 WIDER FACE,該數(shù)據(jù)集內(nèi)不強調(diào)佩戴醫(yī)用口罩的人臉。為了確保可以很好地檢測戴口罩的人臉,尤其是當(dāng)人們在注射過程中將側(cè)臉轉(zhuǎn)向儀器時,我們使用 MAFA(一個有口罩人臉數(shù)據(jù)集)對densebox原先自帶的預(yù)訓(xùn)練的結(jié)果進行增加性訓(xùn)練。
模型訓(xùn)練、量化與編譯流程
我們采用Vitis-AI里面預(yù)置的Caffe框架,可以使用以下命令在Vitis-AI中啟動它:
我們的訓(xùn)練是基于Vitis-AI中預(yù)訓(xùn)練結(jié)果進行的,可以訪問Vitis-AI的官方repo下載需要的densebox模型相關(guān)文件,并執(zhí)行以下命令:
當(dāng)然,在執(zhí)行以上命令之前,請記得將“train.prototxt”文件中指向數(shù)據(jù)集的path改為MAFA數(shù)據(jù)集所在的路徑。
對于模型的量化,我們只需執(zhí)行以下命令:
該命令中使用到的“.caffemodel”浮點模型文件可由上一步的訓(xùn)練命令執(zhí)行后得到,也可從我們整個項目的repo中下載:
https://github.com/iCAS-SJTU/J-eye/tree/main/models/float
為了得到最后能在KV260上執(zhí)行的模型文件“.xmodel”,我們需要對量化后模型文件進行編譯,可采用以下命令:
該命令中使用的文件均可從https://github.com/iCAS-SJTU/J-eye/tree/main/models/quantized下載,其中兩個“deploy.*”文件均為模型量化后結(jié)果,“arch.json”文件可由KV260的官方源碼repo獲得。
后處理模塊搭建
后處理模塊的搭建中主要運用的工具就是VVAS,我們需要將它的整個repo clone下來。
(該部分的過程都假定我們在“${PATH_TO_VVAS}/VVAS/”目錄底下,關(guān)于交叉編譯環(huán)境的搭建,由于篇幅原因,詳見我們在hackster.io上發(fā)布的文章)。
首先,我們需要先編譯vvas-util里面的文件。這之中的第一步需要我們修改“meson.cross”里面的“SYSROOT”和“NATIVESYSROOT”。接著我們在“vvas-utils/”這個目錄下執(zhí)行以下命令:
在成功編譯之后,將以下文件復(fù)制到指定位置。
同時也可以把“vvas-utils/”目錄下的所有“.h”文件復(fù)制到“${SYSROOT}/usr/include”這個目錄下以避免一些后續(xù)的報錯。
結(jié)束了“vvas-utils”部分的編譯之后,我們開始“vvas-gst-plugins”部分的處理。我們可以再利用前面編輯過的“meson.cross”文件(直接復(fù)制到“vvas-gst-plugins/”目錄下),然后執(zhí)行同樣的編譯命令。
成功編譯之后,我們還需要做一些文件復(fù)制。
同時也同樣需要把“vvas-gst-plugins/”目錄下的所有“.h”文件復(fù)制到“${SYSROOT}/usr/include”這個目錄下以避免一些后續(xù)的報錯。
最后一步,我們進入到“vvas-accel-sw-libs/”目錄下,將其中“vvas_xboundingbox/src”下的“vvas_xboundingbox.cpp”替換成我們修改過的https://github.com/iCAS-SJTU/J-eye/tree/main/post-processing/src中的cpp代碼。然后執(zhí)行以下命令:
在編譯成功之后,進入到“build/vvas_xboundingbox/”下我們可以找到”vvas_xboundingbox.so”文件用于后處理模塊當(dāng)中。
集成于KV260
由于我們的應(yīng)用是基于smartcam的,我們需要先下載基本的smartcam應(yīng)用包。
在/opt/xilinx/share/ivas/smartcam/目錄下,執(zhí)行以下命令。
接著,將
https://github.com/iCAS-SJTU/J-eye/tree/main/models/compiled
中所有的文件下載到該目錄中。我們還需要將后處理模塊要用到的文件
https://github.com/iCAS-SJTU/J-eye/tree/main/post-processing
復(fù)制到/opt/xilinx/lib目錄底下。文件都部署完成后,我們可以執(zhí)行以下命令來運行整個程序。
結(jié)果演示
患者應(yīng)面朝左側(cè)直立站/坐于相機前,檢測結(jié)果將呈現(xiàn)于下圖中顯示器。
當(dāng)患者位于難以進行注射的位置時,顯示器上將發(fā)出位置偏離的警告信息。
當(dāng)患者位于可檢測范圍內(nèi)時,注射點位置將由白色圓圈標(biāo)出。
審核編輯 :李倩
-
機器人
+關(guān)注
關(guān)注
212文章
29256瀏覽量
210808 -
檢測技術(shù)
+關(guān)注
關(guān)注
2文章
358瀏覽量
29406
原文標(biāo)題:作品回顧|J-Eye: 疫苗接種機器人中的肌肉注射點智能檢測技術(shù)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
探討 GaN FET 在人形機器人中的應(yīng)用優(yōu)勢

伺服電動缸在人形機器人中的應(yīng)用
【「具身智能機器人系統(tǒng)」閱讀體驗】2.具身智能機器人的基礎(chǔ)模塊
【「具身智能機器人系統(tǒng)」閱讀體驗】2.具身智能機器人大模型
【「具身智能機器人系統(tǒng)」閱讀體驗】1.初步理解具身智能
【「具身智能機器人系統(tǒng)」閱讀體驗】+初品的體驗
《具身智能機器人系統(tǒng)》第1-6章閱讀心得之具身智能機器人系統(tǒng)背景知識與基礎(chǔ)模塊
變速齒輪在機器人中的使用
產(chǎn)業(yè)用機器人中的旋轉(zhuǎn)花鍵若損傷有何影響?

評論