目标检测+目标追踪+单目测距(毕设+代码)

这篇具有很好参考价值的文章主要介绍了目标检测+目标追踪+单目测距(毕设+代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

更多视觉额自动驾驶项目请见:
小白学视觉
自动驾驶项目

项目成果图

目标检测+目标追踪+单目测距(毕设+代码)
目标检测+目标追踪+单目测距(毕设+代码)
现推出专栏项目:从图像处理(去雾/去雨)/目标检测/目标跟踪/单目测距/到人体姿态识别等视觉感知项目------------------------>>>>传送门

废话不多说,切入正文!

目标检测

YOLOv5是一种计算机视觉算法,它是YOLO(You Only Look Once)系列算法的最新版本,由Joseph Redmon和Alexey Bochkovskiy等人开发。它是一种单阶段目标检测算法,可以在图像中检测出多个物体,并输出它们的类别和位置信息。相比于以往的YOLO版本,YOLOv5具有更高的检测精度和更快的速度。

目标检测+目标追踪+单目测距(毕设+代码)

网络架构

YOLOv5使用了一种新的检测架构,称为CSP(Cross-Stage Partial)架构,它将原始的卷积层替换为CSP卷积层,这种新的卷积层可以更好地利用计算资源,提高模型的效率和准确度。此外,YOLOv5还使用了一种新的数据增强技术,称为Mosaic数据增强,这种技术可以在单个图像中合并多个图像,以增加样本的复杂性和多样性,提高模型的泛化能力。

改进点

YOLOv5引入了一种新的训练策略,称为Self-Adversarial Training(SAT),它可以在模型训练过程中自动生成对抗性样本,以帮助模型更好地学习物体的特征和位置信息,提高模型的鲁棒性和准确度。

应用领域

YOLOv5的同时也提供了预训练模型,可以直接用于物体检测任务。此外,YOLOv5还可以在不同的硬件平台上运行,包括CPU、GPU和TPU等。因此,YOLOv5非常适合在嵌入式设备、移动设备和云端服务器等不同场景中应用,可以广泛应用于交通、安防、无人驾驶、智能家居等领域。

deepsort追踪

多目标跟踪算法

DeepSORT是一种基于深度学习的多目标跟踪算法,可以在复杂的场景中实现高效准确的目标追踪。DeepSORT的核心思想是将目标检测和目标跟踪两个任务分开处理,利用深度学习网络提取目标特征,并结合卡尔曼滤波和匈牙利算法等传统跟踪方法,实现对多个目标的准确追踪。
目标检测+目标追踪+单目测距(毕设+代码)

代码

def main(_argv): #--->全部代码qq1309399183--<
    # Definition of the parameters
    max_cosine_distance = 0.4
    nn_budget = None
    nms_max_overlap = 1.0

    # initialize deep sort
    model_filename = 'model_data/mars-small128.pb'
    encoder = gdet.create_box_encoder(model_filename, batch_size=1)
    # calculate cosine distance metric
    metric = nn_matching.NearestNeighborDistanceMetric("cosine", max_cosine_distance, nn_budget)
    # initialize tracker
    tracker = Tracker(metric)

    # load configuration for object detector
    config = ConfigProto()
    config.gpu_options.allow_growth = True
    session = InteractiveSession(config=config)
    STRIDES, ANCHORS, NUM_CLASS, XYSCALE = utils.load_config(FLAGS)
    input_size = FLAGS.size
    video_path = FLAGS.video

    # load tflite model if flag is set
    if FLAGS.framework == 'tflite':
        interpreter = tf.lite.Interpreter(model_path=FLAGS.weights)
        interpreter.allocate_tensors()
        input_details = interpreter.get_input_details()
        output_details = interpreter.get_output_details()
        print(input_details)
        print(output_details)
    # otherwise load standard tensorflow saved model
    else:
        saved_model_loaded = tf.saved_model.load(FLAGS.weights, tags=[tag_constants.SERVING])
        infer = saved_model_loaded.signatures['serving_default']

    # begin video capture
    try:
        vid = cv2.VideoCapture(int(video_path))
    except:
        vid = cv2.VideoCapture(video_path)

    out = None

    # get video ready to save locally if flag is set
    if FLAGS.output:
        # by default VideoCapture returns float instead of int
        width = int(vid.get(cv2.CAP_PROP_FRAME_WIDTH))
        height = int(vid.get(cv2.CAP_PROP_FRAME_HEIGHT))
        fps = int(vid.get(cv2.CAP_PROP_FPS))
        codec = cv2.VideoWriter_fourcc(*FLAGS.output_format)
        out = cv2.VideoWriter(FLAGS.output, codec, fps, (width, height))

    frame_num = 0
    # while video is running
    while True:
        return_value, frame = vid.read()
        if return_value:
            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            image = Image.fromarray(frame)
        else:
            print('Video has ended or failed, try a different video format!')
            break
        frame_num += 1
        print('Frame #: ', frame_num)
        frame_size = frame.shape[:2]
        image_data = cv2.resize(frame, (input_size, input_size))
        image_data = image_data / 255.
        image_data = image_data[np.newaxis, ...].astype(np.float32)

模块

DeepSORT主要有三个模块:特征提取模块、卡尔曼滤波模块和匈牙利算法模块。其中,特征提取模块使用卷积神经网络(CNN)提取每个目标的特征向量,以区分不同目标之间的差异。卡尔曼滤波模块用于预测每个目标的位置和速度,以减小运动模糊和噪声对追踪结果的影响。匈牙利算法模块用于将当前帧中的每个检测框与上一帧中已跟踪的目标进行匹配,以确定每个目标的唯一ID,并更新目标的位置和速度信息。

新特点

DeepSORT除了基本的跟踪功能外,还具有一些高级功能。例如,它可以对目标进行重新识别,以处理目标遮挡、漂移等问题;它还可以使用多个相机进行目标跟踪,以处理多个视角的场景;它还可以实现在线学习,以适应不同场景下的目标特征。

单目测距

# 介绍

YOLO(You Only Look Once)是一种单阶段目标检测算法,可以在图像中检测出多个物体,并输出它们的类别和位置信息。与传统的目标检测方法不同,YOLO不仅可以检测物体,还可以计算物体的深度信息,从而实现单目测距。

代码

depth = (cam_H / np.sin(angle_c)) * math.cos(angle_b)#目标深度
    #     print('depth', depth)
##联系--方式:----qq1309399183--------
    k_inv = np.linalg.inv(in_mat)#K^-1 内参矩阵的逆
    p_inv = np.linalg.inv(out_mat)#R^-1 外参矩阵的逆
    print("out---:",p_inv)
    point_c = np.array([x_d, y_d, 1])  ##图像坐标
    point_c = np.transpose(point_c)#目标的世界坐标
    #     print('point_c', point_c)
    print('in----', k_inv)
    ##相机坐标系和图像坐标系下物体坐标可按照下式转换。
    c_position = np.matmul(k_inv, depth * point_c)#Zc*[u,v,1].T*ins^-1==[Xc,Yc,Zc].T #坐标转换

YOLO单目测距的具体实现方法有多种,其中比较常见的方法是基于单目视觉几何学的方法。该方法利用相机成像原理和三角测量原理,通过计算物体在图像中的位置和大小,以及相机的内参和外参等参数,来估计物体的距离。

测距步骤

具体来说,YOLO单目测距可以分为以下几个步骤:
目标检测+目标追踪+单目测距(毕设+代码)

  1. 相机标定:通过拍摄特定的标定板,获取相机的内参和外参等参数,用于后续的距离计算。

  2. 目标检测:使用YOLO算法在图像中检测出目标,并获取目标的位置和大小信息。

  3. 物体位置计算:利用相机成像原理和三角测量原理,计算物体在相机坐标系下的三维坐标。

  4. 距离计算:利用相机的内参和外参等参数,将物体在相机坐标系下的三维坐标转换为物体在世界坐标系下的三维坐标,并计算物体与相机之间的距离。

除了基于单目视觉几何学的方法外,还有一些其他的方法可以实现YOLO单目测距,例如基于深度学习的方法和基于光流的方法等,这些方法都有其优缺点和适用场景,需要根据实际情况选择合适的方法。
目标检测+目标追踪+单目测距(毕设+代码)

结论

总的来说,YOLO单目测距是一种基于单目视觉的距离估计方法,具有简单、快速、低成本等优点,在自动驾驶、机器人导航、智能交通等领域有广泛的应用前景。但需要注意的是,由于单目视觉存在一些局限性,如遮挡、光照变化、纹理缺失等问题,因此需要结合其他传感器或算法进行辅助,以提高测距的准确度和鲁棒性。文章来源地址https://www.toymoban.com/news/detail-448811.html

到了这里,关于目标检测+目标追踪+单目测距(毕设+代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单目3D目标检测】SMOKE论文解析与代码复现

    在正篇之前,有必要先了解一下yacs库,因为SMOKE源码的参数配置文件,都是基于yacs库建立起来的,不学看不懂啊!!!! yacs是一个用于定义和管理参数配置的库(例如用于训练模型的超参数或可配置模型超参数等)。yacs使用yaml文件来配置参数。另外,yacs是在py-fast -rcnn和

    2024年02月09日
    浏览(34)
  • 单目测距终于摆脱了参考物,实现单目测距、检测物体大小,增加了实验数据,效果很好

    🥇版权:本文由作者【 Brson.AI 】原创首发、各位读者大大敬请查阅、感谢三连🎉🎉🎉 🏆声明:作为大脑的儿子AI,专注于分享更多AI知识干货给大家🌞 🏅文章若有错误之处请大方指出,我会认真改正,谢谢各位看官❤️ 📆最近一直在捣腾关于 单目测距 和 检测物体大小

    2024年02月06日
    浏览(36)
  • 【单目3D目标检测】FCOS3D + PGD论文解析与代码复现

    本文对OpenMMLab在Monocular 3D detection领域做的两项工作FCOS3D和PGD(也被称作FCOS3D++)进行介绍。 在此之前,建议大家通过这篇博客:“3Dfy” A General 2D Detector: 纯视觉 3D 检测再思考,来回顾单目3D目标检测的更多细节。   Wang, T, Zhu, X, Pang, J, et al. Fcos3d: Fully convolutional one-stage mono

    2024年02月02日
    浏览(29)
  • 单目相机测距(3米范围内)二维码实现方案(python代码 仅仅依赖opencv)

    总体思路:先通过opencv 识别二维码的的四个像素角位置,然后把二维码的物理位置设置为 ,相当于这是一个任意找的物体上的四个点,对应的我们找到了在图像中对应的像素坐标。这就解决了世界坐标系与像素坐标系之间的对应问题,然后再通过PNP求解的方式,就可以通过

    2024年02月04日
    浏览(33)
  • 【3D目标检测】基于伪雷达点云的单目3D目标检测方法研宄

    本文是基于单目图像的3D目标检测方法,是西安电子科技大学的郭鑫宇学长的硕士学位论文。 【2021】【单目图像的3D目标检测方法研究】 研究的问题: 如何提高伪点云的质量 伪点云体系中如何提高基于点云的检测算法的效果 提出的方法: 一种基于置信度的伪点云采样方法

    2024年02月06日
    浏览(40)
  • 睿智的目标检测——Pytorch搭建YoloV7-3D单目图像目标检测平台

    睿智的目标检测——Pytorch搭建YoloV7-3D单目图像目标检测平台 学习前言 源码下载 YoloV7-3D改进的部分(不完全) YoloV7-3D实现思路 一、整体结构解析 二、网络结构解析 1、主干网络Backbone介绍 2、构建FPN特征金字塔进行加强特征提取 3、利用Yolo Head获得预测结果 三、预测结果的解

    2024年02月16日
    浏览(36)
  • 目标检测YOLO实战应用案例100讲-【目标检测】目标追踪

    目录 前言 算法原理  1匈牙利算法(Hungarian Algorithm) 2卡尔曼滤波(Kalman Filter) 预测

    2024年02月21日
    浏览(43)
  • 【MMDetection3D】基于单目(Monocular)的3D目标检测入门实战

    本文简要介绍单目(仅一个摄像头)3D目标检测算法,并使用MMDetection3D算法库,对KITTI(SMOKE算法)、nuScenes-Mini(FCOS3D、PGD算法)进行训练、测试以及可视化操作。   单目3D检测,顾名思义,就是只使用一个摄像头采集图像数据,并将图像作为输入送入模型进,为每一个感兴

    2024年02月03日
    浏览(36)
  • 【利用MMdetection3D框架进行单目3D目标检测(smoke算法】

    mmdetection3d是OpenMMLab开发的3D目标检测开源工具箱,里面包含了许多经典的3D目标检测算法,包含了单目3D目标检测、多目3D目标检测、点云3D目标检测、多模态3D目标检测等各个方向。我们只需要把相应的算法权重下载下来,并调用相应接口即可进行检测。 mmdetection3d的安装需要

    2024年02月13日
    浏览(34)
  • YOLOv5车辆测距实践:利用目标检测技术实现车辆距离估算

    YOLOv5目标检测技术进行车辆测距。相信大家对YOLOv5已经有所了解,它是一种快速且准确的目标检测算法。接下来,让我们一起探讨如何通过YOLOv5实现车辆距离估算。这次的实践将分为以下几个步骤: 安装所需库和工具 数据准备 模型训练 距离估算 可视化结果 优化 1. 安装所需

    2024年02月02日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包