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 Eel 與 Vue,提供使用者易於使用且操作流暢的介面,可設定喜愛的用藥時間、藥盒內藥物以及用藥紀錄。 藥物辨識使用 Picamera2 函式庫控制鏡頭之曝光補償及對焦進行拍攝,OpenCV 進行影像裁切,並且搭配 Ultralytics YOLOv8 與自製三層式 CNN 模型,再將顏色、形狀、刻痕送至伺服器比對。

放置藥物

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

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

藥物服用提醒

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

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

藥盒狀態顯示

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

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

設定提醒時間

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

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

後台 API 模組

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

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

手機 APP 模組

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

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

藥單辨識功能

以 Google Cloud Vision 作為文字辨識工具,後經由 GPT-4o 以 Structured 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)。