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算法提高了测距的精确度。
  • 灵活性:可以根据实际需求调整相机参数和其他设置。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu2204安装kvm

ubuntu2204安装kvm 前言一、检测硬件是否支持二、安装软件三、创建/管理虚拟机1、创建存储池2、qemu创建镜像3、xml文件运行虚拟机1、范文2、xml文件创建虚机3、创建虚机 4、克隆虚机5、创建快照6、脚本创建VNC连接 四、创建集群1、安装glusterfs2、加入集群删除节点 3、 创建卷…

深度剖析iOS渲染

iOS App 图形图像渲染的基本流程: 1.CPU:完成对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制。 2.GPU:GPU拿到CPU计算好的显示内容,完成纹理的渲染, 渲染完成后将渲…

基于YOLO深度学习和百度AI接口的手势识别与控制项目

基于YOLO深度学习和百度AI接口的手势识别与控制项目 项目描述 本项目旨在开发一个手势识别与控制系统,该系统能够通过摄像头捕捉用户的手势,并通过YOLO深度学习模型或调用百度AI接口进行手势识别。识别到的手势可以用来控制计算机界面的操作&#xff0…

使用 Elastic 和 LM Studio 的 Herding Llama 3.1

作者:来自 Elastic Charles Davison, Julian Khalifa 最新的 LM Studio 0.3 更新使 Elastic 的安全 AI Assistant 能够更轻松、更快速地与 LM Studio 托管模型一起运行。在这篇博客中,Elastic 和 LM Studio 团队将向你展示如何在几分钟内开始使用。如果你…

API - String 和 ArrayList

01 API是什么 答:API 全称 Application Programming Interfaace 应用程序编程接口。就是别人写好的一些程序,我们可以使用它们去解决相关问题。 02 为什么要学API 答:不要重复造轮子。Java已经有20多年的历史了,在这20多年里Ja…

图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】

0.序 有很多用户需要在卫星影像、或者无人机航测影像、倾斜模型上去标记一些地物的位置(如电线杆塔、重点单位、下水盖等) 标记的位置最终又需要提交坐标文本文件给上级单位或者其他部门使用,甚至需要转为平面直角坐标。 本文的重点是通过of…

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

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

加密与安全_优雅存储用户密码的最佳实践

文章目录 Pre概述最佳实践避免使用MD5、SHA1等快速哈希算法加盐哈希 (不推荐)使用BCrypt、Argon2等慢哈希算法 (推荐)BCrypt Code1. 自动生成和嵌入盐2. 哈希结果的格式3. 代价因子 BCrypt特点 防止暴力破解1. 登录失败锁定2. 双因素认证(2FA…

Java应用压测工具JMeter

目录 1、下载JMeter 2、配置环境变量 3、配置语音 4、使用 1、下载JMeter Apache JMeter - Apache JMeter™ 千万别下载这个,会报错、 千万别下载这个,会报错、 千万别下载这个,会报错 下载这个,失败多下载几次 2、配置环…

react 高阶组件

概述 高级组件到底能够解决什么问题?举一个特别简单的例子,话说小明负责开发一个 web 应用,应用的结构如下所示,而且这个功能小明已经开发完了。 但是,有一天老板突然提出了一个权限隔离的需求,就是部分模…

自动下载网易云音乐歌手全部歌曲工具

自动下载网易云音乐歌手全部歌曲工具 使用说明 下载 地址 运行 双击运行对应版本文件 开发 安装依赖,运行 yarn yarn start打包 yarn pkg

实习期间git的分枝管理以及最常用的命令

各位找工作实习的友友在工作之前一定要把git的相关知识掌握呀,我实现期间被leader说过关于git规范的相关问题了 目前已更新系列: 当前::实习期间git的分枝管理以及最常用的命令 Redis高级-----持久化AOF、RDB原理 Redis高级---面试总结5种…

python绘制3d建筑

import matplotlib.pyplot as plt import numpy as np from mpl_toolkits.mplot3d.art3d import Poly3DCollection# 随机生成建筑块数据 def generate_building_blocks(num_blocks, grid_size100, height_range(5, 50), base_size_range(10, 30)):buildings []for _ in range(…

中间件安全(一)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 一,中间件。 1,什么是中间件。 是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件。中间件是一类…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(Python)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK里函数来获取相机当前数据吞吐量(Python) Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在NEOAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过NEOAPI…

如何评估土壤功能?瓦赫宁根大学研究团队在土壤学一区TOP期刊最新成果给出答案!

本文首发于“生态学者”微信公众号! 土壤健康是农业可持续发展的关键因素之一,而土壤有机碳(Soil Organic Carbon, SOC)含量是衡量土壤健康最常用的指标。然而,许多土壤功能不仅受SOC总量的影响,还与其质量…

【1】OpenCV虚拟环境搭建

文章目录 OpenCV虚拟环境搭建(一)安装anaconda(二)anaconda修改虚拟环境默认位置STEP1:找到C:\Users\你的用户名下的.condarc文件STEP2:修改指定文件夹的权限(重点) (三&…

Java【异常处理】

机制概述 JVM用方法调用栈来跟踪一系列方法的调用过程,位于栈顶的是正在执行的方法,当一个方法抛出异常时,根据代码处理异常。 异常常见类型 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这些异常在…

物品识别——基于python语言

目录 1.物品识别 2.模型介绍 3.文件框架 4.代码示例 4.1 camera.py 4.2 interaction.py 4.3 object_detection.py 4.4 main.py 4.5 运行结果 5.总结 1.物品识别 该项目使用Python,OpenCV进行图像捕捉,进行物品识别。我们将使用YOLO&#xff08…

『功能项目』切换职业面板【48】

我们打开上一篇47技能冷却蒙版的项目, 本章要做的事情是切换职业UI面板的功能 首先双击打开Canvas预制体在左上主角面板信息中新建一个button按钮 重命名(父物体是按钮Button,子物体Image即可) 创建一个Image 设计一下布局 复制三…