车牌识别算法模型训练

在本专题的第一篇博文中讲述了车牌检测数据集的制作方法(车牌识别数据集解析_reset2021的博客-优快云博客

1)数据清洗

对 CCPD2019中 ccpd_base数据集进行处理,得到数据集结构如下

其中,labels为为车牌信息,也即图像文件的名称

2) 下载源码

下载yolov5源码(GitHub - sirius-ai/LPRNet_Pytorch: Pytorch Implementation For LPRNet, A High Performance And Lightweight License Plate Recognition Framework.)

① 源码结构说明

1)data为 数据集记载接口

2)model 为模型定义

3)weights 为存放模型生成文件以及预训练模型

4) test_LPRNet.py 为模型测试接口

5)train_LPRNet.py 为模型训练接口

② 修改训练接口的相关参数

def get_parser():
    parser = argparse.ArgumentParser(description='parameters to train net')
    parser.add_argument('--max_epoch', default=140, help='epoch to train the network')
    parser.add_argument('--img_size', default=[94, 24], help='the image size')
    parser.add_argument('--train_img_dirs', default=r"../datasets/CCPD/ccpd_2019_yolo/images/ccpd_base/res_images/train", help='the train images path')
    parser.add_argument('--test_img_dirs', default=r"../datasets/CCPD/ccpd_2019_yolo/images/ccpd_base/res_images/val", help='the test images path')
    parser.add_argument('--dropout_rate', default=0.5, help='dropout rate.')
    parser.add_argument('--learning_rate', default=0.01, help='base value of learning rate.')
    parser.add_argument('--lpr_max_len', default=8, help='license plate number max length.')
    parser.add_argument('--train_batch_size', default=512, help='training batch size.')
    parser.add_argument('--test_batch_size', default=512, help='testing batch size.')
    parser.add_argument('--phase_train', default=True, type=bool, help='train or test phase flag.')
    parser.add_argument('--num_workers', default=0, type=int, help='Number of workers used in dataloading')
    parser.add_argument('--cuda', default=True, type=bool, help='Use cuda to train model')
    parser.add_argument('--resume_epoch', default=60, type=int, help='resume iter for retraining')
    parser.add_argument('--save_interval', default=500, type=int, help='interval for save model state dict')
    parser.add_argument('--test_interval', default=500, type=int, help='interval for evaluate')
    parser.add_argument('--momentum', default=0.9, type=float, help='momentum')
    parser.add_argument('--weight_decay', default=2e-5, type=float, help='Weight decay for SGD')
    parser.add_argument('--lr_schedule', default=[20, 40, 60, 80, 100,120], help='schedule for learning rate.')
    parser.add_argument('--save_folder', default=r'./train_runs_2023/',
                        help='Location to save checkpoint models')
    parser.add_argument('--pretrained_model', default='./weights/Final_LPRNet_model.pth', help='no pretrain')

    args = parser.parse_args()

 主要修改

    parser.add_argument('--train_img_dirs', default=r"../datasets/CCPD/ccpd_2019_yolo/images/ccpd_base/res_images/train", help='the train images path')
    parser.add_argument('--test_img_dirs', default=r"../datasets/CCPD/ccpd_2019_yolo/images/ccpd_base/res_images/val", help='the test images path')

    parser.add_argument('--save_folder', default=r'./train_runs_2023/',
                        help='Location to save checkpoint models')
    parser.add_argument('--pretrained_model', default='./weights/Final_LPRNet_model.pth', help='no pretrain')

其中,上面两个参数为训练数据集与验证数据集的路径。下面两个参数为模型保存路径以及预训练权重路径。

③ 开始训练:

python train_LPRNet.py

部分打印如下所示:

