After struggling with all the hidden curves and shapes on this car, and with blueprints that didn't really stack up with reality in many places, I decided I wanted to just spline cage model the car and use photomatched cameras and photo backgrounds in my 3D application to achieve that.
But after struggling with all the hidden curves on this car that wouldn't even show up in spline cages, I decided to just have a bash with full on photogrammetry capture!
I've never used this approach before, so getting really sharp results was key to getting a really great and accurate model, so I spent many hours shooting and testing.
I think I did about 30 different tests with things like dusting the car, various lighting techniques, wrapping in paper, adding feature points (tape marks all over the bonnet), and about 5 different full car sets before refining the process to the point I was happy modelling off the data I got.
Also it seems a few people are using photogrammetry for cars a bit more, so I thought I'd share the techniques I'd found worked really nicely for capturing my Z4!
So I'll just start to babble and hopefully it's all making sense to those familiar with the technique. For everyone else then hopefully the pictures will be of interest
Firstly, the camera I use is a Ricoh GR with 16mpx. I also have a circ polariser stuck on there (literally with black-tack ). It's on a very hefty tripod so I can shoot away for long exposures without issue, or even adjust things on camera between multiple shots (will explain later) and not worry too much about movement.
Another little detail worth mentioning for those who saw it stuck on there, is my little radius gauge. Very handy for measuring radius of panel edges and bevels etc. No need to guess when you can measure, since even these photo scans or laser scans can't capture bevels all that well.
Here is an image of the car so far which shows mostly test panels and parts to check the method works nicely.
So on to how I captured the imagery.
Those familiar with Agisoft Photoscan will glean a lot from the screenshots and what I've done and the results I've got.
So for this part of the car I took 128 shots. I just used a generic vertical block on the polariser.
Each shot is taken in RAW format. They're then batch converted through Photoshop RAW, levels adjusted and so on, then exported to TIF format for Agisoft Photoscan. TIF preserves all the details and provides excellent base imagery to reconstruct from.
I think they're all shot at F8 so as deep a DOF as possible without suffering from blurring due to photon issues on the sensor (you get more DOF at higher f-stop settings, but also more noise and blur!)
I'm using a feature on the camera which captures as wide a dynamic range as possible by using a higher ISO (320 vs 100).
I'm using manual focus and keeping the camera a very specific distance from the car, so as much of the surface in shot between images is in focus.
If you use auto-focus even on this type of camera (fixed aperture), the frame of the shots and thus the calibration of the camera in the Photoscan software will change.
Since Photoscan assumes all shots you provide in a chunk are based on identical camera properties, this can cause inaccuracies. So if you change focus, all shots using a different focus need to be in a different chunk and aligned later.
And the key to my results being so good is good old British weather! Rain and overcast skies!
As you can see the rain drops act as a nice static (be careful here as they can evaporate in low humidity or move if it's windy or rainy, so work as fast as is possible) reference all over the cars surface. However probably due to some optical properties they don't really appear to show up as large humps all over the scan unless you only capture the features from steep angles.
So if you shoot generally 'flat' through the drops then they reconstruct flat.
To get good on-car beading you need to wax the car.
Also small marks, tar spots, debris etc act as features to track if you have a good enough camera up close.
Here is a good example of an image.
So sharp details all over the surfaces facing us, good contrast of the features to track.
Here is a less good example of an image.
This is bad because the steep elements of the car bodywork are now reflecting the gravel floor, and that results in the missing data you can see in the whole car shot above.
These reflections basically break the photogrammetry process, and reconstruct as if the panel goes under the car parallel with the gravel surface.
The water drops present don't really stand out against this gravel reflection backdrop.
So to fix this problem I had to re-shoot the side skirts another time. This was a good test to see how nicely I could reintegrate new chunks of car scan with my original one.
So I took a line of shots along the skirt another day. No water drops this time. But I used a polariser set very carefully to remove as many reflections as possible, and didn't go beyond about 45 deg angle with the surface.
Beyond 45 deg diffuse reflections are still significant, but with the polariser under 45deg you seem to be able to cut most of them out.
An interesting thing I thought would work and was a primary reason I bought the polariser, but didn't use in this project, is taking multiple shots from each cam position.
Rotate the polariser for each primary surface chunk that is reflecting the environment.
Paint and mask each chunk in/out in Photoshop to get a really low environment reflection image to feed into Photoscan.
The reason I didn't do this became clear on a basic test shoot. The Ricoh GR lens body moves relative to the sensor. Mounting the polariser on it meant it moved between shots! Arghh!
I did try build a small mount to hold the polariser apart from the lens body but it wasn't working so well.
So if you want to try that technique, think about a rigid mount to the tripod mount for the polariser, not one where you have to touch anywhere near the lens!
You can see here that the reflections are well controlled here with just a basic single polarising angle but it's also a flat ish area too.
Also some dirty marks on the skirt act as nice tracking details. Also at this close range, tar spots and other feint features are trackable which all helps with a good reconstruction.
But after struggling with all the hidden curves on this car that wouldn't even show up in spline cages, I decided to just have a bash with full on photogrammetry capture!
I've never used this approach before, so getting really sharp results was key to getting a really great and accurate model, so I spent many hours shooting and testing.
I think I did about 30 different tests with things like dusting the car, various lighting techniques, wrapping in paper, adding feature points (tape marks all over the bonnet), and about 5 different full car sets before refining the process to the point I was happy modelling off the data I got.
Also it seems a few people are using photogrammetry for cars a bit more, so I thought I'd share the techniques I'd found worked really nicely for capturing my Z4!
So I'll just start to babble and hopefully it's all making sense to those familiar with the technique. For everyone else then hopefully the pictures will be of interest
Firstly, the camera I use is a Ricoh GR with 16mpx. I also have a circ polariser stuck on there (literally with black-tack ). It's on a very hefty tripod so I can shoot away for long exposures without issue, or even adjust things on camera between multiple shots (will explain later) and not worry too much about movement.
Another little detail worth mentioning for those who saw it stuck on there, is my little radius gauge. Very handy for measuring radius of panel edges and bevels etc. No need to guess when you can measure, since even these photo scans or laser scans can't capture bevels all that well.
Here is an image of the car so far which shows mostly test panels and parts to check the method works nicely.
So on to how I captured the imagery.
Those familiar with Agisoft Photoscan will glean a lot from the screenshots and what I've done and the results I've got.
So for this part of the car I took 128 shots. I just used a generic vertical block on the polariser.
Each shot is taken in RAW format. They're then batch converted through Photoshop RAW, levels adjusted and so on, then exported to TIF format for Agisoft Photoscan. TIF preserves all the details and provides excellent base imagery to reconstruct from.
I think they're all shot at F8 so as deep a DOF as possible without suffering from blurring due to photon issues on the sensor (you get more DOF at higher f-stop settings, but also more noise and blur!)
I'm using a feature on the camera which captures as wide a dynamic range as possible by using a higher ISO (320 vs 100).
I'm using manual focus and keeping the camera a very specific distance from the car, so as much of the surface in shot between images is in focus.
If you use auto-focus even on this type of camera (fixed aperture), the frame of the shots and thus the calibration of the camera in the Photoscan software will change.
Since Photoscan assumes all shots you provide in a chunk are based on identical camera properties, this can cause inaccuracies. So if you change focus, all shots using a different focus need to be in a different chunk and aligned later.
And the key to my results being so good is good old British weather! Rain and overcast skies!
As you can see the rain drops act as a nice static (be careful here as they can evaporate in low humidity or move if it's windy or rainy, so work as fast as is possible) reference all over the cars surface. However probably due to some optical properties they don't really appear to show up as large humps all over the scan unless you only capture the features from steep angles.
So if you shoot generally 'flat' through the drops then they reconstruct flat.
To get good on-car beading you need to wax the car.
Also small marks, tar spots, debris etc act as features to track if you have a good enough camera up close.
Here is a good example of an image.
So sharp details all over the surfaces facing us, good contrast of the features to track.
Here is a less good example of an image.
This is bad because the steep elements of the car bodywork are now reflecting the gravel floor, and that results in the missing data you can see in the whole car shot above.
These reflections basically break the photogrammetry process, and reconstruct as if the panel goes under the car parallel with the gravel surface.
The water drops present don't really stand out against this gravel reflection backdrop.
So to fix this problem I had to re-shoot the side skirts another time. This was a good test to see how nicely I could reintegrate new chunks of car scan with my original one.
So I took a line of shots along the skirt another day. No water drops this time. But I used a polariser set very carefully to remove as many reflections as possible, and didn't go beyond about 45 deg angle with the surface.
Beyond 45 deg diffuse reflections are still significant, but with the polariser under 45deg you seem to be able to cut most of them out.
An interesting thing I thought would work and was a primary reason I bought the polariser, but didn't use in this project, is taking multiple shots from each cam position.
Rotate the polariser for each primary surface chunk that is reflecting the environment.
Paint and mask each chunk in/out in Photoshop to get a really low environment reflection image to feed into Photoscan.
The reason I didn't do this became clear on a basic test shoot. The Ricoh GR lens body moves relative to the sensor. Mounting the polariser on it meant it moved between shots! Arghh!
I did try build a small mount to hold the polariser apart from the lens body but it wasn't working so well.
So if you want to try that technique, think about a rigid mount to the tripod mount for the polariser, not one where you have to touch anywhere near the lens!
You can see here that the reflections are well controlled here with just a basic single polarising angle but it's also a flat ish area too.
Also some dirty marks on the skirt act as nice tracking details. Also at this close range, tar spots and other feint features are trackable which all helps with a good reconstruction.
Last edited: