NOTICE: This software (or technical data) was produced for the U.S. Government under contract, and is subject to the Rights in Data-General Clause 52.227-14, Alt. IV (DEC 2007). Copyright 2023 The MITRE Corporation. All Rights Reserved.

OpenMPF 7.2.x

7.2.0: May 2023

Documentation

TiesDb Re-Post

TiesDb Checking

TiesDb Linked Media

Output Changed Counter

Changes to JSON Output Object

ffprobe for Media Inspection

Web User Interface

Features

Updates

OpenMPF 7.1.x

7.1.12: March 2023

Bug Fixes

7.1.10: March 2023

Updates

7.1.9: February 2023

Bug Fixes

7.1.8: February 2023

Bug Fixes

7.1.7: February 2023

Updates

7.1.5: January 2023

Features

7.1.1: December 2022

Bug Fixes

7.1.0: December 2022

Documentation

Exemplar Selection Policy

Automatic Rotation and Horizontal Flip Enabled by Default

Support S3 Object Storage Key Prefix

Features

Updates

Bug Fixes

OpenMPF 7.0.x

7.0.3: September 2022

Bug Fixes

7.0.2: August 2022

Bug Fixes

7.0.0: July 2022

Documentation

Transition from CentOS 7 to Ubuntu 20.04

Use Job Id that Enables Load Balancing

Support for Derivative Media

Report when Job Callbacks and TiesDb POSTs Fail

Allow Pipelines to be Specified in a Job Request

Allow User-Specified Segment Boundaries

Add Triton Inference Server support to YOLO component

Removed Unused and Redundant Error Codes

Old Error Code New Error Code
MPF_IMAGE_READ_ERROR MPF_COULD_NOT_READ_MEDIA
MPF_BOUNDING_BOX_SIZE_ERROR MPF_BAD_FRAME_SIZE
MPF_JOB_PROPERTY_IS_NOT_INT MPF_INVALID_PROPERTY
MPF_JOB_PROPERTY_IS_NOT_FLOAT MPF_INVALID_PROPERTY
MPF_INVALID_FRAME_INTERVAL MPF_INVALID_PROPERTY
MPF_DETECTION_TRACKING_FAILED MPF_OTHER_DETECTION_ERROR_TYPE

Also, the following error codes are no longer being used and have been removed:

Markup Improvements

Changes to JSON Output Object

Features

Updates

Bug Fixes

OpenMPF 6.3.x

6.3.14: May 2022

Bug Fixes

6.3.12: April 2022

Updates

Bug Fixes

6.3.11: April 2022

Documentation

Updates

6.3.10: March 2022

Bug Fixes

6.3.8: January 2022

Bug Fixes

6.3.7: January 2022

Updates

6.3.6: December 2021

Updates

6.3.5: November 2021

Updates

6.3.4: November 2021

Bug Fixes

6.3.3: October 2021

Features

6.3.2: October 2021

Bug Fixes

6.3.1: September 2021

Features

Updates

Bug Fixes

6.3.0: September 2021

Documentation

TiesDb Integration

{
  "dataObject": {
    "sha256OutputHash": "1f8f2a8b2f5178765dd4a2e952f97f5037c290ee8d011cd7e92fb8f57bc75f17",
    "outputType": "FACE",
    "algorithm": "FACECV",
    "processDate": "2021-09-09T21:37:30.516-04:00",
    "pipeline": "OCV FACE DETECTION PIPELINE",
    "outputUri": "file:///home/mpf/git/openmpf-projects/openmpf/trunk/install/share/output-objects/1284/detection.json",
    "jobStatus": "COMPLETE",
    "jobId": 1284,
    "systemVersion": "6.3",
    "trackCount": 1,
    "systemHostname": "openmpf-master"
  },
  "system": "OpenMPF",
  "securityTag": "UNCLASSIFIED",
  "informationType": "OpenMPF FACE",
  "assertionId": "4874829f666d79881f7803207c7359dc781b97d2c68b471136bf7235a397c5cd"
}

Natural Language Processing (NLP) Text Correction Component

Azure Cognitive Services (ACS) Read Component

Updates

Bug Fixes

Known Issues

OpenMPF 6.2.x

6.2.5: July 2021

Updates

6.2.4: June 2021

Bug Fixes

6.2.2: June 2021

Updates

Bug Fixes

6.2.1: May 2021

Updates

Bug Fixes

6.2.0: May 2021

Tesseract OCR Text Detection Component Support for Videos

Updates

Known Issues

OpenMPF 6.1.x

6.1.6: May 2021

Handle Variable Frame Rate Videos

Updates

Known Issues

6.1.5: April 2021

Updates

6.1.4: April 2021

Updates

6.1.3: April 2021

Updates

Bug Fixes

6.1.2: April 2021

Updates

6.1.1: April 2021

Bug Fixes

6.1.0: April 2021

OpenMPF Command Line Runner

C++ Batch Component API

Python Batch Component API

Docker Component Base Images

Label Moving vs. Non-Moving Tracks

Markup Improvements

Updates

Bug Fixes

OpenMPF 6.0.x

6.0.11: March 2021

Bug Fixes

6.0.10: March 2021

Updates

6.0.9: March 2021

Bug Fixes

6.0.6: March 2021

Bug Fixes

6.0.5: February 2021

Bug Fixes

6.0.4: February 2021

Updates

6.0.3: February 2021

OpenCV YOLO Detection Component

6.0.2: January 2021

Bug Fixes

6.0.1: December 2020

Bug Fixes

6.0.0: December 2020

Upgrade to OpenCV 4.5.0

Azure Cognitive Services (ACS) Translation Component

Interoperability Package

"output": {
  "FACE": [{
    "source": "+#MOG MOTION DETECTION PREPROCESSOR ACTION#OCV FACE DETECTION ACTION",
    "algorithm": "FACECV",
    "tracks": [{ ... }],
    ...
   },

Merge Tasks in JSON Output Object

"output": {
  "TRACKS MERGED": [{
    "source": "+#TESSERACT OCR TEXT DETECTION ACTION",
    "algorithm": "TESSERACTOCR"
  }],
  "TEXT": [{
    "source": "+#TESSERACT OCR TEXT DETECTION ACTION#KEYWORD TAGGING (WITH FF REGION) ACTION",
    "algorithm": "TESSERACTOCR",
    "tracks": [{
      "type": "TEXT",
      "trackProperties": {
         "TAGS": "ANIMAL",
         "TEXT": "The quick brown fox",
         "TEXT_LANGUAGE": "script/Latin",
         "TRIGGER_WORDS": "fox",
         "TRIGGER_WORDS_OFFSET": "16-18"
         ...

Tesseract Custom Dictionaries

Known Issues

OpenMPF 5.1.x

5.1.3: December 2020

Setting Properties as Docker Environment Variables

Updates

Bug Fixes

5.1.1: December 2020

Updates

Bug Fixes

5.1.0: November 2020

Media Inspection Improvements

EAST Text Region Detection Component Improvements

MPFVideoCapture and MPFImageReader Tool Improvements

Azure Cognitive Services (ACS) Form Detection Component

Keyword Tagging Component

Optionally Skip Media Inspection

Updates

Bug Fixes

OpenMPF 5.0.x

5.0.9: October 2020

Bug Fixes

5.0.8: October 2020

Updates

Bug Fixes

5.0.7: September 2020

TensorRT Inference Server (TRTIS) Object Detection Component

5.0.6: August 2020

Enable OcvDnnDetection to Annotate Feed-forward Detections

DarknetDetection (person + vehicle) --> OcvDnnDetection (vehicle color)
  "detectionProperties": {
    "CLASSIFICATION": "car",
    "CLASSIFICATION CONFIDENCE LIST": "0.397336",
    "CLASSIFICATION LIST": "car",
    "COLOR": "blue",
    "COLOR CONFIDENCE LIST": "0.93507; 0.055744",
    "COLOR LIST": "blue; gray"
  }

Updates

5.0.5: August 2020

Updates

5.0.4: August 2020

Updates

5.0.3: July 2020

Updates

5.0.2: July 2020

Updates

5.0.1: July 2020

Updates

5.0.0: June 2020

Documentation

JSON Output Object

Interoperability Package

Persistent Database

C++ Batch Component API

Python Batch Component API

Full Docker Conversion

Docker Component Base Images

Restrict Media Types that a Component Can Process

Import Additional Root Certificates into the Workflow Manager

DockerHub

Version Updates

FFmpeg

Artifact Extraction

REST Endpoints

Incomplete Actions, Tasks, and Pipelines

Python Arbitrary Rotation

OpenCV Deep Neural Networks (DNN) Detection Component

Azure Cognitive Services (ACS) Speech Detection Component

Tesseract OCR Text Detection Component

Tika Text Detection Component

Other Improvements

Bug Fixes

Known Issues

OpenMPF 4.1.x

4.1.14: June 2020

Bug Fixes

4.1.13: June 2020

Updates

4.1.12: May 2020

Updates

4.1.11: May 2020

Tesseract OCR Text Detection Component

4.1.8: May 2020

Azure Cognitive Services (ACS) OCR Component

4.1.6: April 2020

Updates

4.1.5: March 2020

Bug Fixes

Known Issues

4.1.4: March 2020

Updates

JSON Output Object

Interoperability Package

4.1.3: February 2020

Features

4.1.1: January 2020

Bug Fixes

4.1.0: July 2019

Documentation

C++ Arbitrary Rotation

Component Registration REST Endpoints

Python Component Executor Docker Image

Docker Deployment

EAST Text Region Detection Component

Tesseract OCR Text Detection Component

ActiveMQ Profiles

Disabled ActiveMQ Prefetch

Search Region Percentages

Other Improvements

Bug Fixes

Known Issues

Late Additions: November 2019

Late Additions: December 2019

OpenMPF 4.0.x

4.0.0: February 2019

Documentation

Upgrade to Tesseract 4.0

Docker Deployment

Tesseract OCR Text Detection Component

Ceph S3 Object Storage

ISO-8601 Timestamps

Reduced Redis Usage

Caffe Vehicle Color Estimation

Track Merging and Minimum Track Length

Bug Fixes

OpenMPF 3.0.x

3.0.0: December 2018

NOTE: The Build Guide and Install Guide are outdated. The old process for manually configuring a Build VM, using it to build an OpenMPF package, and installing that package, is deprecated in favor of Docker containers. Please refer to the openmpf-docker README.

NOTE: Do not attempt to register or unregister a component through the Nodes UI in a Docker deployment. It may appear to succeed, but the changes will not affect the child Node Manager containers, only the Workflow Manager container. Also, do not attempt to use the mpf command line tools in a Docker deployment.

Documentation

Docker Support

JSON Output Object

Darknet Component

Tesseract OCR Text Detection Component

OpenCV Scene Change Detection Component

Tika Text Detection Component

Tika Image Detection Component

Track-Level Properties and Confidence

Custom NGINX HTTP Object Storage

ActiveMQ

Node Auto-Configuration

Job Status Web UI

Other Improvements

Bug Fixes

Known Issues

OpenMPF 2.1.x

2.1.0: June 2018

NOTE: If building this release on a machine used to build a previous version of OpenMPF, then please run sudo pip install --upgrade pip to update to at least pip 10.0.1. If not, the OpenMPF build script will fail to properly download .whl files for Python modules.

Documentation

Python Batch Component API

Spare Nodes

Default Detection System Properties

detection.models.dir.path=${env:MPF_HOME}/models/

Alternatively, you can define system properties using other system properties:

detection.models.dir.path=${mpf.share.path}/models/

Adaptive Frame Interval

calcFrameInterval = max(1, floor(mediaNativeFPS / frameRateCapProp));

Darknet Component

Models Directory

Packaging and Deployment

Web User Interface

Bug Fixes

Known Issues

com.google.protobuf.InvalidProtocolBufferException: Message missing required fields: data_uri

Further debugging is necessary to determine the reason why that message was missing that field. The situation is not easily reproducible. It may occur when ActiveMQ and / or the system is under heavy load and sends duplicate messages in attempt to ensure message delivery. Some of those messages seem to end up in the dead letter queue (DLQ). For now, we've improved the way we handle messages in the DLQ. If OpenMPF can process a message successfully, the job is marked as COMPLETED_WITH_ERRORS, and the message is moved from ActiveMQ.DLQ to MPF.DLQ_PROCESSED_MESSAGES. If OpenMPF cannot process a message successfully, it is moved from ActiveMQ.DLQ to MPF.DLQ_INVALID_MESSAGES.

OpenMPF 2.0.x

2.0.0: February 2018

NOTE: Components built for previous releases of OpenMPF are not compatible with OpenMPF 2.0.0 due to Batch Component API changes to support generic detections, and changes made to the format of the descriptor.json file to support stream processing.

NOTE: This release contains basic support for processing video streams. Currently, the only way to make use of that functionality is through the REST API. Streaming jobs and services cannot be created or monitored through the web UI. Only the SuBSENSE component has been updated to support streaming. Only single-stage pipelines are supported at this time.

Documentation

Support for Generic Detections

C++ Batch Component API

Java Batch Component API

Streaming REST API

Workflow Manager

Node Manager

C++ Streaming Component API

C++ Streaming Component Executor

Interoperability Package

SuBSENSE Component

Packaging and Deployment

Web User Interface

Bug Fixes

Known Issues

2018-02-15 16:01:21,814 INFO [pool-3-thread-4] o.m.m.nms.streaming.StreamingProcess - Process: Component exited with exit code 139 

To determine if FFmpeg can connect to the stream or not, run ffmpeg -i <stream-uri> in a terminal window. Here's an example when it's successful:

[mpf@localhost bin]$ ffmpeg -i rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov
ffmpeg version n3.3.3-1-ge51e07c Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --prefix=/apps/install --extra-cflags=-I/apps/install/include --extra-ldflags=-L/apps/install/lib --bindir=/apps/install/bin --enable-gpl --enable-nonfree --enable-libtheora --enable-libfreetype --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared --disable-libsoxr --enable-avresample
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[rtsp @ 0x1924240] UDP timeout, retrying with TCP
Input #0, rtsp, from 'rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov':
  Metadata:
    title           : BigBuckBunny_115k.mov
  Duration: 00:09:56.48, start: 0.000000, bitrate: N/A
    Stream #0:0: Audio: aac (LC), 12000 Hz, stereo, fltp
    Stream #0:1: Video: h264 (Constrained Baseline), yuv420p(progressive), 240x160, 24 fps, 24 tbr, 90k tbn, 48 tbc
At least one output file must be specified

Here's an example when it's not successful, so there may be network issues:

[mpf@localhost bin]$ ffmpeg -i rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov
ffmpeg version n3.3.3-1-ge51e07c Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
  configuration: --prefix=/apps/install --extra-cflags=-I/apps/install/include --extra-ldflags=-L/apps/install/lib --bindir=/apps/install/bin --enable-gpl --enable-nonfree --enable-libtheora --enable-libfreetype --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-shared --disable-libsoxr --enable-avresample
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[tcp @ 0x171c300] Connection to tcp://184.72.239.149:554?timeout=0 failed: Invalid argument
rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov: Invalid argument
Jan 22, 2018 11:02:15 AM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: JBIG2ImageReader not loaded. jbig2 files will be ignored
See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
TIFFImageWriter not loaded. tiff files will not be processed
See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
J2KImageReader not loaded. JPEG2000 files will not be processed.
See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.

OpenMPF 1.0.x

1.0.0: October 2017

Documentation

Upgrade to FFmpeg 3.3.3 and OpenCV 3.3

Feed Forward Behavior

Caffe Component

Use Key Frames

MPFVideoCapture and MPFImageReader Tools

Dead Letter Queue

Upgrade Path

Markup

Bug Fixes

Known Issues

OpenMPF 0.x.x

0.10.0: July 2017

WARNING: There is no longer a DEFAULT CAFFE ACTION, DEFAULT CAFFE TASK, or DEFAULT CAFFE PIPELINE. There is now a CAFFE GOOGLENET DETECTION PIPELINE and CAFFE YAHOO NSFW DETECTION PIPELINE, which each have a respective action and task.

NOTE: MPFImageReader has been re-enabled in this version of OpenMPF since we upgraded to OpenCV 3.2, which addressed the known issues with imread(), auto-orientation, and jpeg files in OpenCV 3.1.

Documentation

Upgrade to OpenCV 3.2

Support for Animated gifs

Caffe Component

Future Support for Streaming Video

NOTE: At this time, OpenMPF does not support streaming video. This section details what's being / has been done so far to prepare for that feature.

Bug Fixes

Known Issues

0.9.0: April 2017

WARNING: MPFImageReader has been disabled in this version of OpenMPF. Component developers should use MPFVideoCapture instead. This affects components developed against previous versions of OpenMPF and components developed against this version of OpenMPF. Please refer to the Known Issues section for more information.

WARNING: The OALPR Text Detection Component has been renamed to OALPR License Plate Text Detection Component. This affects the name of the component package and the name of the actions, tasks, and pipelines. When upgrading from R0.8 to R0.9, if the old OALPR Text Detection Component is installed in R0.8 then you will be prompted to install it again at the end of the upgrade path script. We recommend declining this prompt because the old component will conflict with the new component.

WARNING: Action, task, and pipeline names that started with MOTION DETECTION PREPROCESSOR have been renamed MOG MOTION DETECTION PREPROCESSOR. Similarly, WITH MOTION PREPROCESSOR has changed to WITH MOG MOTION PREPROCESSOR.

Documentation

Workflow Manager

Web User Interface

REST API

Flipping, Rotation, and Region of Interest

Component API

JSON Output Objects

Caffe Component

New Pipelines

Packaging and Deployment

Upgrade to OpenCV 3.1

Bug Fixes

Known Issues