基于深度学习的高速公路车辆重识别算法研究

2019年计算机类毕业设计论文题目推荐 又到了一年了毕业时间, 收集了一些985/211高校的计算机类论文题目, 希望对大家有所帮助 深度嵌入聚类算法研究 基于机器视觉的行人重识别算法的分析与实现 基于动力学模型的属性网络重叠社团发现 基于Spring-Boot框架的一体化运维监控应用的研究与实现 Android系统中基于手写密码与笔迹信息的综合认证技术研究 公交线路准点预测方法研究 基于深度学习的医学图像分割算法研究 ... 阅读详情

前言

📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导:

最新最全计算机专业毕设选题精选推荐汇总

大家好,这里是海浪学长毕设专题,本次分享的课题是:

🎯基于深度学习的高速公路车辆重识别算法研究

选题意义背景

随着我国国民经济的持续发展,私家车保有量不断攀升,高速公路作为国家重要的交通基础设施承载着日益增长的通行需求。据统计,截至2025年初,我国高速公路总里程已超过18万公里,稳居世界第一。然而,随着高速公路网络的不断扩展和车流量的大幅增加,传统的交通管理和监控手段已难以满足现代智能交通系统的需求,特别是在车辆身份识别、逃费稽查等方面面临严峻挑战。
在这里插入图片描述
在当前高速公路收费系统向ETC(电子不停车收费)全面转型的背景下,车辆重识别技术对于解决高速公路稽核系统中出现的漏费、逃费问题具有不可替代的作用。传统的车牌识别技术在面对车牌遮挡、污损、反光等情况时往往失效,而车辆重识别技术通过分析车辆的外观特征进行身份识别,能够有效弥补这一不足。特别是在2023年以来,全国范围内开展的高速公路收费专项整治行动中,对车辆身份的准确识别成为关键环节,这进一步凸显了车辆重识别技术的重要性。
在这里插入图片描述

然而,高速公路场景下的车辆重识别任务面临着诸多挑战。首先,由于门架摄像机视角固定,只能获取车辆的正面和背面信息,可提取的特征有限;其次,高速公路上同类车型的车辆大量存在,导致类间差异小;同时,同一车辆在不同光照条件、不同天气环境下的图像差异较大,造成类内差异大;此外,车辆行驶速度快,可能导致图像模糊;最后,高速公路场景下的车辆重识别方法研究相对滞后,现有方法多基于城市道路场景设计,在高速公路场景下性能不佳。

因此,研究并设计适用于高速公路场景下的车辆重识别方法,对于提升高速公路智能化管理水平、保障收费公平性、提高交通运行效率具有重要的理论价值和实际应用意义。本课题引入深度学习的先进理论和方法,针对高速公路场景的特点,提出了基于多任务表征学习和基于改进度量学习的两种车辆重识别方法,旨在解决高速公路场景下车辆重识别的关键技术难题。

数据集

本研究使用了三个车辆重识别数据集进行实验验证,其中两个是车辆重识别领域的主流数据集,另一个是针对高速公路场景自建的专用数据集。

VeRi-776数据集:该数据集由北京邮电大学研究团队构建,包含776辆车的超过50,000张图像。数据来源于城市区域20台监控摄像机在24小时内的拍摄,覆盖了1平方公里的范围。该数据集具有丰富的属性标注,包括车辆ID、类型、颜色等,同时提供了车牌和时空标签。所有车辆图像的车牌均被遮挡,以确保算法仅依靠车辆外观特征进行识别。

VehicleID数据集:由北京大学视频技术国家工程实验室构建,包含26,267辆汽车的221,763张图像。该数据集来源于真实监控场景,记录了不同时间、不同摄像机下的车辆图像,并附有详细的车辆标签。测试集分为小(Test=800)、中(Test=1600)、大(Test=2400)三个子集,便于进行不同规模下的性能评估。
在这里插入图片描述

E-Vehicle数据集:为满足本研究的特殊需求,专门构建了高速公路场景下的车辆数据集。该数据集来源于京港澳高速公路(G4)河南段周口至南阳方向的ETC门架摄像机。数据采集覆盖了连续的14至16个门架,每个门架配备至少4组摄像机(每组两个),总摄像机数量超过168个。采集时间跨度为24小时,涵盖了白天和黑夜不同光照条件下的车辆图像。

数据采集:在京港澳高速公路河南段周口至南阳方向,选择了宁洛高速至兰南高速区间作为数据采集区域。该区间全长约30公里,包含多个门架点位,能够有效捕捉车辆在高速公路环境下的不同状态。数据采集设备采用高速公路现有的ETC门架摄像机系统,确保了数据的真实性和可靠性。采集当天天气为晴天,光照条件良好,有利于获取高质量的车辆图像。
在这里插入图片描述

数据规模与组成:E-Vehicle数据集最终包含618辆车的14,315张图像。其中,每辆车至少包含8张图像,平均每辆车的图像数量为20张。数据集中的车辆类型涵盖了普通客车、大面包车、旅游大巴、大型卡车、专项作业车等多种车型;车辆品牌包括奥迪、奔驰、大众、比亚迪、宝马、尼桑等;颜色特征也十分丰富,包含了市场上常见的各种车辆颜色。

数据标注:使用labelme图像标注工具对数据集中的每张图像进行了详细的人工标注。标注内容包括:门架编号、相机编号、车辆编号、车辆颜色、车辆类型、车辆品牌、年检标志等。特别地,由于高速公路门架摄像机只能获取车辆的正面和背面图像,为便于网络学习,还专门为同一辆车的不同角度图像添加了正面和背面的标签。

数据预处理:为提高数据质量,对原始图像进行了一系列预处理操作。首先,进行图像去噪处理,去除监控视频中的随机噪声;其次,对图像进行尺寸标准化,统一调整为256×128的尺寸,以便于网络输入;然后,进行图像增强,包括对比度调整、亮度归一化等,以适应不同光照条件下的图像;最后,对图像进行车牌遮挡处理,确保算法不依赖车牌信息进行识别。

数据分割:按照3:1:1的比例将数据集划分为训练集、查询集和测试集。其中,训练集包含378辆车,共9,263张图像;查询集包含120辆车,共1,204张图像;测试集包含120辆车,共3,875张图像。这种分割方式既保证了训练集的规模足够大,能够充分训练模型,又确保了测试集的独立性,能够客观评估模型性能。

