国内成人免费视频|中文字幕一区精品欧美|国产精品玖玖玖在线观看|国产成人精品久久免费动漫|欧美日韩亚洲一区在线观看|91午夜精品亚洲一区二区|9 9久热RE在线精品视频|精品无码国产不卡在线观看首页

【技術(shù)教程】樹(shù)莓派制作的3D掃描儀

開(kāi)源技術(shù)
2014
04/17
11:56
分享
評(píng)論
作者:the_anykey 翻譯:瑟瑟 校對(duì):plantpark
Hi,
我是arduino和樹(shù)梅派的忠實(shí)粉絲,當(dāng)然也喜歡3d打印。我想為我的孩子們做一個(gè)3d模型,然后就開(kāi)始研究怎么去做一個(gè)3d掃描器,我找到了很多的解決方案,但是他們共有的問(wèn)題是需要被掃描物體靜止一段時(shí)間,好吧 我想做一個(gè)宇宙飛船飛到火星也比讓我兩歲的兒子安靜得坐一段時(shí)間更加簡(jiǎn)單。所以這些方案沒(méi)有一個(gè)可以用的。

我想必須想出一個(gè)辦法來(lái)可以同時(shí)拍到很多圖片,所以我開(kāi)始找廉價(jià)的相機(jī)。如果我能找到廉價(jià)的相機(jī),我想我可以用arduino做個(gè)自動(dòng)觸發(fā)系統(tǒng),然后所有圖片會(huì)在還幾張sd卡里,但是我卻找不到廉價(jià)的數(shù)碼相機(jī),然后我注意到樹(shù)梅派和相機(jī)模塊,一個(gè)性價(jià)比很高的模塊,可以用網(wǎng)線鏈接。所以我能通過(guò)網(wǎng)絡(luò)觸發(fā)相機(jī)拍照,并把所有圖片下載到一個(gè)地方,然后我的項(xiàng)目投資就開(kāi)始了。
項(xiàng)目清單
-樹(shù)梅派 & PI camera *40
- 8 gb SD卡 *40
-一個(gè)60a 5v電源給所有樹(shù)梅派供電
-led燈條和12v電源
由于我不是一個(gè)有耐心的人,沒(méi)有一次性構(gòu)建整個(gè)項(xiàng)目,我剛開(kāi)始用了12個(gè)相機(jī),這個(gè)結(jié)果已經(jīng)很棒了。如果只想得到一個(gè)人的面部,你并不需要40個(gè)相機(jī)。所以你并不需要40個(gè)相機(jī),尤其在你只想得到一個(gè)人的面部。下面視頻是輸出結(jié)果:


第一步: 搭建設(shè)備






首先我需要做一個(gè)支撐樹(shù)梅派的平臺(tái)。最初我做了一個(gè)木制圓環(huán)做測(cè)試,但是這個(gè)不太實(shí)用并且很難進(jìn)出。在一些測(cè)試之后,我想到了“單極”的設(shè)計(jì)。很多將照片轉(zhuǎn)換成3d模型的軟件里面都需要從不同角度拍攝。所以在每一個(gè)支架上裝了三個(gè)樹(shù)梅派相機(jī)
我用我的數(shù)控車床加工了2mm厚的合成木板做成一個(gè)支架,這讓我能轉(zhuǎn)2mm鉆孔來(lái)固定樹(shù)梅派,所以我只需要2.5mm的螺絲就能將樹(shù)梅派安裝到架子上
我為樹(shù)莓派相機(jī)設(shè)計(jì)了一個(gè)小巧并且方便打印的支架(因?yàn)槲倚枰?0個(gè),所以我需要他們足夠小),既可以很好的固定相機(jī),又可以簡(jiǎn)單地調(diào)整相機(jī)角度
為了更加絢麗,我還每個(gè)支架上加了一米長(zhǎng)的60個(gè)led的燈條,這樣既看起來(lái)很酷,又能為拍照補(bǔ)光。

第二步: 連接


