Triangulation Scanner Design Options
-
Upload
brennan-frank -
Category
Documents
-
view
34 -
download
6
description
Transcript of Triangulation Scanner Design Options
Triangulation Scanner Design Triangulation Scanner Design OptionsOptions
Triangulation System OptionsTriangulation System Options
• Single-stripe systems most robust, but Single-stripe systems most robust, but slowestslowest
• To go faster, project multiple stripesTo go faster, project multiple stripes– But which stripe is which?But which stripe is which?
• In limit, project 2D pattern, determineIn limit, project 2D pattern, determineprojector/camera correspondenceprojector/camera correspondence
Time-Coded Light PatternsTime-Coded Light Patterns
• Assign each stripe a unique illumination Assign each stripe a unique illumination codecodeover time [Posdamer 82]over time [Posdamer 82]
SpaceSpace
TimeTime
Gray-Code PatternsGray-Code Patterns
• To minimize effects of quantization error:To minimize effects of quantization error:each point may be a boundary only onceeach point may be a boundary only once
SpaceSpace
TimeTime
Accounting for ReflectanceAccounting for Reflectance
• Because of surface reflectance and Because of surface reflectance and ambient light, distinguishing between ambient light, distinguishing between black and white not always easyblack and white not always easy
• Solution: project all-white (and Solution: project all-white (and sometimessometimesall-black) frameall-black) frame
• Permits multiple shades of grayPermits multiple shades of gray
Multiple Shades of GrayMultiple Shades of Gray
Multiple Shades of GrayMultiple Shades of Gray
Intensity WedgesIntensity Wedges
• Limiting case: intensity wedgesLimiting case: intensity wedges
Temporal vs. Spatial ContinuityTemporal vs. Spatial Continuity
• Structured-light systems make certain Structured-light systems make certain assumptions about the scene:assumptions about the scene:
• TemporalTemporal continuity assumption: continuity assumption:– Assume scene is staticAssume scene is static
– Assign stripes a code over timeAssign stripes a code over time
• SpatialSpatial continuity assumption: continuity assumption:– Assume scene is one objectAssume scene is one object
– Project a grid, pattern of dots, etc.Project a grid, pattern of dots, etc.
Grid MethodsGrid Methods
• Assume exactly oneAssume exactly onecontinuous surfacecontinuous surface
• Count dots or grid linesCount dots or grid lines
• Occlusions causeOcclusions causeproblemsproblems
• Some methods useSome methods usedynamic programmingdynamic programming
[Maas][Maas]
Codes Assuming Local Spatial Codes Assuming Local Spatial ContinuityContinuity
CodewordCodeword
Codes Assuming Local Spatial Codes Assuming Local Spatial ContinuityContinuity
[Zhang][Zhang]
[Ozturk][Ozturk]
Spatio-Temporal ContinuitySpatio-Temporal Continuity
• Another possible assumption:Another possible assumption:– Object may moveObject may move
– Velocity low enough to permit trackingVelocity low enough to permit tracking
– ““Spatio-temporal” continuitySpatio-temporal” continuity
Designing a Code for Moving Designing a Code for Moving ScenesScenes
ProjectorProjectorCameraCamera
Designing a Code for Moving Designing a Code for Moving ScenesScenes
tt
Designing a Code for Moving Designing a Code for Moving ScenesScenes
tt
CodewordCodeword
Illumination history = (WB),(BW),(WB)Illumination history = (WB),(BW),(WB)Illumination history = (WB),(BW),(WB)Illumination history = (WB),(BW),(WB)
CodeCodeCodeCode
Codes for Moving ScenesCodes for Moving Scenes
• Assign time codesAssign time codesto stripe to stripe boundariesboundaries
• Perform frame-to-framePerform frame-to-frametracking of correspondingtracking of correspondingboundariesboundaries– Propagate illumination historyPropagate illumination history
[Hall-Holt & Rusinkiewicz, ICCV 2001][Hall-Holt & Rusinkiewicz, ICCV 2001]
Designing a CodeDesigning a Code
• Want many “features” to track:Want many “features” to track:lots of black/white edges at each framelots of black/white edges at each frame
• Try to minimize ghosts – WW or BB Try to minimize ghosts – WW or BB “boundaries” that can’t be seen directly“boundaries” that can’t be seen directly
Designing a CodeDesigning a Code
• Design a code to make tracking possible:Design a code to make tracking possible:– Do not allow two Do not allow two spatiallyspatially adjacent ghosts adjacent ghosts
– Do not allow two Do not allow two temporallytemporally adjacent ghosts adjacent ghosts
tt
Designing a CodeDesigning a Code
• Graph (for 4 frames):Graph (for 4 frames):
– Edges: boundaries (over time)Edges: boundaries (over time)
– Nodes: stripes (over time)Nodes: stripes (over time)
0011001111101110
10111011 01100110
01000100 10011001
00010001 11001100
00000000 11011101
10101010 01110111
100010000101010111111111 00100010
SpaceSpace
TimeTime
Designing a CodeDesigning a Code
• Graph (for 4 frames):Graph (for 4 frames):
• Path with alternating colors:Path with alternating colors:55 edges in graph 55 edges in graph maximal-length traversal has 110 boundaries (111 stripes)maximal-length traversal has 110 boundaries (111 stripes)
– Edges: boundaries (over time)Edges: boundaries (over time)
Boundary visible at even timesBoundary visible at even times
Boundary visible at odd timesBoundary visible at odd times
– Nodes: stripes (over time)Nodes: stripes (over time)
0011001111101110
10111011 01100110
01000100 10011001
00010001 11001100
00000000 11011101
10101010 01110111
100010000101010111111111 00100010
Designing a CodeDesigning a Code
• Many solutions to the graph problem as Many solutions to the graph problem as stated, so we can add more constraintsstated, so we can add more constraints– Maximize effect of errorsMaximize effect of errors
– No static boundariesNo static boundaries
– Even distribution of stripes of width 1 and 2Even distribution of stripes of width 1 and 2
ImplementationImplementation
• Pipeline:Pipeline:
• DLP projector illuminates scene @ 60 DLP projector illuminates scene @ 60 Hz.Hz.
• Synchronized NTSC camera captures Synchronized NTSC camera captures videovideo
• Pipeline returns range images @ 60 Hz.Pipeline returns range images @ 60 Hz.
ProjectProjectCodeCode
ProjectProjectCodeCode
CaptureCaptureImagesImagesCaptureCaptureImagesImages
FindFindBoundariesBoundaries
FindFindBoundariesBoundaries
MatchMatchBoundariesBoundaries
MatchMatchBoundariesBoundaries DecodeDecodeDecodeDecode ComputeCompute
RangeRangeComputeCompute
RangeRange
ResultsResults
VideoVideoframesframes
StripeStripeboundariesboundaries
unknowunknownnknownknownghostsghosts
More Options: Shadow ScanningMore Options: Shadow Scanning
• Variant of single-stripe triangulationVariant of single-stripe triangulation
• Use a simple lamp, stick to create a Use a simple lamp, stick to create a shadowshadow
[Bouguet][Bouguet]
More Options: Active StereoMore Options: Active Stereo
• Benefit: only camera/camera Benefit: only camera/camera calibration,calibration,not camera/projectornot camera/projector
• Projection possibilities:Projection possibilities:– Random textureRandom texture
– Single stripeSingle stripe
– Others (space-time codes?) Others (space-time codes?) [Davis][Davis]