PINet车道线检测+YOLOv8视频目标检测

2024-04-15 19:28

本文主要是介绍PINet车道线检测+YOLOv8视频目标检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:       

本文主要目的是实现在PINet车道线检测的代码中嵌入YOLOv8的目标检测模块,具体效果如图所示:

         在学习和使用YOLOv8进行目标检测时,感觉可以和最近研究的车道线检测项目结合起来,形成一套如上图所示的视频效果。

        其实将车道线检测和目标检测结合可以提供更全面的场景信息。车道线检测提供了关于道路结构和车辆行驶方向的信息,而目标检测可以检测到周围的车辆、行人、交通标志等物体。通过综合这些信息,可以更准确地理解道路环境,提高驾驶系统的感知能力,另外,可以增强驾驶系统的安全性。车道线检测可以帮助车辆保持在正确的车道内,避免偏离道路。目标检测可以检测到潜在的障碍物或危险情况,帮助驾驶系统及时做出反应,例如避让行人或刹车避免与其他车辆相撞。

        在决策支持方面,车道线检测和目标检测的结合可以为驾驶系统提供更多的决策支持。通过分析车道线和周围目标的位置和状态,可以帮助驾驶系统做出更合理的行驶决策,例如选择合适的车道变道时机、保持安全距离等。

相关资料:

PINet车道线检测论文:https://arxiv.org/abs/2002.06604

官方代码:GitHub - koyeongmin/PINet

论文解读:http://t.csdnimg.cn/AOV91

论文复现过程:http://t.csdnimg.cn/Lhz6m

YOLOv8的部署与安装:http://t.csdnimg.cn/YrWNu

具体实现:

        在所有必须的软件、代码、环境准备完成后,将YOLOv8模块(ultralytics-main)导入至PINet车道线检测的代码包中:

注意:要将其放入根目录下,右键将其标记为Sources Root,否则会检测不到ultralytics


       新建python package,命名:YOLO_predicted_video,在其package下新建python文件,命名:YOLO_pre.py

        导入所需要的包,写入以下代码:

import cv2
from ultralytics import YOLO#############################
## YOLO
############################
def yolo_pre():yolo=YOLO('./yolov8n.pt')video_path='C:\\Users\\25055\\Desktop\\测试2.mp4'cap = cv2.VideoCapture(video_path)  # 创建一个 VideoCapture 对象,用于从视频文件中读取帧# 获取视频帧的维度frame_width = int(cap.get(3))frame_height = int(cap.get(4))# 创建VideoWriter对象fourcc = cv2.VideoWriter_fourcc(*'mp4v')out = cv2.VideoWriter('C:\\Users\\25055\Desktop\\output.mp4', fourcc, 20.0, (frame_width, frame_height))while cap.isOpened():status, frame = cap.read()  # 使用 cap.read() 从视频中读取每一帧if not status:breakresult = yolo.predict(source=frame, save=True)result = result[0]anno_frame = result.plot()#cv2.imshow('行人', anno_frame)out.write(anno_frame)# 注释的框架是通过调用 result.plot() 获得的,它会在框架上绘制边界框和标签。# 带注释的框架使用 cv2.imshow() 窗口名称“行人”显示。#if cv2.waitKey(1) & 0xFF == ord('q'):#breakcap.release()cv2.destroyAllWindows()print('yolo识别完成')video_yolo_path='C:\\Users\\25055\Desktop\\output.mp4'return video_yolo_path

其中:

video_path='C:\\Users\\25055\\Desktop\\测试2.mp4'

便是我们要检测的视频,存放在桌面中。

out = cv2.VideoWriter('C:\\Users\\25055\Desktop\\output.mp4', fourcc, 20.0, (frame_width, frame_height))

将YOLO所检测完成的视频结果存储至'C:\\Users\\25055\Desktop\\output.mp4'文件中。

打开test.py文件:导入YOLO_pre中的yolo_pre模块

在开始测试之后输入以下代码:

video_path=yolo_pre()

 在Parameters.py文件中,将mode设置为1。

test.py文件的cv2.VideoCapture()设置为video_path,即:

    elif p.mode == 1: # 使用视频文件对模型进行测试cap = cv2.VideoCapture(video_path)#通过cv2.VideoCapture打开视频文件while(cap.isOpened()):ret, frame = cap.read()if not ret:breakprevTime = time.time()frame = cv2.resize(frame, (512,256))/255.0frame = np.rollaxis(frame, axis=2, start=0)_, _, ti = test(lane_agent, np.array([frame])) ##循环读取每一帧图像,将图像进行预处理后传递给test函数进行测试,并显示测试结果。#计算FPScurTime = time.time()sec = curTime - prevTimefps = 1/(sec)s = "FPS : "+ str(fps)##同时,计算帧率并在图像上显示。cv2.putText(ti[0], s, (0, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0))#FPS展示cv2.imshow('frame',ti[0])if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()

右键运行test.py文件。

结果展示:

yolo开始进行目标检测:

 yolo检测结果:

开始进行车道线检测任务:

检测结果:

 

这篇关于PINet车道线检测+YOLOv8视频目标检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/906709

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室