How arifcandemirci/vision_from_scratch works
Vision From Scratch is a staged computer-vision project, progressing from live color segmentation through contour tracking to a multithreaded C++ camera pipeline. The workflow acquires camera frames, segments a color target, selects and smooths detections, then displays annotated video; the final stage also transports frames through bounded queues and reports timing and drop metrics. The graph distinguishes the standalone learning stages from Stage 04’s capture, processing, and display workers. Stage README capabilities are included, but only sampled source supports detailed Stage 04 wiring.
Main entry points: pipeline.hpp Pipeline Orchestrator · main.cpp Pipeline Entry · frame_queue.hpp Capture Queue · color_segmentation.py Color Segmentation
Components 12
Python Vision
- Color Segmentation
stage01_color_segmentation/color_segmentation.py - Contour Tracking
stage02_tracking/color_tracking.py
C++ Segmentation
- ROI Segmentation
stage03_cpp_segmentation/cpp_segmentation.cpp
Realtime Pipeline
- Pipeline Entry
stage04_realtime_pipeline/main.cpp - Pipeline Orchestrator
stage04_realtime_pipeline/pipeline.hpp - Color Tracker
stage04_realtime_pipeline/color_tracker.cpp - Overlay and Display
stage04_realtime_pipeline/pipeline.hpp
Pipeline State
- Capture Queue
stage04_realtime_pipeline/frame_queue.hpp - Display Queue
stage04_realtime_pipeline/frame_queue.hpp - Frame Metadata
stage04_realtime_pipeline/frame_packet.hpp
Other components
- Operator
- Camera
Connections 17
- Operator → Color Segmentation: starts
- Camera → Color Segmentation: supplies frames
- Operator → Contour Tracking: starts
- Camera → Contour Tracking: supplies frames
- Operator → ROI Segmentation: starts
- Camera → ROI Segmentation: supplies frames
- Operator → Pipeline Entry: starts and stops
- Pipeline Entry → Pipeline Orchestrator: starts and stops
- Camera → Pipeline Orchestrator: supplies frames
- Pipeline Orchestrator → Capture Queue: pushes frames
- Capture Queue → Pipeline Orchestrator: provides frames
- Pipeline Orchestrator → Color Tracker: processes frame
- Pipeline Orchestrator → Display Queue: pushes processed frames
- Display Queue → Pipeline Orchestrator: provides frames
- Pipeline Orchestrator → Overlay and Display: draws and displays
- Pipeline Orchestrator → Frame Metadata: records frame timing
- Overlay and Display → Operator: shows video and metrics