好久不给大家在凌晨更新文章了,关注“凡人机器学习”比较早的同学应该还记得,那时候基本上都是每天零点准时更新~最近更新少了的原因也是想给自己一点时间停下来思考,看看今年要做点什么事情,马上就有眉头了,到时候再跟大家分享。今天简单聊聊图像分割技术,我觉得这个话题挺有趣的
一
这个技术能干啥
咋一说图像分割技术,或者更专业一点的叫法“图像语意分析”技术有哪些用途。大家可能还不一定能马上想出来,其实这个东西正在影响着我们的生活。我也是短视频软件的中毒用户,上面有特别多的美女网红,甚至发现过高中同学长得一般的妹子也成了网红女神。这一切的原因是什么的?就是短视频软件可以很好地将人像抠图,把该瘦的地方瘦,该大的地方大。
这种分割技术也能在其它很多领域应用,比如说图像虚化,过去是需要用单反相机通过对焦以及参数调节的方式才能实现,现在用算法可以方便的把人物背景虚化:
1.输入图片
2.找到图片中的人的轮廓,做分割
3.背景虚化
另外这种技术在一些日本影片的大码方面也有特别多的用途,想必很多同学已经领略过了,接下来就介绍下实现原理。
二
简述原理
图像分割技术有很多种,原理各不相同,最近比较主流也是效果比较好的技术就是利用深度学习来做。深度学习中常用CNN和FCN做图像分割,对于CNN其实在早一些的文章我也有讲过,CNN是可以通过卷积将图像向量化,然后通过全连接层实现分类。图像分割其实跟图像分类有点像,图像分类的核心原理就是找到一张图的核心feature,如下图,飞机这个轮廓就是这张图的核心思想。把feature用向量表述出来,再比较向量距离就实现了分类,如果是把这些热力图的feature通过概率密度函数出来就是图像分割技术。
CNN和FCN是两种卷积网络,它们有什么区别呢?下面这张图表述的很清楚:
这个图分上下两部分,上面讲的是用CNN做切割,图片通过不断地卷积和pooling变成了一维向量,然后通过向量距离的方式分类。下方的FCN保留了图像的原始结构,也就是最终计算出的结果是一个二维矩阵,最终的分类评分是针对一个二维图像进行,而不是一维向量。
与传统CNN相比FCN的的优缺点如下:
优点:
①可以接受任意大小的输入图像,而不用要求所有的训练图像和测试图像具有同样的尺寸;
②更加高效,避免了由于使用像素块而带来的重复存储和计算卷积的问题;
缺点:
①得到的结果还是不够精细。进行8倍上采样虽然比32倍的效果好了很多,但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感;
②没有充分考虑像素与像素之间的关系,也就是丢失了空间信息的考虑;
ok,具体的关于FCN的实现细节还需要仔细研究这篇paper:
https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf
等读完再跟大家分享,谢谢。
珍惜每一刻每一秒
去充实自己
微信号:凡人机器学习
长按二维码关注
领取专属 10元无门槛券
私享最新 技术干货