Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Teď, když jsme nakonfigurovali TensorFlow, použijeme architekturu YOLO k trénování modelu rozpoznávání objektů. YOLO je neurální síť, která předpovídá ohraničující rámečky a pravděpodobnosti tříd z obrázku v jednom vyhodnocení. Modely YOLO můžou zpracovávat více než 60 snímků za sekundu, což z něj dělá skvělou architekturu pro detekci objektů ve videích. Další informace o tom, jak YOLO funguje, najdete tady.
Použití YOLO
Nejprve si stáhněte tento ukázkový soubor YOLO, který obsahuje pomocné skripty, které vám pomůžou začít.
Při použití YOLO máme 3 možnosti:
Využijte předem natrénované váhy modelu pro YOLO. Předem natrénovaný model byl vytrénován na velké datové sadě s 80 třídami (kategoriemi) pro každodenní objekty, jako je autobus, osoba, sendvič atd. Pokud si chcete stáhnout předem natrénovaný model YOLO ve formátu ONNX, můžete to udělat tady. Pak můžete přejít k poslední fázi tohoto kurzu a zjistit, jak tento model integrovat do aplikace.
Implementujte transferové učení s vlastní datovou sadou. Transfer learning je metoda pro použití natrénovaného modelu jako výchozího bodu pro trénování modelu, který řeší jiný, ale související úkol. Tento kurz použije předem natrénované váhy YOLO s 80 třídami k trénování modelu s 20 třídami pomocí datové sady VOC. Pokud chcete vytvořit vlastní datovou sadu s vlastními třídami, přečtěte si zde pokyny.
Trénujte YOLO úplně od začátku. Tato technika se nedoporučuje, protože je velmi obtížné konvergovat. Původní článek YOLO nejprve trénoval Darknet na ImageNet (obsahující stovky tisíc fotek) a poté trénoval celou síť.
Implementujte transferové učení na předem natrénovaných hmotnostech YOLO do datové sady VOC:
Pojďme pokračovat druhou možností a implementovat transferové učení pomocí následujících kroků.
- V okně miniconda přejděte do ukázkového adresáře yolo a spuštěním následujícího příkazu nainstalujte všechny požadované balíčky pip pro YOLO.
pip install -r requirements.txt
- Spuštěním instalačního skriptu stáhněte data a předem natrénované váhy.
python setup.py
- Transformujte datovou sadu. Podívejte se na
tools/voc2012.pypro implementaci – tento formát je založený na rozhraní API pro detekci objektů TensorFlow. Mnoho polí není povinné, ale byly zde vyplněny kvůli kompatibilitě s oficiálním rozhraním 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
- Trénování modelu Spusťte následující příkazy:
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
Teď máte znovu natrénovaný model s 20 třídami připravený k použití.
Další kroky
Teď, když jsme vytvořili model TensorFlow, musíme ho převést na formát ONNX pro použití s rozhraními API služby Windows Machine Learning.