数据集特点:与城市道路场景数据集相比,E-Vehicle数据集具有以下特点:1)图像视角固定,主要为车辆正面和背面;2)车辆遮挡情况少,图像质量较高;3)包含大量类间差异小的样本(不同车辆但外观相似)和类内差异大的样本(同一车辆但光照、角度等因素导致差异大);4)提供了丰富的时空信息,便于进行多维度分析。这些特点使得E-Vehicle数据集非常适合用于验证高速公路场景下车辆重识别方法的有效性。

功能模块介绍

本研究提出的车辆重识别系统包含多个功能模块,各模块协同工作,共同完成车辆重识别任务。

图像预处理模块

该模块负责对输入的车辆图像进行预处理,确保图像质量符合后续处理的要求。主要功能包括:

图像尺寸标准化:将不同分辨率的车辆图像统一调整为256×128的标准尺寸,以适应深度神经网络的输入要求。采用双线性插值算法进行图像缩放,保证图像质量的同时提高处理效率。

数据增强:为提高模型的泛化能力和鲁棒性,对训练图像进行多种数据增强操作,包括水平翻转、随机裁剪和随机擦除。水平翻转可以增加训练样本的多样性;随机裁剪模拟不同距离下拍摄的车辆图像;随机擦除则可以增强模型对局部遮挡的适应能力。

图像归一化:对图像进行像素值归一化处理,将像素值从0-255的范围转换到0-1的范围,并进行均值减法和标准差除法,使数据分布更加符合深度学习模型的训练要求。

车牌遮挡处理:为确保模型仅依靠车辆外观特征进行识别,对所有图像中的车牌区域进行自动检测并遮挡。采用基于规则的车牌检测算法,结合车辆先验知识,准确定位车牌区域并进行像素级替换。

特征提取模块

该模块是整个车辆重识别系统的核心,负责从预处理后的车辆图像中提取具有判别性的深度特征。

基础网络选择:采用VGG-16作为基础特征提取网络。VGG-16是一种经典的卷积神经网络架构,具有13个卷积层和3个全连接层。选择VGG-16作为基础网络的原因是其结构简单、训练稳定,并且在图像分类和特征提取任务中表现优异。
在这里插入图片描述

特征提取过程:输入图像首先经过VGG-16的卷积层进行特征提取,然后通过池化层对特征进行降维,最后得到一个高维的特征向量。为了提高特征的判别能力,在VGG-16的基础上进行了一定的改进,移除了最后一层全连接层和Softmax层,保留了更丰富的中间特征信息。
在这里插入图片描述

特征优化:为进一步提高特征的表达能力,对提取的特征进行了优化处理。采用批量归一化(Batch Normalization)技术加速网络收敛;使用ReLU激活函数引入非线性变换;通过Dropout层减少过拟合风险。这些优化措施共同提高了特征提取的质量和效率。

多任务表征学习模块

该模块实现了基于多任务表征学习的车辆重识别方法,通过联合学习多个相关任务,提高特征的判别性。

车辆身份特征识别子网络:该子网络将车辆重识别任务视为分类问题,每个车辆ID对应一个类别。通过Softmax损失函数,使网络学习到能够区分不同车辆的身份特征。在训练过程中,相同ID的车辆图像会被映射到相近的特征空间,不同ID的车辆图像则被映射到不同的特征空间。
在这里插入图片描述

车辆属性特征识别子网络:该子网络负责学习车辆的各种属性特征,如颜色、类型、品牌等。对于每个属性,构建一个独立的分类器,通过多标签分类的方式同时预测车辆的多个属性。这些属性特征为车辆重识别提供了额外的判别信息,有助于提高识别准确率。

车辆验证子网络:该子网络基于孪生网络架构,输入一对车辆图像,通过学习它们之间的相似度来判断是否属于同一辆车。使用对比损失函数,使相同车辆的特征距离尽可能小,不同车辆的特征距离尽可能大。车辆验证子网络直接学习车辆间的相似性关系,为整体网络提供了重要的监督信号。

多任务损失融合:将三个子网络的损失函数进行加权融合,形成最终的多任务损失函数。通过调整各任务损失的权重,使网络在训练过程中能够平衡各个任务的学习进度,从而提高整体性能。

改进度量学习模块

该模块实现了基于改进度量学习的车辆重识别方法,通过设计新的损失函数,提高模型对难样本的学习能力。

QuaHard Loss设计:针对高速公路场景下类间差异小、类内差异大的特点,设计了一种新的度量学习损失函数——QuaHard Loss。该损失函数在传统三元组损失的基础上进行了改进,通过引入难样本挖掘策略,使网络更加关注难以区分的样本对,从而提高特征的判别能力。
在这里插入图片描述

损失函数优化:将QuaHard Loss与Softmax损失函数结合使用,既利用Softmax损失的分类信息,又利用QuaHard Loss的度量信息,使网络能够同时学习车辆的类别特征和相似性关系。通过这种组合损失策略,网络能够学习到更加鲁棒的特征表示。
在这里插入图片描述

距离度量计算:在特征空间中,使用欧氏距离或余弦距离来度量车辆特征之间的相似性。根据不同的应用场景和数据集特点,选择合适的距离度量方法,以获得最佳的识别效果。

检索与匹配模块

该模块负责根据提取的特征进行车辆检索和匹配,是整个系统的应用层。

特征索引构建:对测试集中的所有车辆图像提取特征,并构建高效的特征索引。采用倒排索引技术,将特征向量量化并组织成索引结构,以提高检索效率。

相似度计算与排序:对于查询车辆,提取其特征向量,然后与特征库中的所有特征向量计算相似度。根据相似度分数进行降序排序,生成候选车辆列表。

结果优化:对初始检索结果进行后处理优化,包括重排序和过滤。利用车辆的时空信息、属性信息等进行重排序,提高检索结果的准确性;设置相似度阈值,过滤掉低置信度的匹配结果,减少误报率。

结果输出:将最终的检索结果以可视化的方式呈现,包括排名前K的候选车辆图像、相似度分数等信息。同时,提供准确率、召回率等评估指标,方便用户评估系统性能。

算法理论

车辆重识别基本原理

车辆重识别问题可以抽象为一个图像检索问题,其核心目标是在大规模图像数据库中找到与查询车辆属于同一身份的所有图像。从数学角度来看,车辆重识别可以定义为:给定一个特征提取函数F(x),将车辆图像x映射到特征空间,然后定义一个阈值α,当两张车辆图像xi和xj的特征差的绝对值小于α时,认为它们属于同一车辆;否则,认为它们属于不同车辆。
在这里插入图片描述

车辆重识别系统的基本流程包括:特征提取、度量学习和图像检索三个关键步骤。特征提取是学习能够应对不同条件下车辆变化的鲁棒特征;度量学习是将特征映射到新的空间,使相同车辆的距离更近,不同车辆的距离更远;图像检索则是根据特征距离进行排序,返回最相似的车辆图像。

