点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
随着全面屏手机的流行,人脸识别也跟着火了。早期的人脸识别采用的是2D扫描技术,只是利用普通摄像头进行图像层面的人脸识别,安全性与识别率较低。自从去年苹果iPhone X首次引入Face ID 3D人脸识别之后,安卓机市场也开始推出一些3D人脸识别手机,3D人脸识别逐渐在全面屏手机中普及。而要想快速、准确地完成人脸识别、行人检测等机器视觉领域的应用,图像分割是其中至关重要的一环。
图像分割是什么
图像分割是计算机视觉领域的一个基础的研究方向,也是该领域的一个经典问题。它的目的是将图像划分为若干个特定的区域,从而提取出其中我们感兴趣的目标,这样既保留了图像中重要的特征信息,又有效减少了无用数据,能够提高后续图像处理的准确率和效率。图像分割在自动驾驶、机器感知、医学影像等领域有着非常多的应用。
分类
根据分割的目的及难易程度,图像分割可以分为语义分割与实例分割两种。语义分割 (Semantic scene labeling) 需要将图中每一个像素标注为某个物体类别。同一物体的不同实例不需要单独分割出来。对下图,标注为人,羊,狗,草地。其中我们最常见的一种应用:背景分割,将前景与后景分割开,就属于语义分割,这是一种最基础也最简单的语义分割。
实例分割 (Instance segment) 是物体检测+语义分割的综合体。在语义分割中,同一类的物体并不区分彼此,而是统一标记为同一类,但实例分割需要区分每一个独立的个体。例如,当图像中有多只羊时,语义分割会将所有属于羊的像素预测为“羊”这个类别。而实例分割则需要区分出哪些像素属于第一只羊、哪些像素属于第二只羊。
评价指标
无论是语义分割还是实例分割,都精确到了像素级别,相对来说是比较复杂的任务,其效果的评估方式也多种多样。其中一种评价指标IoU (Intersection over Union) 可以较好地评价图像分割的效果。
其中,交集与并集分别指的是我们预测出来的一类物体的区域与真实标记的区域的交集与并集。IoU的计算充分考虑了分割正确与错误所占的比例,若要得到好的评价,则分割正确的比例要越大,而分割错误的比例要越小。
图像分割:从2D到3D
图像分割是图像处理和计算机视觉中重要的一环,也是该领域的难点之一。传统的二维方法单纯依靠图像去分割前景,受背景影响很大。而在三维视觉中,可以直接利用深度信息分离前后景,可以很方便地进行目标提取。随着三维空间数据在计算机视觉中的应用越来越多,3D图像分割作为研究热点也受到了更多的关注。
Photoshop想必大家都听说过,其中常用的抠图操作,其实就是图像分割的一个应用,它可将图像中我们感兴趣的区域提取出来,方便进行后续处理。在PS中进行抠图是需要一定技巧的,如果没有进行过专门的学习可能会遇到一些困难,因为这是在2D图像中单纯依靠图像进行前后景分离,分割的依据仅有图像中像素的亮度及颜色,分割时将会遇到各种困难,例如,光照不均匀、噪声的影响、图像中存在不清晰的部分,以及阴影等,导致分割错误。但如果使用3D图像分割技术,抠图操作则会简化许多,有时候背景在颜色、光照角度来看十分复杂,但是在3D图像中从距离角度来看,其与前景物体有着明确的距离边界,则在这一个维度上,分割显得尤为容易。
多出一个维度的信息,分割时就多了一个可靠的依据,使得分割结果更准确、更可信;还能简化分割算法,减少计算量,降低运算复杂度。
3D图像分割:
多种方法任你选择
图像分割的方法有很多,部分传统2D图像分割的方法也适用于3D图像分割,并且又发展出了许多专门适用于3D图像分割的方法。
1
阈值分割法
阈值分割在2D图像中本就是一个常用的方法,其基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,将像素与阈值进行比较后分到对应的类别中。在深度图像中,则是以深度值作为阈值,根据一定的深度阈值,对图像进行分割。这个方法的优点是简单而快速,在背景的深度较为一致,且与前景有着较为明显的距离分界的情况下,提取出来的一般就是我们所需要的对象;但是其自适应性较差,在物体杂乱放置,距离变化较大的情况下,它的效果会大打折扣。
阈值分割是最简单而常用的方法,其效果也是最为一般的,为了提升阈值分割方法的效果,论文中对近20年来阈值分割常用的一些方法进行了概括和分类,可以据此进行改进和创新。
2
最小割算法
最小割 (min-cut) 并不是一个什么很新鲜的东西。它早就用在网络规划,求解桥问题等领域,被移植到点云分割上也不足为奇。最小割是图论中的一个概念,其作用是以某种方式,将两个点分开,当然这两个点中间可能是通过无数的点再相连的,如图所示。
如果要分开最左边的点和最右边的点,红绿两种割法都是可行的,但是红线跨过了三条线,绿线只跨过了两条。单从跨线数量上来论可以得出绿线这种切割方法更优的结论。但假设线上有不同的权值,那么最优切割则和权值有关了。点云是一种非常适合分割的对象,点云有天然分开的点,可以用点与点之间的欧式距离来构造权值,所有线的权值可映射为线长的函数。2009 ICCV 的一篇论文提出了基于最小割的点云分割算法,给定一个对象位置,构建一个k-最近邻图,选择一个前景点作为硬约束,通过计算最小割来找到前景-背景的最佳分割。
该算法更注重分割的精确性,而不是分割的自动化进行,适用于半自动化分割识别。在参数设置合适的情况下,能达到较高的精确度。但是算法有较多的参数需要设置,鲁棒性和普适性较低。
3
RANSAC算法
在现实点云数据中,往往对场景中的物体有一定先验知识。比如:桌面墙面多半是大平面,桌上的罐子应该是圆柱体,长方体的盒子可能是牛奶盒......对于复杂场景中的物体,其几何外形可以归结于简单的几何形状,这为分割带来了巨大的便利。RANSAC算法可以很好的将此类物体分割出来。
RANSAC可以从一组包含局外点的观测数据集中,通过迭代方式估计出数学模型的参数。若使用最小二乘法不能找到适应于局内点的直线,原因是最小二乘法尽量去适应包括局外点在内的所有点。相反,RANSAC能得出一个仅仅用局内点计算出模型,忽略了可能为噪声的局外点的干扰。
论文将RANSAC应用于点云形状检测,用于检测一些拥有较规则形状的简单物体,该算法能将点云分解为固有形状和一组剩余点的混合结构。
论文中使用了RANSAC算法在深度图像中分割天花板和地板从而去除背景。
RANSAC算法适用于场景中包含简单的几何外形的情况,像天花板、底板这种平面,利用RANSAC算法进行分割去除背景有着良好的效果。
4
基于神经网络的方法
随着深度学习大火,利用神经网络进行图像分割已经有了大量深入的研究,深度学习使得图像分割的准确率提高了很多。但这些研究都是针对二维图形,由于点云数据的非结构化以及点云无序性,要将深度学习应用于3D点云需要解决点云的表示问题。因此就有了利用体素网格来表示点云的方法,方法的核心是将三维数据的“立体栅格化”,之后,就可以在三维栅格数据上进行卷积网络的训练。
但是体素网格可能会带来巨大的数据量以及量化误差的代价,因此又出现了基于多视图数据以及基于点的表示方法。Massachusetts大学的ICCV2015即使用了基于多视图的卷积神经网络,该方法从不同的视角“拍摄”得到该物体的不同视角下的图像,将这些产生的二维图像作为训练数据。中间会有个“View Pooling”,接着会进行第二部分的卷积。
PointNet是斯垣福大学在2016年提出的一种点云分类/分割深度学习框架,它采用了原始点云的输入方式,对点云数据进行直接处理,而非将点云数据进行格式化处理,从而避免了将点云体素化(格网化)后产生的额外工作量以及像素点失真的问题,最大限度地保留了点云的空间特征,并在最终的测试中取得了很好的效果。PointNet使用深度神经网络对点云进行处理,从而完成高层次的点云分类和语义分割的任务。
PointNet存在的问题是只考虑了全局特征而丢失了点云的局部特征,从而出现了改进版的PointNet++,针对局部信息缺失的问题作了改进。
结语
图像分割技术与信息领域的其他学科密切相关,因此随着数学、模式识别、人工智能、计算机科学等学科中新的理论和技术的产生,出现了不少结合特定理论的分割技术,如基于小波分析和变换的多尺度分割技术、基于聚类的分割技术、基于人工神经网络的分割技术等,并且每年还不断有新的分割方法问诸于世,从而将图像分割的研究向智能化和实用化的方向发展和推进。
图像分割是由图像处理到图像分析的关键步骤,是图像识别和计算机视觉至关重要的预处理。没有正确的分割就不可能有正确的识别。3D数据的使用为图像分割技术的发展提供了新的方向,并造成了深远的影响。
从零开始学习三维视觉核心技术SLAM,扫描查看介绍,3天内无条件退款
早就是优势,学习切忌单打独斗,这里有教程资料、练习作业、答疑解惑等,优质学习圈帮你少走弯路,快速入门!
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
长按关注计算机视觉life
欢迎加入从零开始学习SLAM知识星球,详见:如何从零开始系统化学习视觉SLAM?
最新AI干货,我在看