Signal Processing - May 2017 - 56

sible with traditional depth cameras, or reduce the cost or size of
devices, will largely rely on high-performance commodity
camera elements.
depth cameras. The recently released Microsoft HoloLens [8]
For the completeness of this review, we first briefly inand Google Tango [9] are two good examples.
troduce traditional structured light techniques, through
Inspired by the success and philosophy of the Kinect, much
which it is easier to understand the merits of computational
research has been done in the past few years targeting realtechniques. Traditional structured light techniques can be
time, high-performance depth sensing. These works share a
roughly divided into two categories according to the pattern
common insight that the codesign of image sensor systems and
design strategy: time coding and space coding. Time-coding
signal processing algorithms is essential to achieve a superior
methods project multiple patterns sequentially to identify
performance. Such codesign is called computational depth
each point in the scene with a time series, e.g., binary code
sensing. In this article, we introduce this important concept and
[12], Gray code [13], N-ary code [14],
provide an overview of the latest represenand phase-shifted fringe [15]. Due to the
tative techniques. By bringing together and
Due to its promising and
pixel-independent encoding, time-coding
analyzing interdisciplinary research from
reliable performance, the
methods can provide high-accuracy depth
signal processing, computer vision, and
structured light approach
with simple decoding algorithms. Howevoptics communities, our goal is to shed light
has been widely adopted
er, time coding cannot deal with dynamic
on the development of future commodity
for three-dimensional
scenes unless expensive high-speed harddepth cameras, which is a potential great
scanning purposes.
ware is used [16]. In contrast, space-coding
interest to a broad audience. Specifically,
methods using a single pattern are suitable
this article will focus mainly on the strucfor 3-D capture of dynamic scenes. Generally, this pattern
tured light approach, which provides a large degree of freedom
needs to be designed in a way that each point is uniquely enfor the design of depth cameras. A recent review of ToF camcoded by its neighborhood, e.g., De Bruijn sequences [17],
eras is given in [10], and another on light-field cameras is given
M-arrays [18], and color-coded [19] and symbol-coded [20]
in [11]. Also, a comprehensive review on traditional structured
patterns. Nevertheless, space-coding methods rely on an aslight cameras can be found in [4]. This article will be complesumption of local depth smoothness that will be violated by
mentary to these reviews.
abrupt depth changes. Thus, the accuracy of depth obtained
from space coding is limited.
Computational depth sensing
We still take the Kinect as an example to further explain
For ordinary digital cameras, what you see is what you get
the concept of computational depth sensing. The pattern used
under appropriate ambient illumination. By contrast, depth camin the Kinect belongs to space coding for structured light. In
eras do not sense depth information directly, but, rather, through
traditional space-coding methods, color or grayscale informaeither the space deformation or the time delay of light signals.
tion is generally used. These color or grayscale patterns need
In this sense, computation is actually indispensable for all depth
to be emitted by projectors. While projectors are often expencameras. In this article, however, computational depth sensing is
sive, bulky, low-energy, and offer a small depth of field, the
defined as the redesign of image sensor systems or elements
emitted light is also susceptible to ambient illumination and
followed by advanced signal processing algorithms.
scene albedo. All of these issues hinder the practical applicaComputational depth sensing can improve the capabilities of
tion of space-coding depth cameras. The revolutionary change
traditional depth cameras, introduce features that were not posin the Kinect is to use a tiny laser-diffuser emitter to replace
the projector. The diffuser bears a binary, pseudorandom
speckle pattern, and the laser emits infrared light. Therefore,
while being invisible to human eyes, an infrared speckle pattern is generated and projected onto the scene, as shown in
Figure 1. Due to the well-designed pseudorandom distribution
of the bright dots, this speckle pattern has high distinguishability when observed in a local window. Compared with the
projector, the laser-diffuser emitter has obvious advantages:
low cost, compact size, high energy, and large depth of field.
Moreover, compared with the projector-generated color or
grayscale patterns, this binary, infrared speckle pattern is
robust to ambient illumination and scene albedo. All of these
issues contribute to the reliable performance of the Kinect
depth camera.
Besides the unique optics design, the Kinect also adopts
an efficient signal processing algorithm, that is, how to compute depth once the deformed speckle pattern is captured.
FIGURE 1. An infrared camera image of part of the speckle pattern
The triangulation principle is used here. A reference image
projected by the Kinect.
56

IEEE SIgnal ProcESSIng MagazInE

|

May 2017

|



Table of Contents for the Digital Edition of Signal Processing - May 2017

