platform/upstream/nnstreamer.git
12 months ago[datarepo] Add function to read and write sparse tensors accepted/tizen/unified/20230727.173058
hyunil park [Mon, 10 Jul 2023 06:37:18 +0000 (15:37 +0900)]
[datarepo] Add function to read and write sparse tensors

- Add writing sparse tensors to datareposink
  To add memory to gstbuffer by number of sparse tensors when reading a sample in datareposrc,
  sample_offset, tensor_size, and tensor_count fields are added to the JSON file
- Add reading sparse tensors to datareposrc
  If the tensor format of JSON file is sparse, read a sample using the JSON meta information
  (sample_offset, tensor_size, tensor_count) and append memory to GstBuffer as many as the number
  of sparse tensors.
- Add unit test
- bug fix about shuffle index

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[tensor_region] fix memcpy to out buffer
HarshJ20 [Wed, 19 Jul 2023 05:41:15 +0000 (11:11 +0530)]
[tensor_region] fix memcpy to out buffer

    - fixed the out buffer pointer increment size while storing cropping info

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
12 months ago[datareposrc] Add function to read flexible tensors
hyunil park [Tue, 27 Jun 2023 04:13:41 +0000 (13:13 +0900)]
[datareposrc] Add function to read flexible tensors

- If the tensor format of the caps of the JSON file is flexible,
  Reads a sample using the flexible meta information (sample_offset, tensor_size, tensor_count)
  of the JSON file and appends memory to GstBuffer as many as the number of flexible tensors.
- Add unit test
- Add checking if it is a flexible tensor after writing data to GstMemory

- Reference
  * The start offset for reading is sample_offset(sample size).
  * Save each flexible tensor stored in a sample to a gstbuffer according to each
    tensor_size, tensor_size can get tensor_size field in JSON file.
  * A shuffled index is mapped to an index of sample_offset field in JSON file.
  * A shuffled index is also mapped to an index of tensor_count field in JSON file
  * The index value is a number of cumulative tensors, so it is mapped to an index
    of tensor_size field in JSON file

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
12 months ago[tensor_trainer] Apply NNS_TENSOR_SIZE_EXTRA_LIMIT and bug fix for flexible tensor...
hyunil park [Mon, 3 Jul 2023 05:14:29 +0000 (14:14 +0900)]
[tensor_trainer] Apply NNS_TENSOR_SIZE_EXTRA_LIMIT and bug fix for flexible tensor operation

- Apply NNS_TENSOR_SIZE_EXTRA_LIMIT
- Bug fix: remove invalid flexible header pointer
           remove buffer overflow related to the wrong tensor size
- Add check if tensor is flexible

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
13 months ago[test] Add testcases for mux/demx handling extra tensors
Yongjoo Ahn [Fri, 7 Jul 2023 09:32:26 +0000 (18:32 +0900)]
[test] Add testcases for mux/demx handling extra tensors

- Add a TC to test MAX extra tensors with tensor_mux
- Add a TC to test tensor_demux handling extra tensors

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[common] Let the util handles extra tensors input
Yongjoo Ahn [Fri, 7 Jul 2023 09:23:02 +0000 (18:23 +0900)]
[common] Let the util handles extra tensors input

- Let `gst_tensor_time_sync_buffer_from_colletpad` support extra tensors
  as its input

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[demux] Support extra tensors
Yongjoo Ahn [Fri, 7 Jul 2023 09:21:20 +0000 (18:21 +0900)]
[demux] Support extra tensors

- Let tensor_demux handle tensors # > 16

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[Common] macro to check valid meta
Jaeyun Jung [Fri, 7 Jul 2023 05:08:05 +0000 (14:08 +0900)]
[Common] macro to check valid meta

Reduce unnecessary logs, add macro to check valid meta.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Demux] util functions to handle memories
Jaeyun Jung [Tue, 4 Jul 2023 10:04:51 +0000 (19:04 +0900)]
[Demux] util functions to handle memories

Update util functions to handle memories in gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[test] Add testcases for filter_single with 32 in/out tensors model accepted/tizen/unified/20230710.013136 accepted/tizen/unified/20230713.014430 accepted/tizen/unified/dev/20230726.115939 accepted/tizen/unified/riscv/20230718.003657
Yongjoo Ahn [Mon, 19 Jun 2023 08:19:58 +0000 (17:19 +0900)]
[test] Add testcases for filter_single with 32 in/out tensors model

