68

Click here to load reader

题目: 基于多摄像机协同的运动对象分割 与三维重建系统

  • Upload
    jadon

  • View
    143

  • Download
    3

Embed Size (px)

DESCRIPTION

题目: 基于多摄像机协同的运动对象分割 与三维重建系统. 2008 级计算机学院专业实习报告 专业名称:计算机科学与技术 指导老师:杨涛 副教授. 内 容. 1. 项目简介. 2. 摄像机参数标定. 3. 前景提取. 4. 三维重建. 5. 体元染色. 6. 结果自我评价. 组内人员分工简介. 宋雪梅 贺尧. 杜蓉. 前景提取. 体元着色. 项目 分工. 宋征玺 宋雪梅. 三维重建 及显示. 摄像机 参数标定. 田锋. 研究内容. 研究内容: 摄像机内外参数标定; 背景建模与运动前景分割; - PowerPoint PPT Presentation

Citation preview

Page 1: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

题目:基于多摄像机协同的运动对象分割

与三维重建系统2008 级计算机学院专业实习报告

专业名称:计算机科学与技术

指导老师:杨涛 副教授

Page 2: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

内 容

5. 体元染色

4. 三维重建

3. 前景提取

2. 摄像机参数标定

1. 项目简介

6. 结果自我评价

Page 3: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

组内人员分工简介

杜蓉

摄像机参数标定

体元着色

项目分工项目分工

三维重建及显示

宋征玺宋雪梅

前景提取

田锋

宋雪梅 贺尧

Page 4: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

研究内容

研究内容:• 摄像机内外参数标定;• 背景建模与运动前景分割;• 基于剪影投影的三维重建与显示;

Page 5: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

研究内容

Page 6: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

意义与应用

娱乐教育

军事

电影特效游戏制作网上购物新一代体感交互娱乐

远程教育重建教学环

境实验环境仿

重建作战环境仿真大型实验场景

生活

• 医疗诊断• 视频行为监控• 体育运动分析• 视频压缩编码• 虚拟现实

Page 7: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

内 容

5. 体元染色

4. 三维重建

3. 前景提取

1. 项目简介

6. 结果自我评价

2. 摄像机参数标定

Page 8: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

对多摄像头采集的图像序列重建出三维场景,首先应该对摄像机进行精确定标,得到摄像机的内外参数,从而建立图像像素与世界坐标之间的关系,这是重建三维场景的基础。

在计算机视觉中,图像是空间物体通过成像系统在像平面上的反映,即空间物体在像平面上的投影。图像上每一个像素点的灰度反映了空间物体表面某点的反射光的强度,而该点在图像上的位置则与空间物体表面对应点的几何位置有关。这些位置的相互关系,由摄像机成像系统的几何投影模型所决定。

三维空间中的物体到像平面的投影关系即为成像模型,理想的投影成像模型是光学中的中心投影,也称为针孔模型。

Page 9: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

针孔模型假设物体表面的反射光都经过一个针孔而投影到像平面上,即满足光的直线传播条件。针孔模型主要有光心(投影中心)、成像面和光轴组成。小孔成像由于透光量太小,因此需要很长的曝光时间,并且很难得到清晰的图像。实际摄像系统通常都由透镜或者透镜组组成。两种模型具有相同的成像关系,即像点是物点和光心的连线与图像平面的交点。因此,可以用针孔模型作为摄像机成像模型。

但是,由于透镜设计的复杂性和工艺水平等因素的影响,实际透镜成像系统不可能严格满足针孔模型,产生所谓的镜头畸变,常见的如径向畸变、切向畸变、薄棱镜畸变等,因而在远离图像中心处会有较大的畸变,在精密视觉测量等应用方面,应该尽量采用非线性模型来描述成像关系。

基本设计思路

Page 10: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

Page 11: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

一、四个坐标系: 机器视觉中图像采集中用到四个坐标系:图像坐标系ICS ( r,c ) 、成像平面坐标系 IPCS (u,v) 、摄像机坐标系CCS(xc,yc,zc) 和世界坐标系 WCS(xw,yw,zw) 。机器视觉采集得到的图像数据是直接用图像坐标系表示的,即图像上的像素行和列位置 。而被测物体对象的客观位置、大小、相互关系必须通过世界坐标系才能正确描述。这两个坐标系间的转换又要通过摄像机坐标系和成像平面坐标系。

Page 12: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

• 二、四个坐标系之间的关系:• ( 1 )世界坐标系与摄像机坐标系变换关系• 世界坐标系中的点到摄像机坐标系的变换可由一个

正交变换矩阵 R 和一个平移变换矩阵 T, 用齐次坐标表示为:

0 1

1 1

c w

c w

Tc w

x x

y R T y

z z

Page 13: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

(2) 图像坐标系与摄像机坐标系变换关系 本次试验,可以认为图像采集系统的成像模型是小孔

成像模型。根据光学成像原理,摄像机坐标系 CCS 中的物体不考虑镜头畸变在成像平面坐标系 IPCS 中成像为 。其成像模型齐次坐标表示为:

0 0 0

0 0 0

1 0 0 1 01

c

c

c

xu f

yz v f

z

Page 14: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

( 3 )世界坐标系与图像坐标系变换关系(共线方程) 世界坐标系与图像坐标系变换关系 ,齐次坐标系表示为:

0

00 0

0 00 1

1 0 0 1 01

w

w

w

T

xu fx u

R T yv fy v

z

Page 15: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

三、摄像机镜头的畸变 由于摄像机光学系统并不是精确地按理想化的小孔成原理

工作,存在有透镜畸变,物体点在摄像机成像面上实际所成的像与理想成像之间存在有光学畸变误差。下图 为无畸变理想图像点位置与有畸变实际图像点位置之间的关系。

Page 16: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基本设计思路

(1) 径向变形 ( 径向畸变 ) 光学镜头径向曲率的变化是引起径向变形的主要原因。这种变形会引起图像点沿径向移动,离中心点越远,其变形量越大。正的径向变形量会引起点向远离图像中心的方向移动,其比例系数增大;负的径向变形量会引起点向靠近图像中心的方向移动,其比例系数减小。

( 2 )偏心变形由于装配误差,组成光学系统的多个光学镜头的光轴不可能完全共线,从而引起偏心变形,这种变形是由径向变形分量和切向变形分量共同构成。

( 3 )薄棱镜变形薄棱镜变形是指由光学镜头制造误差和成像敏感阵列制造误差引起的图像变形,这种变形是由径向变形分量和切向变形分量共同构成。

Page 17: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

设计目标

根据标定的图像,利用两种不同的摄像机标定法,求取摄像机的内外参数,从而得到 P 矩阵

0 0 0

0 0 00 10 0 1 0

fx u R TP fy v T

Page 18: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

摄像机标定方法:• 经典的摄像机标定方法 利用 Matlab 工具箱中的 Camera Calibration Toolbox ,

对标定板进行标定。运行 calib_gui.m ,在 GUI 界面,首先读入图片,每个摄像头选取 15-20张图片,接着进行角点提取,摄像机标定 ,优化,标定,重复进行不同的标定,最后添加一张采自地面的图片进行外参的求取工作,进而求得 P 矩阵。在标定的过程中可能遇到一些图片由于畸变使得没能正确的提取到角点,我们就要手动的输入kc (范围一般为 [-1,1] )的值进行校正,例外,如果有大批量的图片产生失真,我们可以多次点击 Recomp. corners选取这部分图片重新计算使用不同的窗口的大小(更大或更小)的特定图像的角落。

Page 19: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

经典的摄像机标定方法 算法设计思想及函数间的调用关系 该标定程序的算法流程大体如下:• 1.打印一张模板并贴在一个平面上,或者标准的标定板• 2. 从不同角度拍摄若干张模板图象• 3.检测出图象中的特征点• 4.求出摄像机的内参数和外参数• 5.求出畸变系数• 6.优化求精

Page 20: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

运行界面及过程示例

Page 21: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 22: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 23: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

• 摄像机自标定方法 利用 Matlab 进行自标定。首先,在 configdata.m修改合适的路径使其能正确的读入所采集的图片,接着运行im2piont.m将图片中的激光点(绿色),读入到内存中,运行 gocal.m ,可以得到内参。利用 Camera Calibration Toolbox for Matlab 中外参的求取函数,我们可以利用地面的确定点得到各个相机的外部参数,从而得到 P 矩阵。

Page 24: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

运行界面及过程示例

Page 25: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 26: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 27: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

经典摄像机标定法 VS 摄像机自标定法: 传统摄像机标定法•优点 张正友的平面标定方法是介于传统标定方法和自标定方法

之间的一种方法。它既避免了传统方法设备要求高,操作繁琐等缺点,又较自标定方法精度高,符合办公、家庭使用的桌面视觉系统 (DVS) 的标定要求。

•不足 需要确定模板上点阵的物理坐标以及图像和模板之间的点

的匹配,这给不熟悉计算机视觉的使用者带来了不便。手动点击角点比较繁琐,误差大。

Page 28: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

