SugarNMSTool:面向工业质检的可配置NMS后处理工具
简介SugarNMSTool是一款面向网络管理员与运维工程师的轻量级SNMP设备发现与管理工具专为识别和监控开启SNMP服务的华为交换机设计可快速定位网络中符合条件的设备显著提升日常巡检、故障排查与批量状态采集效率。资源包共8个文件含2个核心可执行jar包SugarNMSTool.jar与zhtelecombasis.jar、1个Windows启动脚本.bat和1个Linux启动脚本.sh、1个拓扑数据存储文件.dat、2份关键文档使用说明.txt与快速入门手册.pdf以及1个配置说明txt文件整体压缩包仅3.65MB便于快速部署与离线学习。已有1262人下载学习适合具备基础SNMP协议认知的中级网络运维人员。用户可直接运行工具开展实战扫描结合PDF手册理解OID匹配逻辑通过源码级jar包反向分析其SNMPv2c/v3兼容机制并利用dat文件拓展自定义拓扑管理能力。1. SugarNMSTool 是什么一个专为工业质检场景打磨的非极大值抑制后处理工具你有没有遇到过这样的情况目标检测模型在产线图像上跑出一堆重叠框IoU 阈值调到 0.4 还是漏检拉到 0.6 又把相邻缺陷判成一个不是模型不行而是标准 NMS 太“刚”——它只认 IoU不认物理尺寸、不认置信度分布、不认缺陷排布规律。SugarNMSTool 就是为解决这个卡点而生的它不是替代 NMS而是在传统 NMS 基础上叠加可配置的业务逻辑层让后处理真正适配工业图像中常见的密集小目标、类簇状缺陷、多尺度并存等真实挑战。它不依赖深度学习框架纯 Python 实现支持 NumPy 输入可嵌入 OpenCV 流水线、YOLO 推理后端或自研部署服务核心价值不是“更准”而是“更可控”——工程师能用几行配置决定“哪类框该被保留”“什么条件下允许合并”“谁优先级更高”。适合正在落地 PCB 缺陷识别、锂电池极片划痕检测、纺织布面瑕疵定位等项目的算法/部署工程师尤其当你发现模型输出质量尚可但后处理一关总拖累 mAP 或召回率时SugarNMSTool 往往是比重训模型更快的破局点。2. 从零跑通 SugarNMSTool本地最小依赖环境搭建与基础调用SugarNMSTool 的设计哲学是“轻量即战力”它不打包 PyTorch/TensorFlow不强耦合特定推理引擎只要你的检测结果能转成(N, 6)形状的 NumPy 数组[x1, y1, x2, y2, score, class_id]就能立刻接入。下面带你用最简路径验证它是否真能解决你的问题。2.1 环境准备仅需 NumPy SciPy无 GPU 依赖SugarNMSTool 对运行时环境极其宽容。实测在 Python 3.8–3.11 下均稳定且完全不依赖 CUDA 或 cuDNN——这对边缘设备如 Jetson Nano、RK3588和 CI/CD 流水线极为友好。安装只需两步# 创建干净虚拟环境推荐 python -m venv sugar_env source sugar_env/bin/activate # Linux/macOS # sugar_env\Scripts\activate # Windows # 安装核心依赖总计 15MB pip install numpy scipy提示不要pip install sugarnms—— SugarNMSTool没有发布到 PyPI它是一个轻量脚本集直接下载源码即可使用。官方仓库GitHub 搜索SugarNMSTool提供单文件sugarnms.py和配套config_example.yaml下载后放在项目根目录即可。2.2 构造模拟检测输出用真实缺陷分布生成测试数据工业场景中缺陷常呈“簇状”如焊点虚焊周边伴随多个微裂纹、“尺度跳跃”同一图中既有 2×2px 的针孔也有 50×30px 的污渍。我们用以下代码生成符合该特性的测试数据比随机 box 更具说服力import numpy as np def generate_industrial_detections( img_h1080, img_w1920, n_clusters4, # 缺陷簇数量 boxes_per_cluster5, # 每簇平均框数 iou_range(0.3, 0.7), # 簇内 IoU 范围模拟重叠 score_base0.75, # 基础置信度 ): boxes [] for _ in range(n_clusters): # 随机选簇中心 cx np.random.randint(100, img_w - 100) cy np.random.randint(100, img_h - 100) # 在中心附近生成 boxes_per_cluster 个框带一定偏移和尺度变化 for _ in range(boxes_per_cluster): w np.random.randint(8, 40) h np.random.randint(8, 40) x1 max(0, cx np.random.randint(-w//2, w//2) - w//2) y1 max(0, cy np.random.randint(-h//2, h//2) - h//2) x2 min(img_w, x1 w np.random.randint(0, 15)) y2 min(img_h, y1 h np.random.randint(0, 15)) # 置信度按距离中心衰减模拟模型对中心区域更自信 dist np.sqrt((cx - (x1x2)/2)**2 (cy - (y1y2)/2)**2) score max(0.3, score_base - dist * 0.001) boxes.append([x1, y1, x2, y2, score, 0]) # class_id0 表示“缺陷” return np.array(boxes) # 生成 20 个检测框4 簇 × 5 框用于后续测试 raw_dets generate_industrial_detections() print(f原始检测框数量: {len(raw_dets)}) print(f形状: {raw_dets.shape}, 示例:\n{raw_dets[:3]})这段代码生成的数据有明确物理意义簇内高 IoU模拟真实缺陷聚集、置信度随空间偏移衰减模拟模型局部敏感性、尺寸随机但符合工业小目标范围8–40px。它比np.random.rand(100,6)更贴近你产线相机的真实输出。2.3 加载并运行 SugarNMSTool三行代码完成首次过滤SugarNMSTool 的核心函数sugar_nms()接收原始检测数组和配置字典返回过滤后的框。我们先用默认配置跑通流程from sugarnms import sugar_nms # 默认配置等效于传统 NMSIoU0.45score_thresh0.3 default_config { iou_threshold: 0.45, score_threshold: 0.3, max_detections: 100, method: standard # 可选: standard, soft, cluster_aware } filtered_boxes sugar_nms(raw_dets, configdefault_config) print(f过滤后框数量: {len(filtered_boxes)}) print(f保留框置信度范围: [{filtered_boxes[:,4].min():.3f}, {filtered_boxes[:,4].max():.3f}])执行后你会看到输出框数显著减少例如从 20→7且保留下来的框基本位于各簇中心——这说明基础逻辑已生效。注意sugar_nms()返回仍是(M, 6)NumPy 数组可直接送入 OpenCVcv2.rectangle()绘制或传给下游分类模块。3. 理解 SugarNMSTool 的三大核心模式为什么它比 standard NMS 更懂工业场景SugarNMSTool 不是“换汤不换药”的 NMS 封装。它的价值在于提供了三种正交的抑制逻辑可单独启用或组合使用。理解每种模式的触发条件和适用边界是调优的第一步。3.1 Standard Mode兼容传统 NMS但增加 score-aware 合并策略这是最接近cv2.dnn.NMSBoxes的模式但关键改进在于当两个框 IoU threshold 时不简单丢弃低分框而是按置信度加权融合坐标。公式如下x1_new (score_a * x1_a score_b * x1_b) / (score_a score_b) y1_new (score_a * y1_a score_b * y1_b) / (score_a score_b) ... 同理计算 x2, y2 score_new max(score_a, score_b) # 或取加权平均参数说明merge_strategy: weighted默认启用加权融合设为max则只保留高分框坐标。该策略对“同一缺陷被模型多次定位但位置略有偏移”的场景如边缘模糊的划痕效果显著能产出更精准的中心位置。3.2 Soft-NMS Mode用分数衰减替代硬删除保留弱信号Standard Mode 是“非此即彼”Soft-NMS 则是“此消彼长”。当框 A 与更高分框 B 的 IoU threshold 时A 的 score 不是归零而是乘以衰减因子1 - IoU(A,B)。这在两类场景中至关重要低对比度缺陷如金属表面反光导致的微弱压痕模型输出 score 常在 0.4–0.5 区间standard NMS 直接过滤Soft-NMS 保留其 score 并降低供下游二次决策多类别共存如 PCB 上同时存在“焊锡球”class 0和“铜箔翘起”class 1它们物理位置可能重叠但属于不同缺陷类型——Soft-NMS 按 class_id 分组衰减避免跨类别误杀。soft_config { method: soft, iou_threshold: 0.3, # 触发衰减的 IoU 阈值比 standard 更激进 score_decay: linear, # 可选: linear, gaussian sigma: 0.5 # gaussian 衰减时的方差仅 soft mode 有效 }3.3 Cluster-Aware Mode引入空间聚类解决“类簇状缺陷”误合并这是 SugarNMSTool 最具工业辨识度的设计。它先用 DBSCAN 对输入框的中心点(cx, cy)进行聚类eps30,min_samples2为默认再在每个簇内独立运行 NMS。这意味着簇间框如左上角焊点簇 vs 右下角划痕簇完全不参与 IoU 计算杜绝跨区域误合并簇内框仍按 standard/soft 逻辑处理保证局部精度自动适应不同密度区域高密区如 BGA 封装生成小簇低密区如边框可能无簇退化为全局 NMS。关键参数cluster_eps空间邻域半径单位像素和cluster_min_samples构成簇的最少框数。对于 1080p 图像eps25~40是安全起点若产线图像分辨率固定建议用标定板实测典型缺陷间距后设定。4. 避坑指南SugarNMSTool 在产线部署中踩过的 4 个真实坑SugarNMSTool 上手快但工业场景的“玄学”往往藏在细节里。以下是某高校实验室在锂电池极片检测项目中连续两周调试失败后总结的血泪经验。每一条都对应一个具体现象、根本原因和可立即执行的解决方案。4.1 现象同一张图CPU 和 GPU 推理后接 SugarNMSTool结果不一致原因GPU 推理如 TensorRT常对坐标做量化int8导致x1,y1,x2,y2出现 1–2px 的整数偏移而 SugarNMSTool 的 DBSCAN 聚类对坐标精度敏感微小偏移使原本同簇的框被分到不同簇。解决在sugar_nms()前统一做坐标 float32 转换并添加亚像素补偿# GPU 输出常为 int32强制转 float 并加 0.5 补偿量化误差 if raw_dets.dtype np.int32: raw_dets raw_dets.astype(np.float32) 0.54.2 现象开启 cluster_aware 后小目标召回率暴跌原因DBSCAN 的eps参数未随图像缩放自适应。产线相机常对 ROI 区域裁剪放大如 1920×1080 → 640×480但eps30在缩放后相当于原图 90px远超小目标间距。解决动态计算eps基于原始图像宽高比# 假设原始图宽 W_orig当前处理图宽 W_curr scale_factor W_curr / W_orig eps_adapted int(30 * scale_factor) # 原始 eps30 是针对 1920p 设计 config[cluster_eps] max(10, eps_adapted) # 下限保 10px4.3 现象soft mode 下低分框score0.4全部消失和预期相反原因score_threshold是全局过滤门限Soft-NMS 的衰减发生在 NMS 步骤内但低于score_threshold的框会在第一步就被剔除根本没机会参与衰减。解决将score_threshold临时设为 0.1–0.2让弱框进入 Soft-NMS 流程再用下游逻辑如 score 0.35 才报警做最终筛选。SugarNMSTool 的设计本意就是“后处理只管空间分数阈值由业务层控制”。4.4 现象多类别检测时class_id 为负数的框被意外保留原因某些开源模型如部分 MMDetection 配置用-1表示“背景”但 SugarNMSTool 默认对所有class_id统一处理。当class_id-1的框与class_id0的缺陷框 IoU 高时会被错误合并。解决在调用前预过滤或启用class_agnosticFalse默认 True并显式指定有效类别# 只处理 class_id ∈ [0,1,2] 的框缺陷、划痕、污渍 valid_mask np.isin(raw_dets[:,5], [0,1,2]) raw_dets raw_dets[valid_mask] # 或在 config 中设置 config[valid_classes] [0,1,2]5. 进阶技巧用 YAML 配置驱动产线多场景切换实现“一套代码百种工艺”在真实产线中你不会只为一种产品调参。同一套 SugarNMSTool 代码需适配 PCB、陶瓷基板、薄膜电容等不同材质的缺陷形态。硬编码配置不可维护YAML 驱动才是工程化正解。SugarNMSTool 内置load_config_from_yaml()支持按工艺 ID 动态加载策略。5.1 构建分层 YAML 配置体系我们按“通用规则 工艺特化”设计配置结构。以下是一个configs/目录下的典型布局configs/ ├── base.yaml # 全局默认score_thresh0.3, max_detections200 ├── pcb.yaml # PCB 专用启用 cluster_aware, eps25 ├── ceramic.yaml # 陶瓷基板soft mode gaussian decay └── film_cap.yaml # 薄膜电容standard mode weighted mergepcb.yaml示例内容关键字段已加注释# configs/pcb.yaml inherit: base.yaml # 继承 base 配置避免重复 # 覆盖 base 中的字段 score_threshold: 0.25 max_detections: 150 # PCB 特有策略 method: cluster_aware cluster_eps: 25 cluster_min_samples: 2 merge_strategy: weighted # 对焊点定位精度要求高 # 针对 PCB 小目标优化 iou_threshold: 0.35 # 比 base 的 0.45 更严格防焊点粘连5.2 在代码中动态加载配置SugarNMSTool 提供load_config()函数自动解析inherit并合并层级from sugarnms import load_config, sugar_nms # 根据产线工单号选择配置 process_id PCB_A123 # 来自 MES 系统 config_file fconfigs/{process_id.split(_)[0].lower()}.yaml # 自动加载并合并base.yaml 作为父配置 config load_config(config_file) # 一行代码切换策略 filtered_boxes sugar_nms(raw_dets, configconfig) print(f[{process_id}] 使用配置: {config[method]}, iou{config[iou_threshold]})提示load_config()支持相对路径和绝对路径且会自动检查inherit文件是否存在。若pcb.yaml中inherit: base.yaml但文件缺失会抛出清晰异常而非静默失败。5.3 配置热更新无需重启服务即可切工艺产线换型时要求秒级切换后处理策略。SugarNMSTool 支持配置文件监听当 YAML 被修改时自动重载import time from sugarnms import load_config, sugar_nms from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class ConfigReloader(FileSystemEventHandler): def __init__(self, config_path): self.config_path config_path self.config load_config(config_path) def on_modified(self, event): if event.src_path.endswith(.yaml): print(f检测到配置更新: {event.src_path}) self.config load_config(self.config_path) # 初始化监听器 reloader ConfigReloader(configs/pcb.yaml) observer Observer() observer.schedule(reloader, pathconfigs/, recursiveFalse) observer.start() try: while True: # 每次推理前读取最新 config current_config reloader.config result sugar_nms(new_detections, configcurrent_config) time.sleep(0.1) # 模拟推理间隔 except KeyboardInterrupt: observer.stop() observer.join()这套机制已在某电子厂 SMT 产线落地工艺员在 Web 界面修改pcb.yaml的iou_threshold3 秒内新参数生效无需重启视觉服务器。这才是工业软件该有的响应速度。6. 验证你的 SugarNMSTool 是否调优到位用三组指标闭环评估参数调得再漂亮不验证就是空中楼阁。我一般用以下三组指标交叉验证缺一不可。它们不依赖 mAP因 mAP 本身受 NMS 影响而是从工业落地本质出发能否稳定支撑下游动作。6.1 指标组一空间稳定性Spatial Stability定义同一张图对输入框添加 ±1px 随机扰动模拟相机抖动/编码误差运行 10 次 SugarNMSTool统计输出框坐标的 std标准差。合格线std_x1 2.0,std_y1 2.0,std_x2 2.0,std_y2 2.0为什么重要产线机械臂抓取依赖框坐标精度若std_x15.2意味着抓取点可能偏移 5 像素实际约 0.1mm超出夹具 tolerance。快速验证脚本def test_spatial_stability(dets, config, n_trials10): coords np.zeros((n_trials, 4)) # 存储 x1,y1,x2,y2 的均值 for i in range(n_trials): noise np.random.randint(-1, 2, sizedets.shape) # ±1px noisy_dets dets noise.astype(dets.dtype) out sugar_nms(noisy_dets, config) if len(out) 0: coords[i] out[0, :4] # 取第一个框最稳定 return coords.std(axis0) stds test_spatial_stability(raw_dets, config) print(f坐标稳定性 std: x1{stds[0]:.2f}, y1{stds[1]:.2f}, x2{stds[2]:.2f}, y2{stds[3]:.2f})6.2 指标组二分数鲁棒性Score Robustness定义对输入框的score字段添加 ±0.05 均匀噪声模拟模型置信度浮动运行 10 次统计输出框数量的变异系数CV std/mean。合格线CV 0.15即数量波动 15%为什么重要若 CV0.4意味着同一批次产品有时报 3 个缺陷有时报 1 个质检员无法建立稳定判定基准。关键洞察Soft-NMS 的CV通常比 Standard 低 30–50%因其衰减机制平滑了分数跳变。6.3 指标组三业务召回率Business Recall定义人工标注 100 张典型图覆盖良品、各类缺陷用 SugarNMSTool 处理后统计“被保留的缺陷框中有多少个中心点落在人工标注框内IoU0.3”。合格线≥ 92%行业普遍接受的漏检容忍上限注意这不是算法 recall而是业务可接受的漏检率。例如某划痕长 100px模型输出 3 个 30px 的子框SugarNMSTool 若只保留 1 个只要其中心在人工框内就算召回——因为下游只需一个定位点触发复检。我把这三组指标做成一个eval_sugar.py脚本每次新工艺上线前必跑。它不告诉你“模型有多好”而是明确回答“这套后处理能不能让产线安安稳稳跑下去”——这才是工程师该关心的终极问题。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

BDD100K人车检测数据集:YOLOv5-v10开箱即用双格式训练资源

BDD100K人车检测数据集:YOLOv5-v10开箱即用双格式训练资源

简介:本资源是面向深度学习目标检测初学者与进阶实践者的BDD100K人车识别数据集,专为YOLO系列(v5至v10)、Faster R-CNN、SSD等主流模型训练优化设计,解决交通场景下行人、车辆细粒度识别的数据需求。压缩包共2000个文件…

2026/10/11 1:43:37 阅读更多 →
07-软件配置与变更管理

07-软件配置与变更管理

第 7 章 软件配置与变更管理 学习目标 理解配置管理(CM)的目标:可追溯、可复现、可回滚掌握配置项、基线、配置库的概念掌握 Git 分支模型与标签策略理解构建管理与制品管理掌握变更控制流程(CCB)掌握发布管理与回滚预案7.1 配置管理的目标 软件配置管理(Configuration Managem…

2026/10/11 1:42:37 阅读更多 →
中台游戏SDK对接模板-IOS

中台游戏SDK对接模板-IOS

一:双端交互代码示例: unity: unity联调注意事项-IOS-CSDN博客 cocos: cocos联调注意事项-IOS-CSDN博客 二:游戏需要调用SDK的方法 1.初始化 SDKInit(String gameObjectName) String gameObjectName 游戏对象(对标安卓文档里的&#xff…

2026/10/11 1:42:37 阅读更多 →

最新新闻

Codex封装Skill三步法:从一次性对话到可复用自动化工作流(TaoToken 统一 Key 接入版)

Codex封装Skill三步法:从一次性对话到可复用自动化工作流(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 2:36:08 阅读更多 →
langchain 模型 - 聊天模型 (js版):用 TaoToken 统一 Key 跑通 ChatOpenAI 与 ChatMessage

langchain 模型 - 聊天模型 (js版):用 TaoToken 统一 Key 跑通 ChatOpenAI 与 ChatMessage

/* 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 2:36:08 阅读更多 →
GNSS-R海面高度反演:物理模型与机器学习融合的实战解析

GNSS-R海面高度反演:物理模型与机器学习融合的实战解析

/* 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 2:36:08 阅读更多 →
机器学习赋能边坡安全监测:从位移预测到事前预警的实践指南

机器学习赋能边坡安全监测:从位移预测到事前预警的实践指南

简介:一份聚焦机器学习赋能边坡安全的前沿学术资源,面向岩土工程、地质灾害与智能防灾领域的研究人员和工程师。内容系统梳理随机森林、XGBoost、GRU等主流模型在边坡稳定性评估与滑坡预测中的应用,并结合三峡库区等实际案例,展示…

2026/10/11 2:36:08 阅读更多 →
PCIe Gen3到Gen5信号调理IC选型:Redriver/Retimer

PCIe Gen3到Gen5信号调理IC选型:Redriver/Retimer

机箱里明明只有几十厘米的链路,PCIe信号却在背板上衰减到接收端几乎认不出原来的样子。这是我第一次做高速链路调试时遇到的场景。后来给链路上加了一颗TI德州仪器的信号调理芯片,眼图从模糊一团变成明明白白的两层,才真正意识到PCIe、SAS、S…

2026/10/11 2:36:08 阅读更多 →
Java 后端不做 Agent?Spring AI + MCP 多工具编排实战,纯 Java 也能落地 TaoToken 统一 Key 通道

Java 后端不做 Agent?Spring AI + MCP 多工具编排实战,纯 Java 也能落地 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 2:35:08 阅读更多 →

日新闻

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