# 项目过程
## 项目介绍
### 道路裂缝缺陷检测:检测道路中的裂缝,无项目背景
- 数据:分为两类,正常、裂缝
![001.jpg](data%2Ftrain%2Fimgs%2F001.jpg)
![001.png](data%2Ftrain%2Fmasks_color%2F001.png)
## 方案介绍
### 数据预处理
- 将原始数据标签处理为两类,正常和裂缝
- 原始图片均为320*480,使用的显卡为2080,内存足够,不进行图片大小调整
### 模型后处理
- 二分类使用softmax处理,使用最大值作为结果分类
- 效果如下,看着还行,但是还是存在一些问题,需要优化,使用dice_coeff作为评价,训练135轮,得分为0.7208,训练loss:0.0239
- 原图
- ![097.jpg](readme%2F097.jpg)
- mask
- ![097.png](readme%2F097.png)
- pre
- ![out_097.jpg](readme%2Fout_097.jpg)
### 算法选择
- 由于本项目是为了更加深入的熟悉语义分割,所以使用传统的unet网络进行训练,不做其他模型之间的对比
### 推理加速方案
- 在推理方面,使用C++通过tensorrt+cuda的方式对模型推理进行加速,然后权衡是否使用量化技术
## 方案优化过程以及结果
#### 1、加入边缘检测(弃用)
- 对图片进行边缘检测(高斯模糊+canny)
![edges_115.jpg](readme%2Fedges_115.jpg)
- 将边缘检测的结果作为原图像的一个维度,从最开始的RGB变为了RGB-edges(4通道)
- 效果:得分为0.7171,没有提升,反而下降了;但是查看推理结果,模型学到了一些优化前没有学到的
- ![out_097_edges.jpg](readme%2Fout_097_edges.jpg)
#### 2、将边缘检测替换为对比度调整,让裂痕更加明显
- 添加了对比度(第四通道变为对比度调整)
![contrast_97.jpg](readme%2Fcontrast_97.jpg)
- 效果:得分为0.7252,有一定的提升,模型学习到了一些细节
![out_097_contrast.jpg](readme%2Fout_097_contrast.jpg)
#### 3、优化损失函数(弃用)
- 因为是二分类,在加上是语义分割,所以是存在正负样本不均衡的情况的,需要对正负样本权重进行调节
- 根据正负样本的比例作为权重
- 效果:0.6725,效果变差了,结果如下:因为调整了类别的权重,所以模型的结果比较偏重于裂缝,也可以看到,模型的输出结果变粗了
![out_097_contrast+class_weights.jpg](readme%2Fout_097_contrast%2Bclass_weights.jpg)
#### 4、增加数据量
- 目前使用的数据量有118条,数据量较少,采用过采样的方式增加数据量
- 过程:因为该问题是道路的裂缝,所以是可以将数据进行上下翻转、左右翻转、上下+左右,将数据量增加到原来的四倍
- 效果:0.932,在第二步优化的基础上,提升了20个点,有较大的提升效果;
- 在下面结果图中也可以看出来,模型学习到了更多关于裂缝的细节,效果也是比较显著
- ![out_097_contrast+sampling.jpg](readme%2Fout_097_contrast%2Bsampling.jpg)
#### 5、尝试加入自注意力机制
- 在上一步的基础上就加入自注意力机制,使用CBAM混合注意力
- 使用上一步得到的预训练模型作为基础,初始化模型的权重
- 经过160轮的训练,最终评分为0.9939,提升了6个点,有较大的提升效果;耗时平均为50.62ms,帧率大约为20帧
- 看下方的效果图,也可以看出来,之前没有找到的一些细节,现在也更加完善了
![out_097_contrast+sampling+attention.jpg](readme%2Fout_097_contrast%2Bsampling%2Battention.jpg)
#### 6、一些结果展示
- 模型地址:https://www.aliyundrive.com/s/ymnSEacKSjT
- 由于阿里云分享文件的限制,打开文件应该是空的,需要到云盘中找
- 最终的模型使用的方案,增加对比度通道、对数据集进行上下左右翻转以达到增加数据量的效果、增加注意力机制
![out_097_contrast+sampling+attention_img.jpg](readme%2Fout_097_contrast%2Bsampling%2Battention_img.jpg)
![out_302_contrast+sampling+attention_img.jpg](readme%2Fout_302_contrast%2Bsampling%2Battention_img.jpg)
![out_322_contrast+sampling+attention_img.jpg](readme%2Fout_322_contrast%2Bsampling%2Battention_img.jpg)
## 推理加速
#### 使用C++ 的Tensorrt+cuda框架进行推理加速
- 1、使用cuda去做模型结果的后处理,平均耗时:33ms,提升17ms,帧率约为30帧;推理出的结果也与python中的一致
![097_tensorrt_result.jpg](readme%2F097_tensorrt_result.jpg)
![097_tensorrt_result_2.jpg](readme%2F097_tensorrt_result_2.jpg)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
方案介绍 数据预处理 将原始数据标签处理为两类,正常和裂缝 原始图片均为320*480,使用的显卡为2080,内存足够,不进行图片大小调整 模型后处理 二分类使用softmax处理,使用最大值作为结果分类 效果如下,看着还行,但是还是存在一些问题,需要优化,使用dice_coeff作为评价,训练135轮,得分为0.7208,训练loss:0.0239 原图 算法选择 由于本项目是为了更加深入的熟悉语义分割,所以使用传统的unet网络进行训练,不做其他模型之间的对比 推理加速方案 在推理方面,使用C++通过tensorrt+cuda的方式对模型推理进行加速,然后权衡是否使用量化技术
资源推荐
资源详情
资源评论
收起资源包目录
使用unet实现的道路裂缝检测-语义分割,然后使用Tensorrt+cuda进行加速推理 (439个子文件)
main.cpp 2KB
pretreatment.cu 12KB
infer.cu 7KB
post_processing.cu 5KB
cuda_def.cu 425B
pretreatment.h 1KB
infer.h 1021B
post_processing.h 893B
cuda_def.h 292B
contrast_97.jpg 74KB
097_tensorrt_result_2.jpg 69KB
320.jpg 47KB
320.jpg 47KB
089.jpg 43KB
097_tensorrt_result.jpg 41KB
090.jpg 41KB
054.jpg 40KB
098.jpg 39KB
035.jpg 38KB
out_097_contrast+sampling+attention_img.jpg 38KB
edges_115.jpg 38KB
096.jpg 37KB
088.jpg 37KB
097.jpg 37KB
097.jpg 37KB
095.jpg 36KB
109.jpg 36KB
091.jpg 36KB
092.jpg 36KB
055.jpg 35KB
021.jpg 35KB
012.jpg 35KB
115.jpg 35KB
099.jpg 35KB
027.jpg 35KB
073.jpg 35KB
118.jpg 35KB
082.jpg 35KB
111.jpg 35KB
108.jpg 34KB
114.jpg 34KB
107.jpg 34KB
112.jpg 34KB
203.jpg 34KB
101.jpg 34KB
094.jpg 33KB
053.jpg 33KB
113.jpg 33KB
116.jpg 33KB
083.jpg 33KB
103.jpg 33KB
030.jpg 33KB
052.jpg 33KB
031.jpg 33KB
013.jpg 33KB
024.jpg 33KB
085.jpg 33KB
093.jpg 33KB
077.jpg 33KB
019.jpg 33KB
110.jpg 32KB
048.jpg 32KB
206.jpg 32KB
105.jpg 32KB
029.jpg 32KB
070.jpg 32KB
016.jpg 31KB
065.jpg 31KB
087.jpg 31KB
102.jpg 31KB
100.jpg 31KB
304.jpg 31KB
028.jpg 31KB
084.jpg 31KB
117.jpg 31KB
006.jpg 31KB
067.jpg 31KB
205.jpg 30KB
050.jpg 30KB
009.jpg 30KB
106.jpg 30KB
301.jpg 30KB
104.jpg 30KB
208.jpg 30KB
026.jpg 30KB
020.jpg 30KB
202.jpg 29KB
207.jpg 29KB
023.jpg 29KB
078.jpg 29KB
327.jpg 29KB
069.jpg 29KB
001.jpg 29KB
064.jpg 29KB
061.jpg 28KB
002.jpg 28KB
311.jpg 28KB
086.jpg 28KB
066.jpg 28KB
326.jpg 28KB
共 439 条
- 1
- 2
- 3
- 4
- 5
资源评论
云哲-吉吉2021
- 粉丝: 3951
- 资源: 1129
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IgH EtherCAT主站架构及其实现详解与应用接口1.6.2 (2024.10.31)
- GoView 是一个Vue3搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求
- 一种惯性测量组合现场快速标定方法
- 三星 Samsung Xpress SL M2670 激光多功能一体机系列
- Springboot+ChatGLM 实战AI数字人面试官系统14章
- 家政项目微信小程序ssm
- 卡诺图学习文档.doc
- 创维5R02机芯 14K24系列 20161014主程序软件 电视刷机 固件升级包
- 基于YOLOv5的智能生活垃圾分类系统源码+详细文档说明(高分毕设)
- 三极管文档学习.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功