---
# System prepended metadata

title: 專題會議記錄
tags: [會議記錄]

---

# 應用YOLOv8與Deepsort於魚眼相機下執行行人追蹤和計數           
## People Tracking and Counting via Fisheye Camera Using YOLOv8 and DeepSort


~~Head Detection and Tracking Using YoloV8 via Fisheye Camera / People Counting or People Counter~~
~~醫院路徑規劃專題會議記錄~~
###### tags: `會議記錄`
(原人臉辨識專題會議記錄)
* github
https://github.com/Daniel-ShinShen/pythonProject_FaceDetection

* program structure:
   working directory
   |--main.py
   |--mainwindow.ui
   |--YOLOv8CustomObjectDetection.ipynb

//pass

* reference code:
1. RecordVideo part(for presenting the video in GUI)
https://github.com/benhoff/blog/blob/master/scripts/face-detection-in-pyqt.py
2. Loading model and do object detection (and export video)
Yolov8 object detection + deep sort object tracking | Computer vision tutorial
https://www.youtube.com/watch?v=jIRRuGN0j5E
4. Custom model training on google colab
Episode 3 | How to Train Ultralytics YOLOv8 models on Your Custom Dataset in Google Colab
https://www.youtube.com/watch?v=LNwODJXcvt4

## 額外討論時間
113-1 學期
信昇: 三中午以後，或四晚上
繼寬: 一二三中午

-> 三中午

## 專題進度流程 ~~(GUI construct)~~
1. 可載入影片 ✔
2. ➽人臉偵測功能 ⟸ work on this
3. 建立少數人的人臉辨識 ✘
4. 人臉偵測應用-急診系統動線分析&路線優化✘
5. 

✔✓✗✘∨√☑☒⮰➽➳

----
# 2023
# 09/25 (Group meeting)

- 會議時間：2023 年 09 月 25 日 （一）
- 會議地點：線上
- 參與人員：

## 預計討論項目(事先填寫)
  1. 專題實作方向改成醫院路徑規劃
## 討論事項

## 結論

## 臨時動議

## 下次會議時間

## 下次會議預計討論項目

## 其他

----
# 10/06

- 會議時間：2023 年 10 月 06 日 （五） 20:00 ~ 21:00
- 會議地點：線上
- 參與人員：

## 預計討論項目(事先填寫)

討論 GUI 目標進度 - 實作detection功能

繼寬- thread 的機制理解
信昇- face detection 功能實作在thread上

## 討論事項
1. 這週還沒準備好
2. 

## 結論
1. 決定每週三中午進行組內會議
2. 我們是福音之友

## 臨時動議

## 下次會議時間

暫定 10/11 中午
地點: 線上

## 下次會議預計討論項目

## 其他

----

# 10/22

- 會議時間：2023 年 10 月 22 日 （日） 14:30~16:30
- 會議地點：創創(D24)
- 參與人員：

## 預計討論項目(事先填寫)

討論 GUI 目標進度 - 實作detection功能 (2)

## 討論事項
1. 福音之友討論(二)
2. 提議用 colab 合作寫code
## 結論
繼寬: 路徑規劃
信昇: [實作目標] 整合 網路上參考的 code 與 qtdesign 排版
* 參考 source code
(實時人臉偵測 webcam)
https://benhoff.net/face-detection-opencv-pyqt.html

## 臨時動議

## 下次會議時間
10/26 晚上

## 下次會議預計討論項目

## 其他
* 程式碼更新(20231022)
    * version 1 - facedetection_benhoff_20231022.py
        載入檔案+人臉偵測功能 但未整合 qtdesigner
----
# 12/7 

- 會議時間：2023 年 12 月 7 日 （四）
- 會議地點：線上
- 參與人員：

## 預計討論項目(事先填寫)
1. hough circle 實作-偵測人頭
2. (程式碼更新)目前 version 2 -
    hough_circles_with_gui.py
## 討論事項
 目前困境
