电梯开关与乘客检测数据集实战:YOLO/VOC格式转换与训练避坑
简介面向计算机视觉目标检测的电梯开关与有无乘客检测数据集包含六百一十张清晰电梯场景图片覆盖关梯、空梯、开梯、有乘客四类典型状态适用于智慧楼宇、监控安防等场景的状态识别模型研发与算法验证。标注采用矩形框形式共一千二百三十个标注框四类样本数量较为均衡可直接用于训练YOLO系列或Faster R-CNN等主流目标检测网络。数据同时提供VOC与YOLO两种格式压缩包内按JPEGImages、Annotations、labels三个目录分类存放文件总数一千八百三十二个以jpg图片、xml标注、txt标签为主三者分别对应图像、标注与标签信息整体大小二十七点八MB便于快速下载、解压与后续预处理。图片画面清晰且未做数据增强能较真实反映电梯内部常见光照、视角与遮挡情况配合规范矩形标注可以较好地区分电梯开关门及有无乘客状态。目前已有一百六十人浏览学习适合需要开展电梯场景目标检测研究、课程设计或项目落地的开发者和学习者使用。1. 电梯开关与乘客检测数据集这个 610 张的双格式资源能解决什么做电梯轿厢视觉检测最难的不是把 YOLO 模型跑起来而是找到一批角度接近真实安装位置、标注语义又明确的现场图片。这套电梯开关及有无乘客检测数据集压缩包内共 610 张轿厢视角图片同时提供 YOLO 和 VOC 两种标注格式覆盖电梯门开关状态与轿厢内有没有乘客两个核心任务。对新手它省掉采集、清洗、标注的流程能直接进入训练对要做智慧电梯、梯控联动或轿厢安全告警的团队它可以作为 baseline 数据先跑通流程。它不算大规模数据集610 张对三分类检测刚过及格线但胜在场景集中、双格式齐备。2. 拆包先看格式YOLO 与 VOC 标注的目录结构、标签语义和坐标换算拿到压缩包后我习惯先不急着解压看图片而是先列目录确认三件事图片和 XML 是否一一对应labels 里的 txt 是否完整类别 id 是否和 classes.txt 对得上。这一步做扎实了后面训练时能少翻很多车。2.1 压缩包里常见目录结构与文件对应关系按标题推测这份资源大概率遵循 YOLO/VOC 双格式数据集的通用组织方式images 放原图Annotations 放 VOC 格式的 XML 标注labels 放 YOLO 格式的 txt 标注根目录放 class list。具体到你拿到的压缩包目录名可能略有差异但文件对应关系是确定的目录或文件内容说明images原始图片JPEG 或 PNG共 610 张AnnotationsVOC 标注文件XML 格式每张图一个同名文件labelsYOLO 标注文件纯文本 txt每行一个目标classes.txt类别清单每行一个类名行号即类别 id打开一个 XML 看一下VOC 的核心结构是size里的宽高和object里的name与bndbox。YOLO 的 txt 则每行是class_id x_center y_center width height六个字段之间用空格分开坐标全部归一化到 0 到 1。这里尤其要提醒的是VOC 的width和height是像素值YOLO 的width和height是归一化后的比例两者不是一个量纲直接用会出问题。2.2 类别 id 与标签语义要逐一核对电梯开关与乘客检测这个场景标签语义比普通目标检测更容易含混。按任务描述至少应该包含三类目标电梯门打开、电梯门关闭、乘客。有些数据集的乘客类名会叫person有些会叫passenger还有些会把门状态做成door一个类而不用 open/closed 分开。所以拿到数据后第一件事就是统计标签。我一般会先把 classes.txt 打开再用下面这段 Python 统计每个类别出现的次数以及每张图平均有几个框import os from collections import Counter label_dir labels cls_counter Counter() instances_per_image [] for fname in os.listdir(label_dir): if not fname.endswith(.txt): continue path os.path.join(label_dir, fname) with open(path, r) as fp: lines fp.readlines() instances_per_image.append(len(lines)) for line in lines: # 每行第一个字段是类别 id parts line.strip().split() if len(parts) 1: cls_counter[parts[0]] 1 print(类别 id 分布, dict(cls_counter)) print(平均每图目标数, sum(instances_per_image) / len(instances_per_image))这段脚本的逻辑很简单遍历 labels 目录下所有 txt用split()取每行第一个字段作为类别 id累加到 Counter 里。跑完之后把 id 和classes.txt的行号对一下比如0 door_open、1 door_closed、2 passenger。如果统计出来的 id 只有 0 和 1而 classes.txt 有三行那说明数据里可能存在空标签图YOLO 训练时是不报错的但验证集会因为缺类别而出现奇怪的混淆矩阵。2.3 VOC XML 转 YOLO txt 的坐标换算脚本有些版本的压缩包只给了一种格式或者你想把数据统一迁移到 YOLOv5/YOLOv8 工程里那就需要把 VOC 转成 YOLO。这一步最核心的是坐标换算把xmin, ymin, xmax, ymax转成归一化的x_center, y_center, width, height。下面是我平时必用的转换脚本参数化到函数里适合批量处理import xml.etree.ElementTree as ET import os def voc_to_yolo(xml_path, out_path, class_names): tree ET.parse(xml_path) root tree.getroot() # 读取图片原始尺寸YOLO 坐标需要归一化 img_w int(root.find(size/width).text) img_h int(root.find(size/height).text) lines [] for obj in root.findall(object): name obj.find(name).text if name not in class_names: continue cls_id class_names.index(name) bndbox obj.find(bndbox) xmin float(bndbox.find(xmin).text) ymin float(bndbox.find(ymin).text) xmax float(bndbox.find(xmax).text) ymax float(bndbox.find(ymax).text) # 中心点坐标 (min max) / 2再除以图片宽高 x_center ((xmin xmax) / 2) / img_w y_center ((ymin ymax) / 2) / img_h width (xmax - xmin) / img_w height (ymax - ymin) / img_h lines.append(f{cls_id} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}) with open(out_path, w) as fp: fp.write(\n.join(lines)) class_names [door_open, door_closed, passenger] voc_to_yolo(Annotations/000001.xml, labels/000001.txt, class_names)几个要注意的点第一XML 里size/width和size/height是图片的实际像素转换时必须转成 int否则除以浮点数会得到一个未归一化的结果第二如果 XML 里出现xmin xmax或ymin ymax的空框转换前要先过滤否则 YOLO 会报non-positive width/height第三YOLO 的类别顺序完全取决于class_names这个列表和classes.txt里的行号必须一致错位不会报错但训练出来会乱套。所以转换完我会再用上一节的统计脚本做一次反向校验确保 txt 里出现的类别 id 不超过类别总数。3. 从标注到训练把 610 张图改造成 YOLO 工程参数这么调这一章进入实操。很多人拿到 YOLO 双格式数据集习惯直接复制到官方仓库的 dataset 目录下结果训练时报错No labels found。原因是 YOLOv5/YOLOv8 对目录结构有固定约定训练集和验证集必须分开放图片和 txt 标注必须同名同路径。3.1 整理目录结构与 train/val 划分脚本我一般会先建一套干净的数据目录只保留图片和 labels然后把原来的 Annotations 备份到旁边不混在工程里。目录结构这样建# 训练/验证目录必须成对出现 mkdir -p dataset/images/train mkdir -p dataset/images/val mkdir -p dataset/labels/train mkdir -p dataset/labels/val注意这里的关键点是images/train与labels/train必须处在同一个dataset根目录下YOLO 会通过data.yaml里的train字段自动找labels目录。如果你把图片和标注分开放到两个大目录而不是按 train/val 分对后面就只能手写自定义 Dataset白白增加工作量。划分 train/val 时我建议用 8:2 并固定随机种子保证可复现import os import random import shutil random.seed(42) image_dir images label_dir labels files [f for f in os.listdir(image_dir) if f.lower().endswith((.jpg, .jpeg, .png))] random.shuffle(files) val_cnt int(len(files) * 0.2) for i, fname in enumerate(files): base os.path.splitext(fname)[0] subset val if i val_cnt else train shutil.copy(os.path.join(image_dir, fname), os.path.join(dataset/images, subset, fname)) src_label os.path.join(label_dir, base .txt) # 图片与标注必须同步移动否则训练时读取不到 if os.path.exists(src_label): shutil.copy(src_label, os.path.join(dataset/labels, subset, base .txt)) else: print(缺失标注, fname)这段脚本做了两件事按比例随机切分把同名图片和 txt 同步复制到对应子目录。复制而不是移动是为了保留原始数据真要做坏一个 py 脚本还能反悔。划分完成后检查一下验证集里没有空标签文件也是必要的因为如果某张无人图片没有 txtYOLO 默认会跳过它导致验证集图片数和标签数对不上。接着写dataset/data.yamlpath: ./dataset train: images/train val: images/val nc: 3 names: [door_open, door_closed, passenger] # 与 classes.txt 行号一致nc必须和names数量一致YOLOv8 在训练启动时会用这个文件推断类别数。如果你在第 2 章统计时发现实际只有两个目标类那这里就必须改成 2缺省一个类会导致训练过程中 loss 一直下不去。3.2 用预训练权重做迁移学习610 张原始图片对目标检测来说远远不够从头训练最稳妥的做法是用 COCO 预训练权重做迁移学习。YOLOv8 的官方预训练权重是yolov8n.pt它输出 80 类但模型的 backbone 和 neck 已经学到了通用特征。电梯门的边缘、乘客的轮廓在 COCO 的 person、door 等类别上本来就出现过所以前几十轮主要由预训练权重兜底。第一次训练我习惯用相对保守的参数# 第一次训练建议先跑小模型看收敛趋势 yolo detect train \ datadataset/data.yaml \ modelyolov8n.pt \ epochs100 \ imgsz640 \ batch16 \ device0这里逐个参数说明一下epochs100对小数据集不多但如果只跑 50 轮也能看到收敛趋势imgsz640是速度和精度的折中电梯里的乘客往往占画面比例小如果验证后小目标漏检严重可以把imgsz提到 960代价是训练时间几乎翻倍batch16在 V100 这类 16G 显存上很安全如果只有 8G 显存就降到 8再用optimizerSGD配合momentum0.937这类常见设置。YOLOv8 默认的 AdamW 在小数据集上容易过拟合我一般会换成 SGD收敛更可控。训练过程中重点看三个曲线box_loss、cls_loss、dfl_loss。dfl_loss是 YOLOv8 里回归损失的一部分它不直接对应某个物理量但能反映边界框的定位质量如果你看到cls_loss下降但box_loss震荡多半是学习率太大或者锚框匹配不稳定。另一个常见问题是batch设太小导致 BN 层的统计量乱跳也就是所谓 BN 崩溃现象是训练 loss 在正常下降但偶尔出一个大步跳动。如果网络下载预训练权重慢手动下载yolov8n.pt放到当前目录是常见做法。YOLO 检测到本地同名文件后不会重复下载。3.3 训练后验证、导出与推理闭环训练结束后不要只看训练集 loss真正决定模型能不能用的是验证集的 mAP。YOLOv8 的 val 命令会输出mAP50和mAP50-95两个指标前者对框的位置宽容度更大后者更严谨# best.pt 是训练过程中在验证集上表现最好的权重 yolo detect val \ modelruns/detect/train/weights/best.pt \ datadataset/data.yaml一般来说电梯开关这样的大目标类mAP50应该能到 0.9 以上乘客这种小目标受图片分辨率限制0.7 以上就算可用。如果你需要部署到边缘设备我习惯先导出 ONNX 再看结果# 导出前先确认 imgsz 与训练时一致 yolo export \ modelruns/detect/train/weights/best.pt \ formatonnx \ imgsz640导出的 ONNX 可以丢给 onnxruntime 跑 CPU也可以转 TensorRT 跑 GPU。注意导出后要用yolo detect predict拿几张现场图片先看一遍输出框不要直接接业务代码因为 ONNX 输出的坐标是归一化的而且类别顺序和训练时保持一致这些细节在接入时最容易出问题。4. 避坑指南电梯场景训练里五个最常见的翻车点这一章专门写给已经动手训练的人。以下这五条全是实际跑数据集时容易撞上的问题按「现象 → 原因 → 解决」的顺序展开前三条和标注有关后两条和训练/部署有关。4.1 现象loss 曲线正常下降但 mAP 一直很低这种情况最迷惑人因为 YOLOv8 的损失函数由 box_loss、cls_loss、dfl_loss 等多个分量组成整体 loss 下降不代表每个分量都好。最常见的根因是 passenger 在 610 张图里只出现了几百个实例而且目标小、遮挡多模型把多数学习容量用在了 door_open/door_closed 这些大目标上。解决思路有两个一是冻结 backbone 先训练让模型优先拟合检测头二是把imgsz调大。冻结训练在 YOLOv8 里可以直接传freeze参数。实操上我会先跑一组对照imgsz640和imgsz960各训 20 轮看验证集 mAP50 的差距如果提升超过 3 个点就用大尺寸继续全量训练。# freeze10 表示冻结前 10 层保留 COCO 预训练特征 yolo detect train datadataset/data.yaml modelyolov8n.pt epochs20 imgsz960 batch8 freeze10freeze10表示冻结前 10 层在 YOLOv8n 里大约对应整个 backbone 的早期卷积这样做的价值是保留 COCO 预训练的特征提取能力避免小数据集把主干权重带偏。4.2 现象混淆矩阵里 door_open 和 door_closed 互相串且矩阵行总和不唯一先解释一个容易误判的点目标检测混淆矩阵和分类任务不同很多人看到行总和不唯一第一反应是代码写错了。实际上这是因为一张图里有多目标检测框会按匹配关系计票重点不是抠总和而是看对角线以外的错误集中在哪。真正的问题是 door_open 和 door_closed 互相串。电梯门在中间位置时有的标注会归 open有的归 closed边界定义没统一。解决方法是重新看一遍数据里所有半开门图片在 classes.txt 里增加一个door_half类或者干脆只保留door_open一个类把 closed 当作背景。这样改动后门状态检测从三分类变成二分类整体任务简单很多。4.3 现象乘客的框只框住上半身训练后检测结果被裁掉一半这个坑在电梯场景特别常见因为标注人员习惯只框容易识别的头部和躯干但模型推理时希望在目标完整时框住全身。YOLO 训练时会把标注框当作 ground truth 去拟合如果 gt 本身只覆盖部分人体模型学到的就是「半个乘客」。解决方法是统一标注规范。数据已经标完的话可以用脚本把 bbox 向外扩张 10%前提是扩张后不超出图片边界# 扩展 bbox 边界5% 是一个保守值 xmin max(0, xmin - 0.05 * img_w) ymin max(0, ymin - 0.05 * img_h) xmax min(img_w, xmax 0.05 * img_w) ymax min(img_h, ymax 0.05 * img_h)这段逻辑不涉及复杂依赖放在 VOC 转 YOLO 脚本里一起跑掉即可。扩张比例太大反而会把旁边的门框卷进来5% 是我试下来比较可控的值。4.4 现象VOC 转 YOLO 后出现 0 尺寸框训练直接报错有些 XML 标注存在xmin xmax或ymin ymax这类无效框转换脚本如果没有过滤YOLO 在计算 IoU 时会收到width0的 proposal轻则输出 NaN loss重则训练中断。用下面这段 Python 快速扫一遍转换结果import os for fname in os.listdir(labels): if not fname.endswith(.txt): continue for line in open(os.path.join(labels, fname)): parts line.split() # 过滤宽或高非正数的框 if len(parts) 5 and (float(parts[3]) 0 or float(parts[4]) 0): print(fname, invalid:, line.strip())如果打印出内容不要只删除那行要回到对应的 XML 里看是不是标注坐标没取到。很多情况下是 XML 里的xmax写成了xmin width的像素计算值整数除法后反而比xmin小 1这种情况修正 XML 源文件比直接删行更可靠。4.5 现象换一个电梯井道后模型识别率明显下降电梯摄像头安装在轿厢顶部但不同梯井的视角、照明、门框颜色差异很大。610 张图片如果全部来自同一台电梯训练集和验证集按 8:2 随机切分后模型对这台电梯过拟合跨井道泛化能力自然弱。这是数据分布问题不是模型问题。解决方法是把数据按电梯井道的编号分组把 A 井道的图片放进验证集B、C 井道放进训练集再重新训练。这样虽然验证集精度会下降但更接近真实部署场景。数据增强侧可以加随机透视和随机曝光但不要开水平翻转——电梯门边缘的纹理在翻转后语义不变不过轿厢内如果有楼层按钮、品牌 logo 这类文字水平翻转会产生镜像样本反而干扰模型。5. 数据增强与部署校准让这个小数据集长出泛化能力5.1 把数据增强参数当成调参入口610 张图做数据增强不算奢侈反而是必要的。YOLOv8 默认开着 Mosaic对小目标聚集的场景有明显帮助。我通常会把mosaic保持1.0把perspective调到0.001左右用来模拟轿厢内不同安装角度的透视变形。透视增强别开太大超过0.005会让电梯门的直线边缘变成扭曲曲线反而破坏结构特征。5.2 用负样本压低误检如果数据集中没有「轿厢内空无一人」的图片模型就会把座椅、反光面、门缝阴影当成乘客。常见做法是额外收集一批无人电梯图标注为空 txt混进训练集。手动标注空标签文件也很简单在 labels 目录下放一个 0 字节的同名 txt 即可。5.3 置信度阈值与 NMS 校准训练结束后我习惯对验证集做一次阈值扫描不直接使用默认的conf0.25。对门状态检测阈值往高调能减少联动误动作对乘客检测如果是安全告警场景反而要把阈值调低保 recall。最终用yolo detect predict conf0.3 iou0.5固定一组参数再接入业务。提示YOLOv8 的iou是 NMS 的 IoU 阈值默认 0.7在乘客密集场景下调到 0.5 能让重叠框更快合并否则输出层会同时报出两个框。从那以后我每次拿到一份新数据集都会强制走一遍同样的流程先统计类别分布再转格式然后跑一个 20 轮冒烟训练看 single-class mAP最后才谈调参。顺序反了后面全是坑。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