深度学习基础理论

深度学习是解决车辆重识别问题的核心技术,其基础是卷积神经网络(CNN)。CNN由卷积层、激活层、池化层和全连接层组成,各层的功能如下:
在这里插入图片描述

卷积层:通过卷积核与输入特征图的局部连接,提取图像的局部特征。卷积操作具有局部感知机制和权值共享的特点,能够有效减少网络参数并保持平移不变性。

激活层:使用非线性激活函数(如ReLU、Sigmoid、Tanh等)对卷积层的输出进行非线性变换,增加网络的表达能力。ReLU激活函数因其良好的梯度特性和计算效率,在深度学习中得到广泛应用。
在这里插入图片描述

池化层:对特征图进行下采样操作,减少特征维度和计算量,同时保持特征的空间不变性。常用的池化方式包括最大池化和平均池化。

全连接层:将卷积层提取的局部特征整合为全局特征,并映射到样本的标记空间,实现分类或回归任务。

特征提取网络VGG-16

本研究采用VGG-16作为基础特征提取网络。VGG-16是由牛津大学Visual Geometry Group提出的一种经典CNN架构,其主要特点是通过堆叠多个3×3的卷积核来替代大尺寸的卷积核,从而在减少参数数量的同时增加网络深度。

VGG-16的网络结构包括:13个卷积层(分为5组)、5个最大池化层和3个全连接层。输入图像大小为224×224×3,经过卷积和池化操作后,得到7×7×512的特征图,最后通过全连接层输出1000维的类别概率。在本研究中,对VGG-16进行了一定的修改,移除了最后一层全连接层和Softmax层,保留了更丰富的中间特征信息。

多任务表征学习理论

多任务学习是一种联合学习多个相关任务的机器学习方法,其核心思想是通过任务间的知识迁移,提高各个任务的学习效果。在车辆重识别中,多任务学习可以同时学习车辆的身份特征、属性特征和相似性关系,从而获得更加鲁棒的特征表示。

多任务表征学习的理论基础包括:

任务相关性:不同任务之间存在一定的相关性,通过共享底层特征提取网络,可以使任务之间相互促进。在本研究中,车辆身份识别、属性识别和验证任务都依赖于车辆的外观特征,因此具有较高的相关性。

正则化效应:多任务学习可以看作是一种隐式的正则化方法,通过同时优化多个目标函数,可以减少过拟合的风险,提高模型的泛化能力。

特征分解:多任务学习能够自动发现任务之间的共享特征和特定特征,从而得到更加结构化的特征表示。在本研究中,共享特征提取网络学习车辆的通用外观特征,而各任务的特定层则学习任务相关的特征。

损失函数设计:多任务学习的关键是设计合理的损失函数。在本研究中,总损失函数由三部分组成:身份分类损失、属性分类损失和验证损失。通过调整各部分损失的权重,可以平衡各个任务的学习进度。

度量学习理论

度量学习是一种直接学习样本间相似性的机器学习方法,其目标是学习一个距离度量函数,使得相似样本之间的距离尽可能小,不相似样本之间的距离尽可能大。在车辆重识别中,度量学习可以有效提高模型对难样本的区分能力。

度量学习的主要方法包括:

对比损失:通过同时最小化正样本对的距离和最大化负样本对的距离,来学习判别性的特征表示。对比损失的缺点是只考虑了样本对之间的相对距离,没有考虑样本在特征空间中的绝对位置。

三元组损失:通过构造三元组(锚点样本、正样本、负样本),使锚点样本与正样本之间的距离小于锚点样本与负样本之间的距离,并引入间隔参数。三元组损失能够更加有效地学习样本之间的相对关系。

改进型度量损失:为了提高度量学习的效率和效果,研究者提出了多种改进的损失函数,如Hard Triplet Loss、Center Loss、Sphere Loss等。这些损失函数通过不同的策略来优化特征空间的结构,提高特征的判别能力。

QuaHard Loss设计:本研究提出的QuaHard Loss在传统三元组损失的基础上进行了改进。首先,在每个批次中挖掘最困难的正样本对和负样本对;然后,引入质量因子,根据样本对的难易程度动态调整损失权重;最后,结合分类信息,使特征空间同时满足分类和度量的要求。

模型训练与优化理论

深度学习模型的训练是一个复杂的优化过程,涉及到多种技术和策略:

优化器选择:本研究采用Adam优化器,它结合了动量优化和自适应学习率的优点,能够有效加速网络收敛并提高训练稳定性。Adam优化器的超参数设置为β1=0.9,β2=0.99,权重衰减系数为5e-04。

学习率策略:采用学习率衰减策略,初始学习率设置为0.0003,每20个epoch衰减一次,衰减因子为0.1。这种策略能够在训练初期快速收敛,在训练后期精细调整模型参数。

批次大小设置:批次大小(batch_size)设置为32。合适的批次大小能够平衡训练效率和梯度估计的准确性。

过拟合预防:采用多种方法预防过拟合,包括Dropout、权重衰减、数据增强等。这些方法能够有效减少模型的复杂度,提高模型的泛化能力。

早停策略:在验证集上监控模型性能,当性能不再提升时停止训练,避免过拟合。早停策略能够找到模型的最优参数,提高模型在测试集上的表现。

核心代码

数据加载与预处理

import torchvision.transforms as transforms
from torch.utils.data import Dataset, DataLoader
import os
from PIL import Image

class VehicleDataset(Dataset):
    def __init__(self, data_root, img_size=(256, 128), is_train=True):
        self.data_root = data_root
        self.img_size = img_size
        self.is_train = is_train
        self.img_paths, self.labels, self.attributes = self._load_data()
        self.transform = self._get_transforms()
    
    def _load_data(self):
        # 加载数据信息,包括图像路径、车辆ID标签和属性标签
        img_paths = []
        labels = []
        attributes = []
        # 遍历数据集目录,读取标注信息
        # 这里假设数据以特定格式存储,实际实现时需要根据具体情况调整
        # ...
        return img_paths, labels, attributes
    
    def _get_transforms(self):
        # 定义数据预处理和增强的转换操作
        if self.is_train:
            return transforms.Compose([
                transforms.Resize(self.img_size),
                transforms.RandomHorizontalFlip(),
                transforms.RandomCrop(self.img_size, padding=10),
                transforms.ColorJitter(brightness=0.1, contrast=0.1),
                transforms.ToTensor(),
                transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
            ])
        else:
            return transforms.Compose([
                transforms.Resize(self.img_size),
                transforms.ToTensor(),
                transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
            ])
    
    def __getitem__(self, index):
        # 获取单个样本
        img_path = self.img_paths[index]
        label = self.labels[index]
        attribute = self.attributes[index]
        
        # 加载图像
        img = Image.open(img_path).convert('RGB')
        # 应用预处理转换
        img = self.transform(img)
        
        return img, label, attribute
    
    def __len__(self):
        return len(self.img_paths)

