Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Nu we TensorFlow hebben geconfigureerd, gebruiken we de YOLO-architectuur om het objectdetectiemodel te trainen. YOLO is een neuraal netwerk dat begrenzingsvakken en klassenkansen van een afbeelding in één evaluatie voorspelt. YOLO-modellen kunnen meer dan 60 frames per seconde verwerken, waardoor het een geweldige architectuur is voor het detecteren van objecten in video's. Hier vindt u meer informatie over hoe YOLO werkt.
YOLO gebruiken
Download eerst dit YOLO-voorbeeldbestand, dat helperscripts bevat om aan de slag te gaan.
Wanneer u YOLO gebruikt, hebben we drie opties:
Gebruik vooraf getrainde modelgewichten voor YOLO. Het vooraf getrainde model is getraind op een grote gegevensset met 80 klassen (categorieën) voor alledaagse objecten zoals bus, persoon, sandwich, enzovoort. Als u een vooraf getraind YOLO-model wilt downloaden in ONNX-indeling, kunt u dit hier doen. Vervolgens kunt u doorgaan naar de laatste fase van deze zelfstudie om te leren hoe u dat model integreert in een app.
Implementeer overdrachtsleer met een aangepaste gegevensset. Leren overdragen is een methode voor het gebruik van een getraind model als uitgangspunt om een model te trainen dat een andere maar gerelateerde taak oplost. In deze handleiding worden de vooraf getrainde YOLO-gewichten met 80 klassen gebruikt om een model met 20 klassen te trainen, met de VOC dataset. Als u uw eigen gegevensset wilt maken met aangepaste klassen, raadpleegt u de instructies hier.
Train YOLO vanaf nul. Deze techniek wordt niet aanbevolen, omdat het erg moeilijk is om te convergeren. Het oorspronkelijke YOLO-artikel trainde darknet op imagenet (met honderdduizenden foto's) voordat het hele netwerk ook werd getraind.
Implementeer overdrachtsleer op vooraf getrainde YOLO-gewichten naar de VOC-gegevensset:
We gaan verder met de tweede optie en implementeren het leren van overdracht met de volgende stappen.
- Navigeer in een miniconda-venster naar de yolo-voorbeeldmap en voer het volgende commando uit om alle vereiste pip-pakketten voor YOLO te installeren.
pip install -r requirements.txt
- Voer het installatiescript uit om de gegevens en vooraf getrainde gewichten te downloaden
python setup.py
- De gegevensset transformeren. Zie
tools/voc2012.pyvoor implementatie: deze indeling is gebaseerd op de api voor objectdetectie van tensorflow. Veel velden zijn niet vereist, maar zijn hier ingevuld voor compatibiliteit met de officiële API.
python tools/voc2012.py \
--data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
--split train \
--output_file ./data/voc2012_train.tfrecord
python tools/voc2012.py \
--data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
--split val \
--output_file ./data/voc2012_val.tfrecord
- Train het model. Voer de volgende opdrachten uit:
python convert.py
python detect.py --image ./data/meme.jpg # Sanity check
python train.py \
--dataset ./data/voc2012_train.tfrecord \
--val_dataset ./data/voc2012_val.tfrecord \
--classes ./data/voc2012.names \
--num_classes 20 \
--mode fit --transfer darknet \
--batch_size 16 \
--epochs 10 \
--weights ./checkpoints/yolov3.tf \
--weights_num_classes 80
U hebt nu een opnieuw getraind model met 20 klassen, klaar voor gebruik.
Volgende stappen
Nu we een TensorFlow-model hebben gemaakt, moeten we het converteren naar DE ONNX-indeling voor gebruik met de Windows Machine Learning-API's.