連接40臺(tái)電腦的網(wǎng)線和電源線會(huì)看起來(lái)很亂,我想盡辦法讓它們看著更加簡(jiǎn)潔。不幸的是樹(shù)莓派并不支持網(wǎng)線供電(POE),所以這些我得親自完成。我剪了40根5米長(zhǎng)的網(wǎng)線。一樣長(zhǎng)是為了方便我計(jì)算線上消耗的電壓并使其相等,這樣能夠方便的調(diào)節(jié)電源輸出電壓達(dá)到精確的5v
由于100MB網(wǎng)線只需要用到八根中的四根,所以我用了兩根作為樹(shù)莓派5v電源線。所以我需要80個(gè)(2*40)水晶頭,并使用八個(gè)中的六個(gè)(兩個(gè)沒(méi)用)。 我想說(shuō)的是,這是整個(gè)工程里面最乏味最無(wú)聊的工作。
我買了一捆母接頭跳線,將他們切成兩半焊進(jìn)水晶頭一邊的兩根里面,這樣可以很簡(jiǎn)單的適用于樹(shù)莓派的5v接頭
另一方面 我為60a 5v電源做了一個(gè)電源擴(kuò)展板,我可以簡(jiǎn)單地連接上每一個(gè)以太網(wǎng)線上來(lái)的5v和地線
第三步: 軟件

我用的是Raspian OS,在樹(shù)莓派官網(wǎng)上默認(rèn)下載。為了收集所有圖片,我用了一個(gè)中心文件服務(wù)器(我用了Qnap),我用cifs設(shè)置了樹(shù)莓派圖片連接到文件服務(wù)器,這在/etc/fstab 里面完成
我也用中心文件服務(wù)器來(lái)管理軟件,所以我不用手動(dòng)更新每一個(gè)樹(shù)梅派。
在我完成系統(tǒng)鏡像的之后我用dd(在我的mac上)來(lái)為樹(shù)梅派克隆了40個(gè)sd。我想寫(xiě)一個(gè)監(jiān)聽(tīng)腳本讓每個(gè)樹(shù)梅派運(yùn)行,監(jiān)聽(tīng)特殊網(wǎng)絡(luò)廣播數(shù)據(jù)包來(lái)觸發(fā)相機(jī),然后保存照片,拷貝到文件服務(wù)器上。因?yàn)槲蚁雽⑺袌D片保存在一個(gè)文件夾里(一次攝影一個(gè)文件夾),我用每個(gè)樹(shù)莓派的本地ip(最后三位)作為文件名的前。
這是我用的python做的監(jiān)聽(tīng)腳本
#!/usr/bin/python
import socket
import struct
import fcntl
import subprocess
import sys

MCAST_GRP = '224.1.1.1'
MCAST_PORT = 5007
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('', MCAST_PORT))
mreq = struct.pack("4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0×8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])
id = get_ip_address('eth0')
ip1, ip2, ip3, ip4 = id.split('.')
print 'ID: ' ip4 '-'
optionfile = open('/server/options.cfg','r')
options = optionfile.readline()
optionfile.close()
print "optons: " options
while True:
   data = sock.recv(10240)
   data = data.strip()
   if data == "reboot":
     print "rebooting…"
     cmd = 'sudo reboot'
     pid = subprocess.call(cmd, shell=True)
   elif data == "reload":
     optionfile = open('/server/options.cfg','r')
     options = optionfile.readline()
     optionfile.close()
   elif data == "restart":
     cmd = '/server/reload.sh&'
     pid = subprocess.call(cmd, shell=True)
   else:
     print "shooting " data
     cmd = 'raspistill -o /tmp/photo.jpg ' options
     pid = subprocess.call(cmd, shell=True)
     print "creating directory"
     cmd = 'mkdir /server/3dscan/' data
     pid = subprocess.call(cmd, shell=True)
     print "copy image"
     cmd = 'cp /tmp/photo.jpg /server/3dscan/' data "/" data "_" ip4 '.jpg'
     pid = subprocess.call(cmd, shell=True)
     print "photo uploaded"
我寫(xiě)了一個(gè)發(fā)送腳本來(lái)讓所有樹(shù)梅派開(kāi)始拍照。這個(gè)腳本會(huì)詢問(wèn)名字,這個(gè)名字作為文件名首字發(fā)送給樹(shù)梅派。這讓我可以知道圖片來(lái)自哪一個(gè)樹(shù)梅派。
這是python的發(fā)送腳本
import socket
import sys
import time
print 'photo name:'
n = sys.stdin.readline()
n = n.strip('\n')
MCAST_GRP = '224.1.1.1'
MCAST_PORT = 5007
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, 2)
sock.sendto(n, (MCAST_GRP, MCAST_PORT))
監(jiān)聽(tīng)腳本用來(lái)確認(rèn)接受命令,如果命令是reboot, reload or restart 他會(huì)執(zhí)行特殊動(dòng)作,而不是拍照。
raspistill(樹(shù)梅派相機(jī)默認(rèn)軟件)的配置選項(xiàng)我用了options.cfg文件來(lái)配置他,當(dāng)然這也是存在中央文件服務(wù)器里面,所以我可以很簡(jiǎn)單的來(lái)改變?cè)O(shè)置。
我做了些測(cè)試來(lái)看樹(shù)梅派是否同步拍攝照片,當(dāng)他們同一時(shí)間接收網(wǎng)絡(luò)廣播是我覺(jué)得這做的很棒。我做了一個(gè)測(cè)試,12個(gè)相機(jī)組合同時(shí)拍攝我的iphone秒表,照片上的時(shí)間最多差1/10秒。

