Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


products:sbc:edge2:npu:demos:yolov7-tiny

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
products:sbc:edge2:npu:demos:yolov7-tiny [2023/08/25 00:57]
hyphop [Compile and run]
products:sbc:edge2:npu:demos:yolov7-tiny [2025/04/09 23:10] (current)
louis
Line 1: Line 1:
-====== Demo1 Yolov7 Tiny ======+~~tag> YOLO NPU Edge2 RK3588~~ 
 + 
 +====== YOLOv7-tiny Edge2 Demo - 1 ====== 
 + 
 +{{indexmenu_n>1}} 
 + 
 +===== Introduction ===== 
 + 
 +YOLOv7-Tiny is an object detection model. It uses bounding boxes to precisely draw each object in image. 
 + 
 +Inference results on Edge2. 
 + 
 +{{:products:sbc:edge2:npu:demos:yolov7-tiny-result.jpg?800|}} 
 + 
 +**Inference speed test**: USB camera about **43ms** per frame. MIPI camera about **33ms** per frame.
  
 ===== Train Model ===== ===== Train Model =====
  
-Download **yolov7** official codes. Refer ''README.md'' to train a **yolov7_tiny** model.+Download the YOLOv7 official code [[gh>WongKinYiu/yolov7]].
  
 ```shell ```shell
-~$ git clone https://github.com/rockchip-linux/rknn-toolkit2.git+$ git clone https://github.com/WongKinYiu/yolov7.git
 ``` ```
 +
 +Refer ''README.md'' to create and train a YOLOv7 tiny model.
  
 ===== Convert Model ===== ===== Convert Model =====
Line 34: Line 50:
 ==== Get convert tool ==== ==== Get convert tool ====
  
-Download Tool from [[https://github.com/rockchip-linux/rknn-toolkit2.git|Rockchip Github]].+Download Tool from [[gh>rockchip-linux/rknn-toolkit2]].
  
 ```shell ```shell
Line 41: Line 57:
 ``` ```
  
-Install dependences and RKNN toolkit2 packages,+Install dependences and RKNN toolkit2 packages.
  
 ```shell ```shell
Line 51: Line 67:
 ``` ```
  
-==== convert ====+==== Convert ====
  
-After training model, run ''export.py'' to convert model from **pt** to **onnx**.+After training model, run ''export.py'' to convert model from **PT** to **ONNX**.
  
 Enter ''rknn-toolkit2/examples/onnx/yolov5'' and modify ''test.py'' as follows. Enter ''rknn-toolkit2/examples/onnx/yolov5'' and modify ''test.py'' as follows.
Line 68: Line 84:
 # Load ONNX model # Load ONNX model
 print('--> Loading model') print('--> Loading model')
-ret = rknn.load_onnx(model=./yolov7_tiny.onnx)+ret = rknn.load_onnx(model='./yolov7_tiny.onnx')
 if ret != 0: if ret != 0:
     print('Load model failed!')     print('Load model failed!')
Line 76: Line 92:
 # Build model # Build model
 print('--> Building model') print('--> Building model')
-ret = rknn.build(do_quantization=True, dataset=./dataset.txt)+ret = rknn.build(do_quantization=True, dataset='./dataset.txt')
 if ret != 0: if ret != 0:
     print('Build model failed!')     print('Build model failed!')
Line 84: Line 100:
 # Export RKNN model # Export RKNN model
 print('--> Export rknn model') print('--> Export rknn model')
-ret = rknn.export_rknn(./yolov7_tiny.rknn)+ret = rknn.export_rknn('./yolov7_tiny.rknn')
 if ret != 0: if ret != 0:
     print('Export rknn model failed!')     print('Export rknn model failed!')
Line 91: Line 107:
 ``` ```
  
-Run ''test.py'' to generate rknn model.+Run ''test.py'' to generate RKNN model.
  
 ```shell ```shell
Line 101: Line 117:
 ==== Get source code ==== ==== Get source code ====
  
-Clone the source code form our [[https://github.com/khadas/edge2-npu|Github]].+Clone the source code from our [[gh>khadas/edge2-npu]].
  
 ```shell ```shell
Line 121: Line 137:
  
 ```shell ```shell
-compile+Compile
 $ bash build.sh $ bash build.sh
  
-run+Run
 $ cd install/yolov7_tiny $ cd install/yolov7_tiny
 $ ./yolov7_tiny data/model/yolov7_tiny.rknn data/img/bus.jpg $ ./yolov7_tiny data/model/yolov7_tiny.rknn data/img/bus.jpg
Line 131: Line 147:
 === Camera input demo === === Camera input demo ===
  
-Put ''yolov7_tiny.rknn'' in 'edge2-npu/C++/yolov7_tiny_cap/data/model''+Put ''yolov7_tiny.rknn'' in ''edge2-npu/C++/yolov7_tiny_cap/data/model''
  
 ```shell ```shell
-compile+Compile
 $ bash build.sh $ bash build.sh
  
-run+Run USB camera 
 +$ cd install/yolov7_tiny 
 +$ ./yolov7_tiny data/model/yolov7_tiny.rknn usb 60 
 + 
 +# Run MIPI camera
 $ cd install/yolov7_tiny $ cd install/yolov7_tiny
-$ ./yolov7_tiny data/model/yolov7_tiny.rknn 33+$ ./yolov7_tiny data/model/yolov7_tiny.rknn mipi 42
 ``` ```
  
 <WRAP info > <WRAP info >
-''33'' is camera device node index+''60'' and ''42'' are camera device index.
 </WRAP> </WRAP>
  
  
 <WRAP tip > <WRAP tip >
-If your **yolov7_tiny** model classes is not the same as **coco**, please change ‘’data/coco_80_labels_list.txt’’ and the ‘’OBJ_CLASS_NUM’’ in ‘’include/postprocess.h’’.+If your **YOLOv7 tiny** model classes are not the same as **COCO**, please change ''data/coco_80_labels_list.txt'' and the ''OBJ_CLASS_NUM'' in ''include/postprocess.h''.
 </WRAP> </WRAP>
  
Last modified: 2023/08/25 00:57 by hyphop