| 資料前處理
 1.圖片與標註同步縮放與位置調整目的是將圖片和對應的XML標籤檔案進行尺寸同步調整 (確保標籤框(Bounding Box)在縮放後的圖片中仍能精確地標示物品的位置) ●XML標註框同步調整(更新XML檔案中size標籤,確保尺寸符合新圖片大小) ●縮放後的圖片和更新後的標籤檔案分別儲存到指定的輸出目錄 2.標註格式轉換為YOLO & 資料分割
用於yolov7模型的訓練前準備 ●轉換標註格:將 VOC 格式的標註資料轉換為 YOLO 格式,以適應YOLOv7訓練所需的資料格式。
 ●資料分割(樣本數:6089張) 樣本劃分—8:1:1=訓練集(4871張):驗證集(609張):測試集(609張) ●生成訓練、驗證、測試集列表(執行程式voc_annotation.py產生以下文件): Train.txt: 記錄訓練集圖片的路徑 Val.txt: 記錄驗證集圖片的路徑 Trainval.txt: 記錄訓練集和驗證集圖片的路徑 Test.txt: 記錄測試集圖片的路徑 這些文件用於告訴 YOLOV7 訓練程式讀取哪些圖片來進行訓練和驗證。 模型訓練
程式架構:YOLOv7 目標檢測
 ●深度學習框架:使用 TensorFlow 和 Keras 作為框架 ●參數配置
 ○ Init_lr:初始學習率設為5e-4○ Freeze_Train = True 啟用凍結訓練,加速訓練過程並提升模型的穩定性
 ○ Freeze_batch_size:凍結訓練的批次大小設為 16
 ○ Unfreeze_batch_size:解除凍結後的批次大小設為 8
 ○ optimizer_type = 選擇 Adam 優化器,適合快速收斂
 ○ 數據增強(Mosaic 與 Mixup):增加數據多樣性以提升模型的泛化能力
 ○ score_threshold:檢測的信心分數閾值設為 0.4
 ●模型結構
 設置模型大小phi 值 : 設為l表示大模型,適合高精確度需求與計算資源需求也較高的場景 -phi值決定 YOLO 模型的版本與架構大小 ●模型構建與訓練
 使用 yolo_body 搭建 YOLOv7 模型,並根據給定的標註和類別數量進行自定義配置 ●加載預訓練權重: 通過 load_weights 使用預訓練模型加速訓練並適配自定義數據集,提升初期性能 ●訓練時自動調整學習率: 使用動態學習率調整優化訓練過程,提高收斂速度和穩定性。 ●模型保存與評估 訓練過程中定期保存模型:在訓練過程中保存性能最佳的模型權重 ●觀察Loss結果:○損失值在初始階段急劇下降,顯示模型快速學習數據特徵○隨著 Epoch 增加,損失曲線趨於平穩,表示模型逐步收斂
 ○訓練損失與驗證損失接近,表明模型沒有明顯過擬合,學習效果良好
 
 ●觀察mAP(Mean Average Precision)結果:○ mAP 是在所有類別各自的 AP 之後,再取平均,因此能綜合反映模型對所有類別的整體偵測能力。
            若 mAP 越高,表示模型對多數類別的偵測都相對精準○ mAP 隨著 Epoch 增加而上升,表示模型準確率逐步提高
 ○ mAP 上升的趨勢反映了模型有效學習了數據集的特徵,並達到了較好的性能
 ●AP介紹 訓練模型並測試模型預測應用設定
 用途:從圖像中檢測物體並顯示或保存檢測結果 1檢測模型參數:修改權重檔案路徑和類別名稱(ps)檔案路徑 ●設定圖片大小 ●設置檢測框標準 2.檢測圖片3.圖像繪製 模型預測應用
 ●指定測試的模式
 
 ●圖片檢測 ●指定是否在單張圖片預測後對目標進行截取 & 進行目標的計數 ●檢測結果 輸入檢測圖片的路徑 ●呈現結果-> 模型績效評估: Mean Average Precision(mAP)
 ○ m:針對所有類別的平均精準度(AP)取平均值。○ A:計算單一類別的 Precision-Recall 曲線下面積,得出該類別的平均精準度(AP)。
 ○ P:預測結果中正確檢測的比例。
 ●用途:衡量物件檢測模型的整體精確性
 ●主要任務:模型效能:1.取得結果預測
 2.取得真實框
 3.計算mAP值(平均精度均值)
 4.可視化結果
 ●mAP:96.01% ●Recall:89.1%
                ●Precision:91.03%
                ●F1 score:0.9
                ●Confidence:60~75%
 
 進階 - 物件追蹤
 動機目的(1)所示圖形是抗心律不整藥物d,l-sotalol對於心室顫動VF的治療效果研究。(2)Ab-Ak:螺旋波或reentry wave的PS(黑色圓圈)在不同時間點的位置與移動路徑。
 (3)Al: Ab-Ak的PS之位置標註(紅色代表以逆時針方向旋轉)。
 (4)D:其他心臟樣本之PS路徑(藍色代表以順時針方向旋轉)。
 <專題研究可提供之貢獻>藉由我們的PS追蹤模型,可以追蹤reentry wave的PS的持續生存週期(lifespan)以及整體PS數量,藉此可以了解抗心律不整藥物的效果。
 研究進行流程
 偵測物件-YOLOv8
●精度提升YOLOv8 在 COCO 等資料集上的表現,比 v7 更準,對小物體與邊緣遮擋的辨識也更好。
 ●速度快,支援更好
 YOLOv8 精度提升,推論速度仍然很快,適合即時應用;並且支援 ONNX、TensorRT、iOS、Android 。
 ●架構簡化,易於整合
 v8 採用 PyTorch 原生實作, 更乾淨、模組化,方便跟 DeepSORT 整合。
 ●內建功能強:
                YOLOv8 本身內建了訓練、驗證、推論、匯出等功能。
 ●總結:
                YOLOv8 比 YOLOv7 更準、更快、更好整合,是目前做目標追蹤的首選。
 卡爾曼濾波器與匈牙利演算法介紹
● 卡爾曼濾波器1.用途:預測ps在下一幀的位置
 2.作用:  a.目標預測  b.狀態更新
 3.讓ps移動更順、不會突然消失
 ● 匈牙利演算法
 用途:找出預測位置以及特徵和偵測框之間最好的配對組合
 作用:確保每個 ID 都能正確對上對應的ps
 減少 ID 跳號、錯配的情況
 |