Instructables
Picture of Multiple Raspberry PI 3D Scanner
3dscansetup.jpg
britt_shapeways.jpg

Hi,
I am a big Arduino and Raspberry PI fan and also love 3D printing. I wanted to be able to make a 3d model of my kids and started investigating how to build a 3d scanner. I found a lot of solutions out there, but the problem with most of them is that the subject would have to sit still for a while... well I think it would be easier for me to invent a spaceship that can fly to mars then inventing a solution for my 2-year old son to sit still :-( So none of those solutions where going to work.

I knew I had to come up with a way to instantly take many images at the same time. So I first started to research what cheap digital cameras exists. If I could find a cheap model, I probably could make an automated trigger system using arduinos. But then I would have all the images on many separate SD cards and I was not able to find a cheap good digital camera.

Then I noticed the Raspberry PI and PI camera combination. A "fairly" affordable module, that already is ethernet connected, so I could do the triggering of the cameras using the network and an easy way to download all the images to a centralized place. So my Project (and investment) started.

I bought for this project:
- 40 Raspberry Pies for this project and 40 PI cameras.
- 40 8Gb SD cards
- 1 single 60A 5v power supply to power all the raspberry Pies
- Led Strips and a powerful 12v power supply to power them on

As I am an impatient person I did not build the whole setup at once, I started of with 12 cameras, and was already seriously impressed with the results. So you DO NOT need 40 cameras, especially not if you just want to catch just the front of a persons face.

Here a result output:

UPDATE:
I have included a photo of Britt (the model in the video) being printed in full color by shapeways.

UPDATE2:

I finally was able to make a scan of my little son Hugo (2years old). It was made using 47 Raspberries and using my new softboxes with permanent lights. This allows me to shoot the images with no shadow. Can't wait to receive the printed model from shapeways :-)

 
Remove these adsRemove these ads by Signing Up
1-40 of 104Next »
jongipd2 days ago

Hi, It's a good project!

Could you send me the python codes for testing to smjong@gmail.com.?

Thanks

Would be cool if this project works out - https://www.indiegogo.com/projects/ivport-raspberr...
It would then be possible to reduce the cost of each 4-camera pole to about £100.

blurbbox1 month ago

Hi Richard,

Could you please help with the formatted code.

It gives an error saying indentation needed.

Regards,

Anant

dariocolombo2 months ago

hi Richard, nice job indeed. would be nice to see the raspberry and camera mount 3d model u used for printing as well .im very bad in 3d and i cannot use proficiently 3d software.thank you

azadeha3 months ago

Hello Richard, I wonder that in your latest build for the camera poles you didn't use a curvy structure. Didn't you find it very influential? Another question is that are you able to do a full body scan because I don't see any raspberry pi at the lower height.

Thanks

peterjaap4 months ago

I've seen this live (at the place where the main photo is taken)! It's awesome :) Here are two photos I took.

2013-10-12 14.23.22.jpg2013-10-12 14.23.32.jpg
fengkan5 months ago

I am trying a familiar setup. But I found it's very difficult to get pi cameras to take photos of same color. Some photos are too yellow, some are too white, some are too gray. I have specified the awb and exposure parameters. Have you met the same problems?

fengkan fengkan4 months ago

Any hint will be welcome, thank you!

peteyhockey94 months ago

Could you please email me the correct code to cpeterson19@gmail.com

Thank you so much

fgrande4 months ago
Hy, now everything is ok!! Now i'm waiting more raspberry to do adult scanning.
My problem is that, if my raspberry is connected to internet (in my case I’m using wifi adapter), the listen code start with no problem; if there is no internet connection python give me an error (see image attached).
My question is: Why is required an internet connection? Is it possible to modify the python code and disable this request?
the_anykey (author)  fgrande4 months ago

Hi,

The code assumes you have an local IP address to use as identifier for saving the images. When you say you have no internet connection, do they get an local ip address from dhcp? if not, you have to setup manual ip address on the raspberry

roscowillie6 months ago

getting closer. Substituted

<print 'ID: ' + ip4>

for < print "ID" ip[caret underneath]4 "-">

now I get:

<print "optons: "optio[caret underneath]n

SyntaxError: invalid syntax.

sorry to be so clueless. Noticed that maybe optons should be spelled options, however this is obviously not the syntax error. Tried single quotes same report.

the_anykey (author)  roscowillie6 months ago

The instructables page does not allow me to post the code correctly i noticed. Python needs idents for certain segments in the code. Send me a mail with your email and I will email you the code.

Richard,

I pm you with my email addressing regarding emailing the properly formated python scripts.

Thanks

John Ang

azadeha6 months ago

I can see you don't use green wall but it's interesting that in the first maker fair, there was lots of windows on one side and natural light was coming but it didn't effect your work negatively. When I was 3D scanning with Kinect, natural light wasn't good at all.

the_anykey (author)  azadeha5 months ago

Hi, I kinect works with infrared light. If you have bright sunlight, this "overwrites" the infrared light and therefor you will have issues with it. As we do not rely on infrared light, the more light we get, the better it is. Preferably all around, as we do not want to have shadows in our models. Today we are using a 11 softboxes all around to light the subject.

johnacsyen5 months ago

Dear Richard,

Where do you run the "send script"? Is it from a computer running the python application and then calling this send script? I assume this computer is in part of the network together with the Raspberry Pis.

Sorry for asking an obvious question but I am new to python.

Thanks for your help

the_anykey (author)  johnacsyen5 months ago

Hi, You can run the send script from any thing that is connected to the same network segment. I just use any of the raspberry system for it, but it can also be done from a PC or Mac

azadeha6 months ago

