PaddleOCR 场景文本识别算法 CPPD 完全指南:Context Perception Parallel Decoder 的原理、训练、评估与部署
PaddleOCR 场景文本识别算法 CPPD 完全指南Context Perception Parallel Decoder 的原理、训练、评估与部署【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCRCPPDContext Perception Parallel Decoder是 PaddleOCR 2.6 版本起引入的场景文本识别STR算法其核心思路是在并行解码器PD框架下通过精心设计的字符顺序CO, Character Order与字符上下文CC, Character Context模块同时获得自回归解码器AR级别的精度与并行解码器级别的解码速度。本文基于 docs/version2.x/algorithm/text_recognition/algorithm_rec_cppd.md 展开结合仓库中的配置与源码实现完整讲解 CPPD 的算法原理、精度表现、数据准备、训练/评估/预测命令、推理模型导出以及部署边界读完即可在 PaddleOCR 中从零复现 CPPD 模型的完整生命周期。1. 算法简介论文信息Context Perception Parallel Decoder for Scene Text Recognition Yongkun Du, Zhineng Chen, Caiyan Jia, Xiaoting Yin, Chenxia Li, Yuning Du, Yu-Gang Jiang基于深度学习的场景文本识别模型通常采用 Encoder-Decoder 结构其中 Decoder 可分为两大类CTCConnectionist Temporal Classification解码器Attention-based基于注意力解码器。目前 SOTA 模型大多使用 Attention-based 的 Decoder而 Attention-based 又可以细分为两类ARAutoregressive自回归解码器逐字符预测后一个字符依赖前一个字符的预测结果精度更高PDParallel Decoder并行解码器一次性并行输出整条文本序列解码速度快。一般来说AR 解码器识别精度优于 PD而 PD 解码速度快于 AR。CPPD 通过精心设计的 COCharacter Order字符顺序与 CCCharacter Context字符上下文模块实现了AR 的精度PD 的速度的效果。从 PaddleOCR 源码结构看CPPD 的实现落位于三个核心模块均可在仓库中直接找到模型 Headppocr/modeling/heads/rec_cppd_head.py其中定义了CPPDHead、DecoderLayer、EdgeDecoderLayer、Attention损失函数ppocr/losses/rec_cppd_loss.py定义了CPPDLoss标签编码ppocr/data/imaug/label_ops.py中的CPPDLabelEncode负责把文本标签转换为字符节点、位置节点与边edge三种监督信号。以CPPDHead的推理路径forward_test见 rec_cppd_head.py为例可以直观看到其并行解码的机制视觉特征visual_feats与可学习的视觉位置编码vis_pos_embed相加后同时喂给字符节点解码器char_node_decoder与位置节点解码器pos_node_decoder经若干层并行解码后再由edge_decoderEdgeDecoderLayer融合字符特征与位置特征最终通过edge_fc一次性输出每个位置的字符类别概率。整个前向过程不存在逐字符的串行依赖因此具备 PD 的速度而 CO/CC 模块带来的上下文感知又使其精度接近 AR。2. 精度与模型下载2.1 英文基准PARSeq 数据集划分英文训练集和测试集来源于 PARSeq 项目github.com/baudm/parseq测试基准包含 IC13(857)、SVT、IIIT5k(3000)、IC15(1811)、SVTP、CUTE80精度%如下模型IC13 857SVTIIIT5k 3000IC15 1811SVTPCUTE80Avg下载链接CPPD Tiny97.194.496.686.688.590.392.25英文CPPD Base98.295.597.687.990.092.793.80英文CPPD Base 48*16097.595.597.787.792.493.794.10英文2.2 英文合成数据MJST训练Union14M-L 测试使用英文合成数据集MJST训练在 Union14M-L benchmarkgithub.com/Mountchicken/Union14M上的测试结果%模型CurveMulti-OrientedArtisticContextlessSalientMulti-wordGeneralAvg下载链接CPPD Tiny52.412.348.254.461.553.461.449.10同上表CPPD Base65.518.656.061.971.057.565.856.63同上表CPPD Base 48*16071.922.160.567.978.363.967.161.69同上表2.3 Union14M-L 从零训练From scratch在 Union14M-L 训练集上 From scratch 训练英文测试结果%其中 CPPD Base 32*128 模型下载状态为 Coming soon模型IC13 857SVTIIIT5k 3000IC15 1811SVTPCUTE80Avg下载链接CPPD Base 32*12898.597.799.290.394.698.396.42Coming soon模型CurveMulti-OrientedArtisticContextlessSalientMulti-wordGeneralAvg下载链接CPPD Base 32*12883.071.275.180.979.482.683.779.41Coming soon2.4 Union14M-L 微调加载合成预训练加载合成数据集预训练模型在 Union14M-L 训练集上微调训练英文测试结果%模型IC13 857SVTIIIT5k 3000IC15 1811SVTPCUTE80Avg下载链接CPPD Base 32*12898.798.599.491.796.799.797.44英文模型CurveMulti-OrientedArtisticContextlessSalientMulti-wordGeneralAvg下载链接CPPD Base 32*12887.570.778.282.985.585.484.382.08同上表2.5 中文基准Chinese Benchmark中文训练集和测试集来源于 FudanVI/benchmarking-chinese-text-recognition按 Scene / Web / Document / Handwriting 四个子集评测精度%如下模型SceneWebDocumentHandwritingAvg下载链接CPPD Base74.476.198.655.376.10中文CPPD Base STN78.479.398.957.678.55中文说明上述精度数字均来自仓库文档 algorithm_rec_cppd.md 的原始记录若需复现请以对应评测脚本与数据划分为准。3. 环境配置开始训练前请先参考 《运行环境准备》 配置 PaddleOCR 运行环境包括 PaddlePaddle 安装、依赖包安装等并参考 《项目克隆》 克隆项目代码到本地。4. 模型训练4.1 数据集准备CPPD 训练使用的公开数据集如下英文数据集PARSeq 项目github.com/baudm/parseq提供的数据划分Union14M-Lgithub.com/Mountchicken/Union14M中文数据集github.com/fudanvi/benchmarking-chinese-text-recognition#download。数据集准备完成后需要按 LMDB 格式组织数据目录配置文件中默认读取./train_data/data_lmdb_release/training/与./train_data/data_lmdb_release/evaluation/作为训练与评估数据目录见 rec_svtrnet_cppd_base_en.yml。4.2 配置文件详解训练 CPPD 识别模型时需要更换配置文件为 CPPD 专属配置。仓库中提供了两份 CPPD 配置文件configs/rec/rec_svtrnet_cppd_base_en.yml英文 CPPD-Base输入图像尺寸 3×32×100configs/rec/rec_svtrnet_cppd_base_ch.yml中文 CPPD-Base输入图像尺寸 3×32×256。以英文配置为例其关键结构如下可对照 rec_svtrnet_cppd_base_en.yml 完整查看Global: use_gpu: True epoch_num: 20 # 英文配置训练 20 轮中文配置为 100 轮 log_smooth_window: 20 print_batch_step: 10 save_model_dir: ./output/rec/svtr_cppd_base/ save_epoch_step: 1 eval_batch_step: [0, 2000] # 从第 0 个 iter 起每 2000 个 iter 评估一次 cal_metric_during_train: True character_type: en # 中文配置为 ppocr_keys_v1.txt 字典 max_text_length: 25 use_space_char: False Architecture: model_type: rec algorithm: CPPD # 识别算法名推理时与 rec_algorithm 对应 Backbone: name: SVTRNet # 视觉主干采用 SVTRNet img_size: [32, 100] patch_merging: Conv embed_dim: [128, 256, 384] depth: [6, 6, 4] num_heads: [4, 8, 12] last_stage: False prenorm: True Head: name: CPPDHead # 并行解码头 dim: 384 vis_seq: 50 # 视觉序列长度中文配置为 128 num_layer: 3 # 解码层数 Loss: name: CPPDLoss ignore_index: 100 # 必须大于字符类别数中文配置为 7000 smoothing: True # 边预测使用标签平滑 CE sideloss_weight: 1.0 # 节点辅助损失权重 PostProcess: name: CPPDLabelDecode # 对应 ppocr/postprocess/rec_postprocess.py Train: dataset: name: LMDBDataSet data_dir: ./train_data/data_lmdb_release/training/ transforms: - DecodeImage: img_mode: BGR channel_first: False - CPPDLabelEncode: # 字符节点/位置节点/边 标签构造 ignore_index: 100 - SVTRRecResizeImg: image_shape: [3, 32, 100] padding: False # 中文配置为 True - KeepKeys: keep_keys: [image, label, label_node, length] loader: shuffle: True batch_size_per_card: 256 drop_last: True num_workers: 8几个对训练至关重要的参数需要重点说明Architecture.Head.name: CPPDHead配置中心ppocr/modeling/heads/__init__.py据此实例化CPPDHead。num_layer控制字符/位置双路解码器的层数vis_seq必须与SVTRRecResizeImg.image_shape及主干输出的序列长度匹配英文配置为 50对应 100 宽图像中文配置为 128对应 256 宽图像。Loss.ignore_index注释明确指出必须大于字符类别数用于屏蔽 padding 位置。英文配置为 100中文配置为 7000中文词典更大。在 rec_cppd_loss.py 中该值传入CrossEntropyLoss(ignore_index...)与标签平滑 CE 的 padding mask 计算。sideloss_weight控制节点字符节点 位置节点辅助损失的权重。CPPDLoss.forward中总损失为sideloss_weight * loss_node loss_edge即loss sideloss_weight * (loss_char_node loss_pos_node) loss_edge其中loss_char_node用交叉熵、loss_pos_node用BCEWithLogitsLoss、loss_edge用可选标签平滑的交叉熵。Optimizer.lr.learning_rate: 0.0005注释标注4gpus 256bs即该学习率对应 4 卡、batch size 256 的配置单卡或不同 batch size 时需按经验调整。Global.character_dict_path英文配置留空character_type: en使用内置英文字典中文配置显式指定ppocr/utils/ppocr_keys_v1.txt。若在自己数据集上训练并调整过字典必须核对此路径。CPPDLabelEncodelabel_ops.py是 CPPD 训练标签构造的核心英文模式下chFalse它对每个字符维护计数text_node并构造字符顺序order列表ch_order同时输出label含/s与 padding、label_node字符出现次数 位置指示与label_order中文模式下chTrue配置文件通过ch: True开启额外输出label_index参与解码的真实字符索引序列。这些多任务标签正是 CO/CC 模块监督信号的来源。4.3 启动训练在完成数据准备后即可启动训练# 单卡训练训练周期长不建议 python3 tools/train.py -c configs/rec/rec_svtrnet_cppd_base_en.yml # 多卡训练通过 --gpus 参数指定卡号 python3 -m paddle.distributed.launch --gpus 0,1,2,3 tools/train.py -c configs/rec/rec_svtrnet_cppd_base_en.yml更完整的训练流程数据格式、评估指标、断点续训等请参考 文本识别训练教程。5. 模型评估可下载 CPPD 官方提供的模型与配置文件压缩包以CPPD-B英文为例# 下载包含 CPPD-B 的模型文件和配置文件的 tar 压缩包并解压 wget https://paddleocr.bj.bcebos.com/CCPD/rec_svtr_cppd_base_en_train.tar tar xf rec_svtr_cppd_base_en_train.tar # 注意将 pretrained_model 的路径设置为本地路径。 python3 -m paddle.distributed.launch --gpus 0 tools/eval.py \ -c ./rec_svtr_cppd_base_en_train/rec_svtrnet_cppd_base_en.yml \ -o Global.pretrained_model./rec_svtr_cppd_base_en_train/best_modeltools/eval.py会按配置中的Eval数据段读取评估集LMDB并利用PostProcess: CPPDLabelDecode见 rec_postprocess.py继承自NRTRLabelDecode并扩展了边概率解码将网络输出还原为文本再交给RecMetricmain_indicator: acc计算识别准确率。6. 模型预测使用如下命令进行单张图片预测也支持对文件夹内全部图像批量预测# 注意将 pretrained_model 的路径设置为本地路径。 python3 tools/infer_rec.py \ -c ./rec_svtr_cppd_base_en_train/rec_svtrnet_cppd_base_en.yml \ -o Global.infer_img./doc/imgs_words_en/word_10.png \ Global.pretrained_model./rec_svtr_cppd_base_en_train/best_model # 预测文件夹下所有图像时可修改 infer_img 为文件夹如 Global.infer_img./doc/imgs_words_en/。7. 推理部署7.1 Python 推理首先将训练得到的 best 模型转换为 inference model。下面以基于CPPD-B、在英文数据集训练的模型为例模型和配置文件下载地址https://paddleocr.bj.bcebos.com/CCPD/rec_svtr_cppd_base_en_train.tar。注意如果您是在自己的数据集上训练的模型并且调整了字典文件请注意修改配置文件中的character_dict_path是否为正确的字典文件。执行如下命令进行模型导出# 注意将 pretrained_model 的路径设置为本地路径。 # export model # en python3 tools/export_model.py -c configs/rec/rec_svtrnet_cppd_base_en.yml \ -o Global.pretrained_model./rec_svtr_cppd_base_en_train/best_model.pdparams \ Global.save_inference_dir./rec_svtr_cppd_base_en_infer # ch python3 tools/export_model.py -c configs/rec/rec_svtrnet_cppd_base_ch.yml \ -o Global.pretrained_model./rec_svtr_cppd_base_ch_train/best_model.pdparams \ Global.save_inference_dir./rec_svtr_cppd_base_ch_infer模型导出成功后在目录下有三个文件/inference/rec_svtr_cppd_base_en_infer/ ├── inference.pdiparams # 识别 inference 模型的参数文件 ├── inference.pdiparams.info # 识别 inference 模型的参数信息可忽略 └── inference.pdmodel # 识别 inference 模型的 program 文件导出后即可用tools/infer/predict_rec.py进行带 benchmark 的推理测速。原文档同时给出基于 TensorRT 的加速示例依赖 docker 镜像 paddlepaddle/paddle:2.4.2-gpu-cuda11.2-cudnn8.2-trt8.0 与 auto_log 工具包# speed testen输入形状 3,32,100英文字典 ic15_dict.txt python3 tools/infer/predict_rec.py \ --image_dir../iiik \ --rec_model_dir./rec_svtr_cppd_base_en_infer/ \ --rec_algorithmCPPD \ --rec_image_shape3,32,100 \ --rec_char_dict_path./ppocr/utils/ic15_dict.txt \ --warmupTrue --benchmarkTrue --rec_batch_num1 --use_tensorrtTrue # speed testch输入形状 3,32,256注意算法名为 CPPDPadding python3 tools/infer/predict_rec.py \ --image_dir../iiik \ --rec_model_dir./rec_svtr_cppd_base_ch_infer/ \ --rec_algorithmCPPDPadding \ --rec_image_shape3,32,256 \ --warmupTrue --benchmarkTrue --rec_batch_num1 --use_tensorrtTrue # speed teststn_ch输入形状 3,64,256 python3 tools/infer/predict_rec.py \ --image_dir../iiik \ --rec_model_dir./rec_svtr_cppd_base_stn_ch_infer/ \ --rec_algorithmCPPD \ --rec_image_shape3,64,256 \ --warmupTrue --benchmarkTrue --rec_batch_num1 --use_tensorrtTrue注意中文模型对应推理算法名为CPPDPadding因为中文配置的SVTRRecResizeImg.padding: True英文模型为CPPDrec_image_shape需与训练时一致。7.2 C 推理部署由于 C 预处理、后处理还未支持 CPPD所以暂未支持。7.3 Serving 服务化部署暂不支持。7.4 更多推理部署暂不支持。部署边界说明截至本仓库文档版本CPPD 的推理部署仅支持 Python 侧含 TensorRT 加速C 推理、Serving 服务化及其它端侧部署均未开放。选择 CPPD 时需结合自身部署链路评估。8. 引用如果 CPPD 对您的研究或工作有帮助请引用原论文article{Du2023CPPD, title {Context Perception Parallel Decoder for Scene Text Recognition}, author {Du, Yongkun and Chen, Zhineng and Jia, Caiyan and Yin, Xiaoting and Li, Chenxia and Du, Yuning and Jiang, Yu-Gang}, booktitle {Arxiv}, year {2023}, url {https://arxiv.org/abs/2307.12270} }9. 进一步阅读完整文档与更多算法说明docs/version2.x/algorithm文本识别训练全流程教程docs/version2.x/ppocr/model_train/recognition.md运行环境准备docs/version2.x/ppocr/environment.mdCPPD 英文配置文件configs/rec/rec_svtrnet_cppd_base_en.ymlCPPD 中文配置文件configs/rec/rec_svtrnet_cppd_base_ch.yml核心 Head 源码ppocr/modeling/heads/rec_cppd_head.py损失函数源码ppocr/losses/rec_cppd_loss.py【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Practice 65 键盘移植解析:QMK 数据驱动配置与 Blue Pill STM32F103C8T6 实战指南

