YOLOv8猴子检测:4690张带标签数据集的训练与避坑全流程
简介一套可直接用于yolo系列训练的猴子检测数据集面向目标检测算法学习者和智能监控应用开发者包含4690张猴子图像及标注适配yolov5、yolov7、yolov8、yolov9、yolov10、yolo11等主流框架。压缩包约240MB共2000个文件以xml标注文件为主标签同时采用yolo txt与voc xml两种格式存放训练集、验证集与测试集已划分完毕并附带data.yaml配置文件方便不同框架直接读取。已有84人浏览学习下载后可在本地快速完成模型训练与验证免去数据采集与手工标注的过程。对于需要开展野生动物行为识别或检测算法对比实验的读者这份资源能显著降低入门门槛且对目标框坐标归一化、类别索引等格式有说明便于理解数据组织方式快速迁移到自己的任务中是一份适合研究、教学和工程落地的实用数据资源。1. 4690张带标签的zip包猴子检测数据集的“半成品”状态「yolo算法-猴子检测数据集-4690张图像带标签-.zip」这名字够直白但落到我手里那晚我没急着解压训练。这类数据集的通病是压缩包体积不大、路径里带中文、目录结构可能不标准4690张图像听着够用可标签到底是不是YOLO格式、类别编号从0还是从1、train/val划分有没有做好全得开箱验货。这篇笔记就用这个包做线索把「拿到zip → 解压体检 → 整理成YOLOv8能吃的目录 → 训练调参 → 避坑 → 验证落地」讲一遍。适合手里刚拿到同类标记数据集的算法工程师、研究生或者正在用YOLO给野生动物监测、果园驱猴这类场景做检测的团队。2. 拿到zip先解压体检目录布局、YOLO标签格式与校验脚本2.1 先摸清压缩包内部结构再决定要不要写转换脚本常见做法是这类YOLO数据集交付包会按两种形态出现。第一种是标准YOLO布局解压后根目录下有images/train、images/val、labels/train、labels/val第二种是平铺式一个images文件夹装所有图片一个labels文件夹装所有txt训练集和验证集全混在一起。还有的包额外塞一个data.yaml或classes.txt负责告诉训练脚本类别名。第一步永远是搞清楚它属于哪一种再决定是直接用还是得转一手。我一般会用下面两条命令完成解压和目录结构摸底。注意压缩包文件名是中文unzip -d指定输出目录能防止把文件直接摊在当前目录。unzip yolo算法-猴子检测数据集-4690张图像带标签-.zip -d monkey_dataset find monkey_dataset -maxdepth 3 -type d | sort-d参数把解压内容集中到monkey_datasetfind用-maxdepth 3避免把图片子目录里的文件也全部打印出来。如果解压后文件名出现乱码多半是压缩包内文件名编码和系统不一致Linux下可以试unzip -O GBK指定编码macOS上则可以把zip拖到归档实用工具里解压。这类编码问题不影响训练但会让后续脚本里写路径变得痛苦。如果发现是平铺式布局不用慌第3章的划分脚本会帮你把它改造成标准YOLO目录。真正需要警惕的是images和labels两个目录的文件后缀对不上或者里面混入了无关的xml/json格式标注。先看一眼结构就能避开后面一半的坑。2.2 用脚本核对图片与标签的配对关系YOLO的标签规则是同名txt。一张IMG_0042.jpg对应同目录或对应目录里的IMG_0042.txttxt里每一行是一个目标框。配对关系错了训练时图片就会变成无监督样本或者干脆报错。我拿到数据集第一件事是写脚本检查images和labels的stem集合是否一致。from pathlib import Path img_dir Path(monkey_dataset/images) label_dir Path(monkey_dataset/labels) imgs {p.stem for p in img_dir.iterdir() if p.suffix.lower() in {.jpg, .jpeg, .png, .bmp}} labels {p.stem for p in label_dir.iterdir() if p.suffix.lower() .txt} print(图片数:, len(imgs), 标签数:, len(labels)) print(缺标签图片:, sorted(imgs - labels)[:10]) print(无图片标签:, sorted(labels - imgs)[:10])逻辑说明p.stem会把IMG_0042.jpg变成IMG_0042两边用集合求差集一眼就能看出谁缺谁多。如果有train/val子目录就对每个子目录单独执行一次或者把img_dir改成monkey_dataset/images/train。注意有一个容易被忽略的边界情况.jpg和.jpeg算同一张图集合里用p.stem无法区分但训练脚本只看文件名因此文件名本身不要重复。如果缺标签的图片数量很大比如超过几十张先别急着补标签。优先确认是不是因为压缩包里原本就有负样本图片也就是那些没有猴子的背景图。负样本在检测任务里合法后面必须用空txt表示否则训练时图片被过滤掉背景多样性会明显下降。2.3 标签内容越界与类别编号三个边界坑配对检查通过之后还要检查txt内容。YOLO txt每一行固定五列class x_center y_center width height其中中心坐标和宽高都是归一化到0~1的相对值不是像素坐标。很多人拿到的标签其实是VOC格式的x1 y1 x2 y2直接改名塞进labels目录这是最经典的翻车现场。import sys from pathlib import Path bad 0 for txt in Path(sys.argv[1]).glob(*.txt): for i, line in enumerate(txt.read_text(encodingutf-8, errorsignore).strip().splitlines(), 1): parts line.split() if len(parts) ! 5: print(f{txt.name}:{i} 列数不对: {line}) bad 1 continue cls, cx, cy, w, h parts[0], float(parts[1]), float(parts[2]), float(parts[3]), float(parts[4]) if cx - w / 2 -1e-3 or cy - h / 2 -1e-3 or cx w / 2 1.001 or cy h / 2 1.001: print(f{txt.name}:{i} 越界: {line}) bad 1 if not cls.isdigit(): print(f{txt.name}:{i} 类别非数字: {line}) bad 1 print(问题行数:, bad)参数说明越界判断用了1e-3容差因为标注工具导出浮点数时会有舍入误差严格写成1会误杀正常标签。errorsignore是为了防止读取GBK编码的txt时直接抛异常真实数据集里经常混着编码不统一的文本。跑完脚本后如果越界行数不多可以直接在原文件上改或者把判断条件去掉后把坐标做一次clamp。类别编号是另一个容易出事的点。YOLO的类别索引从0开始data.yaml里nc1时标签里只允许出现0。有些标注工具如果从1开始编号训练就会抛Label class is out of range。善用下面的命令快速扫描类别分布awk {print $1} monkey_dataset/labels/*.txt | sort -n | uniq -c这行命令在Linux和macOS都能跑输出每个类别编号出现的次数。如果看到最大编号是1而你的业务只有猴子一个类别那就是典型的偏移问题。用sed把行首的1替换成0就能修。建议修之前先备份目录因为这类批量修改没有后悔药。3. 整理成YOLOv8能吃的目录结构并跑通第一次训练3.1 划分train/val/test固定随机种子是底线如果压缩包里的图片没有按训练集和验证集分开需要自己切分。4690张图像建议按8:1:1划分也就是3740张训练、470张验证、470张测试。测试集留出来是为了最后做一次模拟线上评估不要让它参与训练过程中的任何决策。import random, shutil from pathlib import Path random.seed(2024) src_img Path(monkey_dataset/images) dst Path(datasets/monkey) for split in (train, val, test): (dst / images / split).mkdir(parentsTrue, exist_okTrue) (dst / labels / split).mkdir(parentsTrue, exist_okTrue) imgs [p for p in src_img.iterdir() if p.suffix.lower() in {.jpg, .jpeg, .png}] random.shuffle(imgs) n len(imgs) train imgs[:int(n * 0.8)] val imgs[int(n * 0.8):int(n * 0.9)] test imgs[int(n * 0.9):] for split, files in [(train, train), (val, val), (test, test)]: for img in files: shutil.copy2(img, dst / images / split / img.name) lab src_img.parent / labels / img.with_suffix(.txt).name if lab.exists(): shutil.copy2(lab, dst / labels / split / img.with_suffix(.txt).name) else: (dst / labels / split / img.with_suffix(.txt).name).touch()逻辑说明shutil.copy2保留文件修改时间后续排查时会方便一点。lab路径用src_img.parent / labels拼出来是因为前面假设images和labels是同级的两个目录。最容易被忽略的是else分支没有标签的图片在YOLOv8里属于负样本需要创建空的同名txt否则DataLoader会在训练时跳过它导致负样本对loss没有贡献。参数说明random.seed(2024)写死别人复现你的划分时会得到完全一样的结果。如果你是按场景划分的比如同一台摄像机拍出来的所有图只能进同一个集合那random shuffle就不合适这时候要按文件名前缀或目录去分组。纯随机划分对连续帧组成的猴子视频数据集来说会让验证集难度虚低。划分完成后写data.yaml这是YOLOv8读取数据集的入口。path: /absolute/path/to/datasets/monkey train: images/train val: images/val test: images/test nc: 1 names: 0: monkeypath建议写绝对路径。因为不同的yolo命令工作目录可能不同相对路径在训练脚本更换目录后容易失效。如果压缩包解压在中文路径下而训练环境是WindowsOpenCV读图可能因为编码问题失败宁可把整个数据集放到纯英文路径下。nc: 1表示单类别若你手里的标签还有第二个类别这里要相应改成nc: 2并在names里补上。3.2 选yolov8n还是yolov8s4690张图的算力账4690张图属于中小规模数据集不是从零开始训练的条件。常见做法是用预训练权重做迁移学习先跑yolov8n把流程打通再考虑容量更大的模型。YOLOv8n参数量约3.2M显存需求低一台消费级显卡就能训练YOLOv8s约11.2M精度潜力更高但需要更多数据和更久调参。模型参数量单卡训练显存建议适合场景yolov8n约3.2M4GB以上快速验证、边缘设备部署yolov8s约11.2M8GB以上精度优先、允许更大模型猴子检测的目标往往是中等大小如果画面里猴子站得很远变成小目标640输入尺寸可能不够。先把yolov8n在640下发出来看结果再用yolov8s对比一次如果n的mAP50已经到90以上就完全没必要上s。反过来如果验证集里大量猴子框面积占图片不到1%就要考虑把imgsz提到1280或者做切片推理这属于第4章的尺度问题。3.3 训练命令、参数表与第一个checkpoint数据集目录和yaml都准备好之后直接跑下面的命令。yolo detect train \ datadatasets/monkey/data.yaml \ modelyolov8n.pt \ epochs100 \ batch16 \ imgsz640 \ patience15 \ projectmonkey_results \ namebase \ seed2024参数说明modelyolov8n.pt会先从官方权重初始化迁移学习的关键就在这一步如果你的网络环境无法下载权重也可以把本地已有的yolov8n.pt路径填进去。patience15表示连续15轮验证指标不提升就提前停止防止周末挂机烧电。seed2024和第3.1节的随机种子保持一致整条链路可复现。训练过程中重点看两个东西loss曲线是否单调下行以及best.pt对应的mAP50是多少。不要看单个batch的loss波动因为它受mosaic增强影响很大本身就是震荡的。YOLOv8会在每个epoch结束跑一遍验证集并自动保存best.pt和last.pt。如果中途机器重启也不必从头开始后面避坑章节会专门说resume。第一次训练建议把epochs提到100但实际大概率在40到60轮就触发了early stopping。训练完成后monkey_results/base/weights/best.pt就是第一个可用的猴子检测模型。先别急着部署把测试集的指标打出来看看再做第4章的数据体检。4. 数据体检发现4690张只是“看起来够”统计、增强与尺度问题4.1 每张图到底有几个框空标签和高密度图的处理很多人拿到数据集就开始训练等到模型漏检了才回头怀疑数据。我习惯先做一次全量统计每张图有几个框每个框的面积归一化后有多大。脚本很简单但对后续参数选择很关键。import numpy as np from pathlib import Path labels_dir Path(datasets/monkey/labels/train) counts [] areas [] for txt in labels_dir.glob(*.txt): lines txt.read_text().strip().splitlines() counts.append(len(lines)) for line in lines: cls, cx, cy, w, h line.split() areas.append(float(w) * float(h)) counts np.array(counts) areas np.array(areas) print(训练图片数:, len(counts)) print(平均每图目标数:, counts.mean()) print(空标签图占比:, (counts 0).mean()) print(框面积分位数 p50{:.4f} p90{:.4f}.format(*np.percentile(areas, [50, 90])))逻辑说明w * h是归一化面积p50如果只有0.002意味着有一半的目标框只占整张图千分之二这种猴子在640分辨率下可能只有十几个像素检测器很难抓住。空标签图占比这一项往往被忽略如果空标签比例超过20%说明数据采集时拍了很多背景这对降低误检是好事但验证集如果也带大量空标签mAP会被拉低因为每个空标签图片都可能产生误检框。另一个容易被忽略的是高密度图。猴群聚集的图片里可能有二十多个框这类图会让单个batch里的gt数量暴增导致loss权重失衡。如果统计发现最大框数超过30可以考虑对大图做裁剪训练把一张高密度图裁剪成几张小图每个小图只保留落在该区域的框。这是处理猴群场景的常见做法。4.2 类别不平衡与单类任务的隐藏风险即便数据集标题写了“猴子检测”标签里也可能混着误标的类别或者同一类猴子被拆成了两个类别编号。统计类别分布最快的方法还是awkawk {print $1} datasets/monkey/labels/train/*.txt | sort | uniq -c输出如果出现某个类别的数量为零而data.yaml里的names还保留着它训练时虽然不报错但模型会浪费一个输出通道。单类任务还有一个隐藏风险背景多样性不足。如果4690张图全部来自同一台固定摄像机模型很快会学会“这里本来就是空的”这种位置记忆而不是真正理解猴子的外观。此时纯随机划分train/val会造成假象换一个环境部署就原形毕露。更稳的做法是按场景分组划分。常见的方案是优先分析文件名同一时间段的连续帧通常有相同前缀把它当作分组键确保多个相近帧全部落在训练集或验证集而不是被随机打散。这样训练出来的模型泛化能力才说得通。如果压缩包里的文件本身就是连续帧编号这一步尤其不能省。4.3 增强参数不是越大越好YOLOv8默认开启mosaic、随机翻转、色彩抖动等增强对4690张图来说足够。但“增强越多越好”是新手最容易掉进去的坑尤其是猴子检测这类刚性物体任务过度增强反而让模型学到不该学的映射。yolo detect train \ datadatasets/monkey/data.yaml \ modelyolov8n.pt \ epochs100 batch16 imgsz640 \ fliplr0.5 \ mosaic0.8 \ mixup0.1 \ scale0.4 \ hsv_h0.015 \ hsv_s0.5参数说明fliplr0.5控制水平翻转概率如果猴子身上有耳标、项圈这类方向性特征翻转会让模型对左右特征产生混淆建议降到0.2甚至0。mixup0.1对单类小目标帮助有限mixup会生成一只猴子叠另一只猴子的“叠影”在密集猴群场景里反而增加标注歧义。mosaic0.8保留接近默认就可以它能把四张图拼到一块强迫模型学会在小目标上下文中检测猴子。scale0.4允许目标缩小到原来的0.6倍对尺度泛化有用。重点看验证集mAP有没有随着增强参数变化。很多人在训练集上loss降得漂亮验证集mAP纹丝不动这时候不是加增强能解决的反而要往下减。关注p50框面积如果框普遍很小把scale降低到0.2避免模型总是把猴子缩小后被mosaic糊成一团。5. 猴子检测训练避坑指南四条翻车记录与排查顺序5.1 启动就报错Label class is out of range现象训练启动后控制台抛出断言错误提示标签类别超出范围如果数据量很大可能在跑几分钟后才触发。原因标签txt里的类别编号是1而data.yaml只定义了0: monkey或者原始标注工具从1开始编号没有做减一处理。解决先用awk统计类别分布确认最大编号确实比nc-1大再批量偏移。Linux和macOS的sed写法不同macOS要在-i后加空字符串。# Linux sed -i s/^1 0 /0 0 / datasets/monkey/labels/*.txt# macOS sed -i s/^1 /0 / datasets/monkey/labels/*.txt逻辑说明标签每行以类别编号开头^1锚定行首的编号1。改完后重新跑一遍第2.3节的校验脚本确认没有其余编号残留。不要把nc盲目改成2来回避问题那样会让模型多出一个完全没数据的空闲输出。5.2 损失降了可视化却一片空白图片和标签错位现象训练loss正常下降验证mAP也说得过去但把验证集图片拖进推理脚本画出的框完全对不上或一张都画不出来。原因划分数据集时图片被复制标签没跟上或者两类文件的后缀不一致比如图片是IMG_0042.jpg对应标签却叫IMG_0042.jpg.txt。YOLO按stem匹配后缀不一致就是错位。解决回到第2.2节的配对脚本分别对train和val目录再跑一次打印出差异集。如果有错位但数量不大可以用脚本把标签重命名后搬回去。这个问题的难处在于不报错训练照常mAP还可能有虚高因为你看到的是错位造成的叠加框。验证集可视化是必须做的空口看数字会翻车。5.3 一换环境就翻车同源视频帧造成的“伪泛化”现象在压缩包自带的验证集上mAP50能到0.95但拿去跑一段新场景的园区监控猴子漏个精光还有一个把树叶当猴子的误检。原因4690张图可能来自同一段视频的连续抽帧训练集和验证集高度同源模型学到的是背景纹理和光线而不是猴子本身。解决优先按场景分组重划分数据集。如果压缩包里只包含一个场景的视频帧再好的划分也无济于事这时要去补充新的拍摄数据或者人工标注一小批目标场景的图进行微调。临时补救方案是把空标签负样本图加进来同时降低fliplr让模型减少对背景纹理的依赖。不要相信单场景数据集训出来的高mAP那只是自测。5.4 CUDA OOM或训练中断不要从头再来现象batch16正常训练改成32就报CUDA out of memory或者训练到一半机器重启控制台信息全部丢失。原因显存不够用而不是参数设置问题。4690张图加上mosaic的显存波动比想象中大batch翻倍时峰值显存也翻倍。解决把batch降到8imgsz降到544先用小配置跑通。中断后继续训练用resume命令yolo detect train resume modelmonkey_results/base/weights/last.pt参数说明last.pt保存了当前epoch的模型权重和优化器状态resume会从中断处继续而不是从头再来。如果显存仍然紧张可以考虑设置cacheFalse关掉将预处理图片缓存到内存的默认行为虽然训练会慢但内存峰值显著降低。6. 把mAP落进真实场景错例回灌与推理阈值习惯模型训练完真正决定能否上线的是它在陌生场景里的表现。我的做法是留一段“冒烟视频”固定这段视频不进训练集每次训练完都跑一次推理。跑推理的命令不复杂yolo predict modelmonkey_results/base/weights/best.pt \ sourcedigest/monkey_park_2024.mp4 \ save_txtTrue \ conf0.25 \ iou0.45参数说明conf0.25把置信度阈值放低宁可多一点误检也要把猴子先框出来iou0.45控制NMS时两个重叠框合并的阈值。监控场景下漏检的代价远高于误检阈值宁低勿高。跑完用脚本对比预测框和人工标注统计漏检帧数和误检框数而不是只看mAP。如果发现某几帧总是漏检把这几个“错例”图找出来人工确认后把真实框写进标签追加到训练集里重新训练。这种方法叫错例回灌比盲目增加轮数有效得多。但回灌前必须人工复核否则一个错误标签会被模型当成标准答案学进去污染整批数据。我有一阵子只盯mAP50后来在傍晚监控视频上翻车才意识到指标再漂亮也救不了场景迁移。现在我会把同一份验证视频缓存下来每次训练后都跑一遍看漏检帧数有没有增加这个习惯帮我留住了很多“看起来还行”的模型。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

多模态Agent如何重新定义UI测试路径规划

多模态Agent如何重新定义UI测试路径规划

UI 自动化做了不少年头,从录制回放到页面对象模型,技术栈换了一波又一波,可有一件事始终让人头疼:测试路径怎么规划。页面一改,脚本就崩;元素一变,定位就失效;更别提那些只有视觉上才…

2026/10/11 15:36:09 阅读更多 →
YOLOv5香烟破损检测实战:工业级缺陷识别闭环方案

YOLOv5香烟破损检测实战:工业级缺陷识别闭环方案

简介:本资源是一个面向计算机视觉初学者与工业质检开发者的YOLOv5实战项目,聚焦香烟生产线上6类破损缺陷(如头部破损、滤嘴破损等)的高精度目标检测任务。项目提供完整可运行方案:含320张训练图80张验证图的大尺度RGB数…

2026/10/11 15:36:09 阅读更多 →
Agent-Skills工程化实战:从能力解耦到可复用技能体系搭建

Agent-Skills工程化实战:从能力解耦到可复用技能体系搭建

1. 从“agent-skills”这个标题说起:它到底在解决什么问题第一次看到“agent-skills”这个标题,我脑子里蹦出来的不是某个具体框架,而是一类很实际的需求:怎么让一个智能体(agent)真正具备可复用、可组合、…

2026/10/11 15:36:09 阅读更多 →

最新新闻

小区物业管理系统源码毕设实战:从架构到部署避坑全指南

小区物业管理系统源码毕设实战:从架构到部署避坑全指南

简介:这是一套小区物业管理系统的完整源码包,附带毕业论文,适合需要开发同类管理系统的程序员、计算机相关专业学生作为毕业设计或项目参考。资源包共含125个文件、大小约1.8MB,其中20个asp文件构成前台与后台核心功能&#xff0c…

2026/10/11 16:21:35 阅读更多 →
35个MCP工具大揭秘:Blitz如何让任意AI客户端完整驱动App Store Connect

35个MCP工具大揭秘:Blitz如何让任意AI客户端完整驱动App Store Connect

【免费下载链接】blitz-mac Native macOS App Store Connect tool with MCP. Submit iOS apps to App Store with AI agents 项目地址: https://gitcode.com/gh_mirrors/bl/blitz-mac 点击查看 免费下载 Blitz 是一款 macOS 原生应用,让 Claude Code、…

2026/10/11 16:21:35 阅读更多 →
鼠标宏科普:G502压枪宏的Lua脚本原理与DPI灵敏度调参指南

鼠标宏科普:G502压枪宏的Lua脚本原理与DPI灵敏度调参指南

简介:一份面向FPS玩家的罗技G502鼠标压枪宏配置包,适用于CS:GO、PUBG、Apex等全自动武器频繁交战的射击场景。资源共4个文件、约38KB,其中macro-G502.lua为核心宏脚本,提供可导入G-Hub的按键序列;G502-config.xml为预置…

2026/10/11 16:21:35 阅读更多 →
餐饮采购系统数据库建设:从Word清单到可计算结构化数据

餐饮采购系统数据库建设:从Word清单到可计算结构化数据

简介:本资源是一份面向餐饮信息化系统开发者、数据库设计人员及供应链管理从业者的专业文档,聚焦餐饮食品采购系统中核心的原材料清单数据库建设方案。文档系统梳理了蔬菜类食材的标准化编码体系(如VG/Asparagus, Green Large)、规…

2026/10/11 16:21:35 阅读更多 →
电信系下场开源,PaddleOCR 还坐得住吗:国产文档解析的版图要重排

电信系下场开源,PaddleOCR 还坐得住吗:国产文档解析的版图要重排

电信系下场开源,PaddleOCR 还坐得住吗:国产文档解析的版图要重排 【免费下载链接】TeleOCR 项目地址: https://ai.gitcode.com/XingChen-AGI/TeleOCR 2026 年 8 月,一个最初以 "NaviDC-OCR" 为名的模型静悄悄放出权重与技术…

2026/10/11 16:21:35 阅读更多 →
Oracle EBS R12月结关账顺序与子账对账SQL实战指南

Oracle EBS R12月结关账顺序与子账对账SQL实战指南

简介:本资源是一份面向Oracle EBS R12财务实施顾问、系统运维人员及财务信息化从业者的专业培训课件,聚焦财务月结核心流程与实操要点,系统解决多模块协同关账、数据一致性校验及常见异常排查等关键问题。课件为单个PPTX文件(2.9M…

2026/10/11 16:20: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 阅读更多 →