There are a number of similar questions such as Monocular vs. stereo computer vision robustness for object detection, but none that address my question specifically.

My weekend project is to build a little robot that can detect and track players and shots made in a basketball game.

Detection and tracking need not be real-time (though it would be ideal).

The goal is to understand if a stereo camera would help improve speed and accuracy of tracking players and shots made, or if a solo camera is sufficient.

Would the depth information of a stereo camera simplify the task? Or would a solo camera, because of assumptions you can make about the basketball scene, be equally as accurate (and therefore preferable since less hardware is required)?

Assume the camera must track activity at both baskets, and is 100 feet from the furthest basket (i.e., at the other end of the court).

Specific Questions:

  1. Could a stereo system let you more quickly detect human bodies and basketballs (i.e., spheres with ~9" diameter) because you could detect volumetric shapes whereas you can't with one camera?

  2. Could shot detection be more accurate and faster because you can measure depth of the ball (i.e., only trigger analysis when ball is around same depth as hoop)?

  3. Would hoop detection be easier because of depth information?

  4. Obviously, stereo cameras require higher computational load at a nominal level, but could algorithm simplifications (e.g., ignore non-spheres for ball detection) allowed by depth information actually reduce overall computational load?

  5. Argument for solo camera: since the robot only operates against basketball scenes, you can make assumptions like there will be at least one 10-foot basketball hoop. Since you know the height of the hoop, would that allow you to perform depth measurements as if you had a stereo camera?

The paper "Real-Time Tracking of Multiple People Using Continuous Detection" by David Beymer and Kurt Konolige suggests a stereo camera would offer advantages over a solo camera, confirming some of the hypotheses here, but the paper is also very old (1999). Is player & shot tracking better with a stereo camera, or are solo cameras equally as effective?

  • $\begingroup$ You'll need a pretty nice stereo setup (wide baseline) to get anything reasonable at 100ft at the size of a basketball. I'd start monocular since you can immediately use some of the existing tracking solutions available, like the tracking module in OpenCV 3.1 (in the contrib repo). $\endgroup$ – abarry Nov 24 '16 at 17:36
  • $\begingroup$ @abarry Thanks for commenting on Thanksgiving, Andrew! When you say wide baseline, how wide is wide? Would 6-12 inches be wide enough? $\endgroup$ – Crashalot Nov 24 '16 at 21:11
  • $\begingroup$ Depends on what cameras you use and how stiff you can make the mount, but yes that should be enough. $\endgroup$ – abarry Nov 25 '16 at 6:22
  • $\begingroup$ @abarry thanks for the fast response. let's say the mount is very stiff, i.e., similar to a VR rig. the lens/sensors are 6 inches apart. could you elaborate on what you mean by "depends on what cameras?" thanks again! $\endgroup$ – Crashalot Nov 25 '16 at 8:02

100 feet seems too far given the occlusions (like player's hands masking or player's body covering the ball while dribbling). So, I would suggest multiple cameras with linear Kalman tracking (According to my experience this works really well when the problem involves practical limits; Like humans' running velocity is fairly predictable; Dribbling rate is predictable etc) and then adding sophisticated trackers like deep-nets if necessary.

If two cameras are used near two hoops, programming will be significantly simplified regarding the scoring. However, for tracking (3D positional information of the ball), we have two sources of information: Players' movements and ball's movement. We can use multiple cameras like this https://pdfs.semanticscholar.org/fb69/2c04d7720a68c49efb1cc4608b6fc90e4ca0.pdf and detect people like this http://onlinepresent.org/proceedings/vol16_2012/6.pdf .

We can use detection and tracking of people (with second Kalman filter and other sophisticated algorithms can be added later if necessary) for two reasons:

  1. We can detect all the elements on the ground and subtract people; This gives us ball in most cases.

  2. We can use conditional state-estimate probability to figure out the probability of the states of the ball when it is occluded. (For example, players who are near the ball are generally frenzied and they tend to be crowded near the ball and they will generally be running at a faster rate)

+1 for awesome question.

EDIT: 100 feet with stereo vision is difficult; I am referencing my previous answer here https://robotics.stackexchange.com/a/11856/15014

(Basically, off-the-shelf cameras do not provide such information and associative learning can give out some information for upto 50 metre. So, there must be a great training information as the machine 'learns' just that)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.