platform/upstream/nnstreamer.git
14 months ago[Converter/decoder] Support GRAY16 format
gichan2-jang [Tue, 22 Aug 2023 03:24:37 +0000 (12:24 +0900)]
[Converter/decoder] Support GRAY16 format

Support GRAY16 format for tnesor_converter and
tensor_decoder::direct_video.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
14 months ago[decoder] Fix yolov5 boundingbox dim check
Yongjoo Ahn [Mon, 21 Aug 2023 05:36:12 +0000 (14:36 +0900)]
[decoder] Fix yolov5 boundingbox dim check

- Let 0 dim value be acceptable for yolov5 decoder input's last values

Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com>
14 months agomemleak fix: decoder/bounding-box 2
MyungJoo Ham [Fri, 18 Aug 2023 06:43:28 +0000 (15:43 +0900)]
memleak fix: decoder/bounding-box 2

data->anchors is allocated at every init call without freeing.

Fixes #4187

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
14 months agomemleak fix: decoder/bounding-box
MyungJoo Ham [Fri, 18 Aug 2023 05:26:25 +0000 (14:26 +0900)]
memleak fix: decoder/bounding-box

"results" is allocated in ```_get_objects_mp_palm_detection_``` macro.
Do not allocate it before calling it.

Fixes #4185

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months agodist: force enable datarepo for Tizen/Ubuntu accepted/tizen/unified/20230818.183539
MyungJoo Ham [Mon, 14 Aug 2023 02:07:39 +0000 (11:07 +0900)]
dist: force enable datarepo for Tizen/Ubuntu

Force enable datarepo in Tizen/Ubuntu so that
we can prevent omitting it in the future accidently.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months agodatarepo: clean up meson scripts
MyungJoo Ham [Mon, 14 Aug 2023 02:03:49 +0000 (11:03 +0900)]
datarepo: clean up meson scripts

1. Make it 'feature' so that it can be resolved automatically.
2. Because it has an additional dependency, don't make it default true.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months ago[tensor_trainer] Add stop function to GstTensorTrainerFramework
hyunil park [Thu, 3 Aug 2023 06:40:09 +0000 (15:40 +0900)]
[tensor_trainer] Add stop function to GstTensorTrainerFramework

tensor_trainer calls this to stop model training being performed in a sub-plugin,
currently running epoch is finished to the end and sub-plugin saves the model

- Add function to stop model training
- Add ready-to-complete property to tensor_trainer
  User should set when the training is ready to be completed and saved.

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months agostyle: meson dep variable rule
MyungJoo Ham [Fri, 11 Aug 2023 10:01:18 +0000 (19:01 +0900)]
style: meson dep variable rule

- If it is in a dep-list, it should be a dep object. Results of find_program() is not a dep object. Fix it!
- If it is a dep-list, its name should end with 'deps', not 'dep'.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months agoedge: update include style
MyungJoo Ham [Fri, 11 Aug 2023 09:50:46 +0000 (18:50 +0900)]
edge: update include style

nnstreamer-edge.h is from another package. Use <> instead of "".

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months agotensor_query: nnstreamer-edge dependency fix
MyungJoo Ham [Thu, 10 Aug 2023 05:40:37 +0000 (14:40 +0900)]
tensor_query: nnstreamer-edge dependency fix

1. nnstreamer-edge.h is from another package. Use #include appropriately.
2. dependency on nnstreamer-edge is not expressed proprely in meson.

Potential issue: Android build w/ nnstreamer-edge might need further care in /jni

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months agotest: script updated for better fault handling.
MyungJoo Ham [Tue, 3 May 2022 03:33:17 +0000 (12:33 +0900)]
test: script updated for better fault handling.

If the test is not available (e.g., numpy is not available or
the tested feature is not built), don't test.

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months agofix: decoder/bounding-box mobilenet threshold logic
MyungJoo Ham [Wed, 9 Aug 2023 02:10:35 +0000 (11:10 +0900)]
fix: decoder/bounding-box mobilenet threshold logic

Let's not ignore labels that may have larger score after
the first label exceeding the threshold.

Fixes #4137

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
15 months ago[Edge] Add wait connection prop
gichan2-jang [Fri, 14 Jul 2023 02:16:26 +0000 (11:16 +0900)]
[Edge] Add wait connection prop

If wait-connection prop is set true, wait until edgesrc is connected and
don't drop the buffers.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
15 months ago[Tests] Update testcases to support 0-init dimension
Yelin Jeong [Mon, 12 Jun 2023 06:19:24 +0000 (15:19 +0900)]
[Tests] Update testcases to support 0-init dimension

