【机情无限 精彩毕设】机械2023届毕业设计(论文)中期检查优秀案例分享第十六期——基于数据驱动无镜头成像的微形触觉传感器研究
学生姓名:钱泓宇
班班级级:机械(茅班)2019-01班
指导教师:孟祥印
毕设题目:基于数据驱动无镜头成像的微形触觉传感器研究
一、概况
(一)选题意义
近年来,由于触觉传感器能够在机器人定位、识别、感知等领域的提供高精度信息,其已经成为了机器人研究领域的热点。其中基于视觉的触觉传感器在传感表面提取光学特征,由相机进行成像并由计算机进行处理。虽然不能直接获得力信息、受到图像传感器帧率影响传感速率有限,但是基于CMOS的高分辨率感知能够将触觉传感器在空间精度上和人类指尖媲美。而现有基于视觉的触觉传感器往往体积较大,难以应用在机械手,小型机器人等场景。原因在于相机的镜头存在最近成像距离,且过于笨重,往往占用了整体体积和厚度的百分之七十以上。无镜头成像技术采用掩膜代替镜头直接放置在图像传感器前,从而构建了一种超薄的无镜头相机。本设计基于数据驱动的无镜头成像技术,设计了一种微形触觉传感器,能够对高曲率的触觉表面实现高精度、高分辨率的重建。
(二)任务分解
1.确定选题并进行初期调研
阅读现有触觉传感器尤其是视触觉相关文献
阅读无镜头相机相关文献
阅读图像优化方面神经网络相关文献
2.触觉传感器整体原理设计
无镜头相机重建原理推导
编码掩膜板设计与制作
3.相机拍摄试验台设计与制作
4.编码掩膜算法设计
无镜头相机标定工作
进行初步相机拍摄重建工作
无镜头重建算法编写与调试及多次迭代优化
5.深度学习网络设计与网络图像重建
应用工业相机拍摄并进行接口设计
神经网络优化工作
6.论文撰写与改进
二、已完成工作
(一)确定选题并进行初期调研
1.Gel-Sight传感器
Gel-Sight传感器是一种基于光学原理的触觉统称。该传感器以弹性体作为接触介质,通过内嵌相机捕捉与物后发生的变形。弹性体表面涂有光反射层,并经过多种颜色共同照由此可依据计算机视觉从相图像中重建接触面的高分辨率三维几何形状。传感器表面存在标记点,其运动可以提供法向和剪切力信息。
图1 Gel-Sight传感器原理图、实物图以及形状测量示意图
图2 Gel-Sight传感器力测量示意图
2.无镜头相机
在无镜头相机中,一个轻薄的光学编码器会代替传统对入射到感光传感器上的进行编码或调制。此时传感器捕获的测量值不再类似于真实的场景,但由于光学编码器的特殊设计,其仍包含足够的信息来恢复场景的图像。因此需要使用适当的算法或神经网络对传感器捕获图像进行重建,恢复出真实的场景图像。
图3 无镜头相机的光学编码器类型
小孔成像是基于振幅调制掩膜的无镜头相机的成像原理。单个小孔成像清晰,但因透光量不足导致图像不够明亮清晰。而振幅掩模版则是通过镀铬的方式在玻璃底板上行成有规律的图案,使其一部分透光而一部分不透光,等同于多个小孔同时成像。透光量的加大使得图像更加明亮清晰,但感光元件的图像为场景光源的复杂叠加形成的模糊图像,需要使用计算机视觉算法或深度学习网络对图像进行重建。
图4 基于振幅调制掩膜的无镜头相机的拍摄及图像重建示意图 Flatcam无镜头相机
FlatCam 是一款新型的无镜头相机,相机由振幅掩膜板以及一个 RGB 光学传感器叠加组成,场景反射光通过掩膜板后在传感器上形成由多个小孔成像叠加后的图案。
(二)设计掩膜版并进行加工
制作无镜头相机首先需要加工出符合规律的振幅掩膜板。掩膜板可以被视为一个矩阵,其中透光的部分数值为0,不透光的部分数值为1。阅读文献后可知,符合规律的掩模版矩阵是由两个 M 序列的外积并将矩阵元素中的-1赋值为0生成。本人使用MATLAB生成M 序列并进行外积操作,获得了多种规格掩模版矩阵及其示意图。
图5 无镜头相机掩膜矩阵部分生成代码及示意图
进行光刻加工需要使用掩模板图案的dxf文件。本小组将含有矩阵信息的mat文件从 MATLAB 中导出,利用Python的dxfwriter库实现了dxf文件的自动生成。
图6 用于光刻加工的掩膜图纸生成代码以及光刻掩模板实物示意图
光刻加工厂家根据图纸制作了多种规格的光刻掩膜板,实物图如下所示。最上面掩膜图案的大小为 2mm*4mm。
将掩模板安装到光学传感器上组合为无镜头相机,实物示意图如下。
图7 无镜头相机实物示意图
(三)设计新版传感器的外壳和制作弹性体的金属模具,并进行加工
使用Solidworks进行设计,传感器外壳使用3D打印透明树脂材料进行加工,金属模具使用机床切削进行加工。
图8 传感器外壳及模具
(四)无镜头相机标定
图9 标定过程示意图
1.调研标定方法
阅读基于振幅掩膜的无镜头相机 FlatCam 有关文献并经过理论推导,得到此种无镜头相机标定的算法和步骤如下(以ΦL例,ΦR同理):
a.利用维度为N的Hadamard矩阵分别生成标定图案Xk和-Xk(k=1,2…N),共2*N张,将结果中的-1元素全部赋值为0。其中ℎk代表H矩阵的第k列,公式(1)为标定Φk使用的横条纹图案,竖条纹为标定Φr使用的竖条纹图案。
b.利用显示器播放Xk和-Xk的图案,并利用无镜头相机分别记录所形成的图像,并将它们作差得到最终图像Yk,共N张。
c.对每一个Yk进行SVD分解得到uk和vk。
d.利用公式(8)计算得到ΦL或者ΦR。
2.搭建标定和图像采集过程相关软硬件平台
a.图片播放
使用一块小尺寸的 4K 显示器用于图像的显示。编写代码实现了在外接显示屏上的任意位置以任意大小播放图片的功能,同时将屏幕图片之外的背景显示为黑色。可以自动播放多张图片或者使用键盘控制播放图片的更新。
图10 无镜头相机和外接屏幕播放
b.图像采集
编写代码对感光传感器的曝光、白平衡和分辨率等相关参数进行调节,并可以用键盘控制记录当前图像。同时,在校准过程中,需要从传感器的原始数据(基于拜尔阵列的单通道灰度图像矩阵)中分离出图像的R,GB,GR,B四个颜色通道,并对这四个通道分别校准出其对应的ΦL和ΦR矩阵。然而目前所使用的传感器并非工业相机的感光元件,只能获得经过传感器内置算法计算后得到的RGB 三通道彩色图像。因此编写代码实现了彩色图像到拜尔图像的转换和拜尔图像中四个颜色通道的提取。
c.大规模图像的自动采集
在标定过程和后续的数据集采集过程中,需要对大量的图像进行拍摄。编写代码实现了显示器播放和相机拍摄的协同配合,可以在播放图片的同时自动进行拍摄。
图11 标定过程中图像采集照片
d.传感器视野计算和固定平台设计
为保证良好的拍摄和重建效果,需要保证相机掩膜与屏幕保持平行,传感器正对屏幕的中央。
同时,要尽量保证播放的图片恰好充满传感器的视野,使得传感器能够将拍摄图片完整,同时又不会拍摄到图片外的多余部分从而干扰标定以及图像的重建。由于掩膜与传感器的距离非常近,相机的视野主要由传感器的CRA(Chief Ray Angle)决定,该参数可以由本项目所使用的OV2710传感器的说明书查阅得到。取传感器最边缘处(即最大像高处)的CRA 的最大值作为θCRA,由几何关系可以得出屏幕上播放图像的边长应为
其中l 为传感器短边长,d 为传感器与屏幕的距离(本项目中该距离固定为Gelsight 传感器中相机与接触面反射涂层的距离)。最终通过实验验证了视野计算的准确性,即通过在屏幕上从中心向外围移动近似点光源,记录传感器无法接受到光线的临界位置。
图12 传感器的 CRA 数据
f.捕获图像的预处理
1)旋转与裁剪。由于固定支架的精度和装配误差,传感器的底边和屏幕的底边并不完全平行,会存在一个一般小于 0.5°的角度偏差。这样的旋转偏差会使传感器获得的图像矩阵中原本线性相关的行和列中的元素被分割到不同的行和列中,使得矩阵的可分离度大幅度降低,严重影响了标定的精度。因此编写代码,在每次标定过程前首先进行图像的旋转校准,具体操作为:对传感器捕获的图像以较小的角度间隔持续旋转,同时记录对其进行 SVD 分解后第一个奇异值与第二个奇异值的比值的最大值及其对应的角度。比值越大说明图像的可分离度越高。在此后的校正过程中会首先对拍摄得到的图片进行旋转并裁剪掉边缘后再进行后续操作。
2)中心化操作。在生成掩膜图案的过程中,需要将矩阵元素中的-1 赋值为 0,使得掩膜图案在光学上可行,但此时掩膜在数学上变得不可分离。因此需要从矩阵中减去其行和列均值,将其恢复为秩为 1 的矩阵,与±1的掩膜矩阵相对应。其数学原理如下公式所示,其中φ表示掩膜矩阵。
编写代码实现了中心化操作。
g.标定图案生成和矩阵解算代码的优化
改进标定图案的生成和保存方式,提高运行效率。
补充矩阵解算代码,加入了图像读取和存储,正负图片作差,图像预处理等操作。
h.标定过程的仿真验证
为验证矩阵解算代码的准确性,发现标定过程中硬件和软件中的问题,编写了标定过程的仿真代码,其方法为:使用开源代码中标定的ΦL和ΦR矩阵,直接利用振幅掩膜无镜头相机场景到相机捕获值的理论映射关系(公式(x))计算出标定图案对应的相机捕获图像,再对这些图像进行后续的解算操作。
图13 编写的实验平台操作方法
i.完成标定工作,获得了矩阵ΦL 和ΦR,可视化表达如图14所示。
图14 标定矩阵的可视化表示
(五)基于优化算法的图像重建过程及结果展示
利用FlatCam 相机的基于优化算法的图像重建开源代码进行图像恢复。此种方法可以较为有效的恢复标定用的条纹图像特征,对于其他类型的图片则效果欠佳。
结果展示:左边无镜头相机捕获图像,右边为重建结果。
图15 左:对于条纹的重建 右:对于绿点的重建
(六)深度神经网络设计
使用用于无镜头相机图像重建的深度学习网络 FlatNet 的开源代码,结合上文中的校准结果,进行图像重建模型的训练和验证。对该网络中的相关参数进行了修改,使其适配于本小组相机所采集的数据集。
图16 部分训练代码及训练过程图片
三、下一步工作计划
1.传感器模具设计与组装
2.传感器相关测试
3.论文撰写及相关改进
问题一:请问触觉传感器前端是如何进行触觉识别的?
回答:前端采用光度立体法:硅胶上有阵列排布的小孔,接触物体表面后硅胶上小孔形变,其背后摄像机拍摄到形变通过求解泊松方程得到接触力的信息,进而还原表面形貌。
问题二:请问毕业设计现在进度如何?
回答:其实该视觉传感器难点在于无镜头还原图像,目前已经完成,后续的泊松方程重建算法也已经建立。接下来几周只需要制作触觉传感器外壳,用无镜头相机拍摄硅胶的形变进行测试即可。最后一个月完成论文的撰写。
问题三:请问毕业设计过程中遇到了哪些困难?
回答:在最初用相机还原图像时,虽然能够基本还原轮廓,但是遇到了色彩偏移、雪花状条纹等问题,经过数周研究,提出了固定奇异值分解符号、调整相机参数和重建算法、平均图像减少随机噪声、RGB正则化等优化手段,成功得到了较好的还原效果。
在四年本科学习过程中,我曾利用课余时间多次参与科创竞赛,从中时常能体会到水滴石穿的喜悦,也让我对科研产生了浓厚的兴趣。但毕业设计不同于竞赛项目的工程性,更加需要在实验室进行独自思考,对一个细小领域潜心钻研、不断遇到并尝试解决可能其他人从未遇到过的问题。这样的模式其实更接近于真正的科研,有时会为自己小小的进步冁然而笑,有时会长时间陷入迷茫的沼泽而停滞不前。在一次次优化算法,一夜夜标定相机,一遍遍寻找更加合理的编码解码方式中,我尽量把项目推进到所期望的结果。最后回头发现每天做出一小点工作,也可以完成在项目开始前力所不及的难题。同时感到在本科阶段我得到的不仅是成绩单上的绩点,更是学会了把机械专业技能应用到具体的工作中,以及快速学习新知识的能力。怀着每天前进一小步的心态,我也能够更加从容自信地面对未来的研究生科研生涯。