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

【Rust练习】14.流程控制
练习题来自: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 校验库同时还支持目前各种主流的校验库比如:Yup、Zod、Joi、Ajv、Vest、Custom 具体查看官方文…...

kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件
场景:交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数,觉得有点意思的,于是就抽时间整理了一下。 1、外部js文件为test.js,代码如下: function test(param){return "接收到了…...

比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程
比传统机器学习更先进的深度学习神经网络的二分类建模全流程分析教程 深度学习介绍和与传统机器学习的区别 深度学习(Deep Learning)是一种机器学习的分支,基于多层神经网络模型,能够自动从大量数据中学习特征并进行预测。深度学…...
TeamTalk梳理概括
文章目录 即时通讯重点概括展开聊聊单聊消息流转流程展开聊聊群聊消息流转流程群成员管理数据库MySQL连接池设计redis连接池设计文件传输原理实时性并发能力 db_proxy_server reactor响应处理流程单聊消息消息如何封装?如何保证对端完整解析一帧消息?协议…...

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

【组件】前端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链接设置 软件下载 如果你访问不了这个网址,可以评论区找博主或者…...
git 远程分支同步本地落后的有冲突的分支
如果你的本地分支已经修改了很多代码,但同时也已经落后于远程分支。这个时候你需要在主分支上拉最新的代码,然后切换到你的分支。 如主分支是 main ,从分支是xing。 首先切换到子分支 $ git checkout xing 然后请求merge主分支main的代码 …...

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

java实现系统文件管理
java实现系统文件管理 环境:jdk17springbootVueElementUI 背景:公司所做的项目需要别的系统向我们服务器上传文件,当我们需要查看这些文件什么时候上传的、文件数据是怎样的,只能去机房,排查问题效率较低,…...
pytorch快速入门(一)—— 基本工具及平台介绍
前言 该pytorch学习笔记应该配合b站小土堆的《pytorch深度学习快速入门教程》使用 环境配置:Anaconda Python编译器:pycharm、jupyter 两大法宝函数 dir():知道包中有什么东西(函数 / 属性..…...

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

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

Python数据分析-世界上最富有的1000人
一、研究背景 随着全球化的加速发展和技术的进步,财富分配问题日益成为全球关注的焦点。财富的不平等现象日益明显,少数极富有的个人掌握了全球大部分的财富资源。了解全球最富有个人的财富分布及其背后的行业和国家因素,对于分析全球经济趋…...
CSS中隐藏滚动条的同时保留滚动功能
在CSS中,我们可以通过一些技巧来隐藏滚动条,同时保留滚动功能。以下是几种常用的方法和具体的实现步骤。 1. 使用 overflow 和 ::-webkit-scrollbar 这种方法适用于大多数现代浏览器。通过设置 overflow 属性启用滚动,同时利用 ::-webkit-s…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...