Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Most, hogy konfiguráltuk a TensorFlow-t, a YOLO-architektúra használatával tanítjuk be az objektumészlelési modellt. A YOLO egy neurális hálózat, amely egy képből előrejelzi a határolókereteket és az osztályok valószínűségeit egyetlen kiértékelés során. A YOLO-modellek másodpercenként több mint 60 képkockát képesek feldolgozni, így nagyszerű architektúrát biztosítanak a videókban lévő objektumok észleléséhez. A YOLO működéséről itt talál további információt.
A YOLO használata
Először töltse le ezt a YOLO-mintafájlt, amely segédszkripteket tartalmaz az első lépésekhez.
A YOLO használata esetén 3 lehetőségünk van:
Használj előre betanított modellsúlyokat a YOLO-hoz. Az előre betanított modellt egy nagy adatkészleten tanítják be 80 osztálysal (kategóriákkal) a mindennapi objektumokhoz, például buszhoz, személyhez, szendvicshez stb. Ha egy előre betanított YOLO-modellt szeretne letölteni ONNX formátumban, ezt itt teheti meg. Ezután továbbléphet az oktatóanyag utolsó szakaszára , ahol megtanulhatja, hogyan integrálhatja a modellt egy alkalmazásba.
Átviteltanulás implementálása egyéni adatkészlettel. A transzfertanulás az a módszer, amikor egy már betanított modellt használunk kiindulópontként egy másik, de kapcsolódó feladat megoldására alkalmas modell betanításához. Ez az oktatóanyag az előre betanított YOLO súlyokat és 80 osztályt használ egy 20 osztályt tartalmazó modell betanítása VOC-adatkészlettel. Ha saját adatkészletet szeretne létrehozni egyéni osztályokkal, tekintse meg az itt található utasításokat.
A YOLO betanítása az alapoktól. Ez a technika nem ajánlott, mert nagyon nehéz konvergálni. Az eredeti YOLO tanulmány a darkentet az imageneten (amely több százezer fényképet tartalmaz) betanította, mielőtt a teljes hálózatot is betanította volna.
Átviteli tanulás implementálása előre betanított YOLO-súlyokon a VOC-adatkészletbe:
Folytassuk a második lehetőséget, és implementáljuk a transzfertanulást az alábbi lépésekkel.
- Nyisson meg egy Miniconda ablakot, navigáljon el a YOLO példakönyvtárba, és futtassa a következő parancsot, hogy telepítse a YOLO működéséhez szükséges összes pip csomagot.
pip install -r requirements.txt
- Futtassa a beállítási szkriptet az adatok és az előre betanított súlyok letöltéséhez
python setup.py
- Alakítsa át az adathalmazt. Tekintse meg
tools/voc2012.pya megvalósítást – ez a formátum a tensorflow objektumészlelési API-n alapul. Sok mezőre nincs szükség, de a hivatalos API-val való kompatibilitás érdekében itt van kitöltve.
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
- A modell betanítása. Futtassa az alábbi parancsot:
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
Most már van egy újratanított modell 20 osztálysal, használatra kész.
Következő lépések
Most, hogy létrehoztunk egy TensorFlow-modellt, ONNX formátumúvá kell alakítanunk a Windows Machine Learning API-k használatához.