Ü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