platform/upstream/nnstreamer.git
4 years ago[single/caffe] Enable armnn in single-shot API
Parichay Kapoor [Wed, 29 Jan 2020 10:32:05 +0000 (19:32 +0900)]
[single/caffe] Enable armnn in single-shot API

Enable support armnn for in single-shot API
Added test with caffe and tflite models

resolves #1817

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[tensor_filter] Add unittest for data layout
Parichay Kapoor [Wed, 29 Jan 2020 08:06:04 +0000 (17:06 +0900)]
[tensor_filter] Add unittest for data layout

Add unittests for added data layout property

V2:
Data layout can now be changed until the framework is opened
Once framwork is opened, updating the layouts will be supported later

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[tensor_filter] Support data layout for tensor
Parichay Kapoor [Wed, 8 Jan 2020 05:51:10 +0000 (14:51 +0900)]
[tensor_filter] Support data layout for tensor

Data layout added for tensor_filter in GstTensorFilterProperties
Four data layouts are supported
- ANY - unknown does not matter
- NHWC - referred as channels last
- NCHW - referred as channels first
- none - doesnt fit with above options
These data layouts can be different for each other/tensor in other/tensors
Layout is taken input as a string, and then parsed for each tensor
This layout is stored in tensor_filter element itself to be used by its subplugins, and not passed to other elements in the pipeline

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Filter/MvNCSDK] Revise error handling for unsupported API version
Wook Song [Wed, 29 Jan 2020 02:36:07 +0000 (11:36 +0900)]
[Filter/MvNCSDK] Revise error handling for unsupported API version

This patch revises the error handling mechanism for the API version of
MvNCSDK not supported by NNStreamer.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Fix] Skip duplicated paths from multiple conf sources
Dongju Chae [Thu, 23 Jan 2020 08:16:07 +0000 (17:16 +0900)]
[Fix] Skip duplicated paths from multiple conf sources

This commit skips duplicated paths from multiple conf sources.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years agoStyle/C++: .clang-format suggestion for C++ code.
MyungJoo Ham [Wed, 22 Jan 2020 04:09:55 +0000 (13:09 +0900)]
Style/C++: .clang-format suggestion for C++ code.

This is supposed to be applied to .cc and .hh files.

This prepares #2044

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years agoStyle/C++: use .hh extensions for C++ headers
MyungJoo Ham [Tue, 21 Jan 2020 06:13:43 +0000 (15:13 +0900)]
Style/C++: use .hh extensions for C++ headers

Let's C++ headers not comaptible with C use
.hh as their extensions.

This prepares #2044

Changes in v2
- Applied changes in the master branch.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Common/Android] add version info
Jaeyun [Mon, 20 Jan 2020 10:14:50 +0000 (19:14 +0900)]
[Common/Android] add version info

1. add new function to get the NNStreamer version string.
2. get nnstreamer version string in Android method.
3. print log about version info when initializing the nnstreamer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Spec] Minor bug fix in spec
Parichay Kapoor [Fri, 31 Jan 2020 11:38:36 +0000 (20:38 +0900)]
[Spec] Minor bug fix in spec

Add minor bug fix in spec

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Test/Cpp] cleanup build script
Jaeyun [Thu, 30 Jan 2020 06:28:39 +0000 (15:28 +0900)]
[Test/Cpp] cleanup build script

prevent build warning with googletest static library.
1. separate cpp sub-plugin and gtest
2. remove unnecessary dependency in meson

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Transform] copy tensor-info for negotiation
Jaeyun [Thu, 23 Jan 2020 08:17:21 +0000 (17:17 +0900)]
[Transform] copy tensor-info for negotiation

For caps negotiation, copy tensor info first and update necessary meta.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Fix] add type checking for gst value in tensor_converter.c
Dongju Chae [Thu, 30 Jan 2020 04:55:55 +0000 (13:55 +0900)]
[Fix] add type checking for gst value in tensor_converter.c

This commit adds type checking for the gst value, supported_formats.
When an unsupported colorspace is used, gst_value_list_get_size() has
generated unnecessary warnings.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years ago[Test] input memory to invoke filter-plugins
Jaeyun [Mon, 20 Jan 2020 09:34:05 +0000 (18:34 +0900)]
[Test] input memory to invoke filter-plugins

Set max array for input and output tensor-memory to prevent out-of-index exception.

Invoke-callback requires the array of tensor memories.
Now this does not make an error, but later if we try to generate another testcase with multi-tensors, it needs to set the array of tensor data.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Build/Android] remove unnecessary log to run android
Jaeyun [Thu, 23 Jan 2020 08:00:37 +0000 (17:00 +0900)]
[Build/Android] remove unnecessary log to run android

Currently android library does not use the configuration file.
Check null string before validating the conf file.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Build] default build option of python
Jaeyun [Thu, 23 Jan 2020 07:54:05 +0000 (16:54 +0900)]
[Build] default build option of python

disable default build option of python.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Test] Rename internal API: getTempFilename accepted/tizen/unified/20200130.214603 submit/tizen/20200128.105741
MyungJoo Ham [Mon, 20 Jan 2020 09:34:28 +0000 (18:34 +0900)]
[Test] Rename internal API: getTempFilename

Rename _get_temp_filename --> getTempFilename as it has
become an internal API.

Suggested-by: Dongju Chae <dongju.chae@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years agoTest/C++-custom-filter: Add unit test cases.
MyungJoo Ham [Fri, 17 Jan 2020 03:46:42 +0000 (12:46 +0900)]
Test/C++-custom-filter: Add unit test cases.

Unit test cases of C++ custom filters

Positive cases: 3
Negative cases: 6

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Test] Add internal APIs for unit tests
MyungJoo Ham [Fri, 17 Jan 2020 03:44:42 +0000 (12:44 +0900)]
[Test] Add internal APIs for unit tests

1. Pipeline status waiting loop
2. Get temp filename

Those functions are from unittest_sink, which will be used
by other unittest cases (c++ custom filter test cases)

Chnages v2: updated meson script for Ubuntu 16.04 errors.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Split] Fix a build warning incurred by a may-be-uninitialized variable
Wook Song [Thu, 23 Jan 2020 04:24:31 +0000 (13:24 +0900)]
[Split] Fix a build warning incurred by a may-be-uninitialized variable

This patch fixes a build warning incurred by a may-be-uninitialized
variable.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years agoFix: load the configuration even if there is no .ini file
MyungJoo Ham [Tue, 21 Jan 2020 02:22:58 +0000 (11:22 +0900)]
Fix: load the configuration even if there is no .ini file

Even if there is no .ini file, we need to load up the
subplugins from the default hardcoded paths or
the paths given with envvars.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tests/Filter/EdgeTPU] Revise pipeline strings
Wook Song [Thu, 23 Jan 2020 05:24:44 +0000 (14:24 +0900)]
[Tests/Filter/EdgeTPU] Revise pipeline strings

'videoformat' in the pipeline strings seems to be an invalid or illegal
GST element so that it is replaced with 'videoscale'.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Android] custom-filter and amcsrc for native build
Jaeyun [Tue, 14 Jan 2020 11:31:28 +0000 (20:31 +0900)]
[Android] custom-filter and amcsrc for native build

register custom-filter and amcsrc for native build.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Meson] Make 'enable-edgetpu' depend on 'enable-tensorflow-lite'
Wook Song [Thu, 16 Jan 2020 04:40:53 +0000 (13:40 +0900)]
[Meson] Make 'enable-edgetpu' depend on 'enable-tensorflow-lite'

In order to handle the case that 'enable-edgetpu' is set to 'true',
meson requires a variable, 'tflite dep', which is a declaration of a
dependency on TensorFlow-Lite. Therefore, the 'enable-edgetpu' option
alone cannot properly set the feature. This patch fixes this issue.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] Keep consistency in the private member variable names
Wook Song [Mon, 13 Jan 2020 06:39:39 +0000 (15:39 +0900)]
[Filter/OpenVino] Keep consistency in the private member variable names

In order to improve the readability of code, this patch makes the names
of the private member variables use a prefix, '_', to keep consistency.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] Support the MYRIAD plugin
Wook Song [Mon, 13 Jan 2020 06:22:46 +0000 (15:22 +0900)]
[Filter/OpenVino] Support the MYRIAD plugin

This patch enables the MYRIAD plugin of the OpenVino framework in order
to support Movidious Neural Compute Stick 1 and 2.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] bugfix when checking that the fw is already opened
Wook Song [Mon, 13 Jan 2020 05:38:25 +0000 (14:38 +0900)]
[Filter/OpenVino] bugfix when checking that the fw is already opened

This patch fixes a bug at the checking that the sub-plugin framework is
already opend by adding a missing mandatory condition.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] Revise mechanism for setting up 'accelerator'
Wook Song [Mon, 13 Jan 2020 02:19:35 +0000 (11:19 +0900)]
[Filter/OpenVino] Revise mechanism for setting up 'accelerator'

This patch revices the existing mechanism for setting up the
acceleration device.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] Correct typo in an error message
Wook Song [Sun, 12 Jan 2020 23:57:48 +0000 (08:57 +0900)]
[Filter/OpenVino] Correct typo in an error message

This patch corrects a typo in an error message.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[pytorch] Enable setting accelerators
Parichay Kapoor [Thu, 9 Jan 2020 22:57:46 +0000 (07:57 +0900)]
[pytorch] Enable setting accelerators

Enabled setting of accelerators
Enabled getting supported accelerators

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Filter/C++] Add the basic test case
MyungJoo Ham [Wed, 15 Jan 2020 05:40:47 +0000 (14:40 +0900)]
[Filter/C++] Add the basic test case

The most basic execution flow is tested.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/C++] Complete implementation of C++ filter.
MyungJoo Ham [Tue, 14 Jan 2020 11:14:20 +0000 (20:14 +0900)]
[Filter/C++] Complete implementation of C++ filter.

With C++ filter, application authors may supply C++ classes as tensor-filters.
They may provide C++ classes as an independent .so files for other application
authors as well.

v2: fixed build errors.
v3: added "prop" property.

@TODO: test & test
@TODO: usage manual

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years agoMeson: setup configure values before executing subdir
MyungJoo Ham [Wed, 15 Jan 2020 05:36:52 +0000 (14:36 +0900)]
Meson: setup configure values before executing subdir

We now have a subdir that requires to read the configuration values.
Thus, configure values before calling subdirs.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Api] typo correction
Jaeyun [Mon, 13 Jan 2020 04:24:14 +0000 (13:24 +0900)]
[Api] typo correction

typo correction in C-Api headers.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Meson] Disable external filters for pytorch, caffe2, tf-lite by default
Wook Song [Thu, 16 Jan 2020 03:25:44 +0000 (12:25 +0900)]
[Meson] Disable external filters for pytorch, caffe2, tf-lite by default

This patch disables by default the tensor filters to support external
neural network frameworks such as pytorch, caffe2, and tensorflow-lite in
the meson_options.txt file.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Dist] Use explicit options to enable external filters
Wook Song [Thu, 16 Jan 2020 02:22:38 +0000 (11:22 +0900)]
[Dist] Use explicit options to enable external filters

This patch uses explicit options to enable or disable external tensor
filters for tensorflow-lite, caffe2, and pytorch, which are enabled by
default in the meson_options.txt file.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[armnn] Add caffe support with armnn
Parichay Kapoor [Tue, 31 Dec 2019 10:58:46 +0000 (19:58 +0900)]
[armnn] Add caffe support with armnn

Add caffe support with armnn
Add corresponding unit-test
Tested with CPU and GPU backend on the device

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[test/ext] Add condition for function to exist
Parichay Kapoor [Tue, 24 Dec 2019 08:31:26 +0000 (17:31 +0900)]
[test/ext] Add condition for function to exist

Verify that the function is available before running tests for that function
Added the above verification for getInputDimension and getOutputDimension
Further enhanced invoke test to run successfully if the getDimension exists

V2:
Added gst_tensors_info_free to catch memleak of tensor_info->name

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[nnfw] Verify input model filename
Parichay Kapoor [Wed, 8 Jan 2020 08:18:10 +0000 (17:18 +0900)]
[nnfw] Verify input model filename

Added verification of input model filename
This is performed by parsing the metadata/MANIFEST file to be provided with the model
The first model in the list of models should be the model to be run by nnfw
json-glib is added as dependency to allow json parsing
Corresponding unittest is also added

Resolve: #1981

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Test] stream testcase with multiple custom-filters
Jaeyun [Tue, 14 Jan 2020 08:30:56 +0000 (17:30 +0900)]
[Test] stream testcase with multiple custom-filters

add testcase with multiple custom filters.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android/AMC] fix build warning
Jaeyun [Tue, 14 Jan 2020 11:23:01 +0000 (20:23 +0900)]
[Android/AMC] fix build warning

fix build warning in android amc src.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Spec] Update version 1.2.0 to 1.3.0 of rpm spec
Yongjoo Ahn [Thu, 16 Jan 2020 00:17:23 +0000 (09:17 +0900)]
[Spec] Update version 1.2.0 to 1.3.0 of rpm spec

Resolve version mismatch of .spec with current dev version 1.3.0

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
4 years ago[Tests/FilterExtCommon] Fix test case failure
Wook Song [Tue, 14 Jan 2020 02:35:11 +0000 (11:35 +0900)]
[Tests/FilterExtCommon] Fix test case failure

This patch fixes failure in the test cases generated from
unittest_tizen_template.cc.in. This is a bug of [1]

[1] cbb65b01278b39789e69c6de888b3e0e78b3e5db

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Spec] cleanup build option
Jaeyun [Fri, 10 Jan 2020 09:34:31 +0000 (18:34 +0900)]
[Spec] cleanup build option

move to proper build option and cleanup unnecessary option.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[CodeClean] remove unnecessary code
Jaeyun [Fri, 10 Jan 2020 09:26:17 +0000 (18:26 +0900)]
[CodeClean] remove unnecessary code

Now single API does not use the pipeline. Remove unnecessary function to get caps from tensor-info.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[common] Added proper GstCaps framerate comparison
Parichay Kapoor [Thu, 9 Jan 2020 12:19:03 +0000 (21:19 +0900)]
[common] Added proper GstCaps framerate comparison

Added proper comparison of GstCaps framerate (1/2 == 2/4)
Added corresponding unittest cases

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Tests/FilterExtCommon] Generate test cases using meson
Wook Song [Fri, 10 Jan 2020 11:08:01 +0000 (20:08 +0900)]
[Tests/FilterExtCommon] Generate test cases using meson

In order to generate test cases from the template file to which the most
recent modification has been applied, this patch changes the approach
for the test case generation from the existing bash script to the meson
build script.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[CodeClean] fix coverity issue
Jaeyun [Mon, 13 Jan 2020 04:47:51 +0000 (13:47 +0900)]
[CodeClean] fix coverity issue

check exception case in testcases.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Caffe2] Change how headers are included
HyoungJoo Ahn [Mon, 13 Jan 2020 05:17:15 +0000 (14:17 +0900)]
[Caffe2] Change how headers are included

The headers are not in this project. Though it does not occur errors, to prevent misunderstanding, it needs to be fixed.

Signed-off-by: HyoungJoo Ahn <hello.ahn@samsung.com>
4 years agoDocumentation Update of 2020.01
MyungJoo Ham [Fri, 10 Jan 2020 04:45:15 +0000 (13:45 +0900)]
Documentation Update of 2020.01

We have been progressed a lot. Update the documentation accordingly.

V2: fixed typos

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Ext/Filter/TFLite] Enable a TensorFilter's property, verify_model_path
Wook Song [Fri, 10 Jan 2020 07:03:39 +0000 (16:03 +0900)]
[Ext/Filter/TFLite] Enable a TensorFilter's property, verify_model_path

This patch enables a GstTensorFilter's property, verify_model_path,
which is newly added.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/Common/Reload] Define the behavior for verify_model_path
Wook Song [Fri, 10 Jan 2020 04:57:42 +0000 (13:57 +0900)]
[Filter/Common/Reload] Define the behavior for verify_model_path

This patch defines the behaviour of reloading model files when the
verify_model_path is set to TRUE.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Tests/Script] Make the run_unittests_binaries script find executables
Wook Song [Fri, 10 Jan 2020 10:57:26 +0000 (19:57 +0900)]
[Tests/Script] Make the run_unittests_binaries script find executables

This patch makes the run_unittests_binaries script in ./packaging find
only executable files.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years agoREADME: update reviewers and project status
MyungJoo Ham [Thu, 9 Jan 2020 08:09:34 +0000 (17:09 +0900)]
README: update reviewers and project status

- Added the two new reviewers
- Added more info on the project status

V2: typo-fix and added an omitted item.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Tests/FilterExtCommon] hotfix: Fix build errors, dangling-else
Wook Song [Fri, 10 Jan 2020 10:11:55 +0000 (19:11 +0900)]
[Tests/FilterExtCommon] hotfix: Fix build errors, dangling-else

