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

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

目录


目标检测

网络架构

改进点

应用领域

deepsort追踪

多目标跟踪算法

代码

模块

新特点

单目测距

# 介绍

代码

测距步骤

结论


前言


项目成果图

480be4783a7b1e2f69ce9c9896c1a2c3_9be9791dae0442e5b549af772a64eafd.png

3cca8e34fa7a137c2d77ab7283747274_c1364d16d76a4c548ab276e8c4454309.png


正文


目标检测


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

67c80b5f41a943ca06dc7b5ad1bb2281_4d2fed0ac28d44478cd708699915e280.png


网络架构


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


改进点


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


应用领域


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


deepsort追踪


多目标跟踪算法


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

11fd7e68161a8eac4c0db7ea50b6c7a5_4957a43700474bd992287d7c61f907c9.png


代码


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)


相关文章
|
6月前
|
机器学习/深度学习 存储 算法
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
|
计算机视觉
【状态估计】基于卡尔曼滤波器和扩展卡尔曼滤波器用于 INS/GNSS 导航、目标跟踪和地形参考导航研究(Matlab代码实现)
【状态估计】基于卡尔曼滤波器和扩展卡尔曼滤波器用于 INS/GNSS 导航、目标跟踪和地形参考导航研究(Matlab代码实现)
101 0
|
7月前
|
机器学习/深度学习 传感器 算法
目标检测+车道线识别+追踪+测距(代码+部署运行)
目标检测+车道线识别+追踪+测距(代码+部署运行)
|
传感器 机器学习/深度学习 算法
【姿态解算】基于扩展卡尔曼滤波九轴传感器姿态解算研究附代码
【姿态解算】基于扩展卡尔曼滤波九轴传感器姿态解算研究附代码
|
传感器 Web App开发 算法
【状态估计】基于无味卡尔曼滤波模拟倾斜传感器研究(Matlab代码实现)
【状态估计】基于无味卡尔曼滤波模拟倾斜传感器研究(Matlab代码实现)
|
机器学习/深度学习 监控 并行计算
m基于PMP投影匹配追踪算法的人体姿态提取matlab仿真
m基于PMP投影匹配追踪算法的人体姿态提取matlab仿真
233 0
|
机器学习/深度学习 传感器 监控
【目标检测】基于帧间差法实现视频目标检测和轨迹分析附matlab代码和GUI界面
【目标检测】基于帧间差法实现视频目标检测和轨迹分析附matlab代码和GUI界面
|
机器学习/深度学习 自然语言处理 算法
m基于CNN卷积网络和GEI步态能量图的步态识别算法MATLAB仿真,测试样本采用现实拍摄的场景进行测试,带GUI界面
m基于CNN卷积网络和GEI步态能量图的步态识别算法MATLAB仿真,测试样本采用现实拍摄的场景进行测试,带GUI界面
156 0
m基于CNN卷积网络和GEI步态能量图的步态识别算法MATLAB仿真,测试样本采用现实拍摄的场景进行测试,带GUI界面
|
机器学习/深度学习 传感器 算法
目标检测+目标追踪+单目测距(毕设+代码)下
目标检测+目标追踪+单目测距(毕设+代码)
|
机器学习/深度学习 算法 vr&ar
m十字路口多功能控制交通系统,包括基于遗传算法优化的红绿灯时长模糊控制器和基于BP神经网络的车牌识别算法
m十字路口多功能控制交通系统,包括基于遗传算法优化的红绿灯时长模糊控制器和基于BP神经网络的车牌识别算法
184 0