1.  無法準確標記測影片中的人頭
    * 0.教授應該有現成的
   [1.YOLO v7 + SORT Object Tracking](https://youtu.be/tq0GI4FahWU)
   [2.Official YOLO v7 Instance Segmentation COMPLETE TUTORIAL ](https://www.youtube.com/watch?v=tq0GI4FahWU)
   [3.Yolov8 object detection + deep sort object tracking](https://www.youtube.com/watch?v=jIRRuGN0j5E)
3.  

## 結論

## 臨時動議

## 下次會議時間

## 下次會議預計討論項目

## 其他
----
# 2024
# 1/18 

- 會議時間：2024 年 1 月 18 日 （四） 晚上
- 會議地點：線上
- 參與人員：

## 目前情境
(與教授用line聯絡)
繼寬:
關於專題的部分，打算使用==YOLO v8==來偵測物體並用==DeepMAR==來識別屬性
最後再用==DeepSORT==來追縱路徑，以便後續優化手術室內的動線
然而學生目前沒有手術室內的影像，無法在標記與訓練模型
該如何獲取手術室內的影像呢？
還是您們覺得目前先用其他情境來練習呢？

教授:
用2種fisheye video(一個是攤開前，一個是攤開後)來做 head detection -> 先做 head detection

## 討論事項
已完成: 魚眼影片資料取得

## 結論/to do list

## 臨時動議

## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
- 1. Roboflow 6 Minute Intro | Build a Coin Counter with Computer Vision
https://www.youtube.com/watch?v=a3SBRtILjPI

- 2. Yolov8 object detection + deep sort object tracking | Computer vision tutorial
https://www.youtube.com/watch?v=jIRRuGN0j5E
code:
https://github.com/computervisioneng/object-tracking-yolov8-deep-sort
----
# 1/19 (小開會)

- 會議時間：2024 年 1 月 19 日 （五） 下午
- 會議地點：線上
- 參與人員：

## 目前情境
已取得魚眼影片資料

繼寬:
看COCO相關的論文(YOLOv8 pretrain model的dataset)

(程式碼更新)目前 version 3--main.py (用YOLOV8取代hough circle來偵測人頭)
## 討論事項(應做事項與待處理事項)
基於reference兩個影片進行dataset labeling(using Roboflow)

## 結論/to do list
1.對四個魚眼影片進行dataset labeling並做成dataset (using Roboflow) 
2.做model training (pretrain model :YOLOV8)
## 臨時動議

## 下次會議時間

## 下次會議預計討論項目

## 其他:reference(同1/18)
- 1. Roboflow 6 Minute Intro | Build a Coin Counter with Computer Vision
https://www.youtube.com/watch?v=a3SBRtILjPI

- 2. Yolov8 object detection + deep sort object tracking | Computer vision tutorial
https://www.youtube.com/watch?v=jIRRuGN0j5E
code:
https://github.com/computervisioneng/object-tracking-yolov8-deep-sort
----
# 1/21(小開會)

- 會議時間：2024 年 1 月 21 日 （日） 下午
- 會議地點：線上
- 參與人員：

## 目前情境
將Roboflow匯出之dataset於Roboflow/google colab 上進行訓練 ->已訓練完成(best_20epoch.pt)

繼寬:輸出人頭偵測影片(e.g. out.mp4)->已完成

GUI程式部分 目前仍維持 version 3--main.py (用YOLOV8取代hough circle來偵測人頭)

## 討論事項
1. 影片輸出方式可參考在YOLOv8CustomObjectDetection.ipynb的最後一段
(https://colab.research.google.com/drive/1khqvP3J4OfIOJKuigThyHL3Qjj7Z7P79?authuser=2#scrollTo=j-2SVvG3g4ch)
2. 原本打算申請model traing相關經費去做upgrade(roboflow or google colab) ，因實驗室有提供硬體資源，故放棄詢問

3. 下一步是做==單人路徑追蹤==

4. 遠端使用硬體資源需在chrome上操作遠端桌面 ~~先Download PuTTY並做相關學習~~-----(b)

## 結論/to do list
(與教授用line聯絡)
教授:
1.base on one person and draw his trajectory(追蹤單人路徑/tracking)-----(a)

2.we open one RTX1080 you can connect and train by using it(硬體資源)
## 臨時動議
(a)
![螢幕擷取畫面 (454)](https://hackmd.io/_uploads/S1khBj5Yp.png)
(b)
電腦
帳號: ROBOTICS
密碼: rl212212

遠端桌面(使用chrome)
帳號: roboticslab75
密碼: rlpassward
PIN碼: 000000
![螢幕擷取畫面 (455)](https://hackmd.io/_uploads/r1kDZa5ta.png)

## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
1. Episode 3 | How to Train Ultralytics YOLOv8 models on Your Custom Dataset in Google Colab
https://www.youtube.com/watch?v=LNwODJXcvt4

----
# 1/23(教授發話)

- 會議時間：2024 年 1 月 23 日 （二） 下午
- 會議地點：線上
- 參與人員：

## 目前情境

在chrome上操作遠端桌面進行訓練 ->已訓練完成(best_30epoch.pt)

(與教授用line聯絡)
教授:我想到一個問題 怎麼把目前變形的魚眼 轉成 平行四變形 俯視圖？在平行四變形上畫軌跡

GUI程式部分不變 目前仍維持 version 3--main.py (用YOLOV8取代hough circle來偵測人頭)

## 討論事項
1. 
2. 
3. 


## 結論/to do list
1.先在魚眼做好追蹤再考慮map到平面的問題，opencv的函式不確定能不能用

## 臨時動議


## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
1. Learn Camera Calibration in Python with OpenCV: Complete Step-by-Step Guide with Python Script
https://www.youtube.com/watch?v=3h7wgR5fYik
----
# 2/3()

- 會議時間：2024 年 2 月 3 日 （六） 下午
- 會議地點：線上
- 參與人員：

## 目前情境
tracker.py local run的時候遇到版本兼容問題

## 討論事項
1. 
2. 
3. 

----
# 2/26(112-2學期第1次 group meeting)

- 會議時間：2024 年 2 月 26 日 （一） 10:00~12:00
- 會議地點：實體
- 參與人員：

## 目前情境

tracking

GUI程式部分不變 目前仍維持 version 3--main.py (用YOLOV8取代hough circle來偵測人頭)

## 討論事項
1. UI部分
2. tracking 技術問題
3. labeling 問題


## 結論/to do list
1. 只要有結果就可以給教授看(再進行個別meeting)
2. GUI需額外顯示 偵測到的人頭數量 以及 座標資訊
3. tracking 部分還不知道運作原理，需再作研究
4. labeling 問題 只需標記無遮擋/部分遮擋20%，中間部分不需要知道
6. mapping 問題先不管

## 臨時動議
detection 結果並非完全正確，存在少許bounding box重疊 誤判 以及 missing，經研究推論是DeepSORT 的exstractor權重需要再另外訓練以方便配對

## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
1. Object Tracking and counting using YOLOv8 and DeepSORT | Counting Persons
https://www.youtube.com/watch?v=Y2fyDYcfmBg
2. DeepSORT: Deep Learning to Track Custom Objects in a Video
https://nanonets.com/blog/object-tracking-deepsort/

----
# 3/4(組內討論)

- 會議時間：2024 年 2 月 26 日 （一） 10:00~12:00
- 會議地點：實體
- 參與人員：

## 目前情境

tracking

GUI程式部分不變 目前仍維持 version 3--main.py (用YOLOV8取代hough circle來偵測人頭)

## 討論事項
1. UI部分
2. tracking 技術問題
3. labeling 問題
4. object_tracking_training.ipynb
https://colab.research.google.com/drive/1khqvP3J4OfIOJKuigThyHL3Qjj7Z7P79#scrollTo=EFMPxzVKb78I

## 結論/to do list


## 臨時動議


## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
2. DeepSORT: Deep Learning to Track Custom Objects in a Video
https://nanonets.com/blog/object-tracking-deepsort/
----
# 3/25(112-2學期第2次 group meeting)

- 會議時間：2024 年 3 月 25 日 （一） 10:00~12:00
- 會議地點：實體
- 參與人員：

## 目前情境

detection 準確度不佳, 結果需用UI呈現在跟老師討論

程式碼部分:

1. update YOLOv8CustomObjectDetection.ipynb

2. GUI程式 更新 version 4--main.py (using excel file to load data and draw bounding boxes)

## 討論事項
1. UI部分
2. tracking 技術問題
3. labeling 問題
4. object_tracking_training.ipynb
https://colab.research.google.com/drive/1khqvP3J4OfIOJKuigThyHL3Qjj7Z7P79#scrollTo=EFMPxzVKb78I

## 結論/to do list
1. 結果需用GUI界面呈現，不能用影片
2. Bbox 資料需用 excel 檔案讀寫(ok)
3. training dataset 資料要1000張以上(2 videos)，並維持train : validation : inference = 8(以上) : 1 : 1的比例(solved by labeling ,forming new dataset v5~v8)
4. 把 metrics 弄出來
    * precision
    * recall
[淺談機器學習的效能衡量指標 (1) -- 準確率(Accuracy)、精確率(Precision)、召回率(Recall)]
https://ithelp.ithome.com.tw/articles/10228941
## 臨時動議


## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
1. Python Excel - Reading Excel files with Pandas read_excel
https://www.youtube.com/watch?v=bI68wnoINwc
2. Python 获取视频中每一帧的时间戳/ timestamp
https://geek-docs.com/python/python-ask-answer/356_python_getting_timestamp_of_each_frame_in_a_video.html
3. 寫入資料到 EXCEL、CSV 寫入 EXCEL
https://ithelp.ithome.com.tw/m/articles/10303768

4. yolo excel csv do yolo object detection in python and save in excel csv for webcams videos & images
https://www.youtube.com/watch?v=360xRAnk1O0&t=401s

5. [Pandas教學]5個實用的Pandas讀取Excel檔案資料技巧
https://www.learncodewithmike.com/2020/12/read-excel-file-using-pandas.html

6. Object Tracking using YOLOv8 on Custom Dataset: (tracking part)      https://www.youtube.com/watch?v=3wUABl3KInQ 
----
# 4/15(112-2學期第3次 group meeting)

- 會議時間：2024 年 4 月 15 日 （一） 10:00~10:30
- 會議地點：實體
- 參與人員：

## 目前情境

tracking先放掉

GUI程式 更新 version 5--main.py (add the scroll bar, combobox and some useful function)

## 討論事項
1. UI部分
2. 專題展題目



## 結論/to do list
1. 只要有結果就可以給教授看(再進行個別meeting)
2. 用realsense 鏡頭做 head counting
3. 訂定題目名稱(老師想法):
    Head Detection and Tracking Using YoloV8 via Fisheye Camera / People Counting or People Counter

## 臨時動議/會議後程式更新
1. tracking
max_age=70 考慮降低value
extractor dataset訓練?存成excel檔案?

2. GUI程式 更新 version 6--main.py (add the Qthread to help conrolling slider and add show trajectory checkbox)

code updated:
loading data from excel file to draw bounding boxes
in YOLOv8CustomObjectDetection.ipynb
https://colab.research.google.com/drive/1khqvP3J4OfIOJKuigThyHL3Qjj7Z7P79?authuser=2#scrollTo=CefZdVUhovlN

## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
[Tracking]
1. Object Tracking from scratch with OpenCV and Python
https://www.youtube.com/watch?v=GgGro5IV-cs

2. Predict trajectory of an Object with Kalman filter
https://www.youtube.com/watch?v=3iqRhbXBVRE&t=1091s
https://pysource.com/2021/11/02/kalman-filter-predict-the-trajectory-of-an-object/

3. Object Tracking Using DeepSORT and YOLOv5 | Multi Object Tracking
https://www.youtube.com/watch?v=NhCQBQqTAhE

4. YOLOv9_DeepSORT (github)
https://github.com/sujanshresstha/YOLOv9_DeepSORT/blob/main/README.md

5. ==Object Tracking and counting using YOLOv8 and DeepSORT | Counting Persons== <- using this as basis
https://www.youtube.com/watch?v=Y2fyDYcfmBg

[note]

6. How to know total number of Frame in a file with cv2 in python (Why total_frame and actual frame number don't match?)
https://stackoverflow.com/questions/25359288/how-to-know-total-number-of-frame-in-a-file-with-cv2-in-python

[thread]

7. Implementing a background process in PyQt5 using QThread
https://www.youtube.com/watch?v=G7ffF0U36b0&t=719s

8. QThread 多執行緒
https://steam.oxxostudio.tw/category/python/pyqt5/qthread.html

9. https://www.youtube.com/watch?v=9jRRZ-WL698

10. https://www.youtube.com/watch?v=d1bky80NXeQ

11. Real-Time Object Tracking using YOLOv8 and DeepSORT | Vehicles Counting (Vehicles Entering& Leaving)
https://www.youtube.com/watch?v=9jRRZ-WL698

12. ==zengwb-lx/yolov5-deepsort-pedestrian-counting[github]== <- this
https://github.com/zengwb-lx/yolov5-deepsort-pedestrian-counting/blob/master/person_count.py
----
# 4/29(插入專題生 sport meeting)

- 會議時間：2024 年 4 月 29 日 （一） 10:00~11:30
- 會議地點：實體
- 參與人員：

## 目前情境

蒐集 raw data

GUI程式 更新 version 6--main.py (add tracking and head counting)

## 討論事項
1. people counting data蒐集
2. 專題展題目



## 結論/to do list
1. 只要有蒐集到raw data(people counting影片資料)就要給教授看
2. 蒐集資料的方式以以下兩種方式為主(先試試看)，先不考慮用監視器影像(有隱私和權限問題)
    (1) 空拍機拍攝，但要故意"飛低"一些，可以平的飛過去像之前影片那樣
    (2) 跟實驗室9樓盧助理借 AX700 Sony Camcorder(便攜式攝影機)，於以下推薦地點拍攝:
        (a) 資訊舊館二樓往中庭方向向下拍攝行人
        (b) 資訊新館8樓陽台(靠自強校區側)往馬路拍攝行人(教授說zoom in 倍率夠)
        (c) 光復操場側高點向下拍攝
**以上所拍攝之影片每個人頭至少要佔 13x13 pixel 模型才偵測得出來**
參考:空拍機影片之高寬pixel數如下: (720, 1280)
3. 自己拍攝的這些people counting影片需要"另外"建立成一個dataset，跟原本醫院的data區隔開來(也就是要train一次全新的data)
4. 不要怕失敗，可以研究一下甚麼情況下成功/失敗，了解目前技術的瓶頸，如果解決不了一些偵測case難點(e.g. 戴帽子，遮擋等)也沒關係，重點是從中你學到了甚麼
5. 確定專題題目名稱:
People Tracking and Counting via Fisheye Camera Using YOLOv8 and DeepSort
應用YOLOv8與Deepsort於魚眼相機下執行行人追蹤和計數

## 臨時動議/會議後程式更新
1. tracking
max_age=3 考慮降低value
extractor dataset訓練?存成excel檔案?

2. GUI程式 更新 version 6--main.py (add the Qthread to help conrolling slider and add show trajectory checkbox)

code updated:
loading data from excel file to track human head
in YOLOv8CustomObjectDetection.ipynb
https://colab.research.google.com/drive/1khqvP3J4OfIOJKuigThyHL3Qjj7Z7P79?authuser=2#scrollTo=CefZdVUhovlN

## 下次會議時間

## 下次會議預計討論項目

## 其他:reference
--------------------------------------------
# XX/XX(模板)

- 會議時間：2023 年 10 月 26 日 （四）
- 會議地點：線上
- 參與人員：

## 預計討論項目(事先填寫)

## 討論事項

## 結論

## 臨時動議

## 下次會議時間

## 下次會議預計討論項目

## 其他