This patch fixes build errors related to 'dangling-else' (error:
suggest explicit braces to avoid ambiguous 'else') in
unittest_tizen_template.cc.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[tflite/bug] Set accelerator bug solve
Parichay Kapoor [Thu, 9 Jan 2020 23:32:09 +0000 (08:32 +0900)]
[tflite/bug] Set accelerator bug solve

Bug: Not setting accelerator ignored the use_nnapi configuration
This is resolved

Enable setting accelerator unittest non-tizen platforms as well

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[CodeClean] change file extension
Jaeyun [Thu, 9 Jan 2020 07:22:25 +0000 (16:22 +0900)]
[CodeClean] change file extension

1. change file extension to .cc in testcases
2. change path to generate ext-test files

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android] assertion to load conf file
Jaeyun [Thu, 9 Jan 2020 07:12:59 +0000 (16:12 +0900)]
[Android] assertion to load conf file

Now Android functions do not use the conf file, remove assertion to run Android library.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android/Test] testcases for updated API
Jaeyun [Tue, 31 Dec 2019 07:02:16 +0000 (16:02 +0900)]
[Android/Test] testcases for updated API

Add testcase for SNAP and updated Java API.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/Android] support SNAP in Android API
Jaeyun [Tue, 31 Dec 2019 04:34:12 +0000 (13:34 +0900)]
[Api/Android] support SNAP in Android API

In Java APIs, handle multiple model files and custom option to support SNAP.
Define enum for supported NNFW and implement native functions.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/CodeClean] function to create single handle
Jaeyun [Fri, 27 Dec 2019 04:21:47 +0000 (13:21 +0900)]
[Api/CodeClean] function to create single handle

To reduce complexity, add function to create and initialize the single-shot handle.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[C-Api] handle multi files and custom option
Jaeyun [Tue, 24 Dec 2019 11:36:10 +0000 (20:36 +0900)]
[C-Api] handle multi files and custom option

define struct to handle multiple model files and custom option string.
Prepare SNAP single-shot API.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Api/CodeClean] macro to check nnfw
Jaeyun [Tue, 24 Dec 2019 11:28:56 +0000 (20:28 +0900)]
[Api/CodeClean] macro to check nnfw

1. define macro to check nnfw is available
2. update comment and code clean

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[python/ext] Added basic unittests for python
Parichay Kapoor [Tue, 24 Dec 2019 05:00:18 +0000 (14:00 +0900)]
[python/ext] Added basic unittests for python

- Python initialize and finalize is done once for the module rather than doing it per object
Doing initialization per object causes errors when importing modules
- Replaced Assert with appropriate error handing for python extension of tensor filter
- Added basic unittests for python which covers the failure cases

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Filter] Add an option to centralize checking the path of model files
Wook Song [Mon, 6 Jan 2020 07:43:22 +0000 (16:43 +0900)]
[Filter] Add an option to centralize checking the path of model files

Currently, each sub-plugin of the tensor filter should check the
validity of the path of the model files. In general, it leads to
unnecessary code duplication. Moreover, sometimes those are not checked
at all. This patch adds an option to centralize checking the path of model
files so that each sub-plugin is in charge of the validity of model files
only when this option is set to FALSE.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago [TEST] Unit test case for NNFW ML-API
gichan-jang [Tue, 7 Jan 2020 08:16:28 +0000 (17:16 +0900)]
 [TEST] Unit test case for NNFW ML-API
Unit tests are added to verify NNFW with ML-API.
Detail of added test case is :
Test multidimensional input/output us supported in NNFW

Signed-off-by: gichan-jang <gichan2.jang@samsung.com>
4 years ago[nnfw] Support setInputDimension with nnfw
Parichay Kapoor [Fri, 3 Jan 2020 04:49:33 +0000 (13:49 +0900)]
[nnfw] Support setInputDimension with nnfw

With updated nnfw API, support setInputDimension with nnfw
Although the API is defined, its not yet implemeted interally
So, the unittest is added, but disabled

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years agoCODEOWNERS: add new members
MyungJoo Ham [Thu, 9 Jan 2020 06:26:13 +0000 (15:26 +0900)]
CODEOWNERS: add new members

Notify Gichan and Yongjoo for any changes in the repo.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years agoTest: filter/edgetpu unit testing
MyungJoo Ham [Mon, 16 Dec 2019 11:19:54 +0000 (20:19 +0900)]
Test: filter/edgetpu unit testing

Edge-TPU subplugin unit test cases.
(1 positive and 2 negative cases)

This requires edgetpu package update in dashboard.tizen.org
(We are waiting for it)

V2: added test model condition for edgetpu testcase.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[CONF] override NNSTREAMER_CONF_FILE with env-var conf in non-Tizen
Dongju Chae [Wed, 8 Jan 2020 05:12:44 +0000 (14:12 +0900)]
[CONF] override NNSTREAMER_CONF_FILE with env-var conf in non-Tizen

This commit overrides NNSTREAMER_CONF_FILE with env-var conf in
non-Tizen system. So, env-var conf has a higher priority than others.

With this feature, some unittests using a conf file from env-var has
passed even if the default conf file (/etc/nnstremer.ini) exists.
Note that Tizen does not allow to set configurations from env-var.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years agoDist/Tizen: show unit test result summary
MyungJoo Ham [Wed, 18 Dec 2019 04:24:50 +0000 (13:24 +0900)]
Dist/Tizen: show unit test result summary

Aggregate all gtest and SSAT results at the end of testing.

After this, unittest-enabled gbs will show results like:

```
[  117s] GTest (total 232 cases)
[  117s]   Passed: 232 / Failed: 0 / Ignored: 0
[  117s] SSAT (total 513 cases)
[  117s]   Passed: 497 / Failed: 0 / Ignored: 16
[  117s] Grand Total: 745 cases
[  117s]   Passed: 729 / Failed: 0 / Ignored: 16
```

Changes in V2:
- made sure to call close for opened f
- use os.path.splitext
Chnaged in V3:
- with makes exceptions with fail. Handle them.

Suggested TODO in later PRs:
- Count negative test cases.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
4 years ago[Filter/OpenVino] Fill the mandatory callback, invoke
Wook Song [Fri, 3 Jan 2020 05:39:31 +0000 (14:39 +0900)]
[Filter/OpenVino] Fill the mandatory callback, invoke

This patch adds a method to run inference for given input tensors using
InferenceEngine on the acceleration device. It also implements the
mandatory callback of GstTensorFilterFramework, invoke, with such method.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[filter/ext] Added basic unittests for all filter extensions
Parichay Kapoor [Mon, 23 Dec 2019 10:29:41 +0000 (19:29 +0900)]
[filter/ext] Added basic unittests for all filter extensions

Added basic unittests for all the the filter extensions
This creates failure cases of unittests for the interface defined with GstTensorFilterFramework
for most of the extensions, and performs basic unittests
Updated the unittest list in packaging files as well

Also added a script file to run all the test cases inside a folder

V2:
Split test cases into successful and negative ones

TODO: Support python extensions in this as well

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[single/hw] Check hw support for framework
Parichay Kapoor [Thu, 19 Dec 2019 03:07:38 +0000 (12:07 +0900)]
[single/hw] Check hw support for framework

Add implementation to check hw support for framework while checking
for its availability.
Added unittests for this functionality with tensorflow-lite

V2:
check hardware support performed while parsing for available hardwares
Split availability test cases into positive and negative

V3:
checkHWSupport->checkAvailability

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Android] add clone method
Jaeyun [Thu, 2 Jan 2020 10:15:48 +0000 (19:15 +0900)]
[Android] add clone method

Add clone method in tensors info class.
This is to prevent meta-info change after allocating data from passed information.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android] define enumeration for data type and state
Jaeyun [Mon, 23 Dec 2019 10:43:27 +0000 (19:43 +0900)]
[Android] define enumeration for data type and state

Define enumeration for tensor data type and pipeline state (sync with C# API)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Android] tensors-data class with metadata
Jaeyun [Fri, 22 Nov 2019 08:22:27 +0000 (17:22 +0900)]
[Android] tensors-data class with metadata

1. Add tensors info in TensorsData class.
2. Handle error case when failed to create pipe info in native functions.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[PythonFilter] Add pragma option to fix compile time error for gcc v9.6 accepted/tizen/unified/20200109.065529 submit/tizen/20200108.082636
Sangjung Woo [Wed, 8 Jan 2020 07:10:48 +0000 (16:10 +0900)]
[PythonFilter] Add pragma option to fix compile time error for gcc v9.6

This patch newly adds pragma option to fix compile time error for gcc
v9.6.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[Spec] Add python-filter option
Sangjung Woo [Wed, 8 Jan 2020 05:41:12 +0000 (14:41 +0900)]
[Spec] Add python-filter option

This patch newly adds the python-filter option which could support to be
disabled.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[Filter/OpenVino] Handle the case when the sub-plugin is re-opened
Wook Song [Thu, 2 Jan 2020 09:28:35 +0000 (18:28 +0900)]
[Filter/OpenVino] Handle the case when the sub-plugin is re-opened

This patch adds a mechanism to handle the case when this sub-plugin is
re-opened.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] Improve provided model(s) parsing
Wook Song [Thu, 2 Jan 2020 08:51:18 +0000 (17:51 +0900)]
[Filter/OpenVino] Improve provided model(s) parsing