基于Springboot宠物领养流程数字化管理系统【附源码+文档】

基于Springboot宠物领养流程数字化管理系统【附源码+文档】

💕💕作者: 米罗学长 💕💕个人简介:混迹java圈十余年,精通Java、小程序、数据库等。 💕💕各类成品Java毕设 。ssm,springboot,vue等项目&#xff0…

2026/10/1 16:16:37 阅读更多 →
真空膜蒸馏耦合微泡曝气处理高盐有机浓水——从有机预污染层抑湿到剪切/静电协同防垢

真空膜蒸馏耦合微泡曝气处理高盐有机浓水——从有机预污染层抑湿到剪切/静电协同防垢

论文来源:Wei Zhang, Shuili Yu, Rongsheng Ning, Pan Li, Xingli Ji, Ying Xu. Treatment of high-salinity brine containing dissolved organic matters by vacuum membrane distillation: A fouling mitigation approach via microbubble aeration[J]. Journal …

2026/10/1 16:16:37 阅读更多 →
OpenMuse 浏览器网络边界剖析:用回环代理与 DNS 校验彻底防住 SSRF 攻击

OpenMuse 浏览器网络边界剖析:用回环代理与 DNS 校验彻底防住 SSRF 攻击

OpenMuse 浏览器网络边界剖析:用回环代理与 DNS 校验彻底防住 SSRF 攻击 【免费下载链接】openmuse A personal agent with a browser, terminal, files, and work that keeps going built with CopilotKit and AG-UI. 项目地址: https://gitcode.com/gh_mirrors/…

