2023.4.7 机器学习周报

目录

引言

Abstract

文献阅读

1、题目

2、引言

3、过去方案和Motivation

4、Segment Anything模型

5、创新点

6、实验过程

7、实验结果

1、评价绩效

 2、检测评价

3、跟踪评价

8、 结论

总结

引言

本周阅读了一篇关于高效的任意分割模型的文献,用于自动提取畜牧监测中的掩膜区域。通过结合Segment Anything Model (SAM)、Grounded SAM、Grounding Dino、YOLOv8和DeepOCSort算法进行检测和跟踪,实现了黑色牛的自动提取掩膜区域,并改进了畜牧监测的效果。

Abstract

This week, I read a literature on efficient arbitrary segmentation models for automatically extracting mask regions in livestock monitoring. By combining Segment Anything Model (SAM), Grounded SAM, Grounded Dino, YOLOv8, and DeepOCSort algorithms for detection and tracking, automatic extraction of mask regions for black cattle was achieved, and the effectiveness of livestock monitoring was improved.

文献阅读

1、题目

Efficient Segment-Anything Model for Automatic Mask Region Extraction in Livestock Monitoring

2、引言

本文提出了一种有效的分割模型,用于牲畜跟踪中掩模区域的自动提取。研究的重点是开发和评估用于跟踪黑牛的自动掩模分割模型。主要贡献是一个量身定制的提取分割模型,用于自动提取牛面具区域,利用牲畜跟踪。该方法利用Segment Anything Model(SAM)、Grounded SAM、Grounding Dino、YOLOv8和DeepOCSort算法进行检测和跟踪。实验结果表明,该方法在提取黑牛面具区域和提高牲畜跟踪的有效性。YOLOv8和DeepOCSort的集成确保了跨帧的掩模区域的准确关联和跟踪。这些发现推进了牲畜跟踪,并应用于精准农业。该模型为前景背景分离中掩模区域的自动提取提供了一种有效的工具。

3、过去方案和Motivation

  • 过去方案:传统的图像处理技术和手动标注方法在复杂场景下的效果有限,而现有的模型和数据集也无法准确地处理黑色牛的特征。
  • 论文的Motivation: 鉴于以上问题,本研究旨在结合生成式人工智能模型和先进的检测和跟踪算法,开发一种针对黑色牛的自动分割方法,以提高畜牧监测的准确性和效率。

4、Segment Anything模型

可提示的分割任务和在真实世界使用的目标对模型架构施加了约束。特别是,模型必须支持灵活的提示,需要以平摊实时计算掩模以允许交互使用,并且必须具有模糊性。我们发现一个简单的设计满足所有三个约束条件:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后将两个信息源组合在一个轻量级掩码解码器中来预测分割掩码。将此模型称为Segment Anything,或SAM(如下图所示)。

SAM有三个组件,如上图所示:图像encoder、灵活的提示encoder和快速掩码decoder。建立在Vision Transformer上,对实时性能进行特定的权衡。

1. 图像编码器

基于可扩展和强大的预训练方法,我们使用MAE预训练的ViT,最小限度地适用于处理高分辨率输入。图像编码器对每张图像运行一次,在提示模型之前进行应用。

2. 提示编码器

考虑两组prompt:稀疏(点、框、文本)和密集(掩码)。通过位置编码来表示点和框,并将对每个提示类型的学习嵌入自由形式的文本CLIP中的现成文本编码相加。密集的提示(即掩码)使用卷积进行嵌入,并通过图像嵌入进行元素求和。

3. 掩码解码器

掩码解码器有效地将图像嵌入、提示嵌入和输出token映射到掩码。该设计的灵感来自于DETR,采用了对(带有动态掩模预测头的)Transformer decoder模块的修改。

为了实现自动分割,遵循一步一步的方法。首先,策划了一系列多样化的牛图像,包括各种姿势和一天中的不同时间,包括白天和夜间场景。接下来,使用SAM模型分割每个单独的图像,如下图使用SAM模型的自动注释流程所示。

为了便于与后续训练过程兼容,将这些掩码转换为JSON格式,该格式广泛用于训练对象检测和分割模型,如下图所示。

这种格式可以简化注释,从而实现与YOLOv8模型的无缝集成。通过定制数据集,可以专门为准确和高效的牛分割而量身定制。通过这个自动分割模型,目标是减轻与手动注释和传统的图像处理技术的挑战。

5、创新点

  • 本研究通过引入一种新的方法来追踪黑色牛的方法,为黑色牛追踪提供了强大而准确的跟踪能力。
  • 通过结合SAM模型和YOLOv8与Deep OCSORT模型的综合能力,有效地融合了运动和外观信息,从而实现了显著的多目标跟踪效果。
  • 该方法在复杂的牛场场景中的应用表明其在实际牛类监测中的潜力,为牲畜管理和相关应用提供了有价值的解决方案

