[PYTHON] Konvertiere keras-yolo3 in onnx

TL;DR

Referenzseite

axinc-ai/yolov3-face onnx/keras-onnx

wichtiger Punkt

Manchmal konnte die konvertierte onnx-Datei nicht abgeleitet werden. Es kann aus der ursprünglich vorbereiteten onnx-Datei abgeleitet werden.

Die detaillierten Bedingungen wurden noch nicht identifiziert.

1. Erstellen einer Umgebung

1.1. Quellenvorbereitung

Klon mit Git von axinc-ai / yolov3-face

git clone https://github.com/axinc-ai/yolov3-face.git

Als nächstes klonen Sie Keras-Yolo3 in Yolov3-Gesicht.

cd .\yolov3-face
git clone https://github.com/qqwweee/keras-yolo3.git

1.2. Erstellen einer Python-Umgebung für die Konvertierung

Erstellen Sie eine virtuelle Umgebung "yolov3-face" mit conda

conda create -n yolov3-face python=3.6 -y

Installieren Sie die erforderlichen Module. Da die detaillierte Version in axinc-ai / yolov3-face angegeben und nicht im Conda-Repository vorbereitet ist, installieren Sie sie mit pip.

conda activate yolov3-face
pip install tensorflow==1.13.2
pip install keras==2.2.4
pip install keras2onnx==1.5.1
pip install opencv-python
pip install pillow
pip install matplotlib

1.3. Erstellen einer Python-Umgebung für Inferenz

Erstellen Sie mit conda eine virtuelle Umgebung "yolov 3-face-inference"

conda create -n yolov3-face-inference python=3.6 -y

Installieren Sie die erforderlichen Module. Da die detaillierte Version in axinc-ai / yolov3-face angegeben und nicht im Conda-Repository vorbereitet ist, installieren Sie sie mit pip.

conda activate yolov3-face-inference
pip install tensorflow==1.13.2
pip install onnxruntime
pip install keras==2.2.4
pip install pillow

2. Umwandlung und Beurteilung (überprüft anhand des angegebenen Beispiels)

Überprüfen Sie zunächst die vorbereitete Probe

2.1 Konvertierung

** Format **

python keras-yolo3-to-onnx.py <h5-model-filepath> <classes-filepath> <anchors-filepath> <onnx-filepath>
Parameter Inhalt angegeben werden
h5-model-filepath Mit Keras erstellte Modelldatei
classes-filepath Eine Datei, die den Klassennamen beschreibt, der beim Erstellen des Modells verwendet wird
anchors-filepath Ankerdatei, die beim Erstellen des Modells verwendet wird
onnx-filepath Konvertierte ONNX-Datei

** Lauf **

cd .\keras-onnx

conda activate yolov3-face
python keras-yolo3-to-onnx.py ../model_data/logs/trained_weights_final.h5 ../model_data/face_classes.txt ../model_data/tiny_yolo_anchors.txt ../model_data/ax_face.onnx

2.2 Inferenz

** Format **

python inference.py <onnx-filepath> <classes-filepath> <targetimage-filepath> <outputimage-filepath>
Parameter Inhalt angegeben werden
onnx-filepath Konvertierte ONNX-Datei
classes-filepath Eine Datei, die den Klassennamen beschreibt, der beim Erstellen des Modells verwendet wird
inputimage-filepath Bilddatei zu schließen
outputimage-filepath Datei, die das Inferenzergebnis zeichnet

** Lauf **

cd .\keras-onnx

conda activate yolov3-face-inference
python inference.py ../model_data/ax_face.onnx ../model_data/face_classes.txt ../images/couple.jpg output.jpg

3. Im Fall der Datei, die von [Originaldaten-Lernverfahren unter Verwendung der Keras-Versionsimplementierung von YOLO v3 (Stand: 24. Juni 2020)] verarbeitet wurde (https://qiita.com/tfukumori/items/d1f79078803d8a7fe103)

Datei Wert
Mit Keras erstellte Modelldatei ../model_data/yolo_logs/models/Step2_yolo_weight_mAP_best.h5
Klassendatei ../model_data/voc_classes.txt
Ankerdatei ../model_data/yolo_anchors.txt
Konvertierte ONNX-Datei ../model_data/ax_yolov3.onnx

3.1. Konvertierung

cd .\keras-onnx

conda activate yolov3-face
python keras-yolo3-to-onnx.py ../model_data/yolo_logs/models/Step2_yolo_weight_mAP_best.h5 ../model_data/voc_classes.txt ../model_data/yolo_anchors.txt ../model_data/ax_yolov3.onnx

3.2. Begründung

python inference.py ../model_data/ax_yolov3.onnx ../model_data/voc_classes.txt ../images/couple.jpg output.jpg

Referenz

keras-yolo3 + JetsonNano

https://qiita.com/rhene/items/b2a8ebe1f003e1107f63 http://mirai-tec.hatenablog.com/entry/2019/08/24/102129 http://mirai-tec.hatenablog.com/entry/2019/09/03/235156

YOLOv3(Darknet) + JetsonNano

https://soralab.space-ichikawa.com/2019/06/jetson-tx2-tensorrt-yolov3/ https://www.nakasha.co.jp/future/ai/vol2_yolov3nvidia_jetson_nano.html

TensorRT + Jetson Nano https://qiita.com/tsutof/items/f81d3900fa77d954ef39

Konvertieren Sie von Kerass zu ONNX

https://medium.com/axinc/yolov3-66c9b998c096

Andere

https://qiita.com/agumon/items/114da6921c5dc4f7d7f9 https://github.com/zzh8829/yolov3-tf2 https://qiita.com/plseal/items/f493c67b2e810f2f876e http://mirai-tec.hatenablog.com/entry/2020/01/12/115546 https://rightcode.co.jp/blog/information-technology/tensorflow2-yolov3-run

Recommended Posts

Konvertiere keras-yolo3 in onnx
Zum HSV konvertieren
Konvertieren Sie 202003 bis 2020-03 mit Pandas
Konvertiere Kanji in Kana
Dikt in Array konvertieren
Konvertieren Sie json in Excel
Konvertieren Sie eine hexadezimale Zeichenfolge in eine Binärzeichenfolge
Konvertieren Sie numpy int64 in python int
[Python] Liste in Pandas konvertieren [Pandas]
Konvertieren Sie HTML in eine Textdatei
Konvertieren Sie das Scratch-Projekt in Python
[Python] Konvertieren Sie Shift_JIS in UTF-8
Konvertieren Sie die IP-Adresse in eine Dezimalzahl
Konvertieren Sie SDF schnell in CSV
Konvertieren Sie die Genbank-Datei in die GFF-Datei
Konvertieren Sie Python 3.x-Code in Python 2.x.
Konvertieren Sie das Tweepy Status-Objekt in JSON
Konvertieren Sie .ipynb in .html (mit BatchFile)
Funktion zum Konvertieren von Excel-Spalten in Zahlen
Konvertieren Sie Markdown in Python in PDF
Konvertieren Sie A4 PDF alle 2 Seiten in A3
Konvertieren Sie wma in mp3 auf dem Mac
Konvertieren Sie einen Teil des japanischen Namens in ein Synonym
Konvertieren Sie ein ggplot-basiertes Diagramm in HTML
Workflow zum Konvertieren der Formel (Bild) in Python
Konvertieren Sie die Liste mit Python in DataFrame
Konvertieren Sie Sätze mit gensim in Vektoren
So konvertieren Sie 0,5 in 1056964608 auf einmal
Python> Liste> Doppelte Liste in einfache Liste konvertieren
Konvertierung von pdf nach txt 2 [pyocr]
So konvertieren Sie das Tensorflow-Modell in Lite
Konvertieren Sie eine Zeichenfolge in ein Bild
[Python] Konvertiert natürliche Zahlen in Ordnungszahlen
Konvertieren Sie die Dezimalzahl in n-ary [Python]
Programm zum Konvertieren von Japanisch in Sendernamen
So konvertieren Sie von .mgz nach .nii.gz
Konvertieren Sie PDF in Image mit ImageMagick
Tool zum Konvertieren der Juniper-Konfiguration
Python> Tupel> Konvertiert doppeltes Tupel in einzelnes Tupel
[Python] So konvertieren Sie eine Datenbankdatei in CSV
Konvertieren Sie Daten im XML-Format in Daten im TXT-Format (yolov3)
Konvertieren Sie Memos sofort mit Python 2to3
So konvertieren Sie das Format einfach aus Markdown
Konvertieren Sie Python> Zwei-Wert-Sequenz in Wörterbuch
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
So konvertieren Sie csv in tsv in CLI
So konvertieren Sie Python in eine exe-Datei
Konvertieren Sie das Matplotlib-Diagramm in das EMF-Dateiformat
[Python] Konvertieren Sie CSV-Dateibegrenzer in Tabulatortrennzeichen
Konvertieren Sie mit pdfplumber von PDF in CSV
Konvertieren Sie GFF3 in MSS für die DDBJ-Übermittlung
Konvertieren (komprimieren) formatierte JSON-Zeichenfolge in einzeiliges JSON
Konvertieren Sie die psd-Datei in Python in png
Konvertieren Sie MetaImageIO (* .mha, * .mhd) in tiff stack
Konvertieren Sie Zeichenketten mit RoBERTa in Merkmalsmengen
Konvertieren Sie Excel-Daten mit Python in JSON
Konvertieren Sie von Katakana zu Vokal Kana [Python]
Konvertieren Sie Rasterdaten mithilfe von Pandas in zeilenhaltige (?) Daten