Uw Custom Vision-model verbeteren
In deze handleiding leert u hoe u de kwaliteit van uw Custom Vision-model kunt verbeteren. De kwaliteit van uw classificatie of objectdetector is afhankelijk van de hoeveelheid, kwaliteit en verscheidenheid aan gelabelde gegevens die u levert en hoe evenwichtig de algehele gegevensset is. Een goed model heeft een evenwichtige trainingsgegevensset die representatief is voor wat er aan het model wordt verzonden. Het proces van het bouwen van een dergelijk model is iteratief; Het is gebruikelijk om een paar trainingsrondes te volgen om de verwachte resultaten te bereiken.
Hier volgt een algemeen patroon om u te helpen een nauwkeuriger model te trainen:
- Eerste ronde training
- Meer afbeeldingen toevoegen en gegevens verdelen; opnieuw trainen
- Afbeeldingen met verschillende achtergronden, belichting, objectgrootte, camerahoek en stijl toevoegen; opnieuw trainen
- Nieuwe afbeeldingen gebruiken om voorspellingen te testen
- Bestaande trainingsgegevens wijzigen op basis van voorspellingsresultaten
Overfitting voorkomen
Soms leert een model voorspellingen te doen op basis van willekeurige kenmerken die uw afbeeldingen gemeen hebben. Als u bijvoorbeeld een classificatie maakt voor appels versus citrusvruchten en u afbeeldingen van appels in handen en van citrusvruchten op witte platen hebt gebruikt, kan de classificatie onnodig belang geven aan handen versus appels versus appels versus citrus.
U kunt dit probleem oplossen door afbeeldingen te voorzien van verschillende hoeken, achtergronden, objectgrootte, groepen en andere variaties. In de volgende secties worden deze concepten uitgebreid.
Gegevenshoeveelheid
Het aantal trainingsafbeeldingen is de belangrijkste factor voor uw gegevensset. We raden u aan ten minste 50 afbeeldingen per label als uitgangspunt te gebruiken. Met minder afbeeldingen is er een hoger risico op overfitting en terwijl uw prestatienummers een goede kwaliteit voorstellen, kan uw model moeite hebben met echte gegevens.
Gegevensbalans
Het is ook belangrijk om rekening te houden met de relatieve hoeveelheden trainingsgegevens. Het gebruik van 500 afbeeldingen voor één label en 50 afbeeldingen voor een ander label zorgt bijvoorbeeld voor een onevenwichtige trainingsgegevensset. Dit zorgt ervoor dat het model nauwkeuriger is bij het voorspellen van het ene label dan het andere. U ziet waarschijnlijk betere resultaten als u ten minste een verhouding van 1:2 tussen het label met de minste afbeeldingen en het label met de meeste afbeeldingen behoudt. Als het label met de meeste afbeeldingen bijvoorbeeld 500 afbeeldingen bevat, moet het label met de minste afbeeldingen ten minste 250 afbeeldingen bevatten voor training.
Gegevensvariant
Zorg ervoor dat u afbeeldingen gebruikt die representatief zijn voor wat tijdens normaal gebruik naar de classificatie wordt verzonden. Anders kan uw model leren voorspellingen te doen op basis van willekeurige kenmerken die uw afbeeldingen gemeen hebben. Als u bijvoorbeeld een classificatie maakt voor appels versus citrusvruchten en u afbeeldingen van appels in handen en van citrusvruchten op witte platen hebt gebruikt, kan de classificatie onnodig belang geven aan handen versus appels versus appels versus citrus.
U kunt dit probleem oplossen door verschillende afbeeldingen op te nemen om ervoor te zorgen dat uw model goed kan generaliseren. Hieronder vindt u enkele manieren waarop u uw trainingsset diverser kunt maken:
Achtergrond: Geef afbeeldingen van uw object voor verschillende achtergronden op. Foto's in natuurlijke contexten zijn beter dan foto's voor neutrale achtergronden, omdat ze meer informatie bieden voor de classificatie.
Verlichting: Geef afbeeldingen met gevarieerde verlichting (dat wil gezegd, genomen met flits, hoge belichting, enzovoort), vooral als de afbeeldingen die worden gebruikt voor voorspelling andere belichting hebben. Het is ook handig om afbeeldingen te gebruiken met verschillende verzadiging, tint en helderheid.
Objectgrootte: Geef afbeeldingen op waarin de objecten variëren in grootte en aantal (bijvoorbeeld een foto van trossen bananen en een close-up van één banaan). Met verschillende grootten kan de classificatie beter generaliseren.
Camerahoek: Geef afbeeldingen met verschillende camerahoeken op. Als al uw foto's moeten worden gemaakt met vaste camera's (zoals bewakingscamera's), moet u ook een ander label toewijzen aan elk regelmatig optredend object om overfitting te voorkomen, waarbij niet-gerelateerde objecten (zoals lampposten) worden geïnterpreteerd als de belangrijkste functie.
Stijl: Geef afbeeldingen op van verschillende stijlen van dezelfde klasse (bijvoorbeeld verschillende variëteiten van hetzelfde fruit). Als u echter objecten van drastisch verschillende stijlen hebt (zoals Mickey Mouse versus een echte muis), raden we u aan ze als afzonderlijke klassen te labelen om hun afzonderlijke functies beter weer te geven.
Negatieve afbeeldingen (alleen classificaties)
Als u een afbeeldingsclassificatie gebruikt, moet u mogelijk negatieve voorbeelden toevoegen om uw classificatie nauwkeuriger te maken. Negatieve voorbeelden zijn afbeeldingen die niet overeenkomen met een van de andere tags. Wanneer u deze afbeeldingen uploadt, past u het speciale negatieve label hierop toe.
Objectdetectoren verwerken automatisch negatieve steekproeven, omdat alle afbeeldingsgebieden buiten de getekende begrenzingsvakken als negatief worden beschouwd.
Notitie
De Custom Vision-service ondersteunt een aantal automatische negatieve verwerking van afbeeldingen. Als u bijvoorbeeld een druif versus bananenclassificatie bouwt en een afbeelding van een schoen indient voor voorspelling, moet de classificatie die afbeelding beoordelen als dicht bij 0% voor zowel druif als banaan.
Daarentegen, in gevallen waarin de negatieve afbeeldingen slechts een variant zijn van de afbeeldingen die in de training worden gebruikt, is het waarschijnlijk dat het model de negatieve afbeeldingen classificeert als een gelabelde klasse vanwege de grote overeenkomsten. Als u bijvoorbeeld een oranje vs. tenantclassificatie hebt en u invoert in een afbeelding van een clemensine, kan het de clementine scoren als oranje omdat veel kenmerken van de clementine lijken op die van sinaasappelen. Als uw negatieve afbeeldingen van deze aard zijn, raden we u aan een of meer extra tags (zoals Overige) te maken en de negatieve afbeeldingen met deze tag tijdens de training te labelen, zodat het model beter onderscheid kan maken tussen deze klassen.
Occlusie en afkapping (alleen objectdetectoren)
Als u wilt dat uw objectdetector afgekapte objecten (objecten die gedeeltelijk uit de afbeelding zijn geknipt) of afgekapte objecten (objecten die gedeeltelijk worden geblokkeerd door andere objecten in de afbeelding), moet u trainingsafbeeldingen opnemen die deze gevallen behandelen.
Notitie
Het probleem van objecten die door andere objecten worden afgesloten, is niet te verwarren met overlappingsdrempelwaarde, een parameter voor de prestaties van het classificatiemodel. De schuifregelaar Drempelwaarde overlappen op de Custom Vision-website behandelt hoeveel een voorspeld begrenzingsvak moet overlappen met het echte begrenzingsvak om als correct te worden beschouwd.
Voorspellingsafbeeldingen gebruiken voor verdere training
Wanneer u het model gebruikt of test door afbeeldingen in te dienen bij het voorspellingseindpunt, slaat de Custom Vision-service deze afbeeldingen op. Vervolgens kunt u ze gebruiken om het model te verbeteren.
Als u afbeeldingen wilt bekijken die naar het model zijn verzonden, opent u de Custom Vision-webpagina, gaat u naar uw project en selecteert u het tabblad Voorspellingen . In de standaardweergave ziet u afbeeldingen uit de huidige iteratie. U kunt de vervolgkeuzelijst Iteratie gebruiken om afbeeldingen weer te geven die tijdens eerdere iteraties zijn ingediend.
Beweeg de muisaanwijzer over een afbeelding om de tags te zien die door het model zijn voorspeld. Afbeeldingen worden gesorteerd zodat de afbeeldingen die de meeste verbeteringen aan het model kunnen toevoegen, bovenaan worden weergegeven. Als u een andere sorteermethode wilt gebruiken, maakt u een selectie in de sectie Sorteren .
Als u een afbeelding wilt toevoegen aan uw bestaande trainingsgegevens, selecteert u de afbeelding, stelt u de juiste tag(s) in en selecteert u Opslaan en sluiten. De afbeelding wordt verwijderd uit Voorspellingen en toegevoegd aan de set trainingsafbeeldingen . U kunt deze bekijken door het tabblad Trainingsafbeeldingen te selecteren.
Gebruik vervolgens de knop Trainen om het model opnieuw te trainen.
Voorspellingen visueel inspecteren
Als u afbeeldingsvoorspellingen wilt controleren, gaat u naar het tabblad Trainingsafbeeldingen , selecteert u de vorige trainingsiteratie in de vervolgkeuzelijst Iteratie en controleert u een of meer tags onder de sectie Tags . In de weergave moet nu een rood vak worden weergegeven rond elk van de afbeeldingen waarvoor het model de opgegeven tag niet correct kan voorspellen.
Soms kan een visuele inspectie patronen identificeren die u vervolgens kunt corrigeren door meer trainingsgegevens toe te voegen of bestaande trainingsgegevens te wijzigen. Een classificatie voor appels versus kalk kan bijvoorbeeld ten onrechte alle groene appels labelen als kalk. U kunt dit probleem vervolgens oplossen door trainingsgegevens toe te voegen en op te geven die gelabelde afbeeldingen van groene appels bevatten.
Volgende stappen
In deze handleiding hebt u verschillende technieken geleerd om uw aangepaste afbeeldingsclassificatiemodel of objectdetectormodel nauwkeuriger te maken. Leer vervolgens hoe u afbeeldingen programmatisch kunt testen door ze in te dienen bij de Voorspellings-API.