Skip to content

xiaomayi3245/rf-detr

Repository files navigation

RF-DETR Webcam Object Detection

基於 RF-DETR (Real-time DEtection TRansformer) 的即時物件偵測系統,支援 Webcam 即時偵測、類別篩選和 FPS 顯示。

Python 3.10+ PyTorch License

✨ 功能特色

  • 🎥 Webcam 即時偵測: 支援從攝影機即時捕捉影像並進行物件偵測
  • 🎯 類別篩選: 可自訂只偵測特定類別的物件
  • 📊 FPS 顯示: 即時顯示每秒幀數,監控系統效能
  • 📈 物件統計: 自動統計並顯示每種物件的數量
  • 💾 畫面儲存: 按鍵即可儲存當前偵測結果
  • 🎨 視覺化標註: 清晰的邊界框和標籤顯示

🚀 快速開始

環境需求

  • Python 3.10+
  • Anaconda 或 Miniconda
  • (可選) NVIDIA GPU with CUDA support

安裝步驟

方法 1: 使用 Conda (推薦)

# 克隆專案
git clone https://github.com/YOUR_USERNAME/rf-detr.git
cd rf-detr

# 創建並啟動 Conda 環境
conda env create -f environment.yml
conda activate rf-detr

方法 2: 使用 pip

# 克隆專案
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)

使用 GPU

安裝 CUDA 版本的 PyTorch:

conda install pytorch torchvision pytorch-cuda=11.8 -c pytorch -c nvidia

📁 專案結構

rf-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.0

攝影機解析度

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

📖 文件

🤝 參考資源

  1. RF-DETR GitHub
  2. YOLO Is Dead. Welcome RF-DETR
  3. COCO Dataset

📝 授權

本專案採用 MIT 授權條款 - 詳見 LICENSE 檔案

🙏 致謝

📧 聯絡方式

如有問題或建議,歡迎開 Issue 或 Pull Request!


注意: 模型檔案 (*.pth) 不包含在此儲存庫中,首次執行時會自動下載。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages