本文主要使用yolo v2 训练自己的车牌图片数据,并能够框出测试图片中存在的车牌区域,也即车牌检测。本文参考了博文和
二、准备工作
三、制作标签文件
同样的方法,也在在plate_image文件夹下新建val_xml文件夹,保存验证集的xml标注文件。这样就有VOC格式标记的XML文件,接下来需要将xml文件转换为txt文件,使用python转换,将train_xml中的xml文件,转换为txt保存于文件夹train_txt下;同理,将val_xml中的xml文件转换后保存于val_txt文件夹下
看看plate_image下都有啥。
四、修改配置文件
(1)创建names文件
(2)修改data文件
(3)修改cfg文件
1.[region]层中classes改为1
2.[region]层上方的[convolution]层中,filters的数量改成(classes+coords+1)*NUM。我这里改成了(1+4+1)*5=30.
五、 修改src/yolo.c文件
1.第13行改成 char *voc_names[] = {"licence"}; //如果你是一类的话,就改成这样,如果你有多类,自己根据需求改。
2.第322行draw_detections函数中,最后一个参数由20改成你的类别数,我这里是1
3.第354行demo函数中,倒数第三个参数由20改成你的类别数,我这里是1
4.第17行改成 char *train_images = "<你的路径>/train_imgae_path";
5.第18行改成 char *backup_directory = "你的路径/backup/";
6.第121行改成 char *base = "results/comp4_det_test_"
8.第209行改成 char *base = "results/comp4_det_test_"
六、重新编译darknet yolo
进入darknet主目录,make clean后 make -j8
八、训练
在darknet文件夹路径下运行命令:
九、训练过程输出log
参考自这篇文章,以下摘自这篇文章
Region Avg IOU: 这个是预测出的bbox和实际标注的bbox的交集 除以 他们的并集。显然,这个数值越大,说明预测的结果越好
Avg Recall: 这个表示平均召回率, 意思是 检测出物体的个数 除以 标注的所有物体个数。
count: 标注的所有物体的个数。 如果 count = 6, recall = 0.66667, 就是表示一共有6个物体(可能包含不同类别,这个不管类别),然后我预测出来了4个,所以Recall 就是 4 除以 6 = 0.66667
有一行跟上面不一样的,最开始的是iteration次数,然后是train loss,然后是avg train loss, 然后是学习率, 然后是一batch的处理时间, 然后是已经一共处理了多少张图片。 重点关注 train loss 和avg train loss,这两个值应该是随着iteration增加而逐渐降低的。如果loss增大到几百那就是训练发散了,如果loss在一段时间不变,就需要降低learning rate或者改变batch来加强学习效果。当然也可能是训练已经充分。这个需要自己判断
十、评估训练得的模型
显示的检测结果为
训练的时候只是用到了训练集,评估检测性能才会使用到验证集。使用以下指令评估
根据参考的第2篇博文,使用该指令的时候,会调用src/detector.c里的validate_detector_recall函数,将其中的阈值从0.001修改为0.25,防止过多框被识别出,将432行代码修改为如下:
重新make之后,运行结果为:
可见196张图片,准确率有97%以上。
Python正则表达式提取车牌号在这篇文章中,我们将通过实例说明如何使用Python的正则表达式提取车牌号。车牌号的格式因地区而异,但我们以中国的车牌号为例,通常格式为一个字母后跟5位数字和字母。1. 安装re模块Python自带了re模块,无需额外安装。你只需要导入这个模块即可。import re2. 定义车牌号的正则表达式中国的车牌号一般遵循以下规则:第一个字符是汉字(省份简
校验车牌的格式使用正则表达式去进行车牌校验,检测一个字符串是否为车牌格式private static final String LICENSE_PLATE_PATTERN = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵青藏川宁琼粤台港澳][A-Z][A-Z0-9]{5,6}$";public static boolean isValidLicensePlate(String lice
# 识别车牌号的 Python 实现入门车牌号识别是计算机视觉中的一个热门应用,现今在交通监控和管理中应用广泛。本文将指导您如何使用 Python 实现车牌号识别,适合刚入门的开发者。以下是整个流程的概览:| 步骤 | 描述 ||--------|--------------------------------
# 如何实现车牌号识别 Java## 整体流程首先,我们需要明确整个车牌号识别的流程,然后逐步指导小白完成每一个步骤。下面是一个简单的流程表格:| 步骤 | 描述 || ---- | ---------------------------- || 1 | 读取图片文件 || 2 | 对图片
向AI转型的程序员都关注了这个号????????????机器学习AI算法工程 公众号:datayx算法思想来自于网上资源,先使用图像边缘和车牌颜色定位车牌,再识别字符。车牌定位在pre...
在当今汽车行业,车牌识别技术的应用越来越普及,广泛用于交通监控、停车管理等场景。其中,使用 Python 和 OpenCV 实现车牌号的识别是一项具有挑战性的任务。本文希望通过系统化的流程来梳理这一过程,为同样想要实现这一功能的开发者提供参考。```mermaidflowchart TD A[开始] --> B{是否获取车牌图像?} B -- 是 --> C[应用图像预处理]
本次大报告利用MATLAB函数功能,设计和实现了一个车牌识别系统。车牌识别系统的基本原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进行预处理,再对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后将其逐个与创建的字符模板进行匹配,匹配成功后输出车牌号码的数字。车牌识别的工作流程如下图:一、 图像预处理 预处理的具体操作是规整大小、噪
手机端车牌识别技术是指通过计算机视觉、图像处理与模式识别等方法从车辆图像中提取车牌字符信息,从而确定车辆身份的技术。手机端车牌识别技术分为车牌、字符分割、字符识别三大部分。目前除了二维码把物品连接的方式外,如今的OCR识别技术的发展,可以直接通过文字,把物品连接起来,例如车牌识别,识别一下车牌,就可以把车相关的信息连接起来。随着现阶段物联网的强势发展,网通过智能感知、识别技术与普
随着我国经济的飞速发展,机动车的保有量也大幅度增加,在给人们出行带来方便的同时,也给道路交通带来了巨大的压力,机动车违法、违章行为是造成交通事故和影响正常交通秩序的主要原因之一;停车难,停车场管理需要更加智能高效的管理方式。而车牌号码作为车辆唯一身份证,它的特殊性与重要性成为智能交通系统不可或缺的重要组成部分。那如何准确高速有效的识别出这些车牌号码呢?那就来看看文通电脑版车牌识别软件。
基于java程序车牌识别系统的成了现在停车管理的主流,那么自动识别车牌系统的工作原理是什么呢?南天瑞丰分享给大家。java车牌识别系统javaCV图像处理是一款开源的图像处理程序,它可以实现以下功能1、车牌检测(支持图片中含有单车牌和多车牌检测)2、车牌定位3、车牌字符识别4、千份测试单次检测识别完成平均耗时39ms,准确率89.9%车牌识别系统java程序自动识别车牌系统的工作原理自动识别车牌系
对于一幅RGB图像,我们先将其转为HSI颜色空间,HSI分别是什么:H:Hue 色调(描述纯色的属性)S:Saturation 饱和度(指纯色被白色稀释的程度的度量,其值越大,色彩纯度越高)I:Illumination 亮度(描述光照的强度)那么对于一幅RGB的图像,RGB到底要怎么转换为HSI: 关于HSI分离:cv::Mat srcImage = cv::imread("./imag
提高效率,人人都想,到底怎么提高效率呢?其中一个方式是机器代替人工,在交通执法、占道停车管理里面,车牌识别,OCR识别技术,给工作人员带来极大的便利,他们通过PDA、或者移动端去进行执法、收费。目前,我国警务通、停车场手持收费机等移动终端正在普及推广,覆盖全国,如果在这些手持终端上能够集成车牌识别这项功能,对于管理来说,对于维护治安来说,对于人工智能来说,有着实现自动化管理人工智能方面有着很实际的
摘要 代码:() 提出了LPRNet端到端方法自动车牌识别,无需初步字符分割。我们的方法灵感来自于-在深度神经网络方面取得突破实时,中文识别准确率高达95% 车牌:LPRNet由轻量级卷积Neu组成-al网络,因此可以以端到端的方式进行培训。致据我们所知,LPRNet是第一个实时许可证不使用RNN的车牌识别系统。**作为一个结果,LPRNet算法可用于创建嵌入式LPR的解决方案,即使在挑战中国车牌
SQL Injection的原因和危害原因下图可以很好的表示SQL注入,车牌被识别后,系统会执行drop database指令删除数据库下面的漫画中,该学生的姓名为“Robert’); DROP TABLE students;–”,导致students表被删除:在输入的字符串之中注入SQL指令,恶意指令就会被数据库服务器误认为是正常的SQL指令而运行,遭到破坏或是入侵例如,某个网站的登录验证的SQ
所谓车牌识别,即当车辆通过入口处时,自动识别车牌号等信息,通过集成到停车管理系统之中,从而实现车辆的智能管理。车牌识别,可对车辆车牌进行自动识别登记,也是交通领域重要的识别手段。 文通科技作为国内高新技术企业,已获得几十余项专利、软著、奖项等,在行业中有口皆碑。自主研发核心OCR技术,识别准确率高、识别速度快,并广泛应用于智能交通、智能无人值守称重、智能无人值守洗车、智能充电桩、4S店
简介 前一篇讲解到了将用蓝色筛选后的图片,再一次灰阶/二值化。现在从这里继续讲解。 矩形检测 因为车牌是一个矩形。所以接着将又一次二值化之后的图片,进行膨胀,之后在进行矩形检测。框选出可能是车牌号的矩形区域。代码如下: int** car_License_box(Mat& mat1, Mat& mat2, int* number){ Mat threshold_out
汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。 系统设计概述由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环
以下是关于 Quill 的功能介绍、使用场景说明以及使用示例演示:功能介绍文本格式化基础样式:支持加粗、斜体、下划线、删除线等常见的文字效果,可改变字体颜色、背景色,调整字体大小。段落排版:能设置段落的对齐方式(左对齐、居中对齐、右对齐),添加有序或无序列表,方便组织内容结构。标题级别:提供多级标题 ...
该代码主要实现了在UG/NX软件中操作选择过滤器的功能,包含三个核心函数:1.通过标签名设置过滤器(Set_Type_Filter_Index_By_Label);2.查询当前过滤器索引(SEL_Ask_Type_Filter_Index);3.通过索引强制设置过滤器(SEL_Set_Type_Filter_Index)
在WPF中,我们知道界面层可以通过Trigger触发器实现“条件”——“赋值”的功能属性触发器Property Trigger:当Dependency Property的值发生改变时触发。数据触发器Data Trigger: 当普通.NET属性的值发生改变时触发。事件触发器Event Trigger: 当路由时间被触发时调用。属性触发器与数据触发器中又可有多条件触发器,即类似条件语句中“并”的效果
从玻尔兹曼机到深度置信网络本文仍处于草稿阶段,请慎重观看引言受限玻尔兹曼机(Restricted Boltzmann Machines, RBM)最初是在1986年由Paul Smolensky发明,在Geoffrey Hinton和合作者在2005年左右为其发明了快速学习的算法之后,RBM得以进一步发展。RBM可用于可用于降维、分类、回归、协同过滤、特征学习和主题建模。根据任务,RBM可用于监督
之前讲过一篇空间转录组的文献,里面首次提出了Multimodal intersection analysis(MIA)的空间转录组分析思路。讲解视频在B站MIA分析可以用来评估空间上某个region或者cluster中富集的细胞类型。需要单细胞和空间转录组两种组学数据,数据最好配对。MIA原理上图是示例图,一个region是否富含某一种细胞类型,看的是一个region高表达的基因和一个cellty