Tek kameralı görüş ve haritalama sistemi


17

Bir süre önce üzerinde tek bir kamera bulunan küçük bir 'oyuncak tankı' demosu gördüm. Bu tank zeminde dolaşabilir ve nesneleri algılayabilir ve sonra bunları önlemek için hareket edebilir / yönlendirebilir. İlginç olan tek bir kamera görüş sistemi kullanmasıydı ve hatırladığım kadarıyla zeminin düz olmasından faydalanmaktı. ve daha sonra sahneyi değerlendirmek ve dolayısıyla haritayı haritalamak için bir özelliğin sahnede motorlara ve seyahat yönlerine göre hareket ettiği hızı kullanarak.

Herkes bana bu konuda daha fazla bilgi almak için ne aramak için işaretçiler, ya da bunu yapabileceğiniz kod tabanlarına bazı işaretçiler gönderebilir miyim.

Sormamın nedeni, bunun birkaç yıl önce (5+) tek bir kamera sistemi olması ve bu nedenle (hatırladığım kadarıyla) nispeten düşük bir hesaplama yükü olmasıydı. Ben bir oda veya oda set bir araba / tank oluşturmak için bir Ahududu PI denemek niyetindeydim.


2
Robotik Ben'e hoş geldiniz . Karşılaştığınız gerçek sorunlara dayalı olarak pratik, yanıtlanabilir soruların nasıl yazılacağına dair bazı ipuçları için lütfen Nasıl Sorulur'a bakın ve tur atın . Teşekkürler,
Mark Booth

Yanıtlar:


4

Tam olarak ne yaptıklarını söylemek zor, ama burada isteyebileceğiniz terimler " optik akış " ve " egomotion ". Bazı özellik algılama ve eşleştirme (SURF veya SIFT gibi bir şey) veya atılan ön plan / arka plan segmentasyonu olabilir.

OpenCV muhtemelen bilgisayar görme için en yaygın kullanılan kod tabanıdır, hareket analizi için çok fazla işlevselliğe sahiptir . OpenCV, Raspberry Pi'de çalışmalıdır, ancak algoritmalarınız hesaplama gücü ile sınırlı olabilir.


4

WildCrustcean'ın yanıtı üzerine inşa etmek başka bir olasılık stereo vizyon olacaktır . Stereo vizyonu genellikle iki kamera kullanmak olarak düşünürken, teknikler gerçekten sadece uzayda yer değiştirmiş görüntülere ve yer değiştirmenin bir modeline ihtiyaç duyar. Başka bir deyişle, bir görüntü alabilir, taşıyabilir ve sonra başka bir görüntü alabilirim. Bu iki görüntü arasındaki dönüşümü bildiğim sürece görüntüdeki bir noktaya olan mesafeyi hesaplamak için stereo görüş tekniklerini kullanabilirim.


2
Bence bahsettiğiniz tekniğin adı "Hareketten yapı".
Kozuch

1

Parellel Tracking and Mapping PTAM kullanıyor olabilir . PTAM, dünyanın 3B haritasını oluşturmak ve görsel özellikleri izleyerek yerelleştirmek için tek bir kamera kullanan Eşzamanlı Yerelleştirme ve Haritalama (SLAM) sorununun bir uygulamasıdır.

Ekibim bir keresinde ROS'ta PTAM paketini kullanmayı denedi .

Ubuntu'yu bir Intel Atom üzerinde çalıştırıyorduk ve hatırladığım kadarıyla işlemciden fazla bir şey almadı. Yine de kullanmadık çünkü esas olarak robotumuzun çalışacağı ortamda yeterince özellik bulamadık.


0

Genel olarak, dünya hakkında daha fazla bilgi sahibi olmadığınız sürece, tek bir görüntüden metrik mesafe ölçümlerini çıkaramazsınız . Örneğin, dünyanın düzlemsel olduğunu biliyorsanız (veya düzlemsel bir bölge olan zemini tespit edebilirsiniz), o zaman bir homografi tahmin edebilirsiniz.

Bir homografi, düzlemler (3x3 matrisi) arasında yansıtmalı bir dönüşümdür. Kameranın iç kalibrasyonu göz önüne alındığında, bu düzlem kaynaklı homografiyi bir dönüşe ve çeviriye ayırabilirsiniz. Çeviri ölçeklidir. Bu ölçek belirsizliğini kameradan zemine (düzlem) olan mesafeyi bilerek çözebilirsiniz.

Homografiye sahip olduktan sonra , düzlemde olmayan nesneleri tespit edebilirsiniz . Homografi, ilk görüntüyü ikinciye eğmenizi sağlar. Düzlemdeki nesneler hizalanacak ve küçük bir hataya sahip olacaktır. Olacak uçakta değil Nesneleri değil hizalayın. Buna paralaks denir.

Bunu uygulamanın bir yolu

  1. Her iki görüntüden de özellikleri ayıklayın.
  2. Özellikleri eşleştirin veya izleyin.
  3. RANSAC kullanarak homografiyi tahmin edin.
  4. Kalibrasyonu kullanarak homografiyi bir dönüşe ve çeviriye ayırın.
  5. İlk görüntüyü
    ikinciye çarpıtın . Büyük hatalara sahip pikseller yerde değildir ve
    engel olabilir .

Yapı taşlarının çoğu opencv'de uygulanır (bkz. Http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html ).

İyi şanslar.

Not: Homografi ayrışması da size düzlemin normalini verecektir. Ancak, bunun yer düzlemi olduğunu varsaydığınız için, yukarı doğru normal işaretimiz var. Kalibrasyon prosedürünüzde daha kesin bir çözüm elde edilebilir. Dama tahtası hedefi kullanabilir ve pozunu tahmin edebilirsiniz. Pozın normal bir düzlemi ve kameraya olan mesafesi olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.