基于YOLOv5+单目的物体距离和尺寸测量

news2024/12/27 13:49:06

目录

1,YOLOv5原理介绍

2,单目测尺寸以及距离原理

2.1单目测物体距离

2.2单目测物体尺寸

3,成果展示

3.3测距离

3.2测尺寸:


1,YOLOv5原理介绍

YOLOv5是目前应用广泛的目标检测算法之一,其主要结构分为两个部分:骨干网络和检测头。

骨干网络采用的是CSPDarknet53,这是一种基于Darknet框架的改进版卷积神经网络。CSPDarknet53通过使用残差结构和跨层连接来提高网络的表达能力,并且采用了空洞空间金字塔池化(ASPP)来实现多尺度的信息提取。这样设计的骨干网络具有较强的特征提取能力,可以有效地提取出图像中的目标信息。

检测头是YOLOv5的另一个关键组成部分,主要用于从骨干网络特征图中提取目标检测信息。它由三个子模块组成:SPP、PAN和YOLOv5输出层。

SPP模块:空洞空间金字塔池化模块,用于对特征图进行多尺度的池化和下采样操作,从而实现对不同大小的目标进行检测。

PAN模块:特征金字塔自上而下的路径,用于将不同层次的特征图融合在一起,并进行上采样操作,以便将低分辨率的特征图与高分辨率的特征图进行融合。

YOLOv5输出层:用于在特征图上进行目标检测,输出目标的类别、边界框位置和置信度等信息。其中,YOLOv5输出层采用特定的损失函数(GIoU和Focal Loss)来优化目标检测的精度和鲁棒性。

总体来说,YOLOv5的主要作用是实现对图像中的目标进行快速、准确的检测。与传统的目标检测算法相比,YOLOv5具有以下优点:

高速:YOLOv5采用了高效的网络结构和检测头,可以实现高速的目标检测。

精度:YOLOv5使用特定的损失函数和多尺度特征提取等技术,可以实现高精度的目标检测。

通用性:YOLOv5能够在不同的场景下进行目标检测,具有较强的通用性和适应性。

易用性:YOLOv5可以通过预训练模型和微调等方法进行快速部署和使用,具有良好的易用性和可扩展性。
 

2,单目测尺寸以及距离原理

2.1单目测物体距离

单目相机测距常用或者说实用的方法就是相似三角形法,为了让大家更好地理解程序,这里简单说一下相似三角形法。

相似三角形:假设我们有一个宽度为 W 的目标或者物体。然后我们将这个目标放在距离我们的相机为 D 的位置。我们用相机对物体进行拍照并且测量物体的像素宽度 P 。这样我们就得出了相机焦距的公式:

F = (P x D) / W

举个例子,假设我在离相机距离 D = 24 英寸的地方放一张标准的 8.5 x 11 英寸的 A4 纸(横着放;W = 11)并且拍下一张照片。我测量出照片中 A4 纸的像素宽度为 P = 249 像素。

因此我的焦距 F 是:

F = (248px x 24in) / 11in = 543.45

当我继续将我的相机移动靠近或者离远物体或者目标时,我可以用相似三角形来计算出物体离相机的距离:

D’ = (W x F) / P

为了更具体,我们再举个例子,假设我将相机移到距离目标 3 英尺(或者说 36 英寸)的地方并且拍下上述的 A4 纸。通过自动的图形处理我可以获得图片中 A4 纸的像素距离为 170 像素。将这个代入公式得:

D’ = (11in x 543.45) / 170 = 35 英寸

或者约 36 英寸,合 3 英尺。

从以上的解释中,我们可以看到,要想得到距离,我们就要知道摄像头的焦距和目标物体的尺寸大小,这两个已知条件根据公式:  

D’ = (W x F) / P 

得出目标到摄像机的距离D,其中P是指像素距离,W是A4纸的宽度,F是摄像机焦距。
 

2.2单目测物体尺寸

上述原理反推则可测物体尺寸,这里就不再赘述。

3,成果展示

3.3测距离

3.2测尺寸:

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

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

相关文章

地理科学数据库近千个网站合集(2024年最新版)

树谷online,还有更多的直接获取的数据 树谷资料库大全(2024年1月4日更新) 地理科学数据库网站导航收集近1000个相关网站,由刘洪老师(成都地质调查中心高级工程师)长期维护,定期更新&#xff0…

宏景eHR fileDownLoad SQL注入漏洞复现

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合,满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR fileDownLoad 接口处存在SQL注入漏洞,未经过身份认证的远程攻击者可利用此漏洞执行任意SQL指令,从而窃取数据库敏感…

【Linux】通过两台linux主机配置ssh实现互相免密登陆

以下是通过两台Linux主机配置SSH实现互相免密登录的代码及操作流程: node1主机IP:192.168.48.129 server主机IP:192.168.48.130 1、在node1主机上生成密钥对: ssh-keygen -t rsa 2、将node1主机的公钥发送到server主机&#x…

Python 编写不同时间格式的函数

该代码是一个时间相关的功能模块,提供了一些获取当前时间的函数。 Report_time() 函数返回当前时间的格式化字符串,例如 "20240110114512"。Y_M_D_h_m_s_time() 函数返回当前时间的年、月、日、时、分、秒的元组格式。Y_M_D_h_m_s() 函数返回…

乐鑫ESP32与SD NAND的协同应用|MK-米客方德

SD NAND在乐鑫ESP32上的作用 SD NAND是贴片式TF卡,可以用于存储数据,比如视频图片或者代码 乐鑫ESP32一颗具有双核处理器的嵌入式系统芯片,有丰富的外设接口,包括Wi-Fi、蓝牙、UART、SPI、I2C等,使其适用于各种物联网…

Vulnhub靶机:Corrosion1

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:corrosion:1(10.0.2.12) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entry/c…

鸿蒙原生应用再添新丁!京东入局鸿蒙

鸿蒙原生应用再添新丁!京东入局鸿蒙 来自 HarmonyOS 微博1月10日消息,#京东启动鸿蒙原生应用开发#!优惠信息、派送进度都可以随时随地便捷查询。双方将携手为消费者带来全场景“多快好省”购物体验,更智能,更贴心&…

分享两个概念:非受检异常和受检异常

分享两个概念:非受检异常和受检异常 愿你的每一天都充满阳光和笑声,愿每一步都是轻松与愉快。在新的旅程中,愿你找到勇气攀登高峰,找到智慧化解困境。 愿你的心中充满温暖和善意,愿你的梦想如彩虹般美丽且真实。愿你发…

1.10 力扣回溯中等题

93. 复原 IP 地址 代码随想录 (programmercarl.com) 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1"…

SpringBoot:详解Bean装配

🏡浩泽学编程:个人主页 🔥 推荐专栏:《SpringBoot从官方文档学习》《java项目分享》 《RabbitMQ》《Spring》《SpringMVC》 🛸学无止境,不骄不躁,知行合一 文章目录 前言一、IoC容…

【QML COOK】- 006-用C++定义一个QML元素类型

Qt原本是一个C图形框架,因此QML也少不了C。QML通常只负责显示,而后台逻辑由C实现,因此掌握C和QML之间的交互非常必要。 本例实现一个最简单的例子,用C定义一个QML的元素类型并在QML使用它。 需求是在窗口上显示鼠标点击的次数。…

知识】分享几个摄像头的选型相关知识

【知识】分享几个摄像头的选型相关知识 目录 【知识】分享几个摄像头的选型相关知识一、前言二、正文1、先了解一下监控摄像头的种类1.1、云台型(云台型一体摄像机)1.2、枪机型(枪型摄像机)1.3、球机型(球型摄像机&…

基于 SpringBoot + magic-api + Vue3 + Element Plus + amis3.0 快速开发管理系统

Tansci-Boot 基于 SpringBoot2 magic-api Vue3 Element Plus amis3.0 快速开发管理系统 Tansci-Boot 是一个前后端分离后台管理系统, 前端集成 amis 低代码前端框架,后端集成 magic-api 的接口快速开发框架。包含基础权限、安全认证、以及常用的一…

【BIAI】Lecture 7 - EEG data analysis

EEG data analysis 专业术语 EEG 脑电图 excitatory postsynaptic potential(EPSP)兴奋性突触后电位 inhibitory postsynaptic potential(IPSP) 抑制性突触后电位 action potential 动作电位 dipoles 偶极子 Pyramidal neurons 椎体细胞 Axon 轴突 Dendrite 树突 Synapse 突触…

构建安全可靠的系统:第十一章到第十五章

第三部分:实现系统 原文:Part III. Implementing Systems 译者:飞龙 协议:CC BY-NC-SA 4.0 一旦您分析并设计了您的系统,就该是实现计划的时候了。在某些情况下,实现可能意味着购买现成的解决方案。第十一章…

什么是预训练Pre-training—— AIGC必备知识点,您get了吗?

Look!👀我们的大模型商业化落地产品📖更多AI资讯请👉🏾关注Free三天集训营助教在线为您火热答疑👩🏼‍🏫 随着人工智能(AI)不断重塑我们的世界,其发展的一个关键方面已经…

【人工智能】智能电网:未来能源的革命

未来能源的革命 智能电网革命的意义在于将电力行业从传统的集中式发电和集中式输配电模式转变为智能化、分布式、互动式的能源网络。 现在我们从以下方面详细认真的了解一下智能电网: 智能变电站,智能配电网,智能电能表,智能交互…

版本控制背景知识

版本控制背景知识 本文是关于 Git 系列文章的导读,我们先介绍一下版本控制的背景知识。 什么是版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。它将什么时候、什么人更改了文件的什么内容等信息如实记录下来…

【大数据架构】OLAP实时分析引擎选型

OLAP引擎面临的挑战 常见OLAP引擎对比 OLAP分析场景中,一般认为QPS达到1000就算高并发,而不是像电商、抢红包等业务场景中,10W以上才算高并发,毕竟数据分析场景,数据海量,计算复杂,QPS能够达到1…

解析c++空指针解引用奔溃

对空指针解引用引发程序奔溃是c/c中最常见的稳定性错误之一。显然并非所有使用了空指针的语句都会导致奔溃,那什么情况下使用空指针才会导致程序奔溃呢?有一个判断标准:访问非法内存会引起程序奔溃,否则不奔溃。 常见的空指针操作…