TLDR: New AI experiment based on “lookahead” and your feedback: https://youtu.be/rV-og4xv1Xc
Thanks for the idea,
I had already attempted various tricks above, including Dead zone.
But by nature the tracking was purely reactive. So any attempt at smoothing and “dead” zoning would result in increased latency. And minimising latency results in increased jitter (as it’s constantly reacting to the smallest changes).
So the issue, given my understanding, has always been fundamental. The AI should not be purely reactive. It should either be very good at predicting play and understanding the game (like real cameramen), or it should use what I call “lookahead”. That’s most probably what Veo does.
Look here Veo Go Footage - YSE Champs. - YouTube at second 11, the camera starts panning before the goalkeeper played the ball.
The AI has access to future frames (about 1-2 seconds) and decides on the panning given where the ball and action is actually heading.
Once that’s implemented, then things like smoothing and dead zone become more interesting.
I’ve had this intuition for quite a few months already, but implementing it efficiently in the pipeline turned out to be very hard.
Here are some of the attempts: Unified lookahead buffer + bidirectional smoothing, Remove CPU lookahead
I have thought about it some more, and I am now confident I can achieve it pretty soon.
That being said, I first wanted to validate this idea, and ran the detections first, separately, computed the AI Tracking WITH 3 seconds lookahead, and then fed this to the software to pan accordingly. Essentially mocking how it would really look like once correctly implemented.
And imo the results are extremely promising.
Now with @codebox ‘s footage. The stitching is not great because we haven’t found appropriate lens profiles for the phones he was using, but that doesn’t bother the AI too much.
Can we make it horizontal only as suggested by @Matias_Sanchez_brea : YES. Can we lock/decide on the zoom range: YES. Now why I insist on zooming and pitching, is because I want it to feel like a real cameraman filming, and not like a synthetic motion. But at the end of the day, the app will give the user enough control to customise the tracking as they wish.
What do y’all think?