I’ve been playing with ODM for creating 3D models from gopro max still images. It works quite well if you have enough overlap between images (particularly now that ODM has the new “sky-removal” option), although you have to walk slowly since the minimum capture interval on the GoPro Max is 2 seconds. You can accomplish the same thing with video, but this requires extra processing steps using ODMax to pull the frames and add GPS to them, so if you prefer to walk slowly over adding post processing steps, the 2-sec interval timelapse works quite well and the images are generally higher res and better quality (said with a bit of hand waving).
However, one issue that arises is that the bottom of the image will always have your camera mount (or bike helmet) in it as you can see here:
My first effort to fix this was an analog hack where I cut a piece of cardboard in the shape of my hat and the camera mount and mounted it under camera. This worked reasonably well but still leaves artifacts as you can see here:
The better way to do it is with masking… since the camera mount is fixed you should only really need one mask image, but ODM requires a mask for each image. To get around this I wrote a code snippet that takes a single mask image and copies and renames it correctly for each image in your dataset.
Below is an example of the same model before and after masking (click on text to view models on sketchfab).
So this works surprisingly well!
But note that you may still get some artifacts if there is non-standard movement under the camera or do something silly like putting your hand on the camera and then not deleting that image from your dataset…
Here is the code snippet (link)