Paddle图像分割7日打卡心得

非常感谢百度Paddle这次的课程,让我对于图像分割有了初步的了解。刚开始报名的时候,以为是一个实践式的课程,开始上课才发现是一个理论为主加代码实践的课程(朱老师的直播代码水平确实很强_)。本来以为可以轻松的状态学习下来,没想到学起来是很懵很充实的,找到了久违的学习感觉。

基础概念

  • 卷积层(convolution layer): 执行卷积操作提取底层到高层的特征,发掘出图片局部关联性质和空间不变性质。
  • 池化层(pooling layer):执行降采样操作。通过取卷积输出特征图中局部区块的最大值(max-pooling)或者均值(avg-pooling)。降采样也是图像处理中常见的一种操作,可以过滤掉一些不重要的高频信息。
  • 全连接层(fully-connected layer,或者fc layer): 输入层到隐藏层的神经元是全部连接的。
  • 非线性变化:卷积层、全连接层后面一般都会接非线性变化函数,例如Sigmoid、Tanh、ReLu等来增强网络的表达能力,在CNN里最常使用的为ReLu**函数。
  • Dropout: 在模型训练阶段随机让一些隐层节点权重不工作,提高网络的泛化能力,一定程度上防止过拟合。

Class1 图像分割

图像分割类型:

  • 语义分割(课程主要实现):给每个像素点分类
  • 实例分割:给每个框里的object分mask
  • 全景分割:背景像素点分类+框mask

应用场景:

  • 人像分割
  • 自动驾驶(行人、车道线、车辆分割)
  • 医学影像(CT、病理)
  • 工业质检、分练机器人

实践部分

  • 简单网络搭建:basic_model.py
  • 熟悉dataloader原理:basic_dataloader.py
  • 分割数据处理:basic_transform.py

Class2 全卷积FCN网络

paddle图像分割7日打卡心得
paddle图像分割7日打卡心得

实践部分

  • Loss函数:basic_seg_loss.py
  • FCN网络的实现:fcn8s.py
  • 训练程序:basic_train.py

Class3 U-Net/PSPNet模型

VGG

牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC提出的模型被称作VGG模型。该模型相比以往模型进一步加宽和加深了网络结构,它的核心是五组卷积操作,每两组之间做Max-Pooling空间降维。同一组内采用多次连续的3X3卷积,卷积核的数目由较浅组的64增多到最深组的512,同一组内的卷积核数目是一样的。卷积之后接两层全连接层,之后是分类层。由于每组内卷积层的不同,有11、13、16、19层这几种模型,下图展示一个16层的网络结构。VGG模型结构相对简洁,提出之后也有很多文章基于此模型进行研究,如在ImageNet上首次公开超过人眼识别的模型就是借鉴VGG模型的结构。
paddle图像分割7日打卡心得
paddle图像分割7日打卡心得
paddle图像分割7日打卡心得

实践部分

  • 动态图搭建PSPNet:pspnet.py
  • 模型预测代码:infer.py
  • UNet实现:UNet.py

Class4 DeepLab系列网络

paddle图像分割7日打卡心得
paddle图像分割7日打卡心得

实践部分

  • 动态图搭建DeepLab V3:deeplab.py
  • 对resnet.py进行修改,实现Multi_grid机制:resnet.py

总结

1.如果你不会python,可以参考你熟悉的编程语言,基本思路是一致的,差别的地方查文档;
2.多看Paddle API 文档:https://www.paddlepaddle.org.cn/documentation/docs/zh/api_cn/index_cn.html;
3.多看百度Paddle官网,各种资料可以学习;
4.学会查看调试过程中的报错信息,方便查找编码问题;

相关文章:

  • 2021-06-02
  • 2021-10-31
  • 2022-01-20
  • 2021-05-27
  • 2021-12-05
  • 2021-08-15
  • 2021-12-11
  • 2021-12-20
猜你喜欢
  • 2021-05-08
  • 2021-05-08
  • 2021-04-08
  • 2021-09-22
  • 2021-08-07
  • 2021-07-31
  • 2021-09-05
相关资源
相似解决方案