2026/10/1 16:16:37 阅读更多 →

最新新闻

白盒测试报告不是填空题:从CAN硬件测试看结构化思维落地

白盒测试报告不是填空题:从CAN硬件测试看结构化思维落地

1. 这份模板不是“填空题”,而是白盒测试工程师的思维脚手架“白盒测试实验报告模板”——光看标题,很多人第一反应是:又一个要交差的文档格式?Word里套个表格,把代码覆盖率填进去,加几行“测试通过”就完事…

2026/10/1 19:01:57 阅读更多 →
响应时间:性能指标的最终裁决者——从原理到排查优化实战

响应时间:性能指标的最终裁决者——从原理到排查优化实战

半夜两点被值班电话叫醒,用户语气已经很急躁:“后台能登进去,但页面上所有的操作都像挂了,点一个按钮转圈十几秒。”我打开监控面板,第一件事看的就是性能指标里的响应时间曲线。别的指标都还能争辩两句——CPU高也许是…

2026/10/1 19:01:57 阅读更多 →
上下文工程实战:解决长对话中大模型失忆与上下文膨胀问题

上下文工程实战:解决长对话中大模型失忆与上下文膨胀问题

1. 当提示词开始失效:我在长对话里撞上的"失忆"问题 先说一个真实场景。几个月前我在做一个行业调研分析项目,为了让大模型帮我梳理一整条产业链,我在单次会话里陆续贴了几十份报告片段、访谈纪要、政策文件和历史对话结论。前二十…

