How hutsulruslan/cvs_with_real_time_video_processing works
Edge Vision is a local video object-detection application for Linux edge devices. Its main workflow loads configured inputs, reads camera or file frames, preprocesses each frame, runs mock or optional TFLite inference, postprocesses detections, and presents results in a window or optionally saves them. Frame skipping can reuse recent detections; metrics and performance reporting support monitoring runs. The graph follows the sampled pipeline and application code plus README capabilities; wiring for unsampled configuration, factory, CLI, and reporting components is shown only where documented capabilities support it.
Main entry points: application_factory.py Application factory · pipeline.py Frame pipeline · application.py Application loop · runner.py CLI runner
Components 28
Application runtime
- CLI entry
main.py - CLI runner
src/edge_vision/app/runner.py - Application loop
src/edge_vision/app/application.py - Frame pipeline
src/edge_vision/app/pipeline.py - Application factory
src/edge_vision/app/application_factory.py
Video inputs
- Camera source
src/edge_vision/video/opencv_camera_source.py - Video file source
src/edge_vision/video/video_file_source.py - Video stream source
src/edge_vision/video/video_stream_source.py - Source factory
src/edge_vision/video/source_factory.py
Vision pipeline
- Frame preprocessing
src/edge_vision/preprocessing/preprocessor.py - Low-light enhancement
src/edge_vision/preprocessing/low_light.py - Mock detector
src/edge_vision/inference/mock_detector.py - TFLite detector
src/edge_vision/inference/tflite_detector.py - Model loader
src/edge_vision/inference/model_loader.py - Detection postprocessing
src/edge_vision/postprocessing/postprocessor.py - FPS and profiling
src/edge_vision/metrics/fps_counter.py - Section profiler
src/edge_vision/metrics/profiler.py
Results and display
- Performance report
src/edge_vision/metrics/performance_report.py - Frame renderer
src/edge_vision/visualization/renderer.py - Window display
src/edge_vision/visualization/window_display.py - Result writer
src/edge_vision/storage/result_writer.py - Writer factory
src/edge_vision/storage/writer_factory.py - CSV writer
src/edge_vision/storage/csv_writer.py - JSON writer
src/edge_vision/storage/json_writer.py
Configuration and tools
- Settings loader
src/edge_vision/config/config_loader.py - Runtime settings
src/edge_vision/config/settings.py - Camera probe
src/edge_vision/tools/camera_probe.py
Other components
- Operator
Connections 37
- Operator → CLI entry: starts
- CLI entry → CLI runner: calls
- CLI runner → Settings loader: loads settings
- Settings loader → Runtime settings: builds
- CLI runner → Application factory: builds application
- Application factory → Runtime settings: uses settings
- Application factory → Source factory: selects source
- Source factory → Camera source: creates camera
- Source factory → Video file source: creates file source
- Source factory → Video stream source: creates stream
- Application factory → Mock detector: selects mock
- Application factory → TFLite detector: selects TFLite
- TFLite detector → Model loader: loads runtime
- Application factory → Frame preprocessing: configures
- Frame preprocessing → Low-light enhancement: enhances frames
- Application factory → Detection postprocessing: configures
- Application factory → FPS and profiling: configures
- Application factory → Section profiler: configures
- Application factory → Frame renderer: configures
- Application factory → Window display: configures
- Application factory → Writer factory: configures optional saving
- Writer factory → CSV writer: creates CSV writer
- Writer factory → JSON writer: creates JSON writer
- Application factory → Application loop: creates
- Application loop → Camera source: opens and reads
- Application loop → Frame pipeline: processes frames
- Frame pipeline → Frame preprocessing: preprocesses
- Frame pipeline → Mock detector: detects
- Frame pipeline → TFLite detector: detects
- Frame pipeline → Detection postprocessing: postprocesses
- Frame pipeline → FPS and profiling: updates FPS
- Frame pipeline → Section profiler: records timings
- Application loop → Result writer: writes results
- Application loop → Frame renderer: renders results
- Application loop → Window display: shows frame
- CLI runner → Performance report: reports run metrics
- Operator → Camera probe: probes cameras