水面漂浮物垃圾识别检测系统 YOlOv7

news2025/1/15 22:42:25

水面漂浮物垃圾识别检测系统通过Python+YOLOv7网络模型,实现对水面漂浮物以及生活各种垃圾等全天候24小时不间断智能化检测。Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行表达思想,而不会降低可读性。Python可以使用C / C++轻松扩展,这使我们可以在C / C++中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C++代码一样快(因为它是在后台工作的实际C++代码)。

Yolo意思是You Only Look Once,它并没有真正的去掉候选区域,而是创造性的将候选区和目标分类合二为一,看一眼图片就能知道有哪些对象以及它们的位置。Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个bounding box。我们将其理解为98个预测区,很粗略的覆盖了图片的整个区域,就在这98个预测区中进行目标检测。

YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器
并在V100 上,30 FPS 的情况下达到实时目标检测器的最高精度 56.8% AP。YOLOv7 是在 MS COCO 数据集上从头开始训练的,不使用任何其他数据集或预训练权重。相对于其他类型的工具,YOLOv7-E6 目标检测器(56 FPS V100,55.9% AP)比基于 transformer 的检测器 SWINL Cascade-Mask R-CNN(9.2 FPS A100,53.9% AP)速度上高出 509%,精度高出 2%,比基于卷积的检测器 ConvNeXt-XL Cascade-Mask R-CNN (8.6 FPS A100, 55.2% AP) 速度高出 551%,精度高出 0.7%。

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.coloradmin.cn/o/178591.html

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

相关文章

Linux- 系统随你玩之--文本处理三剑客-带头一哥-awk

文章目录1、awk概述2、awk原理2.1、 awk 工作原理2.2、 与sed工作原理比较2.3、 awk与sed的区别3、使用方法及原理3.1、格式如下:3.2、 匹配规则3.3、 参数说明3.4、处理规则与流程控制3.5、 常用 awk 内置变量3.6、 awk 正则表达式解释4、操作实例4.1、 准备工作4.…

(十七)抽象队列同步器AQS

AQSAbstractQueuedSynchronizer抽象同步队列简称AQS,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现。类图如下,AbstractQueuedLongSynchronizer与AbstractQueuedSynchronizer结构一模一样,只是AbstractQueuedSynchro…

Springboot+java师生交流答疑作业系统

,本系统拥有学生,教师,管理员三个角色,学生可以注册登陆系统,查看新闻,查看教学,在线提问答疑,提交作业,发布交流,留言反馈等功能,教师可以发布教…

恶意代码分析实战 14 反虚拟机技术

14.1 Lab17-01 题目 这个恶意代码使用了什么反虚拟机技术? 恶意代码用存在漏洞的x86指令来确定自己是否运行在虚拟机中。 如果你有一个商业版本IDAPro,运行第17章中代码清单17-4所示的IDAPython脚本(提供如jindAniM.py)&#…

spring boot前后端交互之数据格式转换

在前后端分离开发的项目种,前端获取数据的方式基本都是通过Ajax。请求方法也有所不同,常见的有POST,GET,PUT,DELETE等。甚至连请求的数据类型都不一样,x-www-form-urlencodeed,form-data,json等。 那么在前后端交互过程中,具体的数据该如何接…

ESP32设备驱动-8x8LED点阵驱动(基于Max7219+SPI)

8x8LED点阵驱动(基于Max7219+SPI) 1、Max7219介绍 MAX7219/MAX7221是紧凑型串行输入/输出共阴极显示驱动器,可将微处理器(Ps)连接到多达8位的7段数字LED显示器、条形图显示器或64个独立LED。片上包括一个 BCD 代码 B 解码器、多路扫描电路、段和数字驱动器,以及存储每个数字…

通信电子、嵌入式类面试题刷题计划04

文章目录036——看门狗电路的作用是什么?【社招】037——你了解CAN总线协议吗?说一说你的理解【社招】038——锁存器、触发器、寄存器三者的区别?【校招】039——D触发器和D锁存器的区别是什么?【校招】040——三极管和MOS管的区别…

Cadence PCB仿真使用Allegro PCB SI生成单网络EMI报告Single Net EMI Report及报告导读图文教程

🏡《Cadence 开发合集目录》   🏡《Cadence PCB 仿真宝典目录》 目录 1,概述2,生成报告3,报告导读4,总结1,概述 单网络EMI报告是值将差分模式下的网络视为单个网络,分析来自时钟上升沿的辐射影响。本文简单介绍使用Allegro PCB SI生成单网络EMI报告的方法,及Singl…