2026/10/1 19:01:57 阅读更多 →
风格化渲染系统:从NPR管线到美术可编程的五层架构

风格化渲染系统:从NPR管线到美术可编程的五层架构

1. 风格化渲染不是“加滤镜”,而是重建视觉语法 “一个风格化渲染系统”——这七个字在图形学、游戏开发、影视后期甚至AIGC工具链里,早已不是新鲜词。但绝大多数人第一次接触它时,下意识反应是:“哦,就是给画面套个油…

2026/10/1 19:01:57 阅读更多 →
从零搭建AI工程能力:环境管理、模型推理优化与服务化部署实战

从零搭建AI工程能力:环境管理、模型推理优化与服务化部署实战

1. 从零搭建AI工程能力,为什么大多数人卡在第一步就放弃了 如果你最近在技术社区里频繁看到“ai-engineering-from-scratch”这个说法,不用怀疑,它不是什么新出的框架或者工具库,而是一种越来越多人认可的学习路径——从最底层开始…

2026/10/1 19:01:57 阅读更多 →
MCP实战:用AI构建Excel自动化处理服务

MCP实战:用AI构建Excel自动化处理服务

每天跟Excel打交道的朋友应该都有这种体会:处理报表本身不是最费时间的,费时间的是那些重复性的操作——打开表格、定位列、写公式、复制粘贴、再生成新表。尤其是当数据源有变动、格式不统一的时候,整个人都会烦躁起来。 我最近用MCP&#…

2026/10/1 19:00:57 阅读更多 →

日新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →