ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Request for approach recommendation for an object identification

asked 2012-01-09 01:49:38 -0600

Equipment - Windows 7, OpenCV 2.3.1, Visual Studio C++ 2010 Express, and, eventually, any digital video cameras needed, lenses (?)

Project - I want to build a machine to identify characteristics of the flight of a baseball my son hits to the outfield (length, direction, height, etc) in realtime.

Solution description - I will have two fixed digital video cameras observe the flight of the ball and will analyze those video streams with OpenCV to locate and track the ball.

OpenCV methods There are three methods I've read about and/or seen to identify a ball 1. circle detection from edges 2. circle detection of blobs in a color range (orange ball and tennis ball examples) 3. moving circle blob detection by frame differencing (car and people identifying and tracking)

I have done the first (cvtColor, GaussianBlur, Canny, HoughCircles) only well enough that I can get it to work with certain color backgrounds. I started the second but before I spend days making it work I realized I don't know what the best approach is. It seems to someone with no image analysis experience - me - that my PC could have difficulty in 1 finding the right edges since the weather and background will change from game to game. 2 could be difficult because there may be several blobs in the foreground (players' white uniforms, bases) and the background (white lettering or background on signs) that would also be baseball white, and because the baseball white would change as the sun went down or the ball got dirty. I think 3 is the best way to go but don't want to spend a lot of time making it work (my early attempts failed) if I'd just learn it's shortcomings for tracking a baseball after I had it functioning.

The question: Which of 1-3 or 4, 5, 6 (I'm sure there are other methods you know of that I don't) is the most appropriate approach in OpenCV to learn characteristics about the 3D flight (distance, height, direction, etc.) of a baseball hit to the outfield?

(I'm expecting to need to write the code myself but I wouldn't turn down portions of the program that are sent to me.)

Thanks for any advice.

edit retag flag offensive close merge delete


I think for the type of data you want back form this project using only 2 camera vantage points with quite a bit of background noise, you are going to have to either change the ball color (easy) or add a lot more sensors to track the ball. Maybe a sensor to track the balls speed ...

Atom gravatar image Atom  ( 2012-02-18 15:23:43 -0600 )edit

With the speed data,& cameras watching for the direction of travel you could write a algorithm to predict the result of the ball. Also the two camera vantage points would be from above and on one side. You could in theory use the camera to track the speed as well,but I think speed sensor would help.

Atom gravatar image Atom  ( 2012-02-18 15:29:43 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-02-18 15:35:13 -0600

Atom gravatar image

Try this link for some ideas on smart tracking ..

edit flag offensive delete link more

Question Tools


Asked: 2012-01-09 01:49:38 -0600

Seen: 347 times

Last updated: Feb 18 '12