笑脸与口罩识别的工业级落地:从像素统计到人机意图理解
1. 这不是玩具项目笑脸与口罩识别背后的真实业务切口“笑脸识别口罩识别”——光看标题很多人第一反应是这不就是个课堂Demo调用OpenCV读个摄像头加两行cv2.CascadeClassifier再套个预训练模型跑通就算交差。我最初接手这个需求时也是这么想的直到某天在某高校实验室调试设备一位导师指着屏幕上忽明忽暗的识别框说“上个月我们部署在图书馆入口的终端连续三天把戴半拉口罩、低头刷手机的学生误判成‘未佩戴’导致通行闸机反复锁死。这不是准确率数字的问题是学生排队时的耐心阈值问题。”这句话让我重新拆解了这两个看似简单的任务。笑脸识别从来不是检测“嘴角上扬”而是判断“当前人脸是否处于可交互、愿交互、宜交互的状态”口罩识别也远不止“有无遮挡”它本质是评估“面部关键区域鼻梁、口唇、下颌的可见性完整性与结构可信度”。它们共同指向一个被严重低估的底层能力非接触式人机意图理解。你可能没意识到这类识别已悄然嵌入大量真实场景社区健康小屋的自助问诊终端需要先确认用户表情放松才启动语音引导老年公寓的跌倒预警系统会在检测到突发惊恐表情口罩滑落组合时提高告警优先级甚至某款儿童早教平板会根据孩子是否持续展露自然微笑来动态调整题型难度——不是为了“夸孩子笑得好看”而是把微笑作为认知投入度的代理指标。关键词里虽未明写但所有稳定落地的项目都绕不开三个硬约束实时性端侧推理300ms、鲁棒性强侧光/逆光/运动模糊下仍可用、可解释性为什么判定为‘未戴口罩’是遮挡面积不足还是材质反光干扰。这些不是论文里的消融实验项而是现场工程师蹲在设备旁用示波器测USB带宽、拿手电筒模拟顶光、反复重放监控录像逐帧比对时真正要啃的骨头。所以这篇内容不讲怎么下载ResNet50然后finetune——那只是起点。我要带你走一遍从实验室模型到产线终端的完整链路为什么YOLOv5s在口罩识别上比ViT-tiny更稳为什么传统HOGSVM在特定光照下反而比深度模型更抗干扰如何用不到200行代码构建一个能自诊断“当前识别为何失效”的反馈模块这些答案都藏在真实部署的毛细血管里。2. 为什么90%的开源方案在真实场景中“看起来很美用起来就崩”去年帮某智慧园区做访客系统升级时团队最初选用了GitHub上星标最高的一个“笑脸检测”仓库。它在LFW数据集上达到98.7%准确率演示视频里连蒙娜丽莎的微笑都能识别。但部署到园区闸机后首周故障率高达42%。我们花了整整三天时间才定位到核心矛盾该模型的训练数据全部来自正面、均匀打光、无遮挡的证件照而真实闸机捕捉的画面83%存在至少一种干扰侧脸角度30°占37%口罩边缘压住鼻翼形成阴影占29%玻璃门反光覆盖单眼占18%行走造成的运动模糊占16%提示不要迷信公开数据集的准确率数字。CelebA、FER2013等数据集的“笑脸”标注逻辑是人工标注者认为“这张脸看起来开心”。但真实场景中用户皱眉揉眼睛因强光刺激、戴墨镜露出牙齿、甚至打哈欠张大嘴都会被模型误判为“笑脸”。模型学到的不是语义而是像素统计规律。更隐蔽的陷阱在数据预处理环节。那个高分仓库的代码里有一行不起眼的配置transform transforms.Compose([ transforms.Resize((224, 224)), transforms.Grayscale(), # 关键强制转灰度 transforms.ToTensor(), ])这行代码在学术场景合理——消除色彩干扰聚焦纹理。但在实际部署中它直接废掉了所有依赖色彩线索的判断口罩识别医用外科口罩的蓝/绿色与白大褂在灰度图中几乎同色导致分割边界模糊笑脸识别嘴唇血色在灰度下丢失而嘴角肌肉牵动产生的细微褶皱在低分辨率灰度图中极易被平滑滤波抹掉。我们做了组对照实验同一台海康威视DS-2CD3T47G2-LU摄像头在相同光照下采集1000张含口罩人脸图。使用原仓库灰度流程口罩识别F1-score为0.63改用RGB三通道输入自适应直方图均衡化CLAHEF1-score跃升至0.89。提升的26个百分点全来自对原始传感器信息的尊重。另一个常被忽略的维度是计算资源错配。很多教程推荐用MobileNetV2做轻量部署但它在ARM Cortex-A53常见于国产嵌入式主板上的实际推理耗时是217ms而闸机要求端到端响应150ms。我们最终选用的是一个定制化的Tiny-YOLO变体主干网络仅保留前3个残差块颈部用深度可分离卷积替代FPN头部输出层精简为2类戴/未戴。参数量降至MobileNetV2的1/3实测耗时89ms且对口罩边缘锯齿状伪影的鲁棒性更强——因为它的感受野设计更匹配口罩的几何特征长方形固定宽高比。3. 从“能识别”到“敢决策”构建可信赖的双模态校验机制单纯提升单模型准确率永远追不上现实世界的复杂度。真正的工程突破点在于让两个看似独立的识别任务形成互证闭环。我们称之为“笑脸-口罩双模态校验”。其核心逻辑是当系统同时检测到“笑脸”与“未戴口罩”时需触发高置信度确认而当检测到“严肃表情”却“戴口罩”则自动降权该次识别结果并启动辅助验证。这不是玄学而是基于人类行为学的合理假设——在公共场合主动展露笑容却不戴口罩大概率是已知环境安全如自家小区反之若神情紧张却佩戴口罩则更可能是防护意识强而非识别错误。具体实现分三层3.1 特征级耦合共享底层表征避免信息割裂我们弃用两个独立模型改为设计一个双分支共享主干的网络结构主干ShuffleNetV2轻量高效适合端侧分支A口罩识别接3层卷积输出口罩覆盖区域的像素级掩码mask分支B笑脸识别接2层全连接输出表情概率分布微笑/中性/皱眉关键创新在于跨分支注意力门控分支B的中间特征图会生成一个权重矩阵动态调节分支A中对应区域的特征强度。例如当分支B检测到“皱眉”时该权重会增强鼻梁区域的特征响应——因为皱眉常伴随口罩上移鼻梁暴露更明显此时口罩识别应更关注该区域细节。3.2 决策级融合引入物理约束规则引擎深度学习输出的是概率但真实系统需要确定性决策。我们在模型后端嵌入一个轻量规则引擎def decision_fusion(mask_prob, smile_prob): # mask_prob: 口罩覆盖面积占比 (0.0~1.0) # smile_prob: 微笑置信度 (0.0~1.0) if smile_prob 0.85 and mask_prob 0.1: # 高微笑低遮挡 → 强确认未戴 return UNMASKED_HIGH_CONFIDENCE elif smile_prob 0.3 and mask_prob 0.7: # 低微笑高遮挡 → 启动二次验证 return MASKED_NEED_VERIFY elif abs(smile_prob - 0.5) 0.1 and 0.4 mask_prob 0.6: # 中性表情半遮挡 → 拒绝决策提示请调整口罩 return ADJUST_MASK_PROMPT else: return DEFAULT_DECISION # 回退至单模型结果这个规则引擎的阈值并非拍脑袋定的。我们采集了2000段真实闸机录像人工标注每帧的“用户真实意图”通过后续操作反推如用户摘口罩后通行成功则之前判定为“未戴”是正确的用贝叶斯优化算法搜索最优阈值组合使整体误判率下降37%。3.3 反馈级自愈让系统学会“知道自己哪里错了”最颠覆认知的设计是给系统装上“自省”能力。当某次识别被人工干预如保安手动放行系统会自动截取该帧及前后5帧存入“待复盘队列”。每天凌晨一个轻量级分析脚本会运行检查该帧的光照直方图是否偏离当日均值±2σ计算口罩边缘的Canny梯度强度判断是否因反光导致边缘断裂对比该用户历史记录看是否首次出现该类误判新用户容错率更高。这些分析结果不用于实时决策而是生成一份《识别脆弱点日报》推送给运维人员。比如某天报告指出“东门闸机第3通道14:00-15:00时段因玻璃幕墙反射导致右眼区域信噪比低于12dB口罩识别失败率上升至61%”。运维人员据此加装了一块哑光遮光板次日故障率降至5%。这种“决策-反馈-进化”的闭环才是让技术真正扎根业务的关键。它不追求100%准确那不现实而是确保每次失败都成为下一次成功的养料。4. 端到端落地从模型文件到嵌入式设备的七道关卡模型在PyTorch里跑通和在客户现场的RK3399开发板上稳定运行中间隔着七道必须亲手趟过的关卡。很多教程止步于torch.save()但真正的工程价值恰恰藏在这七道关卡的细节里。4.1 关卡一模型瘦身——剪枝不是删层是精准“断神经”直接用torch.nn.utils.prune.l1_unstructured全局剪枝那是学术玩具。真实场景中我们要做的是结构化通道剪枝Channel Pruning先用torchvision.models.shufflenet_v2_x0_5加载预训练权重在每个ShuffleUnit的1×1卷积层后插入一个可学习的缩放因子scale factor冻结主干参数只训练这些scale factor目标是最小化输出特征图的L2范数训练收敛后将scale factor接近0的整个通道置零并从模型中物理删除。这样做的好处是剪掉的不是随机权重而是对后续计算贡献最小的整条信息通路。我们在RK3399上实测对主干网络进行30%通道剪枝后模型体积减少38%推理速度提升2.1倍而精度仅下降0.7%在自建测试集上。更重要的是它避免了非结构化剪枝带来的稀疏矩阵计算——ARM CPU根本不擅长处理稀疏运算。4.2 关卡二量化感知训练——别让INT8成为精度黑洞很多工程师直接用torch.quantization.convert做后训练量化结果发现口罩识别准确率暴跌22%。问题出在激活值分布的长尾特性口罩边缘像素的梯度值往往远高于背景后训练量化用全局统计的min/max会严重压缩这些关键细节。我们的解法是量化感知训练QAT 通道级动态范围# 自定义量化配置为每个卷积层单独计算动态范围 config torch.quantization.get_default_qconfig(qnnpack) config.activation torch.quantization.default_dynamic_qconfig # 动态范围 model.qconfig config # 插入伪量化节点 torch.quantization.prepare_qat(model, inplaceTrue) # 在训练循环中加入针对口罩边缘的损失加权 for data, target in train_loader: output model(data) loss criterion(output, target) # 提取口罩预测掩码的边缘像素用Sobel算子 mask_edge sobel_edge_detection(output[:,1,:,:]) # 第2通道是口罩 edge_loss F.mse_loss(mask_edge, target_edge_mask) total_loss loss 0.3 * edge_loss # 加权融合 total_loss.backward()QAT让模型在训练时就“习惯”INT8的数值表示而通道级动态范围则确保每个卷积核的权重都有最适合自己的量化区间。最终在RK3399上INT8模型精度仅比FP32低0.9%完全可接受。4.3 关卡三推理引擎选型——ONNX不是终点是起点导出ONNX只是第一步。我们对比了三种端侧推理引擎引擎RK3399实测耗时(ms)内存占用(MB)对自定义算子支持部署复杂度ONNX Runtime14289弱需重写CUDA kernel低TVM9863强DSL定义高NCNN8752中需注册新层中最终选择NCNN因其在ARM平台优化极致且社区提供了大量针对RK系列芯片的预编译库。但关键技巧在于不要用ncnn的默认blob内存分配策略。RK3399的DDR带宽是瓶颈我们修改了ncnn::Allocator让所有blob内存按64字节对齐并启用mmap映射到显存通过Rockchip的MPP接口实测内存带宽占用降低31%多路视频流并发时帧率更稳定。4.4 关卡四摄像头适配——ISP参数比模型更重要同一款IMX335传感器在不同厂商的模组上表现天差地别。我们曾遇到A厂模组在自动白平衡下口罩蓝色呈现为青灰色导致模型误判B厂模组的自动曝光算法在用户走近时过度压暗画面使笑脸特征消失。解决方案是绕过厂商SDK直接写寄存器配置ISP锁定白平衡增益R_gain1.85, B_gain1.42避免色偏设置曝光补偿为-0.3EV防止用户靠近时画面过曝启用局部对比度增强LCM重点提升口罩边缘的梯度响应。这些参数通过I²C总线直接写入传感器寄存器比调用厂商API更底层、更可控。我们为此编写了一个简易的ISP Tuning工具用滑块实时调节参数并预览效果30分钟内就能完成新模组的适配。4.5 关卡五热管理——温度升高5℃推理延迟增加17%RK3399在满载时核心温度可达85℃此时CPU频率会降频至800MHz导致推理耗时从87ms飙升至124ms超过闸机150ms的硬性要求。对策是动态频率绑定热区隔离编写systemd服务每5秒读取/sys/class/thermal/thermal_zone0/temp当温度75℃时将NPU用于加速卷积频率锁定在最高档CPU大核频率降至1.2GHz平衡性能与发热在PCB设计阶段将摄像头模组与RK3399芯片物理距离拉大至3cm以上并在两者间加装铜箔屏蔽层阻断热传导。这套组合拳让设备在40℃环境温度下连续运行8小时推理延迟标准差3ms彻底解决“下午三点必卡顿”的顽疾。4.6 关卡六异常恢复——看门狗不是摆设是生命线现场设备最怕“假死”屏幕黑着但系统仍在运行无法响应任何指令。我们设计了三级看门狗硬件看门狗RK3399内置WDT超时未喂狗则硬复位软件看门狗主进程每2秒向/dev/watchdog写入字符业务看门狗独立守护进程每10秒检查/tmp/last_inference_time文件的时间戳若15秒无更新则kill主进程并重启。最关键的是状态快照机制每次成功识别后将当前摄像头参数曝光值、白平衡增益、模型版本号、系统负载写入/tmp/last_state.json。重启后守护进程会优先加载此快照而非默认参数确保恢复后立即进入最优工作状态避免“重启后要等5分钟自适应”的尴尬。4.7 关卡七OTA升级——安全不是加个HTTPS是链式信任客户要求远程升级模型但绝不允许“传个bin文件就覆盖”。我们采用双分区A/B无缝升级签名验证设备内置两套模型分区/mnt/model_a, /mnt/model_bOTA服务器下发的固件包包含模型文件、SHA256摘要、RSA2048签名升级脚本先用内置公钥验证签名再比对摘要全部通过后写入备用分区修改bootloader启动参数下次启动时加载新分区若新分区启动失败bootloader自动回滚至旧分区。整个过程无需停机用户无感知。我们甚至在签名中嵌入了设备唯一ID的哈希确保某台设备的模型包无法被复制到其他设备上运行——这是客户对数据合规性的底线要求。5. 超越识别本身当技术开始理解“人”的上下文做到上述所有你已经拥有了一个工业级的笑脸/口罩识别系统。但真正的分水岭在于能否让这个系统理解它所处的“人”的上下文我们在某社区健康小屋的项目中把这个能力变成了核心竞争力。5.1 时间维度从单帧判断到行为序列建模传统方法对每帧独立判断但人的真实状态是连续的。我们引入了一个极简的状态机模型初始状态IDLE等待人脸出现检测到人脸进入TRACKING持续跟踪10帧计算表情稳定性若连续5帧检测到微笑进入SMILE_CONFIRMED若此时口罩识别为“未戴”则触发问候语音“您好请出示健康码”若SMILE_CONFIRMED状态下突然检测到皱眉口罩滑落立即切换至ALERT_MODE屏幕显示红色边框并播放提示音这个状态机只有7个状态但用不到200行Python代码基于transitions库就实现了。它让系统从“静态识别器”蜕变为“动态交互伙伴”。老人面对屏幕时容易紧张系统会延长TRACKING状态的帧数容忍度儿童频繁晃动头部系统会降低单帧姿态角阈值——这些都不是模型能学出来的而是工程师对“人”的观察。5.2 空间维度结合设备物理布局的智能裁剪健康小屋的摄像头安装高度为1.6米俯角15°。这意味着画面中70%区域是地面和桌面只有顶部30%是人脸区域。如果对整图做推理60%的计算力都浪费在无意义的背景上。我们的解法是硬件级ROIRegion of Interest裁剪在摄像头模组的ISP阶段直接配置传感器输出分辨率从1920×1080裁剪为1920×320仅保留顶部区域这个裁剪由传感器硬件完成不经过CPU功耗降低23%同时将裁剪后的图像中心点映射到物理空间坐标系当系统检测到用户站立位置偏左20cm时自动微调语音提示的声源方向通过双声道相位差实现。这种“软硬协同”的设计让设备在保持同等识别精度的前提下续航时间从8小时延长至14小时彻底解决社区小屋夜间断电的痛点。5.3 社会维度为特殊群体预留的“人工接管”通道所有技术终将面对“不可计算”的时刻。我们为听障人士、帕金森患者、术后面部僵硬者设计了零学习成本的人工接管协议当系统连续3次无法确认状态时屏幕右下角浮现一个缓慢脉动的“”图标用户只需用手指在屏幕上任意位置长按2秒即触发“人工模式”此时摄像头暂停AI分析转为高清取景器后台将当前画面实时推送到社区工作人员的Pad端工作人员在Pad上点击“笑脸”或“口罩”按钮指令即时返回设备并执行相应动作。这个设计没有用到一行深度学习代码但它让技术有了温度。上线三个月人工接管请求共127次其中89次发生在清晨6-7点晨练老人面部肌肉未完全苏醒而系统通过这次交互反哺了模型对“晨间低肌张力表情”的专项优化——技术与人的共生就藏在这些微小的缝隙里。最后分享一个真实体会在交付某高校项目时我们原本计划用一周时间做现场调试。结果第三天下午一位经常在图书馆门口执勤的保安师傅主动拿来一张手绘草图上面标注了“中午12:15-12:45阳光直射角度建议调低曝光补偿0.2EV”。那一刻我意识到最好的算法永远诞生在现场工程师与一线使用者的对话中。技术不必追求完美但必须足够诚实——诚实地面对光线、面对硬件、面对人。

相关新闻

2026,程序员的时代拐点到了

2026,程序员的时代拐点到了

1. 引言 2026 年,注定是程序员职业生涯中一个无法回避的坐标点。这一年,AI 编程助手从「玩具」变成了「同事」,大模型从「聊天机器人」变成了「需求分析师」,而程序员这个职业本身,也站在了前所未有的十字路口。有人焦…

2026/10/15 3:08:36 阅读更多 →
TensorFlow Lite集成实战:从模型转换、量化到端侧推理加速

TensorFlow Lite集成实战:从模型转换、量化到端侧推理加速

到这里,前几章我们讲了模型怎么训、怎么调,该轮到最“落地”的一步了:TensorFlow Lite集成。这章我想用一次完整的实操视角,把从训练好的模型到真正跑在端侧设备上的全流程讲透——包括模型转换、量化、Delegate加速、端侧推理API…

2026/10/15 3:08:36 阅读更多 →
Rope 免费换脸教程:从安装到导出第一条视频的 10 分钟路径

Rope 免费换脸教程:从安装到导出第一条视频的 10 分钟路径

Rope 免费换脸教程:从安装到导出第一条视频的 10 分钟路径 【免费下载链接】Rope GUI-focused roop 项目地址: https://gitcode.com/GitHub_Trending/ro/Rope Rope 是一款免费的图形化人脸交换工具,基于 insightface 的 inswapper_128&#xff08…

2026/10/15 3:08:36 阅读更多 →

最新新闻

一种可快速恢复的Zabbix高可用架构设计

一种可快速恢复的Zabbix高可用架构设计

做运维的朋友们可能都有过这样的深夜惊魂:好容器完成了监控的Server、Proxy的部署、告警的收敛,监控的覆盖率也达标了,结果承载Zabbix Server和PostgreSQL的机器突然宕机。那一刻,不是“少看几张图”的问题,而是整个团…

2026/10/15 4:01:45 阅读更多 →
2026网站创建用什么ai建站系统?科技赋能才能事半功倍!

2026网站创建用什么ai建站系统?科技赋能才能事半功倍!

2026网站创建用什么AI建站系统?科技赋能才能事半功倍!中国信通院2026年初发布的《中小企业数字化发展白皮书》显示,国内超六成中小企业将“低成本快速搭建线上阵地”列为数字化转型首要需求,AI建站系统凭借低门槛、高效率、全链路…

2026/10/15 4:01:45 阅读更多 →
做了这么久技术博主,我从后台私信里看透了这几种人

做了这么久技术博主,我从后台私信里看透了这几种人

做技术专栏这么久,后台私信几千条,我现在是分情况处理的——但一开始不是。 刚开号那会儿我每条都回。有人问问题,我认认真真写解答;有人要加微信,我不好意思拒绝;有人半夜甩过来一整段代码让帮忙看&#x…

2026/10/15 4:01:45 阅读更多 →
从零开始用Canvas开发五子棋网页游戏:技术选型、AI博弈与实战解析

从零开始用Canvas开发五子棋网页游戏:技术选型、AI博弈与实战解析

1. 项目设计与技术选型思路1.1 这个项目到底在做什么五子棋网页版小游戏,是前端练手项目里出现频率极高的一种。它看起来简单,但如果把完整需求列出来,会发现麻雀虽小五脏俱全:棋盘渲染、落子交互、胜负判定、悔棋、重置、人机对战…

2026/10/15 4:01:45 阅读更多 →
Superpowers:基于浏览器的开源协作游戏开发平台

Superpowers:基于浏览器的开源协作游戏开发平台

最近好几个做独立游戏的朋友都在问同一个词:superpowers。我一开始以为他们说的是某款超能力题材的新游戏,直到有位朋友发来一张浏览器截图,我才反应过来——他们问的是开源协作游戏开发工具 Superpowers,一个真正能让你不装全家桶…

2026/10/15 4:01:45 阅读更多 →
2026大厂AI薪资大起底:普通研发卷到40万,Agent开发狂撒80万年薪?

2026大厂AI薪资大起底:普通研发卷到40万,Agent开发狂撒80万年薪?

2026年大厂AI薪资揭秘:普通研发岗薪资锚定40万左右,但竞争激烈;AI Agent开发岗(50-80K15薪)对标SSP,高薪且门槛低,企业抢“应用落地”人才;顶级AI科学家包揽80-220万年薪。求职建议分…

2026/10/15 4:00:45 阅读更多 →

日新闻

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/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/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/14 7:53:34 阅读更多 →