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