• 摄像机自标定法: 特点:仅依靠多幅图像之间的对应关系进行标定 •优点 仅需要建立图像之间的对应,灵活性强,潜在 应用范围广。 •不足 非线性标定,鲁棒性不高

Page 29: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

2. 前景提取

内 容

5. 体元染色

4. 三维重建

2. 摄像机参数标定

1. 项目简介

6. 结果自我评价

Page 30: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基于单高斯模型的前景提取

--- 单高斯模型

理论支持理论支持

  单高斯模型是一种图像处理背景提取的处理方法,适用于背景单一基本不变的场合,其他如混合高斯模型等方法都是对单高斯模型的扩展。以单高斯模型最为简便,而且采取参数迭代方式,不用每次都进行建模处理。   单高斯分布背景模型适用于单模态背景情形,它为每个像素点的颜色分布建立了单个高斯分布表示的模型。

Page 31: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

1 、建立数据结构

4 、滤波,存储

3 、前景提取同时进行背景更新

2 、背景建模算法流程

基于单高斯模型的前景提取

Page 32: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

Mean2G[j][k]

Mean2B[j][k]

MeanB[j][k]

Mean2R[j][k]

MeanR[j][k]

MeanG[j][k]

Web ServiceEnterpriseSolution

基于单高斯模型的前景提取

pixel

每个像素点的 RGB 均建立单高斯分布

Page 33: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

2 、对以后的每一帧

1. 初始化 第一帧像素值作为均值,初始标准差设为 20第一帧像素值作为均值,初始标准差设为 20

基于单高斯模型的前景提取

判断条件:abs(pixel.val[0]-MeanB[j][k])<lamda*sqrt((double)MeanB[j][k])&&abs(pixel.val[1]-MeanG[j][k])<lamda*sqrt((double)MeanG[j][k])&&abs(pixel.val[2]-MeanR[j][k])<lamda*sqrt((double)MeanR[j][k])则加入背景点中,进行更新。

背景建模背景建模

Page 34: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

1

2

3 配

cvLoadImage

pixel=cvGet2D(pRGBImg,j,k);t1=abs(pixel.val[0]-MeanB[j][k])t2=abs(pixel.val[1]-MeanG[j][k]) t3=abs(pixel.val[2]-MeanR[j][k])if(t1>25||t2>25){ 为前景点 }

判断是否和背景匹配,若匹则加入背景,进行更新

前景提取—对每帧图片前景提取—对每帧图片

基于单高斯模型的前景提取

Page 35: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基于单高斯模型的前景提取

无忧PPT整理发布

设计目标

完成情况

Page 36: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

t

基于单高斯模型的前景提取阈值的选择

T1>20||t2>20

T1>25||2>25

Page 37: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

无忧PPT整理发布

基于单高斯模型的前景提取腐蚀再膨胀

膨胀再腐蚀

中值滤波

背景更新

阈值改变

更改阈值

Page 38: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

无忧PPT整理发布

基于单高斯模型的前景提取

最终成效

Page 39: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基于单高斯模型的前景提取

和肤色有关的颜色依旧显示不出来。

Page 40: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

基于单高斯模型的前景提取

所以 GMM 才给力!

Page 41: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

内 容

5. 体元染色

2. 摄像机参数标定

3. 前景提取

1. 项目简介

6. 结果自我评价

4. 三维重建

Page 42: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

设计思路

• 三维重建的方法主要分为以下两种:• 1. 通过几何拼接拟合物理表面,来描述物体的物

体的三维构型,称为基于表面的面绘制方法。• 2. 直接将体元投影到二维显示平面上,称为基于

体元的绘制方法。

Page 43: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

设计思路

• 基于体元的重建和基于多面体的重建方法有着共同的优点:重建精度易于控制,重建速度较快,可通过适当降低重建精度来大幅提升重建速度。

• 基于多面体的重建方法的计算结果是由多面体围成的集合,其直接输出只有目标的表面信息;而基于体元的重建方法则可以在重建过程中选择是否输出目标的内部体元。并可以保留体元的内部信息,从算法上更易于实现。

Page 44: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

设计思路

• 采用“环绕型”布局的多视点环境可以为无标识点人体运动捕获提供一个十分优越的捕获环境,可以实时提供当前人体姿态在各个视角的图像;

Page 45: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

设计思路

• 获得经过前景提取的二值图像,以此作为剪影。采用各种基于 SFS (Shape From Silhouette) 理论的三维重建算法对当前人体姿态进行快速三维重建,得到三维点云、体元等形式的三维描述(Visual Hull)

Page 46: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

Inn

ovatio

n

Optimization

设计思路

Page 47: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

设计目标

• 准确性 通过遍历空间中的点,计算其分别映射到各个剪影图像的位置。判断其是否均在八副图像有效区域内部。若是,则记为有效体元。

• 快速性 仅对边界体元进行输出。

• 高效性

Page 48: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

• 首先,我们在 MATLAB 的算法的验证。• 1. 为了简化这个我过程,我们首先采用不进行体元分裂的方法。进

行初步的验证。即,该体元若在有效区域内部,则进行输出:• 实验结果如下:

Page 49: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

• 然后,我们实现的边界体元的判断和利用 MATLAB 中的动态数组实现对任意次分裂的后的边界体元进行输出。其算法过程如下:

Page 50: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 51: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统
Page 52: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统
Page 53: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 54: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

完成情况

Page 55: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统
Page 56: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

5. 体元染色

内 容

3. 前景提取

4. 三维重建

2. 摄像机参数标定

1. 项目简介

6. 结果自我评价

Page 57: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分

支撑理论:•色彩一致性理论•顺序可见性约束

Page 58: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分色彩一致性理论

设 V 1 和 V2 是同一个场景的两个任意的体元, I 是由一个相机拍摄的并且和该场景相一致的图像,如果对相机的中心点 C 进行调整,使之拍摄的图像 I 满足如下条件:存在一个非负的映射 f : R3 → R ,对场景中的任意两个体元 V 1 、 V 2 , V 1 在 I 中遮挡 V2 当且仅当 f (V1) < f (V2 )则称该相机满足顺序可见性约束。

定理 如果多视点环境捕获区域中没有任何一个体元位于由所有相机的中心点构成的凸壳 C 中,则该多视点环境中所有相机均满足顺序可见性约束。

Page 59: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分

色彩一致性理论1) 定义如果一个体元 V 满足如下条件:V 所在的场景和图像集 S 中的所有图像相一致;对 于 图 像 集 S 中的任意一对图像 I1 和 I2 , 如果 V ∈I1 ∩ I2 ,则有color(V, I1 ) = color(V, I2 ) [但是由于光线等客观原因,不可能完全一致,要取平均 ] 则称体元 V 对图像集 S 满足颜色一致性。2) 定理 如果多视点场景满足顺序可见性约束,则场景中满足色彩一致性的所有体元构成的集合 S ,是由跟 C距离最近的体元构成的集合,其中 C 是由所有相机的中心点围成的凸壳。

Page 60: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分

算法:由上到下,依次遍历

Page 61: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分算法(基于色彩一致性的快速体元着色算法)

在体元分裂重建的过程中将达到精度要求的边界体元压入 优先队列 [着色部分的前提 ]

建立一个以体元高度值作为优先级的优先队列 [神奇的现象:用 MATLAB 时候没有排序但是效果还可以,但是 VC里就必须排序,采用最简单的冒泡排序 (先放在数组中进行冒泡排序 )]

While 优先队列不空· 从优先队列中弹出 1 个体元作为当前体元

颜色累加器: nR = 0; nG = 0; nB = 0;像素计数器: nCount = 0;

Page 62: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分算法(基于色彩一致性的快速体元着色算法)

For 7 个视点计算当前体元的 8 个顶点在当前视点的投影所围成的区域

(直接用体元的一个顶点做代表,用矩阵 p 计算对应视点的u , v ,而不是对区域内做计算)

For 区域的所有像素坐标(与实际做的有差距)If 当前像素坐标在当前视点剪影图像上的值> 250(开始时是直接在彩色图像上标记,后来改为剪影图像) 将当前像素坐标在当前视点剪影图像上的值置为 0 记录当前像素坐标在当前视点原始图像上的颜色值:

nR = nR + R; nG = nG + G; nB = nB + B;记录累加的像素数量: nCount = nCount + 1;

Page 63: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分算法(基于色彩一致性的快速体元着色算法)

EndEnd

EndIf nCount > 0计算当前体元的颜色值:Voxel_CR = nR / nCount;Voxel_CG = nG / nCount;Voxel_CB = nB / nCount;保存体元颜色值End

End

Page 64: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分4 ,效果

Page 65: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分4 ,效果

Page 66: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分4 ,效果

Page 67: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

着色部分心得

1 ,好算法是王道2 , matlab 是个好东西3 , vs2010 不好用啊,不好用 ,各种配置啊 ~4 ,写代码就是个细心的人干的活啊 ~~~~各种

DEBUG……5 ,各种感谢…

Page 68: 题目: 基于多摄像机协同的运动对象分割 与三维重建系统

谢谢!