Deze blogpost is oorspronkelijk gepubliceerd op de website van Xailient. Het is hier herdrukt met toestemming van Xailient.

In dit bericht zullen we kijken naar de beste methoden voor het verzamelen van een trainingsdataset om een ​​aangepast detectiemodel te trainen.

Het gebruik van deep learning in computervisie is de afgelopen tien jaar toegenomen. In de afgelopen jaren zijn computer vision-toepassingen zoals gezichtsdetectie en voertuigdetectie mainstream geworden. Een van de redenen is de beschikbaarheid van vooraf getrainde modellen.

Overtuigd door het succes van deep learning op deze applicaties, zijn bedrijven nu begonnen hun eigen problemen op te lossen met behulp van deep learning.

Maar wat als de beschikbare voorgetrainde modellen niet geschikt zijn voor uw toepassing?

Een vooraf getraind model kan misschien eieren detecteren, maar het zal zeker geen onderscheid maken tussen goede en slechte eieren, omdat het nooit geleerd is om dit te doen.

Dus wat doe je? Maak veel afbeeldingen van goede en slechte eieren en train een aangepast detectiemodel.

Een veelvoorkomende uitdaging bij het maken van een goed aangepast computervisiemodel is het trainen van gegevens. Deep learning-modellen hebben een enorme hoeveelheid data nodig om hun algoritme te trainen – zoals we kunnen zien met benchmarkmodellen zoals MaskRCNN, YOLO en MobileNet, die zijn getraind op bestaande grote datasets COCO en ImageNet.

Hoe krijg je gegevens voor het trainen van een aangepast detectiemodel?

In dit bericht zullen we kijken naar vijf manieren om gegevens te verzamelen voor het trainen van uw aangepaste model en het oplossen van uw problemen.

1. Openbaar beschikbare open gelabelde datasets

Als je geluk hebt, krijg je misschien een gelabelde dataset die je online wilt hebben. Hier is een lijst met gratis beelddatasets voor computervisie waaruit je kunt kiezen.

ImageNet: De ImageNet-dataset bestaat in totaal uit ongeveer 14 miljoen afbeeldingen, voor 21.841 verschillende categorieën van objecten (gegevens per 12 februari 2020). Enkele van de populaire categorieën objecten in ImageNet zijn Dieren (vissen, vogels, zoogdieren, ongewervelden), Planten (boom, bloemen, groenten) en Activiteit (sport).


Voorbeeld van afbeeldingen in ImageNet-dataset

Common Objects in Context (COCO): COCO is een grootschalige objectdetectie, segmentatie en ondertitel dataset. Het bevat ongeveer 330.000 afbeeldingen, waarvan er 200.000 zijn gelabeld voor 80 verschillende objectcategorieën.


Afbeeldingen uit de COCO-dataset

Google's Open Afbeeldingen:Open Images is een dataset van ongeveer 9 miljoen afbeeldingen, geannoteerd met labels op afbeeldingsniveau, objectkaders, objectsegmentatiemaskers en visuele relaties. Het bevat in totaal 16 miljoen begrenzingsvakken voor 600 objectklassen op 1,9 miljoen afbeeldingen, waardoor het de grootste bestaande dataset is met annotaties van objectlocaties.

Voorbeelden van afbeeldingen uit de Open Images Dataset

MNIST Handgeschreven Datasets:Deze dataset heeft in totaal 70.000 afbeeldingen van handgeschreven cijfers en is een subset van een grotere set die verkrijgbaar is bij NIST. De cijfers zijn genormaliseerd naar grootte en gecentreerd in een afbeelding met een vaste grootte.

<Voorbeeld van afbeeldingen uit de MNIST-dataset

Cityscapes-dataset:Deze dataset richt zich op semantisch begrip van stedelijke straattaferelen. Het bevat ongeveer 20.000 geannoteerde afbeeldingen voor 30 verschillende klassen.

Cityscapes-gegevensset

OPMERKING: dit zijn er slechts een paar die ik heb gevonden, en er zijn veel andere datasets die u online kunt vinden. Zorg er ook voor dat u de licentie van deze datasets controleert voordat u ze gebruikt.

