集装箱缺陷检测:VOC转YOLO格式与训练调参实战
简介面向集装箱表面缺陷检测任务的目标检测训练数据集围绕Dent、Hole、Rust三类缺陷整理覆盖4127张集装箱图像。压缩包共2000个文件以xml标注文件为主1999个另含txt说明文件整体约163.61MBxml为VOC格式可用于标准目标检测流程txt作为使用说明方便快速了解数据组织。标注由labelImg完成采用矩形框方式总计10117个标注框其中Dent 4943、Hole 1218、Rust 3956类别分布清晰适合作为YOLO、Faster R-CNN等模型的训练输入。资源不承诺模型精度但标注准确合理能帮助研究者省去手动标注时间直接聚焦于模型调优与缺陷识别算法验证。目前已有348人学习/下载适合计算机视觉方向的学生、算法工程师用于集装箱外观质检相关项目。1. 集装箱缺陷检测数据集4127张VOCYOLO图能训出可用的模型吗集装箱港口堆场和修箱厂里箱体表面检测是刚需裂纹、锈蚀、凹痕一张箱壁照片里可能同时存在好几处缺陷。这个数据集的核心资产是4127张集装箱表面图片带3个类别的缺陷框标签并且同时提供了Pascal VOC和YOLO两种格式。对检测工程师来说拿到手最直接的价值是省掉了标注环节——工业场景标一张图平均几分钟4127张全手工画框是相当磨人的事。适合谁一类是做港机自动化巡检、修箱质检的视觉工程师另一类是刚学YOLO、想用真实工业数据而非玩具数据集练手的人。需要提前说明的是这类工业数据集的价值往往不在于数量大而在于背景是真实的集装箱表面纹理与光照训出来的模型不会只在公开示例图上有效。2. 数据集结构拆解VOC的XML和YOLO的txt差在哪2.1 4127张图、3个类别先盘清集装箱数据集的家底解压后通常能看到两类标签VOC格式每张图对应一个XML文件YOLO格式每张图对应一个txt文件图片本体放在另一个文件夹里。拿到数据后建议先别急着训练第一件事是统计每个类别的框数。集装箱场景里裂纹这类缺陷往往一图多框、框很小且细长锈蚀则可能是一大片区域框比较大。如果某个类别的框数只有几十个训练前就得想好类别不平衡的应对策略而不是指望模型自己学会。用Python快速统计一下from pathlib import Path import xml.etree.ElementTree as ET xml_dir Path(labels_voc) # VOC 标签目录按实际路径改 classes [crack, rust, dent] # 按数据里实际的 3 个类别名替换 counts {c: 0 for c in classes} images_with_box 0 for xml_file in xml_dir.glob(*.xml): root ET.parse(xml_file).getroot() has_box False for obj in root.findall(object): name obj.find(name).text if name in counts: counts[name] 1 has_box True if has_box: images_with_box 1 print(counts, 带框图片数:, images_with_box)这段脚本遍历VOC的XML统计每个类别的目标框数量和“带框图片数”。它只依赖Python标准库的xml.etree.ElementTree不用装任何第三方包。注意vt_path要用真实路径classes的顺序目前只用于计数但如果你后面写转换脚本这个顺序必须和训练配置保持一致。除了框数我一般还会顺手打印所有框的宽度和高度分布。如果绝大多数框都小于图像宽高的10%就可以判断这是一个典型的小目标数据集后面的imgsz和mosaic参数都得按小目标场景来调。这一步对整个训练配置的决策影响很大不要跳过。2.2 VOC格式每张图一个XML坐标是像素单位VOC格式准确说是Pascal VOC标注格式是目标检测圈最常见的交换格式之一。它的组织形式是图片和同名XML一一对应XML的可读性非常好用文本编辑器打开就能看到每个目标框的像素坐标。核心字段是三条size节点里的width和height给出图像原始宽高object节点里的name是类别名bndbox节点里的xmin/ymin/xmax/ymax是目标框的像素坐标原点在图片左上角、x向右增大、y向下增大。一个简化XML示例annotation size width1280/width height720/height /size object namecrack/name bndbox xmin302/xmin ymin88/ymin xmax509/xmax ymax214/ymax /bndbox /object /annotation看到bndbox的4个数值后可以直观感受到VOC格式的优缺点。优点是人能直接看懂标注工具比如常见的labelImg存出来的就是这种结构很多公开数据集也用它做交换格式。缺点是文件冗余大一个框要写六七行标签文本更麻烦的是像素坐标不随图像缩放自动变化图片一旦resize坐标就必须重算否则框就和内容错位。这也是很多人在训练阶段碰到“框和物体对不上”的隐藏来源。2.3 YOLO格式归一化坐标为什么更适合直接训练YOLO格式则走另一个极端每张图对应的txt只有几行每行一个目标类别id、中心点x、中心点y、宽度w、高度h4个坐标值全部按图像宽高归一化到0到1之间。归一化的好处是图像分辨率变了框的数值不用跟着变——训练时YOLO会把图缩放到固定尺寸归一化框直接复用即可。VOC和YOLO的差异做一张表更清楚对比维度VOC / XMLYOLO / txt坐标基准像素绝对坐标相对图像的归一化坐标框的表示xmin/ymin/xmax/ymaxcls x_center y_center width height单位像素01的小数可读性人读友好人读费劲机器加载快主要用途标注工具输出、数据集交换YOLO系模型直接加载还有一个在踩坑时经常被忽略的点YOLO格式里的类别是数字id具体含义完全由类别顺序决定。如果转换时不小心把类别顺序搞错模型照样能训练但预测出来的标签对不上缺陷真实含义。正因为这个原因我习惯把类别顺序固化在一个classes.txt里转换脚本和训练配置同时引用它而不是各写一份。3. 把VOC转成YOLO格式解析脚本与三个边界坑3.1 转换脚本从XML里读出bndbox并换算成归一化中心点如果后续又把新标注的VOC数据并入训练集或者想验证数据提供的YOLO标签是否准确自己写一遍转换脚本是最稳的。核心步骤就四步解析XML、取图像宽高、计算中心点与宽高的归一化值、写入txt。import os import glob import xml.etree.ElementTree as ET from pathlib import Path def voc2yolo(xml_path, out_dir, classes): tree ET.parse(xml_path) root tree.getroot() size root.find(size) W float(size.find(width).text) H float(size.find(height).text) # 防御性检查width/height 缺失或为 0 时直接跳过 if W 0 or H 0: return 0 lines [] for obj in root.findall(object): name obj.find(name).text if name not in classes: continue cls_id classes.index(name) box obj.find(bndbox) xmin float(box.find(xmin).text) ymin float(box.find(ymin).text) xmax float(box.find(xmax).text) ymax float(box.find(ymax).text) x_center (xmin xmax) / 2 / W y_center (ymin ymax) / 2 / H bw (xmax - xmin) / W bh (ymax - ymin) / H lines.append(f{cls_id} {x_center:.6f} {y_center:.6f} {bw:.6f} {bh:.6f}) with open(Path(out_dir) / (Path(xml_path).stem .txt), w) as f: f.write(\n.join(lines)) return len(lines) # 调用示例转换某个目录下所有 XML xml_dir labels_voc out_dir labels_yolo os.makedirs(out_dir, exist_okTrue) for xml_path in sorted(glob.glob(xml_dir /*.xml)): n voc2yolo(xml_path, out_dir, classes)逻辑说明ET.parse加载XML文件root.findall(object)拿到所有目标框size里的width和height是归一化的分母一旦缺失或填0会直接除零所以脚本里做了一次防御bndbox的4个值统一转float再计算避免个别标注里写了小数被int截断。输出时用6位小数对YOLO训练来说精度足够文件也干净。参数说明xml_dir是VOC标签目录out_dir是转换后的txt输出目录classes决定类别名到数字id的映射顺序一旦定下就不要改。如果返回的条数是0说明该XML里没有有效目标要返回去检查原始文件而不是直接忽略。3.2 边界坑一和二坐标越界与空标注、类名缺失这两个坑在半自动标注数据里很常见。坑一XML里的xmax大于图片宽度或者ymax大于图片高度。原因多来自标注工具边界吸附失效、或图像预处理阶段resize后没同步坐标。直接换算的话训练时YOLO会解析出超出边界的框轻则警告重则该目标被忽略。坑二XML中存在空object节点或类别名不在classes里。空节点会让text取值None然后报错类别名拼写不一致则会把该框静默丢掉。所以脚本里用continue跳过并在最后打印统计方便确认不是大面积漏标。def clip_box(xmin, ymin, xmax, ymax, W, H): xmin max(0, min(xmin, W)) xmax max(0, min(xmax, W)) ymin max(0, min(ymin, H)) ymax max(0, min(ymax, H)) return xmin, ymin, xmax, ymax skipped 0 for obj in root.findall(object): name obj.find(name).text if name not in classes: skipped 1 continue cls_id classes.index(name) box obj.find(bndbox) xmin float(box.find(xmin).text) ymin float(box.find(ymin).text) xmax float(box.find(xmax).text) ymax float(box.find(ymax).text) xmin, ymin, xmax, ymax clip_box(xmin, ymin, xmax, ymax, W, H) if xmax - xmin 0 or ymax - ymin 0: skipped 1 continue # 再算归一化并写入 txtclip的操作很简单把xmin和xmax固定在0到W之间把ymin和ymax固定在0到H之间。注意clip要在计算中心点之前做完不要让宽高算出来是负数。最后统计skipped如果跳过数很大说明标注质量有问题要回去检查原始XML而不是硬着头皮训练。3.3 边界坑三与校验类别顺序错乱先画框再训练坑三是前面提到过的类别顺序错乱它不报错但会导致训练标签张冠李戴属于最阴的一类问题。如果你的原始VOC里类别出现顺序是crack、dent、rust而你习惯里是crack、rust、dent转换脚本里classes顺序一旦写错模型学到的id-语义对应就全歪了。防法只有一个把classes写进单独文件转换和训练配置读取同一个文件从根本上消除“两处不一致”。转换完还要不要直接训建议先抽几张图做画框校验。这一步看着多此一举实际能拦掉相当大比例的“训练半天mAP0”属于过来人的血泪经验。import cv2 img cv2.imread(sample.jpg) h, w img.shape[:2] with open(sample.txt) as f: for line in f.readlines(): parts line.strip().split() if len(parts) ! 5: continue cls_id, xc, yc, bw, bh map(float, parts) x1 int((xc - bw / 2) * w) y1 int((yc - bh / 2) * h) x2 int((xc bw / 2) * w) y2 int((yc bh / 2) * h) cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.putText(img, fid:{int(cls_id)}, (x1, max(0, y1 - 10)), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2) cv2.imwrite(check_result.jpg, img)画框时最需要注意的是坐标还原方向YOLO txt里存的是中心点和宽高还原是先算出左上角和右下角再画矩形很多人在这一步漏了乘回w和h画出框来只有一个小点。同时要在每个框左上角顺手标上类别数字扫一眼就能发现“类别错乱”和“坐标偏移”这两类问题。4. 用YOLO在集装箱缺陷集上训练最小命令与必调参数4.1 目录组织与dataset.yaml一份能直接跑起来的配置数据准备好接下来就是目录组织和训练配置。我习惯把图片和标签按train/val分层放好这样yaml写起来最省事也最不容易把标签路径写错。目录结构如下container_defect/ ├── images/ │ ├── train/*.jpg │ └── val/*.jpg ├── labels/ │ ├── train/*.txt │ └── val/*.txt └── container_defect.yamldataset.yaml内容# 放在 container_defect 目录下 path: /data/container_defect # 绝对路径换机器后只需改这里 train: images/train val: images/val names: 0: crack # 按数据里的实际类别名替换 1: rust 2: dentyaml里的path建议写绝对路径相对路径换机器后经常因为工作目录不同而失效train和val只写相对path的子目录名即可YOLO会自动去找labels里对应的同名txt。names的排序编号就是这一批数据的类别定义务必和第3章转换脚本里的classes保持一致这是整条链路里最常见也最关键的衔接点。训练命令cd /data/container_defect yolo detect train \ datacontainer_defect.yaml \ modelyolov8m.pt \ imgsz1280 \ batch8 \ epochs200 \ device0命令里在同类配置中选yolov8m.pt而不是s或l有我的考量集装箱缺陷中的裂纹是典型小目标s模型的浅层特征不足以分辨细长纹理l模型在这种4127张规模的数据集上又更容易过拟合。m是精度和显存占用的平衡点。如果只有8G显存把imgsz降到960、batch降到4到6优先保imgsz因为对小目标来说分辨率比batch更重要。4.2 必调参数imgsz、mosaic、epochs在工业小目标上的选择训练集中小目标占多数时四个参数最值得手动调。参数建议值理由imgsz1280640下裂纹可能只有十几个像素下采样后基本消失1280能让检测头看到细节batch按显存424太小收敛波动大太大会OOMepochs150200工业小数据集收敛慢100轮经常还没到Loss平台期mosaic0.30.5缺陷是局部小纹理mosaic过重会把目标切碎甚至整段消失workers48数据加载瓶颈会让GPU空转这个参数常被忽略尤其mosaic这个增强YOLOv8默认值是1.0在通用检测里效果显著但在这种小缺陷场景下副作用很明显裂纹被拦腰截断后模型见过太多“半截裂纹”的样本推理时反而对完整裂纹犹豫。我会先把mosaic降到0.5或者直接关掉跑一轮对比通常召回能涨几个点。另一个值得做的是用预训练权重。yolov8m.pt在COCO上预训练过拿来当起点复用它的底层纹理特征而不是从零初始化收敛速度和最终精度都会更好这也是迁移学习在这类小数据集上最实用的一步。4.3 从Loss曲线判断训练健不健康box/cls/dfl各自代表什么训练启动后盯终端里每轮打印的指标比盯总Loss有用。YOLOv8的Loss由三部分组成box_loss是边界框回归误差负责框得准不准cls_loss是分类误差负责类别判得对不对dfl_loss是分布焦点损失负责框的精细回归尤其影响小目标的定位精度。三个都下降且验证集对应指标同步下降才说明训练在往对的方向走。一个新手常犯的误区是只看train Loss下降就放心。train Loss下降但val mAP纹丝不动多半是标签路径写错、验证集图片带中文路径导致加载失败或者类别id越界这些都不会在Loss上表现出明显异常只有在验证集指标上现形。我一般同时看val_box_loss和mAP50两个关键曲线val_box_loss先降后升是过拟合信号mAP50在某个epoch后大幅上涨又跌回属于优化过程波动大这时先降学习率再看。5. 常见问题与排查四条能救回一个训练周期的踩坑记录5.1 现象一训练Loss下降但mAP一直是0现象终端里Loss曲线正常下降打印出来的验证集mAP却始终是0。原因基本在数据链路而不是模型dataset.yaml里的train/val写的是图片路径YOLO会按图片路径去解析同名txt的labels路径如果你的labels目录不在和images同级的正确位置训练全程都在用空标签做负样本Loss当然照常下降——它只是在学“这里没有目标”。解决先确认images/train和labels/train在同一个父目录下目录名都叫train再任意选一张val图打印它对应的txt内容检查class_id是否在02范围内、坐标值是否在01之间。这两项都正常再重训。5.2 现象二转换后的框比实际缺陷大一圈现象画框校验时发现有些框明显框大了框住的不只是裂纹本身还带着一大块正常箱壁。原因转换时用了XML里size节点的宽高而实际图片在采集后又被重新保存成了不同尺寸或者XML里有越界坐标但没做clip换算出来的宽度超过了真实边界。解决转换前用cv2.imread读一次真实图片宽高以真实尺寸为分母同时加上clip把所有坐标约束在图片范围内。改完转换脚本后抽10张图重新画框对比修正前后的差异。这个小检查半小时能做完能避免整个训练周期白跑。5.3 现象三裂纹细长小目标反复漏检现象训练完在验证集上看中等尺寸的锈蚀和凹痕都能检出唯独裂纹漏得厉害就算降低conf阈值也只能找回一小部分。原因有两个一个在分辨率imgsz640时很细的裂纹下采样后可能只剩下几个像素特征图上的响应被背景淹没另一个在数据增强mosaic把裂纹切成两半拼到不同图里模型学不到“裂纹是一条连续线”这个关键模式。解决把imgsz提到1280mosaic降到0.3或关闭先跑一轮对比验证。如果还漏再看是不是类别框数太少导致的正样本不足这时可以给裂纹类做简单过采样从训练集里把含裂纹的图复制一份复制时做小幅平移或旋转扩充样本量。不要一上来就换backbone或加注意力数据策略上的调整见效最快、也最可控。5.4 现象四验证集mAP不错现场误报成堆现象验证集上mAP50有0.8以上一拿到修箱厂实拍图上跑把油污、锈迹背景、钢索虚影都框了出来误报多到没法用。原因训练集里的照片拍摄条件太单一光照、角度、箱体颜色都接近模型把集装箱背景和缺陷一起记住了现场的光照分布和背景纹理漂移分布gap直接被误报放大出来。解决这属于数据分布问题调参只能缓解。先把现场误报图收集成bad case半自动人工补几百张并入训练集同时打开训练时的色彩扰动参数hsv_h、hsv_s、hsv_v让模型不要死记颜色。另一个辅助手段是降低mosaic并提高mixup让背景混合一下减轻对特定背景的过拟合。记住一个边界mAP高只代表在测试分布上表现好不代表在新分布上能用现场验证永远是最后一关。6. 验证模型能不能上线从坏例分析到阈值决策模型训练完先别急着谈上线。第一步我会把best.pt在验证集上完整推理一遍把预测结果保存成JSON然后分两类统计一类是模型预测了框但标注里没有误报另一类是标注里面有框但模型没预测出来漏报。分别取数量最多的10张图人工看一眼你会发现这些bad case基本能归成三种原因标注漏标Ground Truth本身少了框、模型没学会同一类缺陷在某种角度下全漏、类别混淆裂纹被标成锈蚀。看清楚了原因才好做阈值决策。修箱厂质检场景漏一次可能放过一个坏箱我倾向把conf降到0.10.15宁可多给几个候选框让复核环节处理堆场巡检每天过上万张图误报刷屏会让操作员直接关掉系统这时conf提到0.4以上更合理。NMS的iou阈值在0.50.7之间试一轮重点看同一缺陷是不是被重复框成多个。阈值定好后如果模型要达到生产环境的帧率要求一般还要导出推理格式。我习惯先导出ONNX在本地核对一遍精度再交付yolo export modelbest.pt formatonnx imgsz1280导出后用同一批验证图对比PyTorch和ONNX的推理结果框数和坐标差异应该在可接受范围内。我以前最常犯的错是mAP一高就收工结果模型上了现场被油污背景的误报打得抬不起头。后来给自己定了一条规矩验收标准不是mAP而是坏例分析里误报和漏报的性质与比例。先把这条跑通再谈上线不迟。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

央广网都报道了:快手 StreamLake「三位一体」产品矩阵,AI 编程进入生态战下半场

央广网都报道了:快手 StreamLake「三位一体」产品矩阵,AI 编程进入生态战下半场

央广网都报道了:快手 StreamLake「三位一体」产品矩阵,AI 编程进入生态战下半场 【免费下载链接】KAT-Coder-V2.5-Dev 项目地址: https://ai.gitcode.com/hf_mirrors/Kwaipilot/KAT-Coder-V2.5-Dev 当一家视频平台把 AI 编程当成战略级赛道来打&…

2026/10/10 23:42:15 阅读更多 →
Go语言文件目录操作核心技巧与WEB3.0应用实战

Go语言文件目录操作核心技巧与WEB3.0应用实战

上周有个打算从传统后端转行 WEB3.0 的读者私信我,说听了一堆入门攻略,又是智能合约又是共识算法,结果连本地工程都跑不起来。我问他一上午卡在哪,他说在 Go 里读一个配置文件就折腾半天。这我太有体会了——WEB3.0 项目里大量工具…

2026/10/10 23:41:14 阅读更多 →
PyOpenCL + Tkinter 实现 GPU 并行渲染:幻影小球动画全解析

PyOpenCL + Tkinter 实现 GPU 并行渲染:幻影小球动画全解析