This patch updates testcases to support dimension,
filled 0 by default.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
15 months ago[tensor] remove padded value of dimensions (0-init)
Yelin Jeong [Mon, 12 Jun 2023 06:14:24 +0000 (15:14 +0900)]
[tensor] remove padded value of dimensions (0-init)

This patch removes padded value of dimensions.
dimension in GstTensorInfo is 0 by default.

Signed-off-by: Yelin Jeong <yelini.jeong@samsung.com>
15 months ago[Svace] fix svace issue accepted/tizen/unified/20230808.074017
Jaeyun Jung [Fri, 4 Aug 2023 05:57:02 +0000 (14:57 +0900)]
[Svace] fix svace issue

Code clean, fix svace issues.
1. prevent duplicated free case.
2. handle returned val when mapping incoming buffer.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[Test/CodeClean] prevent duplicated free
Jaeyun Jung [Thu, 3 Aug 2023 12:47:40 +0000 (21:47 +0900)]
[Test/CodeClean] prevent duplicated free

Fix svace issue, set null to prevent duplicated free.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[tensor_trainer] Add load_model_path to GstTensorTrainerProperties
hyunil park [Thu, 27 Jul 2023 06:54:04 +0000 (15:54 +0900)]
[tensor_trainer] Add load_model_path to GstTensorTrainerProperties

- Add model_load_path to load an existing model to use for training a new model
- Add model_load_path property to tensor_trainer

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[datareposrc] Push GstBuffer according to framerate
hyunil park [Tue, 18 Jul 2023 01:01:11 +0000 (10:01 +0900)]
[datareposrc] Push GstBuffer according to framerate

datareposrc push GstBuffer according to framerate when sink element sets sync=true

- Set TIMESTAMP to GstBuffer
- Add function to calculate running_time for one frame

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[Documentation] Fix tizen reference link
seungha.son [Wed, 2 Aug 2023 10:28:52 +0000 (19:28 +0900)]
[Documentation] Fix tizen reference link

Tizen reference link has been changed and updated with the latest link.

 - How to install GBS : https://docs.tizen.org/platform/developing/installing/
 - How to build with GBS : https://docs.tizen.org/platform/developing/building/

Signed-off-by: seungha.son <linuxias@gmail.com>
15 months ago[Build/Tizen] allowed elements
Jaeyun Jung [Tue, 1 Aug 2023 11:45:03 +0000 (20:45 +0900)]
[Build/Tizen] allowed elements

Update allowed elements in tizen, clearly define the list of elements.

Signed-off-by: Jaeyun Jung <jy1210.jung@samsung.com>
15 months ago[Documentation] Remove some package related with tensorflow version 1.x
seungha.son [Mon, 31 Jul 2023 08:04:22 +0000 (17:04 +0900)]
[Documentation] Remove some package related with tensorflow version 1.x

 - Removed package : tensorflow-c-dev, tensorflow-lite-dev

Signed-off-by: seungha.son <linuxias@gmail.com>
15 months ago[Documentation] Add libjson-glib-dev package dependency
seungha.son [Thu, 27 Jul 2023 11:16:21 +0000 (20:16 +0900)]
[Documentation] Add libjson-glib-dev package dependency

 If there is no libjson-glib-dev package, occur meson build error below:

 Program sh found: YES (/usr/bin/sh)
 Run-time dependency json-glib-1.0 found: NO (tried pkgconfig and cmake)
 gst/datarepo/meson.build:7:0: ERROR: Dependency "json-glib-1.0" not found, tried pkgconfig and cmake

Signed-off-by: seungha.son <linuxias@gmail.com>
15 months ago[tensor_trainer] Add function to create a framework in the chain function
hyunil park [Fri, 14 Jul 2023 06:02:02 +0000 (15:02 +0900)]
[tensor_trainer] Add function to create a framework in the chain function

A pushed gstbuffer by some src-element(not datareposrc) is prerolled if set sync=true.
so, it needs to create a framework in the chain function
- Add function to create a framework in the chain function
- Modify code related g_cond_wait

Signed-off-by: hyunil park <hyunil46.park@samsung.com>
15 months ago[GitHub Action] Fix MacOS build failure
gichan2-jang [Fri, 28 Jul 2023 02:05:31 +0000 (11:05 +0900)]
[GitHub Action] Fix MacOS build failure

Don't install gstreamer-plugins.

Warning messages:
```
Warning: Formula gst-plugins-base was renamed to gstreamer.
Warning: Formula gst-plugins-good was renamed to gstreamer.
```

Related issue: https://github.com/Homebrew/brew/issues/15488
Bug report from the issue:  There is technically a bug here in that the dependency collector doesn't recognise multiple renames into one formula as being a single formula, so it tries to install gstreamer multiple times.

Signed-off-by: gichan2-jang <gichan2.jang@samsung.com>
15 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
16 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
17 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>
18 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>
18 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>