基於 RF-DETR (Real-time DEtection TRansformer) 的即時物件偵測系統,支援 Webcam 即時偵測、類別篩選和 FPS 顯示。
- 🎥 Webcam 即時偵測: 支援從攝影機即時捕捉影像並進行物件偵測
- 🎯 類別篩選: 可自訂只偵測特定類別的物件
- 📊 FPS 顯示: 即時顯示每秒幀數,監控系統效能
- 📈 物件統計: 自動統計並顯示每種物件的數量
- 💾 畫面儲存: 按鍵即可儲存當前偵測結果
- 🎨 視覺化標註: 清晰的邊界框和標籤顯示
- Python 3.10+
- Anaconda 或 Miniconda
- (可選) NVIDIA GPU with CUDA support
# 克隆專案
git clone https://github.com/YOUR_USERNAME/rf-detr.git
cd rf-detr
# 創建並啟動 Conda 環境
conda env create -f environment.yml
conda activate rf-detr# 克隆專案
git clone https://github.com/YOUR_USERNAME/rf-detr.git
cd rf-detr
# 安裝依賴
pip install -r requirements.txt詳細安裝說明請參考 SETUP.md
# Webcam 即時偵測
python webcam_detection.py
# 靜態圖片測試
python test_simple.py操作說明:
- 按 'q' 退出程式
- 按 's' 儲存當前畫面
RF-DETR 使用 COCO 資料集訓練,支援 80 種物件類別,包括:
- 👤 人物
- 🚗 交通工具 (汽車、腳踏車、摩托車等)
- 🐕 動物 (貓、狗、鳥等)
- 💻 電子產品 (筆電、手機、電視等)
- 🪑 家具 (椅子、沙發、床等)
- 🍕 食物 (披薩、蛋糕、水果等)
完整類別清單請參考 COCO_CLASSES.md
您可以設定只偵測特定類別的物件。在 webcam_detection.py 中修改:
# 偵測所有類別
FILTER_CLASSES = None
# 只偵測人物和電子產品
FILTER_CLASSES = ['person', 'laptop', 'cell phone', 'keyboard', 'mouse']
# 只偵測交通工具
FILTER_CLASSES = ['car', 'bus', 'truck', 'motorcycle', 'bicycle']更多範例請參考 FILTER_USAGE.md
程式執行時會在畫面上顯示:
- 綠色文字: 偵測數量、幀數和 FPS
- 橘色文字: 篩選狀態 (如果啟用)
- 黃色文字: "Detected Objects:" 標題
- 白色文字: 各物件種類及數量
- 彩色框: 偵測到的物件邊界框
- 物件標籤: 物件名稱和信心度分數
model.optimize_for_inference()cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)安裝 CUDA 版本的 PyTorch:
conda install pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidiarf-detr/
├── webcam_detection.py # Webcam 即時偵測主程式
├── test_simple.py # 靜態圖片測試程式
├── coco_class_names.py # COCO 類別名稱映射
├── environment.yml # Conda 環境設定
├── requirements.txt # Python 依賴清單
├── SETUP.md # 詳細安裝指南
├── COCO_CLASSES.md # 完整類別清單
├── FILTER_USAGE.md # 類別篩選使用指南
└── README.md # 本檔案
在 webcam_detection.py 中設定 FILTER_CLASSES
detections = model.predict(pil_image, threshold=0.5) # 調整 0.0-1.0cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)- SETUP.md - 完整安裝指南
- COCO_CLASSES.md - 支援的 80 種物件類別
- FILTER_USAGE.md - 類別篩選功能使用說明
本專案採用 MIT 授權條款 - 詳見 LICENSE 檔案
- RoboFlow RF-DETR - 原始 RF-DETR 實現
- COCO Dataset - 訓練資料集
- Supervision - 視覺化工具
如有問題或建議,歡迎開 Issue 或 Pull Request!
注意: 模型檔案 (*.pth) 不包含在此儲存庫中,首次執行時會自動下載。