我们写代码写了这么多年,大部分时间都在跟 CPU 打交道。数据从内存读到寄存器,指令一条条执行,一切都可预测、按部就班。直到我第一次在 OpenCL 里写了一个像素级渲染的 Kernel,看到 GPU 里上千个工作项同一时刻并行狂奔&#xff…

2026/10/10 23:41:14 阅读更多 →

最新新闻

太阳能电池板YOLO高变焦检测:24577张数据集训练实战

太阳能电池板YOLO高变焦检测:24577张数据集训练实战

简介:面向太阳能光伏板检测与YOLO模型训练的实际需求,这份压缩包针对高变焦太阳能电池板图像场景,提供了带有标签的光伏板检测标注数据集,能帮助开发者和研究人员快速获得规范标注样本,降低从图像采集、清洗到标注的重…

2026/10/11 0:31:53 阅读更多 →
GANMaster人脸矫正实战:从模糊脸到公安标准证件照

GANMaster人脸矫正实战:从模糊脸到公安标准证件照

简介:本资源是一份面向深度学习初学者与计算机视觉实践者的GAN人脸生成与矫正实战教程,聚焦生成对抗网络原理落地与Python代码实现。资源包含4个核心文件(2个Python脚本、1份Markdown说明文档、1份LICENSE),总大小仅9K…

