İçindekiler:
- Adım 1: İhtiyacınız Olan Şeyler
- Adım 2: Opencv-Giriş ve Kurulum
- 3. Adım: Gerçek Zamanlı Bir Videoda Yüz Tespiti ve Tanınması
- Adım 4: Kodu Çalıştırma
Video: Opencv Yüz Tanıma: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Yüz tanıma, günümüzde akıllı telefonlar, birçok elektronik alet gibi birçok uygulamada oldukça yaygın bir şey. Bu tür bir teknoloji, Raspberry Pi gibi bazı gömülü gömülü SOC platformlarını ve açık kaynaklı bilgisayar vizyonunu kullanan birçok algoritma ve araç vb. içerir. OpenCV gibi kütüphaneler sayesinde, artık güvenlik sistemleri gibi kendi uygulamalarınıza yüz tanıma ekleyebilirsiniz.
Bu projede sizlere Raspberry Pi kullanarak yüz tanıma nasıl yapılır onu anlatacağım ve kişinin ismini göstermek için arduino+Lcd kullandık..
Adım 1: İhtiyacınız Olan Şeyler
1. Ahududu PI
2. ARDUINO UNO / NANO
3.16x2 LCD EKRAN
4. RASPI-KAMERA / WEB kamerası (daha iyi sonuçlar için web kamerasını tercih ederim)
Adım 2: Opencv-Giriş ve Kurulum
OpenCV (açık kaynak bilgisayarlı görü kitaplığı) çok kullanışlı bir kitaplıktır - metin tanıma, yüz tanıma, nesne algılama, derinlik haritaları oluşturma ve makine öğrenimi gibi birçok yararlı özellik sağlar.
Bu makale, Raspberry Pi'de nesne algılama ve diğer projeler yaparken kullanışlı olacak Opencv ve diğer kitaplıkların nasıl kurulacağını gösterecektir. Oradan nesne tanıma ve makine öğrenimi projesi yürüterek görüntü ve video işlemlerinin nasıl yapıldığını öğreneceğiz. Özellikle, bir görüntüdeki yüzleri algılamak için basit bir kod yazacağız.
OpenCV nedir?
OpenCV, açık kaynaklı bir bilgisayarlı görü ve makine öğrenimi yazılım kütüphanesidir. OpenCV, hem akademik hem de ticari kullanım için ücretsiz hale getiren bir BSD lisansı altında yayınlanmıştır. C++, Python ve Java arayüzlerine sahiptir ve Windows, Linux, Mac OS, iOS ve Android'i destekler. OpenCV, hesaplama verimliliği ve gerçek zamanlı uygulamalara güçlü bir odaklanma için tasarlanmıştır.
Raspberry Pi'ye OpenCV Nasıl Kurulur?
OpenCV'yi kurmak için Python'un kurulu olması gerekiyor. Raspberry Pis, Python ile önceden yüklenmiş olduğundan, OpenCV'yi doğrudan kurabiliriz.
Raspberry Pi'nizin güncel olduğundan emin olmak ve Raspberry Pi'nizde kurulu paketleri en son sürümlere güncellemek için aşağıdaki komutları yazın.
sudo apt-get güncellemelerisudo apt-get yükseltmesi
Raspberry Pi'nize OpenCV için gerekli paketleri kurmak için terminalde aşağıdaki komutları yazın.
sudo apt kurulumu libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test
Raspberry Pi'nize Python 3 için OpenCV 3'ü kurmak için aşağıdaki komutu yazın, pip3 bize OpenCV'nin Python 3 için kurulacağını söyler.
sudo pip3 opencv-contrib-python libwebp6'yı kurun
Şimdi, OpenCV kurulmalıdır.
(eğer herhangi bir hata oluştuysa: yine de aşağıdaki bağlantıyı takip ederek yapabilirsiniz
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Şimdi acele etmeyin, doğru kurulup kurulmadığını kontrol etmemiz gerekiyor.
Opencv'nizi şu şekilde test edin:
1. terminalinize gidin ve "python" yazın
2. ardından "cv2'yi içe aktar" yazın.
3.sonra "cv2._version_" yazın.
sonra bu kütüphaneleri kurun
pip3 python-numpy yükleyin
pip3 python-matplotlib'i kurun
Bir görüntüdeki yüzleri algılamak için kodu test edin:
cv2'yi içe aktar
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml");
resim = cv2.imread('dosya adınız') #example cv2.imread('home/pi/Desktop/filename.jpg')
resimdeki kişilerin yüzlerinde kare şeklinde kutular oluşmuş gibi çıktı alacaksınız.
3. Adım: Gerçek Zamanlı Bir Videoda Yüz Tespiti ve Tanınması
cv2'yi içe aktar
numpy'yi np olarak içe aktar
işletim sistemini içe aktar
seriyi içe aktar
ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) # /dev/ttyACM0 sizin durumunuzda değişebilir, arduino'ya bağlıdır
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier(cascadePath)
tanıyıcı=cv2.face.createLBPHFaceRecognizer()
resimler=
etiketler=
os.listdir('Dataset') içindeki dosya adı için:
im=cv2.imread('Veri kümesi/'+dosya adı, 0)
resimler.append(im)
labels.append(int(dosyaadı.split('.')[0][0]))
#dosya adını yazdır
name_file=open('labels.txt')
isimler=isimler_dosyası.read().split('\n')
tanıyıcı.tren(görüntüler, np.array(etiketler))
'Eğitim Tamamlandı' yazdırın… '
yazı tipi = cv2. FONT_
HERSHEY_SIMPLEXcap=cv2. VideoCapture(1) # video cihazınız
lastRes=''count=0
süre(1):
_, çerçeve=başlık.read()
gri=cv2.cvtColor(çerçeve, cv2. COLOR_BGR2GRAY)
yüzler = faceCascade.detectMultiScale(gri, 1.3, 5)
say+=1
yüzlerde (x, y, w, h) için:
cv2.dikdörtgen(çerçeve, (x, y), (x+w, y+h), (255, 0, 0), 2)
if count>20: res=names[recognizer.predict(gri[y:y+h, x:x+w])-1]
eğer res!=lastRes:
lastRes=res
sonRes'i yazdır
ser.write(sonRes)
sayı = 0
kırmak
cv2.imshow('çerçeve', çerçeve)
k = 0xFF & cv2.waitKey(10)
k == 27 ise:
kırmak
cap.release()
ser.kapat()
cv2.destroyAllWindows()
Adım 4: Kodu Çalıştırma
1. Önceki adımda eklenen dosyaları indirin
2. gri fotoğraflarınızı (6 resim/örnek…..) veri kümesi klasörünüze kopyalayın
1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (daha fazla açık veri seti klasörü için veri seti görüntü numarası)
2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6
3. Aslan-3_1, 3_2, 3_3, 3_4, 3_5, 3_6
4. Demir Adam4_1, 4_2, 4_3, 4_4, 4_5, 4_6
yukarıdaki gibi ilgili kişiler için etiketler ekleyebilirsiniz,
yani pi 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 arasında herhangi bir yüz algılarsa, o zaman Tom Cruise olarak etiketlenmiştir, bu yüzden fotoğrafları yüklerken lütfen dikkatli olun……………….
ve ardından arduino'nuzu ahududu Pi'nize bağlayın ve main.py kodlayıcıda değişiklik yapın = serial. Serial('/dev/ttyACM0', 9600, timeout=1) 3. İndirilen tüm dosyaları (main.py, dataset klasörü) koyun, tek bir klasörde haarcascade_frontalface_default.xml.)
3. Şimdi Raspi-terminalini açın, kodunuzu "sudo python main.py" ile çalıştırın
Önerilen:
Abellcadabra (Yüz Tanıma Kapı Kilit Sistemi): 9 Adım
Abellcadabra (Yüz Tanıma Kapı Kilit Sistemi): Karantina sırasında etrafta yatarak, ev kapısı için yüz tanıma sistemi kurarak zamanı öldürmenin bir yolunu bulmaya çalıştım. Ben ona Abellcadabra adını verdim - bu, sadece zili aldığım kapı zili ile sihirli bir ifade olan Abracadabra'nın birleşimidir. ÇOK KOMİK
Gizli Bölmeli Yüz Tanıma Aynası: 15 Adım (Resimli)
Gizli Bölmeli Yüz Tanıma Aynası: Hikayelerde, filmlerde ve benzerlerinde kullanılan, sürekli yaratıcı gizli bölmeler her zaman ilgimi çekmiştir. Bu yüzden, Gizli Bölme Yarışmasını gördüğümde, bu fikri kendim denemeye ve bir pencere açan sıradan görünümlü bir ayna yapmaya karar verdim
Yüz Tanıma Kapı Kilidi: 8 Adım
Yüz Tanıma Kapı Kilidi: Yapımı yaklaşık bir aydır, yüz tanıma kapı kilidini sunuyorum! Elimden geldiğince düzgün görünmesini sağlamaya çalıştım ama 13 yaşında ancak bu kadarını yapabilirim. Bu yüz tanımalı kapı kilidi, özel bir taşınabilir keçeye sahip bir Raspberry Pi 4 tarafından çalıştırılır
Opencv Yüz Algılama, Eğitim ve Tanıma: 3 Adım
Opencv Yüz Tespiti, Eğitimi ve Tanıma: OpenCV, bulanıklaştırma, görüntü harmanlama, görüntü iyileştirme, video kalitesi, eşikleme vb. gibi temel görüntü işleme görevlerini gerçekleştirmek için çok popüler olan açık kaynaklı bir bilgisayarlı görü kitaplığıdır. Görüntü işlemeye ek olarak, kanıtlıyor
Yüz Tanıma ve Tanımlama - OpenCV Python ve Arduino Kullanan Arduino Face ID: 6 Adım
Yüz Tanıma ve Tanımlama | OpenCV Python ve Arduino Kullanan Arduino Face ID: Yüz tanıma AKA face ID, günümüzde cep telefonlarındaki en önemli özelliklerden biridir. Bu yüzden "Arduino projem için bir yüz kimliği alabilir miyim" ve cevap evet… Yolculuğum şöyle başladı: Adım 1: Bize erişim