第四步: 將照片轉(zhuǎn)換成3d模型


這是些不同的將照片轉(zhuǎn)換成3d模型的方式,個(gè)人覺(jué)得autodesk的recap最好。
登錄 recap.autodesk.com. 如果你沒(méi)有autodesk帳號(hào),你可以免費(fèi)注冊(cè)一下,這個(gè)擁有5G硬盤,轉(zhuǎn)換3d模型足夠了。
在你登錄了recap,點(diǎn)擊new project,這兒你會(huì)選擇3d模型的質(zhì)量(我都選最好,為什么選更低的呢?)。導(dǎo)出格式,很多3d打印軟件可以直接用obj文件,所以最后選這個(gè)。
在你將照片拖動(dòng)到你的瀏覽器,或者點(diǎn)擊上傳窗口選擇你的照片上傳之后等照片上傳,點(diǎn)擊兩下next,然后autodesk云系統(tǒng)將會(huì)開(kāi)始工作將你的照片轉(zhuǎn)換成3d模型,這將會(huì)用15~45分鐘時(shí)間,這是云端進(jìn)行的所以你在等待的時(shí)候可以去做其他事情 。
當(dāng)繁重的計(jì)算完成之后,你可以點(diǎn)擊中間的縮略圖來(lái)看你的3d模型 重要:這個(gè)要在chrome瀏覽器上完成。當(dāng)你觀看你的3d模型的時(shí)候你會(huì)在左邊發(fā)現(xiàn)你圖片的縮略圖相冊(cè),如果一切正常,你應(yīng)該沒(méi)有很多(或者沒(méi)有)“Not Stitched”在列表中。這表明這些圖片中有些地方?jīng)]有檢測(cè)到,你可以試著點(diǎn)擊圖片上標(biāo)記的點(diǎn)來(lái)修復(fù)。但是如我所說(shuō),3D掃描儀拍攝足夠多的照片就不會(huì)出現(xiàn)這些情況。
你可以現(xiàn)在下載obj文件到你本地電腦上去進(jìn)一步處理,比如移除背景,你下載的是一個(gè)zip文件,所以你需要先解壓在跳到下一步
清理你的3d模型

有許多程序可以讓你整理你的3d模型,最簡(jiǎn)單的程序是我在autodesk里找到的免費(fèi)的“project memento” 你可以下載memento(只能用于windows)
http://labs.autodesk.com/utilities/memento
在你正確安裝project memento后,可以直接打開(kāi)obj文件,應(yīng)該被稱作 mesh.obj。這個(gè)2d掃描儀的照片是90度翻轉(zhuǎn)的,這意味著你可能有上下顛倒的感覺(jué),在左邊的按鈕“did the orbiting feel off”點(diǎn)擊“feels off”來(lái)更正。
和你看到的那樣,不僅僅你被拍到,周圍環(huán)境也被拍到了,你可能想將那部分切除,這個(gè)在memento里面很簡(jiǎn)單,只要用你的鼠標(biāo)選擇你不想要的區(qū)域就能點(diǎn)擊刪除。旋轉(zhuǎn)模型,你可以很簡(jiǎn)單的選擇并刪除你不想要的部分

