|
1 | 1 | > **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 2020 The MITRE Corporation. All Rights Reserved. |
2 | 2 |
|
| 3 | +# OpenMPF 6.0.1: December 2020 |
| 4 | + |
| 5 | +<h2>Bug Fixes</h2> |
| 6 | + |
| 7 | +- [[#1238](https://github.com/openmpf/openmpf/issues/1238)] The JSON output object is now generated when remote media cannot be downloaded. |
| 8 | + |
| 9 | +# OpenMPF 6.0.0: December 2020 |
| 10 | + |
| 11 | +<h2>Upgrade to OpenCV 4.5.0</h2> |
| 12 | + |
| 13 | +- Updated core framework and components from OpenCV 3.4.7 to OpenCV 4.5.0. |
| 14 | +- OpenCV is now built with CUDA support, including cuDNN (CUDA Deep Neural Network library) and cuBLAS (CUDA Basic Linear Algebra Subroutines library). All C++ components that use the base C++ builder and executor Docker images have CUDA support built in, giving developers the option to make use of it. |
| 15 | +- Added GPU support to the OcvDnnDetection component. |
| 16 | + |
| 17 | +<h2>Azure Cognitive Services (ACS) Translation Component</h2> |
| 18 | + |
| 19 | +- This new component utilizes the [Azure Cognitive Services Translator REST endpoint](https://docs.microsoft.com/en-us/azure/cognitive-services/translator/reference/v3-0-translate) to translate text from one language (locale) to another. Generally, it's intended to operate on feed-forward tracks that contain detections with `TEXT` and `TRANSCRIPT` properties. It can also operate on plain text file inputs. Refer to the [README](https://github.com/openmpf/openmpf-components/blob/master/python/AzureTranslation/README.md) for details. |
| 20 | + |
| 21 | +<h2>Interoperability Package</h2> |
| 22 | + |
| 23 | +- Added `algorithm` field to the element that describes a collection of tracks generated by an action in the JSON output object. For example: |
| 24 | + |
| 25 | +``` |
| 26 | +"output": { |
| 27 | + "FACE": [{ |
| 28 | + "source": "+#MOG MOTION DETECTION PREPROCESSOR ACTION#OCV FACE DETECTION ACTION", |
| 29 | + "algorithm": "FACECV", |
| 30 | + "tracks": [{ ... }], |
| 31 | + ... |
| 32 | + }, |
| 33 | +``` |
| 34 | + |
| 35 | +<h2>Merge Tasks in JSON Output Object</h2> |
| 36 | + |
| 37 | +- The output of two tasks in the JSON output object can be merged by setting the `OUTPUT_MERGE_WITH_PREVIOUS_TASK` property to true. This is a Workflow Manager property and can be set on any task in any pipeline, although it has no effect when set on the first task or the Markup task. |
| 38 | +- When the output of two tasks are merged, the tracks for the previous task will not be shown in the JSON output object, and no artifacts are generated for it. The task will be listed under `TRACKS MERGED`, if it's not already listed under `TRACKS SUPPRESSED` due to the `mpf.output.objects.last.task.only` system property setting, or `OUTPUT_LAST_TASK_ONLY` property. The tracks associated with the second task will inherit the detection type and algorithm of the previous task. |
| 39 | +- For example, the `TESSERACT OCR TEXT DETECTION WITH KEYWORD TAGGING PIPELINE` is defined as the `TESSERACT OCR TEXT DETECTION TASK` followed by the `KEYWORD TAGGING (WITH FF REGION) TASK`. The second task sets `OUTPUT_MERGE_WITH_PREVIOUS_TASK` to true. The resulting JSON output object contains one set of keyword-tagged OCR tracks that have the `TEXT` detection type and `TESSERACTOCR` algorithm (both inherited from the `TESSERACT OCR TEXT DETECTION TASK`): |
| 40 | + |
| 41 | +``` |
| 42 | +"output": { |
| 43 | + "TRACKS MERGED": [{ |
| 44 | + "source": "+#TESSERACT OCR TEXT DETECTION ACTION", |
| 45 | + "algorithm": "TESSERACTOCR" |
| 46 | + }], |
| 47 | + "TEXT": [{ |
| 48 | + "source": "+#TESSERACT OCR TEXT DETECTION ACTION#KEYWORD TAGGING (WITH FF REGION) ACTION", |
| 49 | + "algorithm": "TESSERACTOCR", |
| 50 | + "tracks": [{ |
| 51 | + "type": "TEXT", |
| 52 | + "trackProperties": { |
| 53 | + "TAGS": "ANIMAL", |
| 54 | + "TEXT": "The quick brown fox", |
| 55 | + "TEXT_LANGUAGE": "script/Latin", |
| 56 | + "TRIGGER_WORDS": "fox", |
| 57 | + "TRIGGER_WORDS_OFFSET": "16-18" |
| 58 | + ... |
| 59 | +``` |
| 60 | + |
| 61 | +- Note that you can use the `OUTPUT_MERGE_WITH_PREVIOUS_TASK` setting on multiple tasks. For example, if you set it as a job property it will be applied to all tasks (with the exception of Markup - in which case the task before Markup is used), so you will only get the output of the last task in the pipeline. The last task will inherit the detection type and algorithm of the first task in the pipeline. |
| 62 | + |
| 63 | +<h2>Tesseract Custom Dictionaries</h2> |
| 64 | + |
| 65 | +- The Tesseract component Docker image now contains an `/opt/mpf/tessdata_model_updater` binary that you can use to update `*.traineddata` models with a custom dictionary, as well as extract files from existing models. Refer to the [DICTIONARIES](https://github.com/openmpf/openmpf-components/blob/master/cpp/TesseractOCRTextDetection/DICTIONARIES.md) guide to learn how to use the tool. |
| 66 | +- In general, legacy `*.traineddata` models are more influenced by words in their dictionary than more modern LSTM `*.traineddata` models. Also, refer to the known issue below. |
| 67 | + |
| 68 | +<h2>Known Issues</h2> |
| 69 | + |
| 70 | +- [[#1243](https://github.com/openmpf/openmpf/issues/1243)] Unpacking a `*.traineddata` model, for example, in order to modify its dictionary, and then repacking it may result in dropping some of the words present in the original dictionary file. This may be due to some kind of compression or filtering. It's unknown what effect this has on OCR results. |
| 71 | + |
| 72 | +# OpenMPF 5.1.3: December 2020 |
| 73 | + |
| 74 | +<h2>Setting Properties as Docker Environment Variables</h2> |
| 75 | + |
| 76 | +- Any property that can be set as a job property can now be set as a Docker environment variable by prefixing it with `MPF_PROP_`. For example, setting the `MPF_PROP_TRTIS_SERVER` environment variable in the `trtis-detection` service in your `docker-compose.yml` file will have the same effect as setting the `TRTIS_SERVER` job property. |
| 77 | +- Properties set in this way will take precedence over all other property types (job, algorithm, media, etc). It is not possible to change the value of properties set via environment variables at runtime and therefore they should only be used to specify properties that will not change throughout the entire lifetime of the service. |
| 78 | + |
| 79 | +<h2>Updates</h2> |
| 80 | + |
| 81 | +- The `mpf.output.objects.censored.properties` system property can be used to prevent properties from being shown in JSON output objects. The value for these properties will appear as `<censored>`. |
| 82 | +- The Azure Speech Detection component now retries without diarization when diarization is not supported by the selected locale. |
| 83 | + |
| 84 | +<h2>Bug Fixes</h2> |
| 85 | + |
| 86 | +- [[#1230](https://github.com/openmpf/openmpf/issues/1230)] The Azure Speech Detection component now uses a UUID for the recording id associated with a piece of media in order to prevent deleting a piece of media while it's in use. |
| 87 | + |
| 88 | +# OpenMPF 5.1.1: December 2020 |
| 89 | + |
| 90 | +<h2>Updates</h2> |
| 91 | + |
| 92 | +- Only generate `FRAME_COUNT` warning when the frame difference is > 1. This can be configured using the `warn.frame.count.diff` system property. |
| 93 | + |
| 94 | +<h2>Bug Fixes</h2> |
| 95 | + |
| 96 | +- [[#1209](https://github.com/openmpf/openmpf/issues/1209)] The Keyword Tagging component now generates video tracks in the JSON output object. |
| 97 | +- [[#1212](https://github.com/openmpf/openmpf/issues/1212)] The Keyword Tagging component now preserves the detection bounding box and confidence. |
| 98 | + |
3 | 99 | # OpenMPF 5.1.0: November 2020 |
4 | 100 |
|
5 | 101 | <h2>Media Inspection Improvements</h2> |
|
8 | 104 | - The Workflow Manager now configures Tika with [custom MIME type support](https://github.com/openmpf/openmpf/blob/master/trunk/workflow-manager/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml). Currently, this enables the detection of `video/vnd.dlna.mpeg-tts` and `image/jxr` MIME types. |
9 | 105 | - If the Workflow Manager cannot use Tika to determine the media MIME type then it will fall back to using the Linux `file` command with a [custom magicfile](https://github.com/openmpf/openmpf/blob/master/trunk/workflow-manager/src/main/resources/magic/custom-magic). |
10 | 106 | - OpenMPF now supports Apple-optimized PNGs and HEIC images. Refer to the Bug Fixes section below. |
11 | | - |
| 107 | + |
12 | 108 | <h2>EAST Text Region Detection Component Improvements</h2> |
13 | 109 |
|
14 | 110 | - The `TEMPORARY_PADDING` property has been separated into `TEMPORARY_PADDING_X` and `TEMPORARY_PADDING_Y` so that X and Y padding can be configured independently. |
15 | 111 | - The `MERGE_MIN_OVERLAP` property has been renamed to `MERGE_OVERLAP_THRESHOLD` so that setting it to a value of 0 will merge all regions that touch, regardless of how small the amount of overlap. |
16 | 112 | - Refer to the [README](https://github.com/openmpf/openmpf-components/blob/master/python/EastTextDetection/README.md#properties) for details. |
17 | | - |
| 113 | + |
18 | 114 | <h2>MPFVideoCapture and MPFImageReader Tool Improvements</h2> |
19 | | - |
| 115 | + |
20 | 116 | - These tools now support a `ROTATION_FILL_COLOR` property for setting the fill color for pixels near the corners and edges of frames when performing non-orthogonal rotations. Previously, the color was hardcoded to `BLACK`. That is still the default setting for most components. Now the color can be set to `WHITE`, which is the default setting for the Tesseract component. |
21 | 117 | - These tools now support a `ROTATION_THRESHOLD` property for adjusting the threshold at which the frame transformer performs rotation. Previously, the value was hardcoded to 0.1 degrees. That is still the default value. Rotation is not performed on any `ROTATION` value less than that threshold. The motivation is that some algorithms detect small rotations (for example, on structured text) when there is no rotation. In such cases rotating the frame results in fewer detections. |
22 | 118 | - OpenMPF now uses FFmpeg when counting video frames. Refer to the Bug Fixes section below. |
|
0 commit comments