|
1 | 1 | **NOTICE:** This software (or technical data) was produced for the U.S. Government under contract, and is subject to the |
2 | 2 | Rights in Data-General Clause 52.227-14, Alt. IV (DEC 2007). Copyright 2023 The MITRE Corporation. All Rights Reserved. |
3 | 3 |
|
| 4 | +# OpenMPF 9.0.x |
| 5 | + |
| 6 | +<h2>9.0.0: May 2024</h2> |
| 7 | + |
| 8 | +<h3>Documentation</h3> |
| 9 | + |
| 10 | +- Created a new [Quality Selection Guide](Quality-Selection-Guide/index.html). |
| 11 | + |
| 12 | +<h3>Quality Selection</h3> |
| 13 | + |
| 14 | +- Can now specify a `QUALITY_SELECTION_PROPERTY` and `QUALITY_SELECTION_THRESHOLD` for choosing exemplars, artifacts, |
| 15 | + and controlling feed-forward behavior. |
| 16 | +- The following old job properties and old system properties are no longer supported. The tables show the new properties |
| 17 | + that should be used instead: |
| 18 | + |
| 19 | +| Old Job Property | New Job Properties | |
| 20 | +| - | - | |
| 21 | +| `CONFIDENCE_THRESHOLD` | `QUALITY_SELECTION_PROPERTY`<br>`QUALITY_SELECTION_THRESHOLD` | |
| 22 | +| `ARTIFACT_EXTRACTION_POLICY_TOP_CONFIDENCE_COUNT` | `ARTIFACT_EXTRACTION_POLICY_TOP_QUALITY_COUNT` | |
| 23 | +| `FEED_FORWARD_TOP_CONFIDENCE_COUNT` | `FEED_FORWARD_TOP_QUALITY_COUNT` | |
| 24 | + |
| 25 | +| Old System Property | New System Properties | |
| 26 | +| - | - | |
| 27 | +| <span style="font-size:0.82em;">`detection.confidence.threshold`</span> | <span style="font-size:0.82em;">`detection.quality.selection.prop`<br>`detection.quality.selection.threshold`</span> | |
| 28 | +| <span style="font-size:0.82em;">`detection.artifact.extraction.policy.top.confidence.count`</span> | <span style="font-size:0.82em;">`detection.artifact.extraction.policy.top.quality.count`</span> | |
| 29 | + |
| 30 | +- By default, `QUALITY_SELECTION_PROPERTY` is set to the value of `detection.quality.selection.prop` system property, |
| 31 | + which, by default, is `CONFIDENCE`. In most cases this preserves the previous behavior. |
| 32 | +- By default, `QUALITY_SELECTION_THRESHOLD` is set to the value of `detection.quality.selection.threshold` system |
| 33 | + property, which, by default, is `-Infinity`. This setting disables the threshold. Previously, the default value of |
| 34 | + `detection.confidence.threshold` was -1, which disabled the threshold for most components. |
| 35 | +- Components that previously used `CONFIDENCE_THRESHOLD` now have `QUALITY_SELECTION_PROPERTY=CONFIDENCE`. Also, |
| 36 | + `QUALITY_SELECTION_THRESHOLD` is set to the previous value of `CONFIDENCE_THRESHOLD`. For example, see [this |
| 37 | + commit](https://github.com/openmpf/openmpf-components/commit/b8e0bdd2a454790f344fa62364b9c97ea2c10bb1#diff-3ece8e4ec55d097df5f58aff2dc217770be3c868910fc13639bae296b9938961) |
| 38 | + for changes made to the OcvYoloDetection component. |
| 39 | +- `EXEMPLAR_POLICY` is now set to `QUALITY` by default. This setting results in choosing the detection within each track |
| 40 | + with the maximum quality according to the `QUALITY_SELECTION_PROPERTY`. Previously, the selection was always made |
| 41 | + based on highest detection confidence. |
| 42 | +- Similarly, the new `FEED_FORWARD_TOP_QUALITY_COUNT` and `ARTIFACT_EXTRACTION_POLICY_TOP_QUALITY_COUNT` properties use |
| 43 | + `QUALITY_SELECTION_PROPERTY` and `QUALITY_SELECTION_THRESHOLD`. |
| 44 | +- Refer to the [Quality Selection Guide](Quality-Selection-Guide/index.html) for details. |
| 45 | + |
| 46 | +<h3>Transformer Tagging Component</h3> |
| 47 | + |
| 48 | +- This component uses a user-specified corpus JSON file to match known phrases against each sentence in the input text |
| 49 | + data. |
| 50 | +- The input text sentences that generate match scores above the threshold are called "trigger sentences". These |
| 51 | + sentences are grouped by "tag" based on which entry in the corpus they matched against. |
| 52 | +- The underlying [all-mpnet-base-v2 model](https://huggingface.co/sentence-transformers/all-mpnet-base-v2) was trained |
| 53 | + on a variety of text data in order to understand the commonalities in phrasing, subject, and context. |
| 54 | +- Refer to the [README](https://github.com/openmpf/openmpf-components/blob/master/python/TransformerTagging/README.md) |
| 55 | + for details. |
| 56 | + |
| 57 | +<h3>Keyword Tagging Component Output</h3> |
| 58 | + |
| 59 | +- Updated the Keyword Tagging Component to generate output in the same format as the Transformer Tagging Component. For |
| 60 | + example, the output properties used to take the form `<INPUT> TRIGGER WORDS` and `<INPUT> TRIGGER WORDS OFFSET`: |
| 61 | + |
| 62 | +```text |
| 63 | +TEXT TRIGGER WORDS |
| 64 | +TEXT TRIGGER WORDS OFFSET |
| 65 | +TRANSLATION TRIGGER WORDS |
| 66 | +TRANSLATION TRIGGER WORDS OFFSET |
| 67 | +``` |
| 68 | + |
| 69 | +- Now the output properties take the form `<INPUT> <TAG> TRIGGER WORDS` and `<INPUT> <TAG> TRIGGER WORDS OFFSET`: |
| 70 | + |
| 71 | +```text |
| 72 | +TEXT TRAVEL TRIGGER WORDS |
| 73 | +TEXT TRAVEL TRIGGER WORDS OFFSET |
| 74 | +TRANSLATION TRAVEL TRIGGER WORDS |
| 75 | +TRANSLATION TRAVEL TRIGGER WORDS OFFSET |
| 76 | +``` |
| 77 | + |
| 78 | +- Notice that in the above example the new output properties include the word `TRAVEL`. If trigger words are detected |
| 79 | + for other tags, such as `FINANCIAL` and `VEHICLE`, those words will be used in separate `TRIGGER WORDS` and |
| 80 | + `TRIGGER WORDS OFFSET` output properties. |
| 81 | +- This change enables the job consumer to determine which trigger words are associated with each entry in the `TAGS` |
| 82 | + output property. |
| 83 | +- Refer to the "Outputs" section of the |
| 84 | + [README](https://github.com/openmpf/openmpf-components/blob/master/cpp/KeywordTagging/README.md#outputs) for details. |
| 85 | + |
| 86 | +<h3>Reporting Component Processing Time</h3> |
| 87 | + |
| 88 | +- The JSON output object contains a new section for reporting component processing time in milliseconds. For example: |
| 89 | + |
| 90 | +```json |
| 91 | +"timing": { |
| 92 | + "processingTime": 1514, |
| 93 | + "actions": [ |
| 94 | + { |
| 95 | + "name": "OCV YOLO VEHICLE DETECTION ACTION", |
| 96 | + "processingTime": 1431 |
| 97 | + }, |
| 98 | + { |
| 99 | + "name": "TENSORFLOW VEHICLE COLOR DETECTION (WITH FF REGION) ACTION", |
| 100 | + "processingTime": 83 |
| 101 | + } |
| 102 | + ] |
| 103 | +}, |
| 104 | +``` |
| 105 | + |
| 106 | +- This does not include the time sub-jobs spent waiting in queues, or processing time by the Workflow Manager, such as |
| 107 | + the time to perform media inspection. |
| 108 | +- Also, the above JSON is reported in the TiesDB job record within the `dataObject` field. |
| 109 | + |
| 110 | +<h3>NLP Text Splitter Utility</h3> |
| 111 | + |
| 112 | +- The new NLP Text Splitter utility uses spaCy or [Where's the Point (WtP)](https://github.com/bminixhofer/wtpsplit) |
| 113 | + models for determining how to break up text into sentences. |
| 114 | +- Supports both CPU processing and optional GPU processing. |
| 115 | +- Updated the Azure Translation Component to use this utility to ensure that translation requests are within the 50,000 |
| 116 | + character limit. |
| 117 | +- Refer to the |
| 118 | + [README](https://github.com/openmpf/openmpf-python-component-sdk/blob/master/detection/nlp_text_splitter/README.md) |
| 119 | + for details. |
| 120 | + |
| 121 | +<h3>CLIP Component Video Support</h3> |
| 122 | + |
| 123 | +- The CLIP Component now supports processing videos in addition to the previous ability to process images. Specify the |
| 124 | + batch size using `DETECTION_FRAME_BATCH_SIZE`. |
| 125 | +- The component also supports a new, larger, and more accurate `ViT-L/14` model in addition to the previous `ViT-B/32` |
| 126 | + model. Both models are supported via the optional Triton server as well as within the component itself for non-Triton |
| 127 | + deployments. |
| 128 | +- Refer to the |
| 129 | + [README](https://github.com/openmpf/openmpf-components/blob/master/python/ClipDetection/README.md#non-triton-performance) |
| 130 | + for performance metrics. |
| 131 | +- The `NUMBER_OF_TEMPLATES` property has been renamed to `TEMPLATE_TYPE` and now accepts one of the following values: |
| 132 | + `openai_1`, `openai_7`, `openai_80`. |
| 133 | + |
| 134 | +<h3>Import Root Certificates for Components</h3> |
| 135 | + |
| 136 | +- Can now specify a `MPF_CA_CERTS` environment variable for component Docker services to import root certificates. |
| 137 | +- May be useful when components need to communicate with external web services. |
| 138 | +- Refer to the [README](https://github.com/openmpf/openmpf-docker/blob/master/README.md#optional-import-root-certificates-for-additional-certificate-authorities) for details. |
| 139 | + |
| 140 | +<h3>Docker Secrets for Environment Variables</h3> |
| 141 | + |
| 142 | +- Can now use Docker secrets for environment variables in the Docker compose file. |
| 143 | +- This prevents exposing information as plain text in `docker-compose.yml`. |
| 144 | +- May be useful for environment variables like: |
| 145 | + - Workflow Manager username and password: `WFM_USER` and `WFM_PASSWORD` |
| 146 | + - Keystore password when enabling Workflow Manager HTTPS: `KEYSTORE_PASSWORD` |
| 147 | + - Azure credentials: `MPF_PROP_ACS_URL` and `MPF_PROP_ACS_SUBSCRIPTION_KEY` |
| 148 | +- Refer to the |
| 149 | + [README](https://github.com/openmpf/openmpf-docker/blob/master/README.md#optional-use-secrets-for-environment-variables) |
| 150 | + for details. |
| 151 | + |
| 152 | +<h3>Features</h3> |
| 153 | + |
| 154 | + - [[#1692](https://github.com/openmpf/openmpf/issues/1692)] Create a TransformerTagging component |
| 155 | + - [[#1718](https://github.com/openmpf/openmpf/issues/1718)] Support a `QUALITY_SELECTION_PROP` to specify how the WFM should choose an exemplar |
| 156 | + - [[#1754](https://github.com/openmpf/openmpf/issues/1754)] Report amount of time components spent executing a job |
| 157 | + - [[#1756](https://github.com/openmpf/openmpf/issues/1756)] Support `MPF_CA_CERTS` for components |
| 158 | + - [[#1771](https://github.com/openmpf/openmpf/issues/1771)] Azure Translation: Identify character limits. Split text using NLP Text Splitter. |
| 159 | + - [[#1798](https://github.com/openmpf/openmpf/issues/1798)] Add NLP Text Splitter to Python Component SDK |
| 160 | + |
| 161 | +<h3>Updates</h3> |
| 162 | + |
| 163 | + - [[#1694](https://github.com/openmpf/openmpf/issues/1694)] Update CLIP component to support videos |
| 164 | + - [[#1706](https://github.com/openmpf/openmpf/issues/1706)] Update KeywordTagging to work with TransformerTagging |
| 165 | + - [[#1745](https://github.com/openmpf/openmpf/issues/1745)] Support using docker secrets for environment variables in `docker-compose.yml` |
| 166 | + - [[#1769](https://github.com/openmpf/openmpf/issues/1769)] Upgrade to proto3 and clean up `.proto` files |
| 167 | + - [[#1774](https://github.com/openmpf/openmpf/issues/1774)] Update how TransformerTagging tokenizes sentences |
| 168 | + - [[#1785](https://github.com/openmpf/openmpf/issues/1785)] Upgrade to OpenCV 4.9 |
| 169 | + - [[#1786](https://github.com/openmpf/openmpf/issues/1786)] Modify the behavior of Markup when `CONFIDENCE` is the bounding box label to be displayed |
| 170 | + - [[#1797](https://github.com/openmpf/openmpf/issues/1797)] Further update Azure Translation and STT language maps |
| 171 | + - [[#1803](https://github.com/openmpf/openmpf/issues/1803)] Upgrade Postgres client used by Workflow Manager |
| 172 | + |
| 173 | +<h3>Bug Fixes</h3> |
| 174 | + |
| 175 | + - [[#1781](https://github.com/openmpf/openmpf/issues/1781)] Markup boxes are not drawn when animation is disabled and there are gaps in a track |
| 176 | + - [[#1799](https://github.com/openmpf/openmpf/issues/1799)] Keyword Tagging removes newlines so character offsets don't line up with original text |
| 177 | + |
4 | 178 | # OpenMPF 8.0.x |
5 | 179 |
|
| 180 | +<h2>8.0.4: May 2024</h2> |
| 181 | + |
| 182 | +<h3>Bug Fixes</h3> |
| 183 | + |
| 184 | +- [[#1805](https://github.com/openmpf/openmpf/issues/1805)] Workflow Manager incorrectly detects whether certain videos |
| 185 | + are constant or variable frame rate |
| 186 | + |
| 187 | +<h2>8.0.3: April 2024</h2> |
| 188 | + |
| 189 | +<h3>Bug Fixes</h3> |
| 190 | + |
| 191 | +- [[#1788](https://github.com/openmpf/openmpf/issues/1788)] Azure Speech and Translation: Update supported language |
| 192 | + mappings |
| 193 | + |
| 194 | +<h2>8.0.2: March 2024</h2> |
| 195 | + |
| 196 | +<h3>Documentation</h3> |
| 197 | + |
| 198 | +- Updated the [REST API](REST-API/index.html) with new `[GET] /rest/queues` and `[GET] /rest/queues/{name}` endpoints. |
| 199 | + |
| 200 | +<h3>Updates</h3> |
| 201 | + |
| 202 | +- [[#1776](https://github.com/openmpf/openmpf/issues/1776)] Add REST endpoint for retrieving the ActiveMQ message counts |
| 203 | + for each queue |
| 204 | + |
| 205 | +<h2>8.0.1: March 2024</h2> |
| 206 | + |
| 207 | +<h3>Updates</h3> |
| 208 | + |
| 209 | +- [[#1768](https://github.com/openmpf/openmpf/issues/1768)] Add Option to Merge Text Sections in TikaTextDetection |
| 210 | + |
| 211 | +<h3>Bug Fixes</h3> |
| 212 | + |
| 213 | +- [[#1763](https://github.com/openmpf/openmpf/issues/1763)] Media inspections fails when ffprobe does not specify a |
| 214 | + stream "codec_type" |
| 215 | + |
6 | 216 | <h2>8.0.0: December 2023</h2> |
7 | 217 |
|
8 | 218 | <h3>Documentation</h3> |
|
0 commit comments