Sports action tracking + pan/tilt

Hey guys, I’ve read up on a lot of motion tracking projects on this forum which only partially suit my needs. What I’m looking for is more about action or momentum tracking of a sports game (in my case kids soccer) and not single person tracking. This would be similar to 2 products on the market, Veo Cam2 (by and Pix4team (by The first utilizes its own 2 4k cameras and uses AI to track action and digitally follow this action. The second product, Pix4team, is more what I’m thinking OpenMV could achieve. It has a 180deg camera that tracks action with a pan/tilt mount for a video camera. I believe it also uses this as an input for the AI.

Here’s my idea which does not involve feedback from the pan/tilt camera but does require a near 180deg lens: If the camera is mounted at the same fixed position and height above the field, I should be able to map a pan/tilt position to the x-y pixel grid of the camera. With this, I would use the AI to detect the center of action (frame differential, bulk movement?) then it would use the calibration map to set the pan/tilt position. This would move the video camera mounted to the pan/tilt mechanism to record the center of action.

K, the OpenMV Cam can do that. What do you need to know?

Good to know. I just wanted to make sure there was a reasonable chance before I undertook the project.

From what I gather, I’ll want to use in memory advanced frame differencing along with blob tracking. I won’t have the hardware for a few days to experiment, but until then, I have a few questions:

  1. How are all blobs reported? I believe I would want to get an area weighted average centroid.
  2. Another option could be to just perform auto tracking where the OpenMV camera also moves with the pan/tilt. Do you think this would you feel perform better vs. that keeping the OpenMV camera static with a full 180 view of the field and only pan/tilt the video camera? I guess the risk is if it lost track of the movement it would miss the action until it came back into frame.


  1. Search for blob on our documentation. There’s a centroid value returned.
  2. The camera can do this. You have to write your own PID control.