Hyunsoo Park [Mon, 23 May 2022 09:14:32 +0000 (18:14 +0900)]
mv_roi_tracker: Improve API usage
[Version] : 0.23.1-0
[Issue type] : code refactoring
For improving api usage convenient, some are modified.
- Remove coordinates parameter of 'mv_roi_tracker_create'.
- Add new API 'mv_roi_tracker_set_coordinate'
Change-Id: I5837e9ad524a8ba03b3b103c8eccb97ede60c4e0
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Inki Dae [Mon, 30 May 2022 00:47:08 +0000 (09:47 +0900)]
test/machine_learning: fix positive and negative counting
[Issue type] bug fix
Fixed positive and negative counting.
Change-Id: I4689fc496e3fa36c118163cd498c838c023a92c9
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Kwanghoon Son [Fri, 27 May 2022 02:24:21 +0000 (22:24 -0400)]
Add lcov exclude
[Version] 0.23.1
[Issue type] lcov
CPP files not fully supported by TCT.
Block lcov until covered by unit test.
Change-Id: I30e701414a4b05bea5593287d179cde168271c74
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Inki Dae [Mon, 30 May 2022 00:44:50 +0000 (09:44 +0900)]
mv_machine_learning: use resnet based facenet model
[Issue type] etc
Changed the backbone model to resnet based facenet model from
mobilenet based one. So this patch modifies input and output layer
information.
Change-Id: I3a94604232e1673c7cac24bba611c0961df7d258
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 27 May 2022 08:28:56 +0000 (17:28 +0900)]
mv_machine_learning: code cleanup with code sliding
[Issue type] : code cleanup
Cleaned up mv_inference_prepare and mv_inference_prepare_open functions
by doing code sliding. Four configuration functions don't have to be called
in mv_inference.c so move them to mv_inference_open.cpp
because they configure information required by Load function.
This is a cleanup work for gathering relevant code to same place
for next code refactoring.
Change-Id: I2c9627832c77888d084a4c7441d9f70fa46a4317
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 26 May 2022 06:22:58 +0000 (15:22 +0900)]
mv_machine_learning: code refactoring
[Version] : 0.23.2-0
[Issue type] : code refactoring
Did code refactoring like below,
- Move ConfigureBackendType function to Inference class and do not
keep the backend type in Inference class. Instead, pass the backend
type through Bind function directly.
- Rename ConfigureBackendType to CheckBackendType. Now this function
checks if a given backend type is valid or not when Bind function
is called.
- Add some exception code.
This is just a step for next code refactoring.
Change-Id: Id81ba442656823540c45be00bc398d961662b6b0
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 23 May 2022 09:34:59 +0000 (18:34 +0900)]
mv_machine_learning: code cleanup to mv_inference_open.cpp
[Version] : 0.23.1-0
[Issue type] : code cleanup
Cleaned up mv_inference_open.cpp module by dropping redundant code
and doing code sliding.
Change-Id: Iab8eab6465503a8403f0b029b094bbd49765d89d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Kwang Son [Tue, 24 May 2022 23:54:05 +0000 (19:54 -0400)]
Change gcov rpm packaging path
[Version] 0.23.0
[Issue type] Gcov
Change gcov package to show relative code path
gcov/obj/%{name} -> gcov/obj/%{name}/%{builddir}
Change-Id: I27895951a5e39d6b637ec9734a01b54f8679dfdc
Signed-off-by: Kwang Son <k.son@samsung.com>
Inki Dae [Fri, 20 May 2022 08:13:12 +0000 (17:13 +0900)]
mv_machine_learning: use Inference class
[Version] : 0.22.0-0
[Issue type] : code refactoring
Did code refactoring to Face Recognition Framework by making
it to use Inference class instead of InferenceEngineHelper class
which was a temporary class.
What this refactoring does,
- drop many duplicated code by removing InferenceEngineHelper class.
- introduce Run API to Inference class, which allows inference engine
to inference with buffer objects for preprocessing not required.
- disable data augmentation feature, which will be added later.
Change-Id: Ibb7454500821ef98de26e46ed1ce8971c1c23d57
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Hyunsoo Park [Fri, 20 May 2022 06:31:48 +0000 (15:31 +0900)]
mv_roi_tracker: update lib dependency
[Version] : 0.21.7-0
[Issue type] : bug fix
Change-Id: Ie04af3548435608c6cf0d485c831b9b730b8378f
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Inki Dae [Wed, 18 May 2022 06:35:39 +0000 (15:35 +0900)]
mv_machine_learning: Code refactoring to Prepare function
[Version] : 0.21.6-0
[Issue type] : code refactoring
Did code refactoring to mv_inference_open.cpp file by moving
some code to proper place and dropping Prepare function.
Only what Prepare function does is to check given target device types
and set them to a given backend engine but when BindBackend functin
is called in Inference class, SetTargetDevice is called.
It's code duplication and no need anymore.
In addition, call missed UnbindBackend call in error case.
Change-Id: I16aa6c79587175de89ea76891c10b8a75fa53de8
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 17 May 2022 10:15:19 +0000 (19:15 +0900)]
mv_machine_learning: code refactoring to mv_inference_open
[Version] : 0.21.5-0
[Issue type] : code refactoring
Did code refactoring to mv_inference_open.cpp file by moving
IsTargetDeviceSupported function to Inference class because
this function is valid only after Bind call. So no reason
for mv_inference_open.cpp to call IsTargetDeviceSupport function
to check if a given device type is valid or not.
And configure backend type as soon as getting the backend type from
the default ini file.
Change-Id: I5d51fb7c71fc737d111f0058e2b1c3ddf1ebf75f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 13 May 2022 07:39:40 +0000 (16:39 +0900)]
mv_machine_learning: code refactoring to Face Recognition
[Version] : 0.21.4-0
[Issue type] : code refactoring
Did code refactoring to Face Recognition Framework by doing,
- Make a top module of Face Recognition Framework to pass
backend engine information such as bacnend type and target device type.
- Move binding code of training engine to Initialize function from
RegisterNewFace and RecognizeFace functions. By doing this,
it enhance initial launching time because engine binding is done
only one time.
- Introduce ClearDataSet API which is a internal API of
TrainingModel class to drop all previous dataset data.
- Rename Prepare function to ImportLabel one because this function
imports the label data to in-memory from a file only now.
This is just a step for next code refactoring.
Change-Id: If8b4021793e62c290ce59362ed605215c2bf5e3e
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 13 May 2022 04:20:20 +0000 (13:20 +0900)]
mv_machine_learning: correct variable types and cleanup
[Version] : 0.21.3-0
[Issue type] : code cleanup
Corrected types of width and height values and dropped commeted code.
Change-Id: Ic94297e97b4ecb420675176a826a8df3febed134
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 12 May 2022 10:03:29 +0000 (19:03 +0900)]
mv_machine_learning: drop dead code
[Version] : 0.21.2-0
[Issue type] : code cleanup
Change-Id: I2939f8f21f798d40c4315ac628355d40d74ed0be
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 12 May 2022 09:55:51 +0000 (18:55 +0900)]
mv_machine_learning: pass mv_source_h instead of raw vector
[Version] : 0.21.1-0
[Issue type] : code cleanup
Cleaned up face recognition framework by passing mv_source_h
to face recognition framework instead of raw vector.
By doing this, converting mv_source_h to raw vector is done
in face recognition framework internally.
It is just a step for code refactoring to InferenceEngineHelper class.
Change-Id: I898e19bb8b1ba7d0380f45542ac7fbb8d01f5c59
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 11 May 2022 09:05:56 +0000 (18:05 +0900)]
mv_machine_learning: drop deprecated API
[Version] 0.21.0-0
[Issue type] code cleanup
Dropped the deprecated API and relevant code.
Change-Id: Id8d18955dd89a27eb56bc929bd79ae67741680de
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 11 May 2022 05:44:50 +0000 (14:44 +0900)]
test/machine_learning: do not verify label value
[Version] : 0.20.2-0
[Issue type] : fixup
Do not verify label name. Instead, just verify if API works or not,
and print out the accuracy.
Change-Id: I7432c7ee8055e49a8f51571aaf515a62f4747f75
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 11 May 2022 01:46:35 +0000 (10:46 +0900)]
mv_machine_learning: make abstract class
[Version] : 0.20.1-0
[Issue type] : code cleanup
Made two classes, DataSetManager and TrainingModel, as abstract class
by changing virtual functions to pure virtual ones.
Change-Id: I49d1cba4fd8fb96b065f18380f4b109928c1e1fe
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Hyunsoo Park [Tue, 26 Apr 2022 05:32:54 +0000 (14:32 +0900)]
mv_machine_learning: add tracker apis
[Version] : 0.20.0-0
[Issue type] : new feature
Tracking apis is track roi image are released.
Currently it is KCF algorithm based.
[CAPI Description]
mv_tracker_create
- Create tracker handle and set desired initial roi to be tracked.
mv_tracker_perform
- Return roi value in given frame based on initial roi.
It also return track result whether tracking is sucessful or not.
mv_tracker_destroy
- Destroy a given handle.
Change-Id: I8bdfd6d240892b843cf80acdc6aaa338736170b6
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Seungbae Shin [Fri, 6 May 2022 10:26:10 +0000 (19:26 +0900)]
mv_machine_learning: revise FeatureVectorManager class
[Version] 0.19.4-0
[Issue type] refactoring
- Remove unnecessary include from header files
- Make FeatureVectorManager as a abstract class
- Renaming for file stream object
- Use an initialization constructor for fstream
- Apply some useful keyword to help readability
- Remove unnecessary fstream manual closing due to RAII
Change-Id: I0793fb1fd186a3a11bf3fe67b7806e1b8b3ca3da
Seungbae Shin [Fri, 6 May 2022 05:13:28 +0000 (14:13 +0900)]
Fix SVACE defects
[Version] 0.19.3-0
[Issue type] Svace
- SIGNED_TO_BIGGER_UNSIGNED
- INTEGER_OVERFLOW
Change-Id: I0bbc17a0a789071b226a1d3d843fdb540bf4686a
Seungbae Shin [Wed, 27 Apr 2022 05:49:04 +0000 (14:49 +0900)]
mv_machine_learning: refactoring ml exception
[Version] 0.19.2-0
[Issue type] refactoring
- Add BaseException class, an abstract class to handle error code.
- Remove default parameter if possible which is not that useful.
- Remove unnecessary catch section if just propagating is performed.
- Catch by const reference.
Change-Id: Ia720ccbd6dfc8a0ad46d600f62534026df3a7d88
Seungbae Shin [Thu, 21 Apr 2022 01:29:23 +0000 (10:29 +0900)]
mv_machine_learning: Fix UNINIT.CTOR.MANY defect on testsuite
[Version] : 0.19.1-0
[Issue type] Svace
Change-Id: I47d5a6a5e70724aff5d49d51f0ee2901105047e6
Inki Dae [Wed, 20 Apr 2022 05:39:44 +0000 (14:39 +0900)]
mv_machine_learning: add accuracy measurement app for face recognition
[Version] : 0.19.0-0
[Issue type] : new feature
Added an application for measuring the accuracy of face recognition.
Change-Id: I0d41f9619b09dd93b544a77cce6d187b3f7a7723
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 15 Apr 2022 01:50:39 +0000 (10:50 +0900)]
mv_machine_learning: tune face recognition
[Version] : 0.18.4-0
[Issue type] enhancement
Tuned face recognition accuracy by dropping flip data augmentation and
chaning decision threshold value.
Change-Id: I505628a1d64ff4460eb2760bc9cedb40fd7e65a8
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 15 Apr 2022 01:45:51 +0000 (10:45 +0900)]
mv_machine_learning: handle exception case correctly
[Version] 0.18.3-0
[Issue type] : bug fix
Handled an exception case correctly. In case that internal model file
doesn't exist, this patch returns MEDIA_VISION_ERROR_INVALID_PATH
so that app can check such exception case correctly.
Change-Id: I2494ebaf69931c470ff1a7b82e581745030a0edd
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 8 Apr 2022 06:12:17 +0000 (15:12 +0900)]
mv_machine_learning: call prepare at inference request
[Version] : 0.18.2-0
[Issue type] : bug fix
Called Prepare function at inference request because
training model file can be updated in runtime so
every time inference is requested model and relevant
data should be loaded again.
Change-Id: If3c39d24ea7121262818a811ce433ffe505b94df
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Tue, 5 Apr 2022 03:11:06 +0000 (12:11 +0900)]
Revert yolov5 test cases
[Version] 0.18.1-0
[Issue type] revert
After redesigning test cases of yolov5 test cases, it will be back.
Now, revert them.
Change-Id: I475a74448fd011f33d162d7ba3974a0ce01baa3c
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Inki Dae [Wed, 30 Mar 2022 10:03:40 +0000 (19:03 +0900)]
mv_machine_learning: code refactoring to face recognition
[Version] : 0.18.1-0
[Issue type] : code refactoring
Did code refactoring to face recognition framework.
What this refactroing does
- Use unique_ptr instead of shared_ptr by moving data augmentation feature
dependency to FaceRecognition class.
- Drop duplicated resize operatioon of data augmentation.
- Drop mv_face_recognition_configure function not needed anymore.
Change-Id: I2aceabf82284497f84abe8395d3805315e15185e
Inki Dae [Tue, 29 Mar 2022 03:51:08 +0000 (12:51 +0900)]
mv_machine_learning: add data augmentation feature
[Version] 0.18.0-0
[Issue type] new feature
Added data augmentation feature which generates several input images
preprocessed in various ways to extend a given input data to mutiple
ones. With this feature, the accuracy is a little improved.
So this patch also corrects a wrong expected answer of test case.
As of now, this feature supports two preprocessing classes - horizontal
flip and rotation, and it uses default and flip classes in default.
Change-Id: I0e18e761c020ffaa8e4cca660f631413c3d5c69c
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 22 Mar 2022 12:15:08 +0000 (21:15 +0900)]
mv_machine_learning: make sure to release previous data
[Version] : 0.17.3-0
[Issue type] : bug fix
mv_face_recognition_prepare function can be called several times
after mv_face_recognition_create function is called one time.
So make sure to drop previous data every time mv_face_recognition_prepare
function is called.
Change-Id: I9626c959d80f981562c4666b64503834ccdbfbbf
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 22 Mar 2022 09:53:42 +0000 (18:53 +0900)]
add library dependency to training library
[Version] : 0.17.2-0
[Issue type] : bug fix
Added opencv_imgcodecs library dependency to training library.
Change-Id: Ia7da6e2271051ac5fc283661e59d59c2c4202a59
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 21 Mar 2022 10:31:14 +0000 (19:31 +0900)]
update pc files
[Version] : 0.17.1-0
[Issue type] : bug fix
Updated pc files for training and face recognition modules.
Change-Id: I317fa6d9839d876d45033015faef41e6291fde16
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 11 Mar 2022 05:18:05 +0000 (14:18 +0900)]
mv_machine_learning: add face recognition framework
[Version] 0.17.0-0
[Issue type] new feature
Added face recognition framework based the training engine, NNTrainer[1]
[CAPI Description]
mv_face_recognition_create
- Create face recognition handle.
mv_face_recognition_destroy
- Destroy a given handle.
mv_face_recognition_prepare
- Configure face recognition with a given configuration file,
media-vision-config.json, and prepare some resources for
face recognition service.
mv_face_recognition_register
- Register a given new face, which is an process to train the given face
and generate a internal model.
mv_face_recognition_unregister
- Remove a given label relevant all resource data from feature vector,
label files, and regenerate a internal model.
mv_face_recognition_inference
- Inference with a given face image and the trained model, and return
proper label related to the face image.
[How to use CAPI]
Refer to FaceRecognitionTest test case of
test/testsuites/machine_learning/face_recognition/test_face_recognition.cpp
[1] https://github.com/nnstreamer/nntrainer
Change-Id: I8410b515ae90772185772b4b1c49ba0da7885f98
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Tue, 22 Feb 2022 06:30:50 +0000 (15:30 +0900)]
Fix bugs
[Version] 0.16.2-0
[Issue type] bug fix
1. Fix INVARIANT_RESULT.OP_ZERO
- In case of GetLandmarkType(), its' return values are limited to the
landmark type enumeration so that checking the return value of
GetLandmarkType() is meaningless
2. Check null after malloc()
3. Initialize member variable in class ctor
Change-Id: I0e23298ffcb7760eb86e24e37347eae5e992e421
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Kwang Son [Mon, 28 Feb 2022 00:26:59 +0000 (19:26 -0500)]
mv_barcode: Fix log level
return error code log should be error
[Version] 0.16.1-0
[Issue type] bug fix
Change-Id: I6c19709c56a6882807f8bfa1d0b3586d86e0010f
Signed-off-by: Kwang Son <k.son@samsung.com>
Inki Dae [Thu, 24 Feb 2022 09:23:26 +0000 (18:23 +0900)]
mv_machine_learning: refactoring to directory structure
[Version] 0.16.0-0
[Issue type] code refactoring
Moved inference directory to top one and dropped mv_inference.
Old directory structure
------------------------
mv_machine_learning --- mv_inference --- inference
New directory structure
-----------------------
mv_machine_learnizng --- inference
Change-Id: I2d53aee269c95972e01086697245cb23aa8cf7b2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Wed, 16 Feb 2022 07:01:05 +0000 (16:01 +0900)]
machine_learning: update YOLO-V5 inference
[Version] 1.15.1-0
[Issue type] Update
Yolo-V5's output is 1x10647x85 in case of an input has [416, 416]. But, a converted dlc (snpe) from onnx has 1x13x13x255 without processing anchor box.
This commit includes a patch handling that kinds of models even though results are weird.
Change-Id: I5d53f72bc3896b92a5a59442190e2767887fd22d
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Inki Dae [Tue, 8 Feb 2022 10:24:50 +0000 (19:24 +0900)]
code refactoring to testsuites for machine learning
[Version] : 0.15.0-0
[Issue type] : new feature
Did code refactoring to test suites for machine learning by
dropping code duplication and providing user given target device type.
Change-Id: I7e9b8df902af9c45d6d878b28a4e77e127e16982
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 28 Jan 2022 04:04:58 +0000 (13:04 +0900)]
mv_machine_learning: apply inference engine profiler support
[Version] : 0.14.0-0
[Issue type] : new feature
Applied inference engine profiler support which provides
a build option for disabling or enabling inference engine profiler
in runtime. In default the profiler is disabled.
Change-Id: Ie85c078c52bf6f23017e50d91158af9b4a37d113
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Fri, 28 Jan 2022 01:02:56 +0000 (10:02 +0900)]
face: fix typo
[Version] 0.13.2-0
[Issue type] bug fix
Change-Id: Ib24296ab0f428d001f718a6ba16c248e96b40982
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 26 Jan 2022 01:28:37 +0000 (10:28 +0900)]
testsuite: Move helper functions before caller functions
[Version] 0.13.1-0
[Issue type] bug fix
Some functions call helper functions which are just defined behind them
without any declaration so that 'implicit declaration function' warning occurs.
Instead of declaring prototype, just move them to before the some function.
Change-Id: I5defa81ba22f39981eb97553dda78d3191d49ff0
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 25 Jan 2022 07:18:19 +0000 (16:18 +0900)]
mv_machine_learning: support YOLO-V5 inference
[Version] 0.13.0-0
[Issue type] new feature
Change-Id: I6dd5d13904e7c201693441494f87deba42f35924
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Hyunil [Wed, 5 Jan 2022 08:45:05 +0000 (17:45 +0900)]
mv_machine_learning: fix typo
[Version] 0.12.1-0
[Issue type] fix typo
Change-Id: If058f551b3f5cdf92855d7e9ec95b1066d120c28
Signed-off-by: Hyunil <hyunil46.park@samsung.com>
Hyunsoo Park [Tue, 19 Jul 2022 04:37:16 +0000 (13:37 +0900)]
docs: fix typo
[Version] 0.12.13-0
[Issue type] doc update
Change-Id: Ib637bb2086da549499558e2fd8dafd032015438b
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Hyunsoo Park [Thu, 14 Jul 2022 02:20:08 +0000 (11:20 +0900)]
docs: fix typo
[Version] 0.12.12-0
[Issue type] doc update
Change-Id: I660abc56ae1ae60ac39139197d1170fb8b9e88be
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Hyunsoo Park [Mon, 4 Jul 2022 07:44:26 +0000 (16:44 +0900)]
[ACR-1706] mv_image: add return value
From this patch,
'mv_image_tracking_model_set_target' api could return MEDIA_VISION_ERROR_INVALID_OPERATION
when 'CascadeTracker' is null.
Change-Id: I73b50d9a5b9dd5a592370d1d7c30973402b661a0
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Hyunsoo Park [Mon, 4 Jul 2022 04:59:13 +0000 (13:59 +0900)]
mv_image: Fix bugs
[Version] 0.12.11-0
[Issue type] bug fix
Return if 'CascadeTracker' is null.
Change-Id: Ica09a490d8dc9cd9268172d3c1a1a05d6cf1472a
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Kwanghoon Son [Thu, 2 Jun 2022 06:07:25 +0000 (02:07 -0400)]
Fix implicit declaration function
Use before function declaration and this makes wrong function usage.
[Version] : 0.12.10-0
[Issue type] : Bug fix
Change-Id: I2f8cc1386acd6c2d6afb098729140fe070725424
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Kwanghoon Son [Thu, 2 Jun 2022 05:43:32 +0000 (01:43 -0400)]
Exclude line coverage test files
[Version] : 0.12.9-0
[Issue type] : Bug fix
Change-Id: Ie3ed102e0bd30332cd4d5efaadc56425a8e84edd
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
Kwang Son [Tue, 24 May 2022 23:54:05 +0000 (19:54 -0400)]
Change gcov rpm packaging path
[Version] 0.12.8
[Issue type] Gcov
Change gcov package to show relative code path
gcov/obj/%{name} -> gcov/obj/%{name}/%{builddir}
Change-Id: I27895951a5e39d6b637ec9734a01b54f8679dfdc
Signed-off-by: Kwang Son <k.son@samsung.com>
Hyunsoo Park [Mon, 23 May 2022 05:36:24 +0000 (14:36 +0900)]
docs: Fix typo
[Version] 0.12.7-0
[Issue type] Fix typo
Change-Id: I894675ef5904bd9d10a9b4d40218eafed81db989
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
sangho park [Mon, 9 May 2022 05:53:43 +0000 (14:53 +0900)]
clean up manual file copy
[Version] 0.12.6-0
[Issue type] cleanup
delete hard copy commands in spec file and implement in CMakeLists.txt
Change-Id: I75841678480972f2a270b84db6fc533e006e1d5d
Signed-off-by: sangho park <sangho.g.park@samsung.com>
sangho park [Tue, 29 Mar 2022 02:07:41 +0000 (11:07 +0900)]
fix cmake_minimum_required() deprecation warning.
[Version] : 0.12.5-0
[Issue type] : Bug fix
Change-Id: I6b178d31b204ebdc38860bd82ed942867782ee0f
Signed-off-by: sangho park <sangho.g.park@samsung.com>
Tae-Young Chung [Tue, 22 Feb 2022 06:30:50 +0000 (15:30 +0900)]
Fix bugs
[Version] 0.12.4-0
[Issue type] bug fix
1. Fix INVARIANT_RESULT.OP_ZERO
- In case of GetLandmarkType(), its' return values are limited to the
landmark type enumeration so that checking the return value of
GetLandmarkType() is meaningless
2. Check null after malloc()
3. Initialize member variable in class ctor
Change-Id: I0e23298ffcb7760eb86e24e37347eae5e992e421
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 21 Jan 2022 00:28:32 +0000 (09:28 +0900)]
face/image: Add opencv's tracking header files
[Version] 0.12.3-0
[Issue type] Update
From OpenCV-4.5.3, a tracking module is moved to contrib
and some tracking modes is changed to legacy.
Change-Id: Ibdfcc89abf5f10a8d874da81ab3fc4601cec5423
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Kwang Son [Thu, 20 Jan 2022 04:15:07 +0000 (23:15 -0500)]
packaging: Change gcov object install path
[Version] : 0.12.2-0
[Issue type] : feature request
Change gcov install path with append package prefix for better
directory structure.
Change-Id: Icf586a264e1f8a37db31c134e5e2ea9f82968e21
Signed-off-by: Kwang Son <k.son@samsung.com>
Inki Dae [Tue, 11 Jan 2022 11:26:14 +0000 (20:26 +0900)]
test/machine_learning: fix device attribute type
[Version] : 0.12.1-0
[Issue type] : bug fix
Fixed device attribute type. Legacy device attribute type has been
deprecated so use new one.
Change-Id: Ia31a5be01595e6d39f3dff783e5b4d0982987e86
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Mon, 20 Dec 2021 09:01:24 +0000 (18:01 +0900)]
inference: support movenet
[Version] 0.12.0
[Issue type] new feature
Movenet models with variants, Lightning3/4 and Thunder3/4, are supported.
Models can be downloaded from tfhub.dev and
meta files for the models are added as examples.
In addition, testsuite with those Movenet models are updated.
Change-Id: I1c526cba688842e408fad1c84ba7dff4d0320e80
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Inki Dae [Fri, 31 Dec 2021 01:50:53 +0000 (10:50 +0900)]
mv_maching_learning: deprecate MLAPI and MAX types
[Version] : 0.11.0-0
[Issue type] : cleanup
Deprecated MV_INFERENCE_BACKEND_MLAPI and MV_INFERENCE_BACKEND_MAX types.
MV_INFERENCE_BACKEND_MLAPI is not backend type but other API framework,
and another may break the binary compatibility when adding a new enumeration
value because MAX value is different from one of the binary
So drop these two types.
Change-Id: I391cd0d4b713e3d35fe263f1567f4cea3df60630
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 28 Dec 2021 10:31:33 +0000 (19:31 +0900)]
test/machine_learning: add snpe model support
[Version] : 0.10.0-0
[Issue type] : new feature
Added a test case for SNPE engnie with dlc model.
Change-Id: I7d20f9974300130ddeaf4e8eb77482d89dee0b9d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 24 Nov 2021 08:39:23 +0000 (17:39 +0900)]
mv_machine_learning: add SNPE inference engine support
[Version] : 0.9.0-0
[Issue type] : new feature
Change-Id: Iabfc4932d808296c8941bc8bbacf88b9fbe09616
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 18 Oct 2021 07:06:27 +0000 (16:06 +0900)]
mv_machine_learning: code refactoring to property parsing
Did code refactoring to propery parsing of BoxInfo and Landmark classes.
What this patch did,
- Move parseLabel, ParseNumber, ParseDecodeInfo functions from
OutputMetadata class to BoxInfo one because these properties
are related to BoxInfo class not OutputMetadata class.
- Move parseDisplayment, parseEdgeMap, parseDecodeInfo functions from
OutputMetadata class to Landmark one because these properties
are related to Landmark class not OutputMetadata class.
This is just one step for next code refactoring.
Change-Id: I0a17ee29f492bee53acacab339ba746a44495790
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 14 Oct 2021 06:43:59 +0000 (15:43 +0900)]
mv_machine_learning: code refactoring to OutputMetadata module
OutputMetadata.h and cpp files contain many classes and relevant
code so it makes maintenance too hard.
The biggest change of this refactoring is to separate many classes
in OutputMetadata file into each one. And also it changes unnecessary
class type to struct including several cleanups such as code sliding,
renaming and dropping unnessary code.
Change-Id: I0ce677d333ce3a3e7212f7d26a20b6cf77bc7a9a
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 13 Oct 2021 09:55:41 +0000 (18:55 +0900)]
mv_machine_learning: code cleanup to Inference class
Cleaned up Inference class.
What this patch does,
- code sliding.
- change variable name to meaningful one such as 'n' to 'output_idx'.
- drop unnecessary variable.
- use same parameter name for Get*Results functions.
Change-Id: I47ac3eb241116174e4a6a7bc2a1b90ab9378de25
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 7 Oct 2021 10:03:23 +0000 (19:03 +0900)]
mv_machine_learning: code refactoring to input and output metadata classes
Did code refactoring to InputMetadata and OuputMetadata.
The biggest change of this patch is to delegate all requests
of various metadata relevant classes to InputMetadata and
OutputMetadata classes to mitigate Inference class dependency of
Metadata things.
In addition, it makes several classes declared in BoxInfo class to get out
, and changes class to struct in case that class functionality isn't needed.
And some cleanup and code sliding.
This is just one step for next code refactoring.
Change-Id: I92c4e2b2c77499246c56a237282c05262550301a
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 7 Oct 2021 06:30:36 +0000 (15:30 +0900)]
mv_machine_learning: code cleanup to GetFacialLandMarkDetectionResults function
Did code cleanup to GetFacialLandMarkDetectionResults function
by doing,
- code sliding
- change variable name to meaningful name for readability.
Change-Id: Ib59786c085c8202a1f7d9eb85a01d528220c728f
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 30 Sep 2021 10:45:34 +0000 (19:45 +0900)]
test/machine_learning/inference: add test cases for legacy path
Added test cases for legacy path of inference engine, which uses
user-given model information instead of ones from json file.
As for this, this patch has a little bit code refactoring which
uses parameterized test instead of fixture one of google test
to decide API path in runtime - json or legacy.
This patch enlarges exsiting test coverage from 119 to 132 test cases.
[==========] 132 tests from 6 test suites ran. (49021 ms total)
[ PASSED ] 132 tests.
Change-Id: I9829725aad8037cbe5a82d50e7790a3e7a6bfe6b
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Wed, 29 Sep 2021 09:37:43 +0000 (18:37 +0900)]
mv_machine_learning: code refactoring to GetClassificationResults function
Did code refactoring to GetClassificationResults member function of Inference class
for next code refactoring.
What this patch did are,
- drop code dependency of mPreProc from Inference class.
- drop code duplication of getting image classification result by
making same code to be used.
- and code sliding.
Change-Id: I721dc3081f730fcdb75dbe91ad743f906e076ea4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 27 Sep 2021 09:27:31 +0000 (18:27 +0900)]
mv_machine_learning: code refactoring to GetPoseLandmarkDetectionResults function
Did code refactoring to GetPoseLandmarkDetectionResults function of
Inference class by dropping Inference class dependency to mPoseResult object.
What this path did are,
- use smart pointer instead of new operator, and make postResult
object to be valid only in mv_inference_pose_landmark_detect_open
function context.
- drop some unnecessary local variables.
- and code sliding.
The biggest change of this patch is to drop Inference class dependency
of mPoseResult object for next code refactoring. As as result,
it drops one brace from GetPoseLandmarkDetectionResults function and makes
the function to be more simplified for code readability enhancement.
Change-Id: I25d1a175571d407404c088713a14e485496b2920
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 27 Sep 2021 07:49:21 +0000 (16:49 +0900)]
mv_machine_learning:code refactoring to Inference.cpp
Did code refactoring to Inference.cpp module for next code
refactoring work.
What this patch did are,
- just drop all unnecessary members of Inference class
- and gather some spreaded code to relevant place.
Change-Id: I2fa00af5b0b8701c4bdbbf62d07a2f9f2ef2bc85
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Fri, 24 Sep 2021 03:03:11 +0000 (12:03 +0900)]
test: Add meta files
Change-Id: I765ba21d3be44ac6305c6c5ffcdddf4ccdac746b
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Inki Dae [Fri, 17 Sep 2021 06:37:21 +0000 (15:37 +0900)]
mv_machine_learning: make IsXXX functions simplified
This patch changes existing code to just "return condition",
and declare IsJsonFile function as static function because
this function is used only in this module.
Change-Id: I86d8959ef32e382e4a0be76cbdc7ff781cede6e4
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 17 Sep 2021 04:40:52 +0000 (13:40 +0900)]
mv_machine_learning: code refactoring to checking custom device type
This patch does code refactoring for enhancing code readiability
of the condition which checks if config type path is required or
not according to given backend and target device types.
As for this, this patch adds IsValidBackendType fucntion to check if
a given backend type is valid or not, IsConfigFilePathRequired
function to check if config file path is required or not, and
makes these functions to be used instead of existing complicated condition.
Change-Id: I195e3caeb205b159e2128a14c2b4b6516e7b952d
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Kwang Son [Fri, 17 Sep 2021 01:04:05 +0000 (21:04 -0400)]
test: Add TestPoseLandmarkDetection
Change-Id: Iebbfda014bbf9e6bf0db68c79b675f9879b7de5d
Signed-off-by: Kwang Son <k.son@samsung.com>
Kwang Son [Wed, 15 Sep 2021 01:29:16 +0000 (21:29 -0400)]
test: Add TestFaceLandmarkDetection
Change-Id: Ia54e4183c0a50044441b96fb991abe19741f8b3a
Signed-off-by: Kwang Son <k.son@samsung.com>
Inki Dae [Wed, 15 Sep 2021 07:07:51 +0000 (07:07 +0000)]
Merge "mv_machine_learning: code cleanup for refactoring" into tizen_devel
Kwang Son [Wed, 15 Sep 2021 04:15:07 +0000 (00:15 -0400)]
meta-template: fix json parse error
Change-Id: I03607e65fa52f6f048333943a97cb5cd23576ee1
Signed-off-by: Kwang Son <k.son@samsung.com>
Inki Dae [Tue, 14 Sep 2021 06:55:36 +0000 (15:55 +0900)]
mv_machine_learning: code cleanup for refactoring
Cleaned up mv_inference_open.cpp module for code refactoring.
What cleanups are,
- correct variable name which doesn't clarify what the name means.
- change goto label name to be meaningful with resource release issue.
- drop unnecessary code.
- move code so that relevant code could be grouped together.
This patch is just one step of what we have to for code refactoring.
Change-Id: Ia744508e0318d6558a0f4901a90d7ac8a14634e2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 7 Sep 2021 07:21:52 +0000 (16:21 +0900)]
test: set meta file path
Since commit-id
c4e918cda1ef97fdd5e5cf74dd056b65407ab671,
Mediavision needs a json file per a model.
This patch makes json file path using a given model file path
and sets it in case of reference model.
Change-Id: I51c9721fbebeb6c79abeb67faa193b9580bbae95
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 7 Sep 2021 05:12:24 +0000 (14:12 +0900)]
mv_machine_learning: drop GetResults function
This function isn't used so drop it.
Change-Id: I4c3b95bb3716d14bd42dc1531b9be6f33d958a62
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 7 Sep 2021 03:59:07 +0000 (12:59 +0900)]
mv_machine_learning: introduce allocate function for TensorBuffer class
Added allocate function to allocate buffers for input and output tensors.
This patch drops code duplication - same code was used to allocate
input and output tensor buffers.
Change-Id: I0cfb46633a9a3fe74c734307ac9c15b5df064e63
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 7 Sep 2021 07:21:52 +0000 (16:21 +0900)]
test: set meta file path
Since commit-id
c4e918cda1ef97fdd5e5cf74dd056b65407ab671,
Mediavision needs a json file per a model.
This patch makes json file path using a given model file path
and sets it in case of reference model.
Change-Id: I51c9721fbebeb6c79abeb67faa193b9580bbae95
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 7 Sep 2021 05:12:24 +0000 (14:12 +0900)]
mv_machine_learning: drop GetResults function
This function isn't used so drop it.
Change-Id: I4c3b95bb3716d14bd42dc1531b9be6f33d958a62
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 7 Sep 2021 03:59:07 +0000 (12:59 +0900)]
mv_machine_learning: introduce allocate function for TensorBuffer class
Added allocate function to allocate buffers for input and output tensors.
This patch drops code duplication - same code was used to allocate
input and output tensor buffers.
Change-Id: I0cfb46633a9a3fe74c734307ac9c15b5df064e63
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Tae-Young Chung [Wed, 8 Sep 2021 10:06:17 +0000 (10:06 +0000)]
Merge "Skip ParseMetadata() if a metadata json file doesn't exist" into tizen
Hyunsoo Park [Tue, 7 Sep 2021 10:44:13 +0000 (19:44 +0900)]
Fix coverity issue(RESOURCE_LEAK/UNINIT)
Change-Id: I13e283e496dc815cf5a168df3a365b83f4c3cf83
Signed-off-by: Hyunsoo Park <hance.park@samsung.com>
Tae-Young Chung [Wed, 8 Sep 2021 01:14:23 +0000 (10:14 +0900)]
Skip ParseMetadata() if a metadata json file doesn't exist
Change-Id: Ibfc01bd79fe300447034f7504c4573abec47223a
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 3 Sep 2021 03:58:27 +0000 (12:58 +0900)]
Add MV_INFERENCE_MODEL_META_FILE_PATH attribute and deprecate some attributes which can be described in a metafile
Deprecate attributes
- MV_INFERENCE_MODEL_MEAN_VALUE
- MV_INFERENCE_MODEL_STD_VALUE
- MV_INFERENCE_INPUT_TENSOR_WIDTH
- MV_INFERENCE_INPUT_TENSOR_HEIGHT
- MV_INFERENCE_INPUT_TENSOR_CHANNELS
- MV_INFERENCE_INPUT_DATA_TYPE
- MV_INFERENCE_INPUT_NODE_NAME
- MV_INFERENCE_INPUT_OUTPUT_NODE_NAMES
- MV_INFERENCE_OUTPUT_MAX_NUMBER
- MV_INFERENCE_CONFIDENCE_THRESHOLD
Change-Id: I340b6c2fa3872dd682bc2f60d45007ffb87a46b5
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 3 Sep 2021 01:14:32 +0000 (10:14 +0900)]
Remove unnecessary dim_type metadata
Change-Id: Ied3b116ad0e34becd9e87caafa59de8069f2639f
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 2 Sep 2021 07:04:05 +0000 (16:04 +0900)]
Change offset's shape_type and displacement's shape_type and type to string
Change-Id: Ide16c57e44532d10e9633a1399c6d787991baf33
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 31 Aug 2021 08:09:49 +0000 (17:09 +0900)]
Change Landmark's landmark_type, landmark_coordinate, and decoding_type to string
A user can use the string while understanding purpose of
landmark_type, landmark_coordinate, and decoding_type metadata.
The string values are parsed and converted to enumeration type
inference_landmark_type_e, inference_landmark_coordinate_type_e,
and inference_landmark_decoding_type_type_e, respectively.
Change-Id: Ia3a4098213a712ffd1927838d7b9931d1edfcbd0
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 31 Aug 2021 00:08:29 +0000 (09:08 +0900)]
Fix missing goto _ERROR_
Change-Id: I07f7cc7dfd90677b6d8fdbe3f82068490406562b
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 30 Aug 2021 12:25:11 +0000 (21:25 +0900)]
Change int CheckSupportedTargetDevice() to bool IsTargetDeviceSupported() and print format of targetDevices.
Change-Id: I1f9e92634a09f1f93222762cea93f0d25a71aeee
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 25 Aug 2021 04:57:13 +0000 (13:57 +0900)]
Change behavior before and after pInfer->Bind()
In Inference::Bind(), pInfer->Bind(), mConfig.mTargetTypes is used.
But, mConfig.mTargetTypes is set by pInfer->ConfigureTargetTypes and
pInfer->ConfigureTargetDevices after pInfer->Bind().
So we change the behavior as follows.
before pInfer->Bind(),
mConfig.mTargetTypes is set by pInfer->ConfigureTargetTypes().
After pInfer->Bind(),
pInfer->CheckSupportedTargetDevice() just checks the mConfig.mTargetTypes
is supported or not.
Change-Id: I79d2dc6372aac0c503783fb9fef2b4eccecbb018
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 24 Aug 2021 08:46:39 +0000 (17:46 +0900)]
Fix '!=' operator to '&' for supported_accel_devices bitwise comparison
Change-Id: Ief7d7deebcc9e2fcac83ff98f9b01f0c40e09f38
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 24 Aug 2021 07:04:37 +0000 (16:04 +0900)]
Fix mv_engine_config_set_int_attribute() to mv_engine_config_set_string_attribute()
Change-Id: Ic6e10c1739746ca01eb29da68901dfd4dc0762db
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 24 Aug 2021 02:29:59 +0000 (11:29 +0900)]
Add return value handling
error should be returned when exception is catched and
is handled properly.
Change-Id: If669515f2b573d3c96165647bd8eaca852d373b1
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 23 Aug 2021 06:38:13 +0000 (15:38 +0900)]
Change BoxInfo's box_coordinate, decoding_type and NMSParam's mode to string
A user can use the string while understanding purpose of
box_coordinate, decoding_type, and mode metadata.
The string values are parsed and converted to enumeration type
inference_box_coordinate_type_e, inference_box_decoding_type_e,
and inference_box_nms_type_e, respectively.
Change-Id: I4419a288f070456c9f8d411feed7706cd0f806f0
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>