Image Processors

Image Processors

ID: uniflow.plugin.imageprocessors Category: Media & AI Version: v1.5.0 Min Uniflow Version: Uniflow ≥ v1.4.0

Image Processors Plugin Reference Manual

1. Overview

Plugin Name: Image Processors

Type: Media & Analytics

Identifier: uniflow.plugin.imageprocessors

Platform: CrossPlatform (Windows & Linux x64/ARM64)

Description

Cross-platform computer vision and scene analytics plugin for multi-class object detection, privacy redaction, anonymization, and license plate Optical Character Recognition (OCR). The plugin ingests image file paths or byte arrays and performs high-speed automatic multi-class detection (humans/pedestrians, cars, trucks, buses, motorcycles, bicycles), privacy redaction (blurring human faces and vehicle license plates), as well as OCR character recognition and confidence scoring for detected plates.


2. Technical Architecture

The Image Processors plugin uses a high-performance cross-platform stack combining Microsoft.ML.OnnxRuntime for AI inference and SixLabors.ImageSharp for image rendering and redaction.

Built-in Embedded ONNX AI Models

All AI models are compiled directly into the plugin assembly as embedded resources. No external model folders or separate assets need to be deployed or distributed:

Model Resource NamePrimary TaskNeural ArchitectureInput Tensor ShapeDescription
face_detection.onnx  Human Face Detection
Ultra-Light Face Detector / YuNet[1, 3, 640, 640] NCHWDetects human facial bounding boxes for privacy anonymization.
plate_detection.onnx  License Plate Detection
YOLOv8 Vehicle Plate Detector[1, 3, 640, 480] NCHWLocates license plate regions across multi-scale resolution passes.
plate_ocr.onnx  Character Recognition (OCR)
LPRNet / CRNN Recognizer[1, 3, 24, 94] NCHWRecognizes vehicle license plate alphanumeric characters (0-9, A-Z) via CTC greedy decoding.
object_detection.onnx  Multi-Class Object Detection
YOLOv8 / YOLOv11 COCO Detector[1, 3, 640, 640] NCHWDetects multi-class objects: humans/pedestrians, cars, trucks, buses, motorcycles, and bicycles with bounding box coordinates.

Technical Characteristics & Custom Model Overrides

  • Direct Assembly Stream Loading: At startup, models are streamed directly from assembly memory into the ONNX runtime inference session.
  • Custom Model Overrides: Administrators can override any embedded model by setting the Custom Model Folder configuration setting or placing custom-trained face_detection.onnx, plate_detection.onnx, plate_ocr.onnx, or object_detection.onnx files in custom path defined in plugin configuration.
  • System Interaction & Exposed Catalog Routes

    The Image Processors plugin integrates computer vision pipelines. It captures video frames from RTSP streams or image files, performing object detection, face/plate blurring, OCR text extraction, and scene analytics.

    Architecture Diagram

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...

    3. Configuration Parameters

    The following configuration settings are available in the User Interface when creating or configuring an instance of this plugin source:

    Configuration SettingDescriptionDefault Value
    Default Redaction StyleRedaction mode: GaussianBlur, Pixelate, or SolidColor.GaussianBlur
    Blur RadiusRadius of Gaussian blur filter applied over detected bounding boxes.20
    Pixel SizeTile block size when using Pixelate mode.15
    Confidence ThresholdMinimum AI detection confidence threshold (0.10 to 1.00).0.25
    IoU ThresholdNon-Max Suppression (NMS) Intersection-over-Union threshold for box overlapping.0.45
    Multi-Scale InferenceEvaluates frames across multiple image scales for close-up and distant detections.true
    Process FacesEnable human face detection pass.true
    Process License PlatesEnable vehicle license plate detection pass.true
    Process OCREnable character recognition on detected license plate regions.true
    Process ObjectsEnable general COCO object detection pass.false
    Process VehiclesEnable vehicle classification pass (cars, trucks, buses, motorcycles, bicycles).false
    Process PersonsEnable human/pedestrian detection pass.false
    Output Image FormatOutput container format (Auto, Jpeg, Png, Webp).Auto
    JPEG / WebP QualityCompression quality percentage (1 to 100). Prevents file size inflation.80
    Custom Model FolderOptional custom disk directory containing user-trained .onnx model files (object_detection.onnx, face_detection.onnx, plate_detection.onnx, plate_ocr.onnx).*(Empty - Embedded default)*

    4. Exposed Routes & Data Types

    This plugin exposes catalog fields across Output Target (action sinks) and Event Input (trigger sources) rule graph nodes:

    4.1 Output Target Action Nodes

    The Output Target node acts as an action sink to perform object detection, vehicle classification, face/plate redaction, custom pipeline processing, and license plate OCR character recognition.

    Target NameItem Route IDData TypeAssociated ParametersParameter TypeRequiredDescription
    Detect All Objects  imageprocessor:detect_objects
    String / JsonImage File Path (path)StringTrueDetects all COCO objects (persons, vehicles, etc.) in an image.
    Detect & Classify Vehicles  imageprocessor:detect_vehicles
    String / JsonImage File Path (path)StringTrueDetects and categorizes vehicles (Cars, Trucks, Buses, Motorcycles, Bicycles).
    Detect Humans / Pedestrians  imageprocessor:detect_persons
    String / JsonImage File Path (path)StringTrueDetects human/pedestrian bounding boxes and counts.
    Full Scene Intelligence  imageprocessor:analyze_scene
    String / JsonImage File Path (path)StringTrueRuns combined full pass: Persons + Vehicles + Faces + Plates + OCR.
    Blur Car License Plates  imageprocessor:blur_plates
    String / JsonImage File Path (path)StringTrueDetects and blurs vehicle license plates in an image file.
    Blur Human Faces  imageprocessor:blur_faces
    String / JsonImage File Path (path)StringTrueDetects and blurs human faces in an image file.
    Anonymize All (Faces & Plates)  imageprocessor:anonymize_all
    String / JsonImage File Path (path)StringTrueBlurs both human faces and license plates in a single pass.
    Read Car License Plate OCR  imageprocessor:read_plate_ocr
    String / JsonImage File Path (path)StringTrueDetects license plates and runs OCR character recognition.
    Custom Image Processing Pipeline  imageprocessor:process_custom
    JsonCustom JSON payloadJsonTrueAccepts advanced custom JSON configuration (ImageProcessOptions).

    4.2 Event Input Trigger Nodes

    The Event Input node triggers downstream rule execution whenever an image redaction, object detection, or custom processing operation completes.

    Event Display NameEvent Item Route IDFamilyDescription
    General Object Detection Completed  event:detect_objects
    EVENTTriggers when general COCO object detection finishes.
    Vehicle Detection Completed  event:detect_vehicles
    EVENTTriggers when vehicle detection & classification finishes.
    Person Detection Completed  event:detect_persons
    EVENTTriggers when human/pedestrian detection finishes.
    Full Scene Intelligence Completed  event:analyze_scene
    EVENTTriggers when full scene analytics finishes.
    Car License Plate Blur Completed  event:blur_plates
    EVENTTriggers when license plate redaction finishes.
    Human Face Blur Completed  event:blur_faces
    EVENTTriggers when face redaction finishes.
    Anonymize All Completed  event:anonymize_all
    EVENTTriggers when combined face and plate anonymization finishes.
    License Plate OCR Read Completed  event:ocr_read
    EVENTTriggers when ALPR license plate OCR finishes.
    Custom Processing Completed  event:process_custom
    EVENTTriggers when a custom processing pipeline run finishes.

    4.3 Event Output Telemetry Fields

    When an Event Input node triggers, it exposes the following output fields for downstream rule logic:

    Field NameData TypeDescription
    Success  Bool
    true if processing and file saving completed successfully without errors.
    Detected  Bool
    true if at least one object, face, or license plate was detected.
    TotalDetected  Int
    Total combined count of all detected entities in the image.
    TotalPersonsDetected  Int
    Number of humans/pedestrians detected.
    TotalVehiclesDetected  Int
    Total number of vehicles detected (Cars + Trucks + Buses + Motorcycles + Bicycles).
    TotalCarsDetected  Int
    Number of passenger cars detected.
    TotalTrucksDetected  Int
    Number of trucks/semi-trailers detected.
    TotalBusesDetected  Int
    Number of buses detected.
    TotalMotorcyclesDetected  Int
    Number of motorcycles detected.
    TotalBicyclesDetected  Int
    Number of bicycles detected.
    TotalFacesDetected  Int
    Number of human faces detected.
    TotalPlatesDetected  Int
    Number of license plates detected.
    FirstDetectedText  String
    Recognized alphanumeric plate text (e.g. "AG77WPF") from the first detected plate.
    FirstTextProbability  Float
    Model confidence probability (0.0 to 1.0) for the recognized OCR text.
    InputFilePath  String
    Disk path of the original input image file.
    OutputFilePath  String
    Disk path of the saved redacted output image file.
    ExecutionTimeMs  Int
    Total execution duration in milliseconds (AI inference + rendering + encoding).
    ErrorMessage  String
    Detailed error description if Success is false.

    5. Usage Examples

    Scenario A: Automatic Camera Snapshot Redaction

    Workflow Overview:

    When an ONVIF IP camera detects motion (onvif.motion_alarm), Uniflow saves a JPEG snapshot to C:\Snapshots\camera1.jpg and then executes the Image Processors anonymize_all action to redact all human faces and vehicle license plates from the image. The event:anonymize_all completion event triggers a downstream FTP upload to archive the anonymized image to an offsite SFTP backup server.

    Rule Node Configuration:

    1. Event Input Node: ONVIF Motion Listener

  • Filter Event: onvif.motion_alarm
  • Exposed Fields: Topic (String), State (Bool)
  • 2. Output Target Node A: ONVIF Action

  • Action Target: Save Snapshot to Folder
  • Destination Folder: C:\Snapshots\
  • File Name: camera1.jpg
  • 3. Output Target Node B: Image Processors Action

  • Action Target: Anonymize All (Faces & Plates) (imageprocessor:anonymize_all)
  • Image File Path: C:\Snapshots\camera1.jpg
  • Logic Flow Diagram:

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...

    Scenario B: License Plate OCR & Gate Trigger

    Workflow Overview:

    When a scheduled camera snapshot is captured, Uniflow executes the read_plate_ocr action to detect and recognize vehicle license plates using ONNX AI inference. The event:ocr_read completion event fires downstream logic that filters by FirstTextProbability > 0.85 and matches FirstDetectedText against an authorized vehicle list. If the plate matches, Uniflow writes a Modbus TCP coil (Coil 1 = True) to open the vehicle access gate barrier.

    Rule Node Configuration:

    1. Output Target Node: Image Processors Action

  • Action Target: Read Car License Plate OCR (imageprocessor:read_plate_ocr)
  • Image File Path: C:\Snapshots\gate_entry.jpg
  • 2. Event Input Node: Image Processors Listener

  • Filter Event: event:ocr_read
  • Exposed Fields: FirstDetectedText (String), FirstTextProbability (Float), Success (Bool)
  • 3. Logic Filter Node: And Condition

  • Expression: FirstTextProbability > 0.85 AND FirstDetectedText == "AG77WPF"
  • 4. Output Target Node: Modbus Client Writer

  • Action Target: Direct Access
  • Type: Coils
  • Address: 1
  • Value: True
  • Logic Flow Diagram:

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...

    Scenario C: Logistics Truck Gate Dispatch

    Workflow Overview:

    When a camera monitoring the freight gate captures a snapshot, Uniflow executes the detect_vehicles action to classify vehicles in the image. The event:detect_vehicles completion event fires downstream logic that evaluates TotalTrucksDetected > 0. If a truck is detected, Uniflow activates a Modbus coil (Coil 5 = True) to route the incoming freight vehicle to the designated loading bay, and sends an HTTP POST notification to the warehouse dispatch system.

    Rule Node Configuration:

    1. Output Target Node: Image Processors Action

  • Action Target: Detect & Classify Vehicles (imageprocessor:detect_vehicles)
  • Image File Path: C:\Snapshots\freight_gate.jpg
  • 2. Event Input Node: Image Processors Listener

  • Filter Event: event:detect_vehicles
  • Exposed Fields: TotalTrucksDetected (Int), TotalVehiclesDetected (Int), Success (Bool)
  • 3. Logic Filter Node: GreaterThan

  • Expression: TotalTrucksDetected > 0
  • 4. Output Target Node A: Modbus Client Writer

  • Action Target: Direct Access
  • Type: Coils
  • Address: 5
  • Value: True
  • 5. Output Target Node B: HTTP Client Action

  • Action Target: POST Request
  • URL: https://warehouse.local/api/dispatch
  • Logic Flow Diagram:

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...

    Scenario D: Restricted Zone Intrusion Alarm

    Workflow Overview:

    When a perimeter security camera captures a scheduled snapshot of a restricted zone, Uniflow executes the detect_persons action to detect unauthorized human intrusion. The event:detect_persons completion event fires downstream logic that evaluates TotalPersonsDetected > 0. If humans are detected, Uniflow triggers a high-priority alarm in Avigilon Control Center and activates a physical siren via a Modbus coil (Coil 12 = True).

    Rule Node Configuration:

    1. Output Target Node: Image Processors Action

  • Action Target: Detect Humans / Pedestrians (imageprocessor:detect_persons)
  • Image File Path: C:\Snapshots\restricted_zone.jpg
  • 2. Event Input Node: Image Processors Listener

  • Filter Event: event:detect_persons
  • Exposed Fields: TotalPersonsDetected (Int), Success (Bool)
  • 3. Logic Filter Node: GreaterThan

  • Expression: TotalPersonsDetected > 0
  • 4. Output Target Node A: Avigilon ACC Action

  • Action Target: Alarms (avigilon:alarm)
  • AlarmId: 901-ZONE-INTRUSION
  • Action: TRIGGER
  • Notes: Unauthorized human detected in restricted perimeter zone
  • 5. Output Target Node B: Modbus Client Writer

  • Action Target: Direct Access
  • Type: Coils
  • Address: 12
  • Value: True
  • Logic Flow Diagram:

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...
    Architecture Flow Diagram — Full Preview