
公式推导
线激光测体积。原理如图所示。如果没有任何障碍物,激光会打到Plane0的y0y_0y0上,而如果有了一个待测物体,测激光会打在被测物体上,形成一个偏移。将这个偏移作一条垂直于Plane0的线,则其与Plane0的交点为y1y_1y1。利用这个偏移以及β\betaβ角度,我们可以测量出物体的高度。
我参考的论文是"Calibration Method For Height Measurement Of Object Using Laser Triangulation"。但我与它的观点有一些差别。
如果仅从物理世界来观察,我们会认为物体的高度h=(y1−y0)/(tanβ)=Δy/(tanβ)h=(y_1-y_0)/(\tan \beta)=\Delta y/(\tan\beta)h=(y1−y0)/(tanβ)=Δy/(tanβ)。所以认为hhh与Δy\Delta yΔy是线性关系的。但是我们忘记了一点,即这是物理世界的Δy\Delta yΔy,而不是成像出来的Δy\Delta yΔy。物理世界是立体的,而成像之后都成像到了一个平面上。也就是说,图中的Plane0会在Image Plane上成像,而图中的Plane1也会在Image Plane上成像。所以事情就变成了这样:y0y_0y0在像平面上的坐标
y0′=y0(2Htanα)⋅PYy_0'=\frac{y_0}{(2H\tan\alpha)}\cdot PYy0′=(2Htanα)y0⋅PY,
y1′=y0+htanβ−htanα2(H−h)tanα⋅PYy_1'=\frac{y_0+h\tan\beta-h\tan\alpha}{2(H-h)\tan\alpha}\cdot PYy1′=2(H−h)tanαy0+htanβ−htanα⋅PY
由于我们要查看的是y1′−y0′y_1'-y_0'y1′−y0′与hhh的关系,因此,可以写为:y1′−y0′=f(h)y_1'-y_0'=f(h)y1′−y0′=f(h)
f(h)=y1′−y0′=y0+htanβ−htanα2(H−h)tanα⋅PY−y0(2Htanα)⋅PY=(tanβ−tanα)h+y0−2tanαh+2Htanα⋅PY−y0(2Htanα)⋅PY
\begin{align}
f(h) &= y_1'-y_0' \\
&= \frac{y_0+h\tan\beta-h\tan\alpha}{2(H-h)\tan\alpha}\cdot PY - \frac{y_0}{(2H\tan\alpha)}\cdot PY\\
&= \frac{(\tan\beta-\tan\alpha)h+y_0}{-2\tan\alpha h+2H\tan\alpha}\cdot PY - \frac{y_0}{(2H\tan\alpha)}\cdot PY\\
\end{align}
f(h)=y1′−y0′=2(H−h)tanαy0+htanβ−htanα⋅PY−(2Htanα)y0⋅PY=−2tanαh+2Htanα(tanβ−tanα)h+y0⋅PY−(2Htanα)y0⋅PY
令
s=tanβ−tanαu=y0t=−2tanαv=2Htanα
\begin{align}
s &= \tan\beta - \tan\alpha\\
u &= y_0\\
t &= -2\tan\alpha\\
v &= 2H\tan\alpha\\
\end{align}
sutv=tanβ−tanα=y0=−2tanα=2Htanα
则
f(h)=(sh+uth+v−uv)⋅PY=(sv−tu)h(tv)h+v2⋅PY
\begin{align}
f(h) &= \left( \frac{sh+u}{th+v}-\frac{u}{v}\right) \cdot PY \\
&= \frac{(sv-tu)h}{(tv)h+v^2} \cdot PY
\end{align}
f(h)=(th+vsh+u−vu)⋅PY=(tv)h+v2(sv−tu)h⋅PY
故
PYf(h)=tvsv−tu+v2sv−tu⋅1h
\frac{PY}{f(h)}=\frac{tv}{sv-tu}+\frac{v^2}{sv-tu}\cdot \frac{1}{h}
f(h)PY=sv−tutv+sv−tuv2⋅h1
可以看出,f(h)f(h)f(h)的倒数与hhh的倒数之间存在线性关系。
f(h)f(h)f(h)的实际含义是像素上y1′−y0′y_1'-y_0'y1′−y0′。那么,这里就称之为Δy′\Delta y'Δy′。现在我们来推导,如果已知了Δy′\Delta y'Δy′,如何来求f(h)f(h)f(h),
令
a=tvsv−tub=v2sv−tu
\begin{align}
a &=& \frac{tv}{sv-tu} \\
b &=& \frac{v^2}{sv-tu}
\end{align}
ab==sv−tutvsv−tuv2
则有
1h=PYbΔy′−ab=sv−tuv2⋅PYΔy′−tv=(sv−tuv2)⋅PYΔy′+1H=(tanβ−tanα2Htanα−−y02HtanαH)⋅PYΔy′+1H=(tanβ−tanα2Htanα⋅PYΔy′−−y02HtanαH⋅PYΔy′)+1H=(tanβ−tanαtanα12H⋅PYΔy′+1H⋅y0′Δy′)+1H=12HΔy′((tanβtanα−1)⋅PY+2y0′)+1H=((tanβ−tanα)⋅PYS+y0′H)⋅1Δy′+1H \begin{align} \frac{1}{h} &= \frac{PY}{b\Delta y'}-\frac{a}{b} \\ &= \frac{sv-tu}{v^2}\cdot\frac{PY}{\Delta y'}-\frac{t}{v} \\ &= \left( \frac{s}{v}-\frac{tu}{v^2} \right)\cdot\frac{PY}{\Delta y'}+\frac{1}{H} \\ &= \left( \frac{\tan\beta-\tan\alpha}{2H\tan\alpha}-\frac{-y_0}{2H\tan\alpha H} \right)\cdot\frac{PY}{\Delta y'} + \frac{1}{H}\\ &= \left( \frac{\tan\beta-\tan\alpha}{2H\tan\alpha}\cdot\frac{PY}{\Delta y'}-\frac{-y_0}{2H\tan\alpha H} \cdot\frac{PY}{\Delta y'}\right)+\frac{1}{H}\\ &= \left( \frac{\tan\beta-\tan\alpha}{\tan\alpha}\frac{1}{2H}\cdot\frac{PY}{\Delta y'}+\frac{1}{H}\cdot\frac{y_0'}{\Delta y'}\right) + \frac{1}{H} \\ &= \frac{1}{2H\Delta y'}\left( \left(\frac{\tan\beta}{\tan\alpha}-1\right)\cdot PY+2y_0'\right)+\frac{1}{H} \\ &= \left( \frac{(\tan\beta-\tan\alpha)\cdot PY}{S}+\frac{y_0'}{H} \right)\cdot \frac{1}{\Delta y'}+\frac{1}{H} \end{align} h1=bΔy′PY−ba=v2sv−tu⋅Δy′PY−vt=(vs−v2tu)⋅Δy′PY+H1=(2Htanαtanβ−tanα−2HtanαH−y0)⋅Δy′PY+H1=(2Htanαtanβ−tanα⋅Δy′PY−2HtanαH−y0⋅Δy′PY)+H1=(tanαtanβ−tanα2H1⋅Δy′PY+H1⋅Δy′y0′)+H1=2HΔy′1((tanαtanβ−1)⋅PY+2y0′)+H1=(S(tanβ−tanα)⋅PY+Hy0′)⋅Δy′1+H1
其中,SSS为最低平面时,相机能拍摄到的最大长度。

1万+

被折叠的 条评论
为什么被折叠?