# 创建数据加载器
def get_dataloader(data_root, batch_size=32, is_train=True):
    dataset = VehicleDataset(data_root, is_train=is_train)
    dataloader = DataLoader(
        dataset, 
        batch_size=batch_size, 
        shuffle=is_train, 
        num_workers=4, 
        pin_memory=True
    )
    return dataloader

这段代码实现了车辆数据集的加载和预处理功能。首先,定义了一个VehicleDataset类,继承自PyTorch的Dataset类,用于加载和管理车辆图像数据。该类的主要功能包括:

  1. 加载数据信息:通过_load_data方法读取数据集目录中的图像路径、车辆ID标签和属性标签。
  2. 数据预处理:通过_get_transforms方法定义数据预处理和增强的转换操作,包括尺寸调整、随机翻转、随机裁剪、颜色抖动等,以提高模型的泛化能力。
  3. 数据获取:通过__getitem__方法获取单个样本,包括图像、标签和属性信息。
  4. 数据加载:通过get_dataloader函数创建数据加载器,实现批量加载和并行处理功能。

该代码的设计考虑了训练集和测试集的不同需求,训练集使用了更多的数据增强操作,而测试集只进行基本的预处理。通过这种方式,可以有效提高模型的训练效果和泛化能力。

多任务表征学习网络

import torch
import torch.nn as nn
import torchvision.models as models

class MultiTaskVehicleReID(nn.Module):
    def __init__(self, num_classes, num_attributes):
        super(MultiTaskVehicleReID, self).__init__()
        # 加载预训练的VGG-16模型
        vgg = models.vgg16(pretrained=True)
        # 移除最后一层全连接层
        self.features = vgg.features
        self.avgpool = vgg.avgpool
        
        # 特征维度
        feature_dim = 512 * 7 * 7
        
        # 身份分类子网络
        self.id_classifier = nn.Sequential(
            nn.Linear(feature_dim, 1024),
            nn.ReLU(),
            nn.Dropout(0.5),
            nn.Linear(1024, num_classes)
        )
        
        # 属性分类子网络
        self.attr_classifiers = nn.ModuleList()
        for num_attr in num_attributes:
            self.attr_classifiers.append(
                nn.Sequential(
                    nn.Linear(feature_dim, 512),
                    nn.ReLU(),
                    nn.Dropout(0.5),
                    nn.Linear(512, num_attr)
                )
            )
        
        # 验证子网络
        self.verification_fc = nn.Sequential(
            nn.Linear(feature_dim * 2, 1024),
            nn.ReLU(),
            nn.Dropout(0.5),
            nn.Linear(1024, 1)
        )
    
    def forward(self, x, x_pair=None, mode='train'):
        # 提取特征
        features = self.features(x)
        features = self.avgpool(features)
        features = torch.flatten(features, 1)
        
        # 身份分类输出
        id_output = self.id_classifier(features)
        
        # 属性分类输出
        attr_outputs = [classifier(features) for classifier in self.attr_classifiers]
        
        # 验证输出(仅在训练模式和提供成对图像时计算)
        ver_output = None
        if mode == 'train' and x_pair is not None:
            # 提取配对图像的特征
            pair_features = self.features(x_pair)
            pair_features = self.avgpool(pair_features)
            pair_features = torch.flatten(pair_features, 1)
            
            # 拼接特征并计算验证输出
            combined_features = torch.cat([features, pair_features], dim=1)
            ver_output = self.verification_fc(combined_features)
        
        return id_output, attr_outputs, ver_output, features
    
    def extract_features(self, x):
        # 仅提取特征用于推理
        features = self.features(x)
        features = self.avgpool(features)
        features = torch.flatten(features, 1)
        return features

这段代码实现了基于多任务表征学习的车辆重识别网络。该网络的主要特点包括:

  1. 基础特征提取:使用预训练的VGG-16模型作为基础特征提取网络,移除了最后一层全连接层,保留了更丰富的中间特征信息。

  2. 多任务结构:包含三个子网络:

    • 身份分类子网络:用于学习车辆的身份特征,输出车辆ID的预测概率。
    • 属性分类子网络:用于学习车辆的各种属性特征(如颜色、类型等),通过多个分类器同时预测车辆的多个属性。
    • 验证子网络:基于孪生网络架构,通过拼接两个车辆的特征来判断它们是否属于同一辆车。
  3. 前向传播:根据不同的输入模式执行不同的计算路径。在训练模式下,可以同时计算三个子网络的输出;在推理模式下,主要用于特征提取。

  4. 特征提取函数:提供了一个单独的extract_features方法,用于在推理阶段快速提取车辆特征,便于进行相似度计算和图像检索。

该网络的设计充分考虑了多任务学习的特点,通过共享底层特征提取网络,使各个任务之间能够相互促进,提高整体性能。同时,通过模块化的设计,使网络结构更加清晰,便于扩展和调整。

QuaHard Loss实现

import torch
import torch.nn as nn
import torch.nn.functional as F

class QuaHardLoss(nn.Module):
    def __init__(self, margin=0.3, num_instances=4):
        super(QuaHardLoss, self).__init__()
        self.margin = margin
        self.num_instances = num_instances
    
    def forward(self, features, labels):
        # 计算特征之间的欧氏距离矩阵
        n = features.size(0)
        dist_mat = torch.pow(features, 2).sum(dim=1, keepdim=True).expand(n, n)
        dist_mat = dist_mat + dist_mat.t()
        dist_mat.addmm_(1, -2, features, features.t())
        dist_mat = dist_mat.clamp(min=1e-12).sqrt()  # 确保距离非负
        
        # 构建正样本掩码和负样本掩码
        mask_pos = labels.expand(n, n).eq(labels.expand(n, n).t())
        mask_neg = labels.expand(n, n).ne(labels.expand(n, n).t())
        
        # 为每个锚点样本选择最困难的正样本和负样本
        loss = 0.0
        num_valid_triplets = 0
        
        for i in range(n):
            # 获取当前样本的正样本距离和负样本距离
            dist_pos = dist_mat[i][mask_pos[i]]
            dist_neg = dist_mat[i][mask_neg[i]]
            
            if len(dist_pos) > 0 and len(dist_neg) > 0:
                # 选择最困难的正样本(距离最大的正样本)
                hard_pos_dist = torch.max(dist_pos)
                
                # 选择最困难的负样本(距离最小的负样本)
                hard_neg_dist = torch.min(dist_neg)
                
                # 计算质量因子
                quality_factor = (hard_pos_dist / (hard_neg_dist + 1e-12))
                
                # 计算三元组损失
                triplet_loss = F.relu(hard_pos_dist - hard_neg_dist + self.margin)
                
                # 应用质量因子加权
                weighted_loss = quality_factor * triplet_loss
                
                loss += weighted_loss
                num_valid_triplets += 1
        
        if num_valid_triplets > 0:
            loss = loss / num_valid_triplets
        else:
            loss = torch.zeros(1, device=features.device)
        
        return loss

