## 說明 目前為了升級PoseFormerV2內的YOLO版本,進行了多方嘗試。雖然尚未成功,不過大致有兩個可行的方向: ### 方向一 一個是根據「[Day-04:從YOLO v4 到 YOLO v3](https://ithelp.ithome.com.tw/articles/10239903?sc=rss.iron&fbclid=IwAR1KODR3d0CU0V4BdDp6sfcmYkLjcClXK7mCTompz-g3hwkKgfOeAFvYp18_aem_AYE5ll8hKLNrg7Oy9DP6jZBj6AuRnhGDoABdmfumEgpHYedxt326iQRo0_5I_5Rbk3UXow8dRng3HtCrFNX-Zcb8)」提出的概念,將PoseFormerV2內的yolov3.weights、yolov3.cfg、darknet.py進行抽換(當前是根據[AlexeyAB](https://github.com/AlexeyAB)提供的YOLOv7進行測試),然而在替換後會出現「找不到darknet.dll」的錯誤,尚不清楚如何排除。 ![error-2](https://hackmd.io/_uploads/H1RXDUYg0.png) (錯誤示意圖) ### 方向二 另一個做法是直接取代PoseFormerV2內的YOLOv3,在外部得出YOLOv8估測的bounding box,再將其導回PoseFormerV2做下一步運算。目前能夠根據下面的程式來得出YOLOv8的bounding box: #### 程式碼 ```python= from ultralytics import YOLO import cv2 # 載入模型 model = YOLO('yolov8n.pt') # 載入影片 video_path = './test.mp4' cap = cv2.VideoCapture(video_path) ret = True # 讀取幀數 while ret: ret, frame = cap.read() if ret: # 偵測及追蹤物體 results = model.track(frame, persist=True) # 繪製結果 # cv2.rectangle # cv2.putText frame_ = results[0].plot() # 輸出影片 cv2.imshow('frame', frame_) if cv2.waitKey(25) & 0xFF == ord('q'): break ``` #### 輸出結果 {%youtube mxrs29ss4kI %} 不過,要將YOLOv8的輸出結果導回PoseFormerv2,需要對PoseFormerv2內的哪些檔案進行修改,目前尚不明朗。