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

YOLOv5/v8 + 双目相机测距

yolov5/v8+双目相机测距的代码,需要相机标定


可以训练自己的模型并检测+测距,都是python代码
已多次实验,代码无报错。

非常适合做类似的双目课题!



相机用的是汇博视捷的双目相机,具体型号见下图。
用的yolov5是6.1版本的


Yolov8是8.0.58版本的
看清楚版本-



立体匹配算法是改进的SGBM算法,具体是在后处理阶段加了WLS最小二乘算法,使测距更精确
具体精确度也和相机标定有关,我标定后1m左右距离误差为3%左右
默认用的我的相机参数,只能对测试视频进行测距,需要改成你自己的双目相机参数和设置分辨率!

项目介绍:YOLOv5/v8 + 双目相机测距

项目背景:

本项目结合了YOLOv5/v8(目标检测框架)与双目相机(测距),实现了对目标的实时检测和测距功能。该项目使用的是汇博视捷的双目相机,具体型号已在项目文档中详细列出。所使用的YOLOv5版本为6.1,YOLOv8版本为8.0.58。请注意版本兼容性和依赖关系。

项目特点:
  1. 目标检测:使用YOLOv5/v8进行目标检测,能够快速准确地识别目标物体。
  2. 测距功能:结合双目相机,实现了对目标物体的距离测量功能。
  3. 相机标定:提供了相机标定的功能,确保测距的准确性。
  4. 改进的SGBM算法:在立体匹配算法的基础上,加入了WLS最小二乘算法,提高了测距的精确度。
主要功能:
  1. 目标检测:基于YOLOv5/v8,可以训练自己的目标检测模型,并用于实时检测。
  2. 测距:利用双目相机获取的图像数据,实现对目标物体的距离测量。
  3. 相机标定:提供了相机标定的代码,可以根据实际情况调整相机参数,以获得更准确的测距结果。
技术栈:
  • YOLOv5:版本6.1,用于目标检测。
  • YOLOv8:版本8.0.58,用于目标检测。
  • Python:主要编程语言。
  • 双目相机:汇博视捷双目相机,具体型号请查看项目文档。
  • SGBM算法:立体匹配算法,改进后加入了WLS最小二乘算法。
实现步骤:
  1. 安装依赖:确保安装了YOLOv5/v8的正确版本及相关依赖。
  2. 相机标定:使用提供的代码进行相机标定,获取相机参数。
  3. 训练模型:使用YOLOv5/v8训练自己的目标检测模型。
  4. 测距实现:将目标检测结果与双目相机的测距功能相结合,实现目标测距。
测试与验证:
  • 测距精度:经过多次实验验证,标定后的相机在1米左右的距离上,测距误差约为3%。
  • 适用范围:适用于需要同时进行目标检测与测距的场景,如机器人导航、工业检测等。
注意事项:
  • 相机参数:默认使用了项目作者的相机参数,如果使用其他双目相机,请调整相机参数和分辨率设置。
  • 版本兼容性:请确保YOLOv5/v8的版本与项目代码兼容。
项目结构:
  • main.py:主程序入口,负责启动目标检测和测距流程。
  • camera_calibration.py:相机标定脚本。
  • detection.py:目标检测模块,使用YOLOv5/v8进行检测。
  • stereo_matching.py:立体匹配模块,使用改进的SGBM算法进行测距。
  • config.ini:配置文件,包含相机参数和其他设置。
如何开始:
  1. 克隆仓库:从GitHub仓库中克隆该项目。
  2. 安装依赖:按照README文件中的指示安装所有必要的依赖。
  3. 运行程序:按照README中的指示运行主程序。
  4. 测试数据:使用测试视频进行初步测试。
项目优势:
  • 高效性:YOLOv5/v8提供了高效的检测速度。
  • 精确性:改进的SGBM算法提高了测距的精确度。
  • 灵活性:可以根据实际需求调整相机参数和其他设置。

 

相关文章:

YOLOv5/v8 + 双目相机测距

yolov5/v8双目相机测距的代码,需要相机标定 可以训练自己的模型并检测测距,都是python代码 已多次实验,代码无报错。 非常适合做类似的双目课题! 相机用的是汇博视捷的双目相机,具体型号见下图。 用的yolov5是6.1版本的…...

双三次插值及MATLAB实现

一、双三次插值的概念 双三次插值(Bicubic interpolation),又叫双立方插值。在数值分析这个数学分支中,双三次插值是二维空间中最常用的插值方法。在这种方法中,函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…...

Kubernetes 持续集成与交付(CI/CD)

Kubernetes 持续集成与交付(CI/CD)详解 Kubernetes 是目前主流的容器编排平台,而在 DevOps 的实践中,持续集成与持续交付(CI/CD)是自动化软件开发与运维的核心环节。Kubernetes 与 CI/CD 的结合&#xff0…...

【Rust练习】14.流程控制

练习题来自&#xff1a;https://practice-zh.course.rs/flow-control.html 1 // 填空 fn main() {let n 5;if n < 0 {println!("{} is negative", n);} __ n > 0 {println!("{} is positive", n);} __ {println!("{} is zero", n);} } …...

React-Hooks-Form 集成 Zod 校验库

React-Hooks-Form 集成 Zod 校验库 首先需要安装 react hooks form 官方提交的解析器 npm install hookform/resolvers再安装校验库 npm install zod它不仅支持 Zod 校验库同时还支持目前各种主流的校验库比如&#xff1a;Yup、Zod、Joi、Ajv、Vest、Custom 具体查看官方文…...

kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件

场景&#xff1a;交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数&#xff0c;觉得有点意思的&#xff0c;于是就抽时间整理了一下。 1、外部js文件为test.js&#xff0c;代码如下&#xff1a; function test(param){return "接收到了…...

比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程

比传统机器学习更先进的深度学习神经网络的二分类建模全流程分析教程 深度学习介绍和与传统机器学习的区别 深度学习&#xff08;Deep Learning&#xff09;是一种机器学习的分支&#xff0c;基于多层神经网络模型&#xff0c;能够自动从大量数据中学习特征并进行预测。深度学…...

TeamTalk梳理概括

文章目录 即时通讯重点概括展开聊聊单聊消息流转流程展开聊聊群聊消息流转流程群成员管理数据库MySQL连接池设计redis连接池设计文件传输原理实时性并发能力 db_proxy_server reactor响应处理流程单聊消息消息如何封装&#xff1f;如何保证对端完整解析一帧消息&#xff1f;协议…...

构建“零工市场小程序”,服务灵活就业“大民生”

如今&#xff0c;灵活就业已成为现代劳动力市场的重要组成部分。然而&#xff0c;这一就业形态也面临着信息不对称、匹配效率低下等一系列挑战。为有效解决这些问题&#xff0c;构建一个高效、便捷的“零工市场小程序”显得尤为重要。 二、零工市场现状与挑战 市场规模与增长趋…...

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 苹果格式

【组件】前端js HEIC/HEIF 转换为JPEG、PNG或GIF格式 Heic2any: Client-side conversion of HEIC/HEIF image files to JPEG,PNG, or GIF in the browser.https://alexcorvi.github.io/heic2any/#demo GitHub - alexcorvi/heic2any: Converting HEIF/HEIF image formats to PN…...

Vue3中slot插槽的几种使用实践

【1】默认插槽 父组件 <Category title"今日美食城市"><img :src"imgUrl" alt""> </Category>子组件 <div class"category"><h2>{{title}}</h2><slot>默认内容</slot> </div&g…...

SSH工具 MobaXterm的使用与快捷配置

软件下载/安装与链接服务器/本地虚拟机 文章目录 软件下载/安装与链接服务器/本地虚拟机软件下载软件安装使用软件链接非本地机器并设置用户密码我不想有确定密码的弹窗 其余便捷配置配置右键粘贴SSH链接设置 软件下载 如果你访问不了这个网址&#xff0c;可以评论区找博主或者…...

git 远程分支同步本地落后的有冲突的分支

如果你的本地分支已经修改了很多代码&#xff0c;但同时也已经落后于远程分支。这个时候你需要在主分支上拉最新的代码&#xff0c;然后切换到你的分支。 如主分支是 main &#xff0c;从分支是xing。 首先切换到子分支 $ git checkout xing 然后请求merge主分支main的代码 …...

如何基于Java解析国密数字证书

一、说明 随着信息安全的重要性日益凸显&#xff0c;数字证书在各种安全通信场景中扮演着至关重要的角色。国密算法&#xff0c;作为我国自主研发的加密算法标准&#xff0c;其应用也愈发广泛。然而&#xff0c;在Java环境中解析使用国密算法的数字证书时&#xff0c;我们可能…...

java实现系统文件管理

java实现系统文件管理 环境&#xff1a;jdk17springbootVueElementUI 背景&#xff1a;公司所做的项目需要别的系统向我们服务器上传文件&#xff0c;当我们需要查看这些文件什么时候上传的、文件数据是怎样的&#xff0c;只能去机房&#xff0c;排查问题效率较低&#xff0c;…...

pytorch快速入门(一)—— 基本工具及平台介绍

前言 该pytorch学习笔记应该配合b站小土堆的《pytorch深度学习快速入门教程》使用 环境配置&#xff1a;Anaconda Python编译器&#xff1a;pycharm、jupyter 两大法宝函数 dir&#xff08;&#xff09;&#xff1a;知道包中有什么东西&#xff08;函数 / 属性..…...

『功能项目』怪物的有限状态机【42】

本章项目成果展示 我们打开上一篇41项目优化 - 框架加载资源的项目&#xff0c; 本章要做的事情是按照框架的思想构建项目并完成怪物的自动巡逻状态&#xff0c;当主角靠近怪物时&#xff0c;怪物会朝向主角释放技能 首先新建脚本&#xff1a;BossCtrl.cs (通常把xxxCtrl.cs脚…...

【C++】模板进阶:深入解析模板特化

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与Queue 本章将…...

Python数据分析-世界上最富有的1000人

一、研究背景 随着全球化的加速发展和技术的进步&#xff0c;财富分配问题日益成为全球关注的焦点。财富的不平等现象日益明显&#xff0c;少数极富有的个人掌握了全球大部分的财富资源。了解全球最富有个人的财富分布及其背后的行业和国家因素&#xff0c;对于分析全球经济趋…...

CSS中隐藏滚动条的同时保留滚动功能

在CSS中&#xff0c;我们可以通过一些技巧来隐藏滚动条&#xff0c;同时保留滚动功能。以下是几种常用的方法和具体的实现步骤。 1. 使用 overflow 和 ::-webkit-scrollbar 这种方法适用于大多数现代浏览器。通过设置 overflow 属性启用滚动&#xff0c;同时利用 ::-webkit-s…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...