Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Plugin] Implement OpenCV-mini #2648

Merged
merged 63 commits into from Jul 25, 2023
Merged

[Plugin] Implement OpenCV-mini #2648

merged 63 commits into from Jul 25, 2023

Conversation

dannypsnl
Copy link
Member

@dannypsnl dannypsnl commented Jul 5, 2023

Feature

transform

  1. normalize: not cv::normalize, from 77051da#diff-3333d926ca87cf4285bfcd6deae45ee310307be66fca8a4ca6f0f8a946743fccR50-R54
  2. blur: blurring function
  3. bilinear_sampling: bilinear sampler

read/write

  1. imdecode: from image from instance buffer
  2. imencode: put image into instance buffer
  3. imwrite: write image into file

misc

  1. imshow: show image (broken on MacOS)
  2. waitkey: wait any keypress

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
1. imdecode
2. imshow
3. waitkey

The `cv::Mat` will be cached in a map & wasm module will only get handle
instead of passing huge multi-dim array (`cv::Mat`) around the host & wasm.

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
`imwrite` will put matrix into a file, and hence. we can check the
transformer result

`blur` do simple blurring, this is the first transformer we introduce

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
The function will write compressed image back into instance's buffer

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
NOTE, this is a normalize function from 77051da#diff-3333d926ca87cf4285bfcd6deae45ee310307be66fca8a4ca6f0f8a946743fccR50-R54
not `cv::normalize`

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
@hydai
Copy link
Member

hydai commented Jul 19, 2023

Please fix the failed CI.

@dannypsnl

This comment was marked as resolved.

@hydai hydai mentioned this pull request Jul 19, 2023
5 tasks
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
@dannypsnl
Copy link
Member Author

Please fix the failed CI.

Fixed, I just pick a stable version of OpenCV

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
.github/workflows/release.yml Outdated Show resolved Hide resolved
plugins/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/wasmedge_opencvmini/CMakeLists.txt Outdated Show resolved Hide resolved
plugins/wasmedge_opencvmini/opencvmini_func.cpp Outdated Show resolved Hide resolved
plugins/wasmedge_opencvmini/opencvmini_func.cpp Outdated Show resolved Hide resolved
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Copy link
Member

@hydai hydai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hydai hydai merged commit 586675c into master Jul 25, 2023
50 checks passed
@hydai hydai deleted the plugin-opencvmini branch July 25, 2023 04:32
sarrah-basta pushed a commit to sarrah-basta/WasmEdge that referenced this pull request Oct 20, 2023
* first draft to setup opencvmini plugin

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix porting name

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* missing include

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* update to 2023

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* link opencv into plugin

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* implements three functions

1. imdecode
2. imshow
3. waitkey

The `cv::Mat` will be cached in a map & wasm module will only get handle
instead of passing huge multi-dim array (`cv::Mat`) around the host & wasm.

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* opencvmini has no need add options

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix to be workable

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* add opencvmini option

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* formatting

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fixing linter problem

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* add `blur` function & `imwrite`

`imwrite` will put matrix into a file, and hence. we can check the
transformer result

`blur` do simple blurring, this is the first transformer we introduce

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* implements `imencode`

The function will write compressed image back into instance's buffer

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* normalize function

NOTE, this is a normalize function from WasmEdge@77051da#diff-3333d926ca87cf4285bfcd6deae45ee310307be66fca8a4ca6f0f8a946743fccR50-R54
not `cv::normalize`

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* add function bilinear sampling

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* release adding opencvmini

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* build extensions

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* add test

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* cmake track testing

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* metas

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* install opencv

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix release name

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix dependencies

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix typo in CI configuration

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix name

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix export functions number test

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* try newer g++

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* install libopencv-dev on ubuntu

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* yum can install opencv

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* build and limit build thread

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* retry with no sudo

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* independent

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* ninja

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* ubuntu also use build

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* extra module

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* add platform exclusive, and fix naming

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* remove contrib

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix binary name

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* macos missing opencv installation

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* install certain version

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix install script

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix upload name

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* fix wrong format

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* outdated trick

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* test if we remove devtoolset-8

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* there has no http plugin now

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* remove do nothing configuration

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* blur export kernel parameters

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

* let user can assign extension

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>

---------

Signed-off-by: Lîm Tsú-thuàn <dannypsnl@secondstate.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c-CI c-Plugin An issue related to WasmEdge Plugin c-Test An issue/PR to enhance the test suite
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants