İçindekiler:
Video: Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun: 7 Adım
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Python ve opencv'deki Haar sınıflandırıcıları oldukça zor ama kolay bir iştir.
Görüntü algılama ve sınıflandırmada sıklıkla sorunlarla karşılaşıyoruz. en iyi çözüm, kendi sınıflandırıcınızı oluşturmaktır. Burada birkaç komut ve uzun ama basit python programları ile kendi görüntü sınıflandırıcılarımızı yapmayı öğreniyoruz.
Sınıflandırma, çok sayıda negatif ve pozitif görüntü gerektirir. Negatifler gerekli nesneyi içermezken, pozitifler algılanacak nesneyi içerir.
Yaklaşık 2000 negatif ve pozitif gereklidir. Python programı, görüntüyü gri tonlamalı ve uygun bir boyuta dönüştürür, böylece sınıflandırıcılar oluşturmak için en uygun zamanı alır.
Adım 1: Gerekli Yazılımlar
Kendi sınıflandırıcınızı oluşturmak için aşağıdaki yazılımlara ihtiyacınız var
1) OpenCV: kullandığım sürüm 3.4.2. versiyonu internette kolayca bulunabilir.
2) Python: Kullanılan sürüm 3.6.2'dir. python.org'dan indirilebilir
Ayrıca bir web kamerasına ihtiyacınız var (elbette).
Adım 2: Görüntüleri İndirme
İlk adım, sınıflandırılacak nesnenin net bir resmini çekmektir.
Bilgisayarın işlemesi daha uzun zaman aldığından boyut çok büyük olmamalıdır. 50'ye 50 boyutunda aldım.
Sonra olumsuz ve olumlu görüntüleri indiriyoruz. Onları çevrimiçi olarak bulabilirsiniz. Ancak 'https://image-net.org' adresinden görüntüleri indirmek için python kodunu kullanıyoruz.
Ardından görüntüleri gri tonlamaya ve normal boyuta dönüştürüyoruz. Bu, kodda da uygulanmaktadır. Kod ayrıca herhangi bir hatalı görüntüyü de kaldırır
Şimdiye kadar dizininiz nesne resmini içermelidir, örneğin watch5050-j.webp
Veri klasörü oluşturulmamışsa, manuel olarak yapın
Python kodu,.py dosyasında sağlanır
Adım 3: OpenCV'de Pozitif Örnekler Oluşturma
Şimdi opencv_createsamples dizinine gidin ve yukarıda belirtilen tüm içeriği ekleyin
komut isteminde opencv_createsamples ve opencv_traincascade uygulamalarını bulmak için C:\opencv342\build\x64\vc14\bin adresine gidin
şimdi aşağıdaki komutları yürütün
opencv_createsamples -img watch5050-j.webp
Bu komut, 1950 nesnesinin pozitif örneklerini tam olarak oluşturmak içindir ve pozitif görüntülerin info.lst tanım dosyası açıklama şu şekilde olmalıdır 0001_0014_0045_0028_0028-j.webp
Şimdi klasör şunları içeriyor
bilgi
neg görüntüler klasörü
bg.txt dosyası
boş veri klasörü
Adım 4: Pozitif Vektör Dosyası Oluşturma
Şimdi pozitif görüntülerin yolunu sağlayan pozitif vektör dosyasını oluşturun, açıklama dosyası
Aşağıdaki komutu kullanın
opencv_createsamples -info info/info.lst -num 1950 -w 20 -h 20 -vec pozitifler.vec
Şimdiye kadar dizinin içeriği aşağıdaki gibi olmalıdır:
--neg
----olumsuz resimler.jpg
--opencv
--bilgi
--veri
--pozitifler.vec
--bg.txt
--watch5050.jpg(gerekli nesne resmi)
Adım 5: Sınıflandırıcıyı Eğitmek
Şimdi haar kaskadını eğitelim ve xml dosyasını oluşturalım
Aşağıdaki komutu kullanın
opencv_traincascade -veri verileri -vec pozitifler.vec -bg bg.txt -numPos 1800 -numNeg 900 -numStages 10 -w 20 -h 20
Aşamalar 10 Aşamaları artırmak daha fazla işlem gerektirir ancak sınıflandırıcı çok daha verimlidir.
Şimdi haarcascade oluşturuldu Tamamlanması yaklaşık iki saat sürüyor Oradaki veri klasörünü açın cascade.xml Bu, oluşturulan sınıflandırıcıdır
Adım 6: Sınıflandırıcıyı Test Etme
Veri klasörü, yukarıdaki resimde gösterildiği gibi dosyaları içerir.
Sınıflandırıcı oluşturulduktan sonra object_detect.py programını çalıştırarak sınıflandırıcının çalışıp çalışmadığını görebiliriz. classifier.xml dosyasını python dizinine yerleştirmeyi unutmayın.
7. Adım: Özel Teşekkürler
Harika bir python programcısı olan Sentdex'e buradan teşekkür etmek istiyorum.
Yukarıda belirtilen isimle bir youtube adı var ve bana çok yardımcı olan videonun bu bağlantısı var
Kodun çoğu senddex'ten kopyalandı. Sendex'ten çok yardım almama rağmen, yine de birçok sorunla karşılaştım. Ben sadece deneyimimi paylaşmak istedim.
Umarım bu anlatı size yardımcı olmuştur!!! Daha fazlası için takipte kalın.
BR
Tahir Ul Hak