搜索引擎位置跟踪应用SerpBear

什么是 SerpBear ? SerpBear 是一款开源搜索引擎位置跟踪应用程序。它允许你跟踪你的网站在谷歌中的关键词位置,并得到他们的位置通知。 软件特点: 无限关键词:添加无限域名和无限关键词以跟踪其 SERP电子邮件通知:每天/每周/每…

车载以太网简介

车载以太网简介 基本概念 传统车载网络 LIN:用于通信速率低的场景,比如车窗、座椅等。CAN:目前车载网络首先,低成本高可靠。FlexRay :具备故障容错的车载总线系统。MOST:内置流媒体数据信道,…

2023年企业信息安全缺陷和解决方案,防止职员外泄信息

随着网络的发展和普及,信息安全与每个人息息相关,包含方方面。每个人既是独立个体又必须和社会交换资源。这就需要把控一个尺度。 要了解信息安全,首先需要对信息有个大体了解。从拥有者和使用者分类分为,个人,企业&a…

恶意代码分析实战 11 恶意代码的网络特征

11.1 Lab14-01 问题 恶意代码使用了哪些网络库?它们的优势是什么? 使用WireShark进行动态分析。 使用另外的机器进行分析对比可知,User-Agent不是硬编码。 请求的URL值得注意。 回答:使用了URLDownloadToCacheFileA函数&#…

JavaEE多线程-定时器

目录一、定时器1.1 什么是定时器?1.2 定时器的构成二、简单实现定时器一、定时器 1.1 什么是定时器? 定时器是多线程编码中的一个重要组件,它就好比一个闹钟,例如我们想去坐车,但是不想现在去坐车,想8:30去坐车,于是我们订了一个8点钟的闹钟,也就是说定…

Linux内核驱动初探(四) 内部看门狗

目录 0. 前言 1. menuconfig 2. 设备树 3. 拓展试验 0. 前言 这次的内部看门狗驱动也比较顺利,重点看了 原理图和4.19.x 内核的配置。 内部看门狗设备名叫做 /dev/watchdog 。 1. menuconfig 我们在 linux-menuconfig 里面如下设置:进入 Device D…

[Java]JavaWeb学习笔记(动力节点老杜2022)

文章目录🥽 Tomcat服务器🌊 下载与安装🌊 关于Tomcat服务器的目录🌊 启动Tomcat🌊 实现一个最基本的web应用(这个web应用中没有java小程序)🥽 静态资源与动态资源🥽 模拟…

GPU虚拟化(留坑)

文章内容大程度参考B站王利明老师对《GPU虚拟化技术分享》的演讲:https://b23.tv/uQKBpcK GPU 有什么用? GPU可以用于图形渲染,也能够用于高性能计算和编解码等场景。 图:GPU 的典型软件架构(不含虚拟化) …

注解存储对象到Spring,详解 五大类注解 和方法注解

上一篇博客我们介绍了如何使用xml来引入bean对象,当项目多的时候,显然那样是比较麻烦的。现在我们只需要 个注解就可以替代了。注意:注解和xml可以同时使用准备工作:配置扫描路径我们需要配置 下存储对象的扫描包路径,只有被配置的…

【笔记】openwrt - full cone NAT(全锥NAT)、解决“arp_cache: neighbor table overflow!”

最近安装了比特彗星(bitcomet)后,老是收到警告说日志的接收超过每秒上限了。一看日志,好家伙,一堆的kern.info kernel: [194004.157620] neighbour: arp_cache: neighbor table overflow!日志,还是kernel的…

损失函数总结

回归损失与分类损失 回归用于逼近某个数值,预测的结果是连续的,例如预测小明的身高,160,161,162,163cm。平方损失即MSE: 分类用于预测物体属于某一个标签,预测的结果是离散的,例如预测明天是否下雪:是or否。 由于预测分类,最终的输出需要介于(0,1)之间,通常在网络…

Redis消息队列 | 黑马点评

目录 一、认识消息队列 二、List模拟消息队列 三、PubSub的消息队列 四、Stream的消息队列(重点) 1、单消费模式 2、消费者组 五、redis三种消息队列对比 六、优化秒杀实战 1、创建消息队列 2、修改下单脚本 3、接收消息处理 一、认识消息队列 …