After digging into OpenCV's source code, I finally obtain answers to my own questions.
- Values enclosed withtin internalNodes tags
node.left node.right node.featureIdx node.threshold
I'm not sure what's node.left and node.right are for as I can't see them being called anywhere.
- The weights are used to calculate the feature as in below:
float ret = rect[0].weight * CALC_SUM(p[0], _offset) + rect[1].weight * CALC_SUM(p[1], _offset);
- As mentioned in the first bullet, the node.featureIdx are the index of the feature that's being evaluated at that particular node.