Yolov5双目测距-双目相机计数及测距教程(附代码)

简介: Yolov5双目测距-双目相机计数及测距教程(附代码)

引言

计算机视觉领域,Yolov5-Binocular相机距离计数及测距是一个引人注目的研究方向。本教程将为小白用户提供一个简明扼要的学习指南,涵盖了关键步骤,包括标定、公示推倒以及重要的代码片段。


第一步:环境搭建

首先,确保你的环境已经正确搭建。你需要安装Yolov5以及相关的依赖项,可以通过以下命令在终端中完成:

pip install torch torchvision
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -U -r requirements.txt


第二步:标定相机

对于Binocular相机,标定是非常重要的一步,它能够校准相机参数,使得图像中的目标位置能够被准确地映射到相机坐标系中。你可以使用OpenCV中的calibrateCamera函数进行标定。

import numpy as np
import cv2

# 读取标定板图像
images = [cv2.imread(f'path/to/calibration_images/{i}.jpg') for i in range(1, num_images + 1)]

# 设置标定板参数
pattern_size = (7, 7)
objp = np.zeros((pattern_size[0] * pattern_size[1], 3), np.float32)
objp[:, :2] = np.mgrid[0:pattern_size[0], 0:pattern_size[1]].T.reshape(-1, 2)

# 检测角点
objpoints = []
imgpoints = []
gray = cv2.cvtColor(images[0], cv2.COLOR_BGR2GRAY)
ret, corners = cv2.findChessboardCorners(gray, pattern_size, None)

# 进行标定
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None)


第三步:公示推倒

公示推倒是为了校正由于镜头畸变而引起的图像失真,使用undistort函数即可进行推倒。这一步非常关键,因为它直接影响到目标在图像中的准确位置。

# 读取待推倒的图像
image = cv2.imread('path/to/image.jpg')

# 进行公示推倒
undistorted = cv2.undistort(image, mtx, dist, None, mtx)


第四步:Yolov5-Binocular相机距离计数及测距

最后,我们将Yolov5与标定后的相机参数结合起来,实现距离计数及测距。首先,确保你已经使用Yolov5训练了一个合适的模型。


在原始的 “yolov5” 中添加了3个文件 —> camera_config.py dis_count.py video_remain.py


  1. 1.首先要进行你的双目摄像头的标定 具体的标定方法百度上有很多, 我推荐matlab标定 额 因为我没找到python标定很好的程序
  2. 2.确定你的双目摄像头是单设备号还是双设备号的, 双设备号要确定你的设备号各是多少 比如我的摄像头是0和2 我就在video_remain.py 的59/60行 写了(0)
  3. 3.如果是单设备号 百度一下单设备号双目摄像头如何使用


代码说明

  • camera_config.py 双目摄像头参数
  • dis_count.py 深度图+距离矩阵
  • video_remain.py 主函数


结论

通过本教程,你已经学会了Yolov5-Binocular相机距离计数及测距的基本流程,包括相机标定、公示推倒以及Yolov5模型的应用。希望这对于初学者能够提供一些帮助,也欢迎大家进一步深入研究这个有趣而挑战性的领域。

相关文章
|
编解码 前端开发 算法
基于OpenCV的双目摄像头测距(误差小)
首先进行双目摄像头定标,获取双目摄像头内部的参数后,进行测距;本文的双目视觉测距是基于BM算法。注意:双目定标的效果会影响测距的精准度,建议大家在做双目定标时,做好一些(尽量让误差小)。
12490 3
基于OpenCV的双目摄像头测距(误差小)
|
机器学习/深度学习 存储 监控
yolov5单目测距+速度测量+目标跟踪(算法介绍和代码)
yolov5单目测距+速度测量+目标跟踪(算法介绍和代码)
|
人工智能 JSON 数据可视化
yolov8+动物+姿态识别(训练教程+代码)
yolov8+动物+姿态识别(训练教程+代码)
|
机器学习/深度学习 编解码 监控
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-1
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-1
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
23116 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
机器学习/深度学习 文件存储 算法框架/工具
【YOLOv8改进- Backbone主干】2024最新轻量化网络MobileNetV4替换YoloV8的BackBone
YOLO目标检测专栏聚焦于模型的改进和实战应用,介绍了MobileNetV4,它在移动设备上优化了架构。文章提到了UIB(通用反向瓶颈)模块,结合了多种结构,增强了特征提取;Mobile MQA是专为移动平台设计的注意力层,提升了速度;优化的NAS提升了搜索效率。通过这些创新,MNv4在不同硬件上实现了性能和效率的平衡,且通过蒸馏技术提高了准确性。模型在Pixel 8 EdgeTPU上达到87%的ImageNet-1K准确率,延迟仅为3.8ms。论文、PyTorch和TensorFlow实现代码链接也已提供。
|
传感器 编解码 vr&ar
Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用
Intel深度摄像头RealSense D435(实感双目摄像头)和目标检测结合使用
6042 0
|
并行计算 算法 PyTorch
Stereo-Detection:适合新手的双目测距开源项目
Stereo-Detection:适合新手的双目测距开源项目
2631 0
|
算法 固态存储 计算机视觉
双目测距 BM算法 Python版
首先进行双目定标,获取双目摄像头内部的参数后,进行测距。本次的双目视觉测距,基于BM算法。
779 0

热门文章

最新文章