计算机视觉、人工智能 视觉的研究过程:感知、认知、和控制
车载摄像头的要求:
看得远:提供了更充足的反应时间,直接提升了安全性。需要长焦距(D大,欲保持其他地方不变,就需要F增大),但是焦距增加会导致视角变窄(当F增大,那么W就会减小)
质量高:为了识别的准确率。要求成像效果
相机坐标系
相机坐标系是以相机的聚焦中心为原点,以光轴为Z轴建立的三维直角坐标系。
相机坐标系(观察坐标系)相机坐标系的原点为相机的光心,x轴与y轴与图像的X,Y轴平行,z轴为相机光轴,它与图形平面垂直。光轴与图像平面的交点,即为图像坐标系的原点,图像坐标系为二维直角坐标系。
xy平面和之前平面直角坐标系的表述一致
z 轴与光轴重合
单目摄像头:
识别目标 — 测距
需要大量的数据,并且不断更新和维护应用于自动驾驶的路况判断
双目摄像头:
通过两幅图像的视差计算来确定距离,类似人的双眼,不需要知道障碍物是什么。
靠计算来进行测距,最大的难点在于计算量巨大
单目测距原理
焦距:
F
=
(
P
×
D
)
/
W
F = (P \times D ) / W
F=(P×D)/W
单目视觉
参考链接
单目视觉获得的图像本质上是2D的,结合相机的成像模型(初中物理,小孔成像)j就可以获知距离了,前提是你知道物体的真实大小。
测距
case 1: 物体在摄像机的正前方(光轴上),即相机坐标系的y轴上。
f
D
=
h
H
\frac{f}{D} = \frac{h}{H}
Df=Hh
其中,
f 为焦距(相机的内参数,一旦相机确定了,这个数值基本就是确定了)、
h是在相平面内的成像高度
D为物体到相机的距离
H为物体的实际高度(可以获取)
D为所求量,那么h的获知就成为了关键,是通过摄像机内部的感知元件作用后保留下来的
若知道,每一个感知原件的物理尺寸 δ \delta δ和像中包含的感知原件的个数 n n n,那么就能够得知像的高度 h = n ∗ δ h = n * \delta h=n∗δ
则, f D = n ⋅ δ H \frac{f}{D} = \frac{n \cdot \delta}{ H } Df=Hn⋅δ D = f ⋅ H n ⋅ δ D = \frac{f \cdot H}{n \cdot \delta} D=n⋅δf⋅H
case 2: 物体在摄像机坐标系的xy平面上有偏移(在x轴上有值)
光心
那么物体成像并不是在图像的中间部分,而会在中间偏左或者偏右的位置,存在一个水平方向的夹角
α
\alpha
α,此时光心到像平面中心的距离与光心到物体的距离满足 case 1 的模型, 即有:
D
′
=
f
′
⋅
H
n
⋅
δ
D^{'} = \frac{f^{'} \cdot H}{n \cdot \delta}
D′=n⋅δf′⋅H
f
′
=
f
2
+
l
2
f^{'} = \sqrt{f^2 + l^2}
f′=f2+l2
l
=
n
x
⋅
δ
l = n_{x} \cdot \delta
l=nx⋅δ
α = a r c t a n ( l f ) \alpha = arctan(\frac{l}{f}) α=arctan(fl)
其中 f ′ f^{'} f′ 表示焦距, D ′ D^{'} D′ 表示光心到物体中心的距离, l l l表示像中到图像中心的水平偏移距离, n x n_{x} nx 表示水平偏移的像素个数
此时,可以得到 物体到摄像机的距离为:
D
=
D
′
⋅
c
o
s
α
=
H
⋅
f
2
+
(
n
x
⋅
δ
)
2
n
⋅
δ
⋅
f
f
2
+
(
n
x
⋅
δ
)
2
=
H
⋅
f
n
⋅
δ
D = D^{'} \cdot cos\alpha = \frac{H \cdot \sqrt{f^{2} + (n_{x} \cdot \delta)^2}}{n \cdot \delta} \cdot \frac{f}{ \sqrt{f^{2} + (n_{x} \cdot \delta)^2}} = \frac{H \cdot f}{n \cdot \delta}
D=D′⋅cosα=n⋅δH⋅f2+(nx⋅δ)2⋅f2+(nx⋅δ)2f=n⋅δH⋅f
case 3: 当物体在Z轴上有移动时,即在光轴上下移动
可以猜想,计算公式也和前两个case相同。
测物体大小
若知道了物体到摄像机的距离, 那么其实可以推导出物体的一些尺寸
H
=
n
⋅
δ
⋅
d
f
H = \frac{n \cdot \delta \cdot d}{f}
H=fn⋅δ⋅d
双目视觉
人眼观察世界通过两个视角来形成对空间的基本认知。模仿人眼的原理,可以使用多个摄像机同时采集同一空间中的图像,然后通过一定的算法来实现对三维空间的重建。这就是典型的双目视觉(stereo-vision)问题。