Mündəricat:
Video: Python istifadə edərək OpenCV Şəkil Təsnifatçıları yaradın: 7 addım
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Python və opencv -də Haar təsnifatçıları olduqca çətin, lakin asan bir işdir.
Təsvirlərin təsnifatı və təsnifatı ilə bağlı problemlərlə tez -tez qarşılaşırıq. ən yaxşı həll yolu öz təsnifatçınızı yaratmaqdır. Burada bir neçə əmr və uzun, lakin sadə python proqramları ilə öz şəkil təsnifatçılarımızı yaratmağı öyrənirik
Təsnifat üçün çoxlu sayda mənfi və müsbət şəkillər tələb olunur, neqativlərdə tələb olunan obyekt yoxdur, pozitivlər isə aşkarlanacaq obyekti ehtiva edir.
Təxminən 2000 mənfi və müsbət tələb olunur. Python proqramı, görüntünü boz rəngə və uyğun bir ölçüyə çevirir, belə ki təsnifatçılar yaratmaq üçün optimal vaxt alır.
Addım 1: Proqram təminatı tələb olunur
Öz təsnifatçınızı yaratmaq üçün aşağıdakı proqramlara ehtiyacınız var
1) OpenCV: istifadə etdiyim versiya 3.4.2 -dir. versiya İnternetdə asanlıqla mövcuddur.
2) Python: 3.6.2 versiyası istifadə olunur. Python.org saytından yükləyə bilərsiniz
Əlavə olaraq bir veb kamera tələb olunur (əlbəttə).
Addım 2: Şəkilləri Yükləyin
İlk addım, təsnif ediləcək obyekt haqqında aydın bir şəkil çəkməkdir.
Ölçüsü çox böyük olmamalıdır, çünki kompüterin işlənməsi üçün daha çox vaxt lazımdır. 50 -dən 50 -yə qədər ölçü götürdüm.
Sonra mənfi və müsbət şəkilləri yükləyirik. Onları İnternetdə tapa bilərsiniz. Ancaq 'https://image-net.org' saytından şəkilləri yükləmək üçün python kodundan istifadə edirik.
Sonra şəkilləri boz rəngə və normal ölçüyə çeviririk. Bu, kodda ayrıca tətbiq olunur. Kod, hər hansı bir qüsurlu görüntünü də aradan qaldırır
İndiyə qədər kataloqunuzda obyekt görüntüsü olmalıdır, məsələn watch5050-j.webp
Məlumat qovluğu yaradılmırsa, əl ilə edin
Python kodu.py faylında verilir
Addım 3: OpenCV -də müsbət nümunələr yaratmaq
İndi opencv_createsamples kataloquna gedin və yuxarıda göstərilən bütün məzmunu əlavə edin
əmr satırında opencv_createsamples və opencv_traincascade tətbiqləri tapmaq üçün C: / opencv342 / build / x64 / vc14 / bin bölməsinə keçin.
İndi aşağıdakı əmrləri yerinə yetirin
opencv_createsamples -img watch5050-j.webp
Bu əmr dəqiq olaraq 1950 obyektinin müsbət nümunələrini yaratmaq üçündür və müsbət faylların təsviri olan info.lst təsviri belə olmalıdır 0001_0014_0045_0028_0028-j.webp
İndi qovluq var
məlumat
neg images qovluğu
bg.txt faylı
boş məlumat qovluğu
Addım 4: Müsbət vektor faylı yaratmaq
İndi pozitiv şəkillərin açılması faylına gedən yolu təmin edən pozitiv vektor faylını yaradın
Aşağıdakı əmri istifadə edin
opencv_createsamples -info info/info.lst -sayı 1950 -w 20 -h 20 -vec müsbəts.vec
İndiyə qədər kataloqun məzmunu aşağıdakı kimi olmalıdır:
-yox
---- negimages.jpg
-açılış
-məlumat
-məlumat
-müsbət.vec
-bg.txt
--watch5050-j.webp
Addım 5: Təsnifatçının təlimi
İndi haar kaskadını öyrədək və xml faylını yaradaq
Aşağıdakı əmri istifadə edin
opencv_traincascade -data məlumatları -vec pozitivs.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
Mərhələlər 10 Mərhələlərin artırılması daha çox işləmə tələb edir, lakin təsnifatçı daha səmərəlidir.
İndi haarcascade yaradılır Veri qovluğunu açmaq üçün başa çatdırmaq təxminən iki saat çəkir cascade.xml Bu yaradılmış təsnifatdır
Addım 6: Təsnifatçının sınanması
Məlumat qovluğu yuxarıdakı şəkildə göstərildiyi kimi faylları ehtiva edir.
Təsnifatçı yaradıldıqdan sonra təsnifatçının işlədiyini və ya işləmədiyini object_detect.py proqramını işlədərək görürük. Classifier.xml faylını python qovluğuna yerləşdirməyi unutmayın.
Addım 7: Xüsusi Təşəkkürlər
Böyük bir python proqramçısı olan Sentdex -ə təşəkkür edirəm.
Yuxarıda göstərilən adı olan bir youtube adı var və mənə çox kömək edən videoda bu link var
Kodun çox hissəsi sentdex -dən kopyalanmışdır. Sentdexdən çox kömək alsam da, hələ də bir çox problemlə üzləşmişəm. Sadəcə təcrübəmi bölüşmək istədim.
Ümid edirəm bu keçilməz sizə kömək etdi !!! Daha çoxu üçün bizi izləyin.
BR
Tahir Ul Haq