# 组合损失函数
class CombinedLoss(nn.Module):
    def __init__(self, num_classes, num_attributes, margin=0.3):
        super(CombinedLoss, self).__init__()
        self.id_loss = nn.CrossEntropyLoss()
        self.attr_losses = nn.ModuleList([nn.CrossEntropyLoss() for _ in num_attributes])
        self.ver_loss = nn.BCEWithLogitsLoss()
        self.quahard_loss = QuaHardLoss(margin=margin)
    
    def forward(self, id_output, attr_outputs, ver_output, features, labels, attr_labels, ver_labels):
        # 计算身份分类损失
        loss_id = self.id_loss(id_output, labels)
        
        # 计算属性分类损失
        loss_attr = 0.0
        for i, attr_output in enumerate(attr_outputs):
            loss_attr += self.attr_losses[i](attr_output, attr_labels[:, i])
        loss_attr = loss_attr / len(attr_outputs)
        
        # 计算验证损失
        loss_ver = 0.0
        if ver_output is not None:
            loss_ver = self.ver_loss(ver_output.squeeze(), ver_labels.float())
        
        # 计算QuaHard损失
        loss_quahard = self.quahard_loss(features, labels)
        
        # 组合损失
        total_loss = loss_id + loss_attr + loss_ver + loss_quahard
        
        return total_loss, loss_id, loss_attr, loss_ver, loss_quahard

这段代码实现了QuaHard Loss及其组合损失函数。该损失函数是本研究的重要创新点,主要特点包括:

  1. QuaHard Loss设计:

    • 距离矩阵计算:首先计算所有特征向量之间的欧氏距离矩阵,为后续的难样本挖掘提供基础。
    • 正负样本掩码:根据标签信息构建正样本掩码(相同ID的样本对)和负样本掩码(不同ID的样本对)。
    • 难样本挖掘:为每个锚点样本选择最困难的正样本(距离最大的正样本)和最困难的负样本(距离最小的负样本),使网络更加关注难以区分的样本对。
    • 质量因子加权:引入质量因子,根据正负样本对的难易程度动态调整损失权重,使网络能够自适应地关注不同难度的样本。
    • 三元组损失计算:基于挖掘到的难样本对,计算带间隔的三元组损失,确保正样本对的距离小于负样本对的距离。
  2. 组合损失函数:

    • 身份分类损失:使用交叉熵损失函数,用于学习车辆的身份特征。
    • 属性分类损失:使用多个交叉熵损失函数,用于学习车辆的各种属性特征。
    • 验证损失:使用二分类交叉熵损失函数,用于学习车辆对之间的相似性关系。
    • QuaHard损失:使用自定义的QuaHard Loss,用于优化特征空间的结构。
    • 损失组合:将上述四种损失进行加权组合,形成最终的总损失函数。

该损失函数的设计充分考虑了高速公路场景下车辆重识别的特点,通过难样本挖掘和质量因子加权,有效提高了模型对类间差异小、类内差异大样本的区分能力,从而提升了整体识别性能。

重难点和创新点

难点

高速公路场景特殊性:高速公路场景与城市道路场景存在显著差异,主要表现在:1)门架摄像机视角固定,只能获取车辆的正面和背面图像,可提取的特征有限;2)高速公路上同类车型的车辆大量存在,导致类间差异小;3)同一车辆在不同光照条件、不同天气环境下的图像差异较大,造成类内差异大。这些特点使得传统的车辆重识别方法在高速公路场景下难以取得理想效果。

数据集构建困难:针对高速公路场景的专用数据集非常缺乏,构建一个高质量的数据集面临诸多挑战:1)需要获取真实的高速公路监控数据,涉及数据采集权限和隐私保护等问题;2)数据标注工作量巨大,需要对大量车辆图像进行准确的身份和属性标注;3)需要确保数据集中包含足够多的类间差异小和类内差异大的样本,以有效训练模型。

特征提取与表达:高速公路场景下,由于视角限制和特征有限,如何提取具有强判别性的车辆特征是一个关键难点。需要设计有效的特征提取网络,能够充分利用车辆的外观信息,如形状、颜色、纹理等,同时能够适应不同光照、不同天气条件下的变化。

损失函数设计:传统的损失函数如Softmax损失和三元组损失在处理高速公路场景下的车辆重识别问题时存在不足。如何设计一个能够有效处理类间差异小、类内差异大问题的损失函数,是提高识别性能的关键。

模型训练与优化:深度学习模型的训练是一个复杂的优化过程,涉及到多种超参数的调整和优化策略的选择。如何设计合理的训练策略,避免过拟合,提高模型的泛化能力,是一个需要深入研究的问题。

创新点

高速公路车辆数据集构建:创新性地构建了一个专门针对高速公路场景的车辆数据集(E-Vehicle)。该数据集来源于真实的高速公路ETC门架摄像机,包含618辆车的14,315张图像,涵盖了不同车型、不同品牌、不同颜色的车辆,以及不同光照条件下的图像。数据集中特别包含了大量类间差异小和类内差异大的样本,为后续研究提供了重要的数据基础。

多任务表征学习方法:提出了一种基于多任务表征学习的车辆重识别方法。该方法通过联合学习车辆身份识别、属性识别和验证三个相关任务,充分利用了任务间的互补信息,提高了特征的判别能力。实验结果表明,该方法在VeRi-776、VehicleID和E-Vehicle三个数据集上均取得了优异的性能,mAP值和Rank-K命中率均高于传统的单任务学习方法。

