PaddleDetection 基于人体ID的检测式行为识别开发指南:以烟头检测(Smoking)为例
人工智能深度学习计算机视觉【免费下载链接】PaddleDetectionObject Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.项目地址https://gitcode.com/gh_mirrors/pa/PaddleDetection点击查看免费下载导读本文面向希望在 PaddleDetection 中落地基于人体ID的检测式行为识别ID-Based Detection Action Recognition方案的开发者。该方案的核心思路是不直接训练时序行为分类网络而是把行为识别问题转化为在单人图像中检测目标特征对象如烟头再由上游行人检测与多目标跟踪MOT为每个行人分配稳定 ID最后把检测结果与行人 ID 关联输出某 ID 的行人正在发生某行为的结论。读完本文你将掌握从环境准备、数据标注、模型优化到新增自定义行为类别、训练评估、模型导出再到自定义行为输出与可视化修改的完整二次开发链路并理解其背后的源码实现原理。一、方案总览为什么用检测来做行为识别在 PaddleDetection 的 PP-Human 体系中行为识别Action Recognition分为多种技术路线参见 action_recognotion 目录基于人体ID的检测式识别ID_BASED_DETACTION在裁剪出的单人图像上检测目标特征物检测到即视为行为发生基于人体ID的分类式识别ID_BASED_CLSACTION对单人图像做图像分类如打电话基于骨架的识别SKELETON_ACTION利用关键点序列做时序分类如摔倒基于视频的识别VIDEO_ACTION对视频片段做时序识别如打架。本文聚焦第一条路线即 idbased_det.md 所讲述的基于人体id的检测模型开发。它的流水线在 pipeline.py 中由ID_BASED_DETACTION配置项驱动先运行行人检测 跟踪得到mot_res再按跟踪框裁剪出单人图像crop_input送入DetActionRecognizer检测特征物最后将结果按tracker_id与行人绑定。从源码结构看DetActionRecognizer类定义于 deploy/pipeline/pphuman/action_infer.py其内部组合了一个通用的Detectordeploy/python/infer.py负责模型推理因此烟头检测模型的训练与导出与普通目标检测任务完全一致可以直接复用 PaddleDetection 的检测训练框架。二、环境准备基于人体ID的检测方案直接使用 PaddleDetection 的功能进行模型训练因此无需额外的环境组件。请按照仓库内的 安装说明 完成环境安装包括安装 PaddlePaddleCPU 或 GPU 版本安装 PaddleDetection 及其依赖见 requirements.txt验证python tools/train.py可正常运行。环境就绪后即可进行后续的模型训练及使用流程。三、数据准备按通用检测数据格式组织单人图像基于检测的行为识别方案中数据准备的流程与一般的检测模型一致详情可参考 目标检测数据准备。将图像和标注数据组织成 PaddleDetection 支持的格式之一如 COCO、VOC 等即可。注意在实际使用的预测过程中使用的是单人图像进行预测由 PP-Human 的 MOT 模块裁剪得到因此在训练过程中建议将图像裁剪为单人图像再进行烟头检测框的标注以提升准确率。也就是说训练数据与推理输入的分布应当保持一致避免训练时看到整张监控画面、推理时却输入单人裁剪图带来的域差异。四、模型优化三个关键方向4.1 检测-跟踪模型优化基于检测的行为识别模型效果依赖于前序的检测和跟踪效果。如果实际场景中不能准确检测到行人位置或是难以正确在不同帧之间分配人物 ID都会使行为识别部分表现受限检测漏检 → 行人根本没被裁剪出来后续烟头检测无从谈起跟踪 ID 跳变 → 行为结果无法稳定归属到同一行人输出抖动。如果在实际使用中遇到上述问题请参考 目标检测任务二次开发 以及 多目标跟踪任务二次开发 对检测/跟踪模型进行优化。4.2 使用更大的分辨率烟头的检测在监控视角下是一个典型的小目标检测问题——烟头往往只占几十个像素使用更大的输入分辨率有助于提升模型整体的识别率。配置中的输入尺寸由_BASE_引用的 reader 配置决定可在训练配置中覆盖TrainReader的相关字段进行调整。4.3 使用小目标场景预训练模型加入小目标场景数据集 VisDrone 下的预训练模型进行训练模型 mAP 由 38.1 提升到 39.7。这正是仓库提供的 ppyoloe_crn_s_80e_smoking_visdrone.yml 的做法pretrain_weights: https://paddledet.bj.bcebos.com/models/ppyoloe_crn_s_80e_visdrone.pdparams即先在 VisDrone小目标密集场景上预训练再在烟头数据集上微调通过迁移学习显著提升小目标识别能力。五、新增自定义行为完整实操5.1 数据准备参考 目标检测数据准备 完成训练数据准备。准备完成后数据路径组织为dataset/smoking ├── smoking # 存放所有的图片 │ ├── 1.jpg │ ├── 2.jpg ├── smoking_test_cocoformat.json # 测试标注文件 ├── smoking_train_cocoformat.json # 训练标注文件以COCO格式为例完成后的 json 标注文件内容如下# images字段下包含了图像的路径id及对应宽高信息 images: [ { file_name: smoking/1.jpg, id: 0, # 此处id为图片id序号不要重复 height: 437, width: 212 }, { file_name: smoking/2.jpg, id: 1, height: 655, width: 365 }, ... # categories 字段下包含所有类别信息如果希望新增更多的检测类别请在这里增加, 示例如下。 categories: [ { supercategory: cigarette, id: 1, name: cigarette }, { supercategory: Class_Defined_by_Yourself, id: 2, name: Class_Defined_by_Yourself }, ... # annotations 字段下包含了所有目标实例的信息包括类别检测框坐标, id, 所属图像id等信息 annotations: [ { category_id: 1, # 对应定义的类别在这里1代表cigarette bbox: [ 97.0181345931, 332.7033243081, 7.5943999555, 16.4545332369 ], id: 0, # 此处id为实例的id序号不要重复 image_id: 0, # 此处为实例所在图片的id序号可能重复即一张图片上有多个实例对象 iscrowd: 0, area: 124.96230648208665 }, { category_id: 2, # 对应定义的类别在这里2代表Class_Defined_by_Yourself bbox: [ 114.3895698372, 221.9131122343, 25.9530363697, 50.5401234568 ], id: 1, image_id: 1, iscrowd: 0, area: 1311.6696622034585 } ]字段要点总结字段含义注意点images[].file_name图片相对路径需与dataset_dir image_dir拼接后能定位到真实图片images[].id图片 ID 序号全局唯一不要重复categories[].id类别 ID从 1 开始计数COCO 惯例新增类别继续递增categories[].name类别名称会用于后处理与可视化名称关联annotations[].category_id实例所属类别对应categories[].idannotations[].bbox检测框坐标COCO 格式为[x, y, w, h]左上角坐标 宽高annotations[].image_id实例所在图片 ID同一图片多个实例时可重复annotations[].iscrowd是否密集人群通常为 05.2 配置文件设置参考 ppyoloe_crn_s_80e_smoking_visdrone.yml其中需要关注的重点如下metric: COCO num_classes: 1 # 如果新增了更多的类别请对应修改此处 # 正确设置image_diranno_pathdataset_dir # 保证dataset_dir anno_path 能正确对应标注文件的路径 # 保证dataset_dir image_dir 标注文件中的图片路径可以正确对应到图片路径 TrainDataset: !COCODataSet image_dir: anno_path: smoking_train_cocoformat.json dataset_dir: dataset/smoking data_fields: [image, gt_bbox, gt_class, is_crowd] EvalDataset: !COCODataSet image_dir: anno_path: smoking_test_cocoformat.json dataset_dir: dataset/smoking TestDataset: !ImageFolder anno_path: smoking_test_cocoformat.json dataset_dir: dataset/smoking关键配置说明metric: COCO评估指标采用 COCO mAP对应 metrics 模块 中的 COCO 评估器num_classes: 1烟头检测只有 1 个正类别如果新增了更多类别必须对应修改此处TrainDataset/EvalDataset均使用!COCODataSet读取标注data_fields声明训练所需的数据字段图像、GT 框、GT 类别、是否 crowdTestDataset使用!ImageFolder支持无标注的纯图片目录推理路径规则dataset_dir anno_path必须能定位到标注文件dataset_dir image_dir 标注文件中的 file_name必须能定位到真实图片。该配置还通过_BASE_继承了 runtime.yml、optimizer_300e.yml、ppyoloe_crn.yml 与 ppyoloe_reader.yml并覆盖为 80 epoch、base_lr: 0.01、CosineDecay 调度、batch_size 16、depth_mult: 0.33、width_mult: 0.50PP-YOLOE-S 尺度等训练超参可直接作为自定义行为训练的模板。5.3 模型训练及评估模型训练参考 PP-YOLOE 使用文档执行下列步骤实现多卡分布式训练# At Root of PaddleDetection python -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/pphuman/ppyoloe_crn_s_80e_smoking_visdrone.yml --eval-c指定训练配置文件--gpus 0,1,2,3指定使用的 GPU 列表单卡可省略paddle.distributed.launch--eval表示训练过程中周期性地在验证集上评估便于监控收敛。训练入口为 tools/train.py训练引擎与回调日志、评估、模型保存由 ppdet/engine/trainer.py 实现配置文件解析逻辑位于 ppdet/core/config。模型评估训练好模型之后可以通过以下命令实现对模型指标的评估# At Root of PaddleDetection python tools/eval.py -c configs/pphuman/ppyoloe_crn_s_80e_smoking_visdrone.yml评估结果会输出 COCO 指标mAP、mAP0.5、mAP0.75 等评估逻辑见 tools/eval.py。5.4 模型导出注意如果在 Tensor-RT 环境下预测请开启-o trtTrue以获得更好的性能# At Root of PaddleDetection python tools/export_model.py -c configs/pphuman/ppyoloe_crn_s_80e_smoking_visdrone.yml -o weightsoutput/ppyoloe_crn_s_80e_smoking_visdrone/best_model trtTrue-o weights...指定要导出的权重路径此处为训练产物中的best_model-o trtTrue在导出阶段即按 TensorRT 推理要求配置动态 shape 等信息。导出模型后可以得到ppyoloe_crn_s_80e_smoking_visdrone/ ├── infer_cfg.yml ├── model.pdiparams ├── model.pdiparams.info └── model.pdmodel至此即可使用 PP-Human 进行实际预测了。在 PP-Human 的管道配置中将 infer_cfg_pphuman.yml 中ID_BASED_DETACTION的model_dir指向该导出目录并开启enable: True即可接入流水线仓库还提供了可直接运行的示例配置 infer_cfg_smoking.yml。该模块的典型参数包括ID_BASED_DETACTION: model_dir: https://bj.bcebos.com/v1/paddledet/models/pipeline/ppyoloe_crn_s_80e_smoking_visdrone.zip batch_size: 8 threshold: 0.6 # 检测置信度阈值高于此值才判定行为发生 display_frames: 80 # 行为结果保持帧数即结果复用窗口 skip_frame_num: 2 # 跳帧推理数跳过的帧直接复用上一帧结果 enable: False六、自定义行为输出把检测结果翻译为行为结论基于人体ID的检测行为识别方案中将任务转化为在对应人物的图像中检测目标特征对象。当目标特征对象被检测到时则视为行为正在发生。因此在完成自定义模型的训练及部署的基础上还需要将检测模型结果转化为最终的行为识别结果作为输出并修改可视化的显示结果。6.1 转换为行为识别结果请对应修改 action_infer.py 中DetActionRecognizer.postprocess方法对应源码 postprocess 实现。核心代码为# 解析检测模型输出并筛选出置信度高于阈值的有效检测框。 # Current now, class 0 is positive, class 1 is negative. action_ret {class: 1.0, score: -1.0} box_num np_boxes_num[idx] boxes det_result[boxes][cur_box_idx:cur_box_idx box_num] cur_box_idx box_num isvalid (boxes[:, 1] self.threshold) (boxes[:, 0] 0) valid_boxes boxes[isvalid, :] if valid_boxes.shape[0] 1: # 存在有效检测框时行为识别结果的类别和分数对应修改 action_ret[class] valid_boxes[0, 0] action_ret[score] valid_boxes[0, 1] # 由于动作的持续性有效检测结果可复用一定帧数 self.result_history[ tracker_id] [0, self.frame_life, valid_boxes[0, 1]] else: # 不存在有效检测框则根据历史检测数据确定当前帧的结果 history_det, life_remain, history_score self.result_history.get( tracker_id, [1, self.frame_life, -1.0]) action_ret[class] history_det action_ret[score] -1.0 life_remain - 1 if life_remain 0 and tracker_id in self.result_history: del (self.result_history[tracker_id]) elif tracker_id in self.result_history: self.result_history[tracker_id][1] life_remain else: self.result_history[tracker_id] [ history_det, life_remain, history_score ]这段后处理逻辑体现了两个关键设计类别语义约定class 0表示正类行为发生中即检测到烟头class 1表示负类行为未发生。因此判定条件是boxes[:, 1] self.threshold置信度超阈值且boxes[:, 0] 0类别为正类结果复用机制由于动作具有持续性检测命中后将结果写入self.result_history[tracker_id]并设置生命周期self.frame_life对应配置中的display_frames。后续帧即使暂时检测不到特征物也会在生命周期内沿用历史结果避免行为结果闪烁生命周期耗尽后自动删除历史记录。此外DetActionRecognizer还支持skip_frame_num跳帧推理在 predict 中当处于跳帧阶段且当前帧的 MOT ID 集合与上一帧一致时check_id_is_same直接通过 reuse_result 复用上一帧结果跳过检测模型推理显著降低计算开销。6.2 修改可视化输出目前基于 ID 的行为识别是根据行为识别的结果及预定义的类别名称进行展示的。详细逻辑见 pipeline.py 的可视化部分det_action_res result.get(det_action) if det_action_res is not None: visual_helper_for_display.append(self.det_action_visual_helper) action_to_display.append(Smoking)即det_action的展示名称被硬编码为Smoking。如果自定义的行为需要修改为其他的展示名称请对应修改此处以正确输出对应结果。可视化辅助逻辑由 action_utils.py 中的ActionVisualHelper承担它维护每个mot_id的action_history在update时记录行为类别并重置生命周期在check_detected时对生命周期做倒计时、剔除过期记录并返回当前处于正类class 0的 ID 集合最终的画框与文字绘制由 visualize_action 完成。因此若需要为不同自定义行为显示不同名称只需在action_to_display列表中按det_action/cls_action/skeleton_action的对应关系替换展示文案即可。七、总结与二次开发检查清单基于人体 ID 的检测式行为识别本质上是检测 跟踪 目标特征物检测的流水线组合。完成一次自定义行为开发可按以下清单自检数据单人图像 COCO 格式标注file_name/id/category_id/bbox字段正确图片与标注路径可被dataset_dir image_dir file_name解析到配置num_classes与categories数量一致TrainDataset/EvalDataset/TestDataset三处路径正确训练与评估tools/train.py --eval训练、tools/eval.py评估确认 mAP 达到预期导出tools/export_model.py -o weightsoutput/.../best_model trtTrue得到model.pdmodel等 4 个文件接入将导出目录配置到 infer_cfg_pphuman.yml 的ID_BASED_DETACTION.model_dir并enable: True输出按需修改 action_infer.py 后处理中的类别判定与结果复用逻辑可视化在 pipeline.py 中修改行为展示名称使输出与业务语义一致。按此流程即可在 PP-Human 框架内快速扩展任意可检测特征物即行为的自定义行为识别能力。赞分享人工智能深度学习计算机视觉【免费下载链接】PaddleDetectionObject Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.项目地址https://gitcode.com/gh_mirrors/pa/PaddleDetection点击查看免费下载相关推荐PaddleDetection 基于人体 ID 的检测式行为识别开发指南从吸烟检测数据集构建到 PP-Human 自定义行为落地PaddleDetection 基于人体 ID 的检测式行为识别开发指南从吸烟检测数据集构建到 PP Human 自定义行为落地 本文面向希望在 Paddle人工智能深度学习计算机视觉PaddleDetection PP-Human 垂类模型全解析行人检测、吸烟/打电话行为识别与属性识别实战指南PaddleDetection PP Human 垂类模型全解析行人检测、吸烟/打电话行为识别与属性识别实战指南 PP Human 是 PaddleDetec人工智能深度学习计算机视觉PP-Human 快速上手指南基于 PaddleDetection Pipeline 的人体检测、跟踪、属性与行为识别部署实战PP Human 快速上手指南基于 PaddleDetection Pipeline 的人体检测、跟踪、属性与行为识别部署实战 PP Human 是 Padd人工智能深度学习计算机视觉创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

同济大学轨道交通研究院2025智能运维与材料技术突破

同济大学轨道交通研究院2025智能运维与材料技术突破

1. 项目背景与行业定位同济大学铁道与城市轨道交通研究院作为我国轨道交通领域的重要科研机构,其2025年发展规划具有显著的行业前瞻性。这个时间节点恰逢"十四五"规划收官与"十五五"规划启动的交接期,也是全球轨道交通技术从电气化向…

2026/9/24 12:10:36 阅读更多 →
知识工作插件化:从提示词到可复用工作流的工程化实践

知识工作插件化:从提示词到可复用工作流的工程化实践

1. 从"knowledge-work-plugins"这个命名说起:它到底想解决什么问题第一次看到knowledge-work-plugins这个仓库名,我的直觉是:这不是又一个"工具集合",而是一套面向知识工作者的能力扩展框架。知识工作&#x…

2026/9/24 12:11:41 阅读更多 →
5套绩效奖励方案最佳实践 解决API变更痛点

5套绩效奖励方案最佳实践 解决API变更痛点

5套绩效奖励方案最佳实践 解决API变更痛点 版本升级后 API 全变了,业务代码崩了,绩效数据算错了,这才是最让人头秃的时刻。很多团队在重构薪酬系统时,往往陷入“改一个变量,崩三个模块”的泥潭。这时候,一套可复用的 绩效奖励方案…

