当前位置: 首页 > news >正文

图像分割分析效果

下面是训练集的效果,

# 训练集dice: 0.9219 - iou: 0.8611 - loss: 0.0318 - mae: 0.0220 - total: 0.8915
basnet_model.evaluate(train_dataset) 损失我只用了二元交叉熵,主要比较损失的影响

上面就是模型在训练集上的效果,可见,模型在训练集上拟合的非常好,既学到了一些有用的信息,但是也学习到了一些在训练集上特有,在验证集上没有的信息,这样的模型训练出来意义不大,我们需要的是能预测未知的模型,希望的是模型学习到通用特征,然而,由于数据集自身问题,模型学到的特征未必都有用,或者有些不但没用,反而起反作用,比如,一个只有半截身子的人在其中一个图片是掩码,但是在其他图片确是背景,这样模型在遇到这样情况时,它就不知所措,因为你得猜它是掩码还是背景,有些被裁剪的半截身子的人在训练集中是掩码,在验证集中可能只是背景,所以如果有自相矛盾的数据集,那肯定没法训练好模型,必须确定好,整个身子出现的人是前景,半截的是背景,不能这个里面是掩码前景,那个里面是背景,别说模型,让你猜,你能猜到它应该是啥吗

这种图像分割不好做图像增强,比如裁剪,如果一张图片是一整个人做前景,你裁剪了之后,这个人半截身子了,但是他还是前景,这样模型就会觉得半截身子的人也可以做前景,但是还是我说的,给你一个半截身子的人图片,你是该当它前景好呢,还是背景好呢,难道要让模型去学习瞎猜,还有随机旋转和缩放,你图片这样做了,掩码也得这样做同样的变换,事实上,在随机旋转后,那片空白区域是要填充的,,默认附近填充,或者填充背景,但是可能都不好,我见过一张图片旋转后,因为图片在图像的边角位,所以旋转后填充了一些,你总不能掩码也填充吧,反正能用的增强未必多,所以我决定用dropout,随机丢弃一些噪音信息

下面是在验证集的表现

# 验证集504个样本,dice: 0.8096 - iou: 0.7138 - loss: 0.1267 - mae: 0.0429 - total: 0.7617
len(val_dataset)*BATCH_SIZE

可以看到评估效果,这种就是明显过拟合,拟合了太多在验证集并不适用的信息,还有如果模型是在拆分的数据集上拆分得到的,你下次重启内核,再评估就不准确了,因为这时的评估集如果变了,评估集中有一些训练集数据,那模型评估效果肯定好,还有k交叉,其实没用,因为你这次评估的数据你总不是丢了,你是再次放入训练集了,这样做多次训练后,你验证集上的评估效果和训练集是一样的,因为都被模型拿来拟合了,这样的模型在未见过的数据上有效果才怪呢

我好无语,上面那个是什么?模型竟然还会去做预测,看来这个数据集太杂,啥都拿来当掩码,这就是我说的,没有准则,你比如提取就得有个框框,你要让模型预测什么,而且在这里面不能有相反的逻辑,比如我说的,一张图片里,半截身子的人是掩码,结果在另一张图片里是背景,你说它应该拿半截身子的人当前景掩码,还是背景好呢?也就是不能自相矛盾,不能出现同一种事物既是掩码,又是背景的情况,你让人预测也不好预测

 总感觉没有结构化损失少点什么?一会把结构化损失加上看看

 dropout后:# dropout后:dice: 0.9143 - iou: 0.8488 - loss: 0.0335 - mae: 0.0236 - total: 0.8816

 

 

 

 

 

 

 

 

 下面验证集效果dice: 0.8113 - iou: 0.7135 - loss: 0.1024 - mae: 0.0409 - total: 0.7624

看到没有,左边图片中的那个半截身子的人,在真实掩码里是有的,模型预测没有,这就是那种自相矛盾的真实掩码

 

 

 

 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • RickdiculouslyEasy-CTF-综合靶场
  • GMT绘图笔记:在地图上绘制直线而不是大圆弧
  • 基于vue框架的城市智慧地铁管理系统73c2d(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • java中jar包替换指定类的方法
  • Vue3.5新特性
  • iOS——APP启动流程
  • 视频监控系统选型:为何EasyCVR视频汇聚平台成为优选方案
  • 太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡
  • Vue3中的监听器。toRefs与toRef的区别
  • 两个月冲刺软考——重点理解传值方式与传引用方式的区别
  • Linux基本
  • vscode ros代码调试
  • 软件无线电1-MATLAB实现FM调制解调
  • STM32的GPIO使用
  • 栈—数据结构
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • Android框架之Volley
  • js 实现textarea输入字数提示
  • React Native移动开发实战-3-实现页面间的数据传递
  • react 代码优化(一) ——事件处理
  • Vim Clutch | 面向脚踏板编程……
  • webgl (原生)基础入门指南【一】
  • 关于List、List?、ListObject的区别
  • 前嗅ForeSpider中数据浏览界面介绍
  • 入口文件开始,分析Vue源码实现
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 详解移动APP与web APP的区别
  • 鱼骨图 - 如何绘制?
  • 原生 js 实现移动端 Touch 滑动反弹
  • 06-01 点餐小程序前台界面搭建
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​什么是bug?bug的源头在哪里?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • ${factoryList }后面有空格不影响
  • $L^p$ 调和函数恒为零
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (javascript)再说document.body.scrollTop的使用问题
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)JAVA使用POI操作excel
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)VirtualBox安装增强功能
  • (转)winform之ListView
  • (自用)gtest单元测试
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .CSS-hover 的解释