Inhoudsopgave[Zich verstoppen][Laten zien]
- Wat is beeldclassificatie?
- Hoe werkt beeldclassificatie?
Beeldclassificatie met behulp van Tensorflow & Keras in python+-
- 1. Installatievereisten
- 2. Afhankelijkheden importeren
- 3. Parameters initialiseren
- 4. Laden van de dataset
- 5. Het model maken
- 6. Het model trainen
- Het model testen
- 7. De hulpprogramma's importeren om te testen
- 8. Een python-directory maken
- 9. Testgegevens en model laden
- 10. Evaluatie & Voorspelling
- 11. Resultaten
- Conclusie
Het is geruststellend om te weten dat we erin geslaagd zijn om robots te doordrenken met onze aangeboren vaardigheden om door voorbeeld te leren en hun omgeving waar te nemen. De fundamentele uitdaging is dat het veel meer tijd en moeite kost om computers te leren 'zien' zoals mensen.
Als we echter kijken naar de praktische waarde die deze vaardigheid momenteel biedt aan organisaties en ondernemingen, is de inspanning de moeite waard. In dit artikel leert u over beeldclassificatie, hoe het werkt en de praktische implementatie ervan. Laten we beginnen.
Wat is beeldclassificatie?
De taak van het invoeren van een afbeelding in een neuraal netwerk en het een of andere vorm van label voor die foto laten uitvoeren, staat bekend als beeldherkenning. Het uitvoerlabel van het netwerk komt overeen met een vooraf gedefinieerde klasse.
Er kunnen meerdere klassen aan de afbeelding zijn toegewezen, of slechts één. Wanneer er slechts één klasse is, wordt vaak de term "herkenning" gebruikt, terwijl wanneer er meerdere klassen zijn, de term "classificatie" vaak wordt gebruikt.
Objectdetectie is een subset van beeldclassificatie waarin bepaalde instanties van objecten worden gedetecteerd als behorend tot een bepaalde klasse, zoals dieren, voertuigen of mensen.
Hoe werkt beeldclassificatie?
Een beeld in de vorm van pixels wordt geanalyseerd door een computer. Dit wordt bereikt door het beeld te behandelen als een verzameling matrices, waarvan de grootte wordt bepaald door de beeldresolutie. Eenvoudig gezegd is beeldclassificatie de studie van statistische gegevens met behulp van algoritmen vanuit het perspectief van een computer.
Beeldclassificatie wordt bereikt bij digitale beeldverwerking door pixels te groeperen in vooraf bepaalde groepen of "klassen". De algoritmen verdelen het beeld in een opeenvolging van opvallende kenmerken, wat de last voor de uiteindelijke classificator vermindert.
Deze eigenschappen informeren de classificator over de betekenis en mogelijke classificatie van de afbeelding. Omdat de rest van de processen bij het classificeren van een afbeelding ervan afhankelijk zijn, is de karakteristieke extractiemethode de meest kritieke fase.
De verstrekte gegevens aan het algoritme is ook cruciaal bij beeldclassificatie, met name classificatie onder toezicht. In vergelijking met een vreselijke dataset met data-onbalans op basis van klasse en lage beeld- en annotatiekwaliteit, presteert een goed geoptimaliseerde classificatiedataset bewonderenswaardig.
Beeldclassificatie met behulp van Tensorflow & Keras in python
We zullen de CIFAR-10 dataset (inclusief vliegtuigen, vliegtuigen, vogels en andere 7 dingen).
1. Installatievereisten
De onderstaande code installeert alle vereisten.
2. Afhankelijkheden importeren
Maak een train.py-bestand in Python. De onderstaande code importeert afhankelijkheden van Tensorflow en Keras.
3. Parameters initialiseren
CIFAR-10 bevat slechts 10 beeldcategorieën, vandaar dat aantal klassen eenvoudig verwijst naar het aantal te classificeren categorieën.
4. Laden van de dataset
De functie gebruikt de Tensorflow Datasets-module om de dataset te laden en we stellen info in op True om er wat informatie over te verkrijgen. U kunt het afdrukken om te zien welke velden en hun waarden zijn, en we zullen de informatie gebruiken om het aantal monsters in de trainings- en testsets op te halen.
5. Het model maken
Nu bouwen we drie lagen, elk bestaande uit twee ConvNets met een max-pooling en ReLU-activeringsfunctie, gevolgd door een volledig verbonden systeem met 1024 eenheden. In vergelijking met ResNet50 of Xception, die state-of-the-art modellen zijn, is dit misschien een relatief klein model.
6. Het model trainen
Ik heb Tensorboard gebruikt om de nauwkeurigheid en het verlies in elk tijdperk te meten en ons een mooie weergave te geven na het importeren van de gegevens en het genereren van het model. Voer de volgende code uit; afhankelijk van je CPU/GPU duurt de training enkele minuten.
Om tensorboard te gebruiken, typt u gewoon de volgende opdracht in de terminal of opdrachtprompt in de huidige map:
U zult zien dat het validatieverlies afneemt en de nauwkeurigheid stijgt tot ongeveer 81%. Dat is fantastisch!
Het model testen
Als de training is afgelopen, worden het uiteindelijke model en de gewichten opgeslagen in de resultatenmap, zodat we een keer kunnen trainen en voorspellingen kunnen doen wanneer we maar willen. Volg de code in een nieuw python-bestand met de naam test.py.
7. De hulpprogramma's importeren om te testen
8. Een python-directory maken
Maak een Python-woordenboek dat elke integerwaarde vertaalt naar het juiste label van de dataset:
9. Testgegevens en model laden
De volgende code laadt de testgegevens en het model.
10. Evaluatie & Voorspelling
De volgende code zal de kikkerafbeeldingen evalueren en voorspellingen doen.
11. Resultaten
Het model voorspelde de kikker met een nauwkeurigheid van 80.62%.
Conclusie
Oké, we zijn klaar met deze les. Hoewel 80.62% niet goed is voor een beetje CNN, raad ik je sterk aan om het model te wijzigen of naar ResNet50, Xception of andere geavanceerde modellen te kijken voor betere resultaten.
Nu je je eerste beeldherkenningsnetwerk in Keras hebt gebouwd, moet je met het model experimenteren om te ontdekken hoe verschillende parameters de prestaties beïnvloeden.
Laat een reactie achter