邊緣運算智慧傷口照護系統:用一張照片,讀懂傷口的癒合軌跡。
H.E.R.A.(Healing Evaluation and Recognition Architecture)是一套專為邊緣裝置設計的離線智慧傷口評估系統。透過輕量化 YOLOv8n-seg 模型完成傷口邊界分割,搭配 HSV 色彩門檻進行組織品質分析,並結合面積變化趨勢與參考 PUSH Tool 概念設計的決策樹,交叉判斷傷口的癒合狀態,最終以 🟢🟡🔴 燈號給出護理或就醫建議 —— 全程手機端離線運算,無需上傳雲端。
癒合情況不是單一數字,而是「面積趨勢」+「組織品質」+「感染風險」三者交叉判斷。
flowchart TD
A[📱 手機拍照] --> B[1. 面積變化<br/>本週 vs 上週]
A --> C[2. 組織比例<br/>紅/黑/黃/黃綠]
A --> D[3. 感染安全網<br/>DFUC2021 分類器]
B -->|YOLOv8 + 比例尺| E[正在變好還是變大?]
C -->|HSV 色彩門檻| F[傷口內部品質好不好?]
D -->|感染/缺血分類| G[有沒有立即危險?]
E --> H[PUSH 邏輯決策樹<br/>+ 安全網警示]
F --> H
G --> H
H --> I{🟢 🟡 🔴 燈號與建議}
- 面積變化:本週傷口面積 vs 上週(YOLOv8 分割 + 比例尺換算 cm²)
- 組織比例:紅/黑/黃/黃綠色像素佔比(HSV 色彩門檻,非 AI 運算)
- 感染安全網:感染/缺血分類器(DFUC2021 醫療標註訓練)
六步驟資料流:
flowchart LR
A["1. 手機拍照<br/>固定比例尺"] --> B["2. 邊界分割<br/>YOLOv8n-seg"]
B --> C["3. 組織分析<br/>HSV 色彩門檻"]
C --> D["4. 面積換算<br/>像素 → cm²"]
D --> E["5. 決策判定<br/>PUSH 決策樹"]
E --> F["6. 燈號建議<br/>🟢🟡🔴"]
關鍵設計:AI 只負責「找到傷口邊界」;組織顏色比例用傳統影像處理(HSV)計算,大幅降低手機運算負擔。
為什麼可行:HSV 色彩分析是純數學運算(毫秒級),真正吃算力的只有「找傷口邊界」——單類別分割比五類別組織分割輕量許多,非常適合手機離線執行。
⚠️ 與原始規劃的差異:App 開發實際採用 Flutter(跨平台單一程式碼庫), 而非最初規劃的 Kotlin/Swift 原生雙平台開發,因團隊人力考量調整。
| 模組 | 技術 |
|---|---|
| 邊界分割模型 | YOLOv8n-seg (Ultralytics) |
| 模型輕量化 | INT8 量化、TFLite (Android) / Core ML (iOS) |
| 組織分析 | HSV 色彩門檻(純 Dart 運算,不需要 OpenCV) |
| 決策邏輯 | Rule-based Logic,參考 PUSH Tool 設計 |
| App 開發 | Flutter(camera + ultralytics_yolo 套件) |
| 本地儲存 | SQLite(Flutter 端透過 sqflite) |
| 訓練環境 | 本機顯卡(NVIDIA RTX 5090,備援環境 RTX 5070) |
⚠️ 感染安全網現況:架構圖中的「感染安全網」目前尚未訓練 DFUC2021 分類器,是用規則判斷暫代(絕對面積 > 門檻值 或 偵測到黃綠膿液即觸發), 屬於簡化版本。是否訓練獨立分類器待評估,目前先用規則版本驗證 App 端流程。
| 資料集 | 內容 | 用途 |
|---|---|---|
| DFUC 2022 | 4,000 張,5 位足科醫師以 VGG Annotator 標註的傷口邊界 polygon mask | 訓練邊界分割模型 |
| DFUC 2021 | 醫療專業人員標註的感染 / 缺血分類標籤,共 1,703+ 例 | 訓練感染安全網分類器 |
| FUSeg 2021 | 1,210 張足潰瘍影像,512×512,附分割 mask | 擴充邊界分割訓練集,提高泛化能力 |
資料切分:訓練 60% / 驗證 20% / 測試 20%,確保同病患影像不跨集合洩漏。
整合面積數字 + 組織比例,帶入參考 PUSH Tool 概念設計的決策規則:
flowchart TD
Start([傷口數據輸入<br/>面積 / HSV 組織比例]) --> Q1{黑色壞死 + 黃色腐肉 > 50%<br/>或出現黃綠膿液<br/>或面積擴大?}
Q1 -->|YES| Red["🔴 惡化 / 警示<br/>感染風險高,建議尋求醫師清創"]
Q1 -->|NO| Q2{黃色腐肉 25%~50%<br/>或面積連續兩週停滯<br/>(±5% 內)?}
Q2 -->|YES| Yellow["🟡 觀察 / 停滯<br/>加強滲出液控制與清潔"]
Q2 -->|NO| Green["🟢 良好 / 修復<br/>組織修復正常,持續目前護理"]
Start -.->|絕對面積 > 安全門檻| Alert["⚠️ 安全網:不論組織比例結果<br/>直接建議立即就醫"]
| 燈號 | 判定條件 | 行動建議 |
|---|---|---|
| 🟢 良好 (Healing) | 紅色肉芽 + 粉紅上皮 > 75% 且面積比上週縮小 > 10% | 組織修復正常,持續目前護理 |
| 🟡 觀察 (Stagnant) | 黃色腐肉 25%~50% 或面積連續兩週停滯(±5% 內) | 復原停滯,加強滲出液控制與清潔 |
| 🔴 惡化 (Deteriorating) | 黑色壞死 + 黃色腐肉 > 50% 或出現黃綠膿液 / 面積擴大 | 感染風險高,建議尋求醫師清創 |
安全網規則:不論組織比例結果如何,若傷口絕對面積 > 設定門檻值,直接跳出「建議立即就醫」——保守但安全。
| 版本 | 模型大小 | 單張推論時間(估) | 適用情境 |
|---|---|---|---|
| YOLOv8n-seg(FP32 原始) | ~7 MB | 800ms – 1.5s | 開發測試 / 雲端備援 |
| YOLOv8n-seg(INT8 量化) | ~2 MB | 200 – 500ms | 手機端離線即時使用 |
目標:在中階手機(如 Snapdragon 6 系列等級)單張推論 < 500ms。
gantt
title H.E.R.A. 8 週執行計畫
dateFormat YYYY-MM-DD
axisFormat W%W
section 資料
資料蒐集與前處理 :a1, 2026-01-01, 14d
section 模型
模型訓練與驗證 :a2, 2026-01-08, 21d
模型輕量化匯出 :a3, 2026-01-22, 7d
section 邏輯
HSV 分析 + 決策邏輯開發 :a4, 2026-01-22, 14d
section App
App 整合開發 :a5, 2026-01-29, 14d
section 收尾
測試優化與展示準備 :a6, 2026-02-12, 7d
- 目前決策規則為參考 PUSH Tool 概念自行設計,非官方量表,門檻值(50% / 25% / ±5%)待進一步驗證。
- 跨週追蹤資料(同病患多次回診)較稀缺,現階段以測試資料模擬展示。
- 後續可與醫療單位合作校準門檻值,進一步提升臨床可信度與安全性。
- 決策樹中「面積連續兩週停滯」的判斷邏輯,App 端目前只比對最近一次紀錄, 尚未實作真正的多週趨勢比對。
- 「感染安全網」目前是規則判斷暫代,尚未訓練獨立的 DFUC2021 分類器 (詳見上方技術棧章節說明)。
- 下方「專案時程」為早期規劃草稿,日期未反映實際進度,之後改以 GitHub Issues/Projects 追蹤即時進度。
- App 端護理紀錄整合、PDF 就醫報告匯出、家屬共享檢視、拍照品質即時檢測、 模型信心度顯示等延伸功能尚未開發,列為後續加值方向。
目前為灰階線框稿,配色尚未定案;結構已對應 Flutter 端實際開發進度。
flowchart TD
Home["首頁 · 傷口檔案列表<br/>燈號 chip 顯示各檔案最新狀態"] -->|點 +| NewDialog["新增傷口檔案彈窗"]
NewDialog --> Home
Home -->|點相機圖示| Camera["拍攝畫面<br/>比例尺對齊框引導"]
Camera -->|拍照並判讀| Result["判讀結果彈窗<br/>🟢🟡🔴 + 建議文字"]
Result -->|確定| Home
Home -->|點趨勢圖示| Trend["趨勢畫面<br/>面積折線圖 + 歷史紀錄列表"]
Home -->|底部導覽| Settings["我的<br/>本機顯示名稱 / 通知開關 / 關於"]
| 畫面 | 說明 | 實作狀態 |
|---|---|---|
| 首頁(傷口檔案列表) | 卡片式列表,每筆顯示最新燈號、建立日期,右側可直接跳轉拍攝或趨勢 | ✅ 已完成,燈號讀取自本機資料庫最新紀錄 |
| 新增傷口檔案彈窗 | 輸入名稱後建立一筆新的追蹤檔案 | ✅ 已完成 |
| 拍攝畫面 | 相機預覽 + 比例尺對齊虛線框(四角醫療綠標記)+ 拍照按鈕 | ✅ 相機串接完成;比例尺辨識尚未實作,框線僅為視覺引導 |
| 判讀結果彈窗 | 燈號圖示 + 建議文字;模型未接上時顯示「 |
✅ 已完成優雅降級機制,真實模型接上後自動切換 |
| 趨勢畫面 | 面積折線圖 + 歷史紀錄清單(面積、日期、燈號) | ✅ 已完成;尚未顯示拍攝的照片縮圖 |
| 我的(設定頁) | 本機顯示名稱、就醫提醒推播開關、關於本專案的免責聲明 |
