开通微网站龙岩微信小程序定制

web/2025/10/5 21:21:56/文章来源:
开通微网站,龙岩微信小程序定制,如果网站没有做icp备案会被处罚,应聘ui设计师自我介绍目录 一、前言1、项目介绍2、图片测试效果展示 二、项目环境配置1、pytorch安装#xff08;gpu版本和cpu版本的安装)2、pycocotools的安装3、其他包的安装 三、yolov8/yolov7/yolov5CRNN-中文车牌识别、车牌关键点定位、车牌检测算法1、yolov8算法介绍2、CRNN算法介绍3、算法流… 目录 一、前言1、项目介绍2、图片测试效果展示 二、项目环境配置1、pytorch安装gpu版本和cpu版本的安装)2、pycocotools的安装3、其他包的安装 三、yolov8/yolov7/yolov5CRNN-中文车牌识别、车牌关键点定位、车牌检测算法1、yolov8算法介绍2、CRNN算法介绍3、算法流程设计4、代码使用 四、自己训练的步骤1、下载数据集2、修改路径3、开始训练 五、车牌识别、检测自建数据集六、训练曲线等介绍七、资源获取(yolov8/yolov7/yolov5版本均可提供) 一、前言 本项目通过yolov8/yolov7/yolov5CRNN训练自己的数据集实现了一个车牌识别、车牌关键点定位、车牌检测算法可实现12种单双层车牌的字符识别单行蓝牌、单行黄牌、新能源车牌、白色警用车牌、教练车牌、武警车牌、双层黄牌、双层白牌、使馆车牌、港澳粤Z牌、双层绿牌、民航车牌。 视频实时测试效果展示如下 【准确度顶满车牌识别、关键点定位-YOLOv8CRNN(原创毕设)】 https://www.bilibili.com/video/BV1hc41117Ms/?spm_id_from333.999.0.0vd_source8c532ded7c7c9041f04e35940d11fdae 【准确度顶满车牌识别-YOLOv8CRNN(原创毕设)】 https://www.bilibili.com/video/BV12c411U76h/?spm_id_from333.999.0.0vd_source8c532ded7c7c9041f04e35940d11fdae 1、项目介绍 车牌识别技术通过图像处理和模式识别能够自动识别车辆的车牌信息。其意义在于提高交通管理效率、强化治安监控、优化停车管理和促进智慧城市建设。车牌识别可以实现快速准确的车辆识别帮助监测交通违法行为、追踪犯罪嫌疑车辆提升交通流畅度和安全性。在停车场管理中车牌识别技术可实现自动识别进出车辆提高停车效率。综合运用于城市管理系统车牌识别有助于建设更智能、安全、便捷的城市生活。本设计旨在开发一个能够及时、准确地识别车牌的算法其主要目标包括实时检测现实道路上的车辆并定位车牌四个角点位置提供可靠的车牌字符识别结果。 我们的项目可为兄弟们的毕设、课设、大作业等提供参考可训练自己的数据集可以换成yolov8/yolov7/yolov5各种版本的权重。包含特别详细的read.md文件和常见问题解答关于本项目的任何问题都能在其中找到答案对刚接触深度学习、目标检测的小白非常友好兄弟们放心哈。 2、图片测试效果展示 可以看到我们实验室的项目能对图片、视频中出现的各类车牌字符进行有效识别且准确率较高。 二、项目环境配置 不熟悉pycharm的anaconda的大兄弟请先看这篇csdn博客了解pycharm和anaconda的基本操作。 https://blog.csdn.net/ECHOSON/article/details/117220445 anaconda安装完成之后请切换到国内的源来提高下载速度 命令如下 conda config --remove-key channels conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/ conda config --set show_channel_urls yes pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple首先创建python3.8的虚拟环境请在命令行中执行下列操作 conda create -n yolov8 python3.8.5 conda activate yolov81、pytorch安装gpu版本和cpu版本的安装) 实际测试情况是yolov8/yolov7/yolov5在CPU和GPU的情况下均可使用不过在CPU的条件下训练那个速度会令人发指所以有条件的小伙伴一定要安装GPU版本的Pytorch没有条件的小伙伴最好是租服务器来使用。GPU版本安装的具体步骤可以参考这篇文章https://blog.csdn.net/ECHOSON/article/details/118420968。 需要注意以下几点 1、安装之前一定要先更新你的显卡驱动去官网下载对应型号的驱动安装 2、30系显卡只能使用cuda11的版本 3、一定要创建虚拟环境这样的话各个深度学习框架之间不发生冲突 我这里创建的是python3.8的环境安装的Pytorch的版本是1.8.0命令如下 conda install pytorch1.8.0 torchvision torchaudio cudatoolkit10.2 # 注意这条命令指定Pytorch的版本和cuda的版本 conda install pytorch1.8.0 torchvision0.9.0 torchaudio0.8.0 cpuonly # CPU的小伙伴直接执行这条命令即可安装完毕之后我们来测试一下GPU是否可以有效调用 2、pycocotools的安装 pip install pycocotools-windows3、其他包的安装 另外的话大家还需要安装程序其他所需的包包括opencvmatplotlib这些包不过这些包的安装比较简单直接通过pip指令执行即可我们cd到yolov8/yolov7/yolov5代码的目录下直接执行下列指令即可完成包的安装。 pip install -r requirements.txt三、yolov8/yolov7/yolov5CRNN-中文车牌识别、车牌关键点定位、车牌检测算法 1、yolov8算法介绍 yolov8是yolo系列的最新算法检测效果优于之前的所有的yolo算法。这里我们采用了ultralytics官方版本的yolov8来检测车牌。 在学习Yolov8之前我们需要对Yolov8所做的工作有一定的了解这有助于我们后面去了解网络的细节Yolov8在预测方式上与之前的Yolo并没有多大的差别依然分为三个部分分别是BackboneFPN以及Yolo Head。 Backbone是Yolov8的主干特征提取网络输入的图片首先会在主干网络里面进行特征提取提取到的特征可以被称作特征层是输入图片的特征集合。在主干部分我们获取了三个特征层进行下一步网络的构建这三个特征层我称它为有效特征层。 FPN是Yolov8的加强特征提取网络在主干部分获得的三个有效特征层会在这一部分进行特征融合特征融合的目的是结合不同尺度的特征信息。在FPN部分已经获得的有效特征层被用于继续提取特征。在YoloV8里依然使用到了Panet的结构我们不仅会对特征进行上采样实现特征融合还会对特征再次进行下采样实现特征融合。 Yolo Head是Yolov8的分类器与回归器通过Backbone和FPN我们已经可以获得三个加强过的有效特征层。每一个特征层都有宽、高和通道数此时我们可以将特征图看作一个又一个特征点的集合每个特征点作为先验点而不再存在先验框每一个先验点都有通道数个特征。Yolo Head实际上所做的工作就是对特征点进行判断判断特征点上的先验框是否有物体与其对应。Yolov8所用的解耦头是分开的也就是分类和回归不在一个1X1卷积里实现。 因此整个Yolov8网络所作的工作依然就是 特征提取-特征加强-预测先验框对应的物体情况。 2、CRNN算法介绍 CRNN是“卷积递归神经网络”Convolutional Recurrent Neural Network的缩写。它是一种深度学习架构结合了卷积神经网络CNN和循环神经网络RNN的优势主要用于处理具有序列性和空间信息的数据比如图像中的文字识别。 CRNN的结构包含了卷积层、循环层和连接层。首先卷积层用于提取图像特征将输入图像转换为高层次的抽象特征表示。这些特征捕获了文字在不同尺度和方向上的信息使得模型对文字的变化和形态有较强的理解能力。 接着循环层通常采用长短时记忆网络LSTM或者门控循环单元GRU用于处理序列数据它能够保留文字之间的上下文信息。这使得CRNN能够更好地理解文字之间的关系并且有助于纠正识别错误。 最后连接层用于将卷积层和循环层的输出结合起来并通过全连接层进行最终的分类或识别。这个结构允许模型同时利用局部特征和全局上下文信息提高了对文字的准确识别能力。 CRNN在文字识别领域取得了很大成功特别是在场景文本识别如自然场景中的文字识别方面。它能够处理不同字体、大小、角度和背景的文字并且对于不同语言的文字具有一定的通用性。 总的来说CRNN作为结合了CNN和RNN的深度学习架构具有处理序列数据和空间信息的能力特别适用于文字识别等领域为处理具有结构性数据的任务提供了一种有效的解决方案。 3、算法流程设计 首先通过卷积神经网络CNN提取输入图像的特征。然后使用Anchor Boxes来生成候选区域这些区域包含可能的目标边界框。通过对这些候选区域进行分类和定位回归确定最终的目标边界框和其类别。YOLOv8采用多尺度特征融合以捕捉不同尺度的信息提高检测性能。此外它使用自适应的Anchor Box来适应不同目标形状。整个过程通过端到端的训练来优化网络参数实现高效、准确的车牌检测。YOLOv8检测到的车牌如图 如上图所示检测有可能定位不准导致车牌周边图像也被包含在感兴趣区域内。另外检测出来的车牌会存在一定倾角不利于后续的车牌字符识别。因此对车牌进行关键点回归定位。如图所示 定位到车牌四个角点之后使用数学图像处理中的透视变化技术对其进行矫正。透视变换原理详见http://t.csdnimg.cn/RcdKB此处不再赘述。具体代码实现如下 def four_point_transform(image, pts): #透视变换得到车牌小图rect order_points(pts)(tl, tr, br, bl) rectwidthA np.sqrt(((br[0] - bl[0]) ** 2) ((br[1] - bl[1]) ** 2))widthB np.sqrt(((tr[0] - tl[0]) ** 2) ((tr[1] - tl[1]) ** 2))maxWidth max(int(widthA), int(widthB))heightA np.sqrt(((tr[0] - br[0]) ** 2) ((tr[1] - br[1]) ** 2))heightB np.sqrt(((tl[0] - bl[0]) ** 2) ((tl[1] - bl[1]) ** 2))maxHeight max(int(heightA), int(heightB))dst np.array([[0, 0],[maxWidth - 1, 0],[maxWidth - 1, maxHeight - 1],[0, maxHeight - 1]], dtype float32)M cv2.getPerspectiveTransform(rect, dst)warped cv2.warpPerspective(image, M, (maxWidth, maxHeight))return warped得到的矫正后车牌图像 再将矫正后的车牌输入CRNN中进行字符识别得到最终的字符识别效果并在图像上以文本的形式输出。 class_label int(class_num) #车牌的的类型0代表单牌1代表双层车牌roi_img four_point_transform(img,landmarks_np) #透视变换得到车牌小图if class_label: #判断是否是双层车牌是双牌的话进行分割后然后拼接roi_imgget_split_merge(roi_img)plate_number ,plate_color get_plate_result(roi_img,device,plate_rec_model) #对车牌小图进行识别,得到颜色和车牌号for dan in danger: #只要出现‘危’或者‘险’就是危险品车牌if dan in plate_number:plate_number危险品# cv2.imwrite(roi.jpg,roi_img)result_dict[class_type]class_type[class_label]result_dict[rect]rect #车牌roi区域result_dict[landmarks]landmarks_np.tolist() #车牌角点坐标result_dict[plate_no]plate_number #车牌号result_dict[roi_height]roi_img.shape[0] #车牌高度result_dict[plate_color]plate_color #车牌颜色result_dict[object_no]class_label #单双层 0单层 1双层result_dict[score]conf #车牌区域检测得分return result_dict4、代码使用 直接执行项目中的Car_recognition.py即可。如下主函数中“–detect_model”参数为检测模型的权重“----rec_model”参数为车牌识别车牌颜色识别模型的权重“----image_path”参数为测试图片文件夹的路径‘–img_size’代表输入模型进行推理的图像尺寸(理论上这个值越接近原始大小车牌识别越准确但推理帧率也会有一定程度下降)’–output’为输出图像存放的文件夹名称或输出视频的名称–video’为输入视频的路径。要实现视频推理在“–video”参数处设置视频路径即可。 if __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--detect_model, nargs, typestr, defaultweights/detect.pt, helpmodel.pt path(s)) #检测模型parser.add_argument(--rec_model, typestr, defaultweights/plate_rec_color.pth, helpmodel.pt path(s))#车牌识别车牌颜色识别模型parser.add_argument(--car_rec_model,typestr,defaultweights/car_rec_color.pth,helpcar_rec_model) #车辆识别模型parser.add_argument(--image_path, typestr, defaulttest, helpsource)parser.add_argument(--img_size, typeint, default1080, helpinference size (pixels))parser.add_argument(--output, typestr, defaultresult, helpsource)parser.add_argument(--video, typestr, defaulttest/test.mp4, helpsource)device torch.device(cuda if torch.cuda.is_available() else cpu)四、自己训练的步骤 对于兄弟们的毕设、课设项目来说没有必要再重新训练一遍。一方面耗时费力自己的电脑也不一定跑的动另一方面我这边会提供所有的训练过程曲线、数据、和训练好的权重直接调用就行。 1、下载数据集 数据是从CCPD和CRPD数据集中选取并转换的为yolo格式 label x y w h pt1x pt1y pt2x pt2y pt3x pt3y pt4x pt4y关键点依次是左上、右上、右下、左下。坐标都是经过归一化x、y是中心点除以图片宽高w、h是框的宽高除以图片宽高ptx、pty是关键点坐标除以宽高。车辆标注不需要关键点关键点全部置为-1即可。 2、修改路径 换成自己的数据集路径。 train: /your/train/path #修改成你的路径val: /your/val/path #修改成你的路径# number of classesnc: 3 #这里用的是3分类0 单层车牌 1 双层车牌 2 车辆# class namesnames: [ single_plate,double_plate,Car] 3、开始训练 python3 train.py --data data/plateAndCar.yaml --cfg models/yolov5n-0.5.yaml --weights weights/detect.pt --epoch 250五、车牌识别、检测自建数据集 我们实验室手动收集、整理了一个高质量的车牌识别、检测数据集包含41892张车辆车牌图片和对应的txt格式标签。已将其划分为训练集、测试集。本数据集可直接用于训练yolo系列等神经网络可提供给兄弟们的毕设、课设项目及企业课题进行使用。数据集展示如下 六、训练曲线等介绍 我们的项目代码还能自动生成训练过程的loss损失曲线、map平均准确度曲线不用手动画太麻烦了能用代码做的事尽量不手动兄弟可以直接将这些图插入论文或课设报告中。当然也可以自己训练重新生成对应的图。训练结束后这些图和训练数据会(以envents文件形式)存放在根目录下的runs文件夹中。我项目中已导出为PNG图片和CSV表格可以直接拿去用。 包含完整word版本说明文档可用于写论文、课设报告的参考。 七、资源获取(yolov8/yolov7/yolov5版本均可提供) yolov8/yolov7/yolov5车牌识别、定位、检测系统的实现和训练、数据的整理耗费了我们实验室大量的时间和精力。所以有偿提供使用感谢兄弟们理解。有需要的兄弟可通过以下方式获取资源。我们的代码有详细注释包全程指导任何问题都可以随时问我。不过有的时候我太忙可能不会及时回复消息看到了肯定回你哈。 获取整套代码、测试图片视频、车牌识别数据集、训练好的权重和说明文档(有偿) 上交在读博士技术够硬也可以指导深度学习毕设、大作业等。 --------------qq---------------------3582584734 -------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站整体排名大幅下降网站建设和网页设计的关系

