{"id":28951885,"url":"https://github.com/shaku-med/real-time-object-detect","last_synced_at":"2026-05-17T08:34:22.959Z","repository":{"id":299936368,"uuid":"1004647559","full_name":"Shaku-Med/Real-Time-Object-Detect","owner":"Shaku-Med","description":"Computer vision pipeline","archived":false,"fork":false,"pushed_at":"2025-06-19T02:11:24.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T03:25:45.366Z","etag":null,"topics":["license","mit-license","opencv","production-ready","python3","status","yolov4","yolov8"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shaku-Med.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T00:57:09.000Z","updated_at":"2025-06-19T02:14:18.000Z","dependencies_parsed_at":"2025-06-19T03:25:55.800Z","dependency_job_id":"8ebd7a96-20bc-490c-a172-1e4650c08f38","html_url":"https://github.com/Shaku-Med/Real-Time-Object-Detect","commit_stats":null,"previous_names":["shaku-med/real-time-object-detect"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Shaku-Med/Real-Time-Object-Detect","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shaku-Med%2FReal-Time-Object-Detect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shaku-Med%2FReal-Time-Object-Detect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shaku-Med%2FReal-Time-Object-Detect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shaku-Med%2FReal-Time-Object-Detect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shaku-Med","download_url":"https://codeload.github.com/Shaku-Med/Real-Time-Object-Detect/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shaku-Med%2FReal-Time-Object-Detect/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264267071,"owners_count":23581929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["license","mit-license","opencv","production-ready","python3","status","yolov4","yolov8"],"created_at":"2025-06-23T16:00:51.960Z","updated_at":"2026-05-17T08:34:22.928Z","avatar_url":"https://github.com/Shaku-Med.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advanced YOLO Object Detection System\n\n[![Python](https://img.shields.io/badge/Python-3.8+-blue.svg?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://www.python.org/)\n[![OpenCV](https://img.shields.io/badge/OpenCV-4.5+-green.svg?style=for-the-badge\u0026logo=opencv\u0026logoColor=white)](https://opencv.org/)\n[![YOLO](https://img.shields.io/badge/YOLO-v4-orange.svg?style=for-the-badge\u0026logo=yolo\u0026logoColor=white)](https://github.com/AlexeyAB/darknet)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](LICENSE)\n[![Status](https://img.shields.io/badge/Status-Production%20Ready-brightgreen.svg?style=for-the-badge)]()\n\n\u003e **Because life's too short for false positives – a YOLO detector that actually knows what it's looking at**\n\n## What's This All About?\n\nEver get tired of object detection systems that think your coffee mug is a person? Or that insist your houseplant is definitely a car? Yeah, me too. This system is my attempt to build something that's not just fast, but actually *smart* about what it detects.\n\nI've thrown in some pretty cool filtering techniques that help eliminate those \"wait, that's obviously not a dog\" moments. Think of it as YOLO with some common sense built in.\n\n## The Three Flavors\n\nI've got three different modes because, let's be honest, sometimes you just need something quick and dirty, and other times you want the full bells-and-whistles experience:\n\n| Mode | What It Does | Speed | How Good It Is |\n|------|-------------|-------|----------------|\n| **Basic** | Your standard YOLO v4 – gets the job done | Lightning fast ⚡ | Pretty decent |\n| **Advanced** | Adds some smart filtering magic | Still pretty quick | Much better |\n| **Enhanced** | The whole shebang – all the fancy stuff | Takes its time | Chef's kiss 👌 |\n\n## The Cool Stuff Under the Hood\n\nHere's what makes this thing tick (warning: some of this might sound like I'm showing off, but I promise it's all useful):\n\n- **Temporal Filtering**: Keeps track of what it's seen before – no more flickering detections\n- **Motion Detection**: Only bothers looking at stuff that's actually moving (revolutionary, I know)\n- **Ensemble Detection**: Runs multiple confidence checks because two heads are better than one\n- **Multi-Scale Detection**: Looks at things from different angles – like putting on your reading glasses\n- **Adaptive Thresholds**: Gets smarter over time (unlike me with my morning coffee)\n- **Frame Quality Analysis**: Won't waste time on blurry garbage frames\n- **Advanced NMS**: Fancy way of saying \"don't detect the same thing twice\"\n- **Confidence Calibration**: Statistical mumbo-jumbo that actually works\n\n## Getting Started (The Easy Way)\n\n### What You'll Need\n\n- Python 3.8+ (if you're still on Python 2, we need to talk)\n- A webcam (or any video source that doesn't hate you)\n- At least 4GB of RAM (8GB if you want the fancy enhanced mode)\n- A computer that was made after 2010\n\n### Installation\n\n**Step 1: Grab the code**\n```bash\ngit clone https://github.com/Shaku-Med/Real-Time-Object-Detect.git\ncd advanced-yolo-detection\n```\n\n**Step 2: Install the dependencies**\n```bash\npip install -r requirements.txt\n```\n*Grab a coffee while this runs. Trust me.*\n\n**Step 3: Just run it**\n```bash\npython main.py\n```\n*It'll download what it needs automatically. I'm not a monster.*\n\n## How to Use This Thing\n\n### The \"I Just Want It to Work\" Approach\n```bash\npython main.py\n```\nThis runs the enhanced mode with all the good stuff turned on. It's like the \"I'm feeling lucky\" button but for object detection.\n\n### The \"Let Me Choose My Own Adventure\" Approach\n```bash\npython launcher.py\n```\nThis gives you a nice menu where you can pick your poison.\n\n### The \"I Want to Code It Myself\" Approach\n\n**Basic Mode (for when you're in a hurry):**\n```python\nfrom detection_pipeline import LiveDetectionPipeline\n\npipeline = LiveDetectionPipeline(\n    weights_path=\"yolov4.weights\",\n    config_path=\"yolov4.cfg\",\n    classes_path=\"coco.names\"\n)\npipeline.run(camera_index=0)\n```\n\n**Advanced Mode (when you want something better):**\n```python\nfrom advanced_detection import AdvancedDetectionPipeline\n\npipeline = AdvancedDetectionPipeline(\n    weights_path=\"yolov4.weights\",\n    config_path=\"yolov4.cfg\",\n    classes_path=\"coco.names\"\n)\npipeline.run_advanced(camera_index=0)\n```\n\n**Enhanced Mode (when you want the full experience):**\n```python\nfrom enhanced_detection import EnhancedDetectionPipeline\n\npipeline = EnhancedDetectionPipeline(\n    weights_path=\"yolov4.weights\",\n    config_path=\"yolov4.cfg\",\n    classes_path=\"coco.names\"\n)\npipeline.run_enhanced(camera_index=0)\n```\n\n### Keyboard Shortcuts (Because We're Not Animals)\n- **ESC** or **Q**: Peace out\n- **R**: Start over (like Ctrl+Z for your detection pipeline)\n- **S**: Save the current frame (for posterity)\n- **Space**: Pause/Resume (for dramatic effect)\n\n## Tweaking the Settings\n\nWant to mess with the settings? Check out `config.py` – it's where all the magic numbers live:\n\n```python\nclass Config:\n    # How confident should we be before yelling \"I found something!\"\n    CONFIDENCE_THRESHOLD = 0.6\n    NMS_THRESHOLD = 0.3\n    \n    # Camera stuff\n    CAMERA_INDEX = 0\n    FRAME_WIDTH = 640\n    FRAME_HEIGHT = 480\n    FRAME_FPS = 30\n    \n    # The fancy filtering stuff\n    TEMPORAL_FILTER_HISTORY = 15\n    TEMPORAL_STABILITY_THRESHOLD = 0.4\n    MOTION_THRESHOLD = 0.005\n    ENSEMBLE_THRESHOLDS = [0.3, 0.5, 0.7]\n```\n\n## How Everything Fits Together\n\nThe basic structure is pretty straightforward:\n\n```\nAdvanced YOLO Detection System\n├── main.py                 # The main event\n├── launcher.py             # For when you want options\n├── config.py               # All the knobs and dials\n├── utils.py                # Random useful stuff\n├── detection_pipeline.py   # Basic YOLO magic\n├── advanced_detection.py   # Smarter YOLO magic\n├── enhanced_detection.py   # The full monty\n├── requirements.txt        # What you need to install\n└── README.md              # You are here\n```\n\n### The Detection Pipeline (Or: How the Sausage Gets Made)\n\n```\nYour Camera Feed\n    ↓\nMulti-Scale Detection (looking at things from different angles)\n    ↓\nTemporal Filtering (remembering what we saw before)\n    ↓\nMotion Analysis (ignoring boring static stuff)\n    ↓\nEnsemble Detection (getting multiple opinions)\n    ↓\nAdaptive Thresholding (getting smarter over time)\n    ↓\nQuality Analysis (not wasting time on garbage frames)\n    ↓\nAdvanced NMS (avoiding double-counting)\n    ↓\nConfidence Calibration (final sanity check)\n    ↓\nYour Beautifully Detected Objects\n```\n\n## Performance (The Numbers Game)\n\n### How Much Better Is It?\n\n| What We're Measuring | Basic | Advanced | Enhanced |\n|---------------------|-------|----------|----------|\n| **False Positives** | ~15% (meh) | ~8% (better) | ~3% (chef's kiss) |\n| **How Stable** | Okay | Pretty good | Rock solid |\n| **Speed** | 30 FPS | 25 FPS | 20 FPS |\n| **Memory Usage** | Minimal | Reasonable | Hungry |\n\n### What Your Computer Needs\n\n| Component | Bare Minimum | What I'd Recommend |\n|-----------|--------------|-------------------|\n| **CPU** | Intel i5 / AMD Ryzen 5 | Intel i7 / AMD Ryzen 7 |\n| **RAM** | 4GB (if you like living dangerously) | 8GB+ (for a good time) |\n| **GPU** | Whatever you've got | NVIDIA GTX 1060+ |\n| **Storage** | 2GB | 5GB+ (for all the models) |\n\n## The Technical Stuff (For the Curious)\n\n### Main Classes\n\n**EnhancedDetectionPipeline** - The star of the show:\n\n```python\nclass EnhancedDetectionPipeline:\n    def __init__(self, weights_path: str, config_path: str, \n                 classes_path: str, confidence_threshold: float = 0.6,\n                 nms_threshold: float = 0.3)\n    \n    def run_enhanced(self, camera_index: int = 0, \n                    window_name: str = \"Enhanced Detection\")\n    \n    def detect_objects_enhanced(self, frame: np.ndarray) -\u003e List[Detection]\n```\n\n**Detection** - What you get back:\n\n```python\n@dataclass\nclass Detection:\n    bbox: List[int]           # Where the thing is [x, y, width, height]\n    confidence: float         # How sure we are (0-1)\n    class_id: int            # What number the thing is\n    class_name: str          # What we call the thing\n    timestamp: float         # When we found it\n```\n\n### The Supporting Cast\n\nThe system has a bunch of helper classes that do the heavy lifting:\n\n- **MultiScaleDetector**: Looks at things from different zoom levels\n- **AdaptiveThresholdManager**: Adjusts standards based on what it's seeing\n- **FrameQualityAnalyzer**: Decides if a frame is worth processing\n- **TemporalFilter**: Remembers what happened before\n- **MotionDetector**: Spots the moving stuff\n- **EnsembleDetector**: Gets multiple opinions before deciding\n\n## Want to Contribute?\n\nI'd love some help making this even better! Here's how to get started:\n\n```bash\ngit clone https://github.com/Shaku-Med/Real-Time-Object-Detect.git\ncd advanced-yolo-detection\npip install -r requirements.txt\npython -m pytest tests/\n```\n\nJust keep it clean, use type hints (your future self will thank you), and write some tests. I'm not picky about much else.\n\n## License\n\nMIT License – do whatever you want with it, just don't blame me if your robot uprising uses this code.\n\n## Shoutouts\n\n- The YOLO v4 folks for making object detection not terrible\n- The OpenCV team for doing the heavy lifting on computer vision\n- The COCO dataset people for giving us something to detect\n- My coffee maker for keeping me functional during development\n\n---\n\n*P.S. - If you find any bugs, please let me know. I promise I'll fix them eventually (probably after I finish my current Netflix series).*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaku-med%2Freal-time-object-detect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaku-med%2Freal-time-object-detect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaku-med%2Freal-time-object-detect/lists"}