0

I'm playing around with motion detection through a webcam connected to RaspberryPi using OpenCV and cvBlob in C++. I want to kick it up a notch and make a robot that detects and tracks movement driving towards it and turning left/ring to keep the moving object in the center of view. But I quickly hit a roadblock - I cannot find any materials about motion tracking with an active, moving camera that are more on an amateur level. I found only academic papers e.g. on optical flow. Sure, I can try to get through one of them, if I knew that's the algorithm that suits my needs, but going through all the papers and choosing the one among them is beyond my level of understanding.

So I would be grateful, If someone could point me to the simplest possible method (after all, RaspberryPi has quite limited resources) that would allow me to determine if the selected blob (I plan to track the movement of the biggest blob exceeding a set size) moves on the horizontal axis, compared to the movement of the background caused by the movement of the robot on which the camera is mounted The movement in the vertical axis is irrelevant in this application.

Mark
  • 1
  • 1
  • Any stabilization method could give you a hint. Nevertheless, I'd use a detection-based tracker for a moving camera. – LovaBill Apr 24 '13 at 13:37
  • To start with something easy you could try to track a pink ball like the aibo robots. Because the ball has such a distinctive color it is relativly easy to find and track. – sietschie Apr 24 '13 at 13:55

1 Answers1

0

If you use the the left and right x co-ordinates of the blob you should be able to determine if the object is moving by measuring the distance from the left and right image borders to the objects left and right x co-ordinates. If the robot is moving left or right, the object would have stopped if the distance of the measurement starts to decrees.

Quentin
  • 900
  • 8
  • 13