QuaHard Loss设计:针对高速公路场景下类间差异小、类内差异大的特点,创新性地设计了一种新的度量学习损失函数——QuaHard Loss。该损失函数在传统三元组损失的基础上进行了改进,通过引入难样本挖掘策略和质量因子加权机制,使网络更加关注难以区分的样本对,从而提高了特征的判别能力。实验结果表明,QuaHard Loss能够有效提升车辆重识别的性能,特别是在E-Vehicle数据集上,较其他度量学习方法的mAP值提升了1.56%9.61%,Rank-1命中率提升了1.41%14.42%。

改进度量学习方法:提出了一种基于改进度量学习的车辆重识别方法。该方法将QuaHard Loss与Softmax损失函数结合使用,既利用了Softmax损失的分类信息,又利用了QuaHard Loss的度量信息,使网络能够同时学习车辆的类别特征和相似性关系。实验结果表明,该方法在VeRi-776和VehicleID两个数据集上与其他先进方法相比,各项评测指标均处于领先水平。

多模块协同优化:设计了一个包含图像预处理、特征提取、多任务学习、改进度量学习和检索匹配等多个模块的完整车辆重识别系统。各模块之间协同工作,共同完成车辆重识别任务。通过对各模块的精心设计和优化,系统在高速公路场景下能够稳定、准确地进行车辆重识别。

总结

本研究针对高速公路场景下车辆重识别的关键技术难题,进行了深入研究和探索,主要工作总结如下:

研究背景与意义:随着高速公路网络的不断扩展和智能交通系统的发展,车辆重识别技术在高速公路收费稽核、交通监控等领域的重要性日益凸显。然而,高速公路场景下的车辆重识别面临着视角限制、类间差异小、类内差异大等独特挑战,传统方法难以取得理想效果。因此,研究适用于高速公路场景的车辆重识别方法具有重要的理论价值和实际应用意义。

数据集建设:构建了一个专门针对高速公路场景的车辆数据集(E-Vehicle),包含618辆车的14,315张图像。该数据集来源于真实的高速公路ETC门架摄像机,涵盖了不同车型、不同品牌、不同颜色的车辆,以及不同光照条件下的图像。数据集中特别包含了大量类间差异小和类内差异大的样本,为后续研究提供了重要的数据基础。

多任务表征学习方法:提出了一种基于多任务表征学习的车辆重识别方法。该方法通过联合学习车辆身份识别、属性识别和验证三个相关任务,充分利用了任务间的互补信息,提高了特征的判别能力。实验结果表明,该方法在三个数据集上均取得了优异的性能,验证了其有效性和优越性。

QuaHard Loss与改进度量学习方法:设计了一种新的度量学习损失函数——QuaHard Loss,通过引入难样本挖掘策略和质量因子加权机制,使网络更加关注难以区分的样本对。基于此,提出了一种基于改进度量学习的车辆重识别方法,将QuaHard Loss与Softmax损失函数结合使用。实验结果表明,该方法在多个数据集上与其他先进方法相比,各项评测指标均处于领先水平。

系统实现与验证:设计并实现了一个完整的车辆重识别系统,包含图像预处理、特征提取、多任务学习、改进度量学习和检索匹配等多个模块。通过在三个数据集上进行大量实验,验证了系统的有效性和稳定性。特别是在E-Vehicle数据集上,系统表现出色,有效解决了高速公路场景下类间差异小、类内差异大的问题。

研究成果与应用前景:本研究的成果为高速公路场景下的车辆重识别提供了新的思路和方法,具有广阔的应用前景。该技术可以应用于高速公路收费稽核系统,有效解决漏费、逃费问题;可以应用于交通监控系统,提高交通管理的智能化水平;还可以应用于车辆追踪、流量分析等多个领域,为智能交通系统的发展提供技术支持。

未来的研究方向可以包括:1)进一步优化损失函数,提高模型对极端条件下车辆图像的识别能力;2)探索轻量级网络架构,提高系统的实时性和部署效率;3)研究多模态融合方法,结合车辆的外观特征、行为特征等多维度信息,进一步提高识别准确率;4)扩展数据集规模,涵盖更多类型的车辆和更复杂的场景,提高模型的泛化能力。

参考文献

