Mündəricat:

Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner: 6 addım (şəkillərlə)
Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner: 6 addım (şəkillərlə)

Video: Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner: 6 addım (şəkillərlə)

Video: Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner: 6 addım (şəkillərlə)
Video: CS50 2015 - Week 9 2024, Noyabr
Anonim
Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner
Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner
Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner
Python Dilində Strukturlaşdırılmış İşıq və Stereo Görmə əsasında DIY 3D Skaner

Bu 3D skaner, video proyektor və veb -kameralar kimi aşağı qiymətli şərti əşyalar istifadə edərək hazırlanmışdır. Quraşdırılmış işıqlı 3D skaner, proqnozlaşdırılan işıq nümunələri və kamera sistemindən istifadə edərək bir obyektin üçölçülü formasını ölçmək üçün 3D tarama cihazıdır. Proqram, python dili ilə qurulmuş işıq və stereo görmə əsasında hazırlanmışdır.

Üç ölçülü formalı bir səthə dar bir işıq şeridi yansıtmaq, proyektordan fərqli olaraq digər baxımdan təhrif edilmiş görünən bir işıq xətti yaradır və səth formasının dəqiq həndəsi yenidən qurulması üçün istifadə edilə bilər. Üfüqi və şaquli işıq şeritləri obyektin səthinə yansıtılır və sonra iki veb -kamera ilə çəkilir.

Addım 1: Giriş

Giriş
Giriş
Giriş
Giriş

Avtomatik 3D əldə etmə cihazları (tez-tez 3D skanerlər adlanır) real 3D obyektlərin yüksək dəqiqlikdə olan modellərini sərfəli və vaxt baxımından səmərəli şəkildə qurmağa imkan verir. Performansı sübut etmək üçün oyuncağı tarayaraq bu texnologiyanı sınaqdan keçirdik. Xüsusi ehtiyaclar bunlardır: orta yüksək dəqiqlik, istifadəsi asanlıq, tarama cihazının əlverişli dəyəri, forma və rəng məlumatlarının öz qeydiyyatı ilə əldə edilməsi və nəhayət həm operator, həm də skan edilmiş obyektlər üçün əməliyyat təhlükəsizliyi. Bu tələblərə uyğun olaraq, çox yönlü rəngli zolaq nümunəsi yanaşmasını mənimsəyən strukturlaşdırılmış işığa əsaslanan aşağı qiymətli 3D skaner hazırladıq. Bir skanerin arxitekturasını, qəbul edilən proqram texnologiyalarını və oyuncağın 3D alınması ilə əlaqədar bir layihədə istifadəsinin ilk nəticələrini təqdim edirik.

Ucuz tarayıcımızın dizaynında, bir video proyektor istifadə edərək yayıcı qurğunu tətbiq etməyi seçdik. Səbəb, bu cihazın elastikliyi (hər hansı bir işıq nümunəsini sınamağa imkan verir) və geniş mövcudluğu idi. Sensor ya xüsusi bir cihaz, ya da standart rəqəmsal fotoaparat və ya veb kamera ola bilər. yüksək keyfiyyətli rəng tutmağı (yəni yüksək dinamik diapazon əldə etməyi) və bəlkə də yüksək qətnaməni dəstəkləməlidir.

Addım 2: Proqram təminatı

Proqram təminatı
Proqram təminatı

Python dili üç səbəbdən proqramlaşdırma üçün istifadə edildi, bunlardan birini öyrənmək və həyata keçirmək asandır, ikisi görüntü ilə əlaqəli prosedurlar üçün OPENCV -dən istifadə edə bilərik və üçü fərqli əməliyyat sistemləri arasında portativdir, buna görə də bu proqramı Windows, MAC və Linux -da istifadə edə bilərsiniz. Proqramı hər cür kamera (veb kameralar, SLR -lər və ya sənaye kameraları) və ya 1024X768 yerli qətnamə ilə proyektorla istifadə etmək üçün konfiqurasiya edə bilərsiniz. İki dəfədən çox qətnaməsi olan kameralardan istifadə etmək daha yaxşıdır. Performansı şəxsən üç fərqli konfiqurasiyada sınadım, birincisi iki paralel Microsoft veb kameralı kinoteatr və kiçik bir portativ proyektorla, ikincisi bir -birinə doğru 15 dərəcə dönən iki lifecam kinoteatrlı kamera ilə və Infocus proyektorla, son konfiqurasiya logitech veb kameraları ilə və Infocus proyektoru. Obyekt səthinin nöqtə buludunu tutmaq üçün beş addımdan keçməliyik:

1. Boz rəngli naxışların layihələndirilməsi və "SL3DS1.projcapt.py" adlı iki kameradan görüntülərin çəkilməsi

2. Hər bir kameranın 42 şəklinin işlənməsi və "SL3DS2.procimages.py" nöqtələrinin kodlarının çəkilməsi

2. "SL3DS3.adjustthresh.py" işlənəcək sahələr üçün maskalanmanı seçmək üçün ərəfənin tənzimlənməsi.

4. "SL3DS4.calcpxpy.py" kameralarında oxşar nöqtələri tapın və qeyd edin.

5 "SL3DS5.calcxyz.py" nöqtə buludunun X, Y və Z koordinatlarını hesablayın

Çıxış, obyekt səthindəki nöqtələrin koordinat və rəng məlumatları olan bir PLY faylıdır. PLY fayllarını Autodesk məhsulları kimi CAD proqramı və ya Meshlab kimi açıq mənbə proqram təminatı ilə aça bilərsiniz.

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

Bu Python proqramlarını işlətmək üçün Python 2.7, OPENCV modulu və NUMPY quraşdırılmalıdır. TKINTER -də bu proqram üçün iki nümunə məlumat dəsti ilə altıncı addımda tapa biləcəyiniz bir GUI də hazırladım. Bu mövzuda əlavə məlumatı aşağıdakı saytlarda tapa bilərsiniz:

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…

Addım 3: Hardware Setup

Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması
Avadanlıq Quraşdırması

Avadanlıq aşağıdakılardan ibarətdir:

1. İki veb kamera (Logitech C920C)

2. Infocus LP330 proyektoru

3. Kamera və proyektor dayağı (3 mm Akril lövhələrdən və lazer kəsici ilə 6 mm HDF ağacdan kəsilmiş)

Bir notebook kompüteri kimi iki video çıxışı olan bir kompüterə iki kamera və proyektor bağlanmalı və proyektorun ekranı əsas pəncərə masaüstünün uzantısı olaraq konfiqurasiya edilməlidir. Burada kameraların, proyektorun və stendin görüntülərini görə bilərsiniz. Kəsməyə hazır olan rəsm faylı SVG formatında əlavə olunur.

Proyektor, aşağıdakı xüsusiyyətlərə malik olan Infocus LP330 (Yerli qətnamə 1024X768) Parlaqlıq: 650 Lümen Rəngli İşıq Çıxışı: ** Kontrast (Tam Açma/Kapama): 400: 1 Avtomatik İris: Yerli Çözünürlük yoxdur: 1024x768 En boy Oranı: 4: 3 (XGA) Video Modları: ** Məlumat Modları: MAX 1024x768 Maksimum Güc: 200 Vatt Gərginlik: 100V - 240V Ölçü (sm) (YxGxD): 6 x 22 x 25 Çəki: 2.2 kq Lampa Ömrü (Tam Güc): 1.000 saat Lampa Tipi: UHPL Lampa Gücü: 120 Vatt Lampa Miqdarı: 1 Ekran Tipi: 2 sm DLP (1) Standart Zoom Lensi: 1.25: 1 Fokus: Manuel Atış Dist (m): 1.5 - 30.5 Şəkil Ölçüsü (sm): 76 - 1971

Bu video proyektor, taranacaq obyekt üzərində qurulmuş işıq nümunələrini yansıtmaq üçün istifadə olunur. Strukturlaşdırılmış model, məlumat faylında saxlanılan şaquli və üfüqi ağ işıq zolaqlarından ibarətdir və veb -kameralar bu təhrif edilmiş zolaqları tutur.

Fokus, parlaqlıq, qətnamə və görüntü keyfiyyətini tənzimləməyiniz lazım olduğu üçün proqrama nəzarət edilə bilən kameralardan istifadə etməyiniz məsləhətdir. Hər bir marka tərəfindən təqdim olunan SDK'lı DSLR kameralardan istifadə etmək mümkündür.

Montaj və testlər onun dəstəyi ilə Kopenhagen Fablabda aparıldı.

Addım 4: Skanerlə sınaqdan keçirin

Skanerlə sınaq
Skanerlə sınaq
Skanerlə sınaq
Skanerlə sınaq
Skanerlə sınaq
Skanerlə sınaq

Sistemi sınamaq üçün bir balıq oyuncağı istifadə edildi və çəkilən görüntünü görə bilərsiniz. Bütün tutulan fayllar və çıxış nöqtəsi buludu əlavə edilmiş fayla daxil edilir, PLY nöqtəsi bulud faylını Meshlab ilə aça bilərsiniz:

meshlab.sourceforge.net/

Addım 5: Bəzi Digər Tarama Nəticələri

Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri
Bəzi Digər Tarama Nəticələri

Burada bəzi insan üzü taramaları və bir divarın 3D taramasını görə bilərsiniz. Yansımalar və ya qeyri -dəqiq görüntü nəticələrinə görə hər zaman bəzi kənar məqamlar var.

Addım 6: 3D Tarayıcı GUI

3D Skaner GUI
3D Skaner GUI

Bu addımda 3d tarama proqramını sınamaq üçün iki məlumat dəsti əlavə edirəm: biri balığın taranması, digəri isə onun düzgünlüyünü görmək üçün sadəcə bir təyyarə divarıdır. ZIP fayllarını açın və SL3DGUI.py -ni işə salın. Quraşdırma üçün 2. addımı yoxlayın. Bütün qaynaq kodları üçün bura gələn qutuma mesaj göndərin.

3D tarama hissəsini istifadə etmək üçün iki kamera və proyektor quraşdırmalısınız, digər hissələr üçün isə düyməni sıxmaq kifayətdir. Nümunə məlumatlarını sınamaq üçün əvvəlcə prosesi, sonra eşik, stereo uyğunluğu və nəhayət nöqtə buludunu vurun. Nöqtə buludunu görmək üçün Meshlab quraşdırın.

meshlab.sourceforge.net/

Tövsiyə: