网站首页 > 技术文章 正文
Don't be surprised,今天先暂时把传统图像处理进程鸽一鸽,给大家分享一个自己在用的很棒网络,耗时两个多月终于弄明白并且成功交差,希望对你有所帮助哦。
背景
第一次看到这个思想是在2018MICCAI会议论文(CFCM:Segmentation via Coarse to Fine Context Memory),做医学图像分割。
正好工作中碰到了较难分割的器官,然后也被安排分享这篇论文和实现,头铁就开始呗。
在网上找了很多版本,都没有自己想要的现成框架,就在一个普通的U-net加Res上修改的。
所以过程中自己填坑踩坑再填坑,先看网络图,好像有点长,但它强啊,有问题讨论随时Call。
实现
训练网络主要用来做图像分割,加入LSTM为了让网络学习到长期依赖的信息。
U-net就不多赘述了,搞计算机视觉的应该都有接触,但是在CNN中加入RNN提取图像特征的确实不多,LSTM(长短期记忆机制)属于RNN中的衍生品,之后还有GRU(门控单元)是简化了的LSTM。
说白了就是在提取图像信息特征的时候类似提取序列特征思想一样提取图像的上下文信息(上文指单向LSTM,上下文指双向LSTM,双向LSTM也测试过了,这里双向LSTM通过使用Bidirectional包装器,后面会介绍),还想了深入解LSTM机制的请自行头条。
CNN可以提取空间特性,LSTM可以提取时间特性,ConvLSTM可以同时利用时空特性。
ConvLSTM核心本质还是和LSTM一样,将上一层的输出作下一层的输入。不同的地方在于加上卷积操作之后,为不仅能够得到时序关系,还能够像卷积层一样提取特征,提取空间特征。这样就能够得到时空特征,并且将状态与状态之间的切换也换成了卷积计算。
ConvLSTM2D层,也是一个LSTM网络,但它的输入变换和循环变换是通过卷积实现的,ConvLSTM2D的输入和输出形状如下:
输入形状:
5D tensor(samples,time,channels,row,cols)
输出形状可选:
5D tensor(samples,time,output_row,output_col,filters) 返回每个序列的结果
4D tensor(samples,output_row,output_col,filters)只返回最后一个序列的结果
其中,time代表每一个输入样本的图像序列所具有的图像帧数,这样就用到了TimeDistributed包装器。
老规矩,能明白我描述的东西就够了,理论性的东西感觉没有必要理解得太深入,知道在干什么就好啦。
直接实操,还需要掌握的有上面提到的两个包装器:TimeDistributed层和Bidirectional层
1.使用TimeDistributed包装器,将一个图层应用于输入的每个时间片(就是把time维每一序列单独做卷积操作提取特征)
keras.layers.TimeDistributed(layer)
2.使用Bidirectional双向封装器,将单向LSTM扩展,前向传播的时候增加学习参数,利用到后面序列(未来)的信息提取特征,使用时包装在想使用的LSTM层就好
keras.layers.Bidirectional(layer, merge_mode='concat', weights=None)
测试结果:
实测效果不错,在推广使用,有效避免2D断层,3D上下界假阳假阴问题。
前处理的话针对不同领域分割图有不同的前处理方法,数据增强时可以使用平移/旋转/噪点/场强增强等方法
个人建议序列值为10左右做尝试,除此之外还需考虑算力和效率之间的平衡
(1)输入序列增加后单双向LSTM最优dice值均升高
(2)双向LSTM较单向收敛更稳定更快
头条限制,想要原生代码请点赞关注,并在后台私信Code For ConvLSTM ,see u again。
猜你喜欢
- 2024-10-11 MXNet 宣布支持 Keras 2,可更加方便快捷地实现 CNN 及 RNN 分布式训练
- 2024-10-11 MXNet开放支持Keras,高效实现CNN与RNN的分布式训练
- 2024-10-11 新型循环神经网络IndRNN:可构建更长更深的RNN
- 2024-10-11 循环神经网络(RNN) 循环神经网络rnn可以处理的数据
- 2024-10-11 DNN,CNN和RNN的12种主要dropout方法的数学和视觉解释
- 2024-10-11 「像训练CNN一样快速训练RNN」全新RNN实现,比优化后的LSTM快10倍
你 发表评论:
欢迎- 02-20利用神经网络模型检测摄像头上的可疑行为
- 02-20直击心灵:高频核心听力你了解吗?_高频听力的正常范围值是多少
- 02-20YOLOv8 POSE+XGBoost进行人体姿态检测
- 02-20100个篮球英文术语详细解释,从此听懂NBA解说
- 02-20最全紧固件中英文对照,外贸必备词典一
- 02-20带你开发一个视频动态手势识别模型
- 02-20详细介绍一下Java基础中HashMap如何进行扩容操作?
- 02-20GTX 1070 Ti显卡评测:你会购买哪一款?
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)