[1] WANG X, LIU X, MEI T, et al. A Deep Learning-Based Approach to Progressive Vehicle Re-identification for Urban Surveillance[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(8): 1971-1984.

[2] ZHANG Y, LI W, LIU H, et al. Vehicle Re-identification with Multi-scale Representation and Metric Learning[J]. IEEE Transactions on Intelligent Transportation Systems, 2021, 22(5): 3045-3057.

[3] TANG Z, SHEN C, YANG Y, et al. Viewpoint-Aware Attentive Multi-view Inference for Vehicle Re-identification[J]. IEEE Transactions on Image Processing, 2022, 31: 2427-2441.

[4] LIU H, CHEN W, WANG J, et al. Deep Relative Distance Learning for Vehicle Re-identification[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2020: 2167-2176.

[5] SU C, WANG X, ZHANG S, et al. Vehicle Re-identification via Multi-task Metric Learning[J]. Neurocomputing, 2023, 520: 38-48.

[6] YI Z, WU Y, WANG L, et al. Deep Learning for Person Re-identification: A Survey and Outlook[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021, 43(6): 1872-1893.

[7] WU A, ZHANG X, YANG Y, et al. Learning Discriminative Features with Multiple Granularities for Vehicle Re-identification[J]. IEEE Transactions on Intelligent Transportation Systems, 2022, 23(9): 15801-15814.

[8] CHEN Y, LIU X, TANG Y, et al. Query-guided Feature Enhancement for Vehicle Re-identification[J]. IEEE Transactions on Intelligent Transportation Systems, 2023, 24(5): 5377-5388.

最后

车辆行人检测与跟踪实战:从数据集到代码库的一站式资源整合指南 目标检测是计算机视觉的基础任务,其核心原理是通过模型在图像中定位并识别出特定类别的物体。这项技术的价值在于为自动驾驶、智能监控等应用提供感知能力。在工程实践中,选择合适的**数据集**和**代码框架**是项目成功的关键。例如,COCO和KITTI等通用与专用数据集为模型提供了丰富的训练样本,而MMDetection、YOLO等一体化框架则大大降低了算法开发门槛。面对实际场景中的类别不平衡、领域差异等挑战,需要结合数据增强、模型微调等技术进行优化。本文聚焦于车辆与行人这一典型场景,系统梳理了从数据准备、模型训 阅读详情

相关推荐

通过引入先进模块化设计提升车辆重识别算法准确率:一项全面的技术探究

本文探讨了通过模块化设计提升车辆重识别算法准确率的技术方案。车辆重识别面临细粒度识别、视角光照变化等挑战,传统方法依赖全局特征识别能力有限。研究提出在CNN主干网络上策略性融合多种先进模块:采用水平切块分区提取局部特征,利用注意力机制聚焦关键区域,并通过空间注意力模块优化特征表达。文章详细分析了各模块的设计原理和实现方法,提供了基于PyTorch的代码示例。这些模块化改进从多维度增强了模型对车辆细微特征的判别能力,为智能交通系统中的车辆追踪等应用提供了更可靠的技术支持。

max500600的博客 1057

智慧交通之高速公路识别数据集 公路小目标检测检测数据集 交通规划目标检测数据集 yolo图像识别数据集 小目标检测识别数据集 数据集第10189期

智慧交通之高速公路识别数据集 公路小目标检测检测数据集 交通规划目标检测数据集 yolo图像识别数据集 小目标检测识别数据集 数据集第10189期

QQ_1309399183的博客 646

26、重型车辆分类与方向跟踪的深度学习方法

本文探讨了基于深度学习的重型车辆分类和方向跟踪方法。重点分析了YOLOv3和SSD两种检测算法的性能,比较了其在不同场景下的分类准确性和内存需求。同时,结合SORT和Deep SORT多目标跟踪算法,实现了车辆方向的高效跟踪,并讨论了实际应用中的挑战和未来改进方向。研究结果表明,YOLOv3在分类性能和稳定性上优于SSD,而Deep SORT在跟踪中能有效减少ID切换并应对遮挡问题,为交通管理和物流运输提供了技术支持。

websocket5live的博客 76

高速公路门架系统的三种数据(交易流水、牌识流水、雷达轨迹)是怎么生成的

我用最通俗的方式解释清楚高速公路门架系统的三种数据(交易流水、牌识流水、雷达轨迹)是怎么生成的,以及它们如何识别车牌和车型。

qq_15821487的博客 1964

40、深度学习助力稳健车辆识别与康复环境中协作机器人轨迹规划

本文探讨了深度学习在车辆识别与康复环境中协作机器人轨迹规划中的应用。在车辆识别方面,通过对比EfficientNet与FastReid模型,验证了FastReid在准确率、rank@n指标和推理速度上的优势,尤其在自定义道路与十字路口数据集上表现突出;系统采用视觉与OCR双模块设计,具备高灵活性与实时性。在康复机器人领域,基于Azure Kinect的3D感知与UR3机器人平台,结合ROS与MoveIt框架,利用多种OMPL规划算法实现安全轨迹规划,并通过总性能指数(TPIx)评估不同算法在患者多姿态下的表

qsc90123456的博客 59

39、自动驾驶与车辆识别技术的前沿探索

本文探讨了自动驾驶与车辆识别技术的前沿发展,重点分析了实时系统中ROS 2与V2X协议的集成优化需求,并介绍了一种结合自动车牌识别(ALPR)与视觉特征重新识别的双峰车辆识别系统。系统采用YOLOv4、WPOD-Net、OCR-Net和FastReid等模型,实现车辆检测、车牌识别与跨摄像头车辆追踪。文章还介绍了EfficientNet在视觉重识别中的训练策略,并展望了该技术在智能城市、工业机器人和铁路系统中的广泛应用前景。

qsc90123456的博客 61

揭晓高速公路场景下计算机视觉与交通的秘密

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达高速公路场景基于计算机视觉的车辆检测和流量统计1、文章信息《Vision-based vehicle detection and c...

3D视觉工坊 2929

40、车辆计数与道路状况分析系统及 3R 机械臂自适应控制

本文介绍了车辆计数与道路状况分析系统及3R机械臂自适应控制方法。前者通过改进DeepSORT算法、结合YOLOv5s检测与SVM方向识别,提升了车辆跟踪与计数精度,并基于加权平均车辆数判断道路拥堵;后者采用拉格朗日-欧拉方法建模,利用RBF神经网络拟合非线性动力学模型,实现机械臂在工作空间的自适应力控制。两个系统分别在智能交通与工业自动化领域展现了高效性与应用前景,具备进一步拓展潜力。

rl6adventurer的博客 56

机器学习_深度学习毕设题目汇总——车辆车牌

下面是该类的一些题目: 题目 从虚拟到现实的智能车辆深度强化学习控制研究 城市环境下车辆智能融合定位技术研究 基于图像逆投影3D重建的车辆检测关键技术研究 基于智能车辆视觉导航的环境感知技术研究 基于深层卷积神经网络的车辆检测及属性分析方法研究 基于深度学习与虚拟数据的车辆识别与状态估计研究 基于深度学习的快速车辆再识别研究 基于深度神经网络的智能车辆目标识别与学习控制方法研究 基于监控的大型城市车辆目标识别与分类的若干关键技术研究 基于细微差异识别与深度

MetaGrad的博客 4174

基于Parser解析的车辆重识别:从原理到工程实践

车辆重识别是计算机视觉领域的一项关键技术,旨在不依赖车牌信息,仅通过车辆外观特征(如颜色、车型、局部细节)实现跨摄像头、跨场景的精准检索。其核心原理在于学习一个鲁棒的特征表示空间,使同一车辆的不同图像特征距离相近,不同车辆的特征距离较远。这项技术的价值在于突破了传统车牌识别的局限,在车牌遮挡、污损或伪造等复杂场景下仍能稳定工作,极大地提升了智能交通、安防监控和智慧城市管理系统的智能化水平。本文聚焦于一种先进的车辆重识别技术——基于Parser解析的机制,该机制通过引入并行的解析分支,引导网络学习对车辆图像进

weixin_34128839的博客 490

无人机高速公路违章检测:YOLOv8+DeepSORT算法实战与端边云部署

计算机视觉作为人工智能的核心分支,通过模拟人类视觉系统,赋予机器感知和理解图像与视频的能力。其核心原理在于利用深度神经网络,尤其是卷积神经网络(CNN),从海量数据中自动学习并提取特征。这项技术的巨大价值在于,它能将非结构化的视觉信息转化为可分析的结构化数据,从而在安防、医疗、自动驾驶和工业质检等领域实现自动化与智能化。在智慧交通这一关键应用场景中,计算机视觉技术正被用于解决传统交通管理效率低下的痛点。例如,通过目标检测与多目标跟踪算法,系统可以自动识别并分析道路上的车辆行为。本文聚焦于一个典型实践:基于无

weixin_34130389的博客 293

目标检测排行榜_3D领域重大突破!大华股份人工智能取得KITTI Object 3D车辆检测排行榜第一名...

[导读]近日,大华股份基于深度学习技术研发的3D目标检测技术,刷新了The KITTI Vision Benchmark Suite中3D车辆类目检测任务(3D Object Detection Evaluation)排行榜,取得了3D车辆类目检测第一名,这标志着大华股份的人工智能技术在3D目标检测领域处于国际领先水平。大华股份在人工智能的核心技术领域持续耕耘,不断提升智能算法、算力的核心竞争力。...

weixin_42561249的博客 645

Python-车辆重新识别的数据集和论文及代码的集合

车辆重新识别的数据集和论文及代码的集合

2023年最新机器学习/深度学习毕业设计选题 - 毕设开题指导

机器学习/深度学习毕业设计选题涵盖了管理系统、小程序、深度学习、机器学习、算法、人工智能、大数据、网络安全、嵌入式、推荐系统、目标检测等多个热门领域。对于计算机专业、软件工程专业、人工智能专业、通信工程专业的毕业生而言,选择一个合适的毕业设计选题至关重要。在这个毕业设计选题合集中,我们精心收集了各种有趣且具有挑战性的选题,旨在帮助学生们在毕业设计中展现他们的技术实力和创新能力。不论是对于对深度学习技术感兴趣的同学,还是希望探索机器学习、算法或人工智能的领域的同学,都能提供丰富的选题。

2301_79555157的博客 456

车辆重识别数据集集锦[项目源码]

本文详细介绍了多个用于车辆重识别(Vehicle Re-ID)研究的数据集,包括VeRi776、VehicleID、VERI-Wild、VRAI、N-CARS、PKU-VD、百度阿波罗3D汽车数据集、Cars Dataset、CompCars、BIT-Vehicle、VehicleGrouping和BoxCars116k等。这些数据集涵盖了不同场景下的车辆图像,如城市监控、无人机拍摄、高速公路环境等,并提供了丰富的标注信息,如车辆类型、颜色、品牌、车牌、时间戳等。这些数据集为车辆重识别、细粒度分类和验证等研究提供了重要的数据支持。

4G+GNSS定位模块DX-CT511N-B:AT指令实战与多协议通信指南

本文详细介绍了4G+GNSS定位模块DX-CT511N-B的AT指令实战应用与多协议通信配置。内容涵盖TCP/UDP通信、MQTT协议集成、HTTP服务交互以及GNSS定位功能的深度解析,为开发者提供从基础指令到高级调试的完整指南,助力物联网设备开发。

hope8的博客 289

深度学习在车道线检测中的应用与实践

车道线检测是计算机视觉领域的基础技术,广泛应用于智能驾驶辅助系统(ADAS)和自动驾驶车辆的环境感知。其核心原理是通过图像处理和深度学习算法识别道路标记线,为车辆提供车道保持和偏离预警等功能。传统方法依赖边缘检测和霍夫变换,但在复杂场景下鲁棒性较差。现代解决方案采用深度学习模型,如编码器-解码器结构和关键点检测方法,显著提升了检测精度和鲁棒性。这些技术在智能驾驶、交通监控等领域具有重要应用价值。本文结合工程实践,探讨了车道线检测的数据准备、模型训练和部署优化等关键环节,并分享了复杂场景下的解决方案。

weixin_34059951的博客 449

分享一下使用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程

分享一下调试用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程,看到的朋友们,可以避免继续踩坑。

haoxingheng的专栏 5014

【毕业设计选题】人工智能专业毕业设计选题指导手册 2025

人工智能专业毕业设计选题可以涵盖多个研究方向,例如人工智能、机器学习、自然语言处理、计算机视觉、数据挖掘和网络安全等。对于计算机专业、软件工程专业、人工智能专业、大数据专业的毕业生而言,选择一个合适的毕业设计选题至关重要。在这个毕业设计选题合集中,我们精心收集了各种有趣且具有挑战性的选题,旨在帮助学生们在毕业设计中展现他们的技术实力和创新能力。不论是对于对深度学习技术感兴趣的同学,还是希望探索机器学习、算法或人工智能的领域的同学,本合集都能为您提供丰富的选题资源和灵感。

Hai_Lang_IT的博客 946

LVGL misc timer 定时器(lv_timer.c)

定时器机制是LVGL中非常重要的一项功能,它承载了LVGL的延时任务执行,周期任务执行,时序任务执行等,可以说理解定时器的设计就一定程度上理解发LVGL的任务调度机制。

Bigan(安)的博客 4730

Vue - 超强实现网页禁止浏览器缩放功能,浏览器缩放时保持网页不变形、元素不会被挤压等,屏蔽浏览器鼠标滚轮缩放页面(提供详细示例代码,一次引入整个网站无人可以搞乱你的页面布局及样式)

vue,nuxt,禁止浏览器缩放,如何用户缩放浏览器导致页面变形,网页缩放后页面变形了怎么办,怎么解决网站被缩放后元素乱套错乱,vue怎么禁止网页不被缩放,vue如何禁止浏览器缩放,vue缩放网页变形影响布局怎么办,vue电脑分辨率及缩放导致页面变形的问题,前端页面解决浏览器或者系统被放大和缩小导致的显示问题,Vue中页面自适应缩放,如何防止Vue页面缩放时变形/调整大小,Vue项目中,防止页面被缩放和放大,vue等比例缩放网页,网页缩放后界面变形咋办,禁止页面缩放,vue禁止浏览器改变窗口大小,Vue项目

🏆 前端领域优质创作者 1万+

YOLOv8 DeepSORT实现智能交通监控-改进yolo单目测距及速度测量-流量计数 深度学习目标检测

它基于YOLOv8,通过加入DeepSORT算法实现目标跟踪,同时还改进了YOLOv8的单目测距及速度测量技术和流量计数功能。该系统可以通过摄像头或视频源实时捕获图像,并自动检测和跟踪交通中的车辆、行人等目标。在检测到目标后,系统会根据目标在图像上的大小进行单目测距,推算出目标与摄像头之间的距离。同时,系统还可以根据目标的运动轨迹和时间间隔计算出目标的速度。这些测量数据可以为交通管理提供有用的参考信息。

QQ67658008的博客 951

后台管理系统-7-vue3之引入配置文件baseURL

mock=false,本地模拟。mock=true,线上模拟。baseURL+url=实际请求的URL。get请求param参数,post请求data参数。

qq_20466211的博客 208
上一篇: 智能科学与技术毕业设计选题指南【附选题大全】
下一篇: 【2026 届信息安全毕设选题避坑指南】50 个易实现选题推荐,还没选题的同学必看!
Mini_hailang_IT
博客等级 码龄9年 5936粉丝 640原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值