多场景抽烟行为数据集与YOLOv8训练全流程避坑指南
简介这份数据集面向深度学习目标检测与行为识别任务收录室内外多场景下的抽烟行为图像包含不同光照、角度、距离与姿态变化可用于训练吸烟动作识别模型解决真实环境中背景干扰带来的检测鲁棒性问题。资源包约984.58MB内含超过两千张jpg场景图像并配有对应xml标注文件标注框精确标出吸烟行为的位置与范围主要文件类型为jpg与xml另含少量目录辅助文件整体结构清晰解压后便于按目录读取。目前已有423人学习下载适合具备一定深度学习基础、需要真实标注数据开展目标检测实验的开发者参考。借助这些标注可快速完成数据加载与格式转换衔接Faster R-CNN、YOLO、SSD等常见框架用于模型训练、验证与调参也可为智能监控、健康行为分析等应用提供直接的数据支撑。该数据集很适合毕业设计、课程项目或算法对比实验帮助学习者深入理解数据标注对模型性能的影响。1. 多场景抽烟行为数据集行为检测的难点不在“烟”在“场景”做目标检测的同行都清楚找一份能直接落地的深度学习数据集比调模型还难尤其抽烟检测这种任务公开资源要么是近景摆拍的烟盒烟头要么拍摄视角和部署现场完全对不上。这份多场景抽烟行为数据集的价值在于它没有把“烟”当唯一目标而是把“人正在抽烟”这个行为框出来标签覆盖商场入口、地下通道、工地休息区、车站候车厅这类真实监控视角。它对接 YOLOv8 这类主流检测框架就能跑训练适合做智慧工地、园区安防、商场消防巡检的项目组。接下来我把标注口径、训练链路、踩坑记录逐条拆开照着走基本能复现。2. 抽烟检测为什么难从“看得到烟”到“认得出行为”2.1 先定任务边界检测“烟”还是检测“抽烟行为”很多人拿到数据集第一反应是训练一个“烟头检测器”这个思路在抽烟场景里大概率翻车。烟头在监控画面里往往只有几个像素而且被手挡住就消失烟是半透明的光线稍暗直接融入背景。你可以做个实验把自己拍的抽烟视频按帧提出来人眼能看清“有烟”的帧比例很低。所以这份数据集的标注角度是行为框不是物体框。标签不是“cigarette”而是“smoking”框住整个人或者人的上半身。这样做的理由很简单行为框的灰度变化更丰富——手部动作、烟支在嘴边的遮挡关系、肩部姿态——这些都成为模型可以利用的特征。检测烟头是单目标匹配问题检测抽烟行为是多特征联合问题后者在真实场景里稳定性高得多。实际项目里任务边界还要分两层你要的是“识别正在抽的人”还是“识别拿着烟的人”前者是行为识别后者是手持物识别。这份数据集按行为标注所以你的模型输出应该是“这人正在抽”不是“这人手里有东西”。这个区别后面会直接影响你的后处理逻辑和误报容忍度。2.2 标注口径什么算 smoking、什么算 holding数据集的可用性很大程度上取决于标注规范而标注规范是很多人拿回来不细看、训练完才骂娘的坑。先看你手上的标签清单一般会包含两类误判率很高的状态需要区分smoking正在吸烟烟支接触嘴唇和 holding手持烟但未吸。这两个状态在视觉上差异很小经常出现在同一段视频的相邻帧里。我一般会先花半小时核对一批标注样例重点看三种边界情况烟夹在耳朵上算不算手上拿着正在找打火机算不算烟在嘴里没点燃算不算不同的数据集作者有自己的口径这份数据集把口径写在了标签命名里训练前你要自己确认否则模型学到的边界和你业务需要的边界不一致。标注格式通常是 YOLO 的 txt 或者 LabelImg 导出的 JSON类别编号对应关系在 data.yaml 里。如果你发现类别数比你预期的少别急着补标注先把每个类别的标注框数量拉出来看分布这种数据集的类别不平衡一般比 .jpg 文件里藏着几个空标签更致命。2.3 从检测框到行为判定在 YOLO 里“抽烟”到底是一个什么目标把行为当作目标喂给 YOLO 是可行的但这个“目标”有自己的特殊性。普通物体检测里一辆车无论近还是远外形基本一致而一个“正在抽烟的人”他的姿态是动态变化的框的比例从横向的坐着到纵向的站着都有遮挡情况也比普通行人检测严重得多。这就带来两个直接影响。第一锚框调参你基本不用管YOLOv8 的自动锚框在这种数据集上收敛正常第二输入图像尺寸不能太小。监控场景下我一般用 640×640低于这个尺寸抽烟的局部特征如手部轮廓会糊成一团高于 960 收益有限还拖慢推理速度。如果数据里有大量远距离行人可以考虑 imgsz1280 配合小目标增强但默认从 640 开始调。另外要注意的是这类行为类数据的正样本集中在特定时间段——比如工地午休、楼道吸烟区。如果数据集的采集覆盖了一天中的多个时段光照变化本身就是数据增强如果只采了某一个时段你得自己在训练时补上光照相关的增强参数不然换了时间段推理性能会掉得很明显。这是后话先用这份数据集把基线跑通。3. 把数据集接进 YOLOv8 训练链路目录、格式、参数一次到位3.1 目录摆放与标签转换JSON 转 YOLO TXT 的血泪细节拿到数据集先别急着训练把目录结构理清楚。YOLOv8 的标准结构是这样的我一般先用一段命令核对dataset/ ├── images/ │ ├── train/ │ └── val/ ├── labels/ │ ├── train/ │ └── val/ ├── data.yaml └── classes.txtdata.yaml里要写对路径path字段用绝对路径或相对路径都行但注意训练时的工作目录要和 yaml 里的相对路径对应否则会报图片找不到。classes.txt每一行一个类别名data.yaml里的names列表顺序必须和它一致。如果数据集给的是 LabelImg 格式的 JSON需要先转成 YOLO 的 txt。转换脚本我每次写都会踩同一个坑类别编号是从 0 开始的不是你肉眼数的 1。按下面的脚本转顺手把框过滤一遍import json import os def convert_labelimg_json(json_path, out_txt_path, class_map): LabelImg 的 JSON 标注转 YOLO 格式 txt。 注意LabelImg 坐标是绝对像素需要归一化到 0~1。 with open(json_path, r, encodingutf-8) as f: data json.load(f) img_w data[imageWidth] img_h data[imageHeight] lines [] for shape in data[shapes]: label shape[label] if label not in class_map: # 遇到没映射的类别直接跳过别让脏数据进训练集 continue class_id class_map[label] # LabelImg 存的是多边形顶点这里用外接矩形 points shape[points] xs [p[0] for p in points] ys [p[1] for p in points] x_min, x_max min(xs), max(xs) y_min, y_max min(ys), max(ys) # 过滤过小框小于 2 像素的框基本是标注手误 if (x_max - x_min) 2 or (y_max - y_min) 2: continue # 归一化到 YOLO 的 x_center, y_center, width, height 格式 x_center (x_min x_max) / 2.0 / img_w y_center (y_min y_max) / 2.0 / img_h w (x_max - x_min) / img_w h (y_max - y_min) / img_h # 概率极低但可能越界顺手裁剪 x_center min(max(x_center, 0), 1) y_center min(max(y_center, 0), 1) w min(w, 1) h min(h, 1) lines.append(f{class_id} {x_center:.6f} {y_center:.6f} {w:.6f} {h:.6f}) with open(out_txt_path, w, encodingutf-8) as f: f.write(\n.join(lines)) # 用之前先看一眼 labels 里真实的类别名别凭猜 class_map { smoking: 0, holding: 1, normal: 2, }代码逻辑不多说三个细节值得注意多边形转外接矩形是常规操作但多边形面积只占外接矩形 30% 的标注框说明标注时框画偏了这类样本越多模型越糊涂小于 2 像素的框直接丢掉这种框训练时不提供有效梯度最后那个越界裁剪别省略标签值里出现负数或大于 1 的坐标训练时会直接报错而且错得莫名其妙。3.2 训练集划分按场景切别按帧随机切这是多场景数据集最需要警惕的一步。如果你的数据集里包含视频抽帧随机 8:2 划训练验证集在“找同源帧”上翻车的概率极高——相邻两帧一张进了训练集一张进了验证集模型在验证集上的表现会虚高换到真实场景立刻现原形。我看到很多新手在这翻车症状是训练 loss 1.2 以下验证 mAP 也不错部署到现场发现大量漏检。原因就是同视频帧污染了验证集。正确做法是按场景或按视频文件划分。这份数据集文件名通常带场景前缀按前缀分就行import os import random import shutil def split_by_scene(image_dir, train_dir, val_dir, val_ratio0.2): 按文件名前缀场景ID划分数据集保证同一场景的帧不会同时出现在训练集和验证集。 # 假设文件名格式scene01_000123.jpg 或 mall_20241011_001.jpg scene_files {} for fname in os.listdir(image_dir): # 取第一个下划线之前的部分作为场景ID scene_id fname.split(_)[0] scene_files.setdefault(scene_id, []).append(fname) scenes list(scene_files.keys()) random.shuffle(scenes) val_scene_count max(1, int(len(scenes) * val_ratio)) val_scenes set(scenes[:val_scene_count]) for scene_id, files in scene_files.items(): target_dir val_dir if scene_id in val_scenes else train_dir for fname in files: src os.path.join(image_dir, fname) dst os.path.join(target_dir, fname) shutil.copy2(src, dst) # 对应的 txt 标签也要同步复制路径替换 images 为 labels这段脚本简单但需要你确认两件事第一文件名的场景前缀确实能区分不同拍摄地点如果同一场景用了多个前缀划分结果就不准第二标签文件名必须和图片名一一对应复制过去后你可以数一下目录里的 txt 数量和图片数量对不上就要回头查——这一条在下一章避坑里细说。3.3 训练参数与增强有些人开 fliplr 会翻车数据集的 data.yaml 写好、划分完成后训练命令不复杂。但参数不是 YOLOv8 默认值直接抄抽烟行为检测有它的特殊性。先看增强配置。YOLOv8 默认开了 fliplr水平翻转对行人检测来说通常没问题但如果你后续要做左右手分析或者标注规范里“左手持烟”和“右手持烟”被区分为不同的业务事件fliplr 会把左右互换强行污染语义。我一般直接关掉# smoking_data.yaml path: /path/to/dataset train: images/train val: images/val names: 0: smoking 1: holding 2: normal训练命令yolo detect train \ datasmoking_data.yaml \ modelyolov8m.pt \ epochs150 \ imgsz640 \ batch16 \ fliplr0.0 \ mosaic1.0 \ hsv_h0.015 \ hsv_s0.7 \ hsv_v0.4 \ patience30 \ projectruns/smoking \ nameexp1fliplr0.0是最重要的一行。mosaic保持默认 1.0这个增强能把不同场景的背景混在一起对提升场景泛化性有帮助。hsv_v0.4是给光照变化留余地——数据集里白天黑夜都有这个值不够的话晚上场景的召回会崩。patience30在 150 个 epoch 里足够不用改。模型规模用yolov8m起步数据量不大时直接用yolov8x只会过拟合没必要。还有一点很多人忽略类别不均衡处理。如果 smoking 只有 2000 框而 normal 有 2 万框默认训练出来的模型会偏向把 target 判成 normal。我没有在命令里加 class weights因为 YOLOv8 的损失函数对正负样本有内置平衡但训练完你要看一眼每类的 Recall差太多就把稀有类复制两份进训练集简单粗暴有效。3.4 结果怎么看mAP 不代表不漏检训练完别只盯着mAP0.5一个数字。抽烟检测的部署场景大多是“宁多勿缺”安防、消防类需求里漏掉一个正在抽烟的人比误报二十次严重得多。所以验证阶段我给两个指标排序Recall 排第一Precision 排第二mAP 是它们的综合曲线不代表单类表现。yolo detect val \ modelruns/smoking/exp1/weights/best.pt \ datasmoking_data.yaml \ imgsz640 \ conf0.25 \ iou0.5输出里直接看每类的recall列。smoking 类 Recall 低于 0.8 说明漏检偏多先别调阈值回看训练集里 smoking 类的标注框质量——常见问题是标注框只框了头部没框身体导致模型学到的特征不够完整。conf 阈值动态调。我是这样找基线先 0.25 跑验证集得到一个检测结果文件然后看 smoking 类的置信度分布选一个让 Recall 掉得不那么快的阈值。很多项目把 conf 卡在 0.5在抽烟检测上太保守了宁可 0.2 配合后处理做帧间过滤也不要为了省误报把 recall 压下去。4. 避坑清单抽烟检测数据集五条踩出来的翻车记录4.1 现象Loss 稳定下降但 val mAP 纹丝不动原因数据集里有大量视频连续帧抽帧间隔太短。相邻 5 帧画面内容几乎一样模型在这种“复读机”数据上学到的泛化特征很弱验证集里恰好也是同一段视频的帧所以 loss 好看但检测框质量没提升。解决抽帧间隔重新设置至少每秒抽 1 帧而不是每帧都留。如果数据集已经固定训练时把mosaic1.0开着强行混合背景能缓解一部分。后续补数据时记住场景多样性比帧数重要。4.2 现象标签文件读到后全是空行或者类别编号错位原因LabelImg 标注时开了 auto save有些图没标完就跳过了导出的 JSON 里 shapes 为空还有一种情况是 class_map 顺序和 data.yaml 的 names 顺序没对齐比如你把 smoking 编成 0yaml 里却把它放在第一位。错位后模型会把抽烟框当人等训练完混淆矩阵全乱。解决训练前跑一次全量体检——遍历所有 txt统计每类框的数量再统计空文件的数量空文件直接删掉对应图片。类别编号先打印classes.txt原始内容再和 yaml 对齐最后用 5 张图手动推理做 sanity check。4.3 现象训练中途显存溢出batch 一调小又 OOM原因多半是输入图没做 letterbox 缩放原始图直接喂给 640×640 训练长边 4000 像素的监控截图会吃掉大量内存。另一个常见原因是开了rectTrue之后 batch 内尺寸不统一个别图仍然特别大。解决用默认的 letterbox 逻辑别手动 resize。batch 降到 8 还在爆就检查是不是开了cacheTrue且数据集被缓存到显存——cachedisk代替图像放内存不放显存。4.4 现象模型在自己电脑上测挺好拿到现场漏检严重原因这是典型的 domain gap。数据集的场景是商场、工地高位视角你的部署场景是室内走廊平视视角训练数据里没有类似构图。多场景数据集不等于覆盖你所有场景它解决的是“多个常见场景”不是“所有场景”。解决部署前用现场视频抽 200~500 帧按第 3.2 节的划分方式单独做一个小测试集。如果条件允许把这批帧添加进训练集做一轮微调用yolov8m.pt的原权重接着训 30 个 epoch 就够了不用从头来。4.5 现象模型把“拿着烟”全识别成“正在抽”原因前面 2.2 节提到的 holding 和 smoking 标签口径问题。如果数据集中 holding 类的框和 smoking 高度相似或者 holding 本身就是 smoking 的子集模型没有判别性特征可学。这是标签定义问题不是模型问题。解决回去检查类别定义。如果业务上需要区分这两种状态先把数据集里的 holding 样本单独抽出来看数量。不够的话补标够的话从模型置信度分布里找一个区分度最好的阈值holding 的置信度通常会集中在低分段。如果两种状态在单帧内根本无法区分就别硬拆两个类业务后处理里用连续多帧判断。5. 上线前最后一道工序拿自己的视频把场景边界摸一遍模型训练完先别急着写接口我习惯用一段短视频把场景边界摸清楚。这一步的目的是知道你的模型在什么条件下失效而不是验证它有多准。from ultralytics import YOLO import cv2 import numpy as np from collections import Counter def probe_model(model_path, video_path, conf_thresh0.25): 用一段现场拍摄的视频做快速摸底 统计抽烟类目标在各帧的置信度分布并记录漏检帧。 model YOLO(model_path) cap cv2.VideoCapture(video_path) fps cap.get(cv2.CAP_PROP_FPS) frame_counter 0 conf_hist [] miss_frames [] while True: ret, frame cap.read() if not ret: break frame_counter 1 results model(frame, confconf_thresh, verboseFalse)[0] # 找到 smoking 类假设是类别编号 0的检测结果 smoking_boxes [ det for det in results.boxes if int(det.cls[0]) 0 ] if len(smoking_boxes) 0: miss_frames.append(frame_counter) for det in smoking_boxes: conf_hist.append(float(det.conf[0])) cap.release() conf_arr np.array(conf_hist) print(f总帧数: {frame_counter}, 检出帧数: {len(conf_arr)}) if len(conf_arr) 0: print(f置信度中位数: {np.median(conf_arr):.3f}) print(f置信度 P10: {np.percentile(conf_arr, 10):.3f}) print(f置信度 P90: {np.percentile(conf_arr, 90):.3f}) print(f漏检帧比例: {len(miss_frames) / frame_counter * 100:.1f}%) # 保存漏检帧的前 20 个用于后续人工确认 miss_dir miss_frames os.makedirs(miss_dir, exist_okTrue) for idx in miss_frames[:20]: cap.set(cv2.CAP_PROP_POS_FRAMES, idx - 1) ok, f cap.read() if ok: cv2.imwrite(f{miss_dir}/miss_{idx}.jpg, f) return conf_arr, miss_frames这段代码做的事情很简单逐帧跑模型统计 smoking 类置信度分布记录零检出的帧并保存现场截图。我不会用它评估 mAPmAP 交给验证集这里只看两个信号——置信度中位数低于 0.3说明模型在这个场景里很勉强阈值得往下调漏检帧集中在某个时间段多半是光照问题把这个时间段的帧补进训练集做增量微调。从那以后我每次接手抽烟检测项目都会强制自己先跑一遍这个摸底脚本再谈部署它帮我避开了至少三次“测试集 mAP 挺高、现场一用就废”的尴尬。这份多场景数据集是个好起点但场景的边界永远要靠你自己的视频来画。希望这段笔记帮你在训练时少走几段弯路。本文还有配套的精品资源点击获取

相关新闻

多模态大模型:统一语义空间与跨模态推理实战指南

多模态大模型:统一语义空间与跨模态推理实战指南

1. 这不是“又一个AI概念”,而是正在发生的生产力迁移“多模态大模型能干什么?”——这个问题最近在技术圈、产品会、甚至咖啡馆里被反复抛出,但多数回答还停留在“它能看图说话”“它能听懂语音”这种碎片化描述上。我从2022年Q4开始系统性地…

2026/9/29 18:21:02 阅读更多 →
天气分类数据集实战:9000张图像训练ResNet50全流程解析

天气分类数据集实战:9000张图像训练ResNet50全流程解析

简介:一份面向计算机视觉与深度学习入门人群的天气图像分类数据集,覆盖云、露、雾霾、霜、雨凇、冰雹、闪电、雨、彩虹、沙尘暴、雪、日出等10余种常见天气现象,样本总量约9000张。数据已按训练集/测试集划分为data/train_data和data/test_da…

2026/9/29 18:21:02 阅读更多 →
Sentinel-2影像高效下载指南:从L1C/L2A选择到API批量自动化

Sentinel-2影像高效下载指南:从L1C/L2A选择到API批量自动化

刚开始跑通Sentinel-2下载流程的时候,我其实走了不少弯路。那时候对哥白尼数据中心的印象还是老版Open Access Hub,结果换了新平台之后,界面和接口全变了,连注册方式都和以前不一样。后来把查询、下载、批量自动化整条链路梳理清楚…

