车牌识别数据集全流程实战:从CCPD到YOLO检测与LPRNet识别训练
简介这是一份面向车牌检测与识别任务的中国车牌图像数据集面向机器学习与深度学习研究者、算法开发人员用于模型训练与性能验证尤其适合智能交通、安防监控等场景。压缩包共包含5633个文件其中jpg格式车牌图像3368张txt与xml标注文件分别为1371个与893个txt通常存储车牌位置与字符标签xml则对应目标检测的边界框信息整体大小168.45MB目录按训练集、测试集、字符识别及附加数据等模块划分。训练部分含1200张不同角度、光照和位置场景的图像覆盖多种车型与复杂背景并提供了车牌边框和文字标注便于监督学习test_lp等测试部分含1000张独立样本可客观评估泛化能力train_ocr子目录针对单个字符进行细分训练wpod_data则可能提供车型等附加信息有助于提升识别的鲁棒性和上下文理解。目前已有2244人学习/下载这份结构清晰、标注完整的数据集能为从零搭建车牌识别系统或优化现有模型提供扎实基础。1. 中国车牌数据集到底缺什么多数人拿到的只是半套数据做车牌检测与识别项目时最卡人的往往不是模型结构而是数据。你在网上下到的所谓“中国车牌数据集”要么只有检测框标注要么只有整车图片和对应的车牌字符串极少有一份数据同时把检测和识别喂饱。实际工程里停车场道闸、移动巡检、违章抓拍这类场景最终要的是“先检测到车牌再把车牌号读出来”的一整条链路中间缺一环模型就落不了地。这篇笔记要解决的就是这个问题把散落的检测数据和识别数据理清楚、合并成一套再围绕它把训练和验证跑通。适合正在做智慧交通、停车管理或者车辆视觉项目的开发者也适合想自己整理数据集做实验的研究者。如果你也遇到过“检测准了但识别不准”或者“识别训练数据一堆、检测框全靠手标”的困境这套整理的思路和脚本可以直接抄。2. 检测数据和识别数据差在哪格式选型与目录规划先把概念理清。检测数据和识别数据是两种完全不同的标注形态检测数据回答“车牌在图像的哪个位置”标注是边界框识别数据回答“这个区域里的字符是什么”标注是一串文本。两者经常来自不同渠道检测数据常见于公开车辆检测集识别数据常见于车牌识别专项集直接混用会让训练流程乱套。2.1 检测标注三选一VOC XML、COCO JSON、YOLO txt检测数据的标注格式主流有三种。VOC格式是一张图一个XML文件标签可读性好但文件数量多、解析稍慢COCO格式是所有标注汇总成一个JSON训练大型数据集时方便但自己写可视化调试要绕一层YOLO格式是每张图一个txt每行记录类别id和归一化后的中心点坐标与宽高文件小、读取快是YOLO系列训练时最省事的格式。我一般会建议统一转成YOLO格式。理由不只是YOLO系模型生态成熟还在于后续从检测框裁剪识别图时txt的坐标可以直接换算成像素坐标少一次解析。VOC跟COCO作为中间格式保留一份即可训练检测模型时一律用YOLO txt。转换时参数注意两点一是坐标归一化必须除以图片实际宽高不能用固定尺寸二是类别id要跟data.yaml里的类别顺序一一对应。如果数据来源里混了“car”“plate”等多类别建议只保留车牌类别避免检测模型去学车辆框。2.2 识别数据的组织整图加文本与裁剪车牌加文本识别数据的组织方式也有两种流派。第一种是整图加文本一张道路图片配一个车牌号字符串模型需要在全图里自己定位并识别这种做法意味着识别模型承担了部分检测职责训练难度大且图片里出现多辆车时标签无法对应。第二种是预先裁剪好的车牌小图加文本每张图就是一个车牌特写模型只做字符序列识别训练简单、收敛快。实际落地时我倾向第二种。先让检测模型出框再把框内的图送进识别模型两个模型各管一段问题边界清晰排查故障也方便。裁剪图一般缩放到固定宽高比如24像素高、94像素宽对应蓝牌7个字符的常见比例。绿牌字符更多需要单独处理。2.3 统一目录一套文件夹同时喂给检测和识别整理数据的最终目标是一套目录结构能同时驱动两个训练流程。我的习惯如下datasets/ ccpd_yolo/ images/train/ images/val/ labels/train/ labels/val/ data.yaml ccpd_recog/ train/ 皖A12345.jpg ... val/ train.txt val.txtimages/ 放原图labels/ 放对应的 YOLO txt 标注recog 目录下按车牌号命名图片train.txt 里每行是“图片路径 标签文本”。目录规划看似小事但识别数据的文件名直接用来当标签时要注意文件名里不能有空格或特殊字符否则读取时会踩坑。这个目录结构同时也是后续做数据增强、难例挖掘和模型对比的统一底座。3. 从CCPD整理出检测和识别数据一套脚本打通CCPD是国内使用最广的车牌检测与识别公开数据集全称是Chinese City Parking Dataset采集自城市停车场景。它的标注信息藏在文件名里这一点让不少人翻车。整理CCPD时我一般会先写一个解析脚本把文件名拆开确认字段含义后再批量转换。3.1 CCPD文件名里藏着车牌号先拆字段CCPD的文件名长这样用短横线和下划线分隔成很多段其中夹着车牌粗略位置、四个角点坐标、车牌字符编码、亮度、模糊程度等信息。不同版本的字段顺序有差异直接套网上的解析代码容易出错。先写一段探查脚本import os import re def parse_ccpd_filename(filename): # 去掉扩展名按 - 切分主字段 base os.path.splitext(filename)[0] parts base.split(-) # 大部分版本第0段是编号和粗略框第1段是四个角点第2段是字符编号 print(主字段数量:, len(parts)) for idx, part in enumerate(parts[:6]): print(f第{idx}段: {part[:80]}) # 字符编号段按 _ 切分看格式 if len(parts) 4: char_part parts[4] # 需根据实际打印结果调整索引 print(字符编号:, char_part.split(_)) # 示例调用 sample 025-95_113-154383_386473-386473_177454_154383_363402-0_0_22_24_27_34_43_0_0-77-48.jpg parse_ccpd_filename(sample)代码逻辑是先按短横线把文件名切成主字段再把疑似字符编号的字段按底线切分打印出来人工确认。这里的关键是不要急着写完整解析先跑通探查确认你手里这个版本的字段索引。参数说明parts[4]这个索引是根据多数CCPD版本的经验值你的数据如果打印出来对不上改成实际索引即可。字符编号段里出现的数字需要对应到字符表CCPD的字符表顺序固定但映射字典要单独维护。3.2 生成YOLO检测标签和识别文本转换脚本确认字段含义后写转换脚本生成两份产物一份是YOLO格式的检测标签一份是识别训练用的文本标签。import os import cv2 CCPD_CHARS 0123456789ABCDEFGHJKLMNPQRSTUVWXYZ # 实际字符表需按数据集版本补全 def ccpd_to_yolo_and_recog(img_path, img_dir, label_dir, recog_dir): filename os.path.basename(img_path) base os.path.splitext(filename)[0] parts base.split(-) # 解析四个角点第1段格式: x1y1_x2y2_... corners_str parts[1].split(_) pts [] for corner in corners_str: x, y corner.split() pts.append((int(x), int(y))) # 由角点计算外接矩形 xs [p[0] for p in pts] ys [p[1] for p in pts] x_min, x_max min(xs), max(xs) y_min, y_max min(ys), max(ys) # 读图拿实际宽高 img cv2.imread(img_path) h, w img.shape[:2] # 归一化坐标写入YOLO标签 x_center ((x_min x_max) / 2) / w y_center ((y_min y_max) / 2) / h box_w (x_max - x_min) / w box_h (y_max - y_min) / h label_path os.path.join(label_dir, base .txt) with open(label_path, w) as f: f.write(f0 {x_center:.6f} {y_center:.6f} {box_w:.6f} {box_h:.6f}\n) # 解析字符编号段映射成车牌字符串 char_part parts[4] char_ids char_part.split(_) plate_text .join([CCPD_CHARS[int(i)] for i in char_ids if int(i) len(CCPD_CHARS)]) # 裁剪车牌图按标签名保存到识别目录 crop img[y_min:y_max, x_min:x_max] recog_path os.path.join(recog_dir, plate_text _ base .jpg) cv2.imwrite(recog_path, crop)这份脚本做三件事从角点算外接框并转YOLO标签、从字符编号映射出车牌字符串、按车牌字符串命名保存裁剪图。要注意裁剪坐标必须是整数且不能超出图像边界crop img[y_min:y_max, x_min:x_max]取的是左闭右开区间坐标算错一格不影响大局差太多就会黑边。参数说明CCPD_CHARS按数据集自带的字符表填不同版本字符顺序有差异直接抄网上的表可能翻车。裁剪图命名里加了原始文件名后缀是为了防止相同车牌在训练集和验证集出现时互相覆盖。如果你打算用LPRNet这类定长识别模型还需要把裁剪图缩放到统一尺寸。3.3 从检测标签一键裁出识别样本CCPD这种数据集本身就能同时给出检测框和车牌字符串但现实中你手头可能只有纯检测数据比如从BDD100或CrowdHuman这类数据集里筛出来的车辆图。这种情况下识别数据要从检测框裁剪得到脚本如下import os import cv2 def crop_from_yolo_txt(txt_path, img_dir, out_dir): base os.path.splitext(os.path.basename(txt_path))[0] img cv2.imread(os.path.join(img_dir, base .jpg)) h, w img.shape[:2] with open(txt_path, r) as f: lines f.readlines() for idx, line in enumerate(lines): parts line.strip().split() cls_id int(parts[0]) if cls_id ! 0: # 只裁车牌类 continue x_center, y_center float(parts[1]), float(parts[2]) box_w, box_h float(parts[3]), float(parts[4]) x_min int((x_center - box_w / 2) * w) y_min int((y_center - box_h / 2) * h) x_max int((x_center box_w / 2) * w) y_max int((y_center box_h / 2) * h) # 边界裁剪保护 x_min, y_min max(0, x_min), max(0, y_min) x_max, y_max min(w, x_max), min(h, y_max) crop img[y_min:y_max, x_min:x_max] # 写入outs目录命名用原始图名加框序号 cv2.imwrite(os.path.join(out_dir, f{base}_{idx}.jpg), crop)这里的逻辑是读取YOLO txt把归一化坐标反算成像素坐标然后裁图保存。注意边界保护那两行不能省否则检测框靠近图像边缘时数组切片会越界报错。参数说明cls_id ! 0对应data.yaml里的车牌类别如果你的类别顺序不是0就改掉。裁剪出的图暂时没有文本标签这类样本适合做检测模型的难例补充或者用人工标注的方式补车牌字符串后加入识别训练。4. 用整理好的数据训练检测和识别模型YOLOv8与LPRNet的最小流程数据整理到位后训练流程就顺了。检测侧我用YOLOv8把标准流程跑通识别侧给一个极简的定长识别训练骨架重点在于让整个链路能闭环模型性能高低另说。4.1 检测训练写data.yaml并跑通命令先创建data.yamlpath: datasets/ccpd_yolo train: images/train val: images/val nc: 1 names: 0: plate这个配置告诉ultralytics框架数据集根路径、训练集和验证集路径以及类别信息。路径建议写相对路径换机器不用改配置。然后执行训练yolo detect train datadatasets/ccpd_yolo/data.yaml modelyolov8n.pt epochs100 imgsz640 batch64 device0参数说明yolov8n.pt是最轻量的预训练权重先拿它验证数据有没有问题跑通后再换yolov8s.pt或yolov8m.pt提精度。imgsz640是常见输入尺寸车牌是小目标如果原图分辨率高且显存够可以试imgsz1280检测小车牌会有明显收益。batch64要看显存调整显存不足时降到32或16。验证一下训练是否正常yolo detect val datadatasets/ccpd_yolo/data.yaml modelruns/detect/train/weights/best.pt这里要盯两个指标mAP50和mAP50-95。车牌检测任务只要mAP50高就说明框定位没问题mAP50-95不高不用太焦虑很多车牌数据集的标注框本身就不精细。4.2 识别训练从检测框裁图并训练一个极简车牌识别网络识别模型我不展开讲复杂的LPRNet给一个能跑通的极简定长识别骨架字符集按蓝牌7位设计。import torch import torch.nn as nn class SimplePlateNet(nn.Module): def __init__(self, num_classes65, max_len7): super().__init__() self.cnn nn.Sequential( nn.Conv2d(3, 32, 3, padding1), nn.ReLU(), nn.MaxPool2d(2), # 输入(3,24,94) - (32,12,47) nn.Conv2d(32, 64, 3, padding1), nn.ReLU(), nn.MaxPool2d(2), # (64,6,23) nn.Conv2d(64, 128, 3, padding1), nn.ReLU(), nn.MaxPool2d(2), # (128,3,11) ) self.fc nn.Linear(128 * 3 * 11, num_classes * max_len) def forward(self, x): x self.cnn(x) x x.view(x.size(0), -1) x self.fc(x) return x.view(x.size(0), 7, -1) # 每个位置单独分类 # 输入尺寸: batch, 3, 24, 94 # 输出: batch, 7, num_classes这个网络是一个简化的定长车牌识别模型输出层每个位置做一个分类7个位置对应蓝牌的7个字符。字符集的编码包括省份简称、字母和数字注意不要和检测部分的类别id搞混识别字符集的索引顺序要单独维护。参数说明num_classes65只是个示例值真实字符集要按你的数据统计。输入尺寸24像素高、94像素宽是蓝牌比例的近似值绿牌8位字符需要另算宽度。训练时损失函数用CrossEntropyLoss即可需要把标签转成长度为7的字符索引序列。实际训练时我更建议用LPRNet或CRNN这类不定长识别网络配合CTC损失能同时处理7位蓝牌和8位绿牌。定长模型只是用于快速验证数据质量不适合直接上线。4.3 用检测模型做数据闭环检测和识别都训练完可以组装一个最小闭环检测模型从测试图出框识别模型读框内内容。这个闭环的价值在于能快速暴露数据集的问题比如检测框偏移、识别字符集缺失等。from ultralytics import YOLO import cv2 det_model YOLO(runs/detect/train/weights/best.pt) # 这里假设你已经加载了训练好的识别模型 # recog_model load_plate_net(plate_net.pth) img cv2.imread(test.jpg) results det_model(img)[0] for box in results.boxes.xyxy.cpu().numpy(): x1, y1, x2, y2 [int(v) for v in box] crop img[y1:y2, x1:x2] # 缩放到识别模型输入尺寸 crop cv2.resize(crop, (94, 24)) # plate_text recog_model(crop) # print(plate_text)逻辑说明检测模型输出一批矩形框按坐标裁剪后缩放再送入识别模型。这段代码里的识别模型加载部分我留了注释因为每个人的识别模型接口不一样用自己的加载函数替换即可。需要注意裁剪时不要直接resize车牌本身是倾斜的resize会把字符压变形。工程上会先做透视矫正把四边形车牌拉正再缩放这一步对识别准确率影响很大。5. 车牌数据集整理的5个常见坑现象、原因和处理数据整理看起来就是写脚本、跑命令但实际翻车点比模型调参还多。下面这几条我都在项目里踩过按“现象、原因、解决”写清楚照表排查能省半天时间。5.1 文件名解析错位标签跑到别人车牌上现象训练时loss能下降但验证时检测框和车牌内容对不上很多框落在了车灯、车标上。原因是CCPD文件名按短横线和下划线混合分隔不同子集版本字段顺序有调整网上模板直接套用导致把车牌字符段和角点段解析反了。解决方法是先用探查脚本打印前20个文件名的字段肉眼比对字段含义确认索引后再批量转换。这个坑的根因是“想省事直接抄解析代码”多花三分钟探查比事后排错划算。5.2 绿牌黄牌长度不一致模型loss不降现象训练loss下降正常但识别结果要么多字要么少字绿牌车经常识别成7位多出1位。原因是训练数据里蓝牌7位、绿牌8位混在一起定长识别模型无法处理变长输入。解决方法是识别网络改用CTC不定长解码或者在数据管道里按车牌类型分组蓝牌绿牌分别训练两个识别模型。按车牌类型分组的方式更简单实测稳定度也更高。5.3 矩形框扛不住倾斜车牌裁剪图全歪现象检测模型的mAP50很高但识别模型在真实场景里准确率骤降裁出来的车牌图角度偏转严重。原因是很多停车场的拍摄角度大车牌在画面里是平行四边形甚至梯形外接矩形框包含了大量背景同时字符本身被压缩变形。解决方法是检测阶段用带角度的旋转框标注或者识别前做透视矫正。旋转检测可以看MMRotate训练DOTA数据集的做法但工程上更轻量的方案是四个角点做透视变换把车牌拉成正视角再送识别模型。5.4 字符类别长尾生僻省份简称识别率崩现象整体识别准确率95%以上但某些省份简称和特殊车牌字符单独统计时准确率不到60%。原因是公开数据集里省份分布极不均匀京津冀粤这类车牌占比高而小省份样本极少模型学不好长尾类别。解决方法是做字符级类别均衡采样把数量少的字符在训练时提高采样权重也可以用合成车牌做数据增强把稀缺字符贴到不同背景上。合成数据生成时的注意事项是字符字体、间距和透视变换要贴合真实车牌否则模型学到的特征用不到真实场景。5.5 图片下载不完整训练到一半崩现象数据加载阶段偶尔报错提示解码失败重新下载后正常。原因是公开数据集通过网盘或压缩包分发传输过程丢包或文件损坏图片本身没问题但解码库读不出来。解决方法是训练前跑一遍全量校验用OpenCV逐张尝试imread失败的文件记录到文本并删除或重新下载。import os import cv2 from tqdm import tqdm img_dir datasets/ccpd_yolo/images/train bad_files [] for fname in tqdm(os.listdir(img_dir)): path os.path.join(img_dir, fname) img cv2.imread(path) if img is None: bad_files.append(path) print(损坏图片数量:, len(bad_files)) with open(bad_images.txt, w) as f: f.write(\n.join(bad_files))逻辑说明这段代码遍历全部图片用OpenCV尝试解码解码失败说明文件损坏把路径写入文本文件。参数说明tqdm只是进度条工具可以去掉如果损坏文件数量较多优先检查是不是下载工具断点续传导致重新下载不要只补下载坏的那几个文件因为压缩包内文件完整性依赖压缩包本身的校验和。6. 端到端验证与自扩展让这套数据真正跑起来数据整理和训练跑通只是第一步真正能用的标准是拿一段真实视频或一批没见过的图片端到端走一遍看哪个环节掉链子。我建议先做一个批量验证脚本输入一个目录的图片输出每张图的车牌框和识别文本然后人工抽查100张统计三个指标检测召回率、识别字符准确率、端到端准确率。检测召回率看的是车牌有没有被框出来识别字符准确率看的是单个字符对不对端到端准确率要求整串车牌完全匹配。这三个指标分开统计能快速定位瓶颈在检测还是识别。自扩展是我认为最有价值的技巧。拿训练好的检测模型去跑一批没标注的图片高置信度的检测结果人工复核后可以直接加入训练集这个过程叫伪标注。伪标注有个前提条件检测模型在目标场景上必须有足够高的召回率否则会把漏检的样本也当成负样本写进数据集越扩越歪。我的习惯是第一轮只采置信度0.9以上的框人工确认数量占20%就行确认后加入数据再训练一轮第二轮扩到0.8如此迭代。另一个实用技巧是区分场景扩数据。公开数据集大多是白天、晴天、正向视角夜间和逆光场景几乎是盲区。CCPD里有亮度字段可以按亮度值把数据分层低亮度样本单独挑出来做验证集如果检测模型在低亮度集上的指标掉得厉害就说明该补充夜间数据了。这个习惯帮我避免过很多次“训练指标好看、上车就翻车”的情况。最后如果你的数据源里有多个数据集拼接的情况比如CCPD加自采数据记得训练前统一做一次格式和分布检查。我自己的习惯是先用t-SNE看图像特征分布发现某个数据源的图片聚集在一起、跟其他数据明显分离时就把这个数据源的标注抽样核查一遍往往是格式细节不一致导致的。这个方向值不值得做我的判断是值得但别指望一份数据通吃所有场景。先整理出干净的最小数据集把检测和识别的闭环跑通再按场景迭代补充数据这条路比一开始堆几百G数据要扎实得多。希望这些踩坑经验帮到你。本文还有配套的精品资源点击获取