Richard as for the light, I can see in your newer version you're using 8 of those standing lamps. Do you really need so many? Every pair of them is at least $300, isn't it? LED strips were only for kid-friendly purposes, weren't they?

the_anykey (author)  azadeha6 months ago

I found that good lights is crucial to get good photos. I am shooting at 100ISO at 1/80th shutterspeed with my lights. Also you want to have lights all around to make sure there is no shadow in the images.

My lightboxes, which include 4x55watt special film studio lights cost about 100 euro each.

Richard, thank you for your quick replies. I guess your lamps are more like this: http://www.amazon.co.uk/dp/B008JDMEWW/?tag=athok07...

But I didn't find any thing like that for €100 but I found these: http://www.promaster.com/products.asp?product=9420 which are the same price as yours. What do you think about them? The only thing I can think is that in your case if one of the lamps burns still 3 more are functional but in the second product is only one lamp.

the_anykey (author)  azadeha6 months ago

Your like is for flash heads, I am using permanent lighting. This is what I use: http://www.folux.nl/ss-19-softbox

Maybe this is more like yours and permanent lights: http://www.amazon.ca/CanadianStudio-Continuous-Flu...

Do you think any lamp from above is of any use?

roscowillie6 months ago
Richard,

I thought those posted photos were with 24. What kind of results are you seeing withe 47? What do you expect with 70. Lastly, how are you configuring the cameras (ie 10deg x 4). You're really taking this to the next level.
the_anykey (author)  roscowillie6 months ago
You can do like upper body with 24, but to do full body, supporting many different poses requires a "few" more :-) We are setting up on most poles 4 cameras, some (face area) have one extra. we are using 16 pole, about 320 degrees around (opening in the back, to walk in)
Got it. Have you been able to achieve anywhere close to the quality of these guys? http://www.ten24.info/?page_id=302
the_anykey (author)  roscowillie6 months ago

Well the quality of our scans if way higher then what the 3d printers can print. So for our purpose we are fine, but sure we do not get the same results as ten24 :-) But our investment is 1/100 of theirs :-) and I do not think we get 1/100 quality. You can see some scan results on www.sketchfab.com/3dmij

roscowillie6 months ago

Richard,

I finally got the script to trigger a three camera wifi setup. It seems to work pretty well. I'm using the Model A, Cam, Edimax Wifi, 8 gb. I'm considering going for 24 (12 x 2) to capture people (15 ft diameter). Is this overkill? What have you settled on for your shooting configuration? Also, have you done any more experimentation with agisoft photoscan?

Thanks again for your creative thinking and tenacious making.

the_anykey (author)  roscowillie6 months ago

Hi, There is never overkill (well unless you use 200+ cameras) :-)

I can not capture a full body adult with just 24 cameras. I currently have 47 working and upgrading this week to 70 to enable full adult scanning.

makerT6 months ago

Hi, i 'am trying to scan part of objects with 6 Raspberry Pi...but i have some problem becouse i'am not expert.

I have a D-link DES-1008D switch were i connected all the 6 Raspberry. Each raspberry has an IP address 192.168.0.100/101/103/...106.

Now what i have to do? Using WinSCP i have to connect to one raspberry and launch the script?

Thanks for the help

the_anykey (author)  makerT6 months ago

The way how I do it, is to have the code sit on central storage. So all raspberries connect to that and run the listen code from there. So you do not have to distribute the code and also makes it easy to update it. You can then use any raspberry (via SSH connection) to initiate the "click" scipt that will fire off the network broadcast.

azadeha6 months ago

Hello Richard, Thank you very much for uploading your solution. I am making it. I'm so excited. Qnap is not a free file server, is it? Do you have any special reason for using this file server?

the_anykey (author)  azadeha6 months ago

The QNAP is just what I am using. You can use any kind of shared storage, like you local PC. Just make a windows share, that is the same as the QNAP..

azadeha6 months ago

Hello Richard again, I assume the more RAM, Raspberry pi has better, so I better order 512 MB, don't I?

the_anykey (author)  azadeha6 months ago

To shoot the image and upload the image does not really require a lot of ram, so both Model A or Model B can work. I prefer model B, as I want to use fixed LAN and not wireless.

makerT6 months ago

Hi, another question: is it possible to use Raspberry Pi as NAS for Multiple Raspberry PI 3D Scanner?

http://www.raspberrypi.org/phpBB3/viewtopic.php?t=...

Thanks

the_anykey (author)  makerT6 months ago

Technically you can use anything as your NAS (central storage), your windows machine, a raspberry. In practice it will have to depend on how many cameras you have. The networking from the raspberry is slow (100mb and over usb bus on the raspberry). Trying to upload many images at the same time might take a very long time.

makerT6 months ago

Hi resconwillie,

thank you for your reply... now I understand how to load the program.

Another thing that I did not understand is what is used for the NAS Server. As hard disk or something else? Can i use my pc as hard disk instead of NAS?

.....sorry for my obvious questions...but I would need a step by step guide...

roscowillie6 months ago

Hi makerT,

I'm attempting a wifi implemenation. If you're hooking up per Richard's instructions, you should be able to cut/paste the listen script code into IDLE and run from Wheezy on the pi. First, you'll need to make a quick options.cfg file (see below). You'll also need to tweak the server location after you've set up an NAS or served directory connection. Once you've done all that, just 'run module F5' and go to your pc for next step.

Don't know what os you're triggering from, but you just load python up and paste the trigger code into IDLE. Run the trigger file 'run module F5'. I was using WinSCP to transfer/tweak files. Shouldn't need it for regular operation. Just two pieces of code from Richard.

Foxtrot70, not sure yet. Depends on the # of cameras. I'm not buying more than 3 until I'm confident I can get it to work.

Foxtrot706 months ago

What was the total cost of this project?

1-40 of 104Next »