亲爱的创作者们,大家好!今天我们来聊聊视频创作中至关重要的一点——氛围感。一个好的视频,不仅要有视觉冲击力,还要能够触动观众的情感。那我们应该去哪里寻找这些充满氛围感且高级的视频素材呢?别急,我这…

花都高端网站建设wordpress 动态解析

文章目录1. 多线程1.1 QTimer1.2 QThread界面卡住例子分离UI和工作线程1.3 事件处理2. 网页交互显示本地 html显示 html 代码调用 JavaScriptJavaScript 调用 PyQt代码learn from 《PyQt5 快速开发与实战》 https://doc.qt.io/qtforpython/index.html https://www.riverbankcom…

门户网站的布局贵阳市城乡建设学校网站

之前一直困扰自己的一个问题就是表单内radio、select等的对齐问题,一直以来,都是给提示添加label,然后跟radio等一起浮动,然后再设置margin解决的,但是这样又得另外解决IE6下的双边距问题,搞得自己相当恼。…

o2o网站模版网站开发完成情况说明

题干: JYY有两棵树A和B:树A有N个点,编号为1到N;树B有N1个点,编号为1到N1。JYY知道树B恰好是由树A加上一个叶 节点,然后将节点的编号打乱后得到的。他想知道,这个多余的叶子到底是树B中的哪一个…