2026/9/23 8:20:40 阅读更多 →

最新新闻

Semi Design VideoPlayer 视频播放器组件实战指南:从基础播放到清晰度切换与原生能力控制

Semi Design VideoPlayer 视频播放器组件实战指南:从基础播放到清晰度切换与原生能力控制

Semi Design VideoPlayer 视频播放器组件实战指南:从基础播放到清晰度切换与原生能力控制 【免费下载链接】semi-design 🚀A modern, comprehensive, flexible design system and React UI library, AI-friendly built-in.🎨Provide 3000 Des…

2026/9/24 15:59:08 阅读更多 →
@formily/reactive 响应式内核解读:Formily 为什么重新造一个基于 Proxy 的响应式轮子

@formily/reactive 响应式内核解读:Formily 为什么重新造一个基于 Proxy 的响应式轮子

前端UI组件 【免费下载链接】formily 📱🚀 🧩 Cross Device & High Performance Normal Form/Dynamic(JSON Schema) Form/Form Builder -- Support React/React Native/Vue 2/Vue 3 项目地址: https://gitcode.com/gh_mirrors…

2026/9/24 15:59:08 阅读更多 →
99.6%覆盖率是如何炼成的:mime4cj双层测试架构完整解析

99.6%覆盖率是如何炼成的:mime4cj双层测试架构完整解析

