# Nvidia Nano + Tensor RT + Tiny YOLOv3 資料來源: https://github.com/zombie0117/yolov3-tiny-onnx-TensorRT 不過有些參數要修一下 XD 這個code使用Python2, 前面的 TRT + YOLOv3 是用Python3, 剛好沒影響 ```` git clone https://github.com/zombie0117/yolov3-tiny-onnx-TensorRT cd yolov3-tiny-onnx-TensorRT sudo apt-get install python-pip #如果沒有pip再執行這個 # 原本的req.txt是寫onnx>=1.1.1, 可是後面又說onnx==1.4.1, 建議先修改這個txt檔 pip install -r requirements.txt # 如果已經裝好onnx, 可以用下面指令刪掉重裝 pip uninstall onnx pip install onnx==1.4.1 ```` 相關套件裝完後, 要先去改一下py裡面的參數. 主要是路徑的部分, 原本是寫絕對路徑, 可以照自己的環境修改 or 改成相對路徑 ```` 1. [yolov3-tiny.cfg] 檢查最後一行是不是空白的, 如果沒有的話要自己手動加一行空白進去 The cfg-file's last line must be a blank line. You should press Enter to add a blank line if there is no blank line at the end of the file. ```` ```` 2. [data_processing.py] 改路徑名稱 line14: LABEL_FILE_PATH = '/home/nvidia/yolov3-tiny2onnx2trt/coco_labels.txt' line19: CATEGORY_NUM = 80 ```` ```` 3. [yolov3_to_onnx.py] 改路徑名稱 line778: img_size = 416 line784: cfg_file_path = '/home/nvidia/yolov3-tiny2onnx2trt/yolov3-tiny.cfg' line811: weights_file_path = '/home/nvidia/yolov3-tiny2onnx2trt/yolov3-tiny.weights' line826: output_file_path = 'yolov3-tiny.onnx' ```` ```` 4. [onnx_to_tensorrt.py] 原本是imagelist.txt, 實際檔名是imageslist.txt, 記得一致 XD 還有改路徑名稱, output_shapes的語法也要改 line39: input_size = 416 line40: batch_size = 1 line42~line46: onnx_file_path = 'yolov3-tiny.onnx' engine_file_path = 'yolov3-tiny.trt' input_file_list = '/home/nvidia/yolov3-tiny2onnx2trt/imagelist.txt' IMAGE_PATH = '/home/nvidia/yolov3-tiny2onnx2trt/images/' save_path = '/home/nvidia/yolov3-tiny2onnx2trt/' line 168: output_shapes = output_shapes_dic[str(input_size)] # 這是原本的, 執行後會出現錯誤訊息. 可以改成下面這個 output_shapes = [(batch_size, 255, 13, 13), (batch_size, 255, 26, 26)] # 改成這樣可以跑出結果 ```` PS. Line 168的來源: https://github.com/zombie0117/yolov3-tiny-onnx-TensorRT/issues/2 這些步驟準備完後, 應該就可以跑了 ```` python yolov3_to_onnx.py # 這個跑完會產生 yolov3-tiny.onnx 檔 python onnx_to_tensorrt.py # 這個跑完後, 終端機會有辨識結果, 辨識完的圖片會儲存起來 ```` 那個常見的 dog.jpg 辨識結果: ```` Reading engine from file yolov3-tiny.trt (416, 416) time spent: 0.147424221039 2 test boxes size: 3 [[123.64821648 219.95425227 258.68489429 295.94818745] [465.01741724 81.80695242 221.00351968 89.57543333] [530.07878114 93.9602292 99.6300466 67.47742823]] [0.81647941 0.68578115 0.628142 ] [16 2 7] Saved image with bounding boxes of detected objects to save/dog_416_bboxes.png. ````