Practice 65 键盘移植解析:QMK 数据驱动配置与 Blue Pill STM32F103C8T6 实战指南

Practice 65 键盘移植解析:QMK 数据驱动配置与 Blue Pill STM32F103C8T6 实战指南 【免费下载链接】qmk_firmware Open-source keyboard firmware for Atmel AVR and Arm USB families 项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware 导读 …

2026/9/18 23:19:07 阅读更多 →
TiXL 安装完整性验证与安全启动:从「打地鼠式补丁」到集中式安装校验方案

TiXL 安装完整性验证与安全启动:从「打地鼠式补丁」到集中式安装校验方案

TiXL 安装完整性验证与安全启动:从「打地鼠式补丁」到集中式安装校验方案 【免费下载链接】t3 TiXL is an open source software to create realtime motion graphics. 项目地址: https://gitcode.com/GitHub_Trending/t3/t3 TiXL(开源实时动态图…

2026/9/18 23:19:07 阅读更多 →
DataHub Looker 接入实战:用法统计(Usage Statistics)、能力边界与故障排查

DataHub Looker 接入实战:用法统计(Usage Statistics)、能力边界与故障排查

DataHub Looker 接入实战:用法统计(Usage Statistics)、能力边界与故障排查 【免费下载链接】datahub The Context Platform for your Data and AI Stack 项目地址: https://gitcode.com/GitHub_Trending/da/datahub DataHub 的 looke…