6、实验过程

在训练YOLOv8分割模型时,数据集划分为80%的训练数据和20%的验证数据。训练过程中使用了2500张图像,包含40000个实例,使用批量大小为8进行训练。模型使用随机梯度下降(SGD)进行优化,动量为0.937,并使用yolov8x-seg权重文件进行初始化。模型的训练持续时间为46分钟74秒。在验证阶段,YOLOv8分割模型每张图像的处理速度为0.2毫秒,表明其适用于牲畜跟踪任务的实时应用。此外,还将HSV颜色模型、平移、缩放和应用马赛克效果等增强技术整合到训练过程中,以提高模型处理对象外观、大小和方向变化的能力。

7、实验结果

1、评价绩效

为了评估所提出的自动分割模型的性能,对不同的黑牛图像数据集进行了广泛的实验。评估的重点是比较融合的结果,接地SAM模型,和SAM的唯一模型的自动检测和分割牛对象的能力。总体流程图如下图所示。

首先,分析了融合模型的结果。融合模型结合了多个分割模型(包括SAM模型)的输出,以提高整体分割精度。

接下来,检查了接地SAM模型的性能。这个模型利用了Grounding Dino模型,它只需要类的文本输入就可以有效地运行。

相比之下,仅SAM模型在分割性能方面表现出限制。尽管SAM模型最初检测并分割了大量的牛对象,但在某些情况下,它在帧中遗漏了一些对象。因此,需要对剩余实例进行手动重新注释以获得令人满意的分割结果。这意味着仅仅依靠SAM模型可能不足以进行准确和全面的牛分割。

需要注意的是,通过手动重新注释任何剩余的实例,仍然可以有效地使用SAM only模型,尽管需要额外的工作和时间。总体而言,融合方法和扎根SAM模型为解决牛分割挑战做出了宝贵贡献,最终提高了牲畜管理实践和农业技术。比较结果如下图所示。

 2、检测评价

从各种YOLOv 8检测模型中获得的结果,每个模型都设计了特定的配置,以解决不同方面的性能问题。这些模型的评估包括三个关键指标:精度、在0.5至0.95的交集/并集(IOU)范围内计算的平均精度(mAP)和推理时间。提供这些指标的全面比较,揭示了每个YOLOv 8模型的优势和局限性如下表所示。

其中精度Precision和平均精度maP公式如下:

3、跟踪评价

在研究中,采用了多目标跟踪精度(MOTA)指标来彻底评估我们的跟踪方法在黑牛数据集上的有效性。

如下表所示,通过这个指标,对关键参数进行了定量分析,包括定位精度、身份转换、假阳性和假阴性。使用MOTA确保了标准化的评估,促进了与其他尖端方法的有意义的比较,并为算法在黑牛数据集上的性能提供了有价值的见解。MOTA能够测量三种类型的跟踪错误-假阳性(FP)、假阴性(FN)和ID开关(IDSW)-进一步丰富了评估,能够衡量跟踪解决方案的准确性和稳健性,从而为现代农业实践中牲畜监测和管理技术的进步做出贡献。

8、 结论

实验结果表明,所提出的方法在提取黑色牛口罩区域和改进整体牲畜监测过程方面具有潜力和效率。实验评估重点比较了融合结果、基于Grounding Dino模型的Grounded SAM模型和仅基于SAM模型的能力来自动检测和分割牛对象。融合模型将多个分割模型的输出结合起来,表现出优越的性能,成功检测和分割了更多的牛对象。基于Grounding Dino模型的Grounded SAM模型也表现出良好的性能,能够准确地检测和分割牛对象,无需额外的修改。另一方面,仅基于SAM模型的分割性能有限,需要对一些实例进行手动重新注释才能获得令人满意的结果。总体而言,融合结果和基于Grounding Dino模型的Grounded SAM模型在自动牛检测和分割方面优于仅基于SAM模型。这些模型为高效准确地分割黑色牛提供了有希望的解决方案,推动了牲畜跟踪和相关应用的发展。

总结

本周在阅读论文的同时,还对SAM分割模型进行了进行了学习,之后会在此基础上深入学习和对代码的复现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM基础:类的生命周期详解

JDK版本:jdk8 IDEA版本:IntelliJ IDEA 2022.1.3 文章目录 一. 生命周期概述二. 加载阶段(Loading)2.1 加载步骤2.2 查看内存中的对象 三. 连接阶段(Linking)3.1 连接之验证3.2 连接之准备3.3 连接阶段之解析 四. 初始化阶段(Initialization)4.1 单个类的…

Arcgis Pro地理配准

目录 一、目的 二、配准 1、找到配准工具 2、添加控制点 3、选择控制点 4、添加更多控制点 5、配准完成、保存 三、附录 1、查看控制点或删除控制点 2、效果不好怎么办 一、目的 下面我们将两张地图进行配准,其中一张有地理位置,而另外一张没…

