This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
products:sbc:vim4:npu:demos:yolov8n [2023/09/17 23:02] sravan [Get Model Conversion Tools] |
products:sbc:vim4:npu:demos:yolov8n [2025/06/12 05:39] (current) louis |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ~~tag> NPU YOLO OpenCV VIM4 ~~ | ~~tag> NPU YOLO OpenCV VIM4 ~~ | ||
| + | |||
| + | **Doc for version ddk-3.4.7.7** | ||
| ====== YOLOv8n OpenCV VIM4 Demo - 2 ====== | ====== YOLOv8n OpenCV VIM4 Demo - 2 ====== | ||
| {{indexmenu_n> | {{indexmenu_n> | ||
| + | |||
| + | ===== Introduction ===== | ||
| + | |||
| + | YOLOv8n is an object detection model. It uses bounding boxes to precisely draw each object in image. | ||
| + | |||
| + | Inference results on VIM4. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | **Inference speed test**: USB camera about **150ms** per frame. | ||
| + | |||
| ===== Get Source Code ===== | ===== Get Source Code ===== | ||
| - | Download | + | Download |
| ```shell | ```shell | ||
| Line 12: | Line 25: | ||
| ``` | ``` | ||
| - | Refer '' | + | Refer '' |
| ===== Convert Model ===== | ===== Convert Model ===== | ||
| Line 18: | Line 31: | ||
| ==== Build virtual environment ==== | ==== Build virtual environment ==== | ||
| - | Follow Docker official | + | Follow Docker official |
| - | Get Docker. | + | Follow the script below to get Docker |
| ```shell | ```shell | ||
| - | $ docker pull yanwyb/npu:v1 | + | docker pull numbqq/npu-vim4 |
| - | $ docker run -it --name | + | |
| - | -v / | + | |
| - | -v / | + | |
| - | yanwyb/ | + | |
| ``` | ``` | ||
| ==== Get Model Conversion Tools ==== | ==== Get Model Conversion Tools ==== | ||
| - | Get source [[gl> | + | Get source [[gh> |
| ```shell | ```shell | ||
| - | $ git clone https://gitlab.com/ | + | $ git lfs install |
| + | $ git lfs clone https://github.com/ | ||
| + | $ cd vim4_npu_sdk | ||
| + | $ ls | ||
| + | adla-toolkit-binary | ||
| ``` | ``` | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | <WRAP important> | ||
| + | If your kernel is older than 241129, please use branch npu-ddk-1.7.5.5. | ||
| + | </ | ||
| ==== Convert ==== | ==== Convert ==== | ||
| Line 42: | Line 63: | ||
| After training model, modify '' | After training model, modify '' | ||
| - | ```diff | + | ```diff head.py |
| diff --git a/ | diff --git a/ | ||
| index 0b02eb3..0a6e43a 100644 | index 0b02eb3..0a6e43a 100644 | ||
| Line 66: | Line 87: | ||
| + dfl = self.cv2[i](x[i]).contiguous() | + dfl = self.cv2[i](x[i]).contiguous() | ||
| + cls = self.cv3[i](x[i]).contiguous() | + cls = self.cv3[i](x[i]).contiguous() | ||
| - | + | + | + results.append(torch.cat([cls, |
| - | + # results.append(torch.cat([cls, | + | |
| + return tuple(results) | + return tuple(results) | ||
| + | + | ||
| ``` | ``` | ||
| + | |||
| + | <WRAP important> | ||
| + | If you pip-installed ultralytics package, you should modify in package. | ||
| + | </ | ||
| Create a python file written as follows to export ONNX model. | Create a python file written as follows to export ONNX model. | ||
| Line 83: | Line 107: | ||
| $ python export.py | $ python export.py | ||
| ``` | ``` | ||
| + | |||
| + | <WRAP important> | ||
| + | Use [[https:// | ||
| + | |||
| + | {{: | ||
| + | </ | ||
| Enter '' | Enter '' | ||
| Line 105: | Line 135: | ||
| --quantize-dtype int16 --outdir onnx_output | --quantize-dtype int16 --outdir onnx_output | ||
| --channel-mean-value " | --channel-mean-value " | ||
| + | --inference-input-type " | ||
| + | --inference-output-type " | ||
| --source-file dataset.txt | --source-file dataset.txt | ||
| --batch-size 1 --target-platform PRODUCT_PID0XA003 | --batch-size 1 --target-platform PRODUCT_PID0XA003 | ||
| Line 124: | Line 156: | ||
| $ git clone https:// | $ git clone https:// | ||
| ``` | ``` | ||
| + | |||
| + | <WRAP important> | ||
| + | If your kernel is older than 241129, please use version before tag ddk-3.4.7.7. | ||
| + | </ | ||
| ==== Install dependencies ==== | ==== Install dependencies ==== | ||
| Line 147: | Line 183: | ||
| # Run | # Run | ||
| - | $ sudo ./yolov8n -m ../ | + | $ ./yolov8n -m ../ |
| ``` | ``` | ||
| Line 163: | Line 199: | ||
| # Run | # Run | ||
| - | $ sudo ./ | + | $ ./ |
| ``` | ``` | ||
| Line 169: | Line 205: | ||
| <WRAP tip > | <WRAP tip > | ||
| - | If your **yolov8n** model classes | + | If your **YOLOv8n** model classes |
| </ | </ | ||