Data Flow Documentation
The AVIS data pipeline operates sequentially, passing an EvidenceGraph through 10 distinct processing stages. This ensures determinism and maintainability.
Pipeline Architecture
The pipeline logic is executed by a background worker (or in-process runner) defined in core/pipeline/.
graph TD
Upload([1. Image Upload]) --> Quality[2. Quality Gate]
Quality --> Preprocess[3. Preprocessing]
Preprocess --> Detect[4. Object Detection]
Detect --> Graph[5. Scene Graph Association]
Graph --> Attributes[6. Attribute Extraction]
Attributes --> Rules[7. Rule Engine]
Rules --> Fuse[8. Fuse & Route]
Fuse --> VLM[9. VLM Verification]
VLM --> Legal[10. Legal Mapping]
Legal --> Output([11. Evidence Composer])
Stage Descriptions
1. Ingestion
The image is received via the FastAPI endpoint (POST /images). It is saved to MinIO, and a metadata record is created in PostgreSQL with status pending.
2. Quality Gate (core/quality/)
Analyzes the image using OpenCV.
- Checks image resolution.
- Checks variance of Laplacian (for blur).
- Checks pixel intensity histograms (for extreme under/overexposure).
If the image fails, processing halts, and status becomes
undeterminable.
3. Preprocessing (core/preprocess/)
Enhances the image non-destructively (original remains untouched).
- Applies CLAHE (Contrast Limited Adaptive Histogram Equalization).
- Reduces noise. Output: A normalized image matrix passed to the detector.
4. Detection (core/detect/)
Ultralytics YOLOv8/11 models process the image.
- Identifies bounding boxes for vehicles, persons, and traffic lights.
- Generates raw
Detectionobjects.
5. Scene Graph (core/graph/)
Converts raw detections into semantic relationships.
- Uses Intersection over Union (IoU) and bounding box geometry.
- Associates riders to motorcycles (
ridesedge). - Associates drivers to cars (
drivesedge). Output: An initializedEvidenceGraph.
6. Attribute Classifiers (core/attributes/)
Extracts localized details from crops.
- Evaluates helmet presence on riders.
- Uses
fast-alprto crop license plates and run OCR. - Evaluates traffic light state (Red/Amber/Green).
7. Rule Engine (core/rules/)
Deterministic functions evaluate the EvidenceGraph to find violations.
- Example: The Triple Riding rule checks if a motorcycle node has > 2
ridesedges. - Creates
Candidateobjects with a rule-evidence score and assigns a Tier.
8. Fuse & Route (core/pipeline/)
Calculates a fused confidence score based on detection, attribute, and rule scores.
Assigns a routing action: auto_confirmed, vlm_confirmed, or human_review.
9. VLM Verify (core/llm/)
Triggered ONLY if the route is vlm_confirmed.
- Constructs a prompt and sends the specific image crop to the Vision-Language Model.
- Parses the JSON response to either confirm the violation or change the route to
abstain/human_review.
10. Legal Mapping (core/legal/)
Deterministic lookup. Maps the violation type (e.g., HELMET_NON_COMPLIANCE) to the Indian Motor Vehicles Act section and assigns the corresponding fine amount.
11. Evidence Composer
Finalizes the output.
- Generates an annotated image overlay (bounding boxes, reasons, plate info).
- Computes a SHA-256 hash of the original image for tamper evidence.
- Saves the final
ViolationJSON document to PostgreSQL.