- Add TCs for invoke and get/set info

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[tensor_filter_single] Let single_invoke support extra tensors
Yongjoo Ahn [Mon, 19 Jun 2023 08:16:48 +0000 (17:16 +0900)]
[tensor_filter_single] Let single_invoke support extra tensors

- Extend the array length of out GstTensorMemory to support invoke of many in/out tensors model with filter_single

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[tensor_filter] Let tensor_filter_common handle extra tensors
Yongjoo Ahn [Mon, 19 Jun 2023 08:12:55 +0000 (17:12 +0900)]
[tensor_filter] Let tensor_filter_common handle extra tensors

- Extend array length for layout and ranks
- Replace accessing tensor_info with array index with util func `gst_tensors_info_get_nth_info`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[filter] Fix mem leak when set input/output info
Yongjoo Ahn [Mon, 19 Jun 2023 08:06:55 +0000 (17:06 +0900)]
[filter] Fix mem leak when set input/output info

- Add calls for `gst_tensors_info_free`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[Common] appending flexible tensor
Jaeyun Jung [Wed, 5 Jul 2023 10:38:23 +0000 (19:38 +0900)]
[Common] appending flexible tensor

Update util function to append flexible tensor into gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common] check mem size of flex tensor
Jaeyun Jung [Thu, 6 Jul 2023 03:31:12 +0000 (12:31 +0900)]
[Common] check mem size of flex tensor

Check memory size before parsing tensor-meta.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Spec] Remove armcl dependency
Sangjung Woo [Thu, 6 Jul 2023 01:32:23 +0000 (10:32 +0900)]
[Spec] Remove armcl dependency

This patch removes the armcl dependency from the Tizen packaging.

Signed-off-by: Sangjung Woo <sangjung.woo@samsung.com>
13 months ago[Common] Add new API to get tensor format of current pad caps
hyunil park [Tue, 4 Jul 2023 01:56:08 +0000 (10:56 +0900)]
[Common] Add new API to get tensor format of current pad caps

- Add gst_tensor_pad_get_format()
- Replace gst_tensor_pad_caps_is_flexible() function to macro.
- Add gst_tensor_pad_caps_is_static and gst_tensor_pad_caps_is_sparse macro

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
13 months ago[DataRepo] handle error case
Jaeyun Jung [Tue, 4 Jul 2023 09:46:45 +0000 (18:46 +0900)]
[DataRepo] handle error case

Fix res leak case if gst-memory mapping is failed.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common] change function name
Jaeyun Jung [Tue, 4 Jul 2023 09:52:07 +0000 (18:52 +0900)]
[Common] change function name

Change the name of common util function.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[TEST] CLANG format applied
HarshJ20 [Tue, 27 Jun 2023 10:42:00 +0000 (16:12 +0530)]
[TEST] CLANG format applied

    - CLANG format applied to unittest_tensor_region.cc
    - GTEST test case updated (error was: comparing unsigned with int)
    - Removed GMainLoop from unittest_tensor_region

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[TEST] file name changed unittest_tensorRegion
HarshJ20 [Tue, 27 Jun 2023 09:59:07 +0000 (15:29 +0530)]
[TEST] file name changed unittest_tensorRegion

    - unittest_tensorRegion changed to unittest_tensor_region
    - folder name changed from nnstreamer_decoder_tensorRegion to nnstreamer_decoder_tensor_region

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[TEST] SSAT based test case complete
HarshJ20 [Thu, 22 Jun 2023 06:54:17 +0000 (12:24 +0530)]
[TEST] SSAT based test case complete

    - removed unnecessary line from unittest_plugins
    - updated test pipeline in unittest_tensorRegion, runTest.sh and getCropInfo
    - tested all the python scripts, ssat test case script and unittest for tensor_region
    - Python Script for generating golden test results
    - Using tensor_filter's output for orange.png for testing to avoid uploading ssd_mobilenet_v2_coco.tflite model
    - changed Camel casing and update tests/meson.build

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[TEST] Test case for tensor_decoder::tensor_region
HarshJ20 [Tue, 20 Jun 2023 06:12:04 +0000 (11:42 +0530)]
[TEST] Test case for tensor_decoder::tensor_region

    - ssat based runTest.sh [incomplete]
    - getCropInfo.py for viewing the data produces of orange.unittest_plugins
    - gtest based test case in unittest_plugins with name TensorDecoder.TensorRegion [removed]
    - temporary file removed
    - Separate test unit for tensor_region
    - included missing Doxygen tags

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[trivial] Fix nms in bounding_box decoder
Yongjoo Ahn [Wed, 5 Jul 2023 04:06:01 +0000 (13:06 +0900)]
[trivial] Fix nms in bounding_box decoder

- Skip nms when the size of given array is 0

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[Common] reconfigure gst-buffer with extra tensors
Jaeyun Jung [Mon, 3 Jul 2023 07:57:31 +0000 (16:57 +0900)]
[Common] reconfigure gst-buffer with extra tensors

Handle extra tensors when reconfiguring the gst-buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[DataRepo] util to get data type
Jaeyun Jung [Mon, 3 Jul 2023 04:57:28 +0000 (13:57 +0900)]
[DataRepo] util to get data type

Add util function to get data type from caps.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[datareposink] Add function to write flexible tensors
hyunil park [Tue, 20 Jun 2023 10:19:48 +0000 (19:19 +0900)]
[datareposink] Add function to write flexible tensors

- To add memory to gstbuffer by number of flexible tensors when read sample in datareposrc,
  sample_offset, tensor_size, and tensor_count field are added to the JSON file
- Add unit test

- Reference
  * If caps of sink pad is flexible, the input gstBuffer is saved as a flexible tensor
  * The size of the input gstBuffer is stored as sample_offset field in JSON file and
    it will be used when shuffle operation in datareposrc
  * Each flexible tensor size is stored as tensor_size field in JSON file and
    it will be used with gst_buffer_append_memory() in datareposrc

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
13 months ago[TEST] bounding_box test with config_file
HarshJ20 [Thu, 29 Jun 2023 04:23:26 +0000 (09:53 +0530)]
[TEST] bounding_box test with config_file

    - updated the runTest.sh for nnstreamer_decoder_bounding_box including the config-file property

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[FEAT] Config file for properties
HarshJ20 [Tue, 27 Jun 2023 19:53:50 +0000 (01:23 +0530)]
[FEAT] Config file for properties

    - Defined a module in nnstreamer_plugin_api_impl named gst_tensor_parse_config_file
    - Used to install new property to specify Configuration file path
    - example case included for tensor_decoder
    - updated after build checkers failed for indentation
    - Type specific setting of prop_value

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[debian/rules] Add tests path of nnstreamer_datarepo to debian rules
hyunil park [Thu, 29 Jun 2023 03:41:38 +0000 (12:41 +0900)]
[debian/rules] Add tests path of nnstreamer_datarepo to debian rules

Modify to run nnstreamer_datarepo tests

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
13 months agoDist/Tizen: Fix a GBS build error due to #4007
Wook Song [Tue, 27 Jun 2023 06:11:50 +0000 (15:11 +0900)]
Dist/Tizen: Fix a GBS build error due to #4007

This patch fixes a GBS build error caused by #4007 on the SNPE
sub-plugin for Tizen.

Signed-off-by: Wook Song <wook16.song@samsung.com>
13 months ago[trivial] Fix log level warn -> info
Yongjoo Ahn [Tue, 27 Jun 2023 06:52:47 +0000 (15:52 +0900)]
[trivial] Fix log level warn -> info

- Decrease log level since the line is in proper scenario when the
  num_tensors is exactly 16.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[DataRepo] util to get nth info
Jaeyun Jung [Tue, 27 Jun 2023 12:21:05 +0000 (21:21 +0900)]
[DataRepo] util to get nth info

Prepare extra tensors, use util function to get nth info.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[DataRepo] enum of incoming data type
Jaeyun Jung [Tue, 27 Jun 2023 10:20:33 +0000 (19:20 +0900)]
[DataRepo] enum of incoming data type

Define new enum of incoming data type for data-repo elements.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common] magic number for flex-tensor
Jaeyun Jung [Tue, 27 Jun 2023 08:55:39 +0000 (17:55 +0900)]
[Common] magic number for flex-tensor

Add magic to tensor-meta, this indicates given memory block is flexible tensor.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common] validate tensor-info accepted/tizen/unified/20230628.023656
Jaeyun Jung [Tue, 27 Jun 2023 03:25:02 +0000 (12:25 +0900)]
[Common] validate tensor-info