2026/10/11 0:31:53 阅读更多 →
FCOM参考PDF解析:从性能表到插值函数的工程化指南

FCOM参考PDF解析:从性能表到插值函数的工程化指南

简介:这是一份面向飞行机组、飞行学员及航空爱好者的FCOM(飞行操作手册)参考指南,聚焦B737机型日常运行中的关键操作程序与处置规范。内容涉及驾驶舱区域分工、起降标准动作、着陆后刹车冷却表查算、放行与天气及杰普逊资料认读、…

2026/10/11 0:31:52 阅读更多 →
Spring Boot实战:智慧养老院管理系统的架构设计与权限控制

Spring Boot实战:智慧养老院管理系统的架构设计与权限控制

从需求到落地:我如何用Spring Boot搭起一套智慧养老院管理系统去年年初接手了一个养老院管理系统的开发任务,机构那边的情况比较典型:三百多张床位,护理人员几十号人,老人的健康档案还停留在纸质登记,家属想…

2026/10/11 0:31:52 阅读更多 →
端侧AI导览实战:鸿蒙+蓝耘MaaS的离线多模态落地

端侧AI导览实战:鸿蒙+蓝耘MaaS的离线多模态落地

1. 项目概述:这不是一个App,而是一次端侧AI能力的现场压力测试“鸿蒙AI:国庆我在故宫用了把‘AI 导游’”——这个标题里藏着三个被大众忽略但极其关键的信号:时间(国庆)、空间(故宫&#xff09…

2026/10/11 0:31:52 阅读更多 →
PLC动态加密功能块实战:S7-1200/1500程序防复制与授权管理

PLC动态加密功能块实战:S7-1200/1500程序防复制与授权管理

干自动化这些年,最扎心的场景不是现场调试到凌晨,而是设备刚交出去半年,就发现客户厂里多了一台和你做的设备一模一样的机器,运行逻辑连定时器参数都没改。S7-1200/1500 在国内项目里太常见,上载、反编译、复制项目的门…

2026/10/11 0:30:51 阅读更多 →

日新闻

流感时间序列预测实战: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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →