火爆 GitHub!这个图像分割神器开源了

肉眼品世界

共 3976字,需浏览 8分钟

 · 2021-04-17

最近全球各大新势力造车公司简直不能再火!看着蹭蹭飙升的股价实在是眼红的不要不要的。而懂行的人都知道,以 Telsa 为首,各大公司都采用计算机视觉作为自动驾驶的技术底座,而其中正是通过图像分割技术,汽车才能分清楚哪里是路,哪里是人。


今天要给大家介绍的这个开源套件,就涵盖业界最前沿的图像分割算法,并效果超群,这就是 PaddleSeg!!OMG,还在等什么?!盘他!盘他!盘他!


除了在自动驾驶技术拥有绝对重要的地位,图像分割技术在抗疫最前线的医疗阵地也发挥了巨大作用!比如基于图像分割技术开发的《CT 影像的肺炎筛查与病情预评估 AI 系统》,可快速识别 CT 影像上的肺炎病灶信息,帮助我们的白衣战士节省了大量诊断和评估时间!


那么图像分割还有哪些应用呢?比如可以做人像分割 + 背景替换。你以为我在旅游?其实我在加班



还可以做人体解析,同全球冠军模型分析全球冠军运动员的行为轨迹,像《夺冠》里描述的,现在体坛也已经是全面的数字化战争!



我们还可以基于分割技术进一步把彩色图像变素描。



在工业巡检场景中,图像分割技术还可以细致的分割出的表计盘刻度和指针,实现自动读数系统。



遥感图像分割技术还可以帮助国土资源监控保护单位、气象单位等实现地面、大气检测,建筑物检测、农耕用地检测、地块变化检测、地面目标检测、气旋检测等等!



看到这里,你还在等什么?!PaddleSeg又有用、又好玩,在此强烈建议大家去尝试。




那么PaddleSeg到底是个啥呢?去Github上去扒了一下官方的解释:


PaddleSeg是基于飞桨开发的端到端图像分割开发套件,涵盖了高精度和轻量级等不同方向的大量高质量分割模型。通过模块化的设计,帮助开发者完成从训练到部署的全流程图像分割应用。下面就给大家讲讲PaddleSeg的特点和近期更新的内容:



精度全面领先的开源模型


目前PaddleSeg开源了在Cityscapes验证集上达到87% mIoU的语义分割模型是目前业界最高精度的实现。该模型基于Hierarchical Multi-Scale Attention结构,通过损失函数、训练策略、评估方法等方面的优化,相比HRNet的81.5%更是高出了5.5个百分点。


https://github.com/PaddlePaddle/PaddleSeg/tree/release/v2.0/contrib/CityscapesSOTA



国际冠军都在用的PaddleSeg


PaddleSeg不仅能力覆盖全面,而且里面的独立算法还极其优秀!在刚刚结束的神经信息处理系统大会NeurIPS 2020(Conference and Workshop on Neural Information Processing Systems)上,百度团队就是使用PaddleSeg中的HRNet一举夺冠,准确性得分领先第二名0.37,推理速度更是第二名的7倍!!!目前该代码已经开源,链接如下:

https://github.com/PaddlePaddle/PaddleSeg/tree/release/v2.0/legacy/contrib/NeurIPS_SN7




焕然一新的PaddleSeg


是不是感觉PaddleSeg很厉害呢?其实咱们刚刚看到的只是冰上一角而已!近期,随着飞桨框架升级了2.0版本,PaddleSeg也随之进行了升级。在新的版本中,PaddleSeg提供了:

  • 更加丰富的高精度模型算法:包括20+分割网络、50+预训练模型,模型精度均优于其它实现方式。

  • 优秀的动转静功能:PaddleSeg依托飞桨框架集成了优秀的动转静功能,让用户在部署上具有更好性能。

  • 更加灵活易用的开发体验:PaddleSeg在原先配置文件运行方式之外又新增了API接口调用方式,更加灵活易用。



下面将为大家细细分解!


PaddleSeg全景图



更加丰富的高精度模型


PaddleSeg支持U-Net,PSPNet,DeepLabV3+,OCRNet等20多种主流分割模型,提供了Xception、MobileNet、ResNet、HRNet等多种骨干网络,同时目前开源的模型的精度均高于业内同类产品的实现。


为了进一步验证PaddleSeg模型的精度,我们分别在两个主流数据集Cityscapes和PASCAL VOC 2012上和其它同类产品的模型做了详细的对比实验。


下图展示了对比结果。左边模型使用ResNet50做为骨干网络,右边模型使用ResNet101做为骨干网络。可以看到与其它实现相比,PaddleSeg模型的精度明显更加优秀!


Cityscapes数据集对比实验(其中FCN和OCRNet使用HRNet_w18作为主干网络)


基于PASCAL VOC 2012数据集对比实验(FCN和OCRNet使用HRNet_w18作为主干网络)



优秀的动转静功能


基于飞桨框架2.0的PaddleSeg,提供了更加易用完备的动态图体验。虽然动态图在训练过程中更加方便调试,但是在部署上却明显吃力。为此飞桨提供了一套模型动转静的方式,在PaddleSeg中仅需添加一个装饰器并调用API接口paddle.jit.save,即可完成模型的转换。具体我们可以看下面的例子:

  • 定义网络
import numpy as np
import paddle
# 定义了一个简单全连接网络SimpleFcLayer
class SimpleFcLayer(paddle.nn.Layer):
    def __init__(self, batch_size, feature_size, fc_size):
        super(SimpleFcLayer, self).__init__()
        self._linear = paddle.nn.Linear(feature_size, fc_size)
        self._offset = paddle.to_tensor(
            np.random.random((batch_size, fc_size)).astype('float32'))
# 添加装饰器
    @paddle.jit.to_static
    def forward(self, x):
        fc = self._linear(x)
        return fc + self._offset
  • 模型转换
import paddle

fc_layer = SimpleFcLayer(342)
in_np = np.random.random([34]).astype('float32')
input_var = paddle.to_tensor(in_np)
out = fc_layer(input_var)
# 使用paddle.jit.save接口存储模型
paddle.jit.save(fc_layer, "./fc_layer_dy2stat", input_spec=[input_var])

转换成静态图模型做部署就可以获得更好的性能,实现单车变跑车的进化!


更加灵活易用的开发体验


在用户使用体验上,PaddleSeg提供了两种使用方式:

  • 用户通过PaddleSeg中组合好的配置文件,使用简单的命令实现训练到部署的全流程。

  • PaddleSeg还提供了API形式,用户通过几行代码即可实现模型的训练、评估和推理。



结束语


介绍了这么多,小伙伴一定心动了想要跃跃欲试吧?如果大家觉得PaddleSeg给您带来更好的体验,那就请您动动小手, star支持一下!


Github地址:

关注公众号“肉眼品世界”,回复"开源010"获取



推荐阅读:

世界的真实格局分析,地球人类社会底层运行原理

数字化转型的本质(10个关键词)企业IT技术架构规划方案

华为内网最火的文章:什么是内卷?

不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)

【中台实践】华为大数据中台架构分享.pdf

阿里达摩院《机器学习算法学习指南》火了,限时开放下载!

小米用户画像实战,48页PPT下载

华为大数据解决方案(PPT)


浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报