2026/9/18 23:19:07 阅读更多 →

最新新闻

PixiJS v8 遮罩(Masking)完全指南:AlphaMask、StencilMask、ScissorMask 与 ColorMask

PixiJS v8 遮罩(Masking)完全指南:AlphaMask、StencilMask、ScissorMask 与 ColorMask

PixiJS v8 遮罩(Masking)完全指南:AlphaMask、StencilMask、ScissorMask 与 ColorMask 【免费下载链接】pixijs The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer. 项目地…

2026/9/19 0:02:31 阅读更多 →
Ray 文档软换行(Soft-wrap)工程化指南:用确定性脚本规范化 Markdown 换行并保障渲染等价

Ray 文档软换行(Soft-wrap)工程化指南:用确定性脚本规范化 Markdown 换行并保障渲染等价

Ray 文档软换行(Soft-wrap)工程化指南:用确定性脚本规范化 Markdown 换行并保障渲染等价 【免费下载链接】ray Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML wo…

2026/9/19 0:02:31 阅读更多 →
SYB创业计划书财务逻辑拆解:从销售收入预测到现金流量计划

SYB创业计划书财务逻辑拆解:从销售收入预测到现金流量计划

简介:SYB创业计划书完整版.doc 是一份面向创业者、备赛学生及有开店打算人群的实用模板,以一家社区日用超市为案例,围绕企业概况、创业者个人情况、市场评估、市场营销计划、企业组织结构、固定资产、流动资金、销售收入预测、销售和成本计划…

