İçindekiler:

Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun: 7 Adım
Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun: 7 Adım

Video: Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun: 7 Adım

Video: Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun: 7 Adım
Video: Python - OpenCV ile Yüz Tanıma 2024, Kasım
Anonim
Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun
Python Kullanarak OpenCV Görüntü Sınıflandırıcıları Oluşturun

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

OpenCV'de Pozitif Örnekler Oluşturma
OpenCV'de Pozitif Örnekler Oluşturma
OpenCV'de Pozitif Örnekler Oluşturma
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

Pozitif Vektör Dosyası Oluşturma
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

Sınıflandırıcıyı Eğitmek
Sınıflandırıcıyı Eğitmek
Sınıflandırıcıyı Eğitmek
Sınıflandırıcıyı Eğitmek
Sınıflandırıcıyı Eğitmek
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

Önerilen: