SORU
16 NİSAN 2012, PAZARTESİ


Coca-Cola için algoritma geliştirme tanıma şekillendirebilir

Hala bir öğrenciydim olarak son birkaç yıl içinde çalıştığım en ilginç projelerden biri, görüntü işleme hakkında nihai bir proje oldu. Amaç Coca-Cola Tanıma Sistemi geliştirmektikutular(kelime kutular, bakalım bir dakika içinde) stresliyim unutmayın. Bir örnek aşağıda, yeşil olarak tanınan ölçek ve döndürme dikdörtgen ile görebilirsiniz.

Template matching

Bazı proje kısıtları:

  • Arka plan çok gürültülü olabilir.
  • Can ya dönme ya da oryantasyon (makul sınırlar içinde) bile herhangi bir ölçek olabilir
  • Görüntü fuziness bir dereceye (kontür değil gerçekten düz olabilir) olabilir
  • -Coca Cola görüntüde şişe olabilir, ve algoritma sadece algılayabilir !
  • Görüntünün parlaklık bir sürü (güvenemezsin "" renk algılama. çok çok farklı olabilir
  • Can kısmen taraf veya orta (ve muhtemelen kısmen gizli şişenin arkasında !) gizli olabilir
  • Kutu hiç bir şey bulmak ve bir iletinin söz yazmak zorunda kaldım ki görüntüde de olabilir, hayır.

Bu gibi zor işler bu durumda benim algoritma tamamen başarısız olduğum) ne yapabilirim ki:

Total fail

Şimdi bir süre önce olduğu gibi, ve çok eğlenceli yapıyor vardı belli ki bu proje yaptım, ve iyi bir uygulama vardı. İşte benim uygulama ile ilgili bazı ayrıntılar:

Dil: C OpenCV Kütüphanesi kullanılarak yapılır.

Ön işleme: Görüntü ön işleme konusunda daha hassas bir biçimde algoritma vermek için dönüştürmek için nasıl. 2 yöntem kullanılır:

  1. Renk değiştiren etki alanından RGB HSV (Hue Saturation Value) ve süzme göre "kırmızı" renk tonu, doygunluk yukarıda belli bir eşik önlemek turuncu gibi renkleri ve filtreleme düşük değeri önlemek için koyu tonlar. Sonuçta tüm beyaz piksel bu eşiğin eşleşen piksel temsil eder siyah ve beyaz ikili bir görüntü oldu. Belli ki hala resmin içinde bir sürü ıvır zıvır var, ama bu çalışma için boyut sayısını) azaltır. Binarized image
  2. Gürültü kullanarak medyan filtreleme (tüm komşular ortalama piksel değerini alarak ve bu değer piksel değiştir) gürültü azaltma filtreleme.
  3. Canny Edge Detection Filter 2 emsal adım sonra tüm öğeleri hatlarını kullanarak. Contour detection

AlgoritmaBu görev için seçtim algoritmasında bu (harika) book on feature extraction alınıp, Generalized Hough Transform () normal Stewart platformu Dönüşümü hemen çağrıldı. Bu temelde bir kaç şey söylüyor:

  • Analitik denklem durumda olan) bilmeden uzayda bir nesneyi tarif edebilirsiniz.
  • Temelde ölçek faktörü ve faktör döndürme her kombinasyonu için görüntü testi olarak ölçekleme ve döndürme gibi görüntü deformasyonlara dayanıklıdır.
  • Algoritma temel bir model (şablon) kullanır"".
  • Her piksel dağılımı görüntüde kalan sözde merkezi (ağırlık açısından) olacak olan bu modelden öğrendiklerini dayalı nesne başka bir piksel için oy verecek.

Sonunda, sonunda bir ısı haritası oyu, örneğin burada tüm piksellerin dağılımı yapacak oy için kendi ağırlık merkezi, o kadar çok şeyiniz de oylarını aynı piksel karşılık gelen merkezi ve göreceksiniz bir zirve ısı haritası olarak aşağıda.

GHT

Bir kere, basit bir eşik-tabanlı buluşsal mı yerin merkezi pixel, sizin ortaklıkları ölçek ve döndürme ve çizim küçük dikdörtgen etrafında (nihai ölçek ve döndürme faktör olacak tabii ki göreli orijinal şablon). En azından teoride...

SonuçlarıBu yaklaşım temel durumlarda çalışırken, bazı alanlarda ciddi şekilde eksik

  • son derece yavaş! Bu yeterince stresliyim. Neredeyse tam bir gün kutular bazıları çok küçük yaşından beri rotasyon ve çeviri için çok yüksek bir ölçeklendirme faktörü vardı çünkü 30 test görüntüleri, belli ki süreç için gerekli.
  • Bu tamamen kaybedince şişeleri, resim, ve nedense hemen hemen her zaman bulunan şişe yerine (belki, çünkü şişe daha büyük, dolayısıyla daha fazla olsaydı piksel, böylece daha fazla oy)
  • Bulanık görüntüleri oyları merkezi etrafında rastgele yerlerde piksel, böylece çok gürültülü bir ısı haritası ile sona erdi beri de hiç iyi değildi.
  • Çeviri ve dönme değişmezliği elde, ama bu yönde değil, doğrudan kamera objektif bakan bir doğruluyor değildi yani.

Beni iyileştirmeye yardımcı olabilirözelalgoritması kullanaraksadeceÇözmek için OpenCV özellikleridört özelsorunlar elbette yapacaktır?

Bazı insanlar da bunun dışında bir şey öğrenmek umuyoruz, tüm sonra soruları öğrenmek:) isteyen insanlar sadece düşünüyorum

CEVAP
16 NİSAN 2012, PAZARTESİ


Alternatif bir yaklaşım özellikleri (bölümler) scale-invariant feature transform (ELEMEK) veya Speeded Up Robust Features (SÖRF) kullanarak ayıklamak için.

OpenCV 2.3.1 uygulanır.

Güzel bir kod örneği özelliklerini kullanarak bulabilirsinizFeatures2D Homography to find a known object

Hem algoritmalar, ölçekleme ve döndürme için değişmez. Özellikleri ile çalışır bu yana, aynı zamanda occlusion (yeterince bölümler görünür olduğu sürece) işleyebilir.

Enter image description here

Görüntü kaynağı: öğretici örnek

İşleme ELEMEK için bir kaç yüz ms alır, SÖRFÜ daha hızlı, ama uygun olmayan gerçek zamanlı uygulamalar için. ORB HIZLI kullanır zayıf olan rotasyon ile ilgili değişmezliği.

Orijinal belgeler

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011
  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011
  • spederson7

    spederson7

    17 Temmuz 2006