Sommario:

Crea classificatori di immagini OpenCV usando Python: 7 passaggi
Crea classificatori di immagini OpenCV usando Python: 7 passaggi

Video: Crea classificatori di immagini OpenCV usando Python: 7 passaggi

Video: Crea classificatori di immagini OpenCV usando Python: 7 passaggi
Video: Confronto immagini con Python, OpenCv e SciKit-Image 2024, Luglio
Anonim
Crea classificatori di immagini OpenCV usando Python
Crea classificatori di immagini OpenCV usando Python

I classificatori Haar in Python e opencv sono un compito piuttosto complicato ma facile.

Spesso affrontiamo i problemi nel rilevamento e nella classificazione delle immagini. la soluzione migliore è creare il proprio classificatore. Qui impariamo a creare i nostri classificatori di immagini con pochi comandi e programmi Python lunghi ma semplici

La classificazione richiede un gran numero di immagini negative e positive i negativi non contengono l'oggetto richiesto mentre i positivi sono quelli che contengono l'oggetto da rilevare.

Sono richiesti circa 2000 negativi e positivi. Il programma Python converte l'immagine in scala di grigi e una dimensione adeguata in modo che i classificatori impieghino il tempo ottimale per creare.

Passaggio 1: Software necessari

Sono necessari i seguenti software per la creazione del proprio classificatore

1) OpenCV: la versione che ho usato è la 3.4.2. la versione è facilmente reperibile su internet.

2) Python: la versione utilizzata è la 3.6.2. Può essere scaricato da python.org

Inoltre è necessaria una webcam (ovviamente).

Passaggio 2: download delle immagini

Il primo passo è quello di fare un quadro chiaro dell'oggetto da classificare.

La dimensione non dovrebbe essere molto grande in quanto richiede più tempo per l'elaborazione da parte del computer. Ho preso una taglia 50 per 50.

Successivamente scarichiamo le immagini negative e positive. Li puoi trovare online. Ma usiamo il codice Python per scaricare immagini da 'https://image-net.org'

Quindi convertiamo le immagini in scala di grigi e in una dimensione normale. Questo è anche implementato nel codice. Il codice rimuove anche qualsiasi immagine difettosa

Ormai la tua directory dovrebbe contenere l'immagine dell'oggetto es watch5050-j.webp

Se la cartella dati non è stata creata, fallo manualmente

Il codice Python è fornito nel file.py

Passaggio 3: creazione di campioni positivi in OpenCV

Creazione di campioni positivi in OpenCV
Creazione di campioni positivi in OpenCV
Creazione di campioni positivi in OpenCV
Creazione di campioni positivi in OpenCV

Ora vai alla directory opencv_createsamples e aggiungi tutto il contenuto sopra menzionato

nel prompt dei comandi vai su C:\opencv342\build\x64\vc14\bin per trovare le app opencv_createsamples e opencv_traincascade

ora esegui i seguenti comandi

opencv_createsamples -img watch5050-j.webp

Questo comando serve per creare i campioni positivi dell'oggetto 1950 per l'esattezza E il file di descrizione info.lst delle immagini positive la descrizione dovrebbe essere così 0001_0014_0045_0028_0028-j.webp

Ora la cartella contiene

informazioni

cartella immagini negativa

file bg.txt

cartella dati vuota

Passaggio 4: creazione di file vettoriali positivi

Creazione di un file vettoriale positivo
Creazione di un file vettoriale positivo

Ora crea il file vettoriale positivo che fornisce il percorso alle immagini positive il file di descrizione

Usa il seguente comando

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

Ormai il contenuto della directory deve essere il seguente:

--neg

----negimages.jpg

--opencv

--Informazioni

--dati

--positives.vec

--bg.txt

--watch5050-j.webp

Passaggio 5: formazione del classificatore

Addestrare il classificatore
Addestrare il classificatore
Addestrare il classificatore
Addestrare il classificatore
Addestrare il classificatore
Addestrare il classificatore

Ora addestriamo la cascata haar e creiamo il file xml

Usa il seguente comando

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

gli stadi sono 10 L'aumento degli stadi richiede più elaborazione ma il classificatore è molto più efficiente.

Ora haarcascadeècreato Ci vogliono circa due ore per completarlo Apri la cartella dei dati lì troverai cascade.xml Questo èil classificatore cheèstato creato

Passaggio 6: test del classificatore

La cartella dei dati contiene i file come mostrato nell'immagine sopra.

Dopo la creazione del classificatore vediamo se il classificatore funziona o meno eseguendo il programma object_detect.py. Non dimenticare di inserire il file classifier.xml nella directory python.

Passaggio 7: ringraziamenti speciali

Vorrei ringraziare Sentdex qui che è un grande programmatore Python.

Ha un nome youtube con il nome sopra citato e il video che mi ha aiutato molto ha questo link

La maggior parte del codice è stata copiata da senddex. Sebbene abbia ricevuto molto aiuto da senddex, ho dovuto affrontare ancora molti problemi. Volevo solo condividere la mia esperienza.

Spero che questo intrusivo ti abbia aiutato!!! Resta sintonizzato per saperne di più.

BR

Tahir Ul Haq

Consigliato: