參賽團隊名稱:中科大隊隊
提案動機
長久以來,藥師包錯藥的新聞從未少過,無論是醫師開錯處方,或是藥師取錯藥藥師都得要承擔責任誤食藥品的後果將無法計算。病人若是一天沒服用藥物,將有可能使身體不適,嚴重點甚至會造成病情惡化。在診所中,為了方便民眾服用會透過自動包藥機產生一包一包串起來一長條的藥物,而藥師只要將每份的藥物放置在包藥機內即可。
然而,就算包藥的工作是由機器處理,依然會有無法預期的錯誤發生。所以最後還會透過藥師的「三讀五對」來做最後的把關,但很顯然的,包錯藥給病人的事件依然還會發生。因此本專案能在藥包拿給民眾的最後一步做最後的檢查,避免造成更多傷害。
解決方案
軟體:
- Cmake 3.21.3
- Python 3.8.10
- Intel OpenVINO 2021.4.689
- YOLOv3m
- Windows10
硬體:
- Intel® Core™ i7-8565U CPU
- 內建鏡頭HD Webcam
台灣有多家醫院都有釋出藥品圖片與其資料,透過python爬蟲可將所有資料掌握其中。
首先將醫院使用OpenCV產生資料,由於醫院提供的藥品圖片依然不足以應付訓練模型,我們想配合網路上圖庫抓來的背景圖與去背後的藥品結合。去背採用BGR相減的方式達到效果。產生大量假圖片與label檔後即能進行transfer learning來訓練模型。
將藥品顏色分為十四大類,最後能由YOLOv3辨識出藥品位置與其數量。
成果介紹
下列是由YOLOv3做object detection 挑出並框選藥品之所屬顏色。
例圖中的class 12為白色,class 5 為淡白色。
輸出資訊:
感想
在這段期間依照著原定計畫進行,使用樹莓派作為呈現途徑,途中嘗試了許多方法,也遇到了許多問題。我們在樹莓派上下了許多功夫,在一個不熟悉的領域與環境持續摸索、建立環境、執行模型等,發現錯誤以後使用諸多方法解決問題,遺憾最後無法找到最後一個問題的解答真相,無奈只好選擇其他方式呈現。
經過這次參賽,除了學習新知與熟悉新環境以外,在學習的過程更激發並加深我們自身對於資訊領域的興趣,也正視到自己在該領域的能力不足。作為我們團隊的第一次參加這類型的比賽,我們認為是個開端,往後將繼續在該領域鑽研。