3d Photogrammetry with 'off the shelf' consumer hardware

Having to move from being a diver capturing 3d photogrammetry data with large mirrorless DSLR cameras to a ROV has certainly been somewhat of a steep learning curve.
For many years I have run photogrammetry projects that push the capabilities of ‘off the shelf’ consumer gear as opposed to buying pro survey grade kit specifically designed for the job.
Replacing me as the camera platform to a ROV as the camera platform has certainly raised some issues that I have had to think hard about overcoming.
A quick example of one of the projects I was involved with as a diver, cataloging the wrecks of Truk Lagoon

As a diver I used full frame DSLR cameras with strobe lighting. The beauty of strobe lighting is that it freezes the scene in a fraction of the shutter speed, giving beautifully crisp images. Strobes also offer huge endurance for the battery size. Unfortunately strobes cannot really be pre-set and for optimum results, require certain tweaks to power and position depending on water and lighting conditions - so not ideal for remote shooting. My Canon R6 mk2 is a brilliant camera for photogrammetry data capture, though unfortunately the remote softwares do not allow for short enough interval shooting.
Though I have looked into purpose built ROV stereo cameras, I have preferred to look at the consumer level hardware, namely GoPros. I have looked at all of the top end action cameras, but decided on GoPro as they offer “Timelapse photo” shooting - something the Insta and DJI do not. The GoPros also have a remote that can sync multiple cameras together, thus enabling image capture at the same time across multiple cameras.
My initial setup had me bolt 2 GoPro underwater housings on the sides of the BR2 frame with lens centres of 455mm and four standard divers video lights. This was great for nadir data capture and I was able to capture some very nice data, however being only nadir data capture, vertical faces were not captured - as can be seen in the initial test models

I use my ROV for both high quality video capture and photogrammetry, so the ability to easily change from one setup to the other is paramount.
I had already had made a bespoke payload skid for the big camera, so I thought about a payload skid for photogrammetry that would allow me to capture both oblique data and nadir data together, while also having a stereo pair. Made from HDPE - like the BR2 frame - my bolt on photogrammetry skid was created. At the front it has a bar that mounts a pair of GoPros which will rotate between 0 & -90 degrees orientation, I also have apertures below for multiple nadir GoPro cameras, as well as an aperture for my DVL.


The next thing to do was to test the setup. I took it to one of my local dive centres on two consecutive days and captured around 53,000 images of their submerged attractions across 4 dives - dive time was primarily limited by video light battery duration and secondarily by Gopro battery duration.
Processed with Agisoft Metashape Pro, I have created this 3d model of the area

It should be noted that I had dived the 22m area (deeper section of the model) only once, many years ago, so honestly did not know what was down there and where - I used the Omniscan to find and navigate between attractions.

I did try the surftrak mode in Cockpit for the scanning, alas it didn’t comply so I returned to manual control with QGC - that being said, I have a feeling these issues may be sorted now.

12 Likes

Awesome!

1 Like

This is insanely awesome, thank you for sharing it, I hadn’t even thought about doing something similar with my ROV, but you’ve given me alot of ideas. How are you controlling the gopros? Or are you just turning them on timelapse and letting them go for the duration of the dive?

1 Like

I use the Timelapse photo on the GoPros, then set them rolling by remote immediately before sending the ROV in.

1 Like

Most impressive! Well done sir!

1 Like