Viola Jones yöntemi

Viola Jones Yöntemi, dört yüzden üçünü tanıdı.

Viola Jones yöntemi için matematiksel bir işlemdir örüntü tanıma dijital görüntülerdeki. 2001 yılında Paul Viola ve Michael Jones tarafından bir makalede önerilmiş ve etkinliği nedeniyle dünya çapında popülerlik kazanmıştır. Viola Jones yöntemi, bir görüntüdeki yüzler gibi çarpıcı nesneleri gerçek zamanlı olarak tanır.

arka fon

2000'lerin başında dijital fotoğraf ve video kameralar moda oldu ve yavaş yavaş analog kameraların yerini aldı. Artan dijital görüntü seli, analog medyada yapılması zor olan teknik yüz tanıma için bir talep yarattı . Bunun için iki anahtar kullanım vardı:

  • Odağı otomatik olarak ayarlamak için yüz algılama;
  • Veritabanlarındaki belirli yüzleri diğer verilere atayabilmek için veri analizi.
Viola-Jones temel kalıbı

Paul Viola ve Michael Jones, yöntemlerini , görüntü işleme ve bilgisayar görüşü için algoritmalar sağlayan ücretsiz program kitaplığı OpenCV ile geliştirdiler . Yönteminiz adresinde OpenCV'de bulunabilir . Önceden en yaygın yöntem (ve Viola-Jones tarafından da kullanılan kısımlarda) 1909'da Alfréd Haar tarafından geliştirilen saç dalgacıklarıdır . CascadeClassifier::detectMultiScale()

Viola-Jones klasik bir algoritmadan oluşmaz, ancak kontrollü öğrenmeye dayanır, sözde makine öğrenimi : program birkaç resme bakar ve benzerlikleri bulmak için kendini eğitir. Öğrenme basamakları , 2003'teki AdaBoost meta algoritmasını takip eder .

Yöntemin diğer yöntemlere göre başlıca avantajları, hızı ve sağlamlığıdır; sadece yüzler çok verimli bir şekilde tanınmaz. Görüntü boyutu da neredeyse hiç rol oynamıyor; süreç görüntünün tamamını değil, yalnızca ilgili içeriği ölçeklendirir. Başlıca dezavantaj, yüzlerin önden görülmesi ve iyi aydınlatılması gerektiğidir. Yarım profilleri değerlendirmek için, Viola-Jones genellikle Kanade-Lucas-Tomasi Özellik İzleyici ile birleştirilir .

Python'da program örneği

Python programlama dilinde aşağıdaki kısa program örneği , opencv-python kurulumunu gerektirir . Bu program kodu ve gerekli iki dosya aynı dizinde olmalıdır. Örnek program, resimdeki yüzleri tanır ve onları renkli çerçevelerle işaretler. Eğitimle oluşturulan "haarcascade_frontalface_default.xml" dosyası OpenCV'nin kaynak kodundan gelir, incelenecek görüntü "Jimmy_answering_questions.jpg" Commons üzerindedir.

import cv2  # pip install opencv-python

# Erzeugen der haar cascade
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

# Bild einlesen
image = cv2.imread("800px-Jimmy_answering_questions.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Gesichter im Bild erkennen
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30)
)

print("Anzahl gefundener Gesichter: {0} ".format(len(faces)))

# ein Rechteck um jedes gefundene Gesicht zeichnen
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)

cv2.imshow("gefundene Gesichter", image)
cv2.waitKey(0)

Diğer nesneler, diğer kaskad dosyaları kullanılarak görüntülerde ve filmlerde bulunabilir. Bir uygulama, hareketli otomobillerin algılanmasıdır. Çalışan örnek programlar GitHub'da mevcuttur.

Bireysel kanıt

  1. Arttırılmış basit özellikler ve Viola, Jones: Güçlü Gerçek Zamanlı Nesne Algılama , IJCV 2001 kademesini kullanarak hızlı nesne algılama
  2. Thorsten Ball: Kendi OpenCV Saç Sınıflandırıcınızı Eğitin. İçinde: Kodlama Robin. 22 Temmuz 2013, 2 Kasım 2018'de erişildi .
  3. Naotoshi Seo: Eğitim: OpenCV saç eğitimi (Saç Benzeri Özelliklere Dayalı Arttırılmış Sınıflandırıcı Basamaklı Hızlı Nesne Algılama) - Naotoshi Seo. 16 Ekim 2008, 2 Kasım 2018'de erişildi .
  4. Shantnu Tiwari: Python ile 25 Satırdan Az Kodda Yüz Tanıma . Ed .: Gerçek Python. (İngilizce, realpython.com [4 Kasım 2018'de erişildi]).
  5. ^ Rainer Lienhart: OpenCV verileri / saç basamakları /. İçinde: GitHub , OpenCV. Intel, 4 Kasım 2018'de erişildi .
  6. Wikimania2009 Beatrice Murch: Deutsch: Jimmy Wales, Wikimania 2009 basın toplantısında soruları yanıtlıyor. 25 Ağustos 2009. Erişim tarihi: Kasım 4, 2018 .
  7. Tobias Weis: Eğitim Cascades arabalar algılamak için. Erişim tarihi: Kasım 4, 2018 .
  8. Andrews Cordolino Sobral, Ph.D .: Saç Basamaklı Araç Algılama. Erişim tarihi: Kasım 4, 2018 .