Algorithm 1 Procedures of Contact Point Detection |
Input data: foot points in the input depth image Output data: contact points Variables
-
-
: index of the foot points in the depth image
-
-
: i-th foot point in the depth image
-
-
: normal vector of
-
-
: distance from the footplate to
-
-
: length of one side of a cell in the 3D voxel grid
Procedures:
-
Constructing a 3D voxel grid:
create a 3D voxel grid having a range of −1.0 to 1.0 and divide the grid into cells of equal size.
-
Computing a normal vector:
for all ,
calculate the normal vector and apply a smoothing filter.
-
Voting normal vectors:
for all ,
assign to the cell in the grid
-
Setting initial clusters:
set the non-empty cells as the initial clusters and calculate the average normal vector in the initial cluster.
-
Merging adjacent clusters:
for all inital clusters,
calculate the distance between the adjacent cluster and merge them if the distance is smaller than .
-
Estimating footplate equation:
find the cluster with the largest number of normal vectors of the foot points and estimate the plane equation using the correspoindng foot points.
-
Calculating distances of foot points:
for all ,
calculate the distance from the footplate using the plane equation.
-
Constructing a histogram:
create a hisgtorm of the distance from the foot points and the footplate.
-
Detecting the contact points:
find the bin with the highest frequency and define the points corresponding to the bin as the contact points.
|