后台风格网站短视频推广代理

golangvue微服务电商系统 文章目录 golangvue微服务电商系统一、项目前置准备二、项目简介三、代码GItee地址 golang、vue redis、mysql、gin、nacos、es、kibana、jwt 一、项目前置准备 环境的搭建 官方go开发工程师参考地址:https://blog.csdn.net/qq23001186/cat…

汕头市企业网站建设服务机构漳州建设银行网站

文章目录 “Q*”可能是什么?何为AI意识的产生?AI应该如何与人类对齐? 上周,OpenAI人事风波暂停的尾声中,有个“可能威胁人类”的、代号为“Q*”的神秘项目被抛掷出来。 传言中,Sam Altman被解雇前&#xff…

网站做留言板关于服装的网站规划与设计

近日,由中国网络空间安全协会主办,中国网络空间安全协会网络空间安全法律与公共政策专业委员会、北京邮电大学互联网治理与法律研究中心、公安部第三研究所网络安全法律研究中心、西安交通大学信息安全法律研究中心承办的《网络安全法(草案二…

做视频的网站带模板苏醒主题wordpress

一、引言 时间复杂度是衡量算法运行效率的一项重要指标,它描述了随着输入规模的增加,算法的执行时间如何增长。在算法设计与分析中,我们经常面临着优化时间复杂度的任务,以便提高程序的性能。本博客将深入探讨时间复杂度的优化法…

如何自己创建购物网站国家建筑信息管理平台

数学实验A 本仓库收集了2024年我在学习《数学实验A》课程期间完成的作业。课程使用的教材为《MATLAB数学实验》第三版,作者为胡良剑和孙晓君教授。 这个资源库的建立初衷是为了帮助南京邮电大学的同学们在学习过程中有一个参考的依据,减少一些无端浪费…

初创业公司做网站网站代码免费下载

一. pager-taglib-2.0简介预览. pager-taglib-2.0支持多种风格的分页,打开其源码,可以看到,处理标签的类为: PagerTag,有兴趣的同学可以研究下源码。 Simple: Text Icon: JSPTags.com : AllTheW…

网站尺寸自适应乐清新闻综合频道

现在可以用百度 百度安全验证 chatgpt用来搜索软件使用指令太牛了_个人渣记录仅为自己搜索用的博客-CSDN博客 chatgpt 使用案例 根据不同的目标群体变更文案和表达_个人渣记录仅为自己搜索用的博客-CSDN博客 倾听能力 和哪些基础能力相关 ,如何提高 chatgpt_个人渣记录仅为自…

网站建设播放vr视频西安网站开发公司排名

文章目录 Q1、什么是Spring Bean?和对象有什么区别Q2、配置Bean有哪几种方式?Q3、Spring支持的Bean有哪几种作用域?Q4、单例Bean的优势是什么?Q5、Spring的Bean是线程安全的吗?Q6、Spring如何处理线程并发问题&#xf…

购物网站成功案例Dw做html网站

​​​​ 文章目录 引言1. 错误详解2. 常见的出错场景2.1 用户输入处理错误2.2 动态数据源 3. 解决方案3.1 使用 get() 方法3.2 检查键是否存在 4. 预防措施4.1 数据验证4.2 使用默认字典 (defaultdict) 结语 引言 在Python开发中,处理字典时遇到 KeyError 是一种…

即墨网站设计wordpress 添加登录按钮

工作业务中,有大量分布式加锁的重复代码,存在两个问题,一是代码重复率高,二是容易产生霰弹式修改,使用注解和AOP可以实现代码复用,简化分布式锁加锁和解锁流程。 around注解是AspectJ框架提供的&#xff0c…

如何进行企业营销型网站建设规划东莞市建设工程网站

目录 基于JDE算法的实时多目标车辆跟踪方法 4.1引言 4.2 JDE多目标跟踪算法

龙港网站建设seo工作职责

[TOC] #说明 该文章仅科普下各方法是如何降低流片失败的可能性的。 #1. UVM方法学 1. uvm方法学的主要思想是通过用其它高级语言(python、c等)编写参考模型(REF)实现DUT设计相同功能。再使用uvm的一系列验证组件将相同的激励给…

网站备案 照片寻找在山西运城专业做网站推广的

1 概述: 在这篇文章中,我们将看到Angular 10中的APP_BASE_HREF是什么以及如何使用它。 APP_BASE_HREF为当前页面的基础href返回一个预定义的DI标记。 APP_BASE_HREF是应该被保留的URL前缀。 2 语法: provide: APP_BASE_HREF, useValue: /gfgapp3 步骤: 在app.m…

怎么建小说网站怎么样开发小程序

主题: 优先队列是一种非常有用的数据结构,它让你能够管理一组数据,使得每次访问或移除数据时,总是得到当前集合中优先级最高(或最低)的那个元素。这个特性让优先队列非常适用于需要快速访问集合中最重要元…

网站的开发公司倒闭对网站使用seosem顾问

红黑树 引言红黑树的介绍实现结点类insert搜索插入位置插入调整当parent为gparent的左子结点当parent为gparent的右子结点 参考源码测试红黑树是否合格总结 引言 在上一篇文章中我们认识了高度平衡的平衡二叉树AVL树:戳我看AVL树详解哦 (关于旋转调整的…

网站改版后seo该怎么做江苏网站建设yijuce

目录 1.数据流图 2.变换型设计和事务型设计 3.程序流程图 4.NS图和PAD图: 5.UML图 1.用例图 2.类图 3.顺序图 4.协作图 本文为个人复习资料,包含个人复习思路,多引用,也想和大家分享一下,希望大家不要介意~ …