相关新闻

大模型上下文窗口溢出怎么办?5种上下文淘汰策略生产实践

大模型上下文窗口溢出怎么办?5种上下文淘汰策略生产实践

1. 上下文窗口告急:一个被低估的生产事故源头做过大模型应用的人大概率都遇到过这个场景:用户跟机器人聊了四五十轮,突然某一次请求直接返回一个 400 错误,日志里赫然写着context_length_exceeded或者maximum context length is 1…

2026/10/11 7:10:39 阅读更多 →
小白程序员国庆假期弯道超车,学会用AI(附5步实操)

小白程序员国庆假期弯道超车,学会用AI(附5步实操)

本文旨在帮助初学者快速掌握AI工具的使用。文章首先介绍了AI的概念及其局限性,进而引出Agent的概念,强调其能自动化执行任务的能力。接着,文章详细介绍了如何使用桌面版Agent,并提供了多个国内外优秀工具的选择建议。此外&#xf…

2026/10/11 7:10:39 阅读更多 →
国产化便携式加固终端选型|加固平板、手持终端产品谱系解析

国产化便携式加固终端选型|加固平板、手持终端产品谱系解析

在外场复杂工况作业场景,移动作业终端经常需要面对宽温、振动、粉尘、淋雨等严苛环境,同时项目普遍对硬件自主可控、国产操作系统适配提出明确要求。很多研发与采购人员在项目前期选型时,很难快速区分加固平板、手持终端不同硬件基线的适用边…

