It is amazing that 3D models can be created from regular (uncalibrated) pictures. This link shows some nice examples of how uncalibrated images can be used to make 3D models.
Our approach is harder, but our results are better. We precisely calibrate our cameras, and we use the calibrated pictures to make 3D models. As our calibration improves, our 3D models improve. The combination of better calibration and sub-pixel processing has allowed us to create models that are accurate to within 1 or 2 millimeters at 10 feet. Also, our new color processing routine adjusts lighting and allows the colors in different 3D scans to blend better. More accurate scan geometry and better color control results in better looking 3D models. The video below demonstrates our latest improvments. The complete 3D model in our video consists of 13 scans from 13 different locations.
I believe that we have tackled the hardest part of the problem: calibration. Now that our geometry is correct, we can focus on making our 3D models attractive and easy to work with. We will continue improving the system in the following three ways:
1) FASTER HARDWARE
We are finalizing the Proto-5B design. The current system takes about 7 minutes to create a single scan, and the next iteration of our scanner will capture the imagery at least 20 times faster. ETA for this system is April 2016.
2) IMPROVED PHOTOREALISM WITH POST-PROCESSING
Post-processing imagery is normal. Photoshop is often used to clean up 2D pictures, and many 3D programs can clean up our 3D data. We are evaluating several programs, and will make our data work with the best solution(s).
3) INCREASED COMPATIBILITY WITH EXISTING 3D STANDARDS
Make it easier to move our data to other software like Unity, Meshlab, SketchUp, and possibly Matterport. Being compatible with Unity will make us compatible with headsets like Oculus, and that will allow a photorealistic 3D VR experience.
Here is an example of our latest results after a few more weeks of tuning the noise reduction controls. Now that most artifacts and distortion are sufficiently reduced, we will begin merging scans to produce larger models.
We have steadily improved our scanning results over the last 6 weeks by modifying hardware, writing new software, and tuning over a dozen variables. The video below demonstrates the effect of our enhanced noise reduction:
Low noise in 3D models is important for two reasons:
- Low noise 3D looks better.
- Low noise 3D models are easier to compress & display. In many cases smoothing should allow us to reduce a scan to less than 1% of the original size.
Noise reduction & smoothing has been around for decades, but there is a delicate balance between appropriate smoothing, and over-smoothing which can make objects look like jelly beans. Our past experience with generic smoothing routines has been disappointing because they often round edges & eliminate important details.
Why Our Smoothing Is Better Than Other Options
Instead of applying generic smoothing filters to our data after the 3D data has been created, we apply smoothing during the creation of 3D data. We can achieve an optimal level of smoothness because our smoothing software has intimate knowledge of the scanner hardware and configuration. Stereo scanners like ours can be accurate to a fraction of a millimeter up close, but precision falls off as the distance from the scanner increases. Our smoothing routines use this fact to smooth our 3D data with more finesse.
Here is an early 3D scan from our latest prototype scanner. EARLY is a key word here, because our scanner has only been operational for a couple of weeks. During the last year my team has completely upgraded the scanner hardware including cameras, lenses, chassis, and calibration tools. We have also ported our software from from Windows to Linux and from CUDA to OpenCL. We have weeks of fine-tuning and calibration that still needs to be done, but we feel that the early results are worth posting. The new system is called Proto-5A, and below lists the most significant improvements over its predecessor Proto-4F:
- Produces higher resolution 3D scans
- Scans 10x to 20x faster
- Uses less power
- Scans with nearly 100% reliability
Below is a first test example of Proto-5A’s output. I’ll upload better versions as they are produced.
This was a risky upgrade of both hardware & software. While it was our 13th hardware iteration, it was our first major change in nearly 5 years. Our plan was sound, and we managed to avoid the Second System Effect that can kill a project that is too aggressive. Instead of adding unnecessary bells & whistles, we refined proven features and eliminated compromises and inefficiencies that had worked their way into this 12-year project. The result of our efforts is clean, fast and efficient scanner.
We have proven the Proto-5A approach is viable, and we are motivated to begin making plans for Proto-5B: a smaller and lighter version. Proto-5B will be low risk because it will use 90% of Proto-5A’s software. Most of the effort will go into designing a new circuit board that will integrate all of our current off-the-shelf boards. This new board will improve performance and reduce system size, weight and cost. We have the necessary skills to design and build the board, but collaborating with a more established team would also be attractive.
Now that the bulk of the 3D-360 R&D has been completed, we have begun the search for a partner who is interested in adapting the system for a specific market (or markets). Potential 3D applications include photorealistic architecture scanning, insurance or forensic scanning, content creations for training or video games, content creation for head mounted VR such as Oculus, and robotic visions & navigation. VR & robotics are exciting options, but we will pursue whatever market makes sense.
Below are our objectives for the rest of 2015:
- Find a partner interested in moving the Proto-5x concept forward. The ideal partner could support our development plan, or we could jointly develop a new plan. The 3D-360 IP is valuable, and we need a partner willing to help defend our international 3D-360 patents.
- Expand the capabilities of our 3D Scanning process. Our scanner can be configured to produce high resolution photorealistic scans in about 5 minutes, or it can produce high-speed low-resolution scans at 10 to 60 Hz (we haven’t benchmarked high-speed yet). We will spend the summer developing routines to enable & refine these features.
- Collect feedback from potential users/customers by participating in online 3D communities. We will solicit market feedback by posting downloadable 3D models. The market feedback will help shape our future development.
This year’s enhancements to the image processing routines in our stereo scanning software has improved processing speed and 3D model accuracy. Comparisons between our current results and those from 9 months ago show that we have reduced the magnitude of one type of geometric error in our 3D scans by a factor of 2 to 4, and we project that future software and hardware enhancements will allow us to cut the noise in half at least 5 more times. Finding/developing a benchmark to clearly reflect these results has been tricky.
In the previous post we compared scans by superimposing them on each other and then comparing the non-linearity of flat surfaces. Because each surface should be flat, any deviation from a straight line represents a scanning error. We used standard deviation analysis to determine that our improvements had cut the error in half for this specific test, but that one number doesn’t tell the whole story. What other metrics and ratios should we use to judge the quality of the 3D scans that our scanner produces?
Until we come up with a more useful metric to quantify the relative quality, we will use human perception to evaluate the quality of scans. The video below shows the results of our last 9 months of software enhancement.