| --- |
| license: mit |
| pipeline_tag: object-detection |
| --- |
| |
| # QRCode_det |
| |
| This version of QRCode detetion model has been converted to run on the Axera NPU using **w8a16** quantization. |
| |
| This model has been optimized with the following LoRA: |
| |
| Compatible with Pulsar2 version: 5.1 |
| |
| ## Convert tools links: |
| |
| For those who are interested in model conversion, you can try to export axmodel through |
| |
| - [The original repo](https://github.com/wzf19947/QRCode_det), which you can get the detail of guide |
| |
| - [Pulsar2 Link, How to Convert ONNX to axmodel](https://pulsar2-docs.readthedocs.io/en/latest/pulsar2/introduction.html) |
| |
| - [The repo of AXera Platform](https://github.com/AXERA-TECH/ax-samples),which you can learn how to compile the C++ demo |
| |
| ## Support Platform |
| |
| - AX650 |
| - [M4N-Dock(η±θ―ζ΄ΎPro)](https://wiki.sipeed.com/hardware/zh/maixIV/m4ndock/m4ndock.html) |
| - [M.2 Accelerator card](https://axcl-docs.readthedocs.io/zh-cn/latest/doc_guide_hardware.html) |
| - AX630C |
| - [η±θ―ζ΄Ύ2](https://axera-pi-2-docs-cn.readthedocs.io/zh-cn/latest/index.html) |
| - [Module-LLM](https://docs.m5stack.com/zh_CN/module/Module-LLM) |
| - [LLM630 Compute Kit](https://docs.m5stack.com/zh_CN/core/LLM630%20Compute%20Kit) |
| - AX637 |
| |
| |Chips|model|cost| |
| |--|--|--| |
| ||yolov5n|1.73 ms| |
| ||yolov8n|3.64 ms| |
| ||yolov9t|4.75 ms| |
| |AX650|yolov10n|3.67 ms| |
| ||yolo11n|3.42 ms| |
| ||yolo12n|6.87 ms| |
| ||yolo26n|3.24 ms| |
| ||NanodetPlus|2.16 ms| |
| ||DEIMv2_femto(u16)|3.76 ms| |
| ||| |
| ||yolov5n|5.79 ms| |
| ||yolov8n|9.26 ms| |
| ||yolov9t|11.6 ms| |
| |AX630C|yolov10n|9.71 ms| |
| ||yolo11n|9.65 ms| |
| ||yolo12n|20.24 ms| |
| ||yolo26n|10.04 ms| |
| ||NanodetPlus|5.93 ms| |
| ||| |
| ||yolov5n|2.11 ms| |
| ||yolov8n|4.04 ms| |
| ||yolov9t|4.91 ms| |
| |AX637|yolov10n|4.05 ms| |
| ||yolo11n|3.84 ms| |
| ||yolo12n|6.40 ms| |
| ||yolo26n|3.50 ms| |
| ||NanodetPlus|2.38 ms| |
|
|
| ## How to use |
|
|
| Download all files from this repository to the device |
|
|
| ``` |
| |
| . |
| βββ config.json |
| βββ CPP |
| βΒ Β βββ ax_deimv2_qrcode_batch |
| βΒ Β βββ ax_nanodetplus_qrcode_batch |
| βΒ Β βββ ax_yolov5_qrcode_batch |
| βΒ Β βββ ax_yolov8_qrcode_batch |
| βΒ Β βββ ax_yolo26_qrcode_batch |
| βββ cpp_result.png |
| βββ images |
| βΒ Β βββ qrcode_01.jpg |
| βΒ Β βββ qrcode_02.jpg |
| βΒ Β βββ qrcode_03.jpg |
| | βββ ... |
| βΒ Β βββ qrcode_55.jpg |
| βββ model |
| βΒ Β βββ AX620E |
| βΒ Β βΒ Β βββ nanodet-plus-m_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolo11n_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolo12n_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolo26n_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov10n_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov5n_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov8n_630_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov9t_630_npu1.axmodel |
| βΒ Β βββ AX637 |
| βΒ Β βΒ Β βββ nanodet-plus-m_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolo11n_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolo12n_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolo26n_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov10n_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov5n_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov8n_637_npu1.axmodel |
| βΒ Β βΒ Β βββ yolov9t_637_npu1.axmodel |
| βΒ Β βββ AX650 |
| βΒ Β βββ deimv2_femto_650_npu1_u16.axmodel |
| βΒ Β βββ nanodet-plus-m_650_npu1.axmodel |
| βΒ Β βββ yolo11n_650_npu1.axmodel |
| βΒ Β βββ yolo12n_650_npu1.axmodel |
| βΒ Β βββ yolo26n_650_npu1.axmodel |
| βΒ Β βββ yolov10n_650_npu1.axmodel |
| βΒ Β βββ yolov5n_650_npu1.axmodel |
| βΒ Β βββ yolov8n_650_npu1.axmodel |
| βΒ Β βββ yolov9t_650_npu1.axmodel |
| βββ py_result.png |
| βββ python |
| βΒ Β βββ QRCode_axmodel_infer_DEIMv2.py |
| βΒ Β βββ QRCode_axmodel_infer_Nanodet.py |
| βΒ Β βββ QRCode_axmodel_infer_v5.py |
| βΒ Β βββ QRCode_axmodel_infer_v8.py |
| βΒ Β βββ QRCode_axmodel_infer_26.py |
| βΒ Β βββ QRCode_onnx_infer_DEIMv2.py |
| βΒ Β βββ QRCode_onnx_infer_Nanodet.py |
| βΒ Β βββ QRCode_onnx_infer_v5.py |
| βΒ Β βββ QRCode_onnx_infer_v8.py |
| βΒ Β βββ QRCode_onnx_infer_26.py |
| βΒ Β βββ requirements.txt |
| βββ README.md |
| |
| |
| ``` |
|
|
| ### Inference |
|
|
| Input Data: |
|
|
| ``` |
| |-- images |
| | `-- qrcode_01.jpg |
| | `-- qrcode_02.jpg |
| | `-- qrcode_03.jpg |
| | `-- qrcode_04.jpg... |
| ``` |
|
|
|
|
| #### Inference with AX650 Host, such as M4N-Dock(η±θ―ζ΄ΎPro) |
|
|
| ##### Python |
| run with python3 QRCode_axmodel_infer_xxx.py |
| ``` |
| root@ax650:~/QRCode# python3 QRCode_axmodel_infer_DEIMv2.py |
| [INFO] Available providers: ['AxEngineExecutionProvider'] |
| [INFO] Using provider: AxEngineExecutionProvider |
| [INFO] Chip type: ChipType.MC50 |
| [INFO] VNPU type: VNPUType.DISABLED |
| [INFO] Engine version: 2.12.0s |
| [INFO] Model type: 2 (triple core) |
| [INFO] Compiler version: 4.2 b98901c3 |
| θ―ε«ζεοΌ |
| εΎη ./qrcode_test/qrcode_01.jpg ε€ηθζΆ: 0.2165 η§ |
| θ―ε«ζεοΌ |
| εΎη ./qrcode_test/qrcode_02.jpg ε€ηθζΆ: 0.1540 η§ |
| θ―ε«ζεοΌ |
| εΎη ./qrcode_test/qrcode_03.jpg ε€ηθζΆ: 0.1456 η§ |
| θ―ε«ζεοΌ |
| εΎη ./qrcode_test/qrcode_05.jpg ε€ηθζΆ: 0.1449 η§ |
|
|
| ``` |
| |
| Output: |
|  |
| |
| ##### C++ |
| ``` |
| ./ax_xxx_qrcode_batch -m xxx_npu1.axmodel -i images/ |
| ``` |
| |
| Output: |
|  |