İçindekiler:

Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı: 6 Adım (Resimlerle)
Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı: 6 Adım (Resimlerle)

Video: Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı: 6 Adım (Resimlerle)

Video: Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı: 6 Adım (Resimlerle)
Video: TWINSCIENCE- Teachable Machine'in Sınıf İçi Kullanımı 2024, Kasım
Anonim
Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı
Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı
Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı
Python Dilinde Yapılandırılmış Işık ve Stereo Görüşe Dayalı DIY 3D Tarayıcı

Bu 3D tarayıcı, video projektörü ve web kamerası gibi düşük maliyetli geleneksel öğeler kullanılarak yapılmıştır. Yapılandırılmış hafif bir 3D tarayıcı, yansıtılan ışık desenleri ve bir kamera sistemi kullanarak bir nesnenin üç boyutlu şeklini ölçmek için kullanılan bir 3D tarama cihazıdır. Yazılım, python dili ile yapılandırılmış ışık ve stereo görüşe dayalı olarak geliştirilmiştir.

Üç boyutlu şekilli bir yüzeye dar bir ışık şeridi yansıtmak, projektörün perspektifinden farklı açılardan bozuk görünen bir aydınlatma çizgisi üretir ve yüzey şeklinin tam bir geometrik rekonstrüksiyonu için kullanılabilir. Yatay ve dikey ışık bantları nesne yüzeyine yansıtılır ve ardından iki web kamerası tarafından yakalanır.

Adım 1: Giriş

Tanıtım
Tanıtım
Tanıtım
Tanıtım

Otomatik 3B yakalama cihazları (genellikle 3B tarayıcılar olarak adlandırılır), gerçek 3B nesnelerin yüksek doğrulukta modellerini maliyet ve zaman açısından verimli bir şekilde oluşturmaya olanak tanır. Performansı kanıtlamak için bir oyuncağı tararken bu teknolojiyi denedik. Spesifik ihtiyaçlar şunlardır: orta-yüksek doğruluk, kullanım kolaylığı, tarama cihazının uygun maliyeti, kendi kendine kayıtlı şekil ve renk verilerinin alınması ve son olarak hem operatör hem de taranan nesneler için operasyonel güvenlik. Bu gereksinimlere göre, çok yönlü renkli şerit deseni yaklaşımını benimseyen yapılandırılmış ışığa dayalı düşük maliyetli bir 3D tarayıcı tasarladık. Bir oyuncağın 3D edinimi ile ilgili bir projede tarayıcı mimarisini, benimsenen yazılım teknolojilerini ve kullanımının ilk sonuçlarını sunuyoruz.

Düşük maliyetli tarayıcımızın tasarımında emitör ünitesini bir video projektör kullanarak uygulamayı tercih ettik. Bunun nedeni, bu cihazın esnekliği (her türlü ışık düzenini denemeye izin verir) ve geniş kullanılabilirliğiydi. Sensör, özel bir cihaz, standart bir dijital fotoğraf makinesi veya bir web kamerası olabilir. yüksek kaliteli renk yakalamayı (yani yüksek dinamik aralığın elde edilmesini) ve muhtemelen yüksek çözünürlükle desteklemesi gerekir.

2. Adım: Yazılım

Yazılım
Yazılım

Python dili üç nedenden dolayı programlama için kullanıldı, biri öğrenmesi ve uygulaması kolay, ikisi OPENCV'i görüntü ile ilgili rutinler için kullanabiliriz ve üçü farklı işletim sistemleri arasında taşınabilir, böylece bu programı Windows, MAC ve Linux'ta kullanabilirsiniz. Yazılımı, her türlü kamera (web kameraları, SLR'ler veya endüstriyel kameralar) veya yerel 1024X768 çözünürlüğe sahip projektör ile kullanmak için de yapılandırabilirsiniz. Çözünürlüğü iki katından fazla olan kameraları kullanmak daha iyidir. Performansı kişisel olarak üç farklı konfigürasyonda test ettim, ilki iki paralel Microsoft web kamerası sineması ve küçük bir taşınabilir projektörle, ikincisi birbirine doğru 15 derece dönen iki lifecam sinema kamerası ve Infocus projektör ile yapıldı, son yapılandırma logitech web kameralarıyla yapıldı. ve Infocus projektör. Nesne yüzeyinin nokta bulutunu yakalamak için beş adımdan geçmeliyiz:

1. Gri desenleri yansıtma ve iki kameradan "SL3DS1.projcapt.py" görüntü yakalama

2. Her kameranın 42 görüntüsünün işlenmesi ve "SL3DS2.procimages.py" kodlarının yakalanması

2. İşlenecek alanlar için maskeleme seçmek üzere eşiğin ayarlanması "SL3DS3.adjustthresh.py"

4. Her kamerada benzer noktaları bulun ve kaydedin "SL3DS4.calcpxpy.py"

5 "SL3DS5.calcxyz.py" nokta bulutunun X, Y ve Z koordinatlarını hesaplayın

Çıktı, nesne yüzeyindeki noktaların koordinat ve renk bilgilerini içeren bir PLY dosyasıdır. PLY dosyalarını Autodesk ürünleri gibi CAD yazılımı veya Meshlab gibi açık kaynaklı bir yazılım ile açabilirsiniz.

www.autodesk.com/products/personal-design-a…

Bu Python programlarını çalıştırmak için Python 2.7, OPENCV modülü ve NUMPY kurulu olmalıdır. Ayrıca TKINTER'da bu yazılım için iki örnek veri seti ile altıncı adımda bulabileceğiniz bir GUI geliştirdim. Bu konuyla ilgili ek bilgileri aşağıdaki web sitelerinde bulabilirsiniz:

docs.opencv.org/modules/calib3d/doc/camera_…

docs.opencv.org/modules/highgui/doc/reading…

www.3dunderworld.org/software/

arxiv.org/pdf/1406.6595v1.pdf

mesh.brown.edu/byo3d/index.html

www.opticsinfobase.org/aop/fulltext.cfm?uri…

hera.inf-cv.uni-jena.de:6680/pdf/Brauer-Bur…

Adım 3: Donanım Kurulumu

Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu
Donanım Kurulumu

Donanım şunlardan oluşur:

1. İki web kamerası (Logitech C920C)

2. Infocus LP330 projektör

3. Kamera ve projektör sehpası (3 mm Akrilik plakalardan ve lazer kesici ile kesilmiş 6 mm HDF ahşaptan yapılmıştır)

Dizüstü bilgisayar gibi iki video çıkışlı bir bilgisayara iki kamera ve projektör bağlanmalı ve projektör ekranı ana windows masaüstüne bir uzantı olarak yapılandırılmalıdır. Burada kamera, projektör ve stant görüntülerini görebilirsiniz. Kesime hazır çizim dosyası SVG formatında eklenir.

Projektör, aşağıdaki özelliklere sahip bir Infocus LP330'dur (Yerel çözünürlük 1024X768). Parlaklık:650 Lümen Renkli Işık Çıkışı:**Kontrast (Tam Açık/Kapalı):400:1 Otomatik İris:Yerel Çözünürlük Yok:1024x768 En Boy Oranı:4:3 (XGA) Video Modları:**Veri Modları:MAKS 1024x768 Maks Güç:200 Watt Voltaj:100V - 240V Boyut(cm) (YxGxD):6 x 22 x 25 Ağırlık:2.2 kg Lamba Ömrü(Tam Güç):1.000 saat Lamba Tipi:UHPLamp Watt:120 Watt Lamba Miktarı:1 Ekran Tipi:2 cm DLP (1) Standart Zoom Lens:1,25:1 Odak:Manuel Atış Mesafesi (m): 1,5 - 30,5 Görüntü Boyutu(cm):76 - 1971

Bu video projektörü, taranacak nesneye yapılandırılmış ışık desenlerini yansıtmak için kullanılır. Yapılandırılmış desen, bir veri dosyasına kaydedilen dikey ve yatay beyaz ışık şeritlerinden oluşur ve web kameraları bu bozuk şeritleri yakalar.

Odak, parlaklık, çözünürlük ve görüntü kalitesini ayarlamanız gerektiğinden, yazılımla kontrol edilebilen kameraları tercih edin. Her markanın sağladığı SDK'lar ile DSLR fotoğraf makinelerini kullanmak mümkündür.

Kopenhag Fablab'ın desteğiyle montaj ve testler yapıldı.

4. Adım: Tarayıcıyla Deneme Yapma

Tarayıcı ile Deneme
Tarayıcı ile Deneme
Tarayıcı ile Deneme
Tarayıcı ile Deneme
Tarayıcı ile Deneme
Tarayıcı ile Deneme

Sistemi test etmek için bir balık oyuncağı kullanıldı ve yakalanan görüntüyü görebilirsiniz. Yakalanan tüm dosyalar ve ayrıca çıktı noktası bulutu ekli dosyaya dahil edilmiştir, PLY nokta bulutu dosyasını Meshlab ile açabilirsiniz:

meshlab.sourceforge.net/

Adım 5: Bazı Diğer Tarama Sonuçları

Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları
Diğer Bazı Tarama Sonuçları

Burada bazı insan yüzü taramalarını ve bir duvarın 3 boyutlu taramasını görebilirsiniz. Yansımalar veya hatalı görüntü sonuçları nedeniyle her zaman bazı aykırı noktalar vardır.

Adım 6: 3D Tarayıcı GUI'si

3D Tarayıcı GUI'si
3D Tarayıcı GUI'si

Bu adımda 3d tarama yazılımını test etmek için, biri balık taraması diğeri ise doğruluğunu görmek için sadece bir düzlem duvarı olan iki veri seti ekliyorum. ZIP dosyalarını açın ve SL3DGUI.py'yi çalıştırın. Kurulum için 2. adımı kontrol edin. Tüm kaynak kodları için buradan gelen kutuma mesaj gönderin.

3d tarama bölümünü kullanmak için iki kamera ve projektör kurmanız gerekir, ancak diğer parçalar için butona tıklamanız yeterlidir. Örnek verileri test etmek için önce işleme, ardından eşik, stereo eşleşme ve son olarak nokta bulutuna tıklayın. Nokta bulutunu görmek için Meshlab'ı kurun.

meshlab.sourceforge.net/

Önerilen: