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

Het labelen van gegevens is een essentiële stap in een onder toezicht staande machine learning-taak. Hetzelfde geldt voor beeldannotaties.

Gegevenslabels en beeldannotaties moeten samenwerken om een ​​compleet beeld te schetsen. Als je een kind een tomaat laat zien en zegt dat het een aardappel is, dan is de kans groot dat het kind de volgende keer dat het een tomaat ziet, het als een aardappel zal classificeren.

Een machine learning-model leert in een op dezelfde manier, door naar voorbeelden te kijken, en dus hangt het resultaat van het model af van de labels die we invoeren tijdens de trainingsfase.

'Garbage In, Garbage Out', is een veelgebruikte uitdrukking in de machine learning-gemeenschap, wat betekent dat de kwaliteit van de trainingsgegevens de kwaliteit van het model bepaalt.

Het labelen van gegevens is een taak die veel handmatig werk vereist. Als u een goede open dataset voor uw project kunt vinden, die is gelabeld, dan staat het geluk aan uw kant! Maar meestal is dit niet het geval. Het is zeer waarschijnlijk dat u het proces van gegevensannotatie zelf zult moeten doorlopen.

In dit bericht zullen we kijken naar de soorten annotaties, veelgebruikte formaten voor beeldannotaties en enkele hulpmiddelen die u kunt gebruiken voor het labelen van afbeeldingsgegevens.

Typen afbeeldingsannotaties

Voordat u springt in beeldannotaties, is het handig om te weten wat de verschillende soorten annotaties zijn, zodat u het juiste type kunt kiezen voor uw gebruik.

Hier zijn een paar verschillende soorten annotaties:

1. Begrenzingsvakken:Begrenzingsvakken zijn het meest gebruikte type annotatie in computervisie. Begrenzingsvakken zijn rechthoekige vakken die worden gebruikt om de locatie van het doelobject te definiëren. Ze kunnen worden bepaald door de – en 𝑦-ascoördinaten in de linkerbovenhoek en de 𝑥- en 𝑦-ascoördinaten in de rechterbenedenhoek van de rechthoek. Begrenzingsvakken worden over het algemeen gebruikt bij objectdetectie en lokalisatietaken.

Begrenzingskader voor gedetecteerde auto's (Originele foto door Patricia Jekki op Unsplash)

Begrenzingskaders worden meestal weergegeven door twee coördinaten (x1, y1) en (x2, y2) of met één coördinaat (x1, y1) en breedte (w) en hoogte (h) van het selectiekader. (Zie afbeelding hieronder)


Begrenzingsvak met coördinaten x1, y1, x2, y2, breedte (b) en hoogte (h) (Foto door an_vision op Unsplash)

2. Veelhoekige segmentatie: objecten zijn niet altijd rechthoekig van vorm. Met dit idee is polygonale segmentatie een ander type gegevensannotatie waarbij complexe polygonen worden gebruikt in plaats van rechthoeken om de vorm en locatie van het object op een veel preciezere manier te definiëren.

Veelhoekige segmentatie van afbeeldingen uit COCO-dataset (bron)

3. Semantische segmentatie: Semantische segmentatie is een pixelgewijze annotatie, waarbij elke pixel in de afbeelding aan een klasse wordt toegewezen. Deze klassen kunnen voetganger, auto, bus, weg, stoep, enz. zijn, en elke pixel heeft een semantische betekenis.

Semantische segmentatie wordt voornamelijk gebruikt in gevallen waarin de omgevingscontext erg belangrijk is. Het wordt bijvoorbeeld gebruikt in zelfrijdende auto's en robotica omdat het belangrijk is voor de modellen om de omgeving waarin ze werken te begrijpen.

Semantische segmentatie van afbeeldingen uit Cityscapes Dataset (Bron)

4. 3D-kubussen :3D-balken zijn vergelijkbaar met begrenzingsvakken met extra diepte-informatie over het object. Met 3D-balken kun je dus een 3D-weergave van het object krijgen, waardoor systemen kenmerken zoals volume en positie in een 3D-ruimte kunnen onderscheiden.

Een gebruiksvoorbeeld van 3D-balken is in zelfrijdende auto's waar het kan de extra diepte-informatie gebruiken om de afstand van objecten tot de auto te meten.


3D kubusvormige annotatie op afbeelding (originele foto door Jose Carbajal op Unsplash)

5. Sleutelpunt en oriëntatiepunt: De annotatie van een sleutelpunt en oriëntatiepunt wordt gebruikt om kleine objecten en vormvariaties te detecteren door stippen over de afbeelding te maken. Dit type annotatie is handig voor het detecteren van gelaatstrekken, gezichtsuitdrukkingen, emoties, menselijke lichaamsdelen en houdingen.

Voorbeelden van belangrijke annotaties uit COCO-dataset (bron)

6. Lijnen en Splines: Zoals de naam al doet vermoeden, wordt dit type annotatie gemaakt door lijnen en splines te gebruiken. Het wordt vaak gebruikt in autonome voertuigen voor het detecteren en herkennen van rijstroken.

Lijnaantekening op de weg (originele foto door Karsten Würthon Unsplash)

Indelingen voor beeldannotaties

Er is niet één standaardformaat als het gaat om beeldannotaties. Hieronder staan ​​enkele veelgebruikte annotatie-indelingen:

1. COCO:COCO heeft vijf annotatietypen: objectdetectie, keypoint-detectie, materiaalsegmentatie, panoptische segmentatie en beeldondertiteling. De annotaties worden opgeslagen met JSON.

Voor objectdetectie volgt COCO het volgende formaat:

2. Pascal VOC: Pascal VOC slaat annotaties op in een XML-bestand. Hieronder ziet u een voorbeeld van een Pascal VOC-annotatiebestand voor objectdetectie.

3.YOLO:In het YOLO-labelformaat wordt een .txt-bestand met dezelfde naam gemaakt voor elk afbeeldingsbestand in dezelfde map. Elk .txt-bestand bevat de annotaties voor het bijbehorende afbeeldingsbestand, inclusief de objectklasse, objectcoördinaten, hoogte en breedte.

Voor elk object wordt een nieuwe regel gemaakt.

Hieronder ziet u een voorbeeld van annotatie in YOLO-indeling waarbij de afbeelding twee verschillende objecten bevat.

Hulpmiddelen voor het annoteren van afbeeldingen

Hier is een lijst met tools die u kunt gebruiken voor het annoteren van afbeeldingen:

  1. MakeSense.AI
  2. LabelImg
  3. VGG-beeldannotator
  4. LabelMe
  5. Schaalbaar
  6. RectLabel

Samenvatting

In dit bericht hebben we besproken wat annotatie/labeling van gegevens is en waarom het belangrijk is voor machine learning. We hebben gekeken naar zes verschillende soorten annotaties voor afbeeldingen: begrenzingsvakken, veelhoekige segmentatie, semantische segmentatie, 3D-balken, key-point en landmark, en lijnen en splines, en drie verschillende annotatie-indelingen: COCO, Pascal VOC en YOLO. We hebben ook enkele hulpmiddelen voor het annoteren van afbeeldingen vermeld die beschikbaar zijn.

Sabina Pokhrel
Customer Success AI Engineer, Xailient

 

0

Geef een antwoord

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