修復(fù)你的3d模型

為了打印你的3d模型,你需要確定你的模型是完整的(沒(méi)有洞再上面),當(dāng)然這個(gè)又能很簡(jiǎn)單的在memento上面修改,memento窗口點(diǎn)擊中上你會(huì)看見(jiàn)一個(gè)彈出框來(lái)修復(fù)你的模型。
通過(guò)向?qū),任何洞都?huì)被發(fā)現(xiàn),點(diǎn)擊fix。你需要選擇是smooth還是flat。我一般喜歡用flat fix,這用起來(lái)很好。再次選擇next來(lái)尋找更多的洞。洞需要被修復(fù),其他也是可以選擇的。

在你修復(fù)所有洞值購(gòu),點(diǎn)擊done,現(xiàn)在你就導(dǎo)出了新的obj文件。你可以點(diǎn)擊memengo左上角點(diǎn)擊彎的箭頭

現(xiàn)在你可以詳細(xì)的設(shè)置你模型的保存類型。為什么要選低像素呢?!。!劃動(dòng)所有模塊到右邊達(dá)到最好的質(zhì)量。
你現(xiàn)在完成了所有能做的,你得到了一個(gè)可打印的模型,如果你還想修改模型,有很多軟件能幫到你。
Pixologic Sculptris (免費(fèi)): 這是處理模型細(xì)節(jié)的很好的軟件,比如揉化邊緣,這有點(diǎn)像photoshop,但是是3d的。
Meshmixer (免費(fèi)):這是從autodesk下載來(lái)的其他免費(fèi)程序,他對(duì)于做平地模型很好。
其他軟件來(lái)做3d模型
除了autodesk recap,其他還有很多選擇來(lái)讓你的照片編成3d模型。
Autodesk 123d Catch (free):這個(gè)用起來(lái)像recap(通過(guò)云服務(wù)器)這個(gè)比recap更加好,但是限定了你的圖片,所以最后精度不高。
VisualSFM (free): 這是一個(gè)將你照片變成3d模型的本地軟件,你需要強(qiáng)大的顯卡來(lái)運(yùn)行軟件。
Agisoft Photoscan Standard Edition ($179): 這個(gè)軟件同樣需要你有比較給力的電腦,但是我并沒(méi)發(fā)現(xiàn)這個(gè)軟件比recap和123d好到哪里去。

第五步: 結(jié)果






在建立了模型之后,沒(méi)有比將這個(gè)機(jī)器分享給別人更加美妙了,所以我決定參加Dutch maker faire并且給每個(gè)人提供3d攝影,我可以告訴你他很愉快的工作了6小時(shí)并掃描了225個(gè)人。你可以從我blog了解到更多www.pi3dscan.com


Step 6: 設(shè)計(jì)文件
這是我用的設(shè)計(jì)文件。statief是一個(gè)讓我用數(shù)控機(jī)來(lái)做過(guò)孔的2d cad文件
camera_mount文件是相機(jī)支架的設(shè)計(jì)文件
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng)回復(fù)




回復(fù)

使用道具 舉報(bào)

2#
2014-4-21 12:59:17 | 只看該作者
過(guò)來(lái)看一下,看看好弄不
4#
2014-4-21 13:41:48 | 只看該作者
kakakkaaaaaaaaaa
5#
2014-4-21 13:41:50 | 只看該作者
kakakkaaaaaaaaaa
6#
2014-5-18 12:58:41 | 只看該作者
{:soso_e193:}
7#
2014-5-18 12:58:56 | 只看該作者
{:soso_e140:}
8#
2014-5-19 23:53:16 | 只看該作者
有什么隱藏資料啊
9#
2014-5-30 13:33:38 | 只看該作者
好東西,收藏
看暈了,十樓跳下去 。

推動(dòng)3D打印

關(guān)注南極熊

通知

聯(lián)系QQ/微信9:00-16:00

392908259

南極熊3D打印網(wǎng)

致力于推動(dòng)3D打印產(chǎn)業(yè)發(fā)展

Copyright © 2024 南極熊 By 3D打印 ( 京ICP備14042416號(hào)-1 ) 京公網(wǎng)安備11010802043351
快速回復(fù) 返回列表 返回頂部