This patch improves the mechanism to parse the provided model(s).
The model could be given in the following forms:
 - a path of the .bin or .xml file
 - a path of the prefix of the .bin and .xml file
 - a set of paths of the both .bin and .xml files.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Ext/Filter/Meson] Make meson support the CPU extensions of OpenVino
Wook Song [Thu, 2 Jan 2020 07:39:48 +0000 (16:39 +0900)]
[Ext/Filter/Meson] Make meson support the CPU extensions of OpenVino

This patch updates the meson build script for tensor filter sub-plugins
to support the CPU extensions of the OpenVino toolkit.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Filter/OpenVino] Load a given network into the acceleration device
Wook Song [Thu, 2 Jan 2020 07:28:35 +0000 (16:28 +0900)]
[Filter/OpenVino] Load a given network into the acceleration device

After negotiated, the given neural network should be loaded into the
acceleration device (note that, currently, CPU is the only supported
one).This patch is a draft of the implementation of that mechanism.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Cpp/Ext] Renames file extensions of test source codes written in C++
Dongju Chae [Tue, 7 Jan 2020 10:31:14 +0000 (19:31 +0900)]
[Cpp/Ext] Renames file extensions of test source codes written in C++

This commit renames file extensions of test source codes written in C++
(i.e, *.cpp -> *.cc), which hurt the consistency.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years ago[armnn] object classification unittest + bug solve
Parichay Kapoor [Tue, 31 Dec 2019 07:39:24 +0000 (16:39 +0900)]
[armnn] object classification unittest + bug solve

- Add object classification unittest using tflite quantized mobilenet
- Add orange.png raw format image orange.raw
- As armnn treats uint8 datatype of tflite as quant asymm8 (arc/armnnTfLiteParser/TfLiteParser.cpp:310),
quant asymm8 is interpreted as uint8 in nnstreamer
- Updated current default HW backend to CpuAcc (based on neon) as CpuRef takes over
5 min to complete the mobilenet unittest

Bug solve:
The dimension of data received by armnn are inversed to match the desired order

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[C-API] Set omitted enum value in pipeline buffer policy
Sangjung Woo [Mon, 6 Jan 2020 07:30:16 +0000 (16:30 +0900)]
[C-API] Set omitted enum value in pipeline buffer policy

This patch explicitly set the enum value in pipeline buffer policy as
below.
* ML_PIPELINE_BUF_POLICY_AUTO_FREE: 0
* ML_PIPELINE_BUF_POLICY_DO_NOT_FREE: 1

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
4 years ago[nnfw] Interpret quant8 asymm as uint8
Parichay Kapoor [Tue, 31 Dec 2019 11:37:25 +0000 (20:37 +0900)]
[nnfw] Interpret quant8 asymm as uint8

Interpret quant8 asymm as uint8
Add unittest with object classification

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Ext/Filter/Meson] Update meson.build for the OpenVino sub-plugin
Wook Song [Thu, 2 Jan 2020 07:14:58 +0000 (16:14 +0900)]
[Ext/Filter/Meson] Update meson.build for the OpenVino sub-plugin

This patch updates the meson build script for the tensor filter
sub-plugins to support OpenVino.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Documentation] Modify the meson version required to build up-to-date
Wook Song [Mon, 6 Jan 2020 08:08:21 +0000 (17:08 +0900)]
[Documentation] Modify the meson version required to build up-to-date

This patch modifies the meson version required to build up-to-date, 0.50.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[Api] add SNAP in nnfw enum type
Jaeyun [Tue, 17 Dec 2019 06:45:21 +0000 (15:45 +0900)]
[Api] add SNAP in nnfw enum type

Define SNAP in nnfw type, only for Android.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Filter/Custom] unnecessary log
Jaeyun [Mon, 6 Jan 2020 04:31:30 +0000 (13:31 +0900)]
[Filter/Custom] unnecessary log

prevent unnecessary logs if custom-filter does not define set/get dim callbacks.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[CodeClean] fix coverity
Jaeyun [Mon, 6 Jan 2020 03:44:14 +0000 (12:44 +0900)]
[CodeClean] fix coverity

fix some coverity issues and sam score

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[Filter/OpenVino] Add skeleton code of a sub-plugin for OpenVino support
Wook Song [Sun, 29 Dec 2019 21:40:08 +0000 (06:40 +0900)]
[Filter/OpenVino] Add skeleton code of a sub-plugin for OpenVino support

This patch adds skeleton code of a tensor filter sub-plugin for OpenVino
Toolkit (dldt) support.

Signed-off-by: Wook Song <wook16.song@samsung.com>
4 years ago[armnn] Added unittests for armnn
Parichay Kapoor [Tue, 17 Dec 2019 04:51:24 +0000 (13:51 +0900)]
[armnn] Added unittests for armnn

Added unittests for armnn tensor filter extension

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[armnn] Added tensor filter extension of armnn
Parichay Kapoor [Thu, 14 Nov 2019 08:25:06 +0000 (17:25 +0900)]
[armnn] Added tensor filter extension of armnn

Added tensor filter extension of armnn

V2: Updated the static library install paths for armnn and nnfw subplugins
V3: Updated error handling
V4: Remove Wno-sign-compare

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[filter/ext] Replace asserts with error handling
Parichay Kapoor [Mon, 23 Dec 2019 08:24:55 +0000 (17:24 +0900)]
[filter/ext] Replace asserts with error handling

Replace asserts with appropriate error handling in tensor filter extensions
This will allows test cases for failure scenarios and handle erronous inputs
via single-shot API gracefully with error return than shutting down with assert failure

V2:
Applied for custom filters as well

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[spec] Minor fixes and cleanup
Parichay Kapoor [Wed, 18 Dec 2019 05:42:55 +0000 (14:42 +0900)]
[spec] Minor fixes and cleanup

Added minor fixes:
- nnstreamer-capi.manifest to be not used non-tizen packages
- remove nnfw enable variable as nnfw is always enabled

Cleanup
- remove extra tizen conditions
- Move similar blocks together for better understanding

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[plugin/hw] Add more HW accelerator and update implementation
Parichay Kapoor [Tue, 17 Dec 2019 06:02:42 +0000 (15:02 +0900)]
[plugin/hw] Add more HW accelerator and update implementation

Add TPU as a backend accelerator property option in list of hardware
accelerators
Move default accelerator to avoid changing default accelerator enum value
everytime a new backend device is added

V2:
- Updated the regex to be formed at run-time using a list of supported
accelerators.
- Accelerators are also stored as GEnumValues to do conversion from
string to int value and vice versa easily
- More accelerators are added in heirarchical order. srcn and neon
moved to npu and cpu heirarchy correspondingly.
- Added more accelerators to be supported in future.

V3:
Update backend accelerator in tizen c-api

Signed-off-by: Parichay Kapoor <pk.kapoor@samsung.com>
4 years ago[Build] remove unnecessary flag
Jaeyun [Thu, 2 Jan 2020 03:47:36 +0000 (12:47 +0900)]
[Build] remove unnecessary flag

remove remained flag 'no-sign-compare'

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
4 years ago[FIX/LOG] Fix a wrong error message for custom-easy tensor filter
Dongju Chae [Mon, 16 Dec 2019 11:19:29 +0000 (20:19 +0900)]
[FIX/LOG] Fix a wrong error message for custom-easy tensor filter

This commit fixes the wrong log message for custom-easy tensor filter.
For this subplugin, we don't need to check whether the model path exists.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
4 years ago[TEST/RELOAD] Test runtime model reloads during tflite inferences
Dongju Chae [Wed, 18 Dec 2019 03:50:04 +0000 (12:50 +0900)]
[TEST/RELOAD] Test runtime model reloads during tflite inferences

This commit adds a testcase to test asynchronous model updates during
tflite inferences. It repeatedly switches tflite models between
mobilenet_v1 and mobilenet_v2. It expects the same index for input img.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>