We are about to switch to a new forum software. Until then we have removed the registration on this forum.
I've been working on a way to use the sensors built in the latest GoPro to show the forces applied to the camera and use that info to also stabilise the image without using the built-in digital stabiliser. I finally found a way to extract the data, that I explain here: https://community.gopro.com/t5/Hero5-Metadata-Visualisation/Extracting-the-metadata-in-a-useful-format/gpm-p/40293
(It's tedious, I know). Edit: Now the data can be extracted easily. Just Uncompress this folder and drop your files on GPMD2CSV.bat (for Windows): http://tailorandwayne.com/GPMD2CSV.zip
So I want to share the code I'm using because I'm sure it can be improved and I want more people to use these data, so that GoPro cares about us and provides appropriate tools. I worked with my Hero5 Session, but if you own a H5 Black you will also have GPS data to work with. For the sketch to run, you need to extract the data in csv format as I explain in the previous link, then rename the video file as input.mp4. It is important to set the variable for the vertical field of view and the size() of the sketch, which should match the original file ratio. The sketch will stabilise the image based on the gyro and display info for the gyroscope (in RPM), accelerometer (G force) and temperature (Celsius).
Some issues I've found: - There is drift. Some of the functions compensate for it, but are quite imperfect. - Related to that. There is no compass sensor, so we can't have an absolute orientation to force a flat horizon or fully compensate the gyro drift. - For some reason very quick spins are not properly compensated. I would guess the sensor is not accurate at high angular speeds, but there might also be something wrong in my code.
Things to note: - I find the best way to use the stabilisation code to first optically compensate the image and generate extended margins. This is a good tutorial on how to do that (but this slows the workflow even more, of course): http://abekislevitz.com/gopro-tutorial-fisheye-removal/ - I think most customisable variables are explained, but let me know if they're not clear.
And here's the code. Please feel free to suggest improvements or alternatives.