2026/10/11 7:10:39 阅读更多 →

最新新闻

新浪Level2接口SDK接入实战:授权、协议解析与避坑指南

新浪Level2接口SDK接入实战:授权、协议解析与避坑指南

简介:新浪Level2接口SDK是一份面向量化开发与行情分析人员的Java工程,用于对接新浪Level2全推行情,获取股票、基金等品种的深度交易数据。相比普通免费接口,Level2数据在速度与深度上更适合机构级策略,适合有一定Java基…

2026/10/11 22:50:35 阅读更多 →
一个 Key 调用所有模型:2026 四大聚合平台价格、生态与稳定性横评

一个 Key 调用所有模型:2026 四大聚合平台价格、生态与稳定性横评

大模型 API 聚合平台的核心价值一句话就能说清:一个 Key 接入多家大模型,统一计费与访问管理,把供应商切换成本降到最低。市面上的主流玩家分三类——国际商业聚合、国内商业聚合、自托管开源方案,路线不同,取舍也不同…

2026/10/11 22:50:35 阅读更多 →
HOP上游升级SOP:pnpm upstream:update一键同步rhwp并全链路验证的完整流程

HOP上游升级SOP:pnpm upstream:update一键同步rhwp并全链路验证的完整流程

【免费下载链接】hop 项目地址: https://gitcode.com/gh_mirrors/hop22/hop 点击查看 免费下载 HOP 是一款开源的 HWP/HWPX 文档编辑器,桌面外壳由 HOP 团队维护,而文档解析与渲染引擎来自上游项目 rhwp。如何安全地跟随上游版本前进&#x…

2026/10/11 22:50:35 阅读更多 →
Android游戏逆向重构实战:从植物大战僵尸源码2到可运行工程

Android游戏逆向重构实战:从植物大战僵尸源码2到可运行工程

简介:本资源为《植物大战僵尸》Android平台开源实现的完整工程源码,面向Android游戏开发初学者与进阶者,聚焦塔防类游戏架构设计、图形渲染与状态管理等核心实践。压缩包共173个文件,含20个Java源文件(涵盖GameScene、…

2026/10/11 22:50:35 阅读更多 →
基于线性回归的PM2.5预测系统Python源码实战解析

基于线性回归的PM2.5预测系统Python源码实战解析

简介:基于线性回归的PM2.5预测系统源码,是一套面向Python学习者、机器学习入门者及大气环境数据分析场景的小型完整项目。代码以单文件Python脚本承载数据读取、特征构造、模型训练与结果预测等关键流程,配套原始训练/测试CSV表、处理后的特征…

2026/10/11 22:50:35 阅读更多 →
PgQue 监控实战:5 个必须告警的队列健康指标 + 如何揪出卡住的消费者

PgQue 监控实战:5 个必须告警的队列健康指标 + 如何揪出卡住的消费者

【免费下载链接】PgQue PgQue – Zero-bloat Postgres queue built on top of on battle-proven Skypes PgQ. One SQL file to install, pg_cron to tick https://pgque.dev 项目地址: https://gitcode.com/gh_mirrors/pg/PgQue 点击查看 免费下载 PgQue 是一个零膨…

2026/10/11 22:49:35 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →