# smart-detector **Repository Path**: night1986/smart-detector ## Basic Information - **Project Name**: smart-detector - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-09 - **Last Updated**: 2026-03-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartDetector 🎯 **Real-time Object Detection & Tracking Dashboard** μ‹€μ‹œκ°„ 객체 κ²€μΆœ λŒ€μ‹œλ³΄λ“œ β€” USB 카메라 + YOLOv8 + OpenCvSharp + WPF ![C#](https://img.shields.io/badge/C%23-.NET_8-239120?style=flat-square&logo=csharp) ![WPF](https://img.shields.io/badge/WPF-MVVM-68217A?style=flat-square&logo=windows) ![YOLO](https://img.shields.io/badge/YOLOv8-ONNX-00FFFF?style=flat-square) ![OpenCV](https://img.shields.io/badge/OpenCvSharp4-5C3EE8?style=flat-square&logo=opencv) --- ## Overview SmartDetectorλŠ” USB μΉ΄λ©”λΌμ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ μ˜μƒμ„ μΊ‘μ²˜ν•˜κ³ , YOLOv8 λͺ¨λΈλ‘œ 객체λ₯Ό κ²€μΆœν•˜μ—¬ λ°”μš΄λ”© λ°•μŠ€μ™€ 클래슀 λ ˆμ΄λΈ”μ„ μ˜€λ²„λ ˆμ΄ν•˜λŠ” WPF λ°μŠ€ν¬ν†± μ•±μž…λ‹ˆλ‹€. SmartDetector captures real-time video from a USB camera, runs YOLOv8 inference via ONNX Runtime, and overlays bounding boxes with class labels on a WPF dashboard. ## Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ CameraService│────▢│DetectorService│────▢│OverlayService │────▢│ WPF UI β”‚ β”‚ (Capture) β”‚ β”‚ (YOLOv8 ONNX)β”‚ β”‚ (Draw BBox) β”‚ β”‚ (MVVM) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` | Service | Responsibility | |---------|---------------| | **CameraService** | USB 카메라 캑처, 해상도/FPS μ„€μ • | | **DetectorService** | YOLOv8 ONNX μΆ”λ‘ , NMS, 클래슀 필터링 | | **OverlayService** | λ°”μš΄λ”© λ°•μŠ€, λ ˆμ΄λΈ”, 신뒰도 μ˜€λ²„λ ˆμ΄ | | **TrackerService** | SORT νŠΈλž˜ν‚Ή β€” IoU λ§€μΉ­, 칼만 예츑, νŠΈλž™ 관리 | | **CountingService** | μΉ΄μš΄νŒ… 라인 톡과 감지 (↑/↓ λ°©ν–₯별 카운트) | | **MainViewModel** | MVVM 바인딩, νŒŒμ΄ν”„λΌμΈ 쑰율 | ## Tech Stack - **Language:** C# / .NET 8 - **UI:** WPF / MVVM - **Vision:** OpenCvSharp4, ONNX Runtime - **Model:** YOLOv8n (80-class COCO) - **Camera:** USB (DirectShow via OpenCV) ## Getting Started ### Prerequisites - .NET 8 SDK - USB Camera (any DirectShow-compatible) - YOLOv8n ONNX model file ### Run ```bash # Clone git clone https://github.com/sjsr-0401/smart-detector.git cd smart-detector # Place ONNX model # Download yolov8n.onnx β†’ models/yolov8n.onnx # Build & Run dotnet run --project src/SmartDetector ``` ## Roadmap - [x] **Phase 1** β€” Real-time detection (YOLOv8 + USB camera) - [x] **Phase 2** β€” SORT object tracking + counting line (↑↓ direction) - [ ] **Phase 3** β€” Heatmap visualization, event alerts - [ ] **Phase 4** β€” YOLO11/YOLO26 upgrade (NMS-free) ## Project Structure ``` smart-detector/ β”œβ”€β”€ SmartDetector.sln β”œβ”€β”€ src/ β”‚ β”œβ”€β”€ SmartDetector/ β”‚ β”‚ β”œβ”€β”€ Models/ # DetectionResult, CocoLabels β”‚ β”‚ β”œβ”€β”€ Services/ # CameraService, DetectorService, OverlayService β”‚ β”‚ β”œβ”€β”€ ViewModels/ # MainViewModel (MVVM) β”‚ β”‚ β”œβ”€β”€ Converters/ # WPF value converters β”‚ β”‚ β”œβ”€β”€ MainWindow.xaml # UI layout β”‚ β”‚ └── App.xaml β”‚ └── SmartDetector.Core/ # Shared abstractions └── models/ # ONNX model files ``` ## License MIT --- *Built by [@sjsr-0401](https://github.com/sjsr-0401)*