The input images must first be analyzed and annotated. There are several steps to the analysis.
In our experiments, these steps were done with two input images which were annotated by hand-labelled contour correspondences and split into two segments.
Using the contour points, dense correspondence between contours is generated in a standard way. A Delaunay triangulation of the contours is generated for each segment, followed by a mapping from each pixel in one triangle to the corresponding pixel in the corresponding triangle in the other image. Note that some contours may have a different Delaunay triangulation than the corresponding contour; we pick the triangulation that has better aspect ratios in both images. Triangle correspondence is computed as follows: We begin with a triangle (p0, p1, p2) in image 1, and the corresponding triangle in image 2 (q0, q1, q2) expressed in homogeneous coordinates. To find the corresponce q in image 2 for a point p in image one, we compute the barycentric coordinates of p in triangle one, and the image coordinates of q in triangle 2: q = [ q0, q1, q2 ] [ p0, p1, p2 ]+ p. The pseudoinverse is used in case of degenerate triangles.
We then annotate the input image with articulated segments in the plane. A fist, elbow, and shoulder point were each selected from the image contours. These points are in correspondence, and the elbow point represents the pivot point of the forearm. All of the image points in the forearm half of the segmentation belong to the fist-elbow axis, and all of the remaining points belong to the elbow-shoulder axis.