Cuprins:
Video: Creați clasificatoare de imagine OpenCV folosind Python: 7 pași
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Clasificatorii Haar în python și opencv sunt o sarcină destul de complicată, dar ușoară.
Adesea ne confruntăm cu probleme în detectarea și clasificarea imaginilor. cel mai bun soluție este să-ți creezi propriul clasificator. Aici învățăm să creăm propriile noastre clasificatoare de imagine cu câteva comenzi și programe Python lungi, dar simple
Clasificarea necesită un număr mare de imagini negative și pozitive. Negativele nu conțin obiectul cerut, în timp ce pozitivele sunt cel care conține obiectul care trebuie detectat.
Sunt necesare aproximativ 2000 de negative și pozitive. Programul Python convertește imaginea în tonuri de gri și o dimensiune adecvată, astfel încât clasificatorii să ia timpul optim pentru a crea.
Pasul 1: Software-uri necesare
Aveți nevoie de următoarele software pentru crearea propriului dvs. clasificator
1) OpenCV: versiunea pe care am folosit-o este 3.4.2. versiunea este ușor disponibilă pe internet.
2) Python: Versiunea utilizată este 3.6.2. Poate fi descărcat de pe python.org
Mai mult, aveți nevoie de o cameră web (desigur).
Pasul 2: Descărcarea imaginilor
Primul pas este de a face o imagine clară a obiectului care urmează să fie clasificat.
Dimensiunea nu trebuie să fie foarte mare, deoarece este nevoie de timp mai mare pentru procesarea computerului. Am luat dimensiunea de 50 pe 50.
Apoi descarcăm imaginile negative și pozitive. Le puteți găsi online. Dar folosim codul python pentru a descărca imagini de pe „https://image-net.org”
Apoi, convertim imaginile la scară de gri și la o dimensiune normală. Acest lucru este implementat în cod. Codul elimină, de asemenea, orice imagine defectă
Până acum, directorul dvs. ar trebui să conțină imaginea obiectului, de exemplu, watch5050-j.webp
Dacă folderul de date nu este creat, faceți-l manual
Codul python este furnizat în fișierul.py
Pasul 3: Crearea de probe pozitive în OpenCV
Acum accesați directorul opencv_createsamples și adăugați tot conținutul menționat mai sus
în linia de comandă accesați C: / opencv342 / build / x64 / vc14 / bin pentru a găsi opencv_createsamples și opencv_traincascade aplicații
acum executați următoarele comenzi
opencv_createsamples -img watch5050-j.webp
Această comandă este pentru a crea mostre pozitive ale obiectului 1950 pentru a fi exacte Și fișierul de descriere info.lst al imaginilor pozitive descrierea ar trebui să fie astfel 0001_0014_0045_0028_0028-j.webp
Acum dosarul conține
informații
folderul imagini neg
fișier bg.txt
folder de date gol
Pasul 4: Crearea unui fișier vector pozitiv
Acum creați fișierul vector pozitiv care oferă calea către imaginile pozitive ale fișierului de descriere
Folosiți următoarea comandă
opencv_createsamples -info info / info.lst -num 1950 -w 20 -h 20 -vec positives.vec
Până acum conținutul directorului trebuie să fie următorul:
--neg
---- negimages.jpg
--opencv
--info
--date
--positives.vec
--bg.txt
--watch5050-j.webp
Pasul 5: Instruirea clasificatorului
Acum, să antrenăm cascada haar și să creăm fișierul xml
Folosiți următoarea comandă
opencv_traincascade -data date -vec positives.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
etapele sunt 10 Creșterea etapelor necesită mai multă procesare, dar clasificatorul este mult mai eficient.
Acum este creat haarcascade Este nevoie de aproximativ două ore pentru a finaliza Deschideți folderul de date acolo veți găsi cascade.xml Acesta este clasificatorul care a fost creat
Pasul 6: Testarea clasificatorului
Dosarul de date conține fișierele așa cum se arată în imaginea de mai sus.
După crearea clasificatorului vedem dacă clasificatorul funcționează sau nu rulând programul object_detect.py. Nu uitați să plasați fișierul classifier.xml în directorul python.
Pasul 7: Mulțumiri speciale
Aș dori să mulțumesc Sentdex aici, care este un mare programator Python.
Are un nume YouTube cu numele menționat mai sus, iar videoclipul care m-a ajutat foarte mult are acest link
Majoritatea codului a fost copiat de pe sentdex. Deși am primit mult ajutor de la sentdex, m-am confruntat cu multe probleme. Am vrut doar să împărtășesc experiența mea.
Sper că acest intructibil te-a ajutat !!! Rămâneți la curent pentru mai multe.
BR
Tahir Ul Haq