视频帧间插值(一)Softmax Splatting for Video Frame Interpolation

视频插帧是计算机视觉许多应用中的一个传统问题,splatting transformer network 技术已被广泛用于两幅图像之间的新图像合成:非监督深度估计,非监督光流预测,光流预测,新视角合成,视频插帧,视频增强,视频编辑、视频压缩、去除视频运动模糊中。视频插帧方法被分为flow-based、kernel-based、phase-based。这些方法都是估计出两帧之间的光流场,一般通过warp前一帧来得到中间帧。视频插帧在某些场景下特别困难,比如场景和物体在不断运动和变化,或者存在遮挡时,插帧问题会同时存在多个解。

这篇博客介绍CVPR2020的一篇论文,是flow-based的方法。这篇文章主要贡献有两个,一是使用了softmax splatting的方法来处理不同源像素warp之后到同一点的问题,二是使用了特征金字塔,应该是对大位移有更鲁棒。…

保边滤波

自然图像都存在噪声,噪声和边缘在局部方差方面表现相似,一般的滤波器无法区分噪声和边缘,于是对其统一处理,因此很多情况下,滤波的同时,边缘也被处理模糊掉了。保边滤波器(Edge Preserving Filter)是指在滤波过程中能够有效的保留图像中的边缘信息的一类滤波器。

常见的保边滤波器有如下几种:双边滤波(Bilateral filter)、引导滤波(GuidedFilter)、加权最小二乘法滤波器(WLS)、非均匀局部滤波器(NLM)、双指数边缘平滑滤波器(BiExponentialEPF)、选择性模糊和表面滤波。…

自动白平衡AWB

人类视觉系统具有颜色恒昌性特点,一次人类对物体观察不受光源影响。但是sensor在不同光照下,物体呈现的颜色不同,在晴朗的天空下(高色温)会偏蓝,在烛光(低色温)下会偏红。为了消除光源对图像传感器成像的影响,模拟人类视觉系统的颜色恒常性。保证在任何场景下看到的白色是真正的白色。

对于RGB三通道图像,乘以一个对角阵就可以实现白平衡,白平衡计算的核心就是计算Rgain和Bgain,下文中简称RG和BG。…

Python中类似Matlab-interp2的插值函数:RectBivariateSpline与interp2d

在matlab中我们可以通过interp2在矩形网格内进行曲线插值,那么在python中有没有有类似的函数呢?有,并且有很多,都在scipy.interpolate模块中。这篇博客主要说两个比较相似的:interp2d和rectBivariateSpline。两者比较相似,如果输入是规整的网格点,那么使用rectBivariateSpline会更快。下面给一些介绍和例子:…

Python解析Raw格式图像

简记下使用rawpy提取raw图像并转化为rgb。rawpy就是libraw的python封装,rawpy.imread直接可以读到raw数据,postprocess方法可以走完isp(BWC、RBGain、demosaic、gamma),得到一副RGB图像。postprocess的参数可以用来控制后处理流程,raw还有enhance模块,主要封装了坏点矫正,更细致的修改查阅官方文档。…

图像质量评价(一)Imatest介绍与使用

目前接触到的测试图像质量的软件有imatest和dxo analyzer,图像质量的评测需要和测试卡、光源灯器材结合使用,用于测试的器材通常价格昂贵并且越贵越好。网上imatest的破解版软件比较好找,所以相对于dxo analyzer小白用户更多,所以这篇博客简单接受imatest的安装和基本使用。

这篇博客适合新手小白,因为博主也是新手小白,大神可以不用点进来看啦。…

浅谈HDR

成像过程就是测量自然场景的光照强度,如果把图像传感器比作一把测量光强的尺子,那么成像的Dynamic Range(动态范围)就是这把尺子的量程。如果我们需要测量的自然场景超过了这把尺子的测量范围,我们应该怎么做呢?我们可以用这把尺子多次测量,每次测量不同范围,最后将每次测量的结果拼接起来,相当于用了一把大量程的尺子,这种技术就叫做HDR技术。

我们可以生成一副大动态范围(HDR)的图像,但是我们的显示器显示不了那么大动态范围的图像,同时我们还希望看到更多细节,这就要用到动态范围压缩技术(通常是Tone Mapping)。这篇博客简单介绍HDR技术,正如标题   浅谈~   一下…

摩尔纹的产生和消除

现代图像传感器一般为面阵CMOS或CCD,当传感器像素空间频率和条纹空间频率接近时,就会出现摩尔纹。从原理上讲就是两个频率相近的波相互叠加,会产生差拍。

摩尔纹的消除比较困难,目前主要方法分为两类,第一类就是从设计上避免摩尔纹产生,将成像弥散圆设计的比像素要大,这样相当于降低成像的分辨率,来保证采样频率不会到达条纹频率;第二类方法就是后期通过算法来解掉摩尔纹,对于彩色图像,需要结合bayer pattern来处理,photoshop就有这样的功能。…

Matlab解析DNG格式图像

DNG是一种很灵活的图像格式,是在Tiff基础上拓展来的,随着传感器技术、后期图像处理能力的增强,我们很多时候直接将ISP采集的图像数据直接Dump下来,不做任何处理,这就是RAW图,同时我们把处理RAW图需要必要信息存下来(Bayer Pattern、白平衡、噪声水平等),然后我们就可以进行后期处理了。总之,DNG是一种RAW图格式,其中除了数据段之外,有很多标签信息。…

标志识别之AprilTag3

AprilTag2在速度上是不尽人意的,原因在于梯度计算和聚类的庞大计算和内存开销。在AprilTag3中进行了多项优化,不仅算法更加鲁棒,时间和内存开销大幅减小,更支持了全新格式的二维码。粗看了下,主要做了几点优化:查找矩形前,通过一种新的二值化方法,直接在二值图上查找(这样带来的风险就是二值化失败,矩形形状被破坏,就无法检测到),在查找四边形时,在并查集搜索时提前截断,比起AprilTag2少了许多不必要的搜索。

另外,在构建AprilTag3时和AprilTag2不同,在windows下构建需要自己配置windows下的pthread库,在Linux用gcc构建时,Tag.c文件中有许多大数组,gcc对这类数组编译非常非常慢。AprilTag3也被集成在了VISP中作为一个模块使用,总之AprilTag3使用起来还是非常容易的,AprilTag这种二维码在定位查找方面还是非常有用的,简单记录一下。…

快速线段检测之EDlines算法

博主认识的几种线段检测算法有:Hough变换法、LineSegementDetector (OpenCV3中加入的算法)、FastLineDetector(在opencv的contribute模块中)。LSD算法的速度让人望而却步,FLD算法一大堆参数很难调优,并且速度并没有特别快。在使用这些算法的时候或多或少都遇到了问题,于是EDlines算法浮现在眼前,快速,并且效果不错。 Ed就是EdgeDraw的缩写…

机器视觉中的光源与打光

机器视觉主要解决四大问题:定位、测量、检测、识别。在机器视觉中打光和光源影响着系统的稳定性,比如在测量应用中,光照发生10%-20%的变化,就可能导致图像边缘偏移1-2个像素,这些问题在算法层面是不容易解决的。所以了解光源和打光非常重要…

聊聊条码与二维码检测算法的优化

条码和二维码搞了许久,之前在做二维码识别的优化,想能搞出多少花来呢?最近需要在极小的内存下完成二维码的识别和解码。顿时头大了,不过锅刚刚解了,就来说一说。

条码和二维码的特点就是我们前处理之后,都是处理的二值图像。那么在二值图像上操作有什么好方法呢?不卖关子,说出答案了:游程编码。…

图像游程编码的腐蚀与膨胀操作

最近英语课上聊到了互联网兴起以来,交流方式的变化,博客是互联网最早的形式之一,已经相当老了,现在的交流变得更加简短,与微博和朋友圈不到一百字的简短相比,博客是相当长的了。可能是现代人太吝啬自己时间了,写博客的人越来越少,并且博客质量下降,得益于信息的快速传播,也出现了天下文章一大抄的现象。不过我想,还是有些东西需要实实在在的篇幅来沉淀的,于是想起有还有坑没有填,就快点过来把坑填完了。

通常我们使用游程编码的原因是因为游程编码更快,并且更加节省内存,游程编码可以做很多事情,其中就包括形态学操作,这篇博客将详细介绍在游程编码上实现形态学操作。…