For selecting the path borders we analyze the suc-
cessive highest values of I
AHS
for each frame, in each
half, starting with the highest ones. This results in
an intersection point. If the intersection point of the
next left and/or right value(s) has a smaller Euclid-
ian distance to the VP of the previous frame, we con-
tinue checking the next value(s) on the corresponding
side(s). If there is no pair with a smaller distance,
the current value is selected. After both values are
selected, their intersection corresponds to the frame’s
VP. In this search, all combinations of left and right
border candidates are considered. If in the left or right
regions where the I
AHS
values are checked there is no
maximum which corresponds to at least one sequence
of not less than 10 connected ON pixels, it is checked
again without region restrictions. If still no corre-
spondence can be found, the border is considered not
found for that side. In this case, the average of the last
5 borders found is used. If after 5 consecutive frames
one or both borders are not found, the user is warned.
The HL value remains the same, and the scanned win-
dow expands to the left- and/or rightmost column ac-
cording to the missing border(s). In such a case the
user knows that the vision module temporarily cannot
detect a valid path, but he can continue walking using
the white cane, and the module will still check for ob-
stacles in front. Below, the walkable path is called the
Path Window (PW). It consists of the triangle delim-
ited by the left and right borders in I
b
, as shown in the
second-from-left images in Fig. 1.
3 OBSTACLE DETECTION
The PW is wider than the area in front where the
blind person will walk and where obstacles must be
detected. Hence, the PW is narrowed by drawing new
lines through the VP: the positions of the original bor-
ders of the PW at the bottom line are shifted right (left
border) and left (right border), by 5% of W
b
, which re-
sults in a narrower triangle. In addition, the height of
the window can be reduced because the top of the tri-
angle (near VP) is too far away. Hence, the height
is redefined for a corresponding range of at least 5
meters from the user, i.e., H
OW
= 2/3 × y
VP
, which
yields a trapezoid with parallel top and bottom lines.
This is called the Obstacle Window (OW, I
OW
); see
Fig. 1, 2nd row 3rd column, and Fig. 2, the bright
area in the top-left image.
For obstacles in the immediate neighborhood be-
yond the reach of the white cane we have to consider
distances between 2 and 5 m in front of the user, tak-
ing into account the height of the camera and perspec-
tive projection of the lens. However, the resolution at
the bottom of the image is higher than that at the top
or even at the VP. Therefore, we define a new Obsta-
cle Detection Window (ODW) and use interpolation
to correct image resolution; see Fig. 1 (bottom-right);
also Fig. 2, the 2nd and 4th images from left on the
top row in the case of the OW in the frames to their
left. Hence, the trapezoidal OW is converted to the
rectangular ODW by maintaining the resolution at the
top of OW but reducing it at the bottom.
At this point we must stress that our system will
not detect obstacles at a distance of less than 2 m from
the user, because of two reasons: (i) The user has al-
ready been alerted to a looming obstacle at a larger
distance and advised to adapt path trajectory. (ii) The
user will always check a detected obstacle using the
white cane at short distance.
To the ODW region we also apply a lowpass filter
with a 3 ×3 kernel in order to suppress noise. An ex-
ample is shown in the top-right image of Fig. 2. This
is the filtered ODW of the image to its left, and this
will be used for obstacle detection.
Below we explain the three obstacle detection
algorithms: (a) Zero-Crossing Counting, (b) His-
tograms of Binary Edges and (c) Laws’ Texture En-
ergy Masks. If at least two of these detect an anomaly
at about the same position, an obstacle is assumed. At
least 3 successive frames are required to confirm the
presence of an obstacle and before alerting the user.
(a) In Zero-Crossing Counting, we compute
derivatives in x and y in I
ODW
, using a large kernel
K = (−1,−1,−1,0,1,1,1). Then we sum the am-
plitudes of the maxima and minima near every zero-
crossing (ZC): each time the derivative changes sign,
we look for the minimum and maximum value on
both sides and sum the absolute values. For analyz-
ing variations on lines we use the x derivative, and
for columns we use the y derivative. This is done
for every line and column in the ODW. These arrays
are then filtered twice with a 7 × 1 smoothing kernel.
Filtered values below 3 in the histograms are due to
noise and are removed. All parameters and kernels
were determined experimentally using different test
sequences. Examples of x and y derivatives are shown
in the 1st and 2nd images on the 2nd row of Fig. 2,
with the two histograms in black.
Thresholds are applied to the histograms in order
to remove “noise” caused by the texture of the pave-
ment. Let T
max/ min,dx/dy
denote the maximum and
minimum thresholds of the derivatives in x and y, and
i be the frame index of a sequence. Values in the in-
terval [T
min,dx/dy
,T
max,dx/dy
] are set to zero, as these
are caused by a textured pavement. In the first frames
during initialization (i ≤ 5), we must assume that no
obstacle is present and T
max,dx/dy
will be set to the
VISUAL NAVIGATION FOR THE BLIND - Path and Obstacle Detection
517