找回密码
 注册

快捷登录

楼主: 梧桐树狮子

3D扫描仪diy。

   火.. [复制链接]
发表于 2014-8-3 13:55:45 | 显示全部楼层
谢谢楼主分享.
发表于 2014-8-3 14:04:12 | 显示全部楼层
大有前途。非常佩服楼主。
 楼主| 发表于 2014-8-3 14:33:34 | 显示全部楼层
本帖最后由 梧桐树狮子 于 2014-8-3 15:27 编辑 7 u: M2 v( b+ q& Q; O8 E

% M$ ^& S$ Z# `; z9 ]0 l6 V! ` 135924wut31yl8ugr34pc8.jpg
8 ]2 R2 D, P, P: Z这可能是最简单的一个3D扫描设置,如果你有opencv和openGL基础,实现这个并不难。图是我用鼠标画的,很恶。。大致能看明白就是了。
; f  x% `) f' f) D+ Z2 C) O7 z1 y+ `, V  i1 g+ R
红框内的部分是一个线性激光器,它投出来的耀斑,打在墙上形成一条细线就是了。淘宝上有卖的,一般几十块到百十块不等。在这个图里,红色的激光器投出一条竖线,竖线投在一个罐子上.形成一条红色的亮线.这个罐子就是我们要扫描的对象.
/ j! Q" w, B8 u6 X3 {7 ]3 Y
8 J+ Q8 k8 T1 t  C5 ?/ t5 h绿框所指的盘子底座,是一个可旋转的底坐,要扫描的罐子就放在上面.
: P  O  V6 W# \7 W' `
+ h2 ]! G0 j+ o) p" u; D  d蓝色的是一相机.8 \% i6 c( N; }' _" Q

3 o+ J) e8 a" }  v* b, _把相机放在轴线C上,线性激光器放在轴向L上,让被扫描的物体绕R轴旋转.并保证这三条轴线两两垂直.现在可以开始扫描了.4 ]! l8 C- D. E+ _) d1 s" V/ \0 t
9 X$ d/ \: f0 z
把相机设置为曝光度较低,或者最好干脆在一个全黑环境中来拍,拍的结果最好是除了投在罐子上亮线之外什么都是黑的.' J4 D( e2 `/ u! N2 [9 q. l* W# g
旋转底座每转一度拍一张,最终拍了360张,你就得到了360个罐子的半剖面线.(实际可能360张不够,)
6 @4 N- u* s) a0 E5 d通过opencv识别每一条半剖面线,
+ V) w  k' P$ s# t) J然后在将这些曲线通过loft生成曲面。原理就像下面这个,如果用过maya,这个图应该很眼熟。
5 m  F) ~# `( q+ \5 J% Z) A( t* A" u- K% u# M  k: Y
140725gxii4smdao1dzdwz.jpg
2 G4 O6 l) j2 d6 ?7 E( v6 ~$ L& A7 Y
- Z; E4 |* [3 [% d2 v只要旋转台转的够匀速,拍的够清楚,这个理论上就能实现3D扫描了。。
, t+ P7 {5 j8 ~- |事实上。。。。。。。$ R2 {3 ]  h: {4 ]$ ]9 H0 {, V* C
. O+ c  ?5 \5 a* O
终结者2里面那个T2000液体金属人的模型,就是这样的原理扫描的演员,有兴趣的可以找找终结者2的制作花絮看看,本想截个图来的,但这会儿公司把视频网站全掐了。。。6 k) n7 G9 f0 v, O
/ _8 \0 E3 X; ]5 S; a2 H
找了一个差不多的图,大家看看:. A5 g6 I# ?0 t0 b" C& F+ t
3D%20scanner%20setup-500x500.jpg 这个大家可能说摄像头和激光器之间的夹角不是垂直的啊,嗯,其实拍下来在软件里校正成垂直的就完事了。。。。又是三角函数的题目。。。。。。。只要摄像头和激光不在一条直线上,就问题不大。( o, R! `5 ?, f+ S

6 y/ H# H  G: Z$ E) q8 N* N. t. V/ d0 ]% M
另一个比较山寨的同类算法产品。2 V) I9 o/ O5 C# W2 y+ ~# e4 ?

! ]* r* L- f+ _2 S2 K fabscan.jpg
 楼主| 发表于 2014-8-3 14:51:25 | 显示全部楼层
本帖最后由 梧桐树狮子 于 2014-8-3 14:58 编辑   w, u/ Z5 R1 ]% s" i$ q8 W
2 R; n6 X* d3 K. p
1519.pic.jpg
" s. m, q7 D/ N' i+ S0 |' S. T, B
6 P2 y0 g( }. f这是david 3d的官方原理示意图。
7 u! }, d2 i: B6 B6 d+ v8 Z: {
8 H- t3 z* n3 T4 T) S! K" t大家注意看,头像背面有一个带着圆点斑的图案的直角夹角。. l) L# P1 B/ C7 u! ^, t

$ s% W, v! A1 x2 Y这个和上一个原理上差不多,不过计算量要大的多就是了。
) e  b- n) C' Q, H& ?4 b
, r0 n  ?, O2 i8 E& O. s5 y它是通过背板上的黑点,来确定摄像头和直角背板之前的相对位置,然后再用激光投到扫描物体上形成的亮斑曲线来确定物体截面,最终形成曲面,这个算法其实说白了,也就是一立体解析几何的问题。只不过这是瞬间计算成几十万个点的相对位置罢了。。据我处某位研究opencv的同志说,david的抗干扰的取样算法还是很牛的,取得一个空间点的位置不难,比较难的是取得的点的位置是真实的。反正人家已经作好了,直接拿来用好了。。。不费那个神了。。。
* O1 U% V- |0 i. R. R. q/ x9 T7 u$ {2 G, `* x7 {; ~$ m
此软件我当时买的正版Ukey大约是二百欧元,某宝和谐版么。。。。
 楼主| 发表于 2014-8-3 15:03:58 | 显示全部楼层
本帖最后由 梧桐树狮子 于 2014-8-3 15:15 编辑   X  @' A/ }: d  i$ ^- p
$ |6 h/ F! y/ X
http://www.david-3d.com/$ [& X/ E1 \" w! Y

) q% y$ m: J8 e. q. c大卫3D的官网,可以看看他们的论坛和画廊,有些真的扫描的挺吓人的。
; f& b; m! y" H8 t9 s: X; f, i
: T0 F, ?9 y5 s: Q 6809812167683d869920e80ba9d80f47.jpg 5 ~% B* B9 N, J, I( R* |
官网的一个很吓人的图,不过我怀疑这货扫的可能不是人指头,而是一个放大模型,或者这货的相机和投影设备都是自己改造过的。
 楼主| 发表于 2014-8-3 15:26:16 | 显示全部楼层
本帖最后由 梧桐树狮子 于 2014-8-3 15:41 编辑 ) ^5 a/ Z9 K& D, o! v. c
9 v: a" g% w/ M& c8 f3 R
最后再说的就是结构光了。。。这是david3D提供的一个我觉得可以称为划时代的工具,它确实是实现了把一个高富帅的工具,拉到了屌丝水平的价位。
3 w) x+ _* o" D# B2 k1 K$ A+ \1 g6 ?9 G" ?. h& V# d/ O
152016rfkrlkhfqzdo4sdz.jpg 2 ^; f$ I' `. p' k+ Y2 ^4 V2 I
结构光投影在物体表现的样子,所谓结构光,就是用投影仪投出来的一组特定的条带,这个条带是动画的,有特殊的编码规律,用摄像头拍到这组条纹的扭曲和形变以及动画之后,根据投影仪和摄像头之前的夹角关系,就可以快速的重建出来曲面了.(原理某理科同学给我讲了吧啦吧啦的一天,我表示没听明白......好在用起来很简单.)! @4 }+ ~4 w" ?# b( K1 G1 }
( P- I4 x; K% X
5 J# U; s/ y, C
151959np8vimoruys1opz4.jpg
% z" P7 y! }$ V# S) H 8a3a6e2a631d06ee215401eb1c0c49a4.jpg
* F! N+ h$ i3 {' L. M, x
0 n0 D/ m; f" a5 x$ xdavid 3d官网提代的配置图,固定好的投影仪和摄像头。在软件只一次配对以后,只要这两个相对位置不变,就不用再对它们进行配对了。这东西是么子概念累,简单说,就是很多几十上百万的3D扫描仪,其实就是这么个东西,只不过硬件相对来说,更优选更可靠罢了。如果我们能找到合适的硬件,就可以实现一点不逊色于专业扫描仪的效果了。
  V# L$ i9 R7 w3 ~# s# A4 S2 y5 Q2 u/ ?; O2 `
IB_scan002.jpg
; n% s; H# `8 n+ l) I8 v4 \结构光扫描的过程截图,(网上找来的。)2 S, i) Z4 {# Z; N7 F, a
# P1 G0 e/ }; _8 K/ t* L1 y
IB_scan001.jpg
9 x- f- W% ^  A9 Q% t
7 n5 x6 E, Y$ Y$ D相比起其它不靠谱的DIy3D扫描仪来说,目前david 3D这个,已经凑凑合合达到了可以使用的地步,甚至拿来作一些工业逆向可未尝不可了。拿来作工艺品文玩之类,我看已经足足够用了。3 Z4 E. ?7 ^# G0 B6 ?* N
 楼主| 发表于 2014-8-3 16:01:23 | 显示全部楼层
本帖最后由 梧桐树狮子 于 2014-8-3 16:04 编辑 5 q9 }* n( k. f: h$ T  g
8 W2 B  t# |' ^3 H
最后说说影响DAVID3D扫描结果的一些问题。7 O1 ]  f2 I: \+ @4 b3 e
- N/ m* {1 G) A6 F, h* V/ f
很多人用david自带的那个天使视频文件,生成的曲面质量相当之好,但自己用激光,就怎么了生成不了那么高质量的曲面。这里有几个问题值得注意一下。* |; L+ i9 B* q7 Y; v

- u4 H  k. z7 G/ G1 W1.首先是环境光线。daivid说到底,还是基于可见光的,它受光线影响很大。特别是在激光扫描时,摄像机和背板对位时,要有较强的环境光线,而在取样激光曲线时,又不能有太高的环境亮度。好在对位也只用作一次。
- q3 G- {8 v. H2是物体表面处理。如果允许,给物体表现喷一层田宫水补土,那种接近中性灰的表现非常理想,表面太白的话,激光在表面形成的条纹会有较大的衍射边缘,会严重影响精度。如果太黑的话,有可能摄像头会捕捉不到表面的激光条纹。$ t/ V: l  R0 Y0 @
1 g. L+ A& ^. V; I2 A+ i
3,摄像机的设置,如果使用的iso太高,或者摄像机质量太差,或者太过于自动化,都会造成摄像机本身的燥点过高而影响扫描结果。最好是使用低感光度,手动曝光来拍摄。
: J) {$ r# |7 b: {. e% L) O. G: Q3 V; C9 A) [
结构光的使用注意点与此类似。
; Y* W9 _% n% ~, ~' p3 _8 a5 x. D$ L" K( I& k. K9 R
关于结构光,多说几句,对结果影响比较大的是投影仪,这个真心很无奈。可以说市面上卖的拿来看片的投影都几乎无法直接用。。。。。它倒不要求精度,它对投影的景深要求比较高。。。。。。而大部分的投影,镜头光圈又都是不可调的。。。换镜头这个事儿吧。。。。。。
发表于 2014-8-3 16:10:25 | 显示全部楼层
自己DIY一个 要多少钱那
 楼主| 发表于 2014-8-3 16:22:18 | 显示全部楼层
本帖最后由 梧桐树狮子 于 2014-8-3 16:24 编辑
  H/ E* b) g" f
天信科技 发表于 2014-8-3 16:10 back.jpg
  c7 u8 F  b, w3 M自己DIY一个 要多少钱那

9 `7 Y' Q3 R/ y- m) L( ~* z5 Y6 l& S, S; ?; A# v
最简单的情况,5 i9 [6 S- g! @- g9 g
2 ^# f7 F: _% q( B
基础套餐:
! T, e0 `% ^  i/ }( Z一套david 3D和谐软件,某宝XX元,一个略好一点的摄像头,推荐罗X的720P的。百多块,一个线性激光器,40-50块,一台电脑,合计不到二百。% y3 w1 z  e# Y$ M
" |  ?9 _7 c5 |6 g8 a
比较复杂一些的情况:基础套餐加自制转盘。一个直线电机加调速加开关加木头盘。。。视木头材质而定,非要用红木那就贵了。" F; Z4 f9 h3 p1 m7 V: `
- _4 ^' Z" B6 w  z, O
更复杂一些的情况:上一套餐去掉线性激光器,加上国产某品牌800X600投影仪,估计几百块钱吧。2 M- n5 o, ^0 W
' ^) |, y: T5 L7 n' x( [$ i& l7 D
再复杂一些,上一套餐加国产镜头,或自行改动镜头结构,视动手能力而定。。。
% \5 p- u# [' R2 E; Q$ f* t% _$ l6 Q% P8 b1 C
再复杂一些,高清投影加定制镜头。。。。) [8 Z4 _* L. _, z4 o

( E$ n# x9 w# n5 {& j" r再高大上一些,找点莱卡蔡司什么的镜头。。。。这花费就没数了。。。" B2 ]+ ?" \2 l) ?3 }' V
# v* L3 }  x2 y7 c
对了,忘记摄像头升级了。$ j0 L- [' U1 j9 I" }, O4 N

7 q/ X* E, \6 W, h9 M1 G& ]& u从罗X的摄像头,一直可以用到sony4K配高速采集卡。各有各的玩法。越贵越好。。。% \; E1 N7 H3 D: v4 F  }

6 u# ^0 B2 p& R# X; o! a( B9 s* h) t1 o; ]% J" {! U' y
发表于 2014-8-3 16:23:16 | 显示全部楼层
梧桐树狮子 发表于 2014-8-3 16:22
3 v. `) `2 f3 @) B% I3 I; o最简单的情况,
1 f1 p8 m4 ]9 e3 W3 |3 i( ~% P; z5 o
基础套餐:

$ Y; D, b% M" z可以留个QQ或者加我QQ 20806277 我想DIY一个 希望可以指点指点
" |& o0 V* T6 L! ]
发表于 2014-8-3 17:05:57 | 显示全部楼层
没研究过,看看了解一下
发表于 2014-8-3 19:04:17 | 显示全部楼层

) w0 I# _, n1 N: [0 q% y能扫描2cm的东西吗,精度如何
发表于 2014-8-3 20:56:32 | 显示全部楼层
感兴趣,能提供套件吗?
发表于 2014-8-3 21:29:11 | 显示全部楼层
高大上啊,有机会学习
发表于 2014-8-3 23:39:25 | 显示全部楼层
对逆向工程有了进一步的认识,多谢楼主,有机会做套简易的试试,用OPENGL自己编太麻烦,简单理想模型还行,像复杂的拟合等等问题,还是用专业软件好!会用MACH3不一定要自己编个MACH3
您需要登录后才可以回帖 登录 | 注册

本版积分规则


快速回复 返回顶部 返回列表