99.6%覆盖率是如何炼成的:mime4cj双层测试架构完整解析 【免费下载链接】mime4cj MIME格式解析库 项目地址: https://gitcode.com/Cangjie-TPC/mime4cj 🎯 mime4cj 是一款面向**仓颉语言(Cangjie)**的 MIME格式解析库&…

2026/9/24 15:59:08 阅读更多 →
语言模型也能当Harness?AX的框架无关设计哲学解读

语言模型也能当Harness?AX的框架无关设计哲学解读

语言模型也能当Harness?AX的框架无关设计哲学解读 【免费下载链接】ax Googles open agentic orchestration runtime 项目地址: https://gitcode.com/GitHub_Trending/ax11/ax AX(Agent Executor)是 Google 开源的 agentic 编排运行时…

2026/9/24 15:59:08 阅读更多 →
codewhale web 浏览器客户端教程:把 CodeWhale 终端 Agent 装进浏览器的完整指南

codewhale web 浏览器客户端教程:把 CodeWhale 终端 Agent 装进浏览器的完整指南

codewhale web 浏览器客户端教程:把 CodeWhale 终端 Agent 装进浏览器的完整指南 【免费下载链接】Codewhale Open-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome. 项目地…

2026/9/24 15:59:08 阅读更多 →
【Coze】【视频】儿童古风诗词工作流

【Coze】【视频】儿童古风诗词工作流

今天给大家演示一个儿童古风诗词的 Coze 工作流,它能够将用户输入的主题或提示词自动生成诗意化的视频文案,并进一步配合语音合成、字幕生成和背景音乐搜索,最终形成一段完整的古风视频内容。这个工作流特别适合儿童诗词启蒙教育、古诗词短视频创作等场景,让传统文化通过现…

2026/9/24 15:58:07 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

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

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

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

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

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

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

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

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

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

2026/9/24 12:49:17 阅读更多 →