Commit Graph

19 Commits

Author SHA1 Message Date
Mikhail Nosov e2172cd38a
[OV2.0] Preprocessing api cleanup (#8898)
* Removed 'inline' Preprocessing API

Even though this API provided a way to specify all pre/post-processing in one line - it was considered inconvinient
With 'getters' API preprocessing code looks more clear for user, so old' inline' API is removed

* Fix pyopenvino build issues

* Update after merged PR#8717
2021-11-30 12:30:13 +03:00
Mikhail Nosov c29569ecbd
[TemplateFuncTests] RGBX->RGB: Increase image size to avoid test failures on some platforms (#8762)
* Increase image size to avoid test failures on some platforms

There is an assert 'length >= nlanes' and 'nlanes' value depends on machine architecture
Set 320x320 test image to guarantee that image size >= nlanes

Also increased image size for 'plugin shared tests' to ensure the same (even though tests do not work with legacy preprocessing)

* Descreased to 160x160
2021-11-23 15:26:22 +03:00
Mikhail Nosov 7545af07d0
Preprocessing: convert color RGBX/BGRX -> RGB/BGR implementation (#8755) 2021-11-23 10:29:00 +03:00
Mikhail Nosov aaac5de2fa
[OV2.0] I420 preprocessing color format support (#8680)
* Add I420 preprocessing

Tests:
- Template reference
- OpenCV
- Legacy Preprocessing tests
- Functional shared tests for plugins (CPU)
- Disable i420 preprocessing tests on GPU

* clang-format fix
2021-11-18 23:30:44 +03:00
Ilya Lavrenov 90e10e369d
Configurable G-API preprocessing in static build (#8631)
* Added cmake option todisable G-API preprocessing

* Enabled PDPD, TF on Windows

* Revert "Enabled PDPD, TF on Windows"

This reverts commit 2851cba056.
2021-11-18 16:40:53 +03:00
Mikhail Nosov c2d09afab9
PreProcess API change: (#8629)
- PrePostProcessor takes 'function' argument in constructor
- PrePostProcessor::build() doesn't take any function anymore
- PrePostProcessor::input() method to get reference to input
- PrePostProcessor::output() method to get reference to output
- InputInfo - add getters of tensor, preprocess, network
- OutputInfo - add getters of tensor, preprocess, network

Samples:
ClassificationSampleAsync - use new getters

Inference engine:
- Use new getters in ie_network_reader.cpp

TODO: Consider removal of builder-like API in PrePostProcessor, InputInfo, OutputInfo
2021-11-17 00:51:19 +03:00
Mikhail Nosov a2a8969201
[OV20] Enable OpenCV tests and support 'u8' type for Interpolate op (#8182)
* Interpolate reference implementation:
- Support u8 and other numeric types
- For integral types - round result to nearest integer (don't cast)
Preprocessing: enable OpenCV tests and add resize conformance tests with OpenCV

* Revert changes in interpolate.cpp, making them minimal needed (added u8 resize)
2021-10-27 20:56:43 +03:00
Mikhail Nosov d65e7d4d4f
[OV20] Preprocessing: convert_layout<std::vector<uint64_t>> implementation (#8213)
* Preprocessing: convert_layout<std::vector<uint64_t>> implementation

User is able to use this version without specifying layout explicitly

Same version of convert_layout is added for post-processing

Added usage of new convert_layout to ie_network_reader

* Fix review comment
2021-10-27 11:32:44 +03:00
Mikhail Nosov d39fe50470
[OV20] Preprocessing: reverse_channels and RGB<->BGR conversion (#8098)
* Initial draft

* Support of dynamic shapes
2021-10-21 11:22:43 +03:00
Mikhail Nosov e976a221f5
[OV2.0 Preprocessing] NV12 ref implementation fixes + tests with legacy CNNNetwork (#7985)
* NV12 Ref impl: Align with Legacy NV12 conversion
Little-endian tricks are completely not needed finally

Basic tests of OV20 preprocessing vs Legacy preprocessing:
- Mean/Scale
- Resize (Linear vs Bilinear)
- NV12 color conversion

* Register Template plugin in legacy core before CNNNetwork compliance test
NV12: round to nearest integer for 'u8' mode
Fix preprocess-reference NV12 tests (swap U & V)

* Decreased default threshold and use random distribution for inputs generation

* Added tests RefImpl vs OpenCV - NV12 color conversion
Added CPU accuracy tests + nightly (including all RGB color combinations)

* Fix build issue after rebase

* Remove test code

* Fix comments
Disable OpenCV tests on CI (some machines can't load opencv_imgproc during test)
2021-10-20 13:39:46 +03:00
Mikhail Nosov 2592856200
[OV2.0] Leftovers for Preprocessing/input/output (#7893)
* Pre-process:
- Implicit conversions for element type and layout
- 'convert_element_type' with default argument to network
- Convert_element_type - don't add ops if dst and src types are same
- Convert_layout - don't add ops if dst and src layouts are same
- Custom step - use Output<Node> instead of shared_ptr<Node>
- Support of addressing input by tensor name

Post-process:
- Avoid duplication of tensor names after post-processing

* Fixed IE tests
2021-10-08 12:58:29 +03:00
Mikhail Nosov e20cefb620
PrePostProcessor.output() - first implementation of post-processing (#7866)
* PrePostProcessor.output() - first implementation of post-processing
Supported convert_layout, convert_element_type and custom operations

* Fix review comments

* Added test for pre and post processing together
Fix clang-format

* Move 'validate_and_infer_types' before post-processing
2021-10-06 21:17:10 +03:00
Mikhail Nosov f57dc05c66
[OV20] Convert NV12 to RGB operation + preprocessing (#7508)
* # Conflicts:
#	docs/template_plugin/tests/functional/op_reference/convert_color_nv12.cpp
#	inference-engine/tests/functional/plugin/cpu/shared_tests_instances/single_layer_tests/convert_color_nv12.cpp
#	inference-engine/tests/functional/shared_test_classes/include/shared_test_classes/single_layer/convert_color_nv12.hpp
#	inference-engine/tests/functional/shared_test_classes/src/single_layer/convert_color_nv12.cpp
#	ngraph/core/include/openvino/core/preprocess/input_tensor_info.hpp
#	ngraph/core/include/openvino/core/preprocess/preprocess_steps.hpp
#	ngraph/core/include/openvino/op/nv12_to_bgr.hpp
#	ngraph/core/include/openvino/op/nv12_to_rgb.hpp
#	ngraph/core/src/op/nv12_to_bgr.cpp
#	ngraph/core/src/op/nv12_to_rgb.cpp
#	ngraph/core/src/preprocess/pre_post_process.cpp
#	ngraph/core/src/preprocess/preprocess_steps_impl.hpp
#	ngraph/test/CMakeLists.txt

* Added more test to cover 100% of code
Allow convert element type for 'multi-plane' color format

* Inherit tensor names for 'convert_color'

* Clang

* Fix tests

* Disable 'int8' preprocessing resize test

* Fix review comments

* Add more restrictions and tests for planes sub-names

* 1) Added check for uniqueness of tensor names generated for nodes
Raise error if user's plane sub-name conflicts with some node in a function
2) Added exception safety to preprocess build. Before, when input #2 fail, only one preprocess will be applied to function and it will be corrupted
Exception guard will restore function to original state if exception occurs

* Fix clang-format
2021-10-06 15:22:05 +03:00
Mikhail Nosov f8ed195841
Fix 'NV12 batch case' (was sporadic failure) (#7790)
Introduced 'absolute threshold' for LayerTests and BaseReferenceTests to consistently catch absolute differences
Previously, when set 'threshold=1.f' it was treated as 'allowed difference is 100%", so there was no way to allow absolute difference as 1.f
2021-10-01 20:21:52 +03:00
Mikhail Nosov 5b39e407d9
[OV2.0] Preprocessing - add 'convert_layout' (#7772)
* Preprocessing - add 'convert_layout'

* Fix comments, removed 'set_data_shape' for time being
2021-10-01 19:45:40 +03:00
Mikhail Nosov 414c3dc133
[OV2.0] Preprocessing - resize (#7583)
* Initial version

* Added 'network' layout to preprocessing info
Moved existing resize tests to template plugin

* Fix clang

* More tests for 'resize' reference implementation + CPU tests + error cases
Coverage is 100%

* Align with new base_reference_test implementation

* Fixed comments

* Add assert to check that desired size is not out of bounds

* CPU: skip failed test
2021-09-30 11:41:25 +03:00
Mikhail Nosov 4fd59f72ea
Use 'u8' element type in tests (#7704)
Use 'float32' output for 'compare with reference' tests to avoid IE precisions undesired conversions
Added GPU preprocessing tests skeleton
2021-09-29 09:46:37 +03:00
Ilya Lavrenov 65dcffe913
Reference tests use OpenVINO 2.0 headers and namespaces (#7700)
* Reference tests via OpenVINO 2.0

* Migrated to new API acos test

* Fixed other tests compilation

* Fixed tests

* Reference tests use ov::

* Fixed compilation
2021-09-28 19:19:08 +03:00
Mikhail Nosov 531118c4b0
OV2.0 Preprocessing shared tests - initial version (#7568)
* Shared preprocessing tests for plugins.
Comparing inference with reference implementation

* Moved evaluate tests to template plugin

* Fixed clang-style

* CPU tests: Set IE precision manually in SetUp. Also allow rounding to integer mismatch

* Added acceptable threshold depending on particular test
2021-09-23 23:17:59 +03:00