I conducted Dive #4 for my Yukon photogrammetry project on Sunday, 6 November. The model is now close to 5,000 photos.
I spent all week working on the model build process. I went down a lot of rabbit holes and my computers were working overtime. I’m definitely pushing the limits for the current hardware I have. However, I was finally able to get a model built and it is getting really good.
Here is a quick preview of the bridge area:
This post will cover details of the dive itself, then go into what is probably too long of a discussion with details of the trials & tribulations of getting a good model built, and then finally screenshots of the model and a link to the on-line model.
For those readers who don’t want all the details or read about how I abused my computers for a week, skip ahead to the end.
We had really unbelievable conditions on the dive. It was probably the best visibility I have ever seen on the Yukon and it was unexpected since we had high winds and swells just a couple days prior. Just to give readers an idea, here are some photos I took for the model:
Quite honestly, you would think that those photos were taken on a wreck in Southern Florida given how good the visibility is. My dive was 1 hour, 34 minutes and I took 1,927 photos!
There are quite a bit of details in this section. They will hopefully help others that are interested in photogrammetry. Others can skip to the next section with screenshots of the model.
My typical workflow for this project is that I take 1000+ photos, add them to the existing aligned photos from previous dives, and then I run the alignment process use “low” accuracy given how much overlap I have in the photos and the number of photos. It also allows it to run in a “reasonable” amount of time.
After Dive #4, I added my 1,927 photos and ran the alignment process.
Total number of photos in the model at this point was 4,842 (2915 perviously aligned and 1927 new photos). The alignment process took a really long time (I think 9 or 10 hours). The good news is that the cameras all aligned. The bad news is that I had some “ghosting” issues to resolve. Here is the sparse cloud after the first attempt:
This can happen due to the “low accuracy” alignment. Just a few things can be off and then it mis-aligns long lines. Trust me — the starboard bottom edge does NOT go through the wreck!
What do you do when a “low accuracy” doesn’t align? Obviously, run a medium accuracy alignment. The problem with that is the estimated runtime for the alignment process was two days! And that is a “conservative” estimate and usually increases.
My next step was to start from scratch but align using “low” quality to see if I “wipe the slate” if it will help. This attempt actually worked and resulted in a mostly acceptable model. The alignment time was quite long (I can’t remember exactly but I think it ran overnight). The good news is that the photos aligned but there was other “funky shit” going on around the bridge area (white circled area). Here is the sparse model:
I decided to build a model from this version just to see what it looked like. Below is the solid model that got built with that same area circled but from a different angle.
Now I know exactly what happened. If you look closely, there are bunch of “pipes” that stick out. I had taken a lot of photos of those pipes because aligning small, sharp objects is really hard. What happened is that the didn’t align correctly on low accuracy mode so it skewed a whole set of photos. Here is a closeup of that area:
At this point, it is relatively easy to delete the mirrored, incorrect “blob” especially since it isn’t connected to the model and I had planned on leaving it at that stage until the next dive.
But, I just couldn’t let it go…
My next attempt was to break down and try to figure out how to run a Medium accuracy alignment without letting my computer run for 2-3 days without even know if it would work!
I decided to run a Medium alignment for all the photos on this latest dive (1900+ photos). The alignment process ran overnight and took about 20 hours. The estimate was 21-22 hours. The point calculation took about 1 hour (from memory), and the summary showed almost 17 hours for matching the points and a little under an hour to align the photos.
The result was good and it showed that the pipes had been correctly aligned. Here are some screen captures of the sparse cloud after the alignment:
Now the really fun gets going….
Given that the photos took 24 hours to align on Medium accuracy, adding the rest of the photos would take another day or more (matching the two day initial estimate for the whole data set). I started to consider buying a fully loaded Mac Studio computer to add some serious processing power to my problem.
I started down the hardware path and posted a question to the Metashape discussion forum about my hardware woes and to get some advice. At the same time, I came up with another strategy:
Metashape has a “Reduce Overlap” function. I take more photos than strictly needed because overlap is generally good and sometimes some photos are out-of-focus, etc.
My new strategy was to Align the photos with Medium accuracy, then build a Mesh with Low Quality (you need to do this step in order to calculate which photos can be reduced), and then reduce the photoset with a minimum of 5 photos for each point (the default is three). Then I would add photos from a different dive and align — but only with the “necessary” photos to reduce the calculation time.
At the same time, I was doing my research into new hardware and somebody asked me what settings I was using for the Alignment. It turns out I was using a “Key point limit” of 40,000 and a “Tie point limit” of 10,000. I’m honestly not sure when I set those number so high because they are much greater than the default. It essentially means that for 5,000 photos, the computer needs to compare 5,000*5,000*40,000 points. That is a massive number.
My new method of reducing photos to align and reducing the Key point limit to 10,000 in the middle of my process made a difference. I kept iterating through my process and had the following results:
- Dive 4 + 3
- 1927 Photos + 988 Photos = 2915 Photos
- Low Quality Mesh took 77 minutes
- Reduce Photos with 5 cameras per point
- 989 cameras disabled
- Add Dive 2 photos
- 733 photos added
- Matching took 15.5 hours
- Alignment took 1 hour
- Low Quality Mesh took 22 minute
- 1507 camera disabled (out of 3648)
- Add Dive 1 photos
- 864 photos added
- Changed alignment parameters
- Matching + Alignment took about 3.25 hours
- Built a mesh in about 12 minutes
- 2350 photos disabled
- Add photos from my Yukon Gun project
- 359 photos added
- Ran the mesh, reduced photos
- 2799 cameras disabled (out of 4871)
Note: The “cool” thing about the approach is that alignments are quicker AND the disabled photos stay aligned so you can use them when you build the model.
Final Dive 4 Model
After the above process, I ran a model with the 2,800 photos disabled and it didn’t look great (for my own reference later, this was titled dive4-plus-v3c). This makes sense but I saved that model because when I got to align photos from Dive 5, I want those photos to stay disabled.
I then created a version (reference: dive4-plus-v3d) that had all the photos enabled. Before I build the the rest of the model, I also ran a Metashape function to estimate the “quality” of the photos. I then disabled about 140 photos that were less than a 0.5 quality (this is the recommended minimum).
There are 4,728 cameras aligned and enabled in this model. I don’t know the cumulative processing time for alignment. I would guess about 24 hours. The depth maps took 3.5 hours, the dense cloud took about 3 hours, and the rest of the build process took about 6.5 hours. Therefore, I would estimate the total processing time at about 1.5 days.
Below are some screenshots of the model. Note how well the pipes turned out.
Below is a link to the online model:
I’m planning a fifth dive soon. I will like start near the stern where I have a good “anchor point” and then start working on the rest of the starboard side of the wreck. I’m not sure if I will complete the process with that dive or if it will need a final, sixth dive. Stay tuned….