2026/9/19 0:02:31 阅读更多 →
OpenClaw.NET 用 /goal start 跑长任务,模型 Base URL 改到 TaoToken

OpenClaw.NET 用 /goal start 跑长任务,模型 Base URL 改到 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/19 0:02:31 阅读更多 →
oh-my-hermes:打造跨工具的命令编排与插件化工作流

oh-my-hermes:打造跨工具的命令编排与插件化工作流

1. 项目概述与设计初衷1.1 它到底是什么先说结论:oh-my-hermes 是一个面向开发者日常终端操作的效率工具套件,核心定位是“把分散在各类命令行工具里的高频操作,统一收拢成一套插件化、可编排的工作流”。项目灵感来源很明显——oh-my-zsh 重…

2026/9/19 0:02:31 阅读更多 →
2026惠州电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐

2026惠州电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐

惠州本地电气防爆检测机构鳞次栉比,但资质水平参差不齐、鱼龙混杂。化工园区、油库加油站、矿山厂区、制药企业及危化品仓储场所进行防爆电气安全排查与生产验收时,大量无资质机构出具的检测报告往往无法通过应急管理部门核查,导致企业反复整…

2026/9/19 0:01:31 阅读更多 →

日新闻

BP神经网络时序预测:滑窗长度与多窗口平均策略

BP神经网络时序预测:滑窗长度与多窗口平均策略

简介:面向机器学习、深度学习与数据建模学习者的一份完整研究文献,聚焦BP神经网络在农业产量预测中的应用。文档以1980—2018年全国棉花产量为样本,系统讲解数据归一化处理、激活函数原理、多层神经网络结构搭建及训练流程,展示敏…

2026/9/19 0:00:30 阅读更多 →
Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

Transformer训练实时监控实战:基于MindSpore的损失曲线可视化方案

上个月调一个Deformable DETR模型,在单卡上要跑将近两天。第二天早上我下意识打开终端翻日志,发现loss从凌晨两点就开始往上爬,一路从0.8涨到1.35,整整六个小时没人发现。那六个小时的训练不仅白跑,还霸占着卡——等于…

2026/9/19 0:00:30 阅读更多 →
OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南

OpenCloud 中的 Go 类型安全转换库 spf13/cast:从零值回退到泛型 API 的完整实战指南 【免费下载链接】opencloud 🌤️ OpenCloud is the open source platform for file management, sharing and collaboration. Simple and sovereign. 项目地址: htt…

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

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

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

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

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

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

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

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

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

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

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

2026/9/16 22:32:59 阅读更多 →