---
abstract: 'We investigate a novel global orientation regression approach for articulated objects using a deep convolutional neural network. This is integrated with an in-plane image derotation scheme, DeROT, to tackle the problem of per-frame fingertip detection in depth images. The method reduces the complexity of learning in the space of articulated poses which is demonstrated by using two distinct state-of-the-art learning based hand pose estimation methods applied to fingertip detection. Significant classification improvements are shown over the baseline implementation. Our framework involves no tracking, kinematic constraints or explicit prior model of the articulated object in hand. To support our approach we also describe a new pipeline for high accuracy magnetic annotation and labeling of objects imaged by a depth camera.'
bibliography:
- 'egbib.bib'
title: 'Rule Of Thumb: Deep derotation for improved fingertip detection'
---

Introduction {#sec:intro}
============

![ Examples from HandNet test set detections. The colors represent fingertips that are correctly located and identified. The white boxes indicate false detections with the error threshold chosen to be 1cm. The top two rows are trained and tested on non-derotated data. The bottom two are trained and tested on derotated data and then rotated back to the non-derotated space. The detections are overlaid on the IR image from the camera which is not part of the classification process. a) Successful examples for all methods. b) Representative challenging examples for which derotation enables better performance. c) Failure cases where derotation fails to improve the results.[]{data-label="fig:fingertips"}](Result.png){width="0.98\linewidth"}

In this paper we propose a method for normalizing out the effects of rotation on highly articulated motion of deforming geometric surfaces such as hands observed by a depth camera. Changing the global rotation of an object directly increases the variation in appearance of the object parts. The work of [@KimHIBCOO12] physically removes this variability with a wristworn camera and samples only a single 3D point on each finger to perform full hand pose estimation. For markerless situations, removing variability through partial canonization can significantly reduce the space of possible images used for pose learning instead of trying to explicitly learn the variability through data augmentation. In [@LepetitLF05] the authors show that learning a derotated 2D patch instead of the original one around a feature point dramatically reduces the learning capacity required and improves the classification results while using fewer randomized trees. To develop our method we use fingertip detection as a challenging representative scenario with a propensity for self occlusion and high rotational variability relative to an imaging sensor. Many approaches in the literature use fingertip or hand part detection towards the goal of full hand pose ([@KeskinKKA11],[@qian2014realtime],[@tompson14tog],[@Wang09]) however, they all approach the problem by trying to learn on datasets by augmenting rotational variability. Instead, we propose to remove this hand space variability during both the training phase and run-time. To this end we propose to learn the rotation using a deep convolutional neural network (CNN) in a regression context based on a network similar to that of [@tompson14tog]. We show how this can be used to predict full three degrees of freedom (DOF) orientation information on a database of hand images captured by a depth sensor. We combine the predicted orientation with a novel in-plane derotation scheme. The “Rule of thumb” is derived from the following insight: there is almost always an in-plane rotation which can be applied to an image of the hand which forces the base of the thumb to be on the right side of the image. This implies that the ambiguity inherrent in rotationally variant features can be overcome by derotating the hand image to a canonical pose instead of augmenting a dataset with all variations of the rotational degrees of freedom as is commonly done. Figure \[fig:fingertips\] shows examples of extensive pose variation that can benefit from our approach [^1].

No currently available hand datasets ([@ZhaoCX12],[@qian2014realtime],[@tompson14tog]) include accurate full 3 DOF ground truth hand orientations on a large database of real depth images. Using joint location data from NYUHands [@tompson14tog] it is possible to extract a global hand orientation per pose. However, we found that the size of this dataset and rotational variability are not optimal for learning to predict 3 DOF orientation. A significant contribution of this paper is therefore the creation of a new, large-scale database of fully annotated depth images with 212928 unique hand poses captured by an Intel RealSense camera that we call HandNet[^2]. For the purpose of effectively annotating such a large dataset we describe a novel image annotation technique. To overcome the severe occlusion inherrent in such a process we use DC magnetic trackers which are surprizingly sparsely used by the vision community considering their high accuracy, speed and robustness to occlusions. Using our deep derotation method (DeROT) we show up to 20.5% improvement in mean average precision (mAP) over our baseline results for two state-of-the-art approaches for fingertip detection in depth images, namely, a random decision tree [@KeskinKKA11] (RDT) and a deep convolutional neural network [@tompson14tog] (CNN). We also compare our results to a non-learning based method similar to PCA and show that it produces inferior results, further supporting the proposed use of DeROT.

Building HandNet: Creation and annotation {#sec:database}
=========================================

![ The data capture setup. a) 2mm magnetic sensors. The larger rectangular sensors are not used. b) A fingertip sensor inside the inner seam. c) Virtual model used for planning a multi-sensor setup. We only use 5 sensors. d) The RealSense camera rigidly fixed to the TrakStar transmitter. e) The back of the wooden calibration board where the glass sensor housings are firmly pushed through. f) The front of the calibration board where the glass sensor housings are visible on the corners as seen in the inset.[]{data-label="fig:dataprocess"}](DataRecording.png){width="0.95\linewidth"}

Synthetic databases such as those created using [@libhand] have a severe disadvantage in that they cannot accurately account for natural hand motion, occlusions and noise characteristics of real depth cameras. The creation of a large hand pose database of real depth images with consistent annotations is therefore of great importance, but beyond the capability of human annotators. The NYUHands database [@tompson14tog] uses a full model of the hand and a three-camera setup to annotate hand joint locations. There are instances where fingers are obstructed and accurate orientation information is not reliable. Similarly the method of [@Wang09] uses inverse kinematics coupled with a colored glove which also has the disadvantage of not having explicitly measured orientation as well as fingertip locations which are obstructed from the depth camera. An alternative to model based systems are sparse marker systems such as those used by [@ZhaoCX12], however, the excessive cost of a modern mocap setup such as Vicon as well as the occlusion problem make such an approach unattractive. In contrast, modern DC magnetic trackers like the TrakStar [@trakstar] are robust to metallic interference and obstruction by non-ferrous metals, and provide sub-millimeter and sub-degree accuracy for location and orientation relative to a fixed based station. Despite their almost non-existent use in modern computer vision literature, we have found them to be an excellent measurement and annotation tool. **Sensors.** To build and annotate our HandNet database we use a RealSense camera combined with $2mm$ TrakStar magnetic trackers. We affix the sensors to a user’s hand and fingertips by using tight elastic loops with sensors in sewn seam pockets. This prevents lateral and medial movement along the finger. This can be seen in Figure \[fig:dataprocess\]. The skin tight elastic loops have an additional significant benefit over gloves in that the depth profile and hand movements are not affected by the attached sensors and thus do not pollute the data. **Callibration.** Camera callibration with known correspondences is a well studied problem [@Zhang96]. However, in our case we need to callibrate between a camera and a sensor frame. We do this by positioning the magnetic sensors on the corners of a checkerboard pattern thereby creating physical correspondence between the detected corner locations and the actual sensors. This setup can be seen in Figure \[fig:dataprocess\]. We use the extracted 2D locations of the corner points on the callibration board [@bouguet2004camera] together with the sampled sensor 3D locations to perform EPnP [@Epnp09] to determine the extrinsic configuration between the devices.

![ The available data annotations after calibration. a) Color image. Illustrates a full hand setup for this work. The color is not used. b) The RGB axes indicate the measured location and orientation of each fingertip and the back of the palm. c) IR image(not used) overlaid with the labels generated from the raycasting described in Section \[sec:database\]. d) IR image overlaid with the generated heatmaps per fingertip and the global orientation of the hand represented as an oriented bounding box (not used). []{data-label="fig:annotation"}](HandData.png){width="0.9\linewidth"}

**Annotation.** We model each sensor as a 3D oriented ellipsoid. We then raycast the ellipsoid into the camera frame and set the label to be the identity of the ellipsoid closest to the camera for every pixel. We also create a heatmap $h_i$ for each fingertip $i$ using the same technique but setting the value per pixel to be gaussian over the distance to the projected sensor location. An example of both types of annotation can be seen in Figure \[fig:annotation\].

**Recording the database.** The database is created from $10$ participants (half male, half female, different hand sizes) who perform random hand motions with extensive pose variation while wearing the magnetic sensors. The RealSense camera operates at $~58$fps producing $640\times 480$ depth maps which we reduce to $320\times 240$. The TrakStar samples measurements at a rate of $720$Hz. In total we recorded $256987$ images. A portion of these images were removed because of low quality. The final dataset is $212928$ frontal images including full annotation of the position and orientation of each fingertip and the back of the palm. After recording each participant we used a software utility to add offsets to the rotation and location of each sensor to adjust for greater consistency in positioning across subjects.

Fingertip detection {#sec:fingertip}
===================

Although there are many non-learning based hand pose methods that can produce fingertip locations ([@schmidt2014dart; @oikonomidis2011markerless; @MelaxKO13; @BallanTGGP12]), they use kinematic and frame to frame constraints coupled with hand modelling. In contrast, here we specifically focus on per frame fingertip detection in depth images without either tracking or kinematic modelling. For our pipeline we first segment the target hand from the depth image using a fast depth based flood-fill method seeded either from the previous frame for real-time use and testing or from the ground truth hand location for building the database. Using the center of mass (CoM) of the segmented hand and its average depth value we define a depth dependent bounding box of size $w=\frac{50000}{z}$ for a RealSense camera (HandNet) and $w=\frac{70000}{z}$ for a Kinect camera (NYUHands) where $z$ is the depth of the CoM of the segmented hand. We derotate the image about the CoM using an angle of rotation according to the in-plane angle produced by DeROT described in Section \[sec:derotation\]. This comes from the predicted full 3D orientation at run-time or from the ground truth sensor orientation for database construction or testing. We then crop the image using the bounding box. We now describe our modifications of the two different, learning-based fingertip detectors that we use in this work.

![ Understanding derotation: We represent the space of poses by a non-uniform 2D region with representative hand poses. Red and green represent the pose-space covered by training images and testing images respectively. Each ,,, indicates one of the 4 possible combinations of training and testing for a machine learning method where the database remains fixed in size. The larger region indicates greater pose variability while the smaller represents less. Intuitively, by training on a space with low variance and testing in this same space (type ) we expect to see an improvement over the opposite (type ). Section \[sec:evaluation\] supports this intuition. []{data-label="fig:ronnyhands"}](Hands2.jpg){width="0.8\linewidth"}

Random decision tree {#sec:RDT}
--------------------

We follow the method of Keskin [@KeskinKKA11] where a random decision tree (RDT) ensemble learns hand part labels for every pixel in a depth image of a hand. We refer the reader to the supplementary material of our paper as well as [@KeskinKKA11; @Shotton11] for specific details of this approach. However, here we propose a number of key differences which we found specifically helpful for fingertip detection and run-time efficiency. We use the same random binary depth attributes per pixel but spatially distribute them according to an exponential sampling pattern similar to that of BRISK [@leutenegger2011brisk]. In addition to this, we use only a single RDT which contrasts with the common use of multiple trees in an ensemble. After training our single RDT the class distributions stored at each leaf can be used for inference because they represent the empirical estimate of the posterior probability $p\left(c | x \right)$ of hand part label $c$ given the image evidence $x$. Inferring the most likely fingertip identity label is therefore simply performed pixel-wise by finding the $c^*$ which maximizes $p\left(c | x \right)$ per pixel. However, label inference performed this way results in noisy labels as neighboring classifications do not influence one another. Without adding more trees we propose a simple but highly effective spatial regularization: for each fingertip $i$ we treat the posterior $p\left(c=i | x \right)$ for all pixels as an image and convolve it with a discrete 2D gaussian smoothing kernel $g_\sigma$ with blur radius $\sigma$. This has the effect of correlating the posterior label distributions of nearby pixels. Therefore every pixel $q$ is labeled by fingertip identity (including palm and wrist labels) according to $$\label{eq:treeEq}
c^*\left(q;x\right) = \mathop {\arg \max }\limits_{i \in \left\{0..6 \right\}} \left(g_{\sigma}* p_{c=i|x} \right) \left(q\right).$$ Finally, we found that the close proximity of fingers compromises standard mean-shift [@meanshift] clustering. Instead we detect the largest label blobs in the label image from Equation \[eq:treeEq\] above a certain area threshold. The 2D fingertip locations are then assigned to the blob centers and, if necessary, the average depth value for each blob can be used to generate the 3D camera-space coordinates.

**Training the RDT.** Training optimal decision trees is known to be NP-complete [@HyafilR76] and therefore trees are built from the root down using breadth-first greedy optimization over tree node impurity. We use the Gini impurity measure which is slightly cheaper to compute than the more typical entropy measure. To build our database for training an RDT we extracted $80\%$ of the fingertip pixels in our training datasets and $50\%$ of the non-fingertip hand pixels. For HandNet this results in a training dataset of $500$ million sample pixels totaling  $600$GB of data for $1200$ attributes. Our tree-builder trains an unpruned randomized tree on $4\times$ GTX 580 GPUs and an Intel I7 processor with $48$GB of RAM in $16$ hours for a tree depth of $21$ with $18000$ query tests per node. We are not aware of another single-workstation tree-builder capable of handling this quantity of data. The very large number of examples helps to prevent overfitting demonstrated by single RDTs.

Convolutional neural network {#sec:CNN}
----------------------------

For our second evaluated method we build a CNN architecture based on Tompson [@tompson14tog] to predict the location of the five fingertips by using the maximum location in a set of heat maps which implicitly represent fingertip locations. We refer the reader to that work for specific details and to our supplementary material for the explicit architecture of our implementation. This multi-layer deep approach is critical for an input space as complicated as the set of images of an articulated object and we found that the deeper convolutional layers extract feature responses on a higher semantic level such as oriented fingertips. Using the heatmap based error objective helps to spatially regularize the network during training. For input to the CNN we set $D_1$ to be the cropped depth resized to $96\times 96$ pixels. We then downsample it by a factor of two twice to produce $D_2$ and $D_3$. We use a subtractive form of local contrast normalization (LCN) [@tompson14tog; @jarret] so that $D_i \leftarrow D_i - g_{\sigma}*D_i$ using a gaussian smoothing kernel with $\sigma=5$ pixels. The triplet $\left(D_1,D_2,D_3\right)$ is then input to the network. The trained network outputs a heatmap $h_i$ per fingertip $i$ for new data. Our method differs for fingertip detection in that we augment the output by a non-fingertip heatmap that is strong wherever a fingertip is not likely to be present. Also, instead of fitting a gaussian model to the strongest mode in the low resolution heatmaps, we instead upsample each $18\times 18$ fingertip heatmap $h_i$ to a fixed size of $128\times 128$ with a smoothing bi-linear interpolator. Similar to Section \[sec:RDT\] every pixel $q$ is labeled with fingertip identity (including a non-fingertip class) $$\label{eq:cnnEq}
c^*\left(q\right) = \mathop {\arg \max }\limits_{i \in \left\{0 .. 5 \right\}} h_i\left(q\right).$$ As in Section \[sec:RDT\] the fingertip locations are given by the location of the largest label blob. **Training the CNN.** Both the orientation regression CNN of the next Section as well as the described fingertip CNN are trained using Caffe [@jia2014caffe] on an NVidia GTX 980 with an i7 processor and $16$GB of onboard RAM. We train both with a Euclidean loss and a batch size of $100$ for $100000$ iterations with stochastic gradient descent. We start with a learning rate of 0.01 and reduce it by a factor of 0.2 after every ten thousand iterations. We found that repeated fine-tuning was necessary to help network convergence.

Derotation {#sec:derotation}
==========

Orientation regression {#sec:regression}
----------------------

![ This graph shows the predicted value of all 9 coefficients of the hand orientation matrix in red relative to the ground truth in yellow. For clarity we order each ground truth coefficient monotonically and apply this reordering to the predicted results. The mean squared error for all the coefficients on the HandNet test set before and after SVD is 0.0271 and 0.0234 respectively.[]{data-label="fig:rotationgraph"}](Hand_Rotation_Prediction.pdf){width="0.9\linewidth"}

We adapt the deep convolutional architecture from Section \[sec:fingertip\] to predict full $3$ DOF hand orientation. Instead of a heatmap, we directly predict the $9$ coefficients of the rotation matrix. There are only $3$ degrees of freedom in a regular rotation but by using $9$ parameters and a large database we are effectively regularizing our over-parameterized output. The representation of a rotation matrix in this way is unique in $SO\left(3\right)$ unlike quaternions and Euler angles which we found to be noisy and unreliable. This noise was most visible when trying to predict a single representative angle. For training we use Euclidian loss and do not enforce orthonormality. However, the output of this CNN is directly projected onto the closest unitary matrix using the SVD decomposition $R = USV^T$. $\hat{R} = UV^T$ then provides a least squares optimal projection into $SO\left(3\right)$, if we additionally enforce $\det\left(\hat{R}\right)=1$. Figure \[fig:rotationgraph\] shows the result of predicting the $9$ ground truth coefficients for HandNet and the full network architecture can be seen in the supplementary material.

DeROT: Designing a derotation method {#sec:derot}
------------------------------------

[2]{}

$r_{align} \leftarrow \operatorname*{\arg\!\max}_{r_i \in \{r_1,r_2,r_3\}} \|\left(0,0,1\right)\cdot r_i\|$ $\alpha \leftarrow atan2(r_{3x},r_{3y}) + 90 + \tiny \twopartdef {180} {r_{2z} \leq 0} {0} {r_{2z} > 0}$ $\alpha \leftarrow atan2(r_{2x},r_{2y}) + 90$ Return $\alpha$

\[alg:derot\]

![ Synthetic and real examples of DeROT. a) The depth projection of the virtual hand before applying DeROT can be seen on the left wall of the cube representing the camera plane. The axis marked $r_{orient}$ is projected onto the camera plane and used in DeROT to define the angle $\alpha$. The purple circle contains the resulting image of the hand after applying derotation by angle $\alpha$. b) The top row of images are un-derotated. The bottom row have been derotated by $\alpha$ obtained by DeROT. Note that the thumb is consistently on the right of the image.[]{data-label="fig:derot"}](Derotate.png){width="0.95\linewidth"}

We take advantage of the orientation prediction $\hat{R}=\left[r_1 r_2 r_3\right]$ to compute an angle $\alpha$ which we will use for rotating the camera image about its center. The aim of this is to reduce pose variance by heuristically forcing the thumb to be on the right side of the image. We could use a predefined axis and set the angle $\alpha$ with which to rotate the image to be that between the projection of this axis and the upwards image direction. Unfortunately, when this axis mostly points to or away from the camera the projection onto the screen will be small and noisy. As a simple heuristic we detect if this is the case and if so choose an alternative axis. Specifically we first determine the predicted axis $r_{align}$ most aligned with the camera z axis as $r_{align}=\operatorname*{\arg\!\max}_{r_i \in \{r_1,r_2,r_3\}} \|\left(0,0,1\right)\cdot r_i\|$. If $r_{align}$ is either the palm pointing direction or the direction of the extended fingers then we can be sure that the thumb direction $r_2$ will be non-noisy for this case and set $r_{orient}=r_2$. If the test yields instead that $r_{align}=r_2$ (i.e. thumb direction is mostly pointing towards or away from the camera) then we instead set $r_{orient}=r_3$ which is the palm vector. This procedure is summarized in Algorithm \[alg:derot\]. Synthetic and real examples can be seen in Figure \[fig:derot\]. This choice is arbitrary and can be adapted for objects other than the hand. We thus define DeROT to be the combination of using the CNN from Section \[sec:regression\] to predict $\hat{R}$ together with this derotation heuristic.

Derotation with PCA and Procrustes {#sec:pca}
----------------------------------

Instead of using DeROT, an alternative approach is to extract the principal axes of the hand silhouette using PCA and taking the rotation angle of the largest axis to the vertical image axis. We have found that a similar but more stable option is to determine an enclosing ellipse using a Procrustes like algorithm on the convex hull of the points $\cal V$ of the hand segmentation. The minimum area enclosing ellipse can be found efficiently over the points $x_i\in\text{convhull}\left({\cal V}\right)$ by minimizing $-\log \left( {\det \left( A \right)} \right) \text{,  s.t  } {\left( {{x_i} - {\overline x_i}} \right)^T}A\left( {{x_i} - {\overline x_i}} \right)\leq 1$ for $A,{\overline x_i}$ defining the ellipse. We solve this using Khachiyan’s algorithm [@AspvallS80]. However, as shown in Section \[sec:evaluation\] even with this added stability the method reduces performance rather than improving it.

Experiments {#sec:experiments}
===========

Evaluation protocol and data {#sec:evaluation}
----------------------------

**Experiments.** We perform our experiments using our HandNet database and the publicly available database NYUHands [@tompson14tog]. All experiments are performed separetly on the two databases. Our baseline results come from () training on non-derotated data and testing on non-derotated data. We compare this to () training on non-derotated data while testing with derotated data, () training on derotated data while testing with non-derotated data, () training on derotated data while testing with derotated data. **Non-derotated data.** For HandNet training we randomly select 202928 images and use the remaining 10000 images for testing. For NYUHands we use all 3 camera views (72757 images per view) for training and the frontal view for testing (8252 images). We slightly dilute the training and testing sets according to our hand segmentation pipeline which results in 184100 training images and 7241 testing images.

For experiment types () and () we use this data to train two CNN orientation regression networks; one for each dataset. We use the same data for training the RDT and CNN fingertip detectors for experiment types () and (). However, for testing the fingertip detectors in experiments () and (), we rotate each testing image by uniformly random in-plane rotational offsets between -$90$ and $90$ degrees. This further guarantees that the testing data is different from the training data. **Derotated data.** Experiment types () and () use training data which is first derotated by an Oracle which we define to be DeROT that uses the ground truth $R_{gt}$ obtained from the magnetic sensors. With experiment types () and () we first apply the same uniform random image rotation to the test images exactly as for experiment types () and (). We then apply one of the following: (a) Procrustes derotation, (b) DeROT using $\hat{R}$ predicted by the CNN regression network, (c) Oracle derotation with $R_{gt}$. **Mean precision and mean average precision.** We compute precision and recall according to the protocol of [@voc11]. We set prediction confidence as the value at the location of the fingertip detection in the $128\times 128$ channel heatmap for each fingertip. The mean precision (mP) represents the mean precision over all fingertips at a recall rate of $100\%$. Mean average precision (mAP) measures the mean of all the areas under the precision-recall curves for each fingertip and takes into account the behaviour over all confidence values. **Error threshold.** The error of a prediction is the distance to the ground truth location. If a fingertip is more than 6 pixels from the ground truth position it is considered a false positive. The threshold of 6 pixels roughly translates into a distance of $1cm$ for both HandNet and NYUHands in an image patch of size $128\times 128$ cropped according to Section \[sec:fingertip\]. $1cm$ is a natural threshold to choose as the distance between adjacent fingertips is over $1.6cm$ on average [@dandekar2003].

[rrrrr]{}

& & & &\
& & & &\

\

& & & &\
& & & &\

& & & &\
& & & &\

\

& & & &\
& & & &\

& & & &\
& & & &\

  -- --
     
  -- --

Discussion {#sec:discussion}
----------

The results of the experiments can be seen in Table \[tab:HandNet\]. In Figure \[tab:graphs\] we display a precision-recall curve and error threshold graph for the thumb on the HandNet test-set for all experiment types which is representative of the behavior of all fingertips. The results show that the use of DeROT improves over the baseline results *for all measurements* for both RDT and CNN for experiments on both datasets. On HandNet, when training an RDT and CNN on ground truth derotated data, we see that test-time use of DeROT yields improvement in mAP of 11.3% and 20.5% over the respective baselines. For NYUHands, DeROT gives an RDT a gain of 17.3% in mAP when trained on derotated data and a CNN achieves mAP gains of 14.2% when trained on underotated data but only a marginal gain of 2.5% when trained on derotated data. We found that the confidence values for this specific case were not reliable (which directly effects mAP) because of confusion between fingertips (specifically index and ring) which further justified the creation of HandNet. *For all experiments and datasets* the mP when using DeROT shows improvements of between 7.8% and 21.1% on underotated training data and between 23.5% and 38.6% for derotated training data. The simplistic Procrustes derotation negatively impacts fingertip detection relative to the baseline and we therefore chose not to build and train an RDT and CNN on Procrustes derotated versions of the two datasets. For our experiments a single RDT mostly outperforms a CNN. Although they are trained with different data and objectives it hints that there is no silver bullet to determining which machine learning approach is more appropriate.

Conclusions and future work {#sec:conclusion}
===========================

We have shown that using derotation, specifically DeROT, significantly improves the localization ability of machine-learning based per-frame fingertip detectors by reducing the variance of the pose space. Furthermore we find that this procedure works despite the extremely high range of potential poses. We see this approach as an alternative to data augmentation and as a potentially useful additional step in pipelines dedicated to articulated object pose extraction such as hands. Although we have used no prior model or kinematic constraints to improve the detection results this is currently an active area that we are investigating. Also, in this work we have considered results only on depth images but it would be interesting to apply a similar pipeline to pure 2D color images.\
\
**Acknowledgments** This research was supported by European Community’s FP7- ERC program, grant agreement no. 267414.

[^1]: All graphs and images in this paper are best viewed in color.

[^2]: To advance research in the field this database and relevant code is available at [www.cs.technion.ac.il/\~twerd/HandNet/](www.cs.technion.ac.il/~twerd/HandNet/)
