Inhoudsopgave:

OpenCV-beeldclassificaties maken met Python: 7 stappen
OpenCV-beeldclassificaties maken met Python: 7 stappen

Video: OpenCV-beeldclassificaties maken met Python: 7 stappen

Video: OpenCV-beeldclassificaties maken met Python: 7 stappen
Video: Webinar - MAX78000 Neural Network Accelerator 2024, Juli-
Anonim
Maak OpenCV-beeldclassificaties met Python
Maak OpenCV-beeldclassificaties met Python

Haar-classificaties in python en opencv is nogal lastig maar gemakkelijke taak.

We worden vaak geconfronteerd met de problemen bij beelddetectie en classificatie. de beste oplossing is om je eigen classifier te maken. Hier leren we onze eigen beeldclassificaties te maken met een paar commando's en lange maar eenvoudige python-programma's

De classificatie vereist een groot aantal negatieve en positieve afbeeldingen. Negatieven bevatten niet het vereiste object, terwijl de positieven degene zijn die het te detecteren object bevatten.

Er zijn ongeveer 2000 negatieven en positieven nodig. Het python-programma converteert de afbeelding naar grijswaarden en een geschikte grootte, zodat classifiers de optimale tijd nodig hebben om te maken.

Stap 1: Benodigde software

U hebt de volgende software nodig voor het maken van uw eigen classifier:

1) OpenCV: de versie die ik heb gebruikt is 3.4.2. de versie is gemakkelijk beschikbaar op internet.

2) Python: De gebruikte versie is 3.6.2. Kan worden gedownload van python.org

Bovendien heb je (uiteraard) een webcam nodig.

Stap 2: De afbeeldingen downloaden

De eerste stap is het maken van een duidelijk beeld van het te classificeren object.

De grootte mag niet erg groot zijn, omdat de computer meer tijd nodig heeft om te verwerken. Ik nam de maat 50 bij 50.

Vervolgens downloaden we de negatieve en positieve afbeeldingen. Je kunt ze online vinden. Maar we gebruiken de python-code om afbeeldingen te downloaden van 'https://image-net.org'

Vervolgens converteren we de afbeeldingen naar grijswaarden en naar een normale grootte. Dit is ook geïmplementeerd in de code. De code verwijdert ook elke defecte afbeelding

Je map zou nu de objectafbeelding moeten bevatten, bijvoorbeeld watch5050-j.webp

Als de gegevensmap niet is gemaakt, doe dit dan handmatig

De python-code staat in het.py-bestand

Stap 3: Positieve voorbeelden maken in OpenCV

Positieve voorbeelden maken in OpenCV
Positieve voorbeelden maken in OpenCV
Positieve voorbeelden maken in OpenCV
Positieve voorbeelden maken in OpenCV

Ga nu naar de map opencv_createsamples en voeg alle bovengenoemde inhoud toe

ga in de opdrachtprompt naar C:\opencv342\build\x64\vc14\bin om de apps opencv_createsamples en opencv_traincascade te vinden

voer nu de volgende opdrachten uit:

opencv_createsamples -img watch5050-j.webp

Deze opdracht is voor het maken van de positieve monsters van het object 1950 om precies te zijn. En het beschrijvingsbestand info.lst van de positieve afbeeldingen zou de beschrijving zo moeten zijn 0001_0014_0045_0028_0028-j.webp

Nu bevat de map

info

map met negatieve afbeeldingen

bg.txt-bestand

lege gegevensmap

Stap 4: Positief vectorbestand maken

Positief vectorbestand maken
Positief vectorbestand maken

Maak nu het positieve vectorbestand dat het pad geeft naar de positieve afbeeldingen van het beschrijvingsbestand

Gebruik de volgende opdracht:

opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec positives.vec

Inmiddels moet de inhoud van de directory als volgt zijn:

--neg

----negimages.jpg

--opencv

--info

--gegevens

--positieven.vec

--bg.txt

--watch5050-j.webp

Stap 5: De classifier trainen

De classificator trainen
De classificator trainen
De classificator trainen
De classificator trainen
De classifier trainen
De classifier trainen

Laten we nu de haarcascade trainen en het xml-bestand maken

Gebruik de volgende opdracht:

opencv_traincascade -data data -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20

stadia zijn 10 Het verhogen van de stadia vereist meer verwerking, maar de classificatie is veel efficiënter.

Nu is haarcascade gemaakt. Het duurt ongeveer twee uur om te voltooien. Open de datamap, daar vindt u cascade.xml Dit is de classifier die is gemaakt

Stap 6: De classificatie testen

De datamap bevat de bestanden zoals weergegeven in de afbeelding hierboven.

Na het maken van de classifier zien we of de classifier werkt of niet door het object_detect.py programma uit te voeren. Vergeet niet het bestand classifier.xml in de python-directory te plaatsen.

Stap 7: Speciale dank

Ik wil Sentdex hier bedanken, die een geweldige python-programmeur is.

Hij heeft een youtube-naam met de bovengenoemde naam en de video die me veel heeft geholpen heeft deze link

Het grootste deel van de code is gekopieerd van senddex. Hoewel ik veel hulp kreeg van sentdex, had ik nog steeds veel problemen. Ik wilde alleen mijn ervaring delen.

Ik hoop dat deze intructable je heeft geholpen !!! Blijf erbij voor meer.

BR

Tahir Ul Haq

Aanbevolen: