Changelogs
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[4.30.10]

Added

  • Add benchmarking tool for Crowd Estimation
  • Integrate CE benchmarking tool to gitlab CI

[4.30.9]

Added

  • test coverage for http server analytic pipeline related
  • more comprehensive test for http server stream

Changed

  • change as->execute() to std::thread in prometheus metrics gather and db maintenance

[4.30.8]

Added

  • Add new pipeline fraction based on new gpus varian (A2, A30 and T4)

[4.30.7]

Added

  • Add benchmarking tool v4bench

[4.30.6]

Changed

  • Change lpr-det service model to YOLOX-M, resize input to 416,224

[4.30.5]

Fixed

  • Fixing create stream on slave node when slave node is offline
  • forcing terminate slave containers after terminating master containers

[4.30.4]

Changed

  • Improve and update model LPRv2 Char with YOLOX-tiny

[4.30.3]

Added

  • Add uncertainty score and error rate monitoring for person detection

Changed

  • Delete action exit when number of pipeline restarted reach threshold

[4.30.2]

Changed

  • Update kcov version to send signal to docker containers
  • Simplifying to exit supervisor by keyboard interupt
  • Handling --fr-address incorrect input value argument

[4.30.2]

Changed

  • Improve and update model LPRv2 Char with YOLOX-tiny

[4.30.1]

Changed

  • Improve and update model vehicle highway v2.4 for pipeline NFV4-VC-HW (Improving truck and bus class)

[4.30.0]

Added

  • Implement Supervisor that listen healthcheck of visionaire4
  • Supervisor ensure nvidia-driver ready before running visionaire4
  • Supervisor could restart visionaire4 and terminate the app

[4.29.16]

Fixed

  • Stream object destroyed when pipeline got exception
  • LPR2 not detecting objects
  • TensorRT error on multi-gpu machine

[4.29.15]

Added

  • Add tracker_id field to json dump for counting analytics

[4.29.14]

Fixed

  • Increase test coverage for test handler
  • Increase test coverage for test services

Added

  • Add stream_name json field on event_data websocket string message

[4.29.13]

Added

  • Increase test coverage for db controller.
  • Increase test coverage for http server stream endpoint.
  • Increase test coverage for counting lpr helper.
  • Add retry on service unittest.

Fixed

  • Fix ffprobe not installed.
  • remove try catch in delete_stream to get proper error handling in http server.
  • fix stream wrong state on restart.

[4.29.12]

Added

  • Add lru cache wih bbox on face recognition visualization

[4.29.11]

Added

  • Add event_id in event dump inside pipeline_data.

Fixed

  • Fix warnings when loading face detection model.

[4.29.10]

Added

  • Add accuracy benchmarker for VC/VC-HW
  • Add downloadable artifact on gitlab for automatic benchmark result

[4.29.9]

Added

  • Define service fraction by detected gpu with number of gpus are uniform

[4.29.8]

Fixed

  • Handle error when failed to initiate dump in drift monitoring.

[4.29.7]

Added

  • Add lru cache with embedding and bbox on dump face recognition.

[4.29.6]

Added

  • Add tests for analytic services.
  • Add tests for handler.
  • Add tests for LPR2 helper.

Fixed

  • Fix assign vehicle and plate assignment in LPR2.

[4.29.5]

Changed

  • Update bounding box color to green-ish.

[4.29.4]

Added

  • Add uncertainty score and error rate monitoring for LPR2 vehicle & plate detection
  • Add safety measures to prevent uncaughted error on encrypt model script

Changed

  • Change download link for LPR2's plate&vehicle model to the latest version

[4.29.3]

Fixed

  • fix serial number unassignment when pipeline deleted and created in rapid succession.
  • move serial number unassignment to terminate_pipeline().
  • terminate pipeline when deleting stream if it has any.

[4.29.2]

Changed

  • Change default FR mode to SURVEILLANCE, decrease fr primary threshold to 0.4

[4.29.1]

Added

  • FR mode 0 = FRONTAL and 1 = SURVEILLANCE
  • If mode is 1, fr_primary_threshold set to 0.6, otherwise set to default

Changed

  • Decrease sampling time, more sensitive to dump

[4.29.0]

Added

  • New NFV4-TEST pipeline, does not do anything and does not spawn pipeline
  • Compile option to use staging license
  • clustering license test script in tools/test_license_cluster.py

[4.28.16]

Changed

  • Save license checkpoint in memory at the first spawning pipeline

[4.28.15]

Changed

  • Change license behaviour, no need to update seat to cloud by remove /assign and /unassign

[4.28.13]

Changed

  • Update model vehicle highway for pipeline NFV4-VC-HW, Improve car-bus accuracy trade-off

[4.28.12]

Changed

  • Make utils class functional
  • Update lpr-utils-cpp
  • Separate declaration and definition in src/handler

Fixed

  • Fix v4 internal data type conflict with face library type

[4.28.11]

Added

  • LPR2 Plate grouping : similar group merging
  • Unit test for LPR2 group merging

Changed

  • Update model char detection for pipeline NFV4-LPR2
  • LPR2 Fix plate grouping : update group leader

Removed

  • Removed LPR2 grouping mechanism logging

[4.28.10]

Changed

  • Update model vehicle detection for pipeline NFV4-VC-HW, Elf Expected to be Car

[4.28.9]

Changed

  • Crowd Estimation dynamic input size inference with max resolution of 720p

[4.28.8]

Updated

  • Add toleration of cluster network disruption by increasing keep-alive mechanism from 2 to 10
  • Enforce slave and master version checking, to avoid silent failure
  • Limit slave retry the connection to master to 3 and then terminate
  • Fix license stuck when a slave is disconnected
  • Force browser to use parallel connection to V4, by disabling keep-alive(HTTP response Connection: Close)
  • Increase streamer threshold to detect if frame is received from buffer, from 25ms to 30ms

[4.28.0]

Added

  • Now master node can pull slave node prometheus metrics

Updated

  • Metrics port is no longer available

[4.27.8]

Added

  • visualize estimate range in crowd estimation

[4.27.7]

Added

  • Add function to log grouping mechanism in LPR2

Fixed

  • Fixed bug when dumping a license plate group in LPR2

[4.27.6]

Changed

  • refactor platform

[4.27.5]

Added

  • Add unittest platform

[4.27.4]

Fixed

  • fix stream delay in certain machine(tweak fps speedup value)

[4.27.3]

Added

  • monitoring uncertainty score and error rate data to cloud

[4.27.2]

Added

  • Add support to LPR2 for test driver
  • Add new metrics to calculate accuracy for LPR test driver

Fixed

  • Fixed bug when uploading ground truth to golden standard database

[4.27.1]

Added

  • Enrich counting dump event with direction for analytic: NFV4-VC, NFV4-PC, and NFV4-LPR
  • Introduce new json field direction with value in and out (string type) in counting event pipeline_data

[4.27.0]

Added

  • Add camera syncronize checking when add cctv. new enpoint: POST /streams/<node_num>
  • Introduce new json field camera_sync, set true to enable camera sync check. otherwise set false or delete this field to enable asynchronous check like the old one.

[4.26.8]

Added

  • Add --drift-monitoring command argument to disable/enable and change error rate dump threshold.
  • Remove UNCERTAINTY_DUMP compile command, and use by default.

[4.26.7]

Fixed

  • Fix NFV4-LPR char recognition crashed intorduced in 4.26.0

[4.26.6]

Added

  • Add uncertainty score dumping mechanism to cloud

[4.26.5]

Fixed

  • Resolved all warnings

[4.26.4]

Fixed

  • Fix stream address with special character url

[4.26.3]

Changed

  • Change uncertainty metrics from summary to gauge and histogram

[4.26.2]

Changed

  • Face Recognition pipeline dump continously

[4.26.1]

Unreleased

  • add edge case (high uncertainty score) detection dumping handler, dump locally

[4.26.0]

Added

  • add uncertainty score to vehicle counting (NFV4-VC)
  • add uncertainty score to vehicle counting JM (NFV4-VC-HW)
  • visualize uncertainty score and error rate in grafana dashboard

[4.25.0]

Added

  • New License ID for License Plate Recognition (Experimental) : NFV4-LPR2

Changed

  • Disabling compile option USE_NEW_LPR
  • Integrate LPRv2 to default compilation alongside with LPRv1

[4.24.4]

Added

  • local test driver script for benchmarking

Changed

  • remove unused scripts
  • test driver docker-compose to only used 1 gpu
  • test driver docker using latest tag instead of versioning tied to v4 version

[4.24.0]

Added

  • Add new pipeline Water Level Monitoring (WLM) packages

[4.23.3]

Fixed

  • Fixing streams component with input stream address not active

[4.23.2]

Added

  • Unit tests for LPRv2
  • Add experimental for LPRv2

Changed

  • Optimization for LPRv2

[4.23.1]

Changed

  • encrypt LPR prototype char recognition serialized engine

[4.23.0]

Fixed

  • fix signaler eror

[4.22.2]

Changed

  • Dump Face twice per track id in Face Recognition

[4.22.1]

Changed

  • change LPR prototype char recognition backend

Added

  • add prometheus metrics: pipeline latency

[4.22.0]

Changed

  • Upgrade internal library version to support Nvidia GPU A100

[4.21.2]

Added

  • Add test driver analytic and clustering.

[4.21.1]

Changed

  • Change neural network for LPR, from plate detection only to plate + vehicle detection

[4.21.0]

Fixed

  • Fixing GPU Memory loading model

Changed

  • Update Vortex Runtime 0.3.0 version, (loading *.so at runtime)

[4.20.3]

Added

  • New pipeline for License Plate Recognition, replacing counting line with global sampling and clustering.

[4.20.2]

Changed

  • Zoom out face image and dump size to 200 x 200 px in the Face Recognition pipeline

[4.20.1]

Fixed

  • Fix app crash using public CCTV url

[4.20.0]

  • Released clustering functionalities MVP

[4.14.1]

Added

  • New LPR pipeline prototype

[4.14.0]

Changed

  • Update model vehicle detection highway with active learning dataset for VC-HW pipeline

[4.13.1]

Changed
  • Fix where Docker Stream cannot be installed in GPU below GTX 1060

[4.13.0]

Changed
  • Update model vehicle detection highway for VC-HW pipeline

[4.12.0]

Added
  • Provide CPU and RAM monitor in resource_stats endpoint
  • Add visioanrie4 version field in analytic_list endpoint
  • Add credential bundle using .csv format
  • Add message and log for face candidates (face_recognition pipeline)
Changed
  • update composer.sh (upload grafana.json dashboard cli)

[4.11.2]

Added
  • Add test driver LPR script

[4.11.1]

Added
  • Add script for benchmarking with ground truth

[4.11.0]

Changed

  • Update for crowd estimation service

Added

  • Add crowd estimation pipeline
  • Add semantic segmentation handler

[4.10.0]

Added

  • Add VMS-client to stream to handle vendor VMS URL
  • Expose license serial number and deployment_key per analytic by the API endpoint analytic_list and /streams/<node_id>/<stream_id>

Changed

  • Change credential license using access-key and secret-key, license-username and license-password has no compatibility anymore

[4.9.5]

Fixed

  • Double dump on vehicle counting (highway)

Added

  • Add sampling mechanism for a certain amount of time to prevent double dump
  • Add sampling time parameter as dumping_sampling_time field on JSON POST when creating a new pipeline
  • Add default value sampling_time_threshold for each analytics (not tuned yet)

[4.9.4]

Changed

  • Update dump event mechanism uses the highest similarity from the most occurence of face_id with timeout 1.5s and dump if track_id lost

[4.9.3]

  • Internal revamp

[4.9.2]

Fixed

  • Healthcheck terminate the app when there is a pipeline which seat is not granted
  • More smooth/asynchronous service scale-up mechanism, instead of synchronously tied to pipeline spawn, it uses a regular scheduler like scale down mechanism
  • Fix bug where create pipeline request is being repeatedly hit(trigger main thread health check terminate)

[4.9.0]

Added

  • Add PING handle, so if the client send PING to check connection liveness, we reply it with PONG

[4.8.3]

Fixed

  • Prevent pipeline health check trigger when RTSP/stream not working, use stream recovery instead(less disruptive)

[4.8.2]

Added

  • Add NFV4-VC-HW as Vehicle Counting Highway case as new pipeline
  • Add grid tracker as tracker preprocess
  • Add moving weighted average in trajectory generator
  • Add remove overlap label to reduce double detection as tracker preprocess

[4.8.1]

Changed

  • Remove master_base class

[4.8.0]

Fixed

  • Multi GPU racing condition, where GPU device map is being used without first initialized.

Added

  • Terminate the entire service if there's an unresponsive pipeline(so docker auto-restart can recover)
  • Add metrics node's running age/time (seconds)

[4.7.0]

Added

  • Ability to spawn services to multiple GPUs
  • Service can spawn in a specific location of GPU / gpu_id
  • Add visibility of device GPU as API endpoint call

Under [4.6.6]

  • Publish release image to Dockerhub