pico
pico copied to clipboard
The details in Training
I've read your paper, and run your code. It's really great and fast.
But I have some questions here.
- It seems like that you train the decision tree using the grey level image. However, because of the different skin color, comparison on grey level may be not the good idea? Have you tried trained on the gradient image(e.g. processed by sobel operator, ignore the gradient angle)?
- In each internal node, you randomly do 256 binary tests. Why not just calculated the weighted average face of samples, and compare the max to min. If you want to introduced randomness, you can randomly pick a pair from top N maxs and top N mins.
The idea is great.
- Yes, I've tried gradient images. However, these do not work well with pico due to aliasing problems (binary tests "miss" a lot of edges). You can try to learn your own detector using gradients: modify
genki.py
andbackground.py
to generate a dataset processed with a gradient operator. - Could you explain your proposal in more detail?
Now, in each internal node, you just try 256 pixel pairs, and find the best with least WMSE(Weighted Mean Square Error, Equation 2 in paper). Our goal here is to find a pair of pixels which can divide the training samples into two groups separately. My proposal is
- Get the average image of all face samples of current internal node (i.e the first pixel of average image is the average of the first pixel of all face samples of current internal node)
- Pick the maximum pixel and minimum pixel of the average image as the pixel pair for this internal node.
- It will work because average image of the nonface should be uniform, while most face image have bigger pixel value at location of maximum of average image and less pixel value at location of minimum of average image.
By the way, I found that your face detector is not good for people with cap and girls with bangs.
Hi wg1989john "2.Pick the maximum pixel and minimum pixel of the average image as the pixel pair for this internal node." Do you mean that you want to change the way to select pixel pairs ? maybe it works. but how about the detection speed?
Hi YangUSTC It only affects training, not detection.
@wg1989john
Your idea is cool. But while building the tree and we get only nonface images in a subtree (pure subtree). Instead of calculating average image what should we use?