yolov8-face 核心算子全解析:NMS、边界框格式转换与掩码处理的源码级指南
人工智能计算机视觉深度学习【免费下载链接】yolov8-faceyolov8 face detection with landmark项目地址https://gitcode.com/gh_mirrors/yo/yolov8-face点击查看免费下载本文是 ops.md 参考文档的深度展开以ultralytics/yolo/utils/ops.py为事实依据系统讲解 Ultralytics YOLO 框架中优化过的深度学习相关操作非极大值抑制NMS、边界框缩放/裁剪、五种框格式互转、以及实例分割掩码的生成与后处理。读者将掌握每个算子的数学定义、参数语义、默认值、调用链与真实使用场景可直接应用到 yolov8-face 的人脸检测与关键点回归、以及通用检测/分割/姿态任务的二次开发中。模块定位YOLO 框架的“算子中枢”ops.py位于 ultralytics/yolo/utils/ops.py是 Ultralytics YOLO 框架中承载推理后处理与数据预处理核心算子的工具模块。从源码结构看它可以划分为四大功能簇后处理Post-processingnon_max_suppression、scale_boxes、scale_coords、clip_boxes、clip_coords、scale_image负责把模型原始输出转换为用户可用的检测/关键点/掩码结果边界框格式转换Box Format Conversionxyxy2xywh、xywh2xyxy、xywhn2xyxy、xyxy2xywhn、xyn2xy、xywh2ltwh、xyxy2ltwh、ltwh2xywh、ltwh2xyxy掩码操作Mask Operationsresample_segments、crop_mask、process_mask_upsample、process_mask、process_mask_native、scale_coords、masks2segments辅助工具segment2box、segments2boxes、coco80_to_coco91_class、make_divisible、clean_str以及Profile计时类。这些算子被检测detect/predict.py、分割segment/predict.py、姿态pose/predict.py等任务模块以ops命名空间统一引用。yolov8-face 项目在此基础上扩展了人脸关键点landmark回归其推断后的框缩放与关键点坐标恢复同样依赖本模块。非极大值抑制 non_max_suppression函数签名与参数语义non_max_suppression是推理与验证阶段的核心去重函数源码见 ultralytics/yolo/utils/ops.py#L144-L278def non_max_suppression( prediction, conf_thres0.25, iou_thres0.45, classesNone, agnosticFalse, multi_labelFalse, labels(), max_det300, nc0, # number of classes (optional) max_time_img0.05, max_nms30000, max_wh7680, )参数说明与 default.yaml 中的 CLI 参数一一对应参数默认值语义prediction—模型输出张量形状(batch_size, num_classes 4 num_masks, num_boxes)conf_thres0.25置信度阈值低于该值的框被过滤取值必须在[0.0, 1.0]预测默认 0.25验证默认 0.001iou_thres0.45NMS 中的 IoU 阈值[0.0, 1.0]CLIiou默认 0.7classesNone仅保留指定类别索引列表None 表示全类别agnosticFalse为 True 时做类别无关 NMSCLIagnostic_nmsmulti_labelFalse为 True 时每框允许多个标签仅当类别数 1 时生效每张图约多耗 0.5mslabels()自动标注autolabelling时的先验标签来自 dataloadermax_det300每张图 NMS 后最多保留的框数nc0模型输出类别数0 时从prediction.shape[1] - 4推断max_time_img0.05单张图处理的时间上限秒超过即提前退出max_nms30000送入torchvision.ops.nms()的最大框数超出按置信度排序截断max_wh7680用于类别偏移的最大框宽高像素内部执行流程函数开头先做防御性校验conf_thres与iou_thres越界直接assert报错若传入的是(inference_out, loss_out)元组验证模式输出自动取prediction[0]只留推理分支。随后设备处理检测到 Apple MPS 时先把张量搬到 CPU 再执行 NMSmps in device.type候选筛选xc prediction[:, 4:mi].amax(1) conf_thres以所有类别置信度的最大值判断候选框坐标转换prediction.transpose(-1, -2)把(bs, 84, 6300)转成(bs, 6300, 84)再用xywh2xyxy把中心点格式转为对角点格式逐图处理按置信度阈值筛框 → 可选类别过滤 → 若框数超过max_nms按置信度降序截断 →Batched NMS通过c x[:, 5:6] * (0 if agnostic else max_wh)给不同类别的框加上坐标偏移后统一送入torchvision.ops.nms(boxes, scores, iou_thres)实现类别感知去重类别无关 NMS 时偏移量为 0数量与时间约束i i[:max_det]限制最大检测数当(time.time() - t) time_limit时打印WARNING ⚠️ NMS time limit exceeded并提前 break其中time_limit 0.5 max_time_img * bs。返回值为List[torch.Tensor]每张图对应一个形状(num_boxes, 6 num_masks)的张量列依次为(x1, y1, x2, y2, confidence, class, mask1, mask2, ...)。检测任务可直接消费前 6 列分割任务把第 6 列之后当作掩码系数。在任务模块中的调用方式检测推理 detect/predict.py#L14-L19 传入self.args.conf、self.args.iou、agnosticself.args.agnostic_nms、max_detself.args.max_det、classesself.args.classes检测验证 detect/val.py#L63-L71 额外传入labelsself.lbautolabelling与multi_labelTrue并把agnostic绑定到single_cls参数分割推理 segment/predict.py#L18-L24 显式指定nclen(self.model.names)保证掩码列不被误判为类别姿态推理 pose/predict.py#L16-L22 同样传入nclen(self.model.names)因为姿态模型输出4 nc kpt列NMS 只处理前4 nc列。坐标缩放与裁剪从网络输出回到原图scale_boxes边界框的等比还原网络推理在imgsz缩放并 letterbox 填充后的图上进行检测框必须映射回原始图像坐标系。scale_boxes(img1_shape, boxes, img0_shape, ratio_padNone, paddingTrue)完成这一过程img1_shape框所在图尺寸(height, width)网络输入img0_shape目标原图尺寸(height, width)ratio_pad若外部已算好(ratio, pad)可传入避免重复计算paddingTrue按 YOLO 风格 letterbox 处理先减 padding 再除以缩放比。ratio_pad为空时内部计算gain min(img1_shape[0]/img0_shape[0], img1_shape[1]/img0_shape[1])pad round((img1_shape[1] - img0_shape[1]*gain)/2 - 0.1)取整两侧留白。最终调用clip_boxes把坐标钳制在[0, 原图宽/高]内。典型调用在 detect/predict.py#L25pred[:, :4] ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)验证阶段 detect/val.py#L95-L96 则传入 dataloader 缓存的ratio_padbatch[ratio_pad][si]避免重复计算。姿态推理 pose/predict.py#L28 还追加.round()得到整数坐标便于可视化。scale_coords关键点与分割坐标的同步缩放scale_coords(img1_shape, coords, img0_shape, ratio_padNone, normalizeFalse, paddingTrue)与scale_boxes数学一致但逐点处理任意形状的坐标张量如关键点(N, 17, 2)并支持normalizeTrue把结果归一化到[0,1]。姿态推理中 pose/predict.py#L29-L30 用它把pred_kpts从网络输入尺寸缩放回原图坐标——这正是 yolov8-face 人脸关键点landmark后处理的关键一步。clip_boxes 与 clip_coords边界钳制clip_boxes(boxes, shape)对角点坐标形式对 Tensor 逐元素clamp_(0, shape[1]/shape[0])对 numpy 数组走向量化clip分支clip_coords(coords, shape)同样钳制但只处理(x, y)两列适用于关键点/线段坐标两者都是原地修改in-place调用方不需要接收返回值。边界框格式转换五大格式一键互转在训练数据加载、推理输出、标注保存等多个环节框的表示方式不同。ops.py提供的转换函数以torch.Tensor与np.ndarray双兼容输入 Tensor 则clonenumpy 则np.copy且统一支持[..., k]广播式索引可作用于任意前缀维度的张量。四种核心格式格式含义说明xyxy(x1, y1, x2, y2)左上角 右下角模型输出、绘图常用xywh(x, y, w, h)中心点 宽高YOLO 训练标签格式xywhn归一化的xywh除以图像宽高的 YOLO 标签ltwh(x1, y1, w, h)左上角 宽高COCO 数据集格式xyn归一化的(x, y)点多边形/关键点归一化坐标转换函数一览xyxy ↔ xywh核心互转# xyxy - xywh中心点 两端和的一半宽高 坐标差 y[..., 0] (x[..., 0] x[..., 2]) / 2 # x center y[..., 1] (x[..., 1] x[..., 3]) / 2 # y center y[..., 2] x[..., 2] - x[..., 0] # width y[..., 3] x[..., 3] - x[..., 1] # height # xywh - xyxy由中心点加减半宽高还原对角点 y[..., 0] x[..., 0] - x[..., 2] / 2 # top left x y[..., 1] x[..., 1] - x[..., 3] / 2 # top left y y[..., 2] x[..., 0] x[..., 2] / 2 # bottom right x y[..., 3] x[..., 1] x[..., 3] / 2 # bottom right yNMS 内部就用xywh2xyxy把模型输出从中心格式转为对角格式ops.py#L212验证阶段保存 txt 标签时用xyxy2xywh再归一化detect/val.py#L234-L239。xywhn2xyxy 与 xyxy2xywhn归一化 ↔ 像素# 归一化中心格式 - 像素对角格式可带 padding y[..., 0] w * (x[..., 0] - x[..., 2] / 2) padw y[..., 2] w * (x[..., 0] x[..., 2] / 2) padw # h 同理 # 像素对角格式 - 归一化中心格式clipTrue 时先做原地裁剪eps 是宽高下限 y[..., 0] ((x[..., 0] x[..., 2]) / 2) / w y[..., 2] (x[..., 2] - x[..., 0]) / wv5 数据加载器 v5loader.py 在 letterbox 增广后用xywhn2xyxy把归一化标签换算回像素框第 693、798、862 行在生成标签时用xyxy2xywhn(..., clipTrue, eps1E-3)归一化并防止零面积框第 706 行。xyn2xy归一化点 → 像素点y[..., 0] w * x[..., 0] padw y[..., 1] h * x[..., 1] padh用于把归一化的分割多边形点还原到像素坐标v5loader.py#L799、v5loader.py#L863。ltwh 系列COCO 风格xywh2ltwh(x, y, w, h)→(x - w/2, y - h/2, w, h)xyxy2ltwh(x1, y1, x2, y2)→(x1, y1, x2 - x1, y2 - y1)ltwh2xywh(x1, y1, w, h)→(x1 w/2, y1 h/2, w, h)ltwh2xyxy(x1, y1, w, h)→(x1, y1, x1 w, y1 h)。instance.py#L68-L80 的Bboxes.convert正是基于这四个函数在xyxy / xywh / ltwh三种格式间做统一切换注释里明确写明了三种格式的定义xyxy为左上右下、xywh为中心宽高YOLO 格式、ltwh为左上宽高COCO 格式。分割掩码操作从原型掩码到实例掩码分割模型的输出分为两组NMS 后的(N, 6 nc)检测头结果和(c, mh, mw)的掩码原型protos。process_mask系列算子负责把两者组合成每个实例的二进制掩码。process_mask 与 process_mask_upsampledef process_mask(protos, masks_in, bboxes, shape, upsampleFalse): c, mh, mw protos.shape # CHW masks (masks_in protos.float().view(c, -1)).sigmoid().view(-1, mh, mw) downsampled_bboxes bboxes.clone() # 框坐标按 mw/iw 比例缩到掩码分辨率 masks crop_mask(masks, downsampled_bboxes) # 按框裁剪 if upsample: masks F.interpolate(masks[None], shape, modebilinear, align_cornersFalse)[0] return masks.gt_(0.5) # 阈值化为 0/1 掩码流程要点masks_in protos做矩阵乘组合出每个实例的掩码 →sigmoid激活 → 裁剪到框内先缩放到掩码分辨率再做crop_mask避免大图上裁剪再上采样的性能损耗→ 可选 bilinear 上采样回输入尺寸 →gt_(0.5)二值化。注意process_mask的 bboxes 未作中心偏移适合框贴近掩码边界的场合。process_mask_upsampleops.py#L572-L590则先上采样再裁剪F.interpolate到shape后调用crop_mask在 segment/val.py#L36-L40 中被注释为 more accurate精度更高但更慢process_mask对应 faster 分支二者由验证器按性能需求选择。process_mask_native 与 scale_masksdef process_mask_native(protos, masks_in, bboxes, shape): masks (masks_in protos.float().view(c, -1)).sigmoid().view(-1, mh, mw) masks scale_masks(masks[None], shape)[0] # 先缩放 masks crop_mask(masks, bboxes) # 后裁剪 return masks.gt_(0.5)process_mask_native直接对原图尺寸做缩放与裁剪返回[h, w, n]布局配合retina_masksTrue输出高分辨率掩码。其底层scale_masks(masks, shape, paddingTrue)按 YOLO letterbox 规则计算gain与pad后做F.interpolate在 segment/predict.py#L34-L39 中retina_masks开启时走process_mask_native否则走process_mask(..., upsampleTrue)。CLI 参数retina_masks默认False见 default.yaml#L67。crop_mask张量化的框内裁剪n, h, w masks.shape x1, y1, x2, y2 torch.chunk(boxes[:, :, None], 4, 1) r torch.arange(w, ...)[None, None, :] # rows c torch.arange(h, ...)[None, :, None] # cols return masks * ((r x1) * (r x2) * (c y1) * (c y2))通过广播构造行列索引布尔掩码与 mask 逐元素相乘一次性对所有实例完成裁剪无需逐框循环。掩码与轮廓互转resample_segments(segments, n1000)把每条多边形闭合np.concatenate((s, s[0:1, :]))后通过np.linspacenp.interp重采样到固定n个点保证 batch 内掩码点数一致供Instances统一管理instance.py#L200-L207masks2segments(masks, strategylargest)用cv2.findContours提取轮廓strategylargest取最大连通域、strategyconcat拼接所有轮廓返回List[float32 数组]segment2box(segment, width640, height640)取多边形内满足图像边界约束的点返回最小外接(xmin, ymin, xmax, ymax)无有效点时返回零向量segments2boxes(segments)批量把轮廓转为xyxy再经xyxy2xywh输出中心格式在 v5loader.py#L1022 用于把分割标签转换成检测框标签scale_image(masks, im0_shape, ratio_padNone)按 letterbox 反算裁掉填充区后用cv2.resize恢复原图尺寸掩码验证存 JSON 时用于还原segment/val.py#L119-L121。实用辅助工具coco80_to_coco91_class()把 COCO 80 类索引映射为论文版 91 类索引检测验证器在 COCO 数据集上计算 mAP 时使用detect/val.py#L48make_divisible(x, divisor)返回能被divisor整除的最近整数常用于网络通道数设计clean_str(s)用正则[|#!¡·$€%()?¿^*;:,¨´]把特殊字符替换为下划线用于清洗数据集类别名Profile(t0.0)ContextDecorator计时类支持Profile()装饰器与with Profile():上下文两种用法在 CUDA 可用时自动torch.cuda.synchronize()保证计时准确。实战在 yolov8-face 中组合使用以人脸检测 5 点关键点widerface.yaml 中kpt_shape: [5, 3]为例一次完整推理的算子链如下# 1. 模型输出 preds形状 (1, 4nc5*3, 8400) 左右 preds ops.non_max_suppression(preds, conf0.25, iou0.7, max_det300, ncnc) # - (N, 6 15) for pred in preds: if len(pred) 0: continue # 2. 检测框缩放回原图 pred[:, :4] ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape) # 3. 关键点列重排为 (N, 5, 3) 并同步缩放 kpts pred[:, 6:].view(len(pred), 5, 3) kpts ops.scale_coords(img.shape[2:], kpts, orig_img.shape) # 4. 若需归一化标签 xywhn ops.xyxy2xywhn(pred[:, :4], worig_img.shape[1], horig_img.shape[0], clipTrue, eps1e-3)用户可通过 CLI 直接调节 NMS 行为yolo predict conf0.25 iou0.7 max_det300 agnostic_nmsFalse classes0对应 default.yaml 中conf预测默认 0.25、iou默认 0.7、max_det默认 300、agnostic_nms默认 False、classes等参数。所有转换函数均原生支持torch.Tensor与np.ndarray且不改写输入clone/np.copy可直接嵌入自定义后处理管线。小结ops.py是 YOLO 推理链路的最后一百米non_max_suppression决定哪些框留下来scale_boxes/scale_coords决定坐标落在哪里格式转换函数负责与训练标签、COCO JSON 及 dataloader 无缝对接掩码算子则把原型掩码变成每个实例的精确轮廓。理解这些算子的参数与调用链是进行检测、分割、姿态含人脸关键点任务二次开发、性能调优与模型部署的前提。赞分享人工智能计算机视觉深度学习【免费下载链接】yolov8-faceyolov8 face detection with landmark项目地址https://gitcode.com/gh_mirrors/yo/yolov8-face点击查看免费下载相关推荐YOLOv10 核心算子库 ultralytics/utils/ops.py 全解坐标转换、NMS 与 Mask 后处理实战指南YOLOv10 核心算子库 ultralytics/utils/ops.py 全解坐标转换、NMS 与 Mask 后处理实战指南 本指南以当前仓库 docs/人工智能深度学习计算机视觉Kornia 边界框对象式 API 深度指南Boxes 与 Boxes3D 的格式转换、几何变换与掩码生成Kornia 边界框对象式 API 深度指南Boxes 与 Boxes3D 的格式转换、几何变换与掩码生成 导读本文围绕 Kornia 的 kornia.g计算机视觉人工智能深度学习图像处理YOLOv8-Face模型转换为RKNN格式的完整指南YOLOv8 Face模型转换为RKNN格式的完整指南 概述 本文将详细介绍如何将YOLOv8 Face人脸检测模型转换为RKNN格式以便在Rockchip人工智能计算机视觉深度学习上一篇NHSE终极指南5步掌握动物森友会存档编辑核心技术下一篇NHSE动物森友会存档编辑器3步打造你的梦想岛屿终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

自学嵌入式第二天(C语言篇——数据类型)

自学嵌入式第二天(C语言篇——数据类型)

琐碎的敲代码内功。(以为很简单 ,结果全是坑)1.C语言提供的数据类型2.整数类型常量:在程序运行过程中,其值不能被改变的量变量:在程序运行过程中,其值能被改变的量(1)整型…

2026/10/14 20:49:14 阅读更多 →
openJiuwen 记忆引擎基础模型:MemInfo 单条记忆信息结构全解

openJiuwen 记忆引擎基础模型:MemInfo 单条记忆信息结构全解

人工智能AI AgentAgent 框架工具调用Agent 工作流RAGMCP Clients强化学习 【免费下载链接】agent-core-java openJiuwen agent core Java是 openJiuwen Core的 Java版本,提供AI Agent开发、运行、调优与演进相关的全套SDK能力。 项目地址: https://gitco…

2026/10/14 20:49:14 阅读更多 →
模拟退火求解二维装箱问题:原理、实现与工程调优

模拟退火求解二维装箱问题:原理、实现与工程调优

模拟退火算法求解装箱问题,我第一次真正上手,是在一个托盘排样项目里。需求方只说了一句话:把尺寸不一的纸箱尽量多地放进托盘,允许90度旋转,不许压坏。我当时觉得,这就是矩形排样,先求个面积下…

2026/10/14 20:49:14 阅读更多 →

最新新闻

48V输入LDO稳压芯片方案:PW8600 80V耐压/70V宽压/1.8μA低功耗电路详解

48V输入LDO稳压芯片方案:PW8600 80V耐压/70V宽压/1.8μA低功耗电路详解

LDO 稳压芯片 选型助手 面向硬件工程师与电子研发人员,通过输入电压 / 输出电压快速匹配合适的 LDO 型号, 并提供完整参数查阅、外围器件建议与型号清单,让选型一步到位。 传统 LDO 耐压不足 5V/6V LDO 无法直连 24V/36V/48V 总线&#xff0c…

2026/10/14 21:37:29 阅读更多 →
零依赖单测:用Node内置测试运行器替代Mocha、Chai与Sinon

零依赖单测:用Node内置测试运行器替代Mocha、Chai与Sinon

我最近接手一个老服务,第一件事不是看业务代码,而是先摸一遍它的测试链路:Mocha 负责跑,Chai 管断言,Sinon 做 mock,再加一个 nyc 统计覆盖率。功能倒是都能满足,但每次新同事 clone 项目光装依…

2026/10/14 21:37:29 阅读更多 →
UE4塔防开发实战:士兵AI、塔防调度与伤害结算管线

UE4塔防开发实战:士兵AI、塔防调度与伤害结算管线

简介:这是一份基于Unreal Engine 4.22开发的3D塔防游戏完整工程,面向希望学习UE4游戏开发、塔防玩法实现与C编程的开发者,尤其适合具备一定引擎基础、想通过实战项目理解RTS与塔防机制的中级学习者。资源以zip压缩包形式提供,整体…

2026/10/14 21:37:29 阅读更多 →
dig_cli鸿蒙化适配:从DNS报文到内网域名治理的完整实践

dig_cli鸿蒙化适配:从DNS报文到内网域名治理的完整实践

1. 先说结论:为什么我要做 dig_cli 的鸿蒙化适配今年有一个项目,要在鸿蒙生态里做一个面向内部网络管理场景的域名解析诊断工具。需求本身很朴素:管理员输入一个域名,工具能快速给出权威解析结果、响应延迟分布、不同记录类型的查…

2026/10/14 21:37:29 阅读更多 →
SpringBoot+Redis+硬件项目启动报错排查与避坑指南

SpringBoot+Redis+硬件项目启动报错排查与避坑指南

接手带硬件对接的SpringBoot项目,启动时报错,这大概是后端开发里最磨人的场景之一。尤其是应用里同时压着Redis、网关路由、硬件设备初始化三块内容的时候,启动失败的原因往往不是某个单点组件坏了,而是链路耦合出的连锁问题&…

2026/10/14 21:37:29 阅读更多 →
基于Flutter与OpenHarmony的油耗追踪App开发实践

基于Flutter与OpenHarmony的油耗追踪App开发实践

最近在整理加油小票的时候我突然意识到一个问题:我根本不知道自己这台车的真实油耗是多少。仪表盘上那个瞬时油耗和表显平均油耗,短期看看还行,时间一长就会发现它跟实际开销对不上——特别是冬天冷启动、夏天开空调、周末跑高速这几类场景混…

2026/10/14 21:36:28 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战: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/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →