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:59]
hyphop
products:sbc:edge2:npu:demos:yolov7-tiny [2023/09/20 04:08] (current)
hyphop [Compile and run]
Line 1: Line 1:
-~~tag> Yolov7 NPU Edge2 rk3855~~+~~tag> YOLO NPU Edge2 RK3588~~
  
-====== Demo1 Yolov7 Tiny ======+====== 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 36: 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 43: Line 47:
 ``` ```
  
-Install dependences and RKNN toolkit2 packages,+Install dependences and RKNN toolkit2 packages.
  
 ```shell ```shell
Line 53: 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 70: 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 78: 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 86: 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 93: Line 97:
 ``` ```
  
-Run ''test.py'' to generate rknn model.+Run ''test.py'' to generate RKNN model.
  
 ```shell ```shell
Line 103: 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 123: Line 127:
  
 ```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 136: Line 140:
  
 ```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
Line 145: Line 149:
  
 <WRAP info > <WRAP info >
-''33'' is camera device node index+''33'' is 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:59 by hyphop