Epoch:132 || epochiter: 97/213|| Totel iter 28000 || Loss: 0.0593||Batch time: 2.6856 sec. ||LR: 0.01000000
Epoch:132 || epochiter: 117/213|| Totel iter 28020 || Loss: 0.0658||Batch time: 2.9843 sec. ||LR: 0.01000000
Epoch:132 || epochiter: 137/213|| Totel iter 28040 || Loss: 0.0923||Batch time: 3.4117 sec. ||LR: 0.01000000
Epoch:132 || epochiter: 157/213|| Totel iter 28060 || Loss: 0.0530||Batch time: 2.4972 sec. ||LR: 0.01000000
Epoch:132 || epochiter: 177/213|| Totel iter 28080 || Loss: 0.0929||Batch time: 2.7108 sec. ||LR: 0.01000000
Epoch:132 || epochiter: 197/213|| Totel iter 28100 || Loss: 0.0786||Batch time: 3.6349 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 4/213|| Totel iter 28120 || Loss: 0.0782||Batch time: 3.0764 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 24/213|| Totel iter 28140 || Loss: 0.0652||Batch time: 1.7216 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 44/213|| Totel iter 28160 || Loss: 0.0754||Batch time: 1.5574 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 64/213|| Totel iter 28180 || Loss: 0.0764||Batch time: 1.7807 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 84/213|| Totel iter 28200 || Loss: 0.0871||Batch time: 3.0359 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 104/213|| Totel iter 28220 || Loss: 0.0811||Batch time: 2.6455 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 124/213|| Totel iter 28240 || Loss: 0.0431||Batch time: 2.4653 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 144/213|| Totel iter 28260 || Loss: 0.0801||Batch time: 2.5873 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 164/213|| Totel iter 28280 || Loss: 0.0708||Batch time: 3.1715 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 184/213|| Totel iter 28300 || Loss: 0.0740||Batch time: 2.6167 sec. ||LR: 0.01000000
Epoch:133 || epochiter: 204/213|| Totel iter 28320 || Loss: 0.0781||Batch time: 2.8141 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 11/213|| Totel iter 28340 || Loss: 0.0685||Batch time: 2.4714 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 31/213|| Totel iter 28360 || Loss: 0.0738||Batch time: 2.4797 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 51/213|| Totel iter 28380 || Loss: 0.0745||Batch time: 2.6958 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 71/213|| Totel iter 28400 || Loss: 0.0538||Batch time: 2.4884 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 91/213|| Totel iter 28420 || Loss: 0.0617||Batch time: 2.6363 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 111/213|| Totel iter 28440 || Loss: 0.0983||Batch time: 2.4005 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 131/213|| Totel iter 28460 || Loss: 0.0709||Batch time: 1.5192 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 151/213|| Totel iter 28480 || Loss: 0.0724||Batch time: 2.9176 sec. ||LR: 0.01000000
[Info] Test Accuracy: 0.88671875 [16798:856:1290:18944]
[Info] Test Speed: 0.004879352755456027s 1/19117]
Epoch:134 || epochiter: 171/213|| Totel iter 28500 || Loss: 0.0882||Batch time: 2.5666 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 191/213|| Totel iter 28520 || Loss: 0.0796||Batch time: 2.9046 sec. ||LR: 0.01000000
Epoch:134 || epochiter: 211/213|| Totel iter 28540 || Loss: 0.0923||Batch time: 2.4908 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 18/213|| Totel iter 28560 || Loss: 0.0862||Batch time: 2.7225 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 38/213|| Totel iter 28580 || Loss: 0.0461||Batch time: 1.6113 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 58/213|| Totel iter 28600 || Loss: 0.0798||Batch time: 1.6577 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 78/213|| Totel iter 28620 || Loss: 0.0741||Batch time: 2.9774 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 98/213|| Totel iter 28640 || Loss: 0.0953||Batch time: 2.9027 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 118/213|| Totel iter 28660 || Loss: 0.0988||Batch time: 2.7198 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 138/213|| Totel iter 28680 || Loss: 0.0688||Batch time: 2.4990 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 158/213|| Totel iter 28700 || Loss: 0.0439||Batch time: 2.5107 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 178/213|| Totel iter 28720 || Loss: 0.0735||Batch time: 2.6372 sec. ||LR: 0.01000000
Epoch:135 || epochiter: 198/213|| Totel iter 28740 || Loss: 0.0593||Batch time: 2.6569 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 5/213|| Totel iter 28760 || Loss: 0.0644||Batch time: 2.2701 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 25/213|| Totel iter 28780 || Loss: 0.0734||Batch time: 2.4448 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 45/213|| Totel iter 28800 || Loss: 0.0638||Batch time: 2.2956 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 65/213|| Totel iter 28820 || Loss: 0.0851||Batch time: 1.4244 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 85/213|| Totel iter 28840 || Loss: 0.0510||Batch time: 2.4301 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 105/213|| Totel iter 28860 || Loss: 0.0579||Batch time: 2.7128 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 125/213|| Totel iter 28880 || Loss: 0.0778||Batch time: 2.5363 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 145/213|| Totel iter 28900 || Loss: 0.0735||Batch time: 2.5044 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 165/213|| Totel iter 28920 || Loss: 0.0841||Batch time: 2.4243 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 185/213|| Totel iter 28940 || Loss: 0.0792||Batch time: 2.3947 sec. ||LR: 0.01000000
Epoch:136 || epochiter: 205/213|| Totel iter 28960 || Loss: 0.0795||Batch time: 2.3946 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 12/213|| Totel iter 28980 || Loss: 0.0660||Batch time: 2.0044 sec. ||LR: 0.01000000
[Info] Test Accuracy: 0.900390625 [17057:842:1045:18944]
[Info] Test Speed: 0.003254071460294257s 1/19117]
Epoch:137 || epochiter: 32/213|| Totel iter 29000 || Loss: 0.0765||Batch time: 3.2783 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 52/213|| Totel iter 29020 || Loss: 0.0563||Batch time: 2.5004 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 72/213|| Totel iter 29040 || Loss: 0.0958||Batch time: 2.5501 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 92/213|| Totel iter 29060 || Loss: 0.0531||Batch time: 2.4735 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 112/213|| Totel iter 29080 || Loss: 0.0557||Batch time: 2.6080 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 132/213|| Totel iter 29100 || Loss: 0.1042||Batch time: 2.5908 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 152/213|| Totel iter 29120 || Loss: 0.0916||Batch time: 2.6287 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 172/213|| Totel iter 29140 || Loss: 0.0768||Batch time: 1.4714 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 192/213|| Totel iter 29160 || Loss: 0.0393||Batch time: 2.3952 sec. ||LR: 0.01000000
Epoch:137 || epochiter: 212/213|| Totel iter 29180 || Loss: 0.0599||Batch time: 1.5093 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 19/213|| Totel iter 29200 || Loss: 0.0674||Batch time: 2.5899 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 39/213|| Totel iter 29220 || Loss: 0.0728||Batch time: 2.8100 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 59/213|| Totel iter 29240 || Loss: 0.0756||Batch time: 1.5109 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 79/213|| Totel iter 29260 || Loss: 0.0735||Batch time: 2.6111 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 99/213|| Totel iter 29280 || Loss: 0.0697||Batch time: 2.6712 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 119/213|| Totel iter 29300 || Loss: 0.1383||Batch time: 2.5968 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 139/213|| Totel iter 29320 || Loss: 0.0528||Batch time: 2.6106 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 159/213|| Totel iter 29340 || Loss: 0.0669||Batch time: 2.5904 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 179/213|| Totel iter 29360 || Loss: 0.0613||Batch time: 2.4705 sec. ||LR: 0.01000000
Epoch:138 || epochiter: 199/213|| Totel iter 29380 || Loss: 0.0800||Batch time: 2.9948 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 6/213|| Totel iter 29400 || Loss: 0.0566||Batch time: 2.5206 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 26/213|| Totel iter 29420 || Loss: 0.0883||Batch time: 2.5943 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 46/213|| Totel iter 29440 || Loss: 0.0675||Batch time: 2.1599 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 66/213|| Totel iter 29460 || Loss: 0.0963||Batch time: 3.4811 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 86/213|| Totel iter 29480 || Loss: 0.0646||Batch time: 2.8414 sec. ||LR: 0.01000000
[Info] Test Accuracy: 0.8535684121621622 [16170:1003:1771:18944]
[Info] Test Speed: 0.005983558204711939s 1/19117]
Epoch:139 || epochiter: 106/213|| Totel iter 29500 || Loss: 0.0842||Batch time: 2.6033 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 126/213|| Totel iter 29520 || Loss: 0.0579||Batch time: 2.7725 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 146/213|| Totel iter 29540 || Loss: 0.0377||Batch time: 3.0633 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 166/213|| Totel iter 29560 || Loss: 0.0728||Batch time: 3.1834 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 186/213|| Totel iter 29580 || Loss: 0.0628||Batch time: 2.5790 sec. ||LR: 0.01000000
Epoch:139 || epochiter: 206/213|| Totel iter 29600 || Loss: 0.0569||Batch time: 2.7658 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 13/213|| Totel iter 29620 || Loss: 0.0608||Batch time: 3.1631 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 33/213|| Totel iter 29640 || Loss: 0.0810||Batch time: 3.2183 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 53/213|| Totel iter 29660 || Loss: 0.0669||Batch time: 1.6993 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 73/213|| Totel iter 29680 || Loss: 0.0698||Batch time: 2.4664 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 93/213|| Totel iter 29700 || Loss: 0.0846||Batch time: 2.9049 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 113/213|| Totel iter 29720 || Loss: 0.0707||Batch time: 3.3820 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 133/213|| Totel iter 29740 || Loss: 0.0684||Batch time: 2.2185 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 153/213|| Totel iter 29760 || Loss: 0.0789||Batch time: 2.8385 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 173/213|| Totel iter 29780 || Loss: 0.0714||Batch time: 2.8002 sec. ||LR: 0.01000000
Epoch:140 || epochiter: 193/213|| Totel iter 29800 || Loss: 0.0725||Batch time: 2.5646 sec. ||LR: 0.01000000
Final test Accuracy:
[Info] Test Accuracy: 0.8961148648648649 [16976:864:1104:18944]
[Info] Test Speed: 0.00455971425651051s 1/19117]


5)模型运行结果保存在

train_runs中。

loss的图像如下所示

源码以及训练结果见

https://download.youkuaiyun.com/download/reset2021/87946277?spm=1001.2101.3001.9500

车牌识别的N种办法——从OCR到深度学习 第一种方法 利用 pytesseract 进行识别 pytesseract是一个现成的OCR识别工具,具体的 pytesseract 安装可百度安装 import cv2 as cv from PIL import Image import pytesseract as tess def recoginse_text(image): """ 步骤: 1、灰度,二值化处理 2、形态学操作去噪 3、识别 :param image: :return: 阅读详情

相关推荐

模型实战(12)之YOLOv8实现车牌识别:高精度+速度+权重分享

YOLOv8实现车牌识别:高精度+速度+权重分享

yohnyang的博客 2929

利用CNN卷积神经网络实现车牌识别(tensorflow)附完整Python项目代码

车牌识别的几个步骤: 给一张图片 1.从图片上找到车牌的区域 2.从图片上截取车牌的区域 3.从这个车牌区域中分割出一个一个的字符图片,保存 4.字符图片挨个识别:先识别省份,再识别城市、再识别号码 5.三个部分合在一起,得到最终的车牌的详细信息 怎么去识别: 用模型去做 模型=数据(特征数据+标签数据)+算法 (CNN)卷积神经网络 tensorflow:数据流编程 平台的工作方式:数据流图 1.创建图 2.给图中添加需要的模块 3.带入数据 进行计算 让数据在图中流动起来 图像识别的流程: 使用.

SOBE_rrr的博客 3万+

目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型

目标识别如今以及迭代了这么多年,普遍受大家认可和欢迎的目标识别框架就是YOLO了。按照官方描述,YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性。从基本的YOLOv1版本到如今v8版本,完成了多次蜕变,现在已经相当成熟并且十分的亲民。我见过很多初学目标识别的同学基本上只花一周时间就可以参照案例实现一个目标检测的项目,这全靠YOLO强大的解耦性和部署简易性。初学者甚至只需要修改部分超参数接口,调整数据集就可以实现目标检测了。

master_hunter的博客 6361

通过AI深度学习实现骑车不戴头盔和两轮电动车摩托车号牌识别算法

去年在深圳交警的一个项目是,要在宝安区某点试点抓拍未戴头盔的电动车骑车行为,而且需要将电动车号牌识别出来,经过技术论证,采用AI深度学习+传统车牌识别算法相结合的方式,实现此功能,我带领程序员小老弟们经过8个月的奋战,终于实现了这个算法,效果还相当棒,而且还能支持在800W像素下工作,令人惊奇,真是无AI,不编程啊。 总结一下,通过AI深度学习实现骑车不戴头盔和两轮电动车摩托车号牌识别算法具有如下特征: 1.速度快到你不敢想象,通过tensorflow训练出算法库后,再由TensorRT推理形成更为..

aaa专栏 6005

手把手教你使用 YOLOv11/v8 算法 + PaddleOCR 算法完成车牌检测和车牌识别系统,AI智能体,毛玻璃系统,包括PaddlePaddle安装、数据集预处理、模型训练、AI大模型应用等

手把手教你使用 YOLOv11/v8算法 + PaddleOCR算法完成车牌检测和车牌识别系统,AI智能体,毛玻璃系统,包括PaddlePaddle安装、数据集预处理、模型训练、AI大模型应用等。车牌识别系统支持 蓝牌、绿牌、黄牌、双层车牌等车牌识别。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2778

车牌字符识别项目实践:Python与SVM算法应用

车牌识别技术广泛应用于停车场管理系统、城市交通监控、高速公路计费系统以及车辆管理等多个领域。在这些应用场景中,车牌识别系统能够自动识别车辆的身份信息,并在无需人工干预的情况下,实现数据的快速录入和处理,从而大大提升了工作效率。统计学习理论是研究如何从数据中学习规律的理论框架。它在机器学习领域中占据重要地位,特别是在处理分类问题上,统计学习理论为SVM算法提供了坚实的理论基础。SVM的核心思想是通过找到一个最优超平面来对数据进行分类。

weixin_36382073的博客 634

智能驾驶 车牌检测和识别(二)《YOLOv5实现车牌检测(含车牌检测数据集和训练代码)》

车牌检测和识别(二)《YOLOv5实现车牌检测(含车牌检测数据集和训练代码)》;YOLOv5车牌检测,Pytorch车牌检测;License Plates Detection

AI吃大瓜的博客 3万+

KNN算法在车牌手写数字识别中的应用:Python实战项目

K-近邻(K-Nearest Neighbors,简称KNN)算法是一种基础的分类与回归方法。它根据“物以类聚”的思想,通过计算测试样本与训练集中每个样本的距离,将该样本划分到最近邻的类别中。KNN算法简单、易于实现,但随着数据量的增加,计算成本也会显著提高。

weixin_30205153的博客 400

MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型

MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型 导读 利用CNN-OCR算法训练车牌数据集评估模型并实现车牌照片字符识别,训练中的车牌数据集是Numpy.ndarray格式数据,当然也可以进一步生成图片,方便直接查看。 目录 输出结果 设计思路 核心代码 更多输出 输出结果...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 7700

车牌识别测试图片集(237幅车牌照片)(文件名均是车牌号)

237幅车牌照片(文件名是车牌号)(车牌识别图片测试集)(图片均是jpg格式)(基本都是蓝牌私家车牌照)

LTE信令流程实战:从Attach到Service Request的完整解析(附常见问题排查)

本文深入解析LTE信令流程中的Attach和Service Request关键环节,提供从基础原理到实战排查的完整指南。涵盖鉴权、承载建立等核心步骤,分析常见故障模式及优化方案,并附赠信令跟踪工具使用技巧,助力通信工程师提升网络运维效率。

alpha的博客 316

车牌识别系统分步详解

车牌定位 开题 作为一个刚接触Python以及图像处理的小白,正好这次毕设题目是车牌识别,虽然毕设最终还是只能简单的实现部分车牌的识别,但还是希望能够将其记录下来,既是给自己做做笔记,也是希望能够给其他人一些帮助(因此在文章中可能会出现一些问题,希望大家指正并谅解)。说说正题——车牌识别主要分为三个模块:车牌定位、字符分割和字符识别。本篇文章主要是第一部分车牌定位部分的代码,部分代码参考自下面这位...

ZJC'博客 7324

双系统引导修复:GRUB消失后恢复Windows与Ubuntu启动菜单

在UEFI引导架构下,操作系统启动依赖于EFI系统分区(ESP)中存储的引导加载程序。当多个系统共存时,引导管理器负责识别并加载不同操作系统的引导文件。然而,Windows更新或系统调整时常会重置UEFI启动顺序,导致GRUB引导菜单消失,直接进入Windows。这一问题的技术价值在于理解UEFI启动流程与多系统引导管理机制,掌握ESP分区结构与引导文件修复方法。常见的应用场景包括双系统安装后的引导修复、系统更新后的启动项丢失以及磁盘分区调整导致的引导故障。本文针对**GRUB引导菜单消失**和**UEFI

weixin_29895109的博客 292

【车牌识别】Python+卷积神经网络算法+人工智能+深度学习+Django网页界面+TensorFlow+模型训练+计算机课设项目

车牌识别系统,本系统使用Python作为主要编程语言,通过收集了一万多张车牌图片作为数据集,基于TensorFlow搭建CNN卷积神经网络算法模型,并通过多轮迭代训练,最终得到一个识别精度较高的模型。然后使用Django开发网页端操作界面平台,实现用户上传一张车牌图片识别其结果。卷积神经网络(Convolutional Neural Network, CNN)是一种广泛应用于图像识别任务的深度学习算法。

子午的博客 630

影像组学分析流程中,图像分割前要做的事(图像预处理)

在InputVolume中无法找到自己想要重采样的序列,这时可以检查一下序列的Volume type是不是MRMLMulti。这时,Volume type将由MRMLMulti改为Scaler,随后即可在3D slicer中完成Resample Scaler Volume。2.1、重采样:通过3Dslicer中的Resample Scaler Volume实现。具体设置参数:spacing(1,1,1),Interpolation选择Bspline。2、图像预处理:重采样和标准化。

weixin_45011313的博客 3722

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 461

软件杯 深度学习 YOLO 实现车牌识别算法

🔥 优质竞赛项目系列,今天要分享的是🚩基于yolov5的深度学习车牌识别系统实现该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分创新点:3分🧿智能车牌识别是现代智能交通系统的重要组成部分, 广泛应用于高速公路、停车场、路口等场景。随着大数 据、人工智能的不断发展,智能车牌识别在数据处理、自适应学习以及特殊场景训练等方面都有较大程度提升,具 有更强的容错性和鲁棒性。

Mr.D学长 1692

【错误解决】本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215 本文源自【大学之旅_谙忆的博客】 在启动mysql服务时出现该错误: 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止。mysql 版本 5.7.14 系统 win 7后来经过一系列的百度,谷歌,总算是解决了。首先,你需要把原来的服务删除:mysqld --remove mysq

谙忆-陈浩翔 12万+

毕设 深度学习 YOLO 实现车牌识别算法

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩基于yolov5的深度学习车牌识别系统实现🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分创新点:3分🧿选题指导, 项目分享:见文末智能车牌识别是现代智能交通系统的重要组成部分, 广泛应用于高速公路、停车场、路口等场景。

m0_76217654的博客 875

C++性能优化:深入理解缓存一致性与伪共享

在现代多核处理器的世界里,理解缓存一致性和伪共享就像理解一个复杂社会系统的运作规则。正如心理学家阿德勒所说:"人的行为总是有目的的",CPU缓存的每一次同步也都有其深层的硬件逻辑。本文将带你深入探索这些看不见的性能杀手,以及如何在实际项目中与它们优雅共处。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 933

YOLOv8极速瘦身实战:LAMP剪枝让模型又快又准

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

FJN110的博客 257

新能源车牌识别数据集——绿牌数据集

新能源车牌识别数据集——绿牌数据集 【下载地址】新能源车牌识别数据集绿牌数据集 绿牌数据集是一个专为新能源车牌识别研究设计的高质量开源资源,包含大量手工整理的车牌图片,每张图片的文件名即为对应的车牌号,便于快速定位与识别。数据集涵盖了多种拍摄条件下的车牌图像,如不同角度、光线和天气,全面且实用。其结构简单明了,适合研究者...

gitblog_06773的博客 611

银河麒麟操作系统最佳实践专栏介绍

本专栏聚焦国产银河麒麟操作系统(桌面版/服务器版)的实战应用,提供系统安装、配置优化、应用部署、故障排查等实用指南。内容基于真实操作场景,涵盖Linux通用技术(如RAID配置、环境变量管理)、服务器系统专项(如数据库迁移、驱动安装、安全加固)及桌面系统技巧(如PXE安装、镜像封装)。面向IT运维、开发者和国产化转型人员,突出实战性和差异化,帮助用户规避常见问题,提升系统管理效率。所有教程均配有详细步骤和截图,确保可操作性,并持续更新适配新版系统。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 530

深度学习 YOLO 实现车牌识别算法 计算机竞赛

🔥 优质竞赛项目系列,今天要分享的是🚩基于yolov5的深度学习车牌识别系统实现该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分创新点:3分🧿智能车牌识别是现代智能交通系统的重要组成部分, 广泛应用于高速公路、停车场、路口等场景。随着大数 据、人工智能的不断发展,智能车牌识别在数据处理、自适应学习以及特殊场景训练等方面都有较大程度提升,具 有更强的容错性和鲁棒性。

Mr.D学长 459

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

新能源车牌识别数据集绿牌数据集:新能源车牌识别的最佳助手

新能源车牌识别数据集绿牌数据集:新能源车牌识别的最佳助手 【下载地址】新能源车牌识别数据集绿牌数据集 绿牌数据集是一个专为新能源车牌识别研究设计的高质量开源资源,包含大量手工整理的车牌图片,每张图片的文件名即为对应的车牌号,便于快速定位与识别。数据集涵盖了多种拍摄条件下的车牌图像,如不同角度、光线和天气,全面且实用。其结...

gitblog_06775的博客 762

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

毕设成品 深度学习YOLO实现车牌识别算法

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩基于yolov5的深度学习车牌识别系统实现🥇学长这里给一个题目综合评分(每项满分5分)难度系数:4分工作量:4分创新点:3分🧿选题指导, 项目分享:见文末智能车牌识别是现代智能交通系统的重要组成部分, 广泛应用于高速公路、停车场、路口等场景。

HUXINY的博客 675

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 基于yolov5的车牌检测
下一篇: 车牌检测识别功能实现
reset2021
博客等级 码龄5年 561粉丝 415原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

reset2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值