YOLOv4训练实战:从数据准备到权重部署的全流程工程指南
1. 项目概述为什么YOLOv4训练不是“点几下鼠标就能出结果”的事YOLOv4模型训练过程超详细——这标题里藏着太多新手看不见的暗流。我带过不少刚从目标检测入门课走出来的开发者一上来就冲着“YOLOv4”四个字去以为下载完Darknet、配好CUDA、改两行cfg文件跑个train.py就能看到mAP跳到85%。结果呢loss曲线像心电图乱跳、验证集AP卡在20%不动、GPU显存爆满后直接OOM、甚至训练到第300轮才发现anchor尺寸根本没适配自己的数据集。这些不是玄学是每个环节参数选择、数据组织、硬件协同、数值稳定性的综合反馈。YOLOv4不是黑箱它是一套精密协作的工程系统CSPDarknet53主干网负责特征提取的深度与效率平衡PANet路径聚合网络解决多尺度目标漏检Mish激活函数改善梯度流动CIoU损失函数让边界框回归更鲁棒——但所有这些优势全建立在训练过程被正确“喂养”的前提下。你喂的数据质量、标注规范性、增强策略强度、学习率衰减节奏、batch size与显存的博弈关系每一步都决定最终模型是能落地进产线还是只能发在GitHub上当个“已训练”的占位符。这篇文章不讲YOLOv4论文里那些高大上的模块命名只讲我在三个工业质检项目、两个无人机航拍识别任务中反复打磨出的实操链路从原始图像进来的第一秒到最终生成.weights文件的最后一步每一个命令、每一处配置、每一次观察指标的时机都附带“为什么这么设”和“不这么设会怎样”的现场记录。适合正在调试自己第一个YOLOv4模型的工程师、算法实习生也适合需要快速复现baseline的团队技术负责人——因为真正的瓶颈从来不在模型结构本身而在训练过程的确定性控制。2. 训练全流程设计与关键决策逻辑2.1 为什么坚持用原生Darknet而非PyTorch重写版市面上有大量YOLOv4的PyTorch实现代码更易读、debug更方便、还能无缝接入TensorBoard。但我在实际交付中90%的客户项目仍强制要求使用AlexeyAB/darknet官方仓库。原因很实在一是部署端固化。很多嵌入式设备如Jetson AGX Orin、海思Hi3559A的推理SDK只认Darknet格式的.weights文件转ONNX再转IR常出现算子不支持或精度掉点二是训练稳定性。Darknet用纯CCUDA实现内存管理极简没有Python GIL锁竞争在多卡并行时显存占用比PyTorch低15%~20%这对8卡V100集群批量训模型是硬指标三是历史兼容性。某车企客户的产线标注平台导出的label格式、坐标归一化规则、类别ID映射表全部按Darknet生态设计强行切PyTorch意味着重写整套数据预处理流水线。当然代价是调试困难——你没法像PyTorch那样print(model.layer3)看中间输出必须靠日志里的loss分项x,y,w,h,conf,cls反推问题。我的折中方案是训练阶段死守Darknet验证阶段用自研Python脚本加载.weights做前向推理把预测结果dump成JSON再用OpenCV可视化bbox形成“Darknet训、Python验”的双轨机制。这样既保住了生产环境的确定性又没牺牲分析效率。2.2 数据准备标注质量比模型结构重要十倍YOLOv4再强也救不了烂数据。我见过最典型的翻车案例某智能仓储项目客户提供的10万张货架图像标注员用矩形框粗略圈出“纸箱”但实际场景中纸箱堆叠、遮挡、反光严重而标注框却一律画成完整外接矩形连最小的遮挡缝隙都没标。结果模型学到的不是“纸箱特征”而是“大块矩形区域纹理”。训练后期val loss降不下去mAP卡在32%查了三天才发现是标注问题。所以数据准备阶段我强制执行三道关卡第一关标注规范白皮书。不是口头说“标准一点”而是给标注团队发PDF文档明确遮挡处理当目标被遮挡30%必须拆分成多个小框标注可见部分禁用“画大框覆盖”边界对齐框必须紧贴目标边缘允许误差≤2像素用放大镜工具校验小目标定义在640×640输入分辨率下目标宽高均16像素视为小目标需额外提供crop局部图增强。第二关自动化质检脚本。用OpenCV写了个检查器遍历所有txt标签文件统计每类目标的宽高比分布、面积分布、中心点坐标密度热力图。若某类目标90%集中在图像左上角立刻预警“标注偏置”退回重标。这个脚本在某物流分拣项目中一次性筛出23%的异常标注样本。第三关数据增强的“克制原则”。YOLOv4.cfg里默认开启mosaic、cutmix、hsv调整但我在实际项目中会先关掉所有增强用原始数据训50轮看base loss是否稳定下降。若原始数据就能跑出70% mAP说明数据质量过硬此时再逐步开增强——mosaic只在batch_size≥8时启用否则小目标失真HSV饱和度调整上限压到±15%避免颜色失真影响金属反光检测。记住增强是补丁不是救命稻草。2.3 硬件资源与batch size的动态博弈YOLOv4官方推荐batch_size64但这是在四卡Tesla V10032G显存上测得。现实是你的实验室可能只有单卡RTX 309024G或产线服务器是双卡A10040G。硬套64会直接OOM。我的经验公式是有效batch_size (GPU显存GB数 × 0.8) ÷ 1.2解释0.8是显存安全系数留20%给系统和CUDA上下文1.2是YOLOv4在640×640输入下的单图显存占用经验值单位GB。RTX 309024G→ 24×0.8÷1.2 ≈ 16A10040G→ 40×0.8÷1.2 ≈ 26 → 向下取整为24因需整除GPU数然后根据GPU数量分配subdivisionsbatch_size 24, subdivisions 8→ 每卡每次加载3张图8次迭代凑够24。为什么不用更大的subdivisions因为subdivisions12时BN层统计量不准导致收敛变慢。我在某电力巡检项目中对比过subdivisions16比8多花37%训练时间mAP反而低0.8%。提示别迷信“越大越好”。我测过batch_size1288卡虽然单epoch快了但loss震荡加剧最终mAP比batch_size64低1.2%。原因是大batch使梯度更新方向过于平滑错过局部最优解。3. 核心配置解析与实操步骤详解3.1 cfg文件修改不只是改classes和filtersYOLOv4的.cfg文件像一张精密电路图动一处牵全身。新手常犯的错是只改classes3和最后三层的filters却忽略三个致命细节第一anchor box必须重聚类。YOLOv4原版anchor是基于COCO数据集k-means聚类得到的12×16, 19×36, 40×28, 36×75, 76×55, 72×146, 142×110, 192×243, 459×401但你的数据集目标尺寸分布完全不同。比如某农业病虫害检测目标全是叶片上的小虫斑平均尺寸32×32用COCO anchor会导致小目标召回率暴跌。我的做法用python scripts/get_anchor.py脚本读取所有txt标签提取所有bbox的宽高归一化到416×416运行k-meansk9因YOLOv4有3个scale每scale 3个anchor将新anchor填入.cfg的[region]层注意顺序从小到大排列且同一scale的3个anchor宽高比要拉开如1:2, 1:1, 2:1。第二steps和scales的衰减节奏要匹配数据量。官方cfg中steps1000,2000scales0.1,0.1这是为40万COCO图片设计的。若你只有5000张图按此设置学习率在第1000轮就砍到0.001模型根本没学完。我的计算法总迭代数 (总图片数 × epoch数) ÷ batch_sizesteps设为总迭代数的30%和60%如总迭代12000则steps3600,7200scales保持0.1,0.1但确保最后一段学习率不低于1e-5第三random参数决定数据增强强度。random1开启多尺度训练320~608但若你的数据集目标尺寸固定如所有车牌都是480×120开random会导致小目标在大尺度下被压缩成噪声。此时应设random0并在widthheight608处固定尺寸用jitter.3控制裁剪扰动。3.2 训练命令与日志监控从命令行读懂模型心跳启动训练不是./darknet detector train ...一敲了事。我习惯用带重定向的命令实时捕获关键信号./darknet detector train cfg/mydata.data cfg/yolov4-custom.cfg darknet53.conv.74 \ -gpus 0,1,2,3 21 | tee train.log重点在21 | tee train.log——把stderr含loss和stdout含进度同时存盘并打印。日志里要盯死三类数字① 每轮loss分项Region 82 Avg IOU: 0.723333, Class: 0.892123, Obj: 0.654321, NoObj: 0.012345, .5R: 0.852, .75R: 0.621, count: 123Avg IOU当前batch预测框与GT的平均IoU0.7说明定位不错Class分类loss若长期0.8检查类别不平衡如背景占比90%Obj/NoObj目标/非目标置信度loss理想比值≈1:10因负样本远多于正样本.5R/.75RIoU0.5/0.75的召回率若.75R长期0.3说明定位精度不足需调anchor或加CIoU。② 显存与速度Loaded: 0.000000 seconds数据加载耗时、Forward: 0.045678 seconds前向耗时、Backward: 0.032145 seconds反向耗时若Loaded时间Forward的1.5倍说明磁盘IO瓶颈需把数据集移到SSD若BackwardForward检查是否开了过多BN层或激活函数太复杂。③ 学习率动态日志末尾会显示Learning Rate: 0.001234要确认它按预期衰减。若卡在0.001不动检查steps是否设错。注意别信“loss降到0.5就停”。我在某安防项目中loss0.45时mAP已达82%但继续训到loss0.32mAP反降至79%——过拟合了。判断标准永远是val mAP不是train loss。3.3 权重保存与验证如何避免“训完发现不能用”YOLOv4默认每100轮保存一次weights但这对长周期训练是灾难。某项目训3000轮结果第2900轮权重因磁盘满被覆盖前功尽弃。我的方案在.cfg中设max_batches3000policystepssteps900,2100即第900轮和2100轮强制保存写shell脚本监控backup/目录当新weights生成时自动复制到NAS并打时间戳标签while true; do if [ $(ls -t backup/ | head -1) ! $LAST ]; then cp backup/yolov4-custom_last.weights backup/$(date %Y%m%d_%H%M)_weights.weights LAST$(ls -t backup/ | head -1) fi sleep 60 done验证阶段我坚持“三步验证法”Darknet原生验证./darknet detector map cfg/mydata.data cfg/yolov4-custom.cfg backup/xxx.weights看mAP绝对值Python脚本抽样验证随机选100张val图用OpenCV画出预测框置信度人工抽检漏检/误检跨平台一致性验证把.weights转ONNX再用ONNX Runtime跑相同图片对比bbox坐标差值——若3像素说明转换有损需检查YOLOv4版本兼容性。4. 实操过程中的典型问题与根因排查4.1 loss剧烈震荡不是模型问题是数据或配置惹的祸现象train loss在0.8~2.5之间无规律跳变val loss同步震荡mAP不上升。排查路径先看数据加载在train.log里搜Loaded:若该值波动0.01秒说明磁盘IO不稳。解决方案把images/和labels/软链接到NVMe SSD分区再查augmentation临时注释.cfg中mosaic1、cutmix1只留hue.1、saturation.7重训50轮。若loss变平滑说明mosaic引入的尺度混杂破坏了梯度稳定性最后动学习率若上述无效把初始学习率从0.001降到0.0005因震荡常源于梯度更新幅度过大。真实案例某医疗影像项目loss震荡持续200轮。查日志发现Loaded:在0.002~0.035秒间跳变原因除了机械硬盘还有标注文件txt里混入了Windows换行符\r\nDarknet解析时多读了字符导致bbox坐标错位。用dos2unix labels/*.txt一键修复后loss立刻收敛。4.2 GPU显存溢出OOM显存不是不够是没管好现象训练到某轮突然报cudaMalloc failed: out of memory但nvidia-smi显示显存只用了70%。根因CUDA内存碎片化。Darknet用cudaMalloc申请显存但不会主动释放中间缓存多次迭代后碎片堆积。解决方案在.cfg中加burn_in1000前1000轮warmup让显存分配趋于稳定每训500轮手动重启训练进程用kill -9后重新./darknet ...利用进程退出自动清空显存终极手段在src/network.c里找到forward_network_gpu函数在末尾加cudaDeviceSynchronize()强制同步显存释放需重新编译Darknet。实操心得别信“加大swap空间能救OOM”。我试过把swap扩到64G结果训练速度降为1/5因频繁页交换拖垮了PCIe带宽。4.3 小目标检测率低不是模型能力弱是输入和anchor没对齐现象大目标mAP80%但尺寸32×32的小目标召回率40%。三步优化法输入分辨率升级把widthheight608提到640或704增加小目标像素信息但需同步调大batch_size防OOManchor重聚类用scripts/get_anchor.py时只提取标注中宽高64的bbox做k-means生成专用于小目标的3组anchorhead层微调在.cfg的最后一个[yolo]层对应最小feature map把ignore_thresh0.7降到0.5降低小目标置信度过滤门槛。某光伏板缺陷检测项目用此法将0.5mm裂纹在640×640图中仅8×8像素召回率从31%提升至76%。4.4 训练中途崩溃90%是路径或权限问题现象训到第1200轮突然中断log最后是Segmentation fault或Permission denied。高频原因TOP3路径含中文或空格Darknet不支持cfg/mydata.data里train /path/to/训练集/images必须全英文无空格labels文件缺失某张jpg图没对应txtDarknet读取时崩溃。用python scripts/check_data.py遍历所有jpg检查同名txt是否存在文件权限错误Linux下backup/目录若为root所有普通用户无法写入。chmod -R 755 backup/即可。我写了个崩溃自恢复脚本放在screen会话里while true; do ./darknet detector train ... 21 | tee train.log if [ $? -ne 0 ]; then echo Crashed at $(date). Restarting in 10s... train.log sleep 10 else break fi done5. 模型评估与上线前的终极检验5.1 超越mAP业务场景驱动的指标定制mAP是学术指标但产线要的是“不漏检关键目标”。某高铁接触网检测项目客户核心诉求是漏检率0.1%因漏检一个悬挂点可能引发事故误检率5%因人工复核成本高。此时单纯看mAP78%毫无意义。我的做法用./darknet detector test对val集逐图输出检测结果生成CSVimage_name,x,y,w,h,conf,class写Python脚本按业务规则过滤# 关键目标悬挂点class_id0 df_hang df[df[class]0] # 漏检 GT存在但pred conf0.8的样本数 / GT总数 # 误检 pred conf0.9但IoU0.3的样本数 / pred总数输出报告漏检率0.07%, 误检率3.2%直接对标客户需求。5.2 推理速度压测FPS不是理论值是真实场景值Darknet官网标称YOLOv4在V100上达65 FPS但那是单图测试。真实场景是视频流需考虑预处理耗时读帧cv2.VideoCapture缩放cv2.resize归一化numpy后处理耗时NMS非极大值抑制坐标还原乘以原图尺寸I/O阻塞GPU推理时CPU还在读下一帧需用多线程队列解耦。我的压测脚本import time cap cv2.VideoCapture(test.mp4) frames [] for i in range(100): ret, frame cap.read() frames.append(frame) cap.release() # 预热 for _ in range(5): detect_image(frames[0]) # darknet python binding # 正式计时 start time.time() for frame in frames: boxes detect_image(frame) # 含pre/post-processing end time.time() print(fReal FPS: {100/(end-start):.1f})某项目实测理论FPS62但加上OpenCV读帧和NMS后真实FPS38。若低于30需启用TensorRT加速需重编译Darknet with TRT support。5.3 模型轻量化不是剪枝是精准瘦身客户常提“模型能不能再小点”。直接剪枝会掉点我的策略是通道裁剪用python scripts/prune_channels.py分析各层BN的γ值移除γ0.01的通道实测某层裁30%通道模型体积↓22%mAP↓0.3%权重量化用darknet quantize工具把float32转int8体积↓75%但需校准集200张图补偿精度损失输出精简修改src/yolo_layer.c只保留top-k5的预测框原为100减少后处理计算量。最终某边缘设备部署包weights从237MB→58MB推理延时从42ms→18msmAP从76.2%→75.8%。6. 我的实战经验总结那些文档里不会写的细节YOLOv4训练不是技术动作的堆砌而是对数据、硬件、数学、业务的四重理解。最后分享几个血泪换来的细节关于学习率预热burn_in官方设burn_in1000但这是针对COCO的。我的经验是burn_in (总迭代数 × 0.05)。若总迭代10000burn_in500。预热期太短BN统计量不准太长浪费训练时间。某项目burn_in2000结果前2000轮loss几乎不降白白耗电。关于多卡同步Darknet用NCCL但默认sync_batchnorm0。若你训大batch务必在.cfg里加batch_normalize1否则多卡BN层各自统计等效于每个GPU训独立模型。我因此在某项目中多训了1500轮才发现问题。关于验证集陷阱别用随机划分的20%当val。必须保证val集覆盖所有场景白天/夜晚、晴天/雨天、近景/远景。某项目val集全是白天图训出的模型夜间mAP直接归零。现在我强制要求按拍摄时间戳、光照强度、镜头焦距三维度分层抽样。关于weights命名不要用yolov4-custom_last.weights这种名字。我的规范是yolov4_v1.2.3_20231015_76.2mAP.weights含版本号、日期、核心指标。版本号遵循语义化主版本v1 主干网变更次版本.2 anchor或loss函数调整修订号.3 数据增强策略迭代。关于失败归因当训练效果差按此优先级排查数据质量60%→ cfg配置25%→ 硬件环境10%→ 模型结构5%。我见过太多人花三天调Mish激活函数却不愿花半小时检查标注框是否画歪了。训练YOLOv4的终点不是生成一个.weights文件而是建立一套可复现、可解释、可演进的训练范式。当你能对着loss曲线说出“这一波震荡是因为昨天新增了100张反光样本导致梯度方差增大”当你能根据val mAP曲线拐点准确预判再训200轮是否值得——那一刻你才真正掌握了YOLOv4。

相关新闻

单片机室内空气质量监测系统设计与实现:传感器选型、驱动与调试全解析

单片机室内空气质量监测系统设计与实现:传感器选型、驱动与调试全解析

简介:面向单片机学习者和嵌入式系统开发者的一套完整项目资料,围绕室内空气质量监测系统的设计与研究展开,重点解决甲烷、甲醛、PM2.5三类污染物的实时采集、处理与显示,涵盖多种传感器及其检测原理。资源共61个文件,压…

2026/10/15 12:22:56 阅读更多 →
SoloMD Agent安全机制全解:AutoGit分支沙箱+write-cap+可重放Trace如何防止AI写坏你的笔记

SoloMD Agent安全机制全解:AutoGit分支沙箱+write-cap+可重放Trace如何防止AI写坏你的笔记

【免费下载链接】solomd A markdown editor — and the bridge to your LLM. Local-first, MIT, ~15 MB. Bundled MCP server lets Claude Code / Codex / Cursor drive your vault directly. 14 AI providers BYOK. 项目地址: https://gitcode.com/gh_mirrors/so/s…

2026/10/15 12:22:56 阅读更多 →
基于SpringBoot的上门宠物服务系统-附源码

基于SpringBoot的上门宠物服务系统-附源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/10/15 12:22:56 阅读更多 →

最新新闻

OpenTelemetry Instrumentation for VoyageAI:为 Embedding 与 Rerank 调用接入可观测性

OpenTelemetry Instrumentation for VoyageAI:为 Embedding 与 Rerank 调用接入可观测性

LLMOps可观测性 【免费下载链接】openllmetry Open-source observability for your GenAI or LLM application, based on OpenTelemetry 项目地址: https://gitcode.com/gh_mirrors/op/openllmetry 点击查看 免费下载 这篇技术指南以 openllmetry 仓库中的 opentel…

2026/10/15 15:19:02 阅读更多 →
高校实训Day1:从环境初始化到最小可行闭环的工程启蒙

高校实训Day1:从环境初始化到最小可行闭环的工程启蒙

1. 项目概述:一场面向真实工程场景的入门实战“山东大学实训 Day1”这个标题看似简单,但背后承载的是高校工科教育中最具实操张力的一环——从理论课堂到工程现场的首次跨步。我带过不下二十期校企联合实训项目,几乎每届学生在第一天都会经历…

2026/10/15 15:19:02 阅读更多 →
Java养老院管理系统开发实践与技术解析

Java养老院管理系统开发实践与技术解析

1. 项目概述:养老院管理系统的核心价值养老院管理系统是针对养老机构日常运营需求开发的专业化信息管理平台。这个基于Java技术栈的系统整合了养老院从入住管理到日常护理的全流程业务,解决了传统纸质记录效率低下、信息孤岛严重、数据统计分析困难等行业…

2026/10/15 15:19:02 阅读更多 →
MCP协议安全解析:AI模块化连接的风险与防御

MCP协议安全解析:AI模块化连接的风险与防御

1. 项目概述:当AI生态遇上"万能接口"隐患去年参与某金融AI系统对接时,我第一次见识到MCP协议的威力——只需简单配置,三个不同厂商的AI模块就像乐高积木一样咔嗒对接成功。但庆祝酒会还没结束,安全团队就发来了警报&…

2026/10/15 15:19:02 阅读更多 →
VC++与OpenGL加载3ds模型:从chunk解析到场景漫游全攻略

VC++与OpenGL加载3ds模型:从chunk解析到场景漫游全攻略

简介:VC结合OpenGL与lib3ds库实现3ds模型导入、渲染及交互式漫游的完整工程源码,面向具备C基础、希望深入图形编程与三维模型处理的开发者。工程共102个文件,压缩包1.73MB,涵盖24个C/C头文件、20个C源文件、18个C源文件&#xff0…

2026/10/15 15:19:02 阅读更多 →
非负矩阵分解NMF详解:MATLAB手写代码与调参实践

非负矩阵分解NMF详解:MATLAB手写代码与调参实践

简介:这份非负矩阵分解MATLAB代码包较为完整地涵盖了基础NMF及常见扩展与优化实现,适合机器学习、图像处理、文本挖掘和生物信息学方向的研究者、学生及工程人员使用。包内围绕VWH的分解目标,提供了乘法更新、交替最小二乘等主流优化算法实现…

2026/10/15 15:18:01 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →