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

弱监督语义分割学习计划(1)-简单实现Open Vocabulary Label但是效果不好

零: 项目说明

是这样的一个事情,经过与deepseek的一番讨论和交流,DeepSeek为我设计了一个30天高强度学习计划,重点聚焦弱监督/无监督语义分割在野外场景的应用,结合理论与实践,并最终导向可落地的开源项目。目前开始了计划学习的第一天:

主要想法是做基于大模型的弱监督语义分割,主要步骤如下:

  • 自动生成标注:大模型生成图像级标签边框涂鸦点标注等几种弱监督标注类型的标注:
  • 生成伪标签:采用基于类激活图(CAM, Class Activation Mapping)的方法 + CRF后处理,利用分类网络生成伪标签
  • 训练分割模型:将伪标签作为监督信号,训练U-NetDeepLabv3+等分割网络。

代码在这里:不断改进中:
https://github.com/Tipriest/30Days-for-segmentation

一: 自动生成图像级标注

前面的对视频提取帧,提取关键帧的代码都很简单,最后的效果大致就是这样:
在这里插入图片描述

1.1 采用CLIP生成图像级标注

CLIP这个模型很有意思,可以形成图像-文本对,也就是给定一系列的词,给定一张图片,可以选择出最高可能性的图片,比如下图所示,能够以极高的概率确定我的这个图片是一只狗。
在这里插入图片描述
在这里插入图片描述
但是我的图片是类似下图所示的这种图片,所以直接使用CLIP的话,给定一个词汇表会导致模型没办法输出一个唯一正确的结果,实际应用起来的效果并不好,就像是下面的这个CVPR工作所展示的,一张图片没有办法分类渔民还是鱼儿,这篇文章的解决方案是加入mask或者是bounding box来提升对于局部区域的识别准确率。
在这里插入图片描述

  • 才知道出名的llava视觉语言模型的基座是CLIP
  • 上面的那种方法效果是挺好的,但是在我的这个任务中,我使用CLIP本身其实就是不想再使用人工进行标注,而是完全使得标注流程自动化,因此这种方法也并不适用于我的课题场景。
    在这里插入图片描述
  • 拿右边的groundtruth是我标注的,可以看到如果只使用CLIP去标注一个图片的话,效果还是比较差,准确率不是很高,这里是把词汇列表中可能阈值大于0.2的都列举出来作为图像标注。
    在这里插入图片描述
    简单统计一下准确率和召回率,这里其实可以看到对于主要的grass和soil这种作为主体比较好分辨的场景,还是能够有比较高的概率分辨出来的,主要是召回率不太行,尤其是对yellow brick roadcurb,这两个的召回率差了不少,感觉就是一个图片做多场景分类还是比较勉强,或许加一个相同层的mask是一个可以接受的选择?找一下DINO这样子,然后随机采样一些点,然后获得mask,在用mask+CLIP的这个方案来做一点事情,但是还在考虑…
    在这里插入图片描述

1.2 采用Deepseek:14b大模型生成图像级标注

之前学了一下DataWhale的handy-ollama的课程,可以在本地部署大模型,能够做图片理解,我是RTX4080super的显卡,所以可以部署deepseek:14B这样的模型以及llava这样的多模态的模型,尝试用了一下,用了llava,然后用json格式固定了输出写到csv文件中,然后再用calF1.py计算准确率和召回率。
这个是用llava模型做了一个简单的计算,但是效果相比上一个CLIP模型,在准确率和召回率上其实都差了不少。
在这里插入图片描述
llava模型其实也是基于CLIP模型作为基座的,但是这个准确率着实一般,我感觉可能是我ollama部署的这个llava模型参数量还是太小了,知识储备可能不是很够用,想看一下有没有别的可以部署的ViT模型做一下图片理解+标注。
在这里插入图片描述
下载了一个13B的llava模型试一下,感觉效果上好了一些,但是还是不如直接使用CLIP模型的效果,有点奇怪,另外确实发现了修改提示词对于准确度的提升影响非常大,想办法能不能实验出一个好点的提示词,尤其是关于yellow brick road这种,可以在提示词里做一点手脚,比如解释一下这样子,又变成提示词工程师了[doge]
在这里插入图片描述
发现paperwithcode上有一些在各种测试集上的open vocabulary segmentation的相关工作,准备要尝试一下,下一篇文章再记录吧

相关文章:

  • 面试之《react hooks在源码中是怎么实现的?》
  • 添加成对约束后的标签传播算法研究:使用Python语言编写算法,在空手道数据集下验证算法的准确性,在一定程度上解决非对齐问题
  • 【算法工程】大模型局限性新发现之解决能连github但无法clone项目的问题
  • 使用自制工具类实现安全的密码加密与校验
  • 实现Python+Django+Transformers库中的BertTokenizer和BertModel来进行BERT预训练,并将其应用于商品推荐功能
  • winfrom的progressBar 鼠标移上去显示 进度条的时间
  • LeetCode 15.三数之和
  • Imagination DXTP GPU IP:加速游戏AI应用,全天候畅玩无阻
  • Linux | Ubuntu 与 Windows 双系统安装 / 高频故障 / UEFI 安全引导禁用
  • 香橙派/树莓派 利用Wiring库 使用GPIO模拟PWM
  • WebSocketHandler 是 Spring Framework 中用于处理 WebSocket 通信的接口
  • 普中单片机-51TFT-LCD显示屏(1.8寸 STM32)
  • tableau之雷达图和凹凸图
  • 图数据库 | 23、如何评测图系统 — 评测内容?
  • 正则表达式用法及其示例:匹配、查找、替换文本中的模式,及QT下如何使用正则表达式。
  • Linux网络基础(协议 TCP/IP 网络传输基本流程 IP VS Mac Socket编程UDP)
  • RAG 阿里云
  • go 语言中的线程池
  • 四、Redis主从复制与读写分离
  • nvidia驱动更新,centos下安装openwebui+ollama(非docker)
  • 网站建设制作开发/营销技巧和营销方法心得
  • 自建外贸推广网站有哪些/seo搜索优化是什么
  • 邹城做网站/百度下载安装2019
  • 网站建设都包括什么科目/百度seo排名优化公司哪家好
  • 企业内部系统网站制作/百度推广app下载
  • 网站结构怎么做适合优化/云南网站建设百度