Skip to content

SimdPaddleOCR 1.4

Choose a tag to compare

@sdcb sdcb released this 19 Sep 12:36
· 6 commits to main since this release

非常自豪地发布 SimdPaddleOCR 1.4。这一版把 1.3 没开闸的路径补上了:墙钟更快、工作集腰斩、medium 正确率贴上 C,像素也不用再先转成 BGR。

性能碉堡

图级 NHWC 从「仅 AVX2」扩到 ns2 / x64 scalar / net10 AdvSIMD。预处理直接写 NHWC,少一次输入搬家。

本机 Ryzen 7 5800X、4 worker、同一套 100 张(墙钟 n=99):

模型 路径 1.3 1.4 相对
tiny net10 AVX2 86.0 ms 63.1 ms 0.73×
tiny ns2 203.1 ms 96.5 ms 0.48×
small net10 AVX2 222 ms 200 ms 0.90×
medium net10 AVX2 628 ms 585 ms 0.93×
medium ns2 1606 ms 874 ms 0.54×

CI 上 linux-arm64 N2 tiny-4w 241 → 180 ms(约快 25%);win-x64 7763 的 ns2 343 → 228 ms。AVX2 默认路径和 1.3 持平,台阶在以前吃不到 NHWC 的那些人。

内存优化

tiny 工作集峰值 804 → 515 MB,medium 2489 → 1206 MB。CI 同一把尺子:7763 817 → 515 MB,N2 840 → 572 MB,Δ WS 从大约 400 MB 掉到 100–160 MB。

正确率优化

CLS 预处理改回 PaddleOCR ClsResizeImg 保比例,细长拉丁行不再被拉成 160×80 后 0/180 翻面。本机同一 1036 行:tiny / small 没动;medium CER 0.67% → 0.26%,已经贴上 lw.PPOCR.C 的 0.24%。

像素格式

Run 默认仍是 Bgr24,也可以直接吃 RGB24 / BGRA32 / RGBA32。swizzle 发生在本来就要做的 resize / warp 里,不摊一张中间 BGR。ImageSharp 的 Rgba32、Skia / Bitmap 的 BGRA 可以原样送进来。

LINQPad

NuGet 包带 4 个脚本:imagesharp / skiasharp / opencvsharp5 / bitmap。下载示例图,tiny 模型识别,控制台输出文字。打了 linqpad-samples 标签,免费版也能用。bitmap 在 LINQPad 5 / .NET Framework 4.8 和 .NET 10 上都能跑。

完整数字和读数规则见 docs/perf.md。NuGet:Sdcb.SimdPaddleOCR