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:52]
hyphop [convert]
products:sbc:edge2:npu:demos:yolov7-tiny [2023/09/20 04:08] (current)
hyphop [Compile and run]
Line 1: Line 1:
-====== Demo1 Yolov7 Tiny ======+~~tag> YOLO NPU Edge2 RK3588~~ 
 + 
 +====== YOLOv7-tiny Edge2 Demo - 1 ====== 
 + 
 +{{indexmenu_n>1}}
  
 ===== 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 40:
 ==== 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 47:
 ``` ```
  
-Install dependences and RKNN toolkit2 packages,+Install dependences and RKNN toolkit2 packages.
  
 ```shell ```shell
Line 51: Line 57:
 ``` ```
  
-==== 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 74:
 # 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 82:
 # 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 90:
 # 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 97:
 ``` ```
  
-Run test.py to generate rknn model.+Run ''test.py'' to generate RKNN model.
  
 ```shell ```shell
Line 101: Line 107:
 ==== 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 118: Line 124:
 === Picture input demo === === Picture input demo ===
  
-Put yolov7_tiny.rknn in edge2-npu/C++/yolov7_tiny/data/model.+Put ''yolov7_tiny.rknn'' in ''edge2-npu/C++/yolov7_tiny/data/model''
  
 ```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 137:
 === 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
 $ cd install/yolov7_tiny $ cd install/yolov7_tiny
 $ ./yolov7_tiny data/model/yolov7_tiny.rknn 33 $ ./yolov7_tiny data/model/yolov7_tiny.rknn 33
 ``` ```
  
-''33'' is the interface of camera.+<WRAP info > 
 +''33'' is camera device index. 
 +</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:52 by hyphop