Feb
2025

藥藥Check it Now

AI Assisted

React Native手機部分為AI輔助製作,其餘使用AI除錯

隨著人口結構的改變,全球進入高齡化社會,銀髮族的健康照顧與生活已成未來發展趨勢,加上許多慢性病,如高血壓、糖尿病等因為飲食習慣的改變呈現年輕化的走向,為了提高治療效率,藥藥Check it Now致力於開發一個智能藥物管理系統,以滿足長期用藥患者以及照護者的追蹤用藥情形之需求,特別是銀髮族及其家屬。

智慧藥盒結合手機 APP,可設定每次用藥的提醒時間。同時,為了減輕醫者負擔,設計醫者對用藥者之服藥資訊追蹤系統

主要功能包含:

  • 服藥提醒功能
  • 藥物辨識功能
  • 藥單辨識功能
  • 用藥者服藥統計功能
  • 溫濕度感測功能

系統架構

智慧藥盒系統架構圖智慧藥盒系統架構圖
藥藥Check it Now依照系統功能分為三個不同的模組,分別為:智慧藥盒模組手機 APP 模組以及後台伺服器模組

智慧藥盒模組

智慧藥盒硬體智慧藥盒硬體
智慧藥盒外盒採 3D 列印,並且以藍綠色塗漆,上方有觸控螢幕提供使用者更為便捷的操作體驗。
智慧藥盒容器智慧藥盒容器
藥盒容器內部採黑色塗裝,避免底色與藥物撞色,以便模型辨識藥物顏色資訊。

智慧藥盒容器上方硬體智慧藥盒容器上方硬體
放置藥盒容器上方使用兩顆 Pi Camera 3 廣角版鏡頭,實際量測藥物置放於藥盒中所需之最近對焦距離、視野範圍以及亮度以最小化藥盒體積,同時確保藥物辨識的成功運行。經量測,鏡頭距離藥物 9.5 公分為考量到 3D 列印公差、鏡頭視野範圍以及最近對焦距離之最適長度。藥盒內放置六顆 LED 燈泡,為達到平均補光效果,於 LED 與鏡頭之間放置面紙將燈源發散,使藥物辨識不受自身陰影影響。

軟體方面,搭載於智慧藥盒中的樹莓派作業系統運行Raspberry Pi OS,透過 Python EelVue,提供使用者易於使用且操作流暢的介面,可設定喜愛的用藥時間、藥盒內藥物以及用藥紀錄。 藥物辨識使用 Picamera2 函式庫控制鏡頭之曝光補償及對焦進行拍攝,OpenCV 進行影像裁切,並且搭配 Ultralytics YOLOv8自製三層式 CNN 模型,再將顏色、形狀、刻痕送至伺服器比對。

放置藥物

放置藥物流程放置藥物流程
放置藥物流程放置藥物流程

藥物置入藥盒時,即觸發磁控開關,系統即跳出提醒視窗,交由 YOLOv8三層式 CNN 辨識影像。

藥物服用提醒

到達所設定之服藥時間時,手機應用程式將發出通知提醒,智慧藥盒則會發出聲響及燈號提醒用藥者已到服藥時刻。

服用藥物提醒服用藥物提醒
藥盒將在螢幕介面上亮起個別容器的框格,以提示該服用的藥盒位置。

藥盒狀態顯示

智慧藥盒切換至藥槽狀態頁面時,可查看所有藥槽目前存放之藥物以及環境狀態,環境狀態標準依據世界衛生組織 (WHO) 的存放指引設計。

藥槽狀態藥槽狀態
當用藥者的藥品放置環境不符合標準,手機應用程式將提示藥盒狀態環境不佳,應移至他處。

設定提醒時間

使用者可以根據自己用藥習慣選擇早上、中午、晚上的喜好用藥時間,以便系統在該時間提醒用藥。

用藥提醒時間設定用藥提醒時間設定
用藥提醒時間設定用藥提醒時間設定

後台 API 模組

後台 API 為提供手機 APP 與樹莓派溝通的媒介,同時將使用者各項資訊放置於資料庫中。

手機 APP 模組所拍攝的藥單資訊將上傳至本模組,藉由介接文字辨識系統,將藥單資訊直接放置於資料庫中,以了解此次療程可能會有哪些藥物放置於藥盒中。

手機 APP 模組

手機 APP 模組使照護者能夠遠端監控用藥者狀況,可在本模組觀察智慧藥盒藥物存放狀況、藥盒溫濕度以及過往藥物服用紀錄,到達服用藥物時間時,手機 APP 模組也會隨藥盒同步通知用藥者及照護者。用藥者可拍攝各種不限格式的藥單進行藥單辨識,本模組將會把影像傳至後台 API 模組辨識。

登入畫面,選擇身份登入畫面,選擇身份
登入畫面登入畫面
登入成功後,顯示藥盒目前存放藥物以及存放環境資訊
藥盒資訊藥盒資訊

藥單辨識功能

Google Cloud Vision 作為文字辨識工具,後經由 GPT-4oStructured Output 輸出符合伺服器 API 的 JSON 格式資訊。

辨識功能辨識功能
將手機相機對準藥單並拍攝,系統將藉由 Google Cloud Vision 辨識出其中文字,並且利用 GPT 產生出結構化、後端伺服器可接受的文字。
辨識成果辨識成果

用藥提醒功能

用藥提醒查詢用藥提醒查詢
使用者將藥物放入智慧藥盒後,可在手機 APP 上從個人資料中點選左下角日曆圖形,即可自行設定用藥提醒時間,當時間到時,手機便會顯示用藥提醒,提醒用藥者及時服用藥物。

藥單查詢功能

藥單查詢藥單查詢
使用者可在手機 APP 上點選「我的藥單」後,便可查看藥物名稱、服藥期間以及服藥用量,以確保能在正確的時間服用正確的藥物。

個人工作內容與分工

在此專題專案中,作為組長,需要整合所有組員所做出的成果,並主要負責樹莓派與硬體控制伺服器後端API開發以及專題研究文件撰寫系統分析與規格設計,輔助開發手機APP:

  • 樹莓派與硬體控制 (Raspberry Pi)
    • 硬體控制端程式設計(包含鏡頭拍攝控制、補光與開關感測、電路設計等)
    • 硬體線路連接與實體組裝
    • 樹莓派前端介面開發(使用 Python Eel 與 Vue 打造控制 UI)
  • 伺服器與手機端開發 (Backend & Mobile App)
    • 伺服器後端 API 開發
    • 手機應用端 (App) 功能開發(輔助開發,主要負責藥單掃描模組、帳號相關UI以及模組化組員與AI協作之程式碼)
    • 資料庫邏輯與 .NET Dapper 腳本撰寫
  • 系統分析與規格設計 (System Analysis & Planning)