Skip to content

Python library for prototyping video analytics applications using pipelines and blackboard pattern. Relies on OpenCV, Scipy an other standard CV/ML/DL packages.

License

Notifications You must be signed in to change notification settings

nhorro/videoanalytics

Repository files navigation

videoanalytics

PyPI Documentation Status

Python library for fast prototyping video content analysis applications. Relies on OpenCV, Keras, and other standard computer vision and machine learning python packages.

An example application:

Videoanalytics for fisheries

Functionality and available components

Typical functional blocks of a video analytics application are described in [2]. Some examples are:

  • Dynamic masking: blocking a part of the video signal based on the signal itself, for example because of privacy concerns.
  • Motion detection: motion detection is used to determine the presence of relevant motion in the observed scene.
  • Object detection: object detection is used to determine the presence of a type of object or entity, for example a person or car. Other examples include fire and smoke detection.
  • Recognition: face recognition and automatic number plate recognition are used to recognize, and therefore possibly identify, persons or cars.
  • Tamper detection: tamper detection is used to determine whether the camera or output signal is tampered with.
  • Video tracking: Video tracking is used to determine the location of persons or objects in the video signal, possibly with regard to an external reference grid.
  • Object counting and event triggering: activating alarms or registering events when an object enter or leaves a region of the video signal.

This library provides components for each specific task organized as sources and sinks which are instanced and connected at execution time as pipelines. Sources consume data from a camera or file and trigger the processing pipeline. Sinks process data that was made available from other components and generate new data or perform an action such as storing in a DB.

Component list:

  • Sources
    • VideoReader
  • Sinks
    • Object detection
      • YOLOv4Detector
      • DetectorCSV
    • Tracking
      • SORT
      • DeepSORT
    • Visualization
      • Bounding box annotation
      • Matplotlib
    • Working with ROIs (Regions of interest)
    • Output
      • Metadata
        • DetectionsCSVWriter
          • Store object detections as CSV.
        • TrackingCSVWriter
          • Store tracked objects as CSV.
      • Database
        • InfluxDB.
        • ELasticSearch
      • Video
        • Write frames to video file.

Instructions for developers

Refer to wiki for development instructions.

References

  1. Wikipedia article for video content analyis
  2. Code for YOLOv4 and DeepSORT was adapted from yolov4-deepsort.
  3. EDN Introduction to video analytics

About

Python library for prototyping video analytics applications using pipelines and blackboard pattern. Relies on OpenCV, Scipy an other standard CV/ML/DL packages.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages