当前位置: 首页 > 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…...

k6:现代性能测试工具的新标杆

本人已经有几年不接触性能测试了&#xff0c;近些年一直是在从事功能和操作系统的自动化测试工作&#xff0c;现在回头看以前所专注的性能测试工具&#xff0c;感觉是有点跟不上时代了&#xff0c;在网上无意中发现一款比较火的工具k6&#xff0c;我也不知道这工具是哪年冒出来…...

GitHub Desktop汉化终极指南:3步快速完成中文界面配置

GitHub Desktop汉化终极指南&#xff1a;3步快速完成中文界面配置 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 【GitHub桌面客户端中文汉化】 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop…...

颠覆传统计算的开源利器:Calcpad工程计算自动化全场景应用指南

颠覆传统计算的开源利器&#xff1a;Calcpad工程计算自动化全场景应用指南 【免费下载链接】Calcpad Free and open source software for mathematical and engineering calculations. 项目地址: https://gitcode.com/gh_mirrors/ca/Calcpad 核心价值&#xff1a;重新定…...

原创论文:基于U-Net的肺部CT结节检测系统设计与实现

摘要&#xff1a;肺癌是当前威胁人类健康的重要疾病之一&#xff0c;肺结节作为肺癌早期筛查和诊断的重要影像学表现&#xff0c;其准确检测具有重要意义。CT影像因具有较高的空间分辨率&#xff0c;被广泛应用于肺部疾病检查。然而&#xff0c;传统人工阅片方式存在工作量大、…...

工业 AI Agent 落地全解:制造业智能化转型的技术架构与场景实践

2025 年被行业称为 AI Agent 元年&#xff0c;Gartner 将 Agentic AI 列为 2025 年顶级技术趋势首位。在智能制造加速推进的背景下&#xff0c;AI Agent 技术正成为破解制造业 AI 落地难、价值转化慢的核心抓手&#xff0c;实现从技术 Demo 到产线落地的跨越&#xff0c;真正融…...

Vue——Vue 3动态表单配置实战:打造灵活的在线问卷系统

写在前面 最近在开发一个内部管理系统时&#xff0c;遇到了一个很有意思的需求&#xff1a;需要实现一个支持动态配置的表单功能&#xff0c;用户可以自定义题目类型、选项内容&#xff0c;还要支持附件上传和时间范围控制。 说实话&#xff0c;这个需求刚开始让我有点头大。动…...

老显卡在Debian 12上重获新生:保姆级教程解决NVIDIA 390驱动安装与版本冲突

老显卡在Debian 12上的重生指南&#xff1a;NVIDIA 390驱动完整解决方案 当GeForce 600/700系列显卡遇上最新的Debian 12系统&#xff0c;就像让一位老将披上现代战甲——既充满情怀又颇具挑战。本文将带你穿越驱动安装的迷雾森林&#xff0c;从硬件识别到版本冲突解决&#xf…...

弦音墨影模型部署排错大全:从“镜像启动失败”到“生成结果空洞”

弦音墨影模型部署排错大全&#xff1a;从“镜像启动失败”到“生成结果空洞” 你是不是也遇到过这种情况&#xff1f;好不容易在星图GPU平台上找到了弦音墨影这个强大的AI模型&#xff0c;满心欢喜地点击部署&#xff0c;结果却卡在了第一步——镜像拉取失败。或者&#xff0c…...

让旧款Mac重获新生:OpenCore Legacy Patcher完整指南

让旧款Mac重获新生&#xff1a;OpenCore Legacy Patcher完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方抛弃的旧款Mac&#…...

终极指南:5步彻底解决显卡驱动残留问题

终极指南&#xff1a;5步彻底解决显卡驱动残留问题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 你是否曾经…...