PotterWhite commited on
Commit
b04c3c5
·
1 Parent(s): 8aec406

docs(readme): restructure into MODNet (§1) and RVM (§2) chapters; drop frontmatter

Browse files
Files changed (1) hide show
  1. README.md +58 -67
README.md CHANGED
@@ -1,25 +1,6 @@
1
- ---
2
- language:
3
- - en
4
- - zh
5
- tags:
6
- - image-matting
7
- - portrait-segmentation
8
- - modnet
9
- - onnx
10
- - rknn
11
- - rk3588
12
- - video-matting
13
- - robust-video-matting
14
- license: mit
15
- library_name: pytorch
16
- base_model: ZHKKKe/MODNet
17
- pipeline_tag: image-segmentation
18
- ---
19
 
20
- # MODNet 模型制品仓库 (Model Artifact Registry)
21
-
22
- > **用途**:集中管理 MODNet 检查点(Checkpoint)、ONNX 模型及训练制品(Training Artifacts)
23
  >
24
  > **维护者**:PotterWhite
25
  > **最后更新**:2026-07-03
@@ -29,21 +10,29 @@ pipeline_tag: image-segmentation
29
 
30
  ## 目录(Table of Contents)
31
 
32
- 1. [官方预训练模型(Official Pretrained Models)](#1-官方预训练模型official-pretrained-models)
33
- 2. [微调模型(Fine-tuned Models)—— 摄影数据集](#2-微调模型fine-tuned-models-摄影数据集)
34
- 3. [ONNX 模型变体(ONNX Model Variants)](#3-onnx-模型变体onnx-model-variants)
35
- 4. [目录结构(Directory Structure)](#4-目录结构directory-structure)
36
- 5. [生成与部署指南(Generation & Deployment Guide)](#5-生成与部署指南generation--deployment-guide)
37
- 6. [速查表(Quick Reference)](#6-速查表quick-reference)
38
- 7. [RobustVideoMatting(RVM)模型](#7-robustvideoMattingrvm模型)
39
- - [7.5 Graph Surgery:移除最终的 Resize 及以后的算子](#75-graph-surgery移除最终的-resize-及以后的算子)
40
- 8. [相关文档(Related Documentation)](#8-相关文档related-documentation)
 
 
 
 
 
 
41
 
42
  ---
43
 
44
- ## 1. 官方预训练模型(Official Pretrained Models)
 
 
45
 
46
- ### 1.1 摄影人像抠图(Photographic Portrait Matting)
47
 
48
  **文件**:`photographic/modnet_photographic_portrait_matting.ckpt`
49
 
@@ -57,7 +46,7 @@ pipeline_tag: image-segmentation
57
  - 状态:✓ 生产基线
58
  ```
59
 
60
- ### 1.2 摄像头人像抠图(Webcam Portrait Matting)
61
 
62
  **文件**:`modnet_webcam_portrait_matting.ckpt`
63
 
@@ -71,7 +60,7 @@ pipeline_tag: image-segmentation
71
  - 状态:✓ 可用,当前管线未使用
72
  ```
73
 
74
- ### 1.3 MobileNetV2 人体分割(Human Segmentation)
75
 
76
  **文件**:`mobilenetv2_human_seg.ckpt`
77
 
@@ -85,13 +74,13 @@ pipeline_tag: image-segmentation
85
 
86
  ---
87
 
88
- ## 2. 微调模型(Fine-tuned Models) 摄影数据集
89
 
90
- ### 2.1 纯批归一化变体(Pure Batch Normalization Variant)
91
 
92
  **训练轮次**:Block 1.2 微调(2026-03-19 ~ 2026-03-19)
93
 
94
- #### 概要
95
 
96
  ```
97
  在 P3M-10k 摄影数据集上微调 MODNet-BN
@@ -100,7 +89,7 @@ pipeline_tag: image-segmentation
100
  - 最佳模型:验证集 L1 Loss 0.0062
101
  ```
102
 
103
- #### 训练配置
104
 
105
  | 参数 | 值 |
106
  |------|-----|
@@ -118,7 +107,7 @@ pipeline_tag: image-segmentation
118
  | 训练时长 | ~4 小时 |
119
  | 时间戳 | 2026-03-19 15:40:18 |
120
 
121
- #### 生成的制品(Artifacts)
122
 
123
  ```
124
  photographic/finetune/
@@ -131,7 +120,7 @@ photographic/finetune/
131
  ├── logs/
132
  │ └── block1_2_training_20260319_154018.log # 训练日志(详细)
133
  ├── onnx/
134
- │ └── modnet_bn_best_pureBN.onnx # ★ ONNX 导出(见 §3.3)
135
  └── output/
136
  ├── epoch_01_val.png # 验证预览(第 1 轮)
137
  ├── epoch_02_val.png
@@ -139,7 +128,7 @@ photographic/finetune/
139
  └── epoch_15_val.png # 最终验证可视化
140
  ```
141
 
142
- #### 验证损失曲线(Validation Loss Curve)
143
 
144
  ```
145
  Epoch | Val L1 Loss | 改进幅度
@@ -163,7 +152,7 @@ Epoch | Val L1 Loss | 改进幅度
163
  → 第 5 轮后收敛(学习率调度生效),持续稳步改进
164
  ```
165
 
166
- #### 使用方法
167
 
168
  ```python
169
  # PyTorch 推理
@@ -182,9 +171,9 @@ sess = onnxruntime.InferenceSession('photographic/finetune/onnx/modnet_bn_best_p
182
 
183
  ---
184
 
185
- ## 3. ONNX 模型变体(ONNX Model Variants)
186
 
187
- ### 3.1 官方原始版本(Photographic)
188
 
189
  **文件**:`photographic/modnet_photographic_portrait_matting.onnx`
190
 
@@ -199,7 +188,7 @@ sess = onnxruntime.InferenceSession('photographic/finetune/onnx/modnet_bn_best_p
199
  - 注意:InstanceNormalization 在 NPU 上会回退到 CPU,**不推荐用于边缘部署**
200
  ```
201
 
202
- ### 3.2 折叠变体(Folded Variant,Anti-fusion)
203
 
204
  **文件**:`photographic/modnet_photographic_portrait_matting_in_folded.onnx`
205
 
@@ -215,7 +204,7 @@ sess = onnxruntime.InferenceSession('photographic/finetune/onnx/modnet_bn_best_p
215
  - 分析:违背了优化初衷
216
  ```
217
 
218
- ### 3.3 纯批归一化版本(ONNX 导出)
219
 
220
  **文件**:`photographic/finetune/onnx/modnet_bn_best_pureBN.onnx`
221
 
@@ -245,7 +234,7 @@ sess = onnxruntime.InferenceSession('photographic/finetune/onnx/modnet_bn_best_p
245
  - RKNN 工具链 v2.3.2(编译阶段验证)
246
  ```
247
 
248
- #### 验证结果(对比参考)
249
 
250
  ```
251
  黄金测试向量(Golden Test Vector):green-fall-girl-point-to.png (1803×1019)
@@ -256,7 +245,7 @@ sess = onnxruntime.InferenceSession('photographic/finetune/onnx/modnet_bn_best_p
256
 
257
  ---
258
 
259
- ## 4. 目录结构(Directory Structure)
260
 
261
  ```
262
  MODNet/
@@ -300,9 +289,9 @@ MODNet/
300
 
301
  ---
302
 
303
- ## 5. 生成与部署指南(Generation & Deployment Guide)
304
 
305
- ### 5.1 ONNX 生成方法
306
 
307
  ```python
308
  # 第 1 步:训练微调检查点
@@ -344,7 +333,7 @@ onnx.checker.check_model(onnx_model)
344
  print("✓ ONNX 模型验证通过")
345
  ```
346
 
347
- ### 5.2 C++ 推理部署
348
 
349
  ```bash
350
  # 构建 C++ 推理引擎
@@ -362,7 +351,7 @@ cd helmsman.git/
362
  python3 tools/MODNet/verify_golden_tensor.py
363
  ```
364
 
365
- ### 5.3 部署清单(Deployment Checklist)
366
 
367
  - [ ] ONNX 模型通过 `onnx.checker.check_model()` 验证
368
  - [ ] C++ 构建通过黄金张量验证(Golden Tensor Verification)
@@ -372,7 +361,7 @@ python3 tools/MODNet/verify_golden_tensor.py
372
 
373
  ---
374
 
375
- ## 6. 速查表(Quick Reference)
376
 
377
  | 模型 | 文件 | 大小 | 用途 | 状态 |
378
  |------|------|------|------|------|
@@ -384,9 +373,9 @@ python3 tools/MODNet/verify_golden_tensor.py
384
 
385
  ---
386
 
387
- ## 7. RobustVideoMatting(RVM模型
388
 
389
- ### 7.1 ONNX 模型
390
 
391
  位于 `RobustVideoMatting/onnx/`。
392
 
@@ -405,7 +394,7 @@ python3 tools/MODNet/verify_golden_tensor.py
405
  - 6 个输入:`src [1,3,H,W]`、`r1i~r4i`(ConvGRU 状态)、`downsample_ratio [1]`
406
  - 经 ArcFoundry `fold_constant_inputs` 处理后:5 个输入(downsample_ratio 烘焙为常量)
407
 
408
- ### 7.2 RKNN 模型
409
 
410
  位于 `RobustVideoMatting/rknn/`。
411
 
@@ -426,7 +415,7 @@ python3 tools/MODNet/verify_golden_tensor.py
426
  - 目标平台:RK3588
427
  - 归一化:`mean=[0,0,0], std=[255,255,255]`(RKNN 运行时执行 `/255.0`)
428
 
429
- ### 7.3 质量总结(s14/s20/s21 板端实验)
430
 
431
  | 模型 | dsr | 与 PyTorch 的 mean_diff | bg_ratio | 速度(推理+合成) | 备注 |
432
  |------|-----|------------------------|----------|------------------|------|
@@ -438,7 +427,7 @@ python3 tools/MODNet/verify_golden_tensor.py
438
  - 所有模型在 `dance.mp4` 上测试(363 帧,1920×1080)
439
  - 板端:RK3588S,NPU0=40%,NPU1&2=10%
440
 
441
- ### 7.4 推荐模型选择
442
 
443
  | 使用场景 | 推荐模型 | 理由 |
444
  |----------|---------|------|
@@ -446,14 +435,16 @@ python3 tools/MODNet/verify_golden_tensor.py
446
  | **速度优先** | `rvm_mobilenetv3_fp16_1080x1920_rk3588_fp16.rknn` | 比 dsr=0.5 快 1.43 倍 |
447
  | **低内存** | `rvm_mobilenetv3_fp16_288x512_rk3588_fp16_v20260416.rknn` | 最小 r-state 占用 |
448
 
449
- ### 7.5 Graph Surgery:移除最终的 Resize 及以后的算子
450
 
451
  > 最终调试版 RKNN 模型(文件名包含 `no-resize`)通过 ArcFoundry `graph_surgery`
452
  > 把原始 RVM ONNX 中 refiner 末尾的 2 个 Resize + 后续 element-wise 链裁掉,
453
  > 由 C++ 后处理端自行完成 guided-filter 组合 + 上采样。
454
  >
455
- > 详情见仓库内 `log-MR2-P5-s5_8_22-bottleneck-investigation.md`
456
- > 的 §s5_8_22_12(独立脚本版)和 §s5_8_22_14(ArcFoundry 集成版)
 
 
457
 
458
  #### 裁剪点
459
 
@@ -465,7 +456,7 @@ python3 tools/MODNet/verify_golden_tensor.py
465
  | **图清理后净减少的节点(实测)** | **36 个**(353 → 317) |
466
  | 裁剪版图输出 tensor | `777`(Conv_316 输出,refiner A,4ch,272×480)、`779`(Sub_318 输出,refiner b,4ch,272×480),外加 `r1o~r4o` |
467
 
468
- #### 实测算子分类对比(脚本:`scripts/compare_rvm_op_counts.py`)
469
 
470
  | op_type | 原版 | 裁剪版 | Δ(原版 − 裁剪版) |
471
  |---------|----:|-----:|------------------:|
@@ -481,8 +472,8 @@ python3 tools/MODNet/verify_golden_tensor.py
481
  | Split | 10 | 9 | +1 |
482
  | **合计** | | | **+36** |
483
 
484
- > 上表只列出发生变化的 `op_type`(未变的不列出)。所有数值
485
- > `scripts/compare_rvm_op_counts.py` 在 2026-07-03 实测得出,无估算。
486
 
487
  **为什么 `Constant` 减少了 16 个?** 因为 `graph.cleanup()` 会同时清理那些原本只为
488
  被删节点提供常量输入的 Constant 节点;而 `Shape`/`Slice`/`Concat` 的减少则来自
@@ -494,14 +485,14 @@ A(4ch,272×480) + b(4ch,272×480) 是 C++ 后处理 guided-filter 组合的输
494
 
495
  ---
496
 
497
- ## 8. 相关文档(Related Documentation)
498
 
499
  - **训练脚本**:`helmsman.git/third-party/scripts/modnet/train_modnet_block1_2.py`
500
  - **ONNX 导出脚本**:`helmsman.git/third-party/scripts/modnet/onnx/export_onnx_pureBN.py`
501
  - **C++ 推理**:`helmsman.git/runtime/cpp/apps/matting/client/`
502
  - **Python 黄金参考**:`helmsman.git/third-party/scripts/modnet/onnx/generate_golden_files.py`
503
  - **验证工具**:`helmsman.git/tools/MODNet/verify_golden_tensor.py`
504
- - **RVM PKB**:`/volumes_pkb_helmsman/model/round2-rvm/log-MR2-P5-rknn-inference.md`
505
  - **RVM ArcFoundry 配置**:`ArcFoundry.git/configs/rvm/`
506
 
507
  ---
@@ -528,6 +519,6 @@ Overfitting: ✓ No significant degradation, clean convergence
528
 
529
  ---
530
 
531
- **文档版本**:1.2
532
  **最后更新**:2026-07-03 by PotterWhite
533
  **提交历史**:通过 Git commit message 追踪
 
1
+ # MODNet 与 RVM 模型制品仓库 (Model Artifact Registry)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ > **用途**:集中管理 MODNet 与 RVM 的检查点(Checkpoint)、ONNX/RKNN 模型及训练制品(Training Artifacts)
 
 
4
  >
5
  > **维护者**:PotterWhite
6
  > **最后更新**:2026-07-03
 
10
 
11
  ## 目录(Table of Contents)
12
 
13
+ 1. [MODNet 模型](#1-modnet-模型)
14
+ - [1.1 官方预训练模型](#11-官方预训练模型)
15
+ - [1.2 微调模型 摄影数据集](#12-微调模型--摄影数据集)
16
+ - [1.3 ONNX 模型变体](#13-onnx-模型变体)
17
+ - [1.4 目录结构](#14-目录结构)
18
+ - [1.5 生成与部署指南](#15-生成与部署指南)
19
+ - [1.6 速查表](#16-速查表)
20
+ 2. [RVM 模型](#2-rvm-模型)
21
+ - [2.1 ONNX 模型](#21-onnx-模型)
22
+ - [2.2 RKNN 模型](#22-rknn-模型)
23
+ - [2.3 质量总结](#23-质量总结)
24
+ - [2.4 推荐模型选择](#24-推荐模型选择)
25
+ - [2.5 Graph Surgery:移除最终的 Resize 及以后的算子](#25-graph-surgery移除最终的-resize-及以后的算子)
26
+ 3. [相关文档](#3-相关文档)
27
+ 4. [附录:训练日志摘要](#附录训练日志摘要)
28
 
29
  ---
30
 
31
+ ## 1. MODNet 模型
32
+
33
+ ### 1.1 官方预训练模型
34
 
35
+ #### 摄影人像抠图(Photographic Portrait Matting)
36
 
37
  **文件**:`photographic/modnet_photographic_portrait_matting.ckpt`
38
 
 
46
  - 状态:✓ 生产基线
47
  ```
48
 
49
+ #### 摄像头人像抠图(Webcam Portrait Matting)
50
 
51
  **文件**:`modnet_webcam_portrait_matting.ckpt`
52
 
 
60
  - 状态:✓ 可用,当前管线未使用
61
  ```
62
 
63
+ #### MobileNetV2 人体分割(Human Segmentation)
64
 
65
  **文件**:`mobilenetv2_human_seg.ckpt`
66
 
 
74
 
75
  ---
76
 
77
+ ### 1.2 微调模型 — 摄影数据集
78
 
79
+ #### 纯批归一化变体(Pure Batch Normalization Variant)
80
 
81
  **训练轮次**:Block 1.2 微调(2026-03-19 ~ 2026-03-19)
82
 
83
+ ##### 概要
84
 
85
  ```
86
  在 P3M-10k 摄影数据集上微调 MODNet-BN
 
89
  - 最佳模型:验证集 L1 Loss 0.0062
90
  ```
91
 
92
+ ##### 训练配置
93
 
94
  | 参数 | 值 |
95
  |------|-----|
 
107
  | 训练时长 | ~4 小时 |
108
  | 时间戳 | 2026-03-19 15:40:18 |
109
 
110
+ ##### 生成的制品(Artifacts)
111
 
112
  ```
113
  photographic/finetune/
 
120
  ├── logs/
121
  │ └── block1_2_training_20260319_154018.log # 训练日志(详细)
122
  ├── onnx/
123
+ │ └── modnet_bn_best_pureBN.onnx # ★ ONNX 导出(见 §1.3.3)
124
  └── output/
125
  ├── epoch_01_val.png # 验证预览(第 1 轮)
126
  ├── epoch_02_val.png
 
128
  └── epoch_15_val.png # 最终验证可视化
129
  ```
130
 
131
+ ##### 验证损失曲线(Validation Loss Curve)
132
 
133
  ```
134
  Epoch | Val L1 Loss | 改进幅度
 
152
  → 第 5 轮后收敛(学习率调度生效),持续稳步改进
153
  ```
154
 
155
+ ##### 使用方法
156
 
157
  ```python
158
  # PyTorch 推理
 
171
 
172
  ---
173
 
174
+ ### 1.3 ONNX 模型变体
175
 
176
+ #### 官方原始版本(Photographic)
177
 
178
  **文件**:`photographic/modnet_photographic_portrait_matting.onnx`
179
 
 
188
  - 注意:InstanceNormalization 在 NPU 上会回退到 CPU,**不推荐用于边缘部署**
189
  ```
190
 
191
+ #### 折叠变体(Folded Variant,Anti-fusion)
192
 
193
  **文件**:`photographic/modnet_photographic_portrait_matting_in_folded.onnx`
194
 
 
204
  - 分析:违背了优化初衷
205
  ```
206
 
207
+ #### 纯批归一化版本(ONNX 导出)
208
 
209
  **文件**:`photographic/finetune/onnx/modnet_bn_best_pureBN.onnx`
210
 
 
234
  - RKNN 工具链 v2.3.2(编译阶段验证)
235
  ```
236
 
237
+ ##### 验证结果(对比参考)
238
 
239
  ```
240
  黄金测试向量(Golden Test Vector):green-fall-girl-point-to.png (1803×1019)
 
245
 
246
  ---
247
 
248
+ ### 1.4 目录结构
249
 
250
  ```
251
  MODNet/
 
289
 
290
  ---
291
 
292
+ ### 1.5 生成与部署指南
293
 
294
+ #### ONNX 生成方法
295
 
296
  ```python
297
  # 第 1 步:训练微调检查点
 
333
  print("✓ ONNX 模型验证通过")
334
  ```
335
 
336
+ #### C++ 推理部署
337
 
338
  ```bash
339
  # 构建 C++ 推理引擎
 
351
  python3 tools/MODNet/verify_golden_tensor.py
352
  ```
353
 
354
+ #### 部署清单
355
 
356
  - [ ] ONNX 模型通过 `onnx.checker.check_model()` 验证
357
  - [ ] C++ 构建通过黄金张量验证(Golden Tensor Verification)
 
361
 
362
  ---
363
 
364
+ ### 1.6 速查表
365
 
366
  | 模型 | 文件 | 大小 | 用途 | 状态 |
367
  |------|------|------|------|------|
 
373
 
374
  ---
375
 
376
+ ## 2. RVM 模型
377
 
378
+ ### 2.1 ONNX 模型
379
 
380
  位于 `RobustVideoMatting/onnx/`。
381
 
 
394
  - 6 个输入:`src [1,3,H,W]`、`r1i~r4i`(ConvGRU 状态)、`downsample_ratio [1]`
395
  - 经 ArcFoundry `fold_constant_inputs` 处理后:5 个输入(downsample_ratio 烘焙为常量)
396
 
397
+ ### 2.2 RKNN 模型
398
 
399
  位于 `RobustVideoMatting/rknn/`。
400
 
 
415
  - 目标平台:RK3588
416
  - 归一化:`mean=[0,0,0], std=[255,255,255]`(RKNN 运行时执行 `/255.0`)
417
 
418
+ ### 2.3 质量总结
419
 
420
  | 模型 | dsr | 与 PyTorch 的 mean_diff | bg_ratio | 速度(推理+合成) | 备注 |
421
  |------|-----|------------------------|----------|------------------|------|
 
427
  - 所有模型在 `dance.mp4` 上测试(363 帧,1920×1080)
428
  - 板端:RK3588S,NPU0=40%,NPU1&2=10%
429
 
430
+ ### 2.4 推荐模型选择
431
 
432
  | 使用场景 | 推荐模型 | 理由 |
433
  |----------|---------|------|
 
435
  | **速度优先** | `rvm_mobilenetv3_fp16_1080x1920_rk3588_fp16.rknn` | 比 dsr=0.5 快 1.43 倍 |
436
  | **低内存** | `rvm_mobilenetv3_fp16_288x512_rk3588_fp16_v20260416.rknn` | 最小 r-state 占用 |
437
 
438
+ ### 2.5 Graph Surgery:移除最终的 Resize 及以后的算子
439
 
440
  > 最终调试版 RKNN 模型(文件名包含 `no-resize`)通过 ArcFoundry `graph_surgery`
441
  > 把原始 RVM ONNX 中 refiner 末尾的 2 个 Resize + 后续 element-wise 链裁掉,
442
  > 由 C++ 后处理端自行完成 guided-filter 组合 + 上采样。
443
  >
444
+ > 详情见 `primary-folder/log/log-MR2-P5-s5_8_22-bottleneck-investigation.md`
445
+ > 的 §s5_8_22_12(独立脚本版)和 §s5_8_22_14(ArcFoundry 集成版)
446
+ > 算子实测对比结果(脚本 + 输出)已嵌入该 PKB 的 §s5_8_22_12 / `### After - 执行` /
447
+ > `2026-07-03 算子数对比验证` 章节。
448
 
449
  #### 裁剪点
450
 
 
456
  | **图清理后净减少的节点(实测)** | **36 个**(353 → 317) |
457
  | 裁剪版图输出 tensor | `777`(Conv_316 输出,refiner A,4ch,272×480)、`779`(Sub_318 输出,refiner b,4ch,272×480),外加 `r1o~r4o` |
458
 
459
+ #### 实测算子分类对比(脚本与实测见 PKB §s5_8_22_12 / `2026-07-03 算子数对比验证` 章节
460
 
461
  | op_type | 原版 | 裁剪版 | Δ(原版 − 裁剪版) |
462
  |---------|----:|-----:|------------------:|
 
472
  | Split | 10 | 9 | +1 |
473
  | **合计** | | | **+36** |
474
 
475
+ > 上表只列出发生变化的 `op_type`(未变的不列出)。所有数值由 PKB §s5_8_22_12
476
+ > `2026-07-03 算子数对比验证` 章节中嵌入的脚本在 2026-07-03 实测得出,无估算。
477
 
478
  **为什么 `Constant` 减少了 16 个?** 因为 `graph.cleanup()` 会同时清理那些原本只为
479
  被删节点提供常量输入的 Constant 节点;而 `Shape`/`Slice`/`Concat` 的减少则来自
 
485
 
486
  ---
487
 
488
+ ## 3. 相关文档
489
 
490
  - **训练脚本**:`helmsman.git/third-party/scripts/modnet/train_modnet_block1_2.py`
491
  - **ONNX 导出脚本**:`helmsman.git/third-party/scripts/modnet/onnx/export_onnx_pureBN.py`
492
  - **C++ 推理**:`helmsman.git/runtime/cpp/apps/matting/client/`
493
  - **Python 黄金参考**:`helmsman.git/third-party/scripts/modnet/onnx/generate_golden_files.py`
494
  - **验证工具**:`helmsman.git/tools/MODNet/verify_golden_tensor.py`
495
+ - **RVM 瓶颈 PKB(含算子对比脚本 + 实测结果)**:`primary-folder/log/log-MR2-P5-s5_8_22-bottleneck-investigation.md`
496
  - **RVM ArcFoundry 配置**:`ArcFoundry.git/configs/rvm/`
497
 
498
  ---
 
519
 
520
  ---
521
 
522
+ **文档版本**:1.3
523
  **最后更新**:2026-07-03 by PotterWhite
524
  **提交历史**:通过 Git commit message 追踪