前端面试高频: 理解 React/Vue 中 Key 的作用

一: 引言 在 React 或 Vue 项目中,我们经常在列表组件中使用key属性。key是给每一个vnode的唯一id,它在列表渲染和虚拟 DOM 操作中扮演着重要的角色。 当我们在渲染一个包含多个相同子组件的列表时,如果没有使用 key,React 或 Vue…

666666666666666666

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

Linux (Ubuntu)- mysql8 部署

目录 1.基本部署 2.修改密码 3.开启root可远程连接配置 1.基本部署 01》》先查看OS类型,如果是Ubuntu在往下边看 rootspray:/etc/mysql/mysql.conf.d# lsb_release -a LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch Distributor ID: …

备战蓝桥杯---线段树应用2

来几个不那么模板的题: 对于删除,我们只要给那个元素附上不可能的值即可,关键问题是怎么处理序号变化的问题。 事实上,当我们知道每一个区间有几个元素,我们就可以确定出它的位置,因此我们可以再维护一下前…

RK3568测试

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

非关系型数据库------------Redis的安装和部署

目录 一、关系型数据库与非关系型数据库 1.1关系型数据库 1.2非关系型数据库 1.2.1非关系型数据库产生背景 1.3关系型非关系型区别 1.4客户访问时,关系型数据库与redis的工作过程 二、Redis 2.1redis简介 2.2Redis命中机制和淘汰机制 2.3Redis 具有以下优…

树莓派安装Windows搭建网盘和下载机

0 需求分析 在同一个局域网内,同时有多种设备(Windows,Linux,Android)需要进行大量的数据共享。另外,还时常需要从百度网盘/夸克网盘等网盘下载文件。不难看出,我的需求很简单,就是…

提醒:2024年思维100春季线上比赛今天报名截止,来看官方样题

【温馨提醒】今天是2024年4月6日,是2024年春季思维100活动第一阶段线上比赛报名的截止日期。如果要参赛,请设置好闹钟别错过了报名。更多安排和需要提前了解的关键点可以见我前面写的文章,或者直接联系我获取相关资料。 官方发布的2024年春季…

汽车网络安全管理

汽车网络安全管理 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事&#xff0c…

javaweb学习(day11-监听器Listener过滤器Filter)

一、监听器Listener 1 Listener介绍 Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是:Servlet 程 序、Listener 监听器、Filter 过滤器 Listener 是 JavaEE 的规范,就是接口 监听器的作用是,监听某种变化(一般就是对…

Java零基础入门-递归

一、概述 上一期,我们是具体学习了File类的一些概念基础知识点,以及对于该类的常用方法进行了一个全量举例演示,这也是考虑到有的小伙伴在阅读的同时,没有时间去实际测试,所以我也就顺带的给大家去做了实例演示&#x…

数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成

数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成 目录 数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成&#xf…

【实现100个unity特效之7】unity 3d实现各种粒子效果

文章目录 先看最终效果下雨效果萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合其他特效爆炸、闪电、火焰、雷雨特效(2023/7/5更新)源码完结 先看最终效果 下…

爬虫 新闻网站 并存储到CSV文件 以红网为例 V2.0 (控制台版)升级自定义查询关键词、时间段,详细注释

爬虫:红网网站, 获取指定关键词与指定时间范围内的新闻,并存储到CSV文件 V2.0(控制台版) 爬取目的:为了获取某一地区更全面的在红网已发布的宣传新闻稿,同时也让自己的工作更便捷 对比V1.0升级的…

ObjectiveC-10-OOP面向对象程序设计-分类/类别

类别(Category)是OjectiveC的一个特性,主要目的是让开发者可以以模块的形式向类添加方法(扩展),创建标准化的方法列表供给其他人实现。 有些文档也会翻译成类别,其实是一个意思。 概述 语法说明 类别提供了一个简单的…

C语言中strlen函数的实现

C语言中strlen函数的实现 为了便于和strlen函数区别,以下命令为_strlen。 描述:实现strlen,获取字符串的长度,函数原型如下: size_t strlen(const char *str);_strlen实现: size_t _strlen(const char*…

在flutter中添加video_player【视频播放插件】

添加插件依赖 dependencies:video_player: ^2.8.3插件的用途 在Flutter框架中,video_player 插件是一个专门用于播放视频的插件。它允许开发者在Flutter应用中嵌入视频播放器,并提供了一系列功能来控制和定制视频播放体验。这个插件对于需要在应用中展…

Vite 项目中环境变量的配置和使用

Vite 项目中环境变量的声明 我们要在 Vite 项目中进行环境变量的声明,那么需要在项目的根目录下,新建 .env.[mode] 文件用于声明环境变量,如: .env.test 文件用于测试环境下项目全局变量的声明.env.dev 文件用于开发环境下项目全…