SlideShare une entreprise Scribd logo
1  sur  22
Session II Structured Lighting and Mesh Processing http://mesh.brown.edu/byo3d Comments, requests, etc.: dlanman@brown.edu
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Course Schedule
Structured Lighting: Swept-Planes Revisited ,[object Object],[object Object],[object Object],[object Object],[object Object],Point Grey Flea2 (15 Hz @ 1024 x 768) Mitsubishi XD300U (50-85 Hz @ 1024 x 768)
Structured Lighting: Binary Codes ,[object Object],[object Object],[object Object],[object Object],[object Object],Point Grey Flea2 (15 Hz @ 1024 x 768) Mitsubishi XD300U (50-85 Hz @ 1024 x 768)
Structured Lighting: Gray Codes ,[object Object],[object Object],[object Object],[Inokuchi 1984] Point Grey Flea2 (15 Hz @ 1024 x 768) Mitsubishi XD300U (50-85 Hz @ 1024 x 768) Bin2Gray(B,G) 1  G    B 2  for  i    n-1  downto  0 3  G[i]    B[i+1] xor B[i]
Gray Codes: Decoding Performance ,[object Object],[object Object],[object Object],[object Object],Recovered Rows Recovered Columns
Additional Structured Lighting Patterns J. Salvi, J. Pag è s, and J. Batlle.  Pattern Codification Strategies in Structured Light Systems .  Pattern Recognition , 2004 “ Single-shot” patterns (N-arrays, grids, random, etc.) De Bruijn sequences [Zhang et al. 2002] Phase-shifting [Zhang et al. 2004] Spatial encoding strategies [Chen et al. 2007] Pseudorandom and M-arrays [Griffin 1992]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Assembling Your Own Scanner
Developing Your Own Software ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 6 6 7 http://code.google.com/p/procamcalib/ http://opencv.willowgarage.com/wiki/
Controlling a Projector for Structured Lighting ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],imagesc(P{1}(:,:,5)); axis  image   off ; set(gca, 'Pos' ,[0 0 1 1]); set(gcf, 'MenuBar' , 'none' ); set(gcf, 'Pos' ,[-1023 283 1024 768]); fullscreen(P{1}(:,:,5),2); http://tinyurl.com/matlabfullscreen  http://psychtoolbox.org/ W = Screen( 'OpenWindow' ,2,[0 0 0]); R = Screen( 'Rect' ,W); T = Screen( 'MakeTexture' ,W,P{1}(:,:,5)); Screen( 'CopyWindow' ,T,W,R,R); Screen( 'Flip' ,W); cvNamedWindow("proj",CV_WINDOW_AUTOSIZE); IplImage* proj_frame =  cvCreateImage(cvSize(w,h), 8 ,3); cvSet(proj_frame,cvScalar(0,0,0)); cvShowImage("proj",proj_frame); cvMoveWindow("proj",- w -7,-33); cvWaitKey(1); http://opencv.willowgarage.com/wiki
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Course Schedule
Summary of Camera Calibration ,[object Object],[object Object],Estimated Camera Lens Distortion Image Sequence for Camera Calibration 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 6 6 7 Predicted Image-plane Projection Distorted Ray (4 th -order radial + tangential) Normalized Ray
Demo: Camera Calibration in OpenCV 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 4 4 4 5 5 6 6 7
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Projector Calibration calibration board 0.5 0.5 0.5 0.5 1 1 1 1 1.5 1.5 1.5 1.5 2 2 2 2 2.5 2.5 2.5 3 3 3 3 3.5 3.5 4 4 4.5 4.5 camera coordinate system projector coordinate system
Projector-Camera Calibration Results ,[object Object],[object Object],[object Object],[object Object],[object Object],0 500 1000 0 500 1000 1500 400 200 0 X c2 Y c2 O c2 Z c2 X p Y p X c Z p O p X c1 Z c1 Y c1 O c1 (mm) Z c (mm) Y c (mm)
Demo: Projector Calibration in OpenCV 0.5 0.5 0.5 0.5 1 1 1 1 1.5 1.5 1.5 1.5 2 2 2 2 2.5 2.5 2.5 3 3 3 3 3.5 3.5 4 4 4.5 4.5
Structured Lighting Reconstruction Results
Additional Reconstruction Examples
Demo: Putting it All Together
How to Get the Source Code http://mesh.brown.edu/byo3d
For More Details http://mesh.brown.edu/byo3d
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Course Schedule

Contenu connexe

Tendances

Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lightingozlael ozlael
 
Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4Lukas Lang
 
Image enhancement techniques
Image enhancement techniques Image enhancement techniques
Image enhancement techniques Arshad khan
 
Basics of pixel neighbor.
Basics of pixel neighbor.Basics of pixel neighbor.
Basics of pixel neighbor.raheel rajput
 
Basics of image processing using MATLAB
Basics of image processing using MATLABBasics of image processing using MATLAB
Basics of image processing using MATLABMohsin Siddique
 
Chapter 1 introduction (Image Processing)
Chapter 1 introduction (Image Processing)Chapter 1 introduction (Image Processing)
Chapter 1 introduction (Image Processing)Varun Ojha
 
Image segmentation based on color
Image segmentation based on colorImage segmentation based on color
Image segmentation based on coloreSAT Journals
 
Computer Vision - cameras
Computer Vision - camerasComputer Vision - cameras
Computer Vision - camerasWael Badawy
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbiteElectronic Arts / DICE
 
Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3Guerrilla
 
Lecture 6 Basic Transform: Translation, Rotation, Scaling
Lecture 6 Basic Transform: Translation, Rotation, ScalingLecture 6 Basic Transform: Translation, Rotation, Scaling
Lecture 6 Basic Transform: Translation, Rotation, ScalingVARUN KUMAR
 
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...JP Lee
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 

Tendances (20)

Spatial domain and filtering
Spatial domain and filteringSpatial domain and filtering
Spatial domain and filtering
 
Hable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr LightingHable John Uncharted2 Hdr Lighting
Hable John Uncharted2 Hdr Lighting
 
Lec15 sfm
Lec15 sfmLec15 sfm
Lec15 sfm
 
Digtial Image Processing Q@A
Digtial Image Processing Q@ADigtial Image Processing Q@A
Digtial Image Processing Q@A
 
Broadcast Lens Technology Part 1
Broadcast Lens Technology Part 1Broadcast Lens Technology Part 1
Broadcast Lens Technology Part 1
 
Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4Physically Based Lighting in Unreal Engine 4
Physically Based Lighting in Unreal Engine 4
 
Image enhancement techniques
Image enhancement techniques Image enhancement techniques
Image enhancement techniques
 
Basics of pixel neighbor.
Basics of pixel neighbor.Basics of pixel neighbor.
Basics of pixel neighbor.
 
Basics of image processing using MATLAB
Basics of image processing using MATLABBasics of image processing using MATLAB
Basics of image processing using MATLAB
 
DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3DirectX 11 Rendering in Battlefield 3
DirectX 11 Rendering in Battlefield 3
 
Chapter 1 introduction (Image Processing)
Chapter 1 introduction (Image Processing)Chapter 1 introduction (Image Processing)
Chapter 1 introduction (Image Processing)
 
Image segmentation based on color
Image segmentation based on colorImage segmentation based on color
Image segmentation based on color
 
Computer Vision - cameras
Computer Vision - camerasComputer Vision - cameras
Computer Vision - cameras
 
Point Processing
Point ProcessingPoint Processing
Point Processing
 
Physically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in FrostbitePhysically Based and Unified Volumetric Rendering in Frostbite
Physically Based and Unified Volumetric Rendering in Frostbite
 
Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3Practical Occlusion Culling in Killzone 3
Practical Occlusion Culling in Killzone 3
 
Hair in Tomb Raider
Hair in Tomb RaiderHair in Tomb Raider
Hair in Tomb Raider
 
