0

I've been testing openCV on an RPi using Python. The video is coming from a USB grabber from a CCTV camera.

I tested it in a room with 'ideal' stick figures and it worked great, tracking and zoom automatically.

However when testing in the real world, the first test location has a corrugated roof in view and the vertical lines of the roof always get detected as a person.

I was very surprised by this as the HoG detection seemed quite robust against bushes, trees and other optically jumbled images. A series of vertical lines seems to catch it out every time.

Why might this be?

Do I need to look at trying to re-train it? I would imagine this would be quite a task!

Has anyone else found this issue?

Maybe I should try and pre-filter the vertical lines out of the image?

Having a person tracker that can't cope with fences or roofs is a bit of a limitation!

Richard
  • 101
  • 1

1 Answers1

0

Having false positives after just a single training session is common and should be expected. You should now record all these false positives and use them for hard negative training. That is, you would add these false positives in the negative training set. Once you perform a hard negative training, your model should perform much better and the number of false positives will reduce.

Understanding why the fence and other edges shows up as a false positive is a bit complicated to explain and is better explained by the many articles and the original HOG paper by Dalal and Triggs, which I would highly recommend.

Shawn Mathew
  • 2,198
  • 1
  • 14
  • 31
  • OK, I will try that. I was using the default training with openCV. I thought it was very odd that something so obviously not a person got detected so readily. – Richard Jul 07 '17 at 08:38