
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04

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
Recomandat:
Scaner de cod QR folosind OpenCV în Python: 7 pași

Scanner de coduri QR folosind OpenCV în Python: în lumea de astăzi vedem coduri QR și coduri de bare sunt folosite aproape oriunde, de la ambalarea produsului la plăți online și acum, zilnic, vedem coduri QR chiar și în restaurant pentru a vedea meniul. îndoiește-te că este marele gând acum. Dar ai mai avut vreodată
Cum să creați o imagine de profil minunată pentru Chromebook: 9 pași

Cum să creați o imagine de profil minunată pentru Chromebookul dvs.: Bună ziua tuturor! Acesta este Gamer Bro Cinema și astăzi vă vom învăța cum să creați o imagine de profil minunată pentru canalul dvs. YouTube! Acest tip de imagine de profil poate fi realizat numai pe un Chromebook. Să începem
Procesor de imagine codificat GET1033 Python: 5 pași

GET1033 Python Coded Image Processor: Acest proiect este despre crearea propriului meu procesor de imagine codat Python pentru modulul meu, GET1033 Exploring Computational Media Literacy. La început, utilizatorul va trebui să introducă o fotografie proprie și apoi să selecteze filtrele dorite. Am creat 9 filtre care
Imagine de fundal simplă folosind fotografii și amestecarea straturilor - Tutorial Photoshop: 5 pași

Imagine de fundal simplă folosind fotografii și amestecarea straturilor - Tutorial Photoshop: faceți un tapet uimitor din punct de vedere vizual folosind o tehnică simplă în interiorul Photoshop. Oricine poate face un tapet atât de bun și mult mai ușor decât ați putea crede!; Nou Setați lățimea și înălțimea la pixeli și setați la
Cum să creați o imagine complet focalizată din mai multe focalizate parțial: 4 pași

Cum să creați o imagine complet focalizată din mai multe focalizate parțial: vă sugerez să utilizați software-ul Helicon Focus. Versiunile pentru Windows și Mac sunt disponibile pe site-ul d-Stidio. Programul este conceput pentru macrofotografie, microfotografie și fotografie de peisaj hiperfocală pentru a face față problemei de adâncime de câmp redusă.Hel