[2023 CANN Training Camp Staffel 1] YOLOv7-Inference Guidance Experiment Record

Überblick

YOLOv7 ist die Yolo-Familie von Objekterkennungsnetzwerken, die im Bereich von 5 FPS bis 160 FPS neue Höhen in puncto Geschwindigkeit und Genauigkeit erreicht und mit 30 FPS oder mehr auf der GPU V100 die höchste Genauigkeit unter allen bekannten Echtzeit-Objektdetektoren aufweist. 56,8 % AP.

Umfeld

Huawei Cloud ai1s
CPU: Intel® Xeon® Gold 6278C CPU bei 2,60 GHz
Speicher: 8G
NPU: Ascend 310
Betriebssystem: Ubuntu 18.04.4 LTS

Code-Lageradresse

https://gitee.com/ascend/modelzoo-GPL/tree/master/built-in/ACL_Pytorch/Yolov8_for_PyTorch

Experimentaufzeichnung

Quellcode herunterladen

Holen Sie sich den Quellcode

git clone https://gitee.com/ascend/modelzoo-GPL
cd modelzoo-GPL
cp -r built-in/ACL_Pytorch/Yolov7_for_Pytorch ../
cd Yolov7_for_Pytorch
git clone https://github.com/WongKinYiu/yolov7.git
cd yolov7
mkdir output     # 新建output文件夹,作为模型结果的默认保存路径

Abhängigkeiten installieren

pip3.7.5 install -r requirements.txt

Holen Sie sich den OM-Begründungscode.
Fügen Sie den Begründungsbereitstellungscode in das entsprechende Verzeichnis des Pytorch-Quellcodes ein.

YOLOv7_for_PyTorch
├── aipp.cfg   放到yolov7下
├── atc.sh     放到yolov7下
└── om_nms_acc.py  放到yolov7下
cp ../aipp.cfg ./
cp ../atc.sh ./
cp ../om_nms_acc.py ./

Datensatz vorbereiten

Das Modell verwendet den Val-Datensatz von coco2017 zur Genauigkeitsbewertung, erstellt einen Coco-Ordner im Stammverzeichnis des Pytorch-Quellcodes und legt den Datensatz in Coco ab

mkdir coco
cd coco
wget  http://images.cocodataset.org/zips/val2017.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
unzip val2017.zip
mkdir image
mv val2017 image/
unzip annotations_trainval2017.zip

Modellargumentation

Gewicht bekommen

wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7x.pt

ONNX-Modell exportieren

python3.7.5 export.py --weights=yolov7x.pt --grid --img-size=640 --dynamic-batch --simplify

_bz2-Fehlerlösung:

sudo cp /usr/lib/python3.7/lib-dynload/_bz2.cpython-37m-x86_64-linux-gnu.so /usr/local/python3.7.5/lib/python3.7/lib-dynload/

_lzma-Fehler

sudo apt-get install liblzma-dev -y
pip3.7.5 install backports.lzma

Ändern Sie die Datei lzma.py

#修改前
from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties

#修改后 
try:
    from _lzma import *
    from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
    from backports.lzma import *
    from backports.lzma import _encode_filter_properties, _decode_filter_properties

Abhängigkeiten installieren

sudo apt-get install libprotobuf-dev protobuf-compiler

Führen Sie export.py weiter aus, nachdem die Abhängigkeitsinstallation abgeschlossen ist

Verwenden Sie das ATC-Tool, um das ONNX-Modell in ein OM-Modell zu konvertieren

source /usr/local/Ascend/ascend-toolkit/set_env.sh

Führen Sie den atc-Befehl aus

bash atc.sh yolov7x.onnx yolov7x_bs8 8 Ascend310P3

Argumentationsüberprüfung

Installationstool

pip3.7.5 install -v 'git+https://gitee.com/ascend/tools.git#egg=aclruntime&subdirectory=ais-bench_workload/tool/ais_bench/backend'
pip3.7.5 install -v 'git+https://gitee.com/ascend/tools.git#egg=ais_bench&subdirectory=ais-bench_workload/tool/ais_bench'

Argumentation durchführen

python3.7.5 om_nms_acc.py --model=yolov7x_bs8.om --output=output --batch=8 --conf-thres=0.001 --iou-thres=0.65 --device=0 --eval

Leistungsüberprüfung

python3.7.5 -m ais_bench --model=yolov7x_bs8.om --output=output --batchsize=8 --device=0 --loop=1000 

Supongo que te gusta

Origin blog.csdn.net/yichao_ding/article/details/130681733
Recomendado
Clasificación