Yeah. The thing that made me “get” quaternions was thinking about clocks. The hands move around in a 2d plane. You can represent the tips position with just x,y. However the axis that they rotate around is the z axis.
To do a n dimensional rotation you need a n+1 dimensional axis. So to do a 3D rotation you need a 4D axis. This is bassicly a quat.
You can use trig to get there in parts but it requires you to be careful to keep your planes distinct. If your planes get parallel you get gimbal lock. This never happens when working with quats.
The solution for this is usually counter training. Granted my experience is on the opposite end training ai vision systems to id real objects.
So you train up your detector ai on hand tagged images. When it gets good you use it to train a generator ai until the generator is good at fooling the detector.
Then you train the detector on new tagged real data and the new ai generated data. Once it’s good at detection again you train the generator ai on the new detector.
Repeate several times and you usually get a solid detector and a good generator as a side effect.
The thing is you need new real human tagged data for each new generation. None of the companies want to generate new human tagged data sets as it’s expensive.