Signal Processing - May 2017 - Cover1
Signal Processing - May 2017 - Cover2
Signal Processing - May 2017 - 1
Signal Processing - May 2017 - 2
Signal Processing - May 2017 - 3
Signal Processing - May 2017 - 4
Signal Processing - May 2017 - 5
Signal Processing - May 2017 - 6
Signal Processing - May 2017 - 7
Signal Processing - May 2017 - 8
Signal Processing - May 2017 - 9
Signal Processing - May 2017 - 10
Signal Processing - May 2017 - 11
Signal Processing - May 2017 - 12
Signal Processing - May 2017 - 13
Signal Processing - May 2017 - 14
Signal Processing - May 2017 - 15
Signal Processing - May 2017 - 16
Signal Processing - May 2017 - 17
Signal Processing - May 2017 - 18
Signal Processing - May 2017 - 19
Signal Processing - May 2017 - 20
Signal Processing - May 2017 - 21
Signal Processing - May 2017 - 22
Signal Processing - May 2017 - 23
Signal Processing - May 2017 - 24
Signal Processing - May 2017 - 25
Signal Processing - May 2017 - 26
Signal Processing - May 2017 - 27
Signal Processing - May 2017 - 28
Signal Processing - May 2017 - 29
Signal Processing - May 2017 - 30
Signal Processing - May 2017 - 31
Signal Processing - May 2017 - 32
Signal Processing - May 2017 - 33
Signal Processing - May 2017 - 34
Signal Processing - May 2017 - 35
Signal Processing - May 2017 - 36
Signal Processing - May 2017 - 37
Signal Processing - May 2017 - 38
Signal Processing - May 2017 - 39
Signal Processing - May 2017 - 40
Signal Processing - May 2017 - 41
Signal Processing - May 2017 - 42
Signal Processing - May 2017 - 43
Signal Processing - May 2017 - 44
Signal Processing - May 2017 - 45
Signal Processing - May 2017 - 46
Signal Processing - May 2017 - 47
Signal Processing - May 2017 - 48
Signal Processing - May 2017 - 49
Signal Processing - May 2017 - 50
Signal Processing - May 2017 - 51
Signal Processing - May 2017 - 52
Signal Processing - May 2017 - 53
Signal Processing - May 2017 - 54
Signal Processing - May 2017 - 55
Signal Processing - May 2017 - 56
Signal Processing - May 2017 - 57
Signal Processing - May 2017 - 58
Signal Processing - May 2017 - 59
Signal Processing - May 2017 - 60
Signal Processing - May 2017 - 61
Signal Processing - May 2017 - 62
Signal Processing - May 2017 - 63
Signal Processing - May 2017 - 64
Signal Processing - May 2017 - 65
Signal Processing - May 2017 - 66
Signal Processing - May 2017 - 67
Signal Processing - May 2017 - 68
Signal Processing - May 2017 - 69
Signal Processing - May 2017 - 70
Signal Processing - May 2017 - 71
Signal Processing - May 2017 - 72
Signal Processing - May 2017 - 73
Signal Processing - May 2017 - 74
Signal Processing - May 2017 - 75
Signal Processing - May 2017 - 76
Signal Processing - May 2017 - 77
Signal Processing - May 2017 - 78
Signal Processing - May 2017 - 79
Signal Processing - May 2017 - 80
Signal Processing - May 2017 - 81
Signal Processing - May 2017 - 82
Signal Processing - May 2017 - 83
Signal Processing - May 2017 - 84
Signal Processing - May 2017 - 85
Signal Processing - May 2017 - 86
Signal Processing - May 2017 - 87
Signal Processing - May 2017 - 88
Signal Processing - May 2017 - 89
Signal Processing - May 2017 - 90
Signal Processing - May 2017 - 91
Signal Processing - May 2017 - 92
Signal Processing - May 2017 - 93
Signal Processing - May 2017 - 94
Signal Processing - May 2017 - 95
Signal Processing - May 2017 - 96
Signal Processing - May 2017 - 97
Signal Processing - May 2017 - 98
Signal Processing - May 2017 - 99
Signal Processing - May 2017 - 100
Signal Processing - May 2017 - 101
Signal Processing - May 2017 - 102
Signal Processing - May 2017 - 103
Signal Processing - May 2017 - 104
Signal Processing - May 2017 - 105
Signal Processing - May 2017 - 106
Signal Processing - May 2017 - 107
Signal Processing - May 2017 - 108
Signal Processing - May 2017 - 109
Signal Processing - May 2017 - 110
Signal Processing - May 2017 - 111
Signal Processing - May 2017 - 112
Signal Processing - May 2017 - Cover3
Signal Processing - May 2017 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201809
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201807
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201805
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201803
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_201801
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0917
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0717
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0517
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0317
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0117
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0916
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0716
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0516
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0316
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0116
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0915
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0715
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0515
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0315
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0115
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0914
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0714
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0514
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0314
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0114
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0913
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0713
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0513
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0313
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0113
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0912
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0712
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0512
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0312
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0112
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0911
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0711
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0511
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0311
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0111
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0910
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0710
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0510
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0310
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0110
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0909
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0709
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0509
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0309
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0109
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_1108
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0908
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0708
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0508
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0308
https://www.nxtbook.com/nxtbooks/ieee/signalprocessing_0108
https://www.nxtbookmedia.com