技术标签: 算法 计算机视觉 知识经验分享 深度学习 目标检测 YOLOv7算法改进 人工智能 YOLOv5算法改进
近年来,深度学习技术的快速发展为小目标检测注入了新鲜血液,使其成为研究热点。早期的目标检测框架大多数是针对通用的目标来进行检测,如经典的单阶段方法YOLO和SSD,两阶段方法Faster R-CNN等,这些方法主要是针对通用目标数据集来设计的解决方案,因此对于图像中的小目标来说,检测效果不是很理想。
相对于常规尺寸的目标,小目标通常缺乏充足的外观信息,因此难以将它们与背景或相似的目标区分开来。在深度学习的驱动下,尽管目标检测算法已取得了重大突破,但是对于小目标的检测仍然是不尽人意的。小目标和大目标在检测性能上存在显著差距,小目标的检测性能通常只有大目标的一半。由此可见,小目标检测仍然是充满挑战的。另外,真实场景是错综复杂的,通常会存在光照剧烈变化、目标遮挡、目标稠密相连和目标尺度变化等问题,而这些因素对小目标特征的影响是更加剧烈的,进一步加大了小目标检测的难度。
不同场景对于小目标的定义各不相同,目前尚未形成统一的标准。现有的小目标定义方式主要分为以下两类,即基于相对尺度的定义与基于绝对尺度的定义。
即从目标与图像的相对比例这一角度考虑来对小目标进行定义。即边界框面积与图像面积之比的中位数在0.08%~0.58%之间。较为常见的小目标定义还有以下几种:
1.目标边界框的宽高与图像的宽高比例小于一定值,较为通用的比例值为0.1;
2.目标边界框面积与图像面积的比值开方小于一定值,较为通用的值为0.03;
3.根据目标实际覆盖像素与图像总像素之间比例来对小目标进行定义。
但是,这些基于相对尺度的定义存在诸多问题,如这种定义方式难以有效评估模型对不同尺度目标的检测性能。此外,这种定义方式易受到数据预处理与模型结构的影响。
则从目标绝对像素大小这一角度考虑来对小目标进行定义。目前最为通用的定义来自于目标检测领域的通用数据集——MS COCO数据集,将小目标定义为分辨率小于32像素×32像素的目标。
对于为什么是32像素×32像素,本文从两个方向进行了思考。一种思路来自于Torralba等的研究,人类在图像上对于场景能有效识别需要的彩色图像像素大小为32像素×32像素,即小于32像素×32像素的目标人类都难以识别。另一种思路来源于深度学习中卷积神经网络本身的结构,以与MS COCO数据集第一部分同年发布的经典网络结构VGG‑Net为例,从输入图像到全连接层的特征向量经过了5个最大池化层,这导致最终特征向量上的“一点”对应到输入图像上的像素大小为32像素×32像素。于是,从特征提取的难度不同这一角度考虑,可以将32像素×32像素作为区分小目标与常规目标的一个界定标准。
除了MS COCO之外,还有其他基于绝对尺度的定义,如在航空图像数据集DOTA与人脸检测数据集WIDER FACE中都将像素值范围在 [10, 50] 之间的目标定义为小目标。在行人识别数据集CityPersons中,针对行人这一具有特殊比例的目标,将小目标定义为了高度小于75像素的目标。基于航空图像的小行人数据集TinyPerson则将小目标定义为像素值范围在 [20, 32] 之间的目标,而且近一步将像素值范围在 [2, 20] 之间的目标定义为微小目标。
文章浏览阅读1w次,点赞4次,收藏15次。2021年美赛C题目2021年美国大学生C题目为大数据类型题目,常用统计类的相关算法模型,推荐SAS,其次Stata,最后SPSS。2021年美赛C题目(中文):2021年美赛C题目(英文):相关算法以及代码实现会更新,敬请关注!最后祝愿各位同学争取佳绩!..._2021美赛c题
文章浏览阅读736次,点赞22次,收藏26次。环境说明:子任务一:Hadoop 完全分布式安装配置本任务需要使用root用户完成相关配置,安装Hadoop需要配置前置环境。命令中要求使用绝对路径,具体要求如下:1、从宿主机/opt目录下将文件hadoop-3.1.3.tar.gz、jdk-8u212-linux-x64.tar.gz复制到容器Master中的/opt/software路径中(若路径不存在,则需新建),将Master节点JDK安装包解压到/opt/module路径中(若路径不存在,则需新建),将JDK解压命令复制并粘贴至客户端桌面_1、根据hive的dwd库中相关表或mysql中ds_db01中相关表,计算出与用户customer_id
文章浏览阅读760次。## Booting kernel from Legacy Image at c0007fb4 ...Image Name: linux-4.12_STM32F429Image Type: ARM Linux Kernel Image (uncompressed)Data Size: 2994400 Bytes =2.9 MBLoad Address: c0008000Entry..._stm32f429 linux
文章浏览阅读2.5k次,点赞4次,收藏22次。C语言编程中,输入输出是基本操作,printf和scanf并不是C语言中的唯一的输入输出选择,对于输入有scanf()、getchar()、getche()、getch()、gets();对于输出有printf()、puts()、putchar(),他们各有自己的使用场景,本篇文章主要介绍常用的scanf和printf。_scanf输入什么就一定会以printf的形式输出什么吗?
文章浏览阅读1.1k次,点赞30次,收藏25次。python图书推荐系统 爬虫技术 大数据 协同过滤推荐算法 计算机 毕业设计(附源码)
文章浏览阅读2.8k次,点赞3次,收藏21次。上一篇博客实现了cpu skin(蒙皮)的骨骼动画,接下来我们要实现 gpu skin(蒙皮) 的骨骼动画首先我们需要知道什么是蒙皮,在上一博客实现的骨骼动画中,哪一步是蒙皮 。在模型文件中可以读到的数据是顶点和骨骼的对应关系,从动画文件中可以读到每一帧骨骼的数据,而根据每一帧骨骼的数据计算出顶点位置的过程就叫做蒙皮,也就是对应上一篇博客代码中的ComputeVertPos函数。另外还要知道为..._gpuskin
文章浏览阅读94次。亲,你的浏览器过时了,请立即更换Chrome浏览器。X您还未登录!|登录|注册|帮助CSDN首页资讯论坛博客下载搜索更多CTO俱乐部学生大本营培训充电移动开发软件研发云计算程序员TUP裴裴的Android学习和分享爱学习,爱分享。<!--我的首页-->..._android 添加录音评论
文章浏览阅读2.6w次,点赞19次,收藏60次。一、图形验证码的实现1.1 简介常在网上晃悠的人,对下面这张图都不会陌生。特别是在注册新账号、确认交易时,它们都会频繁出现,要求我们输入正确的验证码,那这些看上去跟我们要做的事情完全无关的验证码到底有何作用呢?其实,验证码的校验即是一个直接的图灵测试,简单的逻辑是:服务提供者向用户方提出一个较为复杂的问题,能正确回答的即是人类,回答不出的即是机器或者程序代码。这个概念基于这样一个重..._图形验证码下面如何写短信验证码
文章浏览阅读1.2w次。本文主要介绍了UiPath的Switch语句实现方式。这大概是最详细的UiPath使用中文文档,环境:UiPath Studio Community 2022.4.3/Windows/C#,网上的文档和教程基本都是VB的,本文基于C#学习UiPath。_uipath switch控件
文章浏览阅读267次。进程与线程是操作系统中两个重要的角色,它们维系着不同程序的执行流程,通过系统内核的调度,完成多任务执行。今天我们从 Node.js(以下简称 Node)的角度来一起学习相关知识,通过本文读者将了解 Node 进程与线程的特点、代码层面的使用以及它们之间的通信。概念首先,我们还是回顾一下相关的定义:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配..._nodejs pipe占用主线程吗?
文章浏览阅读849次。大多数 OpenStack 环境中包含认证、镜像、计算和至少一个网络服务,还有仪表盘,仪表盘要求至少要有镜像服务,计算服务和网络服务。配置每个节点必须用有管理员权限的帐号。可以用 root用户或 sudo 工具来执行这些命令。由于 Openstack 服务数量以及虚拟机数量,为了获得最好的性能,我们推荐你的环境满足或者超过最小的硬件需求。如果在增加了更多的服务或者虚拟机后性能下降,请考虑为你的环境增加硬件资源。为了避免混乱和为 OpenStack 提供更多资源,推荐最小化安装 Linux 系统。_openstack train
文章浏览阅读877次。go 语言常量_go 常量