2026/9/29 18:21:02 阅读更多 →

最新新闻

Java Socket多线程聊天室实战:从通信到数据库落地

Java Socket多线程聊天室实战:从通信到数据库落地

简介:这是一份面向Java初学者与进阶开发者的网络聊天室项目源码,围绕Socket通信、多线程与数据库技术展开,适合用于课程设计、毕业设计或网络编程练手。压缩包共46个文件,约199KB,包含7个java源文件、20个class编译文件…

2026/9/29 19:03:46 阅读更多 →
ROS2多线程RTSP视频采集不丢帧实战方案

ROS2多线程RTSP视频采集不丢帧实战方案

1. 项目概述:为什么ROS2里拉RTSP流总在丢帧?这不是OpenCV的锅,是线程模型没对齐你是不是也遇到过这样的场景:用ROS2写了个视频采集节点,接的是海康、大华或者自己搭的GStreamer RTSP服务器,画面一开始还行&…

2026/9/29 19:03:46 阅读更多 →
三进制量化实操指南:让27B大模型在16GB显卡上高效运行

三进制量化实操指南:让27B大模型在16GB显卡上高效运行

1. 项目概述:为什么一块16GB显卡能“塞下”27B大模型?你手头那张标称16GB显存的RTX 5060 Ti(注意:这是当前消费级显卡中真实存在的型号,非虚构),跑Qwen3.8-27B时显存占用只有7GB左右——这听起来…

