An open API service indexing awesome lists of open source software.

https://github.com/talkuhulk/aidb-webassembly-demo

ai.deploy.box webassembly demo
https://github.com/talkuhulk/aidb-webassembly-demo

3ddfa movenet ncnn pfld scrfd wasm webassembly yolov7 yolov8 yolox

Last synced: about 2 months ago
JSON representation

ai.deploy.box webassembly demo

Awesome Lists containing this project

README

        

## aidb-webassembly-demo

๐Ÿถ[Try Demo](https://www.hulk.show/aidb-webassembly-demo/)

## build and deploy

Prior to starting, make sure you have `cmake` installed.

* 1. Clone ai.deploy.box

```
https://github.com/TalkUHulk/ai.deploy.box.git
cd ai.deploy.box
mkdir build && cd build
```

* 2. Install emscripten

```shell
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest

source emsdk_env.sh
```

* 3. Build

```shell
cmake .. -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DWASM_FEATURE=basic -DENGINE_NCNN_WASM=ON -DENGINE_MNN=OFF -DENGINE_ORT=OFF -DENGINE_NCNN=OFF -DENGINE_TNN=OFF -DENGINE_OPV=OFF -DENGINE_PPLite=OFF
make -j4

cmake .. -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DWASM_FEATURE=simd -DENGINE_NCNN_WASM=ON -DENGINE_MNN=OFF -DENGINE_ORT=OFF -DENGINE_NCNN=OFF -DENGINE_TNN=OFF -DENGINE_OPV=OFF -DENGINE_PPLite=OFF
make -j4

cmake .. -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DWASM_FEATURE=threads -DENGINE_NCNN_WASM=ON -DENGINE_MNN=OFF -DENGINE_ORT=OFF -DENGINE_NCNN=OFF -DENGINE_TNN=OFF -DENGINE_OPV=OFF -DENGINE_PPLite=OFF
make -j4

cmake .. -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DWASM_FEATURE=simd-threads -DENGINE_NCNN_WASM=ON -DENGINE_MNN=OFF -DENGINE_ORT=OFF -DENGINE_NCNN=OFF -DENGINE_TNN=OFF -DENGINE_OPV=OFF -DENGINE_PPLite=OFF
make -j4
```

* 4. Deploy

Clone the project, create a folder named `aidb` in the root project directory and copy the following files into it:

```
# deploy files
aidb/
โ”œโ”€โ”€ aidb-wasm-basic.js
โ”œโ”€โ”€ aidb-wasm-basic.wasm
โ”œโ”€โ”€ aidb-wasm-simd.js
โ”œโ”€โ”€ aidb-wasm-simd-threads.js
โ”œโ”€โ”€ aidb-wasm-simd-threads.wasm
โ”œโ”€โ”€ aidb-wasm-simd-threads.worker.js
โ”œโ”€โ”€ aidb-wasm-simd.wasm
โ”œโ”€โ”€ aidb-wasm-threads.js
โ”œโ”€โ”€ aidb-wasm-threads.wasm
โ””โ”€โ”€ aidb-wasm-threads.worker.js
```

Run local server:

```
python3 server.py
```

* 5. Access local server(chrome as a example)

```
# launch chrome browser, enter following command to address bar and press ENTER:
chrome://flags/#unsafely-treat-insecure-origin-as-secure

# enter following keyword to "Search flags" and press ENTER:
"insecure origins"
you will find "Insecure origins treated as secure" key

#enter local server url and click right side dropdown list, select "Enabled"
url example: http://localhost:12580

#relaunch chrome browser and access http://localhost:12580.
```

## Reference

ๆ„Ÿ่ฐข[nihui](https://github.com/nihui)ๅคงไฝฌ๏ฝž

[่ท‘ๅœจๆต่งˆๅ™จ้‡Œ็š„ncnnๅ’Œwebassembly](https://zhuanlan.zhihu.com/p/305601273)

[ncnn-webassembly-aidb-wasm](https://github.com/nihui/ncnn-webassembly-aidb-wasm)