Sådan trænes YOLOv3 til at registrere tilpassede objekter

Denne tutorials er, hvordan man træner katte- og hundeobjekter ved hjælp af Yolo-v3

YOLO V3 detaljer - Funktionsekstraktor:

Vi bruger et nyt netværk til udførelse af funktionsekstraktion. Vores nye netværk er en hybrid tilgang mellem det netværk, der bruges i YOLOv2, Darknet-19, og det nyudviklede resterende netværksudstyr. Vores netværk bruger successive 3 × 3 og 1 × 1 indviklede lag, men har nu også nogle genvejsforbindelser og er betydeligt større. Det har 53 indviklede lag, så vi kalder det…. vent på det… .. Darknet-53 !. Klik her hvis du vil læse om yolo v3.

Yolo v3 - Arkitektur

Datasætforberedelse:

Datasætforberedelsen svarer til Sådan trænes YOLOv2 til at opdage tilpassede objekter blog i medium og her er linket.

Følg venligst ovenstående link for datasætforberedelse til yolo v3 og følg linket indtil forberedelse af YOLOv2-konfigurationsfiler.

Uddannelse:

Download fortrukne indviklede vægte:

Til træning bruger vi indviklede vægte, der er foruddannet på Imageet. Vi bruger vægte fra darknet53-modellen. Du kan bare downloade vægtene til de indviklede lag her (76 MB).

Forberedelse af YOLOv3-konfigurationsfiler

YOLOv3 har brug for visse specifikke filer for at vide, hvordan og hvad de skal træne. Vi opretter disse tre filer (.data, .navne og .cfg) og forklarer også yolov3.cfg og yolov3-tiny.cfg.

  • cfg / cat-dog-obj.data
  • cfg / kat-hund-obj.names

Lad os først forberede filen YOLOv3 .data og .names. Lad os starte med at oprette cat-dog-obj.data og udfylde det med dette indhold. Dette siger dybest set, at vi træner en klasse, hvad tog- og valideringssætfilerne er, og hvilken fil indeholder navnene på de kategorier, vi vil registrere.

klasser = 2
tog = kat-hund-tog.txt
valid = cat-dog-test.txt
names = cat-dog-obj.names
backup = backup /

Sikkerhedskopien er det sted, hvor du vil gemme yolo-vægtfilen.

Cat-dog-obj.names ser sådan ud, enkel og enkel. Hver ny kategori skal være på en ny linje, dens linjenummer skal matche kategorienummeret i .txt-etiketfilerne, vi oprettede tidligere.

kat
hund

Nu går vi til at oprette .cfg til at vælge yolo-arkitekturen. Hvis du har mindre konfiguration af GPU (mindre end 2 GB GPU), kan du bruge tiny-yolo.cfg eller have en god konfiguration af GPU (større end 4 GB GPU) bruge yolov3.cfg.

Trin 1: (Hvis du vælger tiny-yolo.cfg)

i) Kopier den lille-yolo.cfg og gem filnavnet som cat-dog-lille-yolo.cfg

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $ cd cfg
manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 / cfg $ cp yolov3-tiny.cfg cat-dog-yolov3-tiny.cfg

Jeg duplikerede lige filen yolov3-tiny.cfg og lavede følgende redigeringer:
Skift værdien af ​​filtre og klasser

  • Linie 3: indstil batch = 24, det betyder, at vi vil bruge 24 billeder til hvert træningstrin
  • Linie 4: indstil underafsnit = 8, batchet vil blive divideret med 8 for at reducere GPU VRAM-kravene.
  • Linie 127: indstil filtre = (klasser + 5) * 3 i vores tilfælde filtre = 21
  • Linie 135: indstil klasser = 2, antallet af kategorier, vi vil registrere
  • Linie 171: indstil filtre = (klasser + 5) * 3 i vores tilfælde filtre = 21
  • Linie 177: indstil klasser = 2, antallet af kategorier, vi vil registrere

Start Trinaing med at følge trin 1:

Indtast følgende kommando i din terminal og se din GPU gøre, hvad den gør bedst (kopier din train.txt og test.txt til yolo_darknet rodmappe):

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $. / darknet detector train cfg / cat-dog-obj.data cfg / cat-dog-yolov3-tiny.cfg darknet53.conv.74

PRODUKTION:

Fuldfør oprettelsen af ​​.cfg-filen. Hvis du har den gode konfiguration af GPU, skal du springe trin 1 over og følge trin 2.

Trin 2: (Hvis du vælger yolov3.cfg)

i) Kopier yolov3.cfg og gem filnavnet som cat-dog-yolov3.cfg

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $ cd cfg
manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 / cfg $ cp yolov3.cfg cat-dog-yolov3.cfg

Jeg duplikerede lige filen yolov3.cfg og lavede følgende redigeringer:
Skift værdien af ​​filtre og klasser.

  • Linie 3: indstil batch = 24, det betyder, at vi vil bruge 24 billeder til hvert træningstrin
  • Linie 4: indstil underafsnit = 8, batchet vil blive divideret med 8 for at reducere GPU VRAM-kravene.
  • Linie 603: indstil filtre = (klasser + 5) * 3 i vores tilfælde filtre = 21
  • Linie 610: indstil klasser = 2, antallet af kategorier, vi vil registrere
  • Linie 689: indstil filtre = (klasser + 5) * 3 i vores tilfælde filtre = 21
  • Linie 696: indstil klasser = 2, antallet af kategorier, vi vil registrere
  • Linie 776: indstil filtre = (klasser + 5) * 3 i vores tilfælde filtre = 21
  • Linie 783: indstil klasser = 2, antallet af kategorier, vi vil registrere

Start Trinaing med at følge trin 2:

Indtast følgende kommando i din terminal og se din GPU gøre, hvad den gør bedst (kopier din train.txt og test.txt til yolo_darknet rodmappe):

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $. / darknet detektor tog cfg / cat-dog-obj.data cfg / cat-dog-yolov3.cfg darknet53.conv.74

Vigtige bemærkninger under træning:

Vægte gemmer kun hver 100 iteration indtil 900 og gemmer derefter hver 10.000. Følg linket, hvis du vil ændre processen.