Param error case, validate tensor-info before appending new memory.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[CodeClean] use util func for extra tensors
Jaeyun Jung [Mon, 26 Jun 2023 05:44:37 +0000 (14:44 +0900)]
[CodeClean] use util func for extra tensors

Code clean, remove unnecessary local val and use util function to handle extra tensors.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months agoRevert "Filter/Meson: Move 'filter-snpe-list' to the build directory" accepted/tizen/7.0/unified/20230627.014905
gichan2-jang [Mon, 26 Jun 2023 06:34:40 +0000 (15:34 +0900)]
Revert "Filter/Meson: Move 'filter-snpe-list' to the build directory"

This reverts commit 2d6bc59653dab21bf1706d61a06c205c10583a92.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
13 months ago[tensor_crop] Push EOS event
gichan2-jang [Fri, 23 Jun 2023 04:58:36 +0000 (13:58 +0900)]
[tensor_crop] Push EOS event

Push eos event to src pad when collect pad is set to EOS state.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
13 months ago[Fix] fix svace issue.
SuYeon [Wed, 21 Jun 2023 06:51:14 +0000 (15:51 +0900)]
[Fix] fix svace issue.

Fix overflow before widen (distance value in 'g_array_set_size' func).

Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
13 months ago[Fix] fix svace issue.
SuYeon [Wed, 21 Jun 2023 03:42:23 +0000 (12:42 +0900)]
[Fix] fix svace issue.

Fix data type of distance value in 'g_array_set_size' (gint -> guint64)

Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
13 months ago[Fix] fix coverity & svace issues
SuYeon [Fri, 16 Jun 2023 02:00:17 +0000 (11:00 +0900)]
[Fix] fix coverity & svace issues

Fix coverity issues.
 - Fix resource leak (free 'dim_str' in '_custom_easy_filter_dynamic' function)
 - Delete unused 'cIdx' value in 'g_array_sort' function.
 - Fix 'g_strlcpy' return value and check fail to copy 'caps_str'.

Fix svace issue.
 - Fix data type of distance value in 'g_array_set_size'(gint ->guint64)

Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
13 months agoRefactor tensor_region.c in regard to PR feedback
HarshJ20 [Fri, 16 Jun 2023 17:37:00 +0000 (23:07 +0530)]
Refactor tensor_region.c in regard to PR feedback

    - fixed the name of parameter in gst_tensor_top_detectedObjects_cropInfo
    - constified recommended pointer parameters and unconstified scalars
    - Added SPDX identifier
    - caps updated

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months agoAddress feedback from PR#4115
HarshJ20 [Fri, 16 Jun 2023 11:32:31 +0000 (17:02 +0530)]
Address feedback from PR#4115

    - changed "finalize" function to "gst_tensor_top_detectedObjects_cropInfo"
    - introduced new function "init_meta" to intialize flexible tensor header info for tensor_crop
    - changed the string value in GstOutCaps for updating Caps info
    - checked the resulting buffer's data with the intended result

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months agoTensor_region subplugin, currently supports mobilenet_ssd
Harshj20 [Thu, 15 Jun 2023 03:42:37 +0000 (09:12 +0530)]
Tensor_region subplugin, currently supports mobilenet_ssd

    - updated nnstreamer.mk for tensor_region.c
    - A subplugin for tensor_decoder for providing cropping info to tensor-crop element
    - Code cleaned, global scalability for supporting other models
    - @brief tags added for init_modes, finalize, getOutCaps and nms functions
    - pre-build for ubuntu passed
    - newline added
    - multi line comments properly configured

Signed-off-by: HarshJ20 <hjain24in@gmail.com>
13 months ago[filter] Show deprecate message for tflite1 filter
Yongjoo Ahn [Tue, 13 Jun 2023 07:18:05 +0000 (16:18 +0900)]
[filter] Show deprecate message for tflite1 filter

- tflite1 is going to be dropped in Tizen image.
- Show deprecate warning message when the tflite1 subplugin is opened
  and in build time.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
13 months ago[Common] data size of extra tensor
Jaeyun Jung [Mon, 19 Jun 2023 04:41:59 +0000 (13:41 +0900)]
[Common] data size of extra tensor

