Candle YOLOv8
+Rust/WASM Demo
++ Running an object detection model in the browser using rust/wasm with + an image. This demo uses the + + Candle YOLOv8 + + models to detect objects in images and WASM runtime built with + Candle + +
+Examples:
+ +

diff --git a/.gitignore b/.gitignore index b313c3ec..85dc61c0 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ candle-wasm-examples/*/*.jpeg candle-wasm-examples/*/*.wav candle-wasm-examples/*/*.safetensors candle-wasm-examples/*/package-lock.json + +.DS_Store \ No newline at end of file diff --git a/candle-wasm-examples/yolo/README.md b/candle-wasm-examples/yolo/README.md new file mode 100644 index 00000000..37c4c99b --- /dev/null +++ b/candle-wasm-examples/yolo/README.md @@ -0,0 +1,44 @@ +## Running Yolo Examples + +Here, we provide two examples of how to run YOLOv8 using a Candle-compiled WASM binary and runtimes. + +### Pure Rust UI + +To build and test the UI made in Rust you will need [Trunk](https://trunkrs.dev/#install) +From the `candle-wasm-examples/yolo` directory run: + +Download assets: + +```bash +wget -c https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/candle/examples/bike.jpeg +wget -c https://huggingface.co/lmz/candle-yolo-v8/resolve/main/yolov8s.safetensors +``` + +Run hot reload server: + +```bash +trunk serve --release --public-url / --port 8080 +``` + +### Vanilla JS and WebWorkers + +To build and test the UI made in Vanilla JS and WebWorkers, first we need to build the WASM library: + +```bash +sh build-lib.sh +``` + +This will bundle the library under `./build` and we can import it inside our WebWorker like a normal JS module: + +```js +import init, { Model } from "./build/m.js"; +``` + +The full example can be found under `./lib-example.html`. All needed assets are fetched from the web, so no need to download anything. +Finally, you can preview the example by running a local HTTP server. For example: + +```bash +python -m http.server +``` + +Then open `http://localhost:8000/lib-example.html` in your browser. diff --git a/candle-wasm-examples/yolo/index.html b/candle-wasm-examples/yolo/index.html index c64051ee..285c02ab 100644 --- a/candle-wasm-examples/yolo/index.html +++ b/candle-wasm-examples/yolo/index.html @@ -4,7 +4,7 @@
+ Running an object detection model in the browser using rust/wasm with + an image. This demo uses the + + Candle YOLOv8 + + models to detect objects in images and WASM runtime built with + Candle + +
+