summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Tae-Young Chung [Wed, 3 Jul 2024 05:03:26 +0000 (14:03 +0900)]
Fix bug to calcuate current data to previous data
Change-Id: I3487224838ff49cd877766d74bfa6fe36c74f560
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 3 Jul 2024 04:23:02 +0000 (13:23 +0900)]
Add Euclidean distance to be stable for tracking points
Change-Id: I11452a96c639aafb6d25fde1405f3b7c1f3b1802
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 2 Jul 2024 08:53:01 +0000 (17:53 +0900)]
Add IoU to be stable for tracking
Change-Id: I5fa0c8682b1898d00340bfec4112f3be0edb4011
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 2 Jul 2024 07:44:05 +0000 (16:44 +0900)]
Rotate faceShape
Change-Id: I778007e9af5d0443808589581994f046e025af23
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 1 Jul 2024 09:07:31 +0000 (18:07 +0900)]
Change transition matrix value in kalman filter
Change-Id: Ie27bd7fdbed7ba7d92e2a882d3002202c69e9b0d
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 1 Jul 2024 08:47:03 +0000 (17:47 +0900)]
Add VelociMeter to measure angle velocity and add DisplayInfo to get display information
Change-Id: I9aae596143754c2965995eda1adc0f728ca4a129
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 27 Jun 2024 05:36:57 +0000 (14:36 +0900)]
Fix bugs
- Fix wrong camera parameter files
- Get rotation results as Euler angle (Rad) not Rodrigues
- Get translation results as double, not float
Change-Id: I6fd847399b91ce16c559aa411f8452c83dbea923
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 25 Jun 2024 06:51:30 +0000 (15:51 +0900)]
Add signal handler stopping
Change-Id: I46825867b78620fed18e0453417b7921cbc12ac3
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 25 Jun 2024 06:36:12 +0000 (15:36 +0900)]
Add DisplayInfo which provides physical and resolution size
Change-Id: I664af5fea52435ee2a8450294a22a6f8a7b24ed2
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 25 Jun 2024 03:54:04 +0000 (12:54 +0900)]
Fix sigabort because of unhandled output of bound of cv::Rect
Change-Id: Ie6a0924a930bcbe4a8370bf08fa312c735e3c91d
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 24 Jun 2024 08:26:58 +0000 (17:26 +0900)]
Add IPointer and its tizen implementation to control mouse cursor
Change-Id: I4ec65cb90282a18bf051c64af46aa86ec2a2a520
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 5 Jun 2024 08:59:01 +0000 (17:59 +0900)]
Support HandGestureRecognizer
Change-Id: I78b130e413cacfb04607c8d600321ff620882616
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 28 May 2024 06:06:17 +0000 (15:06 +0900)]
Add _gesture_recognizer of HandGestureRecognizer to SmartPointer as a
member variable
Change-Id: I03a6e1af77db9b3e77d47b37716b6364266b49e0
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 28 May 2024 05:18:46 +0000 (14:18 +0900)]
Delete an unused file from inference/CMakeLists.txt
Change-Id: I12b85d730078fbdba3f3b659b6a1d2c95c3a331a
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 28 May 2024 05:15:06 +0000 (14:15 +0900)]
Add IInferenceHandGestureService and its PrivateInferenceHandGestureService
PrivateInferenceHandGestureService has a dummy implementation.
MvInferenceHandGestureService isn't implemented and
createInferenceHandGestureService() will throw runtime_error.
Change-Id: If34b238424a1417590c85068f71129c6410f40a1
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 22 May 2024 23:49:27 +0000 (08:49 +0900)]
Remove unused _input_service in GazeEstimator
Change-Id: Icc4e8a631fc3bf5b4687e066a9834c226d133640
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 16 May 2024 08:08:38 +0000 (17:08 +0900)]
Remove comments lines
Change-Id: I2e17f40031e92fdfd6fec52b097beb04627a3427
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 16 May 2024 08:05:48 +0000 (17:05 +0900)]
Refact PrivateFaceService returns only one face and its landmarks
A face region with a confidence under 30 is ignored.
Change-Id: Icc902a3ea8caf711e286fcc14ba2eb8804a2591b
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 16 May 2024 07:40:24 +0000 (16:40 +0900)]
Refact codes how to use kalman2d
Introduces RectsTracker and PointsTracker.
Their parent has _isInit and IFilter2D member variables.
IFilter2D is an interface for filters.
As Kalman2D, others can be implemented referring to IFilter2D.
Change-Id: I9d0ba4701b6ae41b5ed6c27b562e7b1df97f85fa
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 14 May 2024 07:34:09 +0000 (16:34 +0900)]
Refact IInferenceFaceService, GazeEstimator, HeadPoseEstimator, FaceShapeModelManager
Change them to use FACE_COMPONENT enumeration. FaceShapeModelManager
provides the given face components and IInferenceFaceService has to
infer the corresponding components from given images.
Change-Id: I3cd639897b7ca3d2ce1cce89277ca47064ecd1fe
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 13 May 2024 00:41:05 +0000 (09:41 +0900)]
[WIP-15] Add kalman filter
Change-Id: Ie8a5898ac8ecf308b1968ee6349a02e4f3216229
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 9 May 2024 03:09:25 +0000 (12:09 +0900)]
[WIP-14] Add PointerApp supporting sync/async
Change-Id: I15b7874c82d245c6e1d7bcbb55a3be1555890fd1
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 9 May 2024 01:03:56 +0000 (10:03 +0900)]
[WIP-13] Add asynchronous operation (performAsync)
Change-Id: I56e27d062904abb92cbe6d3ec00102ad80a9ceda
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 7 May 2024 08:23:29 +0000 (17:23 +0900)]
Resize an input to half size to speed up
Change-Id: Ib79b403534c8299960f910b8b3948f83dd478087
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 7 May 2024 05:22:40 +0000 (14:22 +0900)]
[WIP-12] Add a synchronous input_service to smartpointer
Change-Id: I4ee7eef9b4f1fa9d2e0dd4eae5c430e79c2017f9
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 3 May 2024 08:31:22 +0000 (17:31 +0900)]
[WIP-11] Move MvInferenceFaceService from inference to backend directory
Change-Id: Ic2909718233f91b20505f8ddf7800471d1df9092
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 3 May 2024 08:17:28 +0000 (17:17 +0900)]
[WIP-10] Add PrivateInferenceFaceService
Support YuNet based face detection and U2Net based landmark detection.
YuNet based face detection is a version that model weight is converted
to native c and optimized.
With them, FaceService gets about 100ms
Change-Id: If4254c9a6c0cb5ebe224da7e756fb3ceab01b25f
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 29 Apr 2024 08:48:46 +0000 (17:48 +0900)]
[WIP-09] Add estimation of head pose from landmark
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 29 Apr 2024 01:00:55 +0000 (10:00 +0900)]
[WIP-08] Add CameraParamManager
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 26 Apr 2024 07:07:26 +0000 (16:07 +0900)]
[WIP-07] Add HeadPoseEstimator
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Fri, 26 Apr 2024 03:15:46 +0000 (12:15 +0900)]
[WIP-06] Add FaceShapeModelManager and face shape model
pdm.txt is from https://github.com/TadasBaltrusaitis/OpenFace/blob/master/lib/local/LandmarkDetector/model/pdms/In-the-wild_aligned_PDM_68.txt
It consists of 68 landmarks in 3D coordinate. The xyz order is xxxxx....yyyyy...zzzz... .
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 25 Apr 2024 00:05:01 +0000 (09:05 +0900)]
[WIP-05] Bugfix: MvFaceLandmarkDetection fills _mv_src with wrong data
cv::Rect with cv::Mat is shallow copy.
Using mv_source_fill_by_buffer() with shallow copied cv::Mat
causes wrong result.
Use clone() to do deep copy.
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Mon, 22 Apr 2024 01:39:24 +0000 (10:39 +0900)]
[WIP-04] Add timer
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Thu, 18 Apr 2024 09:27:05 +0000 (18:27 +0900)]
[WIP-03] Refactoring: IInferenceServiceInterface
Define IInferenceServiceFace which is Abstract face Service.
Define IInferenceServiceFactory which is a service factory.
Define MvInferenceServiceFactory which is a service factory
creating MediaVision based service such as MvInferenceFaceService.
The MvInferenceFaceService is Concrete face service based on
MediaVision.
If You want an external solution, Mediapipe, based face service then
add ExternalInferenceServiceFactory and ExternalInferenceFaceService.
In case of Mediapipe, MediapipeServiceFactory and MediapipeFaceService.
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Wed, 17 Apr 2024 08:05:10 +0000 (17:05 +0900)]
[WIP-02] add face landmark
- SmartPointer -> GazeEstimator -> inferenceServiceMulti ->
FaceDetection -> FaceLandmark
- test_smartpointer
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Tae-Young Chung [Tue, 16 Apr 2024 09:16:02 +0000 (18:16 +0900)]
[WIP-01] initial implementation
- SmartPointer -> GazeEstimator -> inferenceServiceMulti ->
FaceDetection
- test_smartpointer
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Fri, 12 Apr 2024 05:22:34 +0000 (14:22 +0900)]
Merge pull request #6 from inki-dae/main
Update native capi
Inki Dae [Fri, 12 Apr 2024 02:20:25 +0000 (11:20 +0900)]
update singleo_native_capi.h header file
Update singleo_native_capi.h header file by
- correct wrong descriptions
- update singleo_service_add_input_image_data and
singleo_service_add_input_raw_data API by adding a option string which can
describe speicific format type to user-given input data.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 12 Apr 2024 00:13:01 +0000 (09:13 +0900)]
test: clean up by dropping redundant code
Signed-off-by: Inki Dae <inki.dae@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Thu, 11 Apr 2024 02:25:18 +0000 (11:25 +0900)]
clean up README file (#5)
* clean up README file
Signed-off-by: Inki Dae <inki.dae@samsung.com>
* Update README.md
Co-authored-by: 비브합 아가르왈/Tizen Platform Lab(SR)/삼성전자 <v.aggarwal@samsung.com>
---------
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Co-authored-by: 비브합 아가르왈/Tizen Platform Lab(SR)/삼성전자 <v.aggarwal@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Mon, 8 Apr 2024 23:43:41 +0000 (08:43 +0900)]
Merge pull request #4 from inki-dae/main
Implement autozoom service algorithm
Inki Dae [Mon, 8 Apr 2024 06:08:40 +0000 (15:08 +0900)]
update README.md file
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 8 Apr 2024 00:51:23 +0000 (09:51 +0900)]
cleanup BaseResultType
Clean up BaseResultType by moving common members from specific structure
to BaseResultType.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 5 Apr 2024 09:06:23 +0000 (18:06 +0900)]
drop SingleoOutputData class
Drop SingleoOuputData and its child classes, and use BaseResultType
and its child structures instead.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 5 Apr 2024 03:32:57 +0000 (12:32 +0900)]
implement autozoom algorithm
Implement autozoom algorithm. As for this, this patch introduces
a new interface class, IPostprocessor, and its concrete class,
Postprocessor for Autozoom service, which postprocesses a given
camera preview image by emulating pysical camera zoom-in/out
functions with zero latency.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 26 Mar 2024 05:51:09 +0000 (14:51 +0900)]
rename API
Rename singleo_service_add_image_data to singleo_service_add_rgb_data.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Tue, 26 Mar 2024 04:43:30 +0000 (13:43 +0900)]
Merge pull request #3 from inki-dae/main
visualizer support, chance service configuration schema and API refactoring
Inki Dae [Tue, 26 Mar 2024 04:41:01 +0000 (13:41 +0900)]
use uppercase letters in CMakeLists.txt
Just cleanup.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Tue, 26 Mar 2024 02:53:44 +0000 (11:53 +0900)]
display camera preview image in application
Display camera preview image mixed with bounding box for debug in application
instead of singleo service framework-internally.
Regarding this, this patch introduces Context structure so that
the test application can manage camera preview image and bounding box.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 25 Mar 2024 07:13:16 +0000 (16:13 +0900)]
add singleo_service_add_input API series support
Add singleo_service_add_input_{image_file,rgb_data,raw_data} API support.
Singleo service API has to allow one more input data so add this API series
to add various types of data as input data. In addition, this patch
drops ISingleoCommon, SingleoImageData and SingleoRawData classes and,
introduces a new input manager, SingleoInputManager class which manages
input data queue.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 21 Mar 2024 07:01:03 +0000 (16:01 +0900)]
change service configuration schema
Change service configuration schema like below.
Before
"..., input=camera, camera_backend=opencv, ..."
After
"..., input_feed=camera, camera_id=n, ..."
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 15 Mar 2024 08:25:33 +0000 (17:25 +0900)]
add visualizer support for debug and test
Add visualizer support to display service result on the screen
through Native window system.
The visualizer will be used only for debug and test.
With this patch, test_autozoom_on_screen binary will be created,
And this binary will display the service result on the screen.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Wed, 20 Mar 2024 02:16:23 +0000 (11:16 +0900)]
Merge pull request #2 from inki-dae/main
Bug fix, specific exception class and face detection task support
Inki Dae [Fri, 15 Mar 2024 08:09:00 +0000 (17:09 +0900)]
fix seg. fault with no detection
Fix a seg. fault issue when detection failed by updating the result
only in case that object is detected.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Fri, 15 Mar 2024 01:06:31 +0000 (10:06 +0900)]
change ISingleoOutputData to SingleoOutputData
ISingleoOutputData class isn't interface class anymore.
So drop a prefix, 'I' from the class name.
Regarding this class, not clear to me and I'm pretty sure that
there is more better design for managing output data type and
to be able to generalize the various output data types.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 14 Mar 2024 07:57:22 +0000 (16:57 +0900)]
add face detection support for Mediavision backend
Add face detection support for Mediavision backend.
With this patch, default task type for Autozoom service is changed
to face detection from object detection.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 14 Mar 2024 02:33:22 +0000 (11:33 +0900)]
add specific exception support and error code
Add specific exception class support and error code for SingleO framework.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Thu, 14 Mar 2024 01:30:01 +0000 (10:30 +0900)]
fix a memory leak to input feeding data
Fix a memory leak issue when pusing input feeding data to
incoming queue is skipped.
If the input feeding data was skipped then we have to release
the input feeding data which is a new buffer allocated and copied from
original data.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Tue, 12 Mar 2024 04:25:39 +0000 (13:25 +0900)]
Merge pull request #1 from inki-dae/main
Add backbone version of SingleO AI service framework
Inki Dae [Mon, 11 Mar 2024 08:05:35 +0000 (17:05 +0900)]
add async manager for async API support
Add async manager class for async API supprort.
Async manager is used to support async API support for each service API.
Behavior summary to async manager:
There are two queues which are performed in each thread context.
One is incoming queue which manages input data feeded from input device
such as camera, screen capture module, and other external modules
through input service framework. Simply saying, input service framework
will push input data feeded from input device.
And other is outgoing queue which manages output data after the completion
of invoke such as inference. Regarding outgoing queue, a thread context
is created by async manager, and this thead context pops input data
from incoming queue, request an invoke with the input data and then
push the result to outgoing queue.
As such, one thread puts input data obtained from an input device into
an incoming queue, and the other thread retrieves input data from
the incoming queue, performs invoke, and puts the result of the execution
into an outgoing queue in parallel to utilize HW resource in maximum.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Inki Dae [Mon, 5 Feb 2024 08:04:56 +0000 (17:04 +0900)]
Add backbone version of SingleO AI service framework
Introduce backbone version of SingleO AI service framework as initial code
including test case for Auto Zoom API as example code.
SingleO AI service framework consists of like below,
- common directory
. abstracted common data classes which is used to share data object
between service framework and various backend services.
- services/common/singleo_native_capi.cpp
. native CAPI implemention, which calls a user-desired service API.
- services/auto_zoom directory
. AI service API implementation targeted to Camera auto zoom service,
which uses service class for the use of various backend independent
inference and training engines.
- services/common directory
. context class
. A unique object corresponding to user-desired service.
. abstracted AI service
. actual implementation to user-desired AI service using various
generic services such as inference, training and remote computing
services.
. abstracted preprocess classes
. preprocessing class for convert user-given input or internally-feeded
input data to common data object which can be used for service
perform framework internally.
. abstracted input data types
. Common data type for contarining various types of data given by user
or internally-feeded such as camera, screen capture, image file
and so on.
- log directory
. message logging class which provides standard output in default and dlog
for Tizen as a Tizen backend.
- input directory
. abstracted input service classes which provide input feeded data through
Camera and screen capture module in platform independent manner.
Platform dependent camera or screen capture modules can be used as plugin
module. In default, OpenCV based camera backend is used, which is a built
in backend.
- inference directory
. abstracted inference service classes which provides platform independent
inference service.
. inference/backends directory
. Inference engine backend for the use of Mediavision framework.
In default, mediavision backend is used but possible to use external
framework through a plugin module.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
대인기/Tizen Platform Lab(SR)/삼성전자 [Mon, 5 Feb 2024 05:28:28 +0000 (14:28 +0900)]
Initial commit