Fix util function, getting tensor size of extra tensor.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
13 months ago[Common/Doc] removed param
Jaeyun Jung [Mon, 19 Jun 2023 04:38:42 +0000 (13:38 +0900)]
[Common/Doc] removed param

Update doc, delete unnecessary param. (It was removed from prev PR.)

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[common] Increase tensor_size_extra_limit to 240
Yongjoo Ahn [Tue, 13 Jun 2023 06:28:07 +0000 (15:28 +0900)]
[common] Increase tensor_size_extra_limit to 240

- Making the total size limit to be 256 (16 + 240)
- TODO: Set NNS_TENSOR_SIZE as 256 and update other source codes
  accordingly

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months ago[fix] Fix a source file using clang-format
Yongjoo Ahn [Tue, 13 Jun 2023 06:11:46 +0000 (15:11 +0900)]
[fix] Fix a source file using clang-format

- Apply clang-format-15 to the file `unittest_sink.cc`

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months ago[util] Fix the signature of gst_tensor_buffer_get_nth_meory
Yongjoo Ahn [Tue, 13 Jun 2023 05:43:36 +0000 (14:43 +0900)]
[util] Fix the signature of gst_tensor_buffer_get_nth_meory

- Remove unused argument of GstTensorsInfo.
- Fix used lines.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months ago[Common] unnecessary mem-map calls
Jaeyun Jung [Mon, 12 Jun 2023 07:12:01 +0000 (16:12 +0900)]
[Common] unnecessary mem-map calls

Code clean, reduce duplicated mem-map calls for extra tensor memory.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Filter] Support dynamic invoke
gichan2-jang [Mon, 12 Jun 2023 05:50:08 +0000 (14:50 +0900)]
[Filter] Support dynamic invoke

 - Support dynamic invoke
 - dynamic invoke function is added for custom-easy filter.
 - New custom callback and register function is added.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
14 months ago[CodeClean] util function for caps
Jaeyun Jung [Thu, 8 Jun 2023 07:28:15 +0000 (16:28 +0900)]
[CodeClean] util function for caps

Code clean, fix indent and use util function for gst-caps.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[CodeClean/RepoSink] unnecessary lines
Jaeyun Jung [Thu, 8 Jun 2023 08:38:14 +0000 (17:38 +0900)]
[CodeClean/RepoSink] unnecessary lines

Code clean, cleanup unnecessary lines.
- fix data type from gst-buffer
- handle error message

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Common] fix tensor dimension compare util
Yelin Jeong [Wed, 7 Jun 2023 01:00:34 +0000 (10:00 +0900)]
[Common] fix tensor dimension compare util

This patch fixes `gst_tensor_dimension_is_equal`
and adds unittests.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
14 months ago[Fillter] Change custom-easy filter version from v0 to v1 accepted/tizen/7.0/unified/20230621.051151 accepted/tizen/unified/20230609.163737
gichan [Wed, 26 Apr 2023 10:38:39 +0000 (19:38 +0900)]
[Fillter] Change custom-easy filter version from v0 to v1

Change custom-easy filter version from v0 to v1

Signed-off-by: gichan <gichan2.jang@samsung.com>
Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
14 months ago[Filter] Update filter subplugin interface
gichan [Tue, 25 Apr 2023 08:14:59 +0000 (17:14 +0900)]
[Filter] Update filter subplugin interface

Update filter subplugin v1 interface to support dynamic invoke.
Output tensors info should be filled by filter subplugin for dynamic
invoke.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
14 months ago[TEST] Add testcase for flexible tensor_filter
gichan [Wed, 12 Apr 2023 05:00:36 +0000 (14:00 +0900)]
[TEST] Add testcase for flexible tensor_filter

 - Testcase for flexible tensor filter is disabled and activate after
development is done.
 - In order to invoke tensor_filter with flexible input/output, you need to specify custom option.
  ex) ... ! tensor_filter framework=... invoke-dynamic=TRUE model=... ! ...

Signed-off-by: gichan <gichan2.jang@samsung.com>
14 months ago[decoder] Fix logic error in box tracking
Yongjoo Ahn [Fri, 2 Jun 2023 09:31:28 +0000 (18:31 +0900)]
[decoder] Fix logic error in box tracking

- Fix to calculate correct distance value between centroid and box
- Initialize tracking_id with 0 for yolov5 decode mode

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months ago[datareposrc] For caps negotiation, use the caps of the JSON file
hyunil park [Wed, 26 Apr 2023 06:14:26 +0000 (15:14 +0900)]
[datareposrc] For caps negotiation, use the caps of the JSON file

- For caps negotiation, use the caps of the JSON file
- Remove supportable caps and add 'ANY'
- Add caps property for setting caps of unregistered file (have not JSON)
- Add unittest

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
14 months ago[tensor_trainer] Save the stats information of the model to output tensors
hyunil park [Thu, 25 May 2023 02:15:19 +0000 (11:15 +0900)]
[tensor_trainer] Save the stats information of the model to output tensors

Whenever one of the epochs is completed, the stats information of the model being trained
in subplugin is stored in the output tensor.

- Apply getStatus to get status of subplugin
- Add new internal API(nnstreamer_trainer_notify_event()) to get event from subplugin
- Add function to write stats to output tensors

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
14 months ago[API][tensor_trainer] Add event notifier and getStatus callback pointer
hyunil park [Fri, 12 May 2023 02:18:56 +0000 (11:18 +0900)]
[API][tensor_trainer] Add event notifier and getStatus callback pointer

Add GstTensorTrainerEventNotifier to get event from subplugin
- subplugin must send event to tensor_trainer with this notifier by internal API
- Add GstTensorTrainerEventType
- Add new internal API: nnstreamer_trainer_notify_event(notifier, event_type, data)

Add getStatus callback pointer to GstTensorTrainerFramework.
- Call this to get status of subplugin

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
14 months ago[Common] prepare 0-init dimension
Jaeyun Jung [Fri, 19 May 2023 07:17:18 +0000 (16:17 +0900)]
[Common] prepare 0-init dimension

Prepare increasing max rank and 0-init dimension case.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Build] missed libs in debian package
Jaeyun Jung [Mon, 22 May 2023 08:05:12 +0000 (17:05 +0900)]
[Build] missed libs in debian package

Add missed libraries in debian package.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Common] util to compare dimensions
Jaeyun Jung [Fri, 19 May 2023 05:28:03 +0000 (14:28 +0900)]
[Common] util to compare dimensions

Add util function to compare tensor dimensions.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[trivial] Fix yocto build badge in README
Yongjoo Ahn [Fri, 26 May 2023 05:39:40 +0000 (14:39 +0900)]
[trivial] Fix yocto build badge in README

- Yocto daily build targets aarch64. Change build badge position right.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months ago[decoder] Add "tracking" feature for bounding boxes
Yongjoo Ahn [Mon, 15 May 2023 08:27:08 +0000 (17:27 +0900)]
[decoder] Add "tracking" feature for bounding boxes

- If the property is given as  `... option6=1 ...`, result bounding boxes will be marked with unique IDs.
- Centroid based track algorithm is used. It calculate every euclidean centroid distance among previous boxes and incoming boxes. And match from the least distance pair.

NOTE that this is too naive and trivial to be applied to production level application. Use it for test purpose.

If you need more information about object tracking task, refer https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_plugin_gst-nvtracker.html

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months ago[Filter] PyTorch, ignore extra output tensors
Torsten Schulz [Tue, 9 May 2023 23:56:18 +0000 (16:56 -0700)]
[Filter] PyTorch, ignore extra output tensors
Allow tensor_filter to be configured with smaller number of output tensors than PyTorch returns natively.

Signed-off-by: Torsten Schulz <torsten.schulz@gmail.com>
14 months ago[Test] missed testcases in spec file
Jaeyun Jung [Mon, 22 May 2023 07:29:19 +0000 (16:29 +0900)]
[Test] missed testcases in spec file

For test coverage, add missed testcases when running unittest in tizen build.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Common] duplicated lines
Jaeyun Jung [Fri, 12 May 2023 08:35:58 +0000 (17:35 +0900)]
[Common] duplicated lines

Code clean, remove duplicated lines using util function.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Common] condition to release extra info
Jaeyun Jung [Fri, 19 May 2023 05:15:18 +0000 (14:15 +0900)]
[Common] condition to release extra info

Remove unnecessary log-print, most pipelines does not have extra info and dont need releasing extra info.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months ago[Meson/Test] testcases for datarepo
Jaeyun Jung [Fri, 19 May 2023 08:13:28 +0000 (17:13 +0900)]
[Meson/Test] testcases for datarepo

Fix meson script, build testcases of datarepo when option is enabled.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
14 months agodatarepo: dependency management.
MyungJoo Ham [Wed, 17 May 2023 05:55:10 +0000 (14:55 +0900)]
datarepo: dependency management.

Datarepo has its own unique dependency.
Thus, make datarepo optional at build so that
we can cut the dependency.

It's set "enabled by default" because most
releases will be using it anyway.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
14 months ago[Test] parse error msg
Jaeyun Jung [Fri, 19 May 2023 05:09:41 +0000 (14:09 +0900)]
[Test] parse error msg

For debug mode, parse error message received from pipeline.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months agoreadme: add linux foundation badge
MyungJoo Ham [Wed, 17 May 2023 10:42:51 +0000 (19:42 +0900)]
readme: add linux foundation badge

The badges are from
https://github.com/lfai/artwork/blob/main/lfaidata-assets/lfaidata-project-badge/README.md

Fixes #4036

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months ago[CodeClean] util to compare dimensions
Jaeyun Jung [Mon, 15 May 2023 10:44:13 +0000 (19:44 +0900)]
[CodeClean] util to compare dimensions

Code clean, common function to compare tensor dimensions.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[Trainer] parse config in caps event
Jaeyun Jung [Tue, 16 May 2023 10:14:50 +0000 (19:14 +0900)]
[Trainer] parse config in caps event

Fix invalid tensor-config,
1. parse config when receiving caps event.
2. init/free config in start/finalize callback.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[CodeClean] fix indent and unnecessary space
Jaeyun Jung [Tue, 16 May 2023 10:53:53 +0000 (19:53 +0900)]
[CodeClean] fix indent and unnecessary space

Code clean, fix indent and remove unnecessary space.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[Test] enable testcases for tf-lite
Jaeyun Jung [Fri, 12 May 2023 08:42:35 +0000 (17:42 +0900)]
[Test] enable testcases for tf-lite

Run testcases when tf-lite ver 2.x is enabled.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[Common] allocate extra info
Jaeyun Jung [Fri, 12 May 2023 06:23:30 +0000 (15:23 +0900)]
[Common] allocate extra info

Clearly allocate extra info array in tensors-info struct, and remove unnecessary log line.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[tensor_trainer] Get TensorsInfo from negotiated caps instead of property
hyunil park [Wed, 3 May 2023 06:03:49 +0000 (15:03 +0900)]
[tensor_trainer] Get TensorsInfo from negotiated caps instead of property

- Get TensorsInfo from negotiated caps
- Remove input-type and input-dim property

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[CodeClean] missed tags
Jaeyun Jung [Fri, 12 May 2023 06:20:49 +0000 (15:20 +0900)]
[CodeClean] missed tags

Code clean, add brief tag of newly added functions.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[TEST] remove meaningless test
SuYeon [Fri, 12 May 2023 01:53:52 +0000 (10:53 +0900)]
[TEST] remove meaningless test

 - remove meaningless test
 - issue has been resolved

Signed-off-by: SuYeon <suyeon5.kim@samsung.com>
15 months ago[Debian] Update ubuntu control file
gichan [Thu, 4 May 2023 10:41:24 +0000 (19:41 +0900)]
[Debian] Update ubuntu control file

 - Add json-glib-dev dep
 - Remove python2, tf, tf-lite

Signed-off-by: gichan <gichan2.jang@samsung.com>
15 months ago[Filter] Add doxygen tag for mxnet subplugin
gichan [Tue, 2 May 2023 08:28:54 +0000 (17:28 +0900)]
[Filter] Add doxygen tag for mxnet subplugin

Add missing doxygen tag for mxnet tensor filter subplugin.

Signed-off-by: gichan <gichan2.jang@samsung.com>
15 months agoApply clang format to cpp files
www-data [Wed, 3 May 2023 07:06:02 +0000 (16:06 +0900)]
Apply clang format to cpp files

Apply clang format to all files

Signed-off-by: www-data <www-data@ip-172-31-18-85.ap-northeast-2.compute.internal>
15 months ago[MQTT] Change string copy
gichan [Thu, 27 Apr 2023 06:15:47 +0000 (15:15 +0900)]
[MQTT] Change string copy