2026/9/29 19:03:46 阅读更多 →
AI Agent知识获取管道实战:TypeScript构建RAG检索增强生成系统

AI Agent知识获取管道实战:TypeScript构建RAG检索增强生成系统

1. 为什么知识获取管道是 AI Agent 落地的第一道坎 做 AI Agent 开发的人,绕不开一个尴尬的现实:模型本身很聪明,但它不知道你公司内部的业务规则、不知道你昨天刚更新的产品文档、更不知道你私有的那套数据表结构。你问它一个关于内部流程的…

2026/9/29 19:03:46 阅读更多 →
RAG全链路八环节拆解:从语义切片到生成控制的工程实践

RAG全链路八环节拆解:从语义切片到生成控制的工程实践

1. 这不是“搭个知识库”那么简单:RAG全链路的本质是信息流重构你搜“RAG知识库搭建”,刷出来的教程十有八九是:装ChromaDB、跑Embedding模型、丢几份PDF进去,最后敲个query——“返回结果很准!”然后戛然而止。我做过…

2026/9/29 19:03:46 阅读更多 →
RK3588平台MPP硬编硬解实战:从源码编译到性能调优

RK3588平台MPP硬编硬解实战:从源码编译到性能调优

上个月在RK3588板子上做一套视频预览和录像服务,最初直接拿CPU软编,GStreamer一跑起来核心温度蹭蹭往上涨,功耗表数字跳得让人肉疼。后来换成Rockchip的MPP媒体处理库走VPU硬编,效果立竿见影,CPU占用直接降了一个数量级…

2026/9/29 19:02:45 阅读更多 →

日新闻

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

1. 从"追平"到"端侧落地":开源模型这波到底变了什么如果你最近半年一直在关注模型圈的动态,应该能明显感觉到一个拐点:开源模型和闭源旗舰之间的差距,正在从"代差"变成"身位差"。以前大家…

2026/9/29 0:00:05 阅读更多 →
AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:00:05 阅读更多 →
Java采购管理系统实战:从数据库设计到事务一致性

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/29 0:00:05 阅读更多 →

周新闻

如何划分训练/验证集: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/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

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

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

2026/9/29 16:41:41 阅读更多 →
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/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/28 16:55:15 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →