Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add smart library demo #1

Open
wants to merge 1,156 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1156 commits
Select commit Hold shift + click to select a range
2bf3358
AC: fix IR loading
eaidova Dec 30, 2019
8d8fa72
Merge pull request #750 from eaidova/ea/fix_ir_loading
eaidova Dec 30, 2019
9f8cf1f
2019R4 models RC1
vladimir-dudnik Dec 30, 2019
b25bc0c
Merge pull request #751 from vladimir-dudnik/r4-models-rc1
vladimir-dudnik Dec 30, 2019
021ab29
Merge pull request #693 from vladimir-dudnik/fix-models-docs
vladimir-dudnik Dec 30, 2019
27cf20b
remove old models from test cases
vladimir-dudnik Dec 30, 2019
47eb079
fix binary models subfolder
vladimir-dudnik Dec 30, 2019
b05fbcd
Merge pull request #752 from vladimir-dudnik/fix-test-cases
vladimir-dudnik Dec 30, 2019
ebd2951
AC configs: adopt to new layout (#736)
eaidova Dec 31, 2019
a39dec1
Merge pull request #747 from Wovchena/demos-cnnnetreader-weights
vladimir-dudnik Dec 31, 2019
b6e32c1
Test demos on new reid, update reid with output of 512
Wovchena Jan 9, 2020
b86054e
Merge pull request #758 from Wovchena/reid-models
vladimir-dudnik Jan 9, 2020
161867c
Add colorization
Aug 15, 2019
6790441
Correct data
Dec 6, 2019
1faaa69
Correct data 2
Dec 6, 2019
9f48650
Correct config reader
Dec 6, 2019
7044376
Correct config reader 2
Dec 6, 2019
1cfa78d
Correct config reader 3
Dec 6, 2019
e22f0a1
Correct config reader 4
Dec 6, 2019
4d1fec1
update review
Jan 9, 2020
36d1d3a
AC: update config for brain-tumor-segmentation-0001 (#759)
eaidova Jan 9, 2020
80124ad
Renamed demo's directory
Jan 9, 2020
5956f71
Added models.lst
Jan 9, 2020
0fc1d16
renamed colorization.py
Jan 9, 2020
3ba028f
Update colorization README.md
Jan 9, 2020
fbfeecd
Update colorization demo
Jan 9, 2020
f9aee9b
Update colorization demo 2
Jan 9, 2020
73ba4e8
update demo 3
Jan 9, 2020
fc7823f
update demo 4
Jan 9, 2020
d812ba6
Update config_reader.py
Jan 9, 2020
2b0e822
AC: fix initialization order (#761)
eaidova Jan 10, 2020
75626d7
update demo 5
Jan 10, 2020
892525b
update demo: fixed batch size = 1
Jan 10, 2020
30f80f8
update demo: remove network info
Jan 10, 2020
e9326fb
update demo: renamed exception
Jan 10, 2020
3105c22
All demos are migrated to new API
ilyachur Jan 9, 2020
189ca9e
Add ResNet18 (v1, PyTorch)
vshampor Jan 9, 2020
257ed56
Update models/public/resnet-18-pytorch/model.yml
vshampor Jan 13, 2020
a23dc88
remove custom mean
Jan 13, 2020
c1d7317
Update the upcoming release version
Jan 14, 2020
ead876e
Merge pull request #765 from IRDonch/version
Jan 14, 2020
db3f5af
requirements-pytorch.in: work around a torchvision bug
Jan 14, 2020
cb9718b
update demo: remove scale values
Jan 14, 2020
bde5c21
instance_segmentation: fix
Wovchena Jan 14, 2020
aaefa4b
update demo: rewrite description
Jan 14, 2020
50d9339
update demo: renamed description 2
Jan 14, 2020
2ad8de7
update demo: update README.md
Jan 14, 2020
81b3cbd
Fixed comments
ilyachur Jan 15, 2020
db020cd
add ctc beam search decoder
FengYen-Chang Jan 15, 2020
c150788
Merge pull request #766 from IRDonch/pillow-6
Jan 15, 2020
ce2b746
Fix typo: ouput
Jan 15, 2020
de0b021
Fix typo: embedings
Jan 15, 2020
0233781
Merge pull request #769 from IRDonch/typos
Jan 15, 2020
d83e24a
face-recognition-mobilefacenet-arcface: fix the documented output size
Jan 15, 2020
28f3f0d
AC configs: replace daaset for person-detection-asl-0001 (#772)
eaidova Jan 15, 2020
4a6f98b
Added option to show example of gesture for ASL demo
Jan 13, 2020
88fa398
Initial review
aalborov Jan 15, 2020
45be162
AC configs: set U8 input precision for semantic-segmentation-adas-000…
eaidova Jan 16, 2020
78f71c7
Merge pull request #767 from Wovchena/demos-instance_segmentation-fix
Jan 16, 2020
cc4dc2b
Replace a deprecated MO option with its successor in MO configs
Jan 17, 2020
65b5f0c
Publish new versions of Intel models
Jan 17, 2020
5daf6ca
Merge pull request #778 from IRDonch/replace-deprecated-option
Jan 17, 2020
399459c
AC: fix nifti reader (#779)
eaidova Jan 17, 2020
335c120
Merge pull request #780 from IRDonch/new-models
vladimir-dudnik Jan 17, 2020
d4e0da6
use struct instead class and move to internal, rename paras and func
FengYen-Chang Jan 19, 2020
f27d665
replace 'logic_error' by 'invalid_argument'
FengYen-Chang Jan 19, 2020
c2e6918
use std::min replace if/else
FengYen-Chang Jan 19, 2020
45308a7
update AC config and docs for person-detection-asl-0001
druzhkov-paul Jan 20, 2020
ee98cdc
Update demos/human_pose_estimation_demo/src/human_pose_estimator.cpp
ilyachur Jan 20, 2020
c4c47f6
Merge pull request #771 from IRDonch/arcface-size
Jan 20, 2020
d3007c9
text-image-super-resolution-0001: fix the documented input shape
Jan 17, 2020
efa7c62
use output name from network info
Ilya-Krylov Jan 20, 2020
27fdda5
removed extra normalization as it is done in the network
Ilya-Krylov Jan 20, 2020
cf9531d
Merge pull request #762 from ilyachur/feature/ichuraev/fix_deprecation
Jan 20, 2020
1311808
Merge pull request #783 from IRDonch/tisr-input-size
Jan 20, 2020
48b2d24
Merge pull request #784 from Ilya-Krylov/fix/ik/image_retrieval_demo
Jan 20, 2020
478da1e
patch the string to vector<int> and check the prob_blank to avoid the…
FengYen-Chang Jan 21, 2020
8df3b2b
change bandwith type from int to uint
FengYen-Chang Jan 21, 2020
fae48bf
add ctc description
FengYen-Chang Jan 21, 2020
0de44e7
pedestrian_tracker: disable dyn batch
Wovchena Jan 21, 2020
1e30bab
crossroad_camera: replace person-reidentification-retail 0079 with 0031
Wovchena Jan 21, 2020
fe6c985
Fixed comments
Jan 21, 2020
f5d84f5
Merge pull request #786 from Wovchena/crossroad_camera-update-model-used
Jan 21, 2020
6cf85f9
Fixes
aalborov Jan 21, 2020
a907af3
fix
aalborov Jan 21, 2020
18592ff
Fixed multiple output network processing
Jan 21, 2020
bb5b696
Update product-detection-0001.md
aalborov Jan 21, 2020
1878558
Update text-spotting-0001-detector.md
aalborov Jan 21, 2020
5cb37fa
Update efficientnet-b0-pytorch.md
aalborov Jan 21, 2020
896e4ac
Update efficientnet-b0.md
aalborov Jan 21, 2020
e6f993b
2 more models
aalborov Jan 21, 2020
5d5a121
remove comments and make last candidate as const
FengYen-Chang Jan 21, 2020
319c4c3
add more detail explanation for flag '-b'
FengYen-Chang Jan 21, 2020
bfc2c98
change function softmax
FengYen-Chang Jan 21, 2020
e25e5ca
Update metrics for model 0200
Jan 21, 2020
4559366
AC: fix brain-tumor-segmentation-0002 (#787)
eaidova Jan 22, 2020
21ae030
AC configs: fix missed metrics section in road-segmentation-adas-0001…
eaidova Jan 22, 2020
682f1c0
Merge pull request #785 from Wovchena/pedestrian_tracker-disable-dyn-…
Jan 22, 2020
35e7935
Fixes
aalborov Jan 22, 2020
19f1860
Fixes
aalborov Jan 22, 2020
9b4dceb
Fixes
aalborov Jan 22, 2020
8096303
Fixes
aalborov Jan 22, 2020
df99742
Update text-spotting-0001-detector.md
aalborov Jan 22, 2020
2434738
Merge branch 'develop' of https://github.com/opencv/open_model_zoo in…
Jan 22, 2020
4496075
update model: added accuracy
Jan 22, 2020
7a07067
Fixed comments
Jan 23, 2020
304a69d
fix
aalborov Jan 23, 2020
e9512f1
Merge branch 'develop' of https://github.com/aalborov/open_model_zoo …
aalborov Jan 23, 2020
22bd48c
Merge pull request #773 from aalborov/develop
Jan 23, 2020
9ba0102
update AC: update path format
Jan 23, 2020
274a95a
Merge pull request #763 from evgeny-izutov/feature/ei/asldemo_examples
Jan 23, 2020
b683399
object_detection_demo_centernet: make compatible with NumPy < 1.15
Jan 23, 2020
aeaeb50
single-human-pose-estimation-0001: use correct base dirs in the config
Jan 23, 2020
b8c4d29
Merge pull request #794 from IRDonch/shpe-dl-dir
Jan 24, 2020
8699189
Merge pull request #793 from IRDonch/centernet-flip
Jan 24, 2020
d97e1f2
fix emotions-recognition-retail-0003 naming in description
eaidova Jan 24, 2020
f811196
Merge pull request #796 from eaidova/ea/emotion_recognition_bug
Jan 24, 2020
0488a37
Merge pull request #788 from DmitriySidnev/reid/0200/update_description
vladimir-dudnik Jan 24, 2020
f3df4b8
Merge pull request #782 from druzhkov-paul/update/dp/update_config_fo…
vladimir-dudnik Jan 24, 2020
6432c05
Publish new versions of Intel models
Jan 24, 2020
2e7d42a
Merge pull request #797 from IRDonch/new-models
Jan 24, 2020
8ca4c7a
optimize
FengYen-Chang Jan 25, 2020
00387eb
update accuracy metrics and description
Jan 26, 2020
bf83cb3
demos/monitors: beautify
Wovchena Jan 28, 2020
1d733a0
update demo: update materics value
Jan 28, 2020
7e72be3
Update models/public/colorization-v2-norebal/colorization-v2-norebal.md
Jan 28, 2020
a9e6bd0
Update models/public/colorization-v2/colorization-v2.md
Jan 28, 2020
97f770e
Bump the version for the next release
Jan 29, 2020
45a3159
Remove cpu_extension compatibility code
Jan 24, 2020
b003799
Merge pull request #801 from IRDonch/ver-2020.2
Jan 29, 2020
3fef82a
Merge pull request #768 from FengYen-Chang/CTCBS
Jan 29, 2020
160b881
Merge pull request #802 from IRDonch/bye-cpu-ext
Jan 29, 2020
0f0160d
Merge pull request #760 from opencv/vs/resnet18_config
Jan 29, 2020
3b0a717
demos/object_detection_demo_faster_rcnn: untie DetectionOutputPostPro…
Nov 21, 2019
5f36839
demos/object_detection_demo_faster_rcnn: turn most parameters into co…
Nov 27, 2019
da8ad70
Fixed compilation on CentOS
ilya-lavrenov Jan 30, 2020
fbaad9f
AC: extract formatted result and metric names from presenter (#764)
eaidova Jan 30, 2020
0f6b8fb
AC: integrate Fashion MNIST annotation converter (#781)
eaidova Jan 30, 2020
a32350b
add ac configs
Jan 30, 2020
60afd4d
fix paddings
Jan 30, 2020
ac18a3e
Merge pull request #651 from IRDonch/faster-rcnn-simplification
Jan 30, 2020
8097e43
fixes
Jan 30, 2020
7a01a04
Merge pull request #804 from ilya-lavrenov/il/fix-centos
Jan 30, 2020
898a285
AC: update requirements for numpy
eaidova Jan 30, 2020
13ebb7b
Merge pull request #806 from eaidova/ea/numpy_req
Jan 30, 2020
3437ecb
segmentation: update
Wovchena Jan 30, 2020
54f0ee4
Revert "requirements-pytorch.in: work around a torchvision bug"
Jan 29, 2020
1384c8e
Bump all dependency versions
Jan 29, 2020
c1de131
segmentation: fix for Windows
Wovchena Jan 30, 2020
e5fff87
AC: don't use the deprecated np.matrix class
Jan 30, 2020
6abf68f
segmentation: fix README.md and the test
Wovchena Jan 30, 2020
e26dfab
segmentation: add using namespace InferenceEngine; update README.md
Wovchena Jan 30, 2020
4fd6905
Merge pull request #808 from IRDonch/np-matrix
eaidova Jan 30, 2020
470b2fe
Merge pull request #805 from jkamelin/jk/ac_configs
eaidova Jan 30, 2020
18a6ccd
Merge pull request #803 from IRDonch/dependency-updates
Jan 30, 2020
5cc523b
AC: fix a divide-by-zero warning in AverageMeter
Jan 30, 2020
64d0b7a
Merge pull request #809 from IRDonch/divide-by-zero
eaidova Jan 30, 2020
1b929e8
Update demos/segmentation_demo/main.cpp
Wovchena Jan 30, 2020
ca778c0
add voc2012 without background to dataset definitions
vladimir-dudnik Jan 30, 2020
d22f089
Merge pull request #811 from opencv/dataset_definitions
eaidova Jan 30, 2020
2d0a84e
demos/monitors: fix
Wovchena Jan 30, 2020
bbce8ad
AC: support CIFAR100 dataset
eaidova Jan 31, 2020
081eb75
Merge pull request #812 from eaidova/ea/cifar
eaidova Jan 31, 2020
7106076
Descriptions for public modes are auto updated
eizamaliev Jan 31, 2020
01c5738
R-FCN-Resnet-101 from TensorFlow
eizamaliev Jan 27, 2020
2a46d0d
Merge pull request #800 from Wovchena/demos-monitors-beautify
Jan 31, 2020
c722740
AC: extend NLP support (#757)
eaidova Jan 31, 2020
32d1da5
AC: sharing bitstream from previous run (#777)
eaidova Jan 31, 2020
a1c5894
Model added to index
eizamaliev Jan 31, 2020
f567eea
AC: remove durty hack for channels alignment in launcher (#817)
eaidova Feb 3, 2020
af359e4
segmentation: update comments, add -delay, report latency
Wovchena Feb 3, 2020
30455d4
Merge pull request #815 from eizamaliev/r_fcn
Feb 3, 2020
8d8d5f0
AC: retrun back to numpy 1.17.5 (#819)
eaidova Feb 3, 2020
25d1422
mask_rcnn_demo: use the documented output of the models
Feb 3, 2020
64f57d7
AC: separate dependencies installation (#816)
eaidova Feb 4, 2020
1a79391
AC: support SRGAN (#821)
eaidova Feb 4, 2020
d1c8ac8
add models
Jan 31, 2020
8d12e46
add googlenet v1 config
Feb 4, 2020
7512f9b
add links
Feb 4, 2020
58fb9fe
fix
Feb 4, 2020
4354218
fix paths
Feb 4, 2020
20c31a5
fix paths
Feb 4, 2020
33e5ccd
Fix pillow resize (#824)
eaidova Feb 4, 2020
ca35507
AC: revise result extraction (#822)
eaidova Feb 5, 2020
febea7c
fixes
Feb 5, 2020
e1c65a0
AC: added support numpy files for action recognition (#825)
eaidova Feb 6, 2020
edeaa64
Merge pull request #356 from allnes/an/colorization-net
Feb 6, 2020
f064116
Merge pull request #807 from Wovchena/segmentation-update
Feb 6, 2020
30b7911
Merge pull request #820 from IRDonch/reshape-do-2d
Feb 6, 2020
ba4ab51
demos: Remove unnecessary line continuations
Feb 3, 2020
330202e
demos: fix cppcheck warnings about reducible variable scope
Sep 5, 2019
cb6d7e3
demos: fix performance warnings from Cppcheck
Sep 6, 2019
e6e310a
demos: fix various Cppcheck style warnings
Feb 5, 2020
a2c347a
human_pose_estimation_demo: replace asctime with strftime
Feb 5, 2020
667b47a
demos: drop unused functions
Feb 5, 2020
f5a6b55
Merge pull request #828 from IRDonch/rm-line-continuations
Feb 6, 2020
190de38
security_barrier_camera_demo: make InferRequestsContainer uncopyable
Feb 5, 2020
63c43e3
pedestrian_tracker_demo: remove unused variables
Feb 5, 2020
4540eae
Merge pull request #813 from eizamaliev/doc_update
Feb 6, 2020
3a937e7
Merge pull request #829 from IRDonch/cppcheck
Feb 6, 2020
572ca92
downloader: remove the --config option
Feb 6, 2020
7816495
security_barrier_camera: threadPull->threadPool, update README.md
Wovchena Feb 7, 2020
b305f01
AC: Move the test requirement list to a file
Feb 7, 2020
c9e247f
IMDB annotation for XLNet accuracy test fixes. (#831)
mzuevx Feb 7, 2020
009546c
Merge pull request #832 from Wovchena/security_barrier_camera-wording
Feb 7, 2020
e5f4f47
Merge pull request #830 from IRDonch/rm-big-config
Feb 7, 2020
d3ce8bb
Add a file with pinned versions of Accuracy Checker's test dependencies
Feb 7, 2020
61bc91f
Merge pull request #834 from IRDonch/ac-test-deps
Feb 7, 2020
7f476fa
AC: fix CIFAR100 conversion (#835)
eaidova Feb 8, 2020
5dcebe4
improved docs
Feb 10, 2020
ff4251c
add unet-camvid-onnx-0001 description
vladimir-dudnik Feb 10, 2020
5ce86ae
updates
Feb 11, 2020
3915c64
demos/README.md: fix broken link to the CenterNet demo
Feb 11, 2020
346464a
set tf version
jkamelin Feb 11, 2020
b615028
set tf version
jkamelin Feb 11, 2020
848ad1f
Merge pull request #841 from IRDonch/centernet-link
Feb 11, 2020
7b9f72a
Merge pull request #823 from jkamelin/jk/2020.1_public_models
Feb 11, 2020
6b9680d
AC: Make tests compatible with latest pytest
Feb 11, 2020
f63af44
Update Accuracy Checker test dependencies
Feb 11, 2020
4168307
AC: Set the pytest JUnit report format to 2
Feb 11, 2020
1c25cab
add GFLOPs and MParams info
vladimir-dudnik Feb 11, 2020
0719813
add GFlops/MParams to model description
vladimir-dudnik Feb 11, 2020
00ce7ff
Updated ASL Recognition model to the new one
Feb 12, 2020
3748558
AC: handle paths in tests OS agnostic
eaidova Feb 12, 2020
fbb7d2d
Merge pull request #846 from eaidova/ea/ac_tests_win
Feb 12, 2020
fc8d69b
Merge pull request #844 from IRDonch/update-pytest
Feb 12, 2020
d79d54b
downloader: remove unused function parameters
Feb 12, 2020
88f882f
Replace unintentional Cyrillic C characters with Latin ones
Feb 12, 2020
dd29dac
Replace unnecessary non-ASCII characters with ASCII ones
Feb 12, 2020
d3ab54a
AC: Replace non-ASCII characters with escapes
Feb 12, 2020
2c23c6c
AC: introduce config parameter for isolated location segmentation mas…
eaidova Feb 13, 2020
e5e98ff
Added "cells" parameter to yolo-v2 adapter (#849)
eizamaliev Feb 13, 2020
78703db
AC: fix input transformation for FPGA (#850)
eaidova Feb 13, 2020
5202e3c
downloader: hash files while they're downloading
Feb 12, 2020
d4cf372
Merge pull request #847 from IRDonch/hash-while-downloading
Feb 13, 2020
b2e0554
[Public models]: fix typo in model.yml
eaidova Feb 13, 2020
87fddc8
Merge pull request #851 from eaidova/fix_reverse_input_channel
Feb 13, 2020
c2a3b18
demos: fix the languages specified for code blocks in the docs
Feb 13, 2020
44d302a
AC: fix annotation meta
eaidova Feb 13, 2020
8cf9c46
Merge pull request #839 from vladimir-dudnik/vd/unet-camvid-onnx-0001
Feb 13, 2020
27c05d0
Merge pull request #848 from IRDonch/asciify
Feb 13, 2020
b54fe73
Merge branch 'develop' into sbcd-hddl-hint
Feb 13, 2020
8e5916d
security_barrier_camera_demo/README.md: reformat the VAD hints
Feb 13, 2020
fdb1d41
Merge pull request #854 from IRDonch/sbcd-hddl-hint
Feb 13, 2020
b411dfa
Merge pull request #853 from IRDonch/code-block-langs
Feb 13, 2020
66113be
Add a script to update ci/requirements-*.txt
Feb 12, 2020
5f7949c
Merge pull request #855 from IRDonch/update-reqs
Feb 13, 2020
2256208
fix dummy launcher (#857)
eaidova Feb 14, 2020
ffa43db
Merge pull request #845 from evgeny-izutov/feature/ei/update_aslnet_m…
Feb 14, 2020
a396f5f
Merge branch 'develop' into Smart-Library
FenixFly Feb 16, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,19 @@
/demos/build_demos_msvc.bat omz.package=w
/demos/tests/** -omz.package
/tools/downloader/tests/** -omz.package

/ci/requirements-ac.txt omz.ci.job-for-change.ac
/ci/requirements-ac-test.txt omz.ci.job-for-change.ac
/ci/requirements-conversion.txt omz.ci.job-for-change.demos omz.ci.job-for-change.models
/ci/requirements-demos.txt omz.ci.job-for-change.demos
/ci/requirements-downloader.txt omz.ci.job-for-change.demos omz.ci.job-for-change.models

/demos/** omz.ci.job-for-change.demos
/demos/**/*.md -omz.ci.job-for-change.demos

/models/** omz.ci.job-for-change.documentation
/models/**/*.yml -omz.ci.job-for-change.documentation

/tools/accuracy_checker/** omz.ci.job-for-change.ac
/tools/downloader/** omz.ci.job-for-change.downloader
/tools/**/*.md -omz.ci.job-for-change.ac -omz.ci.job-for-change.downloader
276 changes: 276 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
# How to Contribute Models to Open Model Zoo

We appreciate your intention to contribute model to the OpenVINO&trade; Open Model Zoo (OMZ). OMZ is licensed under the Apache\* License, Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms. Note that we accept models under permissive licenses, such as **MIT**, **Apache 2.0**, and **BSD-3-Clause**. Otherwise, it might take longer time to get your model approved.

Frameworks supported by the Open Model Zoo:
* Caffe\*
* Caffe2\* (via conversion to ONNX\*)
* TensorFlow\*
* PyTorch\* (via conversion to ONNX\*)
* MXNet\*

Open Model Zoo also supports models already in the ONNX format.

## Pull Request Requirements

To contribute to OMZ, create a pull request (PR) in this repository using the `develop` branch.
Pull requests are strictly formalized and are reviewed by the OMZ maintainers for consistence and legal compliance.

Each PR contributing a model must contain:
* [configuration file `model.yml`](#configuration-file)
* [documentation of model in markdown format](#documentation)
* [accuracy validation configuration file](#accuracy-validation)
* (*optional*) [demo](#demo)

Follow the rules in the sections below before submitting a pull request.

### Model Name

Name your model in OMZ according to the following rules:
- Use a name that is consistent with an original name, but complete match is not necessary
- Use lowercase
- Use `-`(preferable) or `_` as delimiters, for spaces are not allowed
- Add a suffix according to framework identifier (see **`framework`** description in the [configuration file](#configuration-file) section for examples), if the model is a reimplementation of an existing model from another framework

This name will be used for downloading, converting, and other operations.
Examples of model names:
- `resnet-50-pytorch`
- `mobilenet-v2-1.0-224`

### Files Location

Place your files as shown in the table below:

File | Destination
---|---
configuration file | `models/public/<model_name>/model.yml`
documentation file | `models/public/<model_name>/<model_name>.md`
validation configuration file|`tools/accuracy_checker/configs/<model_name>.yml`
demo|`demos/<demo_name>`<br>or<br>`demos/python_demos/<demo_name>`

### Tests

Your PR must pass next tests:
* Model is downloadable by the `tools/downloader/downloader.py` script. See [Configuration file](#configuration-file) for details.
* Model is convertible by the `tools/downloader/converter.py` script. See [Model conversion](#model-conversion) for details.
* Model is usable by demo or sample and provides adequate results. See [Demo](#demo) for details.
* Model passes accuracy validation. See [Accuracy validation](#accuracy-validation) for details.


### PR Rejection

Your PR may be rejected in some cases, for example:
* If a license is inappropriate (such as GPL-like licenses).
* If a dataset is inaccessible.
* If the PR fails one of the tests above.

## Configuration File

The model configuration file contains information about model: what it is, how to download it, and how to convert it to the IR format. This information must be specified in the `model.yml` file that must be located in the model subfolder.

The detailed descriptions of file entries provided below.

**`description`**

Description of the model. Must match with the description from the model [documentation](#documentation).

**`task_type`**

[Model task type](tools/downloader/README.md#model-information-dumper-usage). If there is no task type of your model, add a new one to the list `KNOWN_TASK_TYPES` of the [tools/downloader/common.py](tools/downloader/common.py) file.

**`files`**

> **NOTE**: Before filling this section, make sure that the model can be downloaded either via a direct HTTP(S) link or from Google Drive\*.

Downloadable files. Each file is described by:

* `name` - sets a file name after downloading
* `size` - sets a file size
* `sha256` - sets a file hash sum
* `source` - sets a direct link to a file *OR* describes a file access parameters

> **TIP**: You can obtain a hash sum using the `sha256sum <file_name>` command on Linux\*.

If file is located on Google Drive\*, the `source` section must contain:
- `$type: google_drive`
- `id` file ID on Google Drive\*

> **NOTE:** If file is on GitHub\*, use the specific file version.

**`postprocessing`** (*optional*)

Post processing of the downloaded files.

For unpacking archive:
- `$type: unpack_archive`
- `file` — Archive file name
- `format` — Archive format (zip | tar | gztar | bztar | xztar)

For replacement operation:
- `$type: regex_replace`
- `file` — Name of file to run replacement in
- `pattern` — [Regular expression](https://docs.python.org/3/library/re.html)
- `replacement` — Replacement string
- `count` (*optional*) — Exact number of replacements (if number of `pattern` occurrences less then this number, downloading will be aborted)

**`conversion_to_onnx_args`** (*only for Caffe2\*, PyTorch\* models*)

List of ONNX\* conversion parameters, see `model_optimizer_args` for details.

**`model_optimizer_args`**

Conversion parameters (learn more in the [Model conversion](#model-conversion) section). For example:
```
- --input=data
- --mean_values=data[127.5]
- --scale_values=data[127.5]
- --reverse_input_channels
- --output=prob
- --input_model=$conv_dir/googlenet-v3.onnx
```

> **NOTE:** Do not specify `framework`, `data_type`, `model_name` and `output_dir`, since they are deduced automatically.

> **NOTE:** `$dl_dir` used to substitute subdirectory of downloaded model and `$conv_dir` used to substitute subdirectory of converted model.

**`framework`**

Framework of the original model (see [here](tools/downloader/README.md#model-information-dumper-usage) for details).

**`license`**

URL of the model license.

### Example

This example shows how to download the classification model [DenseNet-121*](models/public/densenet-121-tf/model.yml) pretrained in TensorFlow\* from Google Drive\* as an archive.

```
description: >-
This is a TensorFlow\* version of `densenet-121` model, one of the DenseNet
group of models designed to perform image classification. The weights were converted
from DenseNet-Keras Models. For details see repository <https://github.com/pudae/tensorflow-densenet/>,
paper <https://arxiv.org/pdf/1608.06993.pdf>
task_type: classification
files:
- name: tf-densenet121.tar.gz
size: 30597420
sha256: b31ec840358f1d20e1c6364d05ce463cb0bc0480042e663ad54547189501852d
source:
$type: google_drive
id: 0B_fUSpodN0t0eW1sVk1aeWREaDA
postprocessing:
- $type: unpack_archive
format: gztar
file: tf-densenet121.tar.gz
model_optimizer_args:
- --reverse_input_channels
- --input_shape=[1,224,224,3]
- --input=Placeholder
- --mean_values=Placeholder[123.68,116.78,103.94]
- --scale_values=Placeholder[58.8235294117647]
- --output=densenet121/predictions/Reshape_1
- --input_meta_graph=$dl_dir/tf-densenet121.ckpt.meta
framework: tf
license: https://raw.githubusercontent.com/pudae/tensorflow-densenet/master/LICENSE
```

## Model Conversion

Deep Learning Inference Engine (IE) supports models in the Intermediate Representation (IR) format. A model from any supported framework can be converted to IR using the Model Optimizer tool included in the OpenVINO&trade; toolkit. Find more information about conversion in the [Model Optimizer Developer Guide](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html). After a successful conversion you get a model in the IR format, with the `*.xml` file representing the net graph and the `*.bin` file containing the net parameters.

> **NOTE 1**: Image preprocessing parameters (mean and scale) must be built into a converted model to simplify model usage.

> **NOTE 2**: If a model input is a color image, color channel order should be `BGR`.

## Demo

A demo shows the main idea of how to infer a model using IE. If your model solves one of the tasks supported by the Open Model Zoo, try to find an appropriate option from [demos](demos/README.md) or [samples](https://docs.openvinotoolkit.org/latest/_docs_IE_DG_Samples_Overview.html). Otherwise, you must provide your own demo (C++ or Python).

The demo's name should end with `_demo` suffix to follow the convention of the project.

Demos are required to support the following keys:

- `-i "<input>"`: Required. Input to process.
- `-m "<path>"`: Required. Path to an .xml file with a trained model. If the demo uses several models at the same time, use other keys prefixed with `-m_`.
- `-d "<device>"`: Optional. Specifies a target device to infer on. CPU, GPU, FPGA, HDDL or MYRIAD is acceptable. Default must be CPU. If the demo uses several models at the same time, use keys prefixed with `d_` (just like keys `m_*` above) to specify device for each model.
- `-no_show`: Optional. Do not visualize inference results.

> **TIP**: For Python, it is preferable to use `--` instead of `-` for long keys.

You can also add any other necessary parameters.

Add `README.md` file, which describes demo usage. Update [demos' README.md](demos/README.md) adding your demo to the list.

## Accuracy Validation

Accuracy validation can be performed by the [Accuracy Checker](./tools/accuracy_checker) tool. This tool can use either IE to run a converted model, or an original framework to run an original model. Accuracy Checker supports lots of datasets, metrics and preprocessing options, which simplifies validation if a task is supported by the tool. You only need to create a configuration file that contains necessary parameters for accuracy validation (specify a dataset and annotation, pre- and post-processing parameters, accuracy metrics to compute and so on) of converted model. For details, refer to [Testing new models](./tools/accuracy_checker#testing-new-models).

If a model uses a dataset which is not supported by the Accuracy Checker, you also must provide the license and the link to it and mention it in the PR description.

When the configuration file is ready, you must run the Accuracy Checker to obtain metric results. If they match your results, that means conversion was successful and the Accuracy Checker fully supports your model, metric and dataset. Otherwise, recheck the [conversion](#model-conversion) parameters or the validation configuration file.

### Example

This example uses one of the files from `tools/accuracy_checker/configs` — validation configuration file for [DenseNet-121](tools/accuracy_checker/configs/densenet-121-tf.yml)\* from TensorFlow\*:
```
models:
- name: densenet-121-tf
launchers:
- framework: dlsdk
tags:
- FP32
model: public/densenet-121-tf/FP32/densenet-121-tf.xml
weights: public/densenet-121-tf/FP32/densenet-121-tf.bin
adapter: classification

- framework: dlsdk
tags:
- FP16
model: public/densenet-121-tf/FP16/densenet-121-tf.xml
weights: public/densenet-121-tf/FP16/densenet-121-tf.bin
adapter: classification

datasets:
- name: imagenet_1000_classes
preprocessing:
- type: resize
size: 256
- type: crop
size: 224
```


## Documentation

Documentation is a very important part of model contribution as it helps to better understand the possible usage of the model. Documentation must be named in accordance with the name of the model.
The documentation should contain:
* description of a model
* main purpose
* features
* references to a paper or/and a source
* model specification
* type
* framework
* GFLOPs (*if available*)
* number of parameters (*if available*)
* validation dataset description and/or a link
* main accuracy values (also description of a metric)
* detailed description of input and output for original and converted models
* the model's licensing terms

Learn the detailed structure and headers naming convention from any model documentation (for example, [alexnet](./models/public/alexnet/alexnet.md)).

## Legal Information

[\*] Other names and brands may be claimed as the property of others.

OpenVINO is a trademark of Intel Corporation or its subsidiaries in the U.S. and/or other countries.

Copyright &copy; 2018-2019 Intel Corporation

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.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# [OpenVINO™ Toolkit](https://01.org/openvinotoolkit) - Open Model Zoo repository
[![Build Status](http://134.191.240.124/buildStatus/icon?job=omz/2018/trigger)](http://134.191.240.124/job/omz/job/2018/job/trigger/)
[![Stable release](https://img.shields.io/badge/version-2019_R3.1-green.svg)](https://github.com/opencv/open_model_zoo/releases/tag/2019_R3.1)
[![Stable release](https://img.shields.io/badge/version-2020.2-green.svg)](https://github.com/opencv/open_model_zoo/releases/tag/2020.2)
[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/open_model_zoo/community)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)

Expand Down Expand Up @@ -34,6 +33,8 @@ We welcome community contributions to the Open Model Zoo repository. If you have
* In case of a larger feature, provide a relevant demo.
* Submit a pull request at https://github.com/opencv/open_model_zoo/pulls

You can find additional information about model contribution [here](CONTRIBUTING.md).

We will review your contribution and, if any additional fixes or modifications are needed, may give you feedback to guide you. When accepted, your pull request will be merged into the GitHub* repositories.

Open Model Zoo is licensed under Apache License, Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contribution under these terms.
Expand Down
72 changes: 72 additions & 0 deletions ci/get-jobs-for-changes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/usr/bin/python3

# Copyright (c) 2019 Intel Corporation
#
# 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.

"""
A script that prints a JSON description of the CI jobs necessary to validate
the changes made between a base commit and the current commit.

The output format is a an object where each key is the identifier of the job
and the corresponding value represents that job's parameters. The value
is usually just "true" (which just means that the job should be run), but
for the "models" job the value can be an array of names of models that should
be validated.
"""

import argparse
import json
import re
import subprocess
import sys

from pathlib import Path, PurePosixPath

RE_ATTRIB_NAME = re.compile(r"omz\.ci\.job-for-change\.(.+)")

def group_by_n(iterable, n):
return zip(*[iter(iterable)] * n)

def main():
parser = argparse.ArgumentParser()
parser.add_argument('base_commit', metavar='COMMIT')
args = parser.parse_args()

git_diff_output = subprocess.check_output(
["git", "diff", "--name-only", "-z", args.base_commit + "...HEAD"])
changed_files = list(map(PurePosixPath, git_diff_output.decode()[:-1].split("\0")))

models_dir = PurePosixPath("models")

jobs = {}

for changed_file in changed_files:
if models_dir in changed_file.parents and changed_file.name == "model.yml":
if Path(changed_file).exists(): # it might've been deleted in the branch
jobs.setdefault("models", []).append(changed_file.parent.name)

git_check_attr_output = subprocess.run(
["git", "check-attr", "--stdin", "-z", "--all"],
input=git_diff_output, stdout=subprocess.PIPE, check=True).stdout

for path, attribute, value in group_by_n(git_check_attr_output.decode()[:-1].split("\0"), 3):
attribute_match = RE_ATTRIB_NAME.fullmatch(attribute)
if value != 'unset' and attribute_match:
jobs[attribute_match.group(1)] = True

json.dump(jobs, sys.stdout)
print()

if __name__ == "__main__":
main()
Loading