Change string copy to avoid gcc-12 build error.

Signed-off-by: gichan <gichan2.jang@samsung.com>
15 months ago[datareposink] Change the Confirm file creation part in TC
hyunil park [Mon, 24 Apr 2023 02:33:26 +0000 (11:33 +0900)]
[datareposink] Change the Confirm file creation part in TC

- Change the confirm file creation
- Move ASSERT

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months agoUpdate tutorial2_object_detection.md
pasteldream-ps [Thu, 6 Apr 2023 14:32:37 +0000 (23:32 +0900)]
Update tutorial2_object_detection.md

Add `nnstreamer-tensorflow2-lite` package to the install instruction in the tutorial

Signed-off-by: pasteldream-ps <128911696+pasteldream-ps@users.noreply.github.com>
15 months ago[Tizen] Exclude test files for SAM
gichan [Mon, 24 Apr 2023 04:08:24 +0000 (13:08 +0900)]
[Tizen] Exclude test files for SAM

Exclude test files for SAM

Signed-off-by: gichan <gichan2.jang@samsung.com>
15 months ago[SVACE] Fix SVACE and coverity issue accepted/tizen/unified/20230424.185348
hyunil park [Fri, 21 Apr 2023 10:26:55 +0000 (19:26 +0900)]
[SVACE] Fix SVACE and coverity issue

- Fix SVACE and coverity issue

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[common] Set as error when flexible tensor is requsted for extra tensor
Yongjoo Ahn [Fri, 21 Apr 2023 09:07:38 +0000 (18:07 +0900)]
[common] Set as error when flexible tensor is requsted for extra tensor

- Extra tensors does not yet support flexible tensor.
- Set this case as error.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
15 months ago[common] Change the value of NNS_TENSOR_SIZE_EXTRA_LIMIT 200 -> 100
Yongjoo Ahn [Fri, 21 Apr 2023 08:54:14 +0000 (17:54 +0900)]
[common] Change the value of NNS_TENSOR_SIZE_EXTRA_LIMIT 200 -> 100

- Large stack use can be dangerous, decrease the value.
- 100 is still enough to the criteria

TODO: Change the tensor_filter code to allocate dynamically extra infos

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
15 months ago[TEST] Add TC for datarepo and tensor_trainer validation
hyunil park [Fri, 21 Apr 2023 04:22:11 +0000 (13:22 +0900)]
[TEST] Add TC for datarepo and tensor_trainer validation

- Add datareposrc TC
- Add datareposink TC
- Add tensor_trainer TC

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[datareposrc] Add tensor-sequence property
hyunil park [Fri, 24 Mar 2023 10:52:52 +0000 (19:52 +0900)]
[datareposrc] Add tensor-sequence property

- Tensors in a sample are read into gstBuffer according to input sequence.
- Only read the set tensors among all tensors in a sample.
- It is for other/tensors and default value is NULL.
- Add checking int param value

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[datareposink] Add json property
hyunil park [Mon, 10 Apr 2023 05:20:21 +0000 (14:20 +0900)]
[datareposink] Add json property

- Add setting JSON file path to write the meta information of a sample data
- Write gstreamer caps, sample size, and number of total samples
- In the case of flexible tensors, write the offset of each sample except the sample size

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[datareposrc] Add json property
hyunil park [Fri, 17 Mar 2023 05:23:31 +0000 (14:23 +0900)]
[datareposrc] Add json property

- Add setting json file path to read meta information of the file specified as locaton
- Add function to read and validate JSON file for each types
- The sample size is calculated from reading JSON file

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[API][tensor_trainer] Change type of structure member variable
hyunil park [Mon, 17 Apr 2023 05:42:59 +0000 (14:42 +0900)]
[API][tensor_trainer] Change type of structure member variable

- Change from int64_t to unsigned int
- Bug-fix: When passing values to a sub-plugin in an arm 32bit environment, invalid values are passed.
- Add function to Check invalid param
- Remove default framework
- Change some default value

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[test] Add a tflite inference test with 32 in/output model
Yongjoo Ahn [Thu, 23 Feb 2023 09:29:47 +0000 (18:29 +0900)]
[test] Add a tflite inference test with 32 in/output model

- Add a simple tflite model file with 32 inputs whose return
  values are 32 outputs (add 1.0 to each input)
- Add a unittest to test inference of the model.

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>