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

非煤矿山电子封条建设算法 yolov8

非煤矿山电子封条建设算法模型通过yolov8网络模型AI视频智能分析技术,算法模型对作业状态以及出井入井人员数量变化、人员睡岗离岗等情况实时监测分析,及时发现异常动态,自动推送生成的违规截图报警信息。现代目标检测器大部分都会在正负样本分配策略上面做文章,典型的如 YOLOX 的 simOTA、TOOD 的 TaskAlignedAssigner 和 RTMDet 的 DynamicSoftLabelAssigner,这类 Assigner 大都是动态分配策略,而 YOLOv5 采用的依然是静态分配策略。考虑到动态分配策略的优异性,YOLOv8 算法中则直接引用了 TOOD 的 TaskAlignedAssigner。TaskAlignedAssigner 的匹配策略简单总结为: 根据分类与回归的分数加权的分数选择正样本。

YOLOv8 的训练策略和 YOLOv5 没有啥区别,最大区别就是模型的训练总 epoch 数从 300 提升到了 500,这也导致训练时间急剧增加。YOLOv8 的推理过程和 YOLOv5 几乎一样,唯一差别在于前面需要对 Distribution Focal Loss 中的积分表示 bbox 形式进行解码,变成常规的 4 维度 bbox,后续计算过程就和 YOLOv5 一样了。OLOv8 输出特征图尺度为 80x80、40x40 和 20x20 的三个特征图。Head 部分输出分类和回归共 6 个尺度的特征图。 将 3 个不同尺度的类别预测分支、bbox 预测分支进行拼接,并进行维度变换。为了后续方便处理,会将原先的通道维度置换到最后,类别预测分支 和 bbox 预测分支 shape 分别为 (b, 80x80+40x40+20x20, 80)=(b,8400,80),(b,8400,4)。

YOLO V8具体改进如下:Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;PAN-FPN:YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的CBS 1*1的卷积结构删除了,同时也将C3模块替换为了C2f模块;Decoupled-Head:YOLOv8使用了Decoupled-Head;Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失。样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式。

Adapter接口定义了如下方法:

public abstract void registerDataSetObserver (DataSetObserver observer)

Adapter表示一个数据源,这个数据源是有可能发生变化的,比如增加了数据、删除了数据、修改了数据,当数据发生变化的时候,它要通知相应的AdapterView做出相应的改变。为了实现这个功能,Adapter使用了观察者模式,Adapter本身相当于被观察的对象,AdapterView相当于观察者,通过调用registerDataSetObserver方法,给Adapter注册观察者。

public abstract void unregisterDataSetObserver (DataSetObserver observer)

通过调用unregisterDataSetObserver方法,反注册观察者。

public abstract int getCount () 返回Adapter中数据的数量。

public abstract Object getItem (int position)

Adapter中的数据类似于数组,里面每一项就是对应一条数据,每条数据都有一个索引位置,即position,根据position可以获取Adapter中对应的数据项。

public abstract long getItemId (int position)

获取指定position数据项的id,通常情况下会将position作为id。在Adapter中,相对来说,position使用比id使用频率更高。

public abstract boolean hasStableIds ()

hasStableIds表示当数据源发生了变化的时候,原有数据项的id会不会发生变化,如果返回true表示Id不变,返回false表示可能会变化。Android所提供的Adapter的子类(包括直接子类和间接子类)的hasStableIds方法都返回false。

public abstract View getView (int position, View convertView, ViewGroup parent)

getView是Adapter中一个很重要的方法,该方法会根据数据项的索引为AdapterView创建对应的UI项。

http://www.lryc.cn/news/68267.html

相关文章:

  • 七大软件架构设计原则详解
  • 【Python入门】Python循环语句(while循环的嵌套应用)
  • 数据来源和搜集
  • Python入门(七)if语句(二)
  • [元带你学: eMMC完全解读 2] eMMC协议相关术语与定义
  • 预测杭州五一黄金周的旅游出行人数
  • 内防泄密重要,还是外防窃密重要?
  • ChatGPT:2. 使用OpenAI创建自己的AI网站:1. 初探API
  • 5月17日,今日信息差
  • 物联网的体系架构
  • Golang交叉编译
  • kafka3.x详解
  • kubectl常用命令|pod生命周期|金丝雀发布|超详细
  • 【Linux系统】Linux进程信号详解
  • 阿里云u1服务器通用算力型CPU处理器性能测评
  • hive的详细使用文档和使用案例
  • KL散度
  • Java基础学习(16)多线程
  • 【一起啃书】《机器学习》第五章 神经网络
  • matlab实验二可视化
  • (数据结构)栈的实现——再一次保姆级教学
  • 【5G RRC】RSRP、RSRQ以及SINR含义、计算过程详细介绍
  • K8s(Kubernetes)学习(一):k8s概念及组件
  • Web3 常用语和黑话你知道吗?
  • 物联网和边缘计算:如何将数据处理和决策推向设备边缘
  • 【Android学习专题】java基本语法和概念(学习记录)
  • Android系统启动全流程分析
  • RabbitMQ --- 惰性队列、MQ集群
  • 1.Buffer_Overflow-1.Basic_Jump
  • MySQL入门语法第三课:表结构的创建