Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po skonfigurowaniu biblioteki TensorFlow użyjemy architektury YOLO do wytrenowania modelu wykrywania obiektów. YOLO to sieć neuronowa, która przewiduje ramki ograniczające i prawdopodobieństwa klas na podstawie obrazu w pojedynczej ocenie. Modele YOLO mogą przetwarzać ponad 60 klatek na sekundę, dzięki czemu jest to świetna architektura do wykrywania obiektów w filmach wideo. Więcej informacji na temat sposobu działania YOLO można znaleźć tutaj.
Korzystanie z YOLO
Najpierw pobierz ten przykładowy plik YOLO, który zawiera skrypty pomocnika, aby rozpocząć pracę.
W przypadku korzystania z YOLO mamy 3 opcje:
Wykorzystaj wstępnie wytrenowane wagi modelu w YOLO. Wstępnie wytrenowany model został wytrenowany na dużym zestawie danych z 80 klasami (kategoriami) dla codziennych obiektów, takich jak autobus, osoba, kanapka itp. Jeśli chcesz pobrać wstępnie wytrenowany model YOLO w formacie ONNX, możesz to zrobić tutaj. Następnie możesz przejść do ostatniego etapu tego samouczka , aby dowiedzieć się, jak zintegrować ten model z aplikacją.
Implementowanie uczenia transferowego przy użyciu niestandardowego zestawu danych. Uczenie transferowe to metoda używania wytrenowanego modelu jako punktu wyjścia do trenowania modelu rozwiązującego inne, ale powiązane zadanie. W tym samouczku będą używane wstępnie wytrenowane wagi YOLO z 80 klasami, aby trenować model z 20 klasami, korzystając z zestawu danych VOC. Jeśli chcesz utworzyć własny zestaw danych przy użyciu klas niestandardowych, zobacz instrukcje tutaj.
Trenowanie YOLO od podstaw. Ta technika nie jest zalecana, ponieważ jest bardzo trudna do zbiegania się. Oryginalny artykuł YOLO opisuje, jak trenowano darknet na ImageNet (zawierający setki tysięcy zdjęć) przed trenowaniem całej sieci podobnie.
Zaimplementuj uczenie transferowe na wstępnie wytrenowanych wagach YOLO dla zestawu danych VOC.
Przejdźmy do drugiej opcji i zaimplementujmy uczenie transferowe, wykonując następujące kroki.
- W oknie miniconda przejdź do katalogu przykładowego yolo i uruchom następujące polecenie, aby zainstalować wszystkie wymagane pakiety dla YOLO.
pip install -r requirements.txt
- Uruchom skrypt instalacyjny, aby pobrać dane i wagi wytrenowane wstępnie
python setup.py
- Przekształć zestaw danych. Zobacz
tools/voc2012.py
w celu implementacji — ten format opiera się na interfejsie API do wykrywania obiektów TensorFlow. Wiele pól nie jest wymaganych, ale zostały tutaj wypełnione, aby uzyskać zgodność z oficjalnym interfejsem 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
- Trenowanie modelu. Uruchom następujące polecenia:
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
Masz teraz przetrenowany model z 20 klasami, który jest gotowy do użycia.
Dalsze kroki
Po utworzeniu modelu TensorFlow musimy przekonwertować go na format ONNX do użycia z interfejsami API usługi Windows Machine Learning.