2. Het web schrapen

Een andere optie is om op het web naar afbeeldingen te zoeken en handmatig afbeeldingen te selecteren om ze handmatig te downloaden. Omdat er een grote hoeveelheid gegevens nodig is, is deze methode niet efficiënt.

OPMERKING: De afbeeldingen op internet kunnen auteursrechtelijk beschermd zijn. Denk er altijd aan om het copyright van de afbeeldingen te controleren voordat u ze gebruikt.


Voorbeeld van zoeken naar afbeeldingen in Google Afbeeldingen

Een alternatief hiervoor is om een ​​programma te schrijven om het web te schrapen en de gewenste afbeeldingen te downloaden. Een zo'n programma is Download All Images – een Google Chrome-extensie waarmee je een heleboel afbeeldingen tegelijk kunt downloaden. In deze blogpost legt Arun Ponnusamy uit hoe je Download All Images kunt gebruiken om afbeeldingen te downloaden van mensen die een helm dragen.

OPMERKING: De auteursrechtelijke gebruiksrechten van afbeeldingen staan ​​het gebruik van in bulk gedownloade afbeeldingen mogelijk niet toe. Controleer altijd het copyright van elke afbeelding voordat u ze gebruikt.

Foto's maken

Als u geen afbeeldingen van het gewenste object kunt vinden, kunt u deze verzamelen door foto's te maken. Dit kan handmatig worden gedaan, dat wil zeggen door elke afbeelding zelf te maken of door crowdsourcing – andere mensen inhuren om foto's voor u te maken. Een andere manier om afbeeldingen uit de echte wereld te verzamelen, is door een geprogrammeerde camera in uw omgeving te installeren.

Foto door Miss Zhang op Unsplash

4. Gegevensvergroting

We weten dat deep learning-modellen een grote hoeveelheid gegevens vereisen. Als je maar een kleine dataset hebt, is het misschien niet genoeg om een ​​goed model te trainen. In dergelijke gevallen kunt u gegevensvergroting gebruiken om meer trainingsgegevens te genereren.

Geometrische transformaties zoals spiegelen, bijsnijden, roteren en vertalen zijn enkele veelgebruikte technieken voor gegevensvergroting. Het toepassen van augmentatie van afbeeldingsgegevens vergroot niet alleen uw dataset door variatie te creëren, maar vermindert ook overfitting.


Originele afbeelding van een hond aan de linkerkant, horizontaal gespiegelde afbeelding over het midden aan de rechterkant

Originele en willekeurig bijgesneden afbeeldingen van een kat

Originele en gedraaide afbeeldingen van een kat


Originele en vertaalde afbeeldingen van een tennisbal

5. Gegevens genereren

Soms zijn echte gegevens mogelijk niet beschikbaar. In dergelijke gevallen kunnen synthetische gegevens worden gegenereerd om uw aangepaste detectiemodel te trainen. Vanwege de lage kosten is het gebruik van synthetische gegevensgeneratie in machine learning toegenomen.

Generative Adversarial Networks (GAN's) is een van de vele technieken die worden gebruikt voor het genereren van synthetische gegevens. GAN is een generatieve modelleringstechniek, waarbij kunstmatige instanties worden gemaakt van een dataset op een zodanige manier dat vergelijkbare kenmerken van de originele set behouden blijven.

Moderne kunst gegenereerd door GAN

Samenvatting

Het verzamelen van een trainingsdataset is de eerste stap naar het trainen van uw eigen aangepaste detectormodel. In dit bericht hebben we gekeken naar enkele van de technieken die worden gebruikt voor het verzamelen van afbeeldingsgegevens, waaronder zoeken door openbare open gelabelde datasets, het web scrapen, handmatig foto's maken of een programma gebruiken, technieken voor gegevensvergroting gebruiken en synthetische datasets genereren.

In het volgende bericht zullen we kijken naar de volgende stap in het trainen van uw aangepaste detector, dat wil zeggen, het labelen van uw dataset.

Sabina Pokhrel
Customer Success AI Engineer, Xailient

0

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *