Also, the OS too is perhaps problematic. If I was on Windows, it would be a lot easier to find a working quick solution, especially if I was willing to buy it, but I really prefer Linux so much more, well, to be frank, the issues i have with Windows are a real joy killer for me.
Actually nope. Yes, you could get pre-compiled code. But that's all. Building anything computer vision-related on Windows is an horrendously uphill battle because most computer vision people use Linux for development due to its better development tools and libraries. Just try to compile things like OpenCV or PCL in Windows and you will see what it takes ...
Janoc, here is what I think I am going to do for flat featureless walls. temporarily put up some targets printed on paper which I have made which will add some detail, basically a 10 cm square with a cross in it. Masking tape doesn't stain the walls. I'll only need to do it once and I can also use tape measurements to get the size exactly right.
Sorry but that's nowhere near enough unless you plaster the entire wall with these markers. Worse, they need to be distinct from each other because otherwise the SLAM algorithm gets confused. E.g. if all the corners of your markers look the same because they come from black squares on a white background (or your crosses) and there are no other features around, it is completely useless - the algorithms using features such as SIFT or ORB won't be able to distinguish between them and will get lost. Basically what works best is something that is almost random, with no apparent structure and repetition in it.
I think that doing this I should be able to get a better 3D model than I could do myself with the only just beginner Blender modeling skills that I have. (Its only been quite recently that I have been able to get accelerated 3D Blender to run on my machine, which makes a huge huge difference in the learning curve, I realize, so I am really just a beginner.)
Seriously, this is a completely ridiculous way of trying to build a model of a room. That's a bit like needing to travel to Tokio and you started with chopping wood to build a plane while trying to learn aeronautical engineering from a textbook because you don't want to learn how to buy a plane ticket.
Even if you manage somehow to obtain a scan, the 3D scans are
not usable directly. So you will need to learn to use Blender (or whatever other tool) to actually rebuild the 3D models from them. There is no magic solution where you just take a bunch of pictures and a ready to go 3D model comes out. Not even when using the expensive commercial tools (regardless of what their marketing brochures show).
Also, if you don't have a lot of RAM and a powerful GPU, don't even bother - all these algorithms need both in order to get the processing done in a reasonable time. Large, dense scans can take many hours to process even on a powerful machine.
My goal is to create a 3D model of my entire interior. This will be especially useful in the work areas, in getting things right in a fairly small space.
Why? What is that model going to be useful for (apart from having something to look at) that you couldn't achieve by taking a bunch of measurements and making a plan?
They were able to do a rapid scan of houses by driving through these areas and do a very high quality rapid damage assessment based on that 3D data.
Yes and those devices cost hundreds of thousands of USD ... Also a typical LIDAR like the Velodyne mentioned before doesn't really produce useful scan - it is meant for navigation/collision avoidance, not for dense mapping of the environment. There is also a huge difference in resolution/accuracy - for a navigation system 10cm or even a meter of error is no big deal (and considered "dense" already) but that is an enormous deal if you are actually trying to take accurate measurements for construction purposes.
What these guys were likely using were laser scanners, such as machines from FARO. Those can scan huge areas and go down to millimeters of accuracy. Just if you need to ask about the price you can't afford it.
When it comes to SLAM you need to understand that while SLAM stands for "simultaneous localization and mapping", the emphasis is on
localization. The mapping part is often only for the machine to be able to "find itself" in the space by comparing what it "sees" right now with what it has seen in the past, not to produce an usable 3D model. That's the case of most of the published SLAM algorithms, such as the mentioned DTAM, Monoslam, PTAM, etc. Also keep in mind that these are research systems, often unable to properly do loop closure (to recognize that it has returned to a point it has been to before and fuse the data), don't manage memory in a meaningful way so they will be limited to short runs, etc.
Someone has also mentioned visual odometry - that is actually SLAM without building any map at all. The advantage is that it is much faster and needs much less memory, the disadvantage is that once it "gets lost", it has no way to recover. This is e.g. what Apple has in their ARKit.
Systems that focus on actual model production work differently because the emphasis is not real time performance but resolution and accuracy. The working principle is roughly the same but the actual math and the way the processing is done is often very different.