Skip to content

Commit

Permalink
Major version update to v4.
Browse files Browse the repository at this point in the history
Key changes include:
- update nodejs to 20.x
- update to use native aws-sdk-js-v3

New features:
- dynamic frame analysis
- auto face indexer
- scene and ad break detection
- leveraging generative ai for more metdata
Refer to README.md for more details.

Breaking changes:
- consolidating the generated metadata files into one output file per analysis type
- optimizing opensearch to have a single index instead of multiple indexes (one index per analysis type)
  • Loading branch information
aws-kens committed Apr 4, 2024
1 parent e3d942b commit 14618b7
Show file tree
Hide file tree
Showing 725 changed files with 110,395 additions and 223,650 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ not-used
dist
.vscode
doc
# package-lock.json
global-s3-assets
regional-s3-assets
open-source
Expand Down
40 changes: 39 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,44 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [4.0.0] - 2024-03-06
### New features
- Dynamic frame analysis workflow
- Auto face indexing workflow
- Scene and Ad break detection workflow
- GenAI playground with Amazon Bedrock (Anthropic Claude)
- Knowledge graph with Amazon Neptune Serverless
- Option to choose Amazon OpenSearch Serverless Service instead of Amazon OpenSearch Service (cluster)
- Complex search query that supports AND, OR, NOT directives.
- Experimental feature: Shoppable Metadata (Disabled by default). Contact your AWS representative if you are interested in this feature.

### Changes
- Updated lambda function runtime to NodeJS 20.x
- Updated AWS SDK JS to version 3
- Refactored video analysis state machine by introducing new sub-state machines
- Dynamic frame segmentation state machine
- Video based detection state machine
- Frame based detection state machine
- Custom model detection state machine
- Analysis Post Process state machine
- Consolidated opensearch indices into a single index to support complex search query

### Added
- An unified state machine status event bus using Amazon EventBridge to consolidate events from various state machines
- A new Amazon DynamoDB table, `faceindexer` to store face id and name mapping
- An `Update Face Indexer` state machine to manage the face indexer logics such as adding, modifying, and removing faces from the face indexer table, opensearch documents, and metadata files on proxy bucket
- A `Graph Indexer` state machine to manage the Amazon Neptune Serverless logics such as adding, modifying, and removing nodes and relationships from the graph database
- Amazon CodeBuild to build and package opensource models into docker images and store in a private Amazon Elastic Container Registry (Amazon ECR)
- CLIP, opensource zero shot image classification model running in containerized lambda function for generating image embeddings, used for scene detection feature
- Faiss, opensource vector store running in containerized lambda funciton for similarity search (stateless), used for scene detection feature
- OWL-ViT, opensource zero-shot object detection model running in containerized lambda function for apparel detection, used for shoppale metadata feature
- BLIP, opensource text to caption model running in containerized lambda function for generating image caption, used for image analysis
- Private VPC for the Amazon Neptune Serverless instance

### Removed
- Amazon Rekognition Person Pathing API


## [3.1.5] - 2023-11-02

### Security
Expand Down Expand Up @@ -124,4 +162,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

### Removed
### Removed
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information, see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
[email protected] with any additional questions or comments.
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ reported the issue. Please try to include as much information as you can. Detail
## Contributing via Pull Requests
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

1. You are working against the latest source on the *main* branch.
1. You are working against the latest source on the *master* branch.
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.

Expand All @@ -36,26 +36,26 @@ To send us a pull request, please:
5. Send us a pull request, answering any default questions in the pull request interface.
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.

GitHub provides an additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).


## Finding contributions to work on
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/aws-solutions/media2cloud/labels/help%20wanted) issues is a great place to start.
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels ((enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'](https://github.com/aws-solutions/media2cloud/labels/help%20wanted) issues is a great place to start.


## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information, see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq), or contact
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
[email protected] with any additional questions or comments.


## Security issue notifications
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public GitHub issue.
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.


## Licensing

See the [LICENSE](https://github.com/aws-solutions/media2cloud/blob/main/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
See the [LICENSE](https://github.com/aws-solutions/media2cloud/blob/master/LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.

We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
46 changes: 20 additions & 26 deletions NOTICE.txt
Original file line number Diff line number Diff line change
@@ -1,22 +1,27 @@
Media2Cloud Solution

Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
Licensed under the Apache License Version 2.0 (the "License"). You may not use this file except
in compliance with the License. A copy of the License is located at http://www.apache.org/licenses/
or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or implied. See the License for the
specific language governing permissions and limitations under the License.

Licensed under the Apache License, Version 2.0 (the "License").
You may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

**********************
THIRD PARTY COMPONENTS
**********************
This software includes third party software subject to the following copyrights:

aws-sdk under the Apache License Version 2.0
aws-xray-sdk under the Apache License Version 2.0
AWS SDK under the Apache License Version 2.0
Amazon Cognito Identity SDK for JavaScript under the Apache License Version 2.0
AWS IoT SDK for JavaScript under the Apache License Version 2.0
Elasticsearch Node.js client under the Apache License Version 2.0
VideoJS under the Apache License Version 2.0
JQuery under the Massachusetts Institute of Technology (MIT) license
Bootstrap under the Massachusetts Institute of Technology (MIT) license
Expand All @@ -42,21 +47,10 @@ tar-stream under the Massachusetts Institute of Technology (MIT) license
Jimp under the Massachusetts Institute of Technology (MIT) license
PDF.JS under the Apache License Version 2.0
@npcz/magic under the BSD-3-Clause License
node-webvtt under the Massachusetts Institute of Technology (MIT) license
@rollup/stream under the Massachusetts Institute of Technology (MIT) license
glob under the Internet Systems Consortium (ISC) license
rollup under the Massachusetts Institute of Technology (MIT) license
terser under the BSD-2-Clause License
@elastic/elasticsearch under the Apache License Version 2.0
aws4 under the Massachusetts Institute of Technology (MIT) license
mime under the Massachusetts Institute of Technology (MIT) license
rusha under the Massachusetts Institute of Technology (MIT) license
spark-md5 under the Massachusetts Institute of Technology (MIT) license
jimp under the Massachusetts Institute of Technology (MIT) license
pdfjs-dist under the Apache License Version 2.0
canvas under the Massachusetts Institute of Technology (MIT) license
amazon-cognito-identity-js under the Apache License Version 2.0
aws-iot-device-sdk under the Apache License Version 2.0
cropperjs under the Massachusetts Institute of Technology (MIT) license
crypto-js under the Massachusetts Institute of Technology (MIT) license

TinkerPop3 (Gremlin JS) under the Apache License Version 2.0
OpenSearch Node.js client under the Apache License Version 2.0
winkNLP under the Massachusetts Institute of Technology (MIT) license
OWL-ViT (short for Vision Transformer for Open-World Localization) model under the Apache License Version 2.0
CLIP (Contrastive Language-Image Pretraining) under the Massachusetts Institute of Technology (MIT) license
FAISS under the Massachusetts Institute of Technology (MIT) license
BLIP (Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation) under BSD 3-Clause "New" or "Revised" License
Loading

0 comments on commit 14618b7

Please sign in to comment.