Lecture 6 Basic Transform: Translation, Rotation, Scaling
Lecture 6 Basic Transform: Translation, Rotation, ScalingLecture 6 Basic Transform: Translation, Rotation, Scaling
Lecture 6 Basic Transform: Translation, Rotation, Scaling
 
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...Penner   pre-integrated skin rendering (siggraph 2011 advances in real-time r...
Penner pre-integrated skin rendering (siggraph 2011 advances in real-time r...
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 

En vedette

Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-PlanesBuild Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-PlanesDouglas Lanman
 
Build Your Own 3D Scanner: The Mathematics of 3D Triangulation
Build Your Own 3D Scanner: The Mathematics of 3D TriangulationBuild Your Own 3D Scanner: The Mathematics of 3D Triangulation
Build Your Own 3D Scanner: The Mathematics of 3D TriangulationDouglas Lanman
 
Build Your Own 3D Scanner: Introduction
Build Your Own 3D Scanner: IntroductionBuild Your Own 3D Scanner: Introduction
Build Your Own 3D Scanner: IntroductionDouglas Lanman
 
Build Your Own 3D Scanner: Surface Reconstruction
Build Your Own 3D Scanner: Surface ReconstructionBuild Your Own 3D Scanner: Surface Reconstruction
Build Your Own 3D Scanner: Surface ReconstructionDouglas Lanman
 
Teleimmersion
TeleimmersionTeleimmersion
Teleimmersionstudent
 
An Open Source solution for Three-Dimensional documentation: archaeological a...
An Open Source solution for Three-Dimensional documentation: archaeological a...An Open Source solution for Three-Dimensional documentation: archaeological a...
An Open Source solution for Three-Dimensional documentation: archaeological a...Giulio Bigliardi
 
Modelado basado en imágenes
Modelado basado en imágenesModelado basado en imágenes
Modelado basado en imágenesMario Rodriguez
 
Crime Scene Diagramming and Reconstruction by Det. Mike Anderson
Crime Scene Diagramming and Reconstruction by Det. Mike AndersonCrime Scene Diagramming and Reconstruction by Det. Mike Anderson
Crime Scene Diagramming and Reconstruction by Det. Mike AndersonPPI_Group
 
Shape from Distortion - 3D Digitization
Shape from Distortion - 3D DigitizationShape from Distortion - 3D Digitization
Shape from Distortion - 3D DigitizationVanya Valindria
 
OpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developmentsOpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developmentsvirtualcitySYSTEMS GmbH
 
Lecture 01 frank dellaert - 3 d reconstruction and mapping: a factor graph ...
Lecture 01   frank dellaert - 3 d reconstruction and mapping: a factor graph ...Lecture 01   frank dellaert - 3 d reconstruction and mapping: a factor graph ...
Lecture 01 frank dellaert - 3 d reconstruction and mapping: a factor graph ...mustafa sarac
 
Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0
Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0
Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0Stephenson Prieto
 
Build Your Own 3D Scanner: Course Notes
Build Your Own 3D Scanner: Course NotesBuild Your Own 3D Scanner: Course Notes
Build Your Own 3D Scanner: Course NotesDouglas Lanman
 
Ar techniques@sergi grau
Ar techniques@sergi grauAr techniques@sergi grau
Ar techniques@sergi grauSergi Grau
 
Overview of 3D GIS Capabilties
Overview of 3D GIS CapabiltiesOverview of 3D GIS Capabilties
Overview of 3D GIS CapabiltiesErik Van Der Zee
 
Inside Matters - 3D X-Ray Microscopy - Software - Octopus Imaging
Inside Matters - 3D X-Ray Microscopy - Software - Octopus ImagingInside Matters - 3D X-Ray Microscopy - Software - Octopus Imaging
Inside Matters - 3D X-Ray Microscopy - Software - Octopus ImagingLeiv Hendrickx
 
3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained
3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained
3D Scanning Technology Overview: Kinect Reconstruction Algorithms ExplainedVoxelMetric
 
3D CT Middle and Inner Ear
3D CT Middle and Inner Ear3D CT Middle and Inner Ear
3D CT Middle and Inner EarDr. Paulose
 

En vedette (20)

Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-PlanesBuild Your Own 3D Scanner: 3D Scanning with Swept-Planes
Build Your Own 3D Scanner: 3D Scanning with Swept-Planes
 
Build Your Own 3D Scanner: The Mathematics of 3D Triangulation
Build Your Own 3D Scanner: The Mathematics of 3D TriangulationBuild Your Own 3D Scanner: The Mathematics of 3D Triangulation
Build Your Own 3D Scanner: The Mathematics of 3D Triangulation
 
Build Your Own 3D Scanner: Introduction
Build Your Own 3D Scanner: IntroductionBuild Your Own 3D Scanner: Introduction
Build Your Own 3D Scanner: Introduction
 
Build Your Own 3D Scanner: Surface Reconstruction
Build Your Own 3D Scanner: Surface ReconstructionBuild Your Own 3D Scanner: Surface Reconstruction
Build Your Own 3D Scanner: Surface Reconstruction
 
Reconstruction 3 D
Reconstruction 3 DReconstruction 3 D
Reconstruction 3 D
 
Teleimmersion
TeleimmersionTeleimmersion
Teleimmersion
 
An Open Source solution for Three-Dimensional documentation: archaeological a...
An Open Source solution for Three-Dimensional documentation: archaeological a...An Open Source solution for Three-Dimensional documentation: archaeological a...
An Open Source solution for Three-Dimensional documentation: archaeological a...
 
Modelado basado en imágenes
Modelado basado en imágenesModelado basado en imágenes
Modelado basado en imágenes
 
Crime Scene Diagramming and Reconstruction by Det. Mike Anderson
Crime Scene Diagramming and Reconstruction by Det. Mike AndersonCrime Scene Diagramming and Reconstruction by Det. Mike Anderson
Crime Scene Diagramming and Reconstruction by Det. Mike Anderson
 
Shape from Distortion - 3D Digitization
Shape from Distortion - 3D DigitizationShape from Distortion - 3D Digitization
Shape from Distortion - 3D Digitization
 
OpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developmentsOpenStreetMap in 3D - current developments
OpenStreetMap in 3D - current developments
 
Lecture 01 frank dellaert - 3 d reconstruction and mapping: a factor graph ...
Lecture 01   frank dellaert - 3 d reconstruction and mapping: a factor graph ...Lecture 01   frank dellaert - 3 d reconstruction and mapping: a factor graph ...
Lecture 01 frank dellaert - 3 d reconstruction and mapping: a factor graph ...
 
Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0
Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0
Programación 3D y Modelado de Realidad Virtual para Internet con VRML 2.0
 
Acosutic Trail, GPS manos libres
Acosutic Trail, GPS manos libresAcosutic Trail, GPS manos libres
Acosutic Trail, GPS manos libres
 
Build Your Own 3D Scanner: Course Notes
Build Your Own 3D Scanner: Course NotesBuild Your Own 3D Scanner: Course Notes
Build Your Own 3D Scanner: Course Notes
 
Ar techniques@sergi grau
Ar techniques@sergi grauAr techniques@sergi grau
Ar techniques@sergi grau
 
Overview of 3D GIS Capabilties
Overview of 3D GIS CapabiltiesOverview of 3D GIS Capabilties
Overview of 3D GIS Capabilties
 
Inside Matters - 3D X-Ray Microscopy - Software - Octopus Imaging
Inside Matters - 3D X-Ray Microscopy - Software - Octopus ImagingInside Matters - 3D X-Ray Microscopy - Software - Octopus Imaging
Inside Matters - 3D X-Ray Microscopy - Software - Octopus Imaging
 
3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained
3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained
3D Scanning Technology Overview: Kinect Reconstruction Algorithms Explained
 
3D CT Middle and Inner Ear
3D CT Middle and Inner Ear3D CT Middle and Inner Ear
3D CT Middle and Inner Ear
 

Similaire à Build Your Own 3D Scanner: 3D Scanning with Structured Lighting

B Eng Final Year Project Presentation
B Eng Final Year Project PresentationB Eng Final Year Project Presentation
B Eng Final Year Project Presentationjesujoseph
 
20110220 computer vision_eruhimov_lecture02
20110220 computer vision_eruhimov_lecture0220110220 computer vision_eruhimov_lecture02
20110220 computer vision_eruhimov_lecture02Computer Science Club
 
Technical Documentation_Embedded_Image_DSP_Projects
Technical Documentation_Embedded_Image_DSP_ProjectsTechnical Documentation_Embedded_Image_DSP_Projects
Technical Documentation_Embedded_Image_DSP_ProjectsEmmanuel Chidinma
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologynnak786
 
project_final_seminar
project_final_seminarproject_final_seminar
project_final_seminarMUKUL BICHKAR
 
nilesh-Mtech-presentation
nilesh-Mtech-presentationnilesh-Mtech-presentation
nilesh-Mtech-presentationNilesh Heda
 
Cvpr2010 open source vision software, intro and training part v open cv and r...
Cvpr2010 open source vision software, intro and training part v open cv and r...Cvpr2010 open source vision software, intro and training part v open cv and r...
Cvpr2010 open source vision software, intro and training part v open cv and r...zukun
 
ANISH_and_DR.DANIEL_augmented_reality_presentation
ANISH_and_DR.DANIEL_augmented_reality_presentationANISH_and_DR.DANIEL_augmented_reality_presentation
ANISH_and_DR.DANIEL_augmented_reality_presentationAnish Patel
 
Introduction to Computer graphics
Introduction to Computer graphicsIntroduction to Computer graphics
Introduction to Computer graphicsLOKESH KUMAR
 
Survey paper on image compression techniques
Survey paper on image compression techniquesSurvey paper on image compression techniques
Survey paper on image compression techniquesIRJET Journal
 
Computer graphics
Computer graphics Computer graphics
Computer graphics shafiq sangi
 
Advanced Multimedia
Advanced MultimediaAdvanced Multimedia
Advanced Multimediakadalrocker
 
Canny Edge Detection Algorithm on FPGA
Canny Edge Detection Algorithm on FPGA Canny Edge Detection Algorithm on FPGA
Canny Edge Detection Algorithm on FPGA IOSR Journals
 

Similaire à Build Your Own 3D Scanner: 3D Scanning with Structured Lighting (20)

B Eng Final Year Project Presentation
B Eng Final Year Project PresentationB Eng Final Year Project Presentation
B Eng Final Year Project Presentation
 
20110220 computer vision_eruhimov_lecture02
20110220 computer vision_eruhimov_lecture0220110220 computer vision_eruhimov_lecture02
20110220 computer vision_eruhimov_lecture02
 
Narendra achari.s
Narendra achari.sNarendra achari.s
Narendra achari.s
 
Ijetr011814
Ijetr011814Ijetr011814
Ijetr011814
 
Technical Documentation_Embedded_Image_DSP_Projects
Technical Documentation_Embedded_Image_DSP_ProjectsTechnical Documentation_Embedded_Image_DSP_Projects
Technical Documentation_Embedded_Image_DSP_Projects
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
project_final_seminar
project_final_seminarproject_final_seminar
project_final_seminar
 
nilesh-Mtech-presentation
nilesh-Mtech-presentationnilesh-Mtech-presentation
nilesh-Mtech-presentation
 
Cvpr2010 open source vision software, intro and training part v open cv and r...
Cvpr2010 open source vision software, intro and training part v open cv and r...Cvpr2010 open source vision software, intro and training part v open cv and r...
Cvpr2010 open source vision software, intro and training part v open cv and r...
 
ANISH_and_DR.DANIEL_augmented_reality_presentation
ANISH_and_DR.DANIEL_augmented_reality_presentationANISH_and_DR.DANIEL_augmented_reality_presentation
ANISH_and_DR.DANIEL_augmented_reality_presentation
 
Cad notes
Cad notesCad notes
Cad notes
 
Introduction to Computer graphics
Introduction to Computer graphicsIntroduction to Computer graphics
Introduction to Computer graphics
 
Engine Terminology
Engine TerminologyEngine Terminology
Engine Terminology
 
Survey paper on image compression techniques
Survey paper on image compression techniquesSurvey paper on image compression techniques
Survey paper on image compression techniques
 
Computer graphics
Computer graphics Computer graphics
Computer graphics
 
Stereo vision
Stereo visionStereo vision
Stereo vision
 
Praseed Pai
Praseed PaiPraseed Pai
Praseed Pai
 
Advanced Multimedia
Advanced MultimediaAdvanced Multimedia
Advanced Multimedia
 
Canny Edge Detection Algorithm on FPGA
Canny Edge Detection Algorithm on FPGA Canny Edge Detection Algorithm on FPGA
Canny Edge Detection Algorithm on FPGA
 
C010111519
C010111519C010111519
C010111519
 

Dernier

call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morcall Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morvikas rana
 
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)Delhi Call girls
 
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...PsychicRuben LoveSpells
 
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)Delhi Call girls
 
Pokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy TheoryPokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy Theorydrae5
 
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...Cara Menggugurkan Kandungan 087776558899
 
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)Delhi Call girls
 
WOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxWOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxpadhand000
 
the Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentationthe Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentationbrynpueblos04
 
LC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfLC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfpastor83
 
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)Delhi Call girls
 

Dernier (14)

call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morcall Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
 
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
 
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
 
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
 
Pokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy TheoryPokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy Theory
 
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
 
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
 
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
KLINIK BATA Jual obat penggugur kandungan 087776558899 ABORSI JANIN KEHAMILAN...
 
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
 
WOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxWOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptx
 
the Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentationthe Husband rolesBrown Aesthetic Cute Group Project Presentation
the Husband rolesBrown Aesthetic Cute Group Project Presentation
 
LC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfLC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdf
 
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
 

Build Your Own 3D Scanner: 3D Scanning with Structured Lighting

Notes de l'éditeur

  1. Welcome back. In the first session we saw how to build low-cost 3D scanners using manually swept light/shadow planes. This has several drawbacks. First, to calibrate the illumination planes, we required a pair of planar patterns to be present within the scene. Second, the scanning process was slow and required manual interaction with the light source. We can eliminate these problems by using a digital projector to create the swept-planes. Furthermore, if we're clever, we can project carefully-selected patterns to allow the ray-plane correspondence to be rapidly assigned in a relatively small number of frames. Such patterns are known as “structured lighting”. In this first half of this session we analyze several structured lighting methods. In addition, we will describe the software and theory behind projector calibration. The second half of this session will describe how to extract a high quality mesh, suitable for interactive applications, from the noisy point cloud data produced by any of these scanners. In addition, we will briefly outline well-established methods for mesh processing, allowing gap-filling and smoothing to be applied to the acquired models.
  2. In this section we cover structured lighting.
  3. A simple projector-camera system is shown above, containing a pair of Point Grey Flea2 digital cameras and a single Mitsubishi XD300U projector. In the following discussion we'll assume that only one camera is being used. The primary benefit of introducing the projector is to eliminate the mechanical motion required in the previous systems. Assuming minimal lens distortion, we could simply use the projector to display one row or column at a time, as shown on the top right; thus, 768 or 1024 images would be required to assign the correspondences between camera pixels and projector rows or columns, respectively. If we again included a pair of calibration planes within the scene, then an identical swept-plane reconstruction pipeline could be applied. Such a strategy doesn't fully exploit the projector. Since we are now free to project arbitrary (possibly 24-bit) color images, there should be a sequence of coded patterns, besides simple translations of linear stripes, which allow the camera-projector correspondences to be assigned in relatively few frames. This is the central goal of structured lighting. If we assume reconstruction will be performed by ray-plane triangulation, then an image sequence is required that assigns a unique code to each projected plane. In general, the identity of each plane can be encoded spatially (i.e., within a single frame) or temporally (i.e., across multiple frames), or with a combination of both spatial and temporal encodings. There are benefits and drawbacks to each strategy. For instance, purely spatial encodings can allow a single static pattern to be used for reconstruction, allowing dynamic scenes to be captured. Alternatively, purely temporal encodings are more likely to benefit from redundancy, reducing reconstruction artifacts. A comprehensive assessment of such codes was presented by Salvi et al. [2003] (which is included in the course notes). For this course, we will focus on purely temporal encodings. While such patterns are not well-suited to scanning dynamic scenes, they have the benefit of being easy to decode and are very robust to surface texture variation, producing accurate reconstructions for static objects (with the normal prohibition of transparent or other problematic materials). As shown on the top-right, we could assign a unique color (or intensity) to each projector row or column. Such a pattern would be highly-sensitive to surface texture, and produces many artifacts in practice. A “classic” alternative to such spatial “ramp” patterns is to project a temporal sequence consisting of the individual bit-planes of the binary encoding of the integer projector row or column indices.
  4. A binary encoding of the projector rows (or columns) would require log 2 (x) frames, where x is the number of projector rows (or columns). Thus, a sequence of at least 10 frames must be projected to encode the projector rows (or columns). Such a sequence is shown in the top right, where each row represents a single bit-plane of the binary encoding of the projector columns. Note that this sequence is ordered such that the most significant bit is first. To clarify, an individual pixel in the projector is assigned a binary sequence, over at least 10 frames in this example; if we want to encode only the projector columns with this binary sequence, then a column in the sequence at the top right corresponds to the intensity of the corresponding column of pixels projected in each frame. In practice, such a sequence is easy to decode so long as the projector and camera(s) are synchronized. In practice, 2*log 2 (x) frames are projected – corresponding to the original binary sequence and its inverse. Thus, we can compare (on a per camera pixel basis) a given projected bit-plane and its inverse and determine whether a given camera pixel is brighter in the first or second image. If the original sequence is brighter at a given camera pixel, then the decoded bit is set high, otherwise the decoded bit is set low. Afterwards, the binary sequence decoded for each camera pixel can be converted back to an integer index. This index directly provides the correspondence between the given camera pixel and a projector row (or column).
  5. The binary structured light sequence was proposed by Posdamer and Altschuler [1981]. Shortly afterward, Inokuchi et al. [1984] proposed Gray codes as an alternative. Considering the projector-camera arrangement as a communication system, then a key question immediately arises; what binary sequence is most robust to the known properties of the channel noise process? At a basic level, we are concerned with assigning an accurate projector row/column to camera pixel correspondence, otherwise triangulation artifacts will lead to large reconstruction errors. The reflected binary code was introduced by Frank Gray in 1947. As shown in the top-right, the Gray code can be obtained by reflecting, in a specific manner, the individual bit-planes of the binary code. The key property of the Gray code is that two neighboring code words (i.e., neighboring columns in the figure at the top-right) only differ by one bit. Adjacent codes have a Hamming distance of unity. As a result, the Gray code structured light sequence tends to be more robust to decoding errors. Notice that both Gray codes and binary sequences require the same number of images, yet Gray codes tend to result in fewer reconstruction artifacts. The specific algorithm for converting a binary to Gray encoding is shown in the “Bin2Gray” pseudocode on the bottom right.
  6. The animated sequence on the top left shows the Gray code structured light sequence, as it illuminates a sculpture. The decoding algorithm, to obtain projector row/column and camera pixel correspondences, is straightforward. As previously described, we determine whether a bit is high or low depending on whether a projected bit-plane or its inverse is brighter at a given pixel. The temporal bit sequence, per camera pixel, is then converted from a Gray code to a binary code. The binary encoding is then converted to an integer index. Typical decoding results are shown here; in the middle figure, the projector row and camera pixel correspondence is represented with the typical “jet” color map (used in MATLAB). As you can see, the correspondences are resolved on a per-pixel basis and possess, at least visually, very few artifacts or outliers. Similar decoding results for projector columns are shown on the right. Note that, in order to resolve the projector row and column correspondence, for each camera pixel, a total of 42 images were projected. Two images, corresponding to “all on” and “all off” projected images, were used to measure the dynamic range per-pixel, as well as the surface texture. Twenty images were used to encode the projector rows, as well as 20 more to encode the projector columns.
  7. Image sources: http://grail.cs.washington.edu/projects/moscan/ Fast three-step phase-shifting algorithm (Peisen S. Huang and Song Zhang) http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4209129http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4209129 (Griffin et al.)
  8. Image sources: http://images.projectorpoint.co.uk/imagelibrary/projectors/InFocus/IN10/InFocus_LP70+large.jpg http://www.revolutionpc.net/xcart/images/T/Logitech-pro9000-L23-7280%20%20%20%201.jpg
  9. Image sources: http://opencv.jp/sample/camera_calibration.html
  10. We now turn to the topic of calibrating a projector in order to reconstruct a 3D point cloud from a structured light illumination sequence.
  11. In this course we use a popular method of projector calibration in which projectors are modeled as inverse cameras . In the first session, an ideal camera was modeled as a pinhole imaging system, with real-world cameras containing additional lenses. A camera was considered as a device that measures the irradiance along incident optical rays. The inverse mapping, from pixels to optical rays, required calibrating the intrinsic and extrinsic parameters of the camera, as well as a lens distortion model (the details of which are reviewed in the table shown here). A projector can be seen as the inverse of a camera, in which irradiances are projected, rather than measured, along optical rays. As for a camera, a given projector pixel can be mapped to a certain optical ray (practically a narrow cone of rays). Once again, an ideal projector can be modeled as a pinhole imaging system, with real-world projectors containing additional lenses that introduce distortion. A similar intrinsic model, with a principal point, skew coefficients, scale factors, and focal lengths can be similarly applied to projectors. As a result, we follow a similar calibration pipeline as used for our cameras.
  12. In order to calibrate a projector, we assume that the user has a camera which has been calibrated using the method from the first session. All that is required to calibrate the projector is a diffuse plain pattern with a small number of printed fiducials located on its surface; in our design, we used a piece of poster board with four printed checkerboard corners. A single image of the printed fiducials can be used, with the previous extrinsic camera calibration method, to recover the implicit equation of the calibration plane in the camera coordinate system. A projected checkerboard pattern is then displayed using the projector. Detected corners for the projected checkerboard are shown with green circles here. The corresponding pixels can be converted to rays using the inverse mapping for the camera. Afterwards, ray-plane intersection is used to recover a 3D position, in the world coordinate system, for each projected checkerboard corner. Now we recognize the key similarity with camera calibration. In the first session we showed how a set of correspondences, between 2D image coordinates and 3D points on the checkerboard pattern, could be used for estimating the parameters of the imaging model. A similar approach can now be applied for projector calibration. Once again, the Camera Calibration Toolbox for MATLAB can be used to recover the intrinsic and extrinsic projector calibration using the 2D-to-3D correspondences. Examples and source code will be discussed in the following live demonstration.
  13. To summarize, projector calibration naturally follows from camera calibration, when we consider projectors are inverse cameras . The MATLAB and C/C++ software included with the course materials will allow you the calibrate your projectors using the method outlined in this section. Typical calibration results for our design are shown on the right, with the viewing frusta for the cameras shown in red and the viewing frustum from the projector shown in green. Note that a single printed checkerboard, used for camera calibration, is shown by the red grid, whereas the recovered projected checkerboard is shown in green. Also note that the recovered camera and projector frusta correspond to the physical configuration shown on the left.
  14. To conclude this section, we return to the topic of structured light scanning. In the previous section we described how binary and Gray codes can be used to establish projector row/column correspondences for each camera pixel. To reconstruct a 3D point cloud, the implicit equation of each projected plane must be obtained. The previous calibration procedure can be used to establish the projected planes using the center of projection, as well as the inverse mapping from projector pixels to optical rays. The details of this implementation will be explained in the following live demonstration. Typical reconstruction results are shown in the animation on the right. As in the first session, the point cloud is rendered using a single color for each 3D point splat. Note that the reconstructed model is relatively free of outliers, except near points of tangency, where the optical ray from the camera is tangent to the object surface. In the following section we’ll describe methods to merge such point clouds, captured from multiple viewpoints, to form a complete representation of the object surface.