From 91049fc18a6c5d327aa45a7461906899c7cde4c6 Mon Sep 17 00:00:00 2001 From: oatiz Date: Wed, 17 Apr 2024 20:11:11 +0800 Subject: [PATCH] fix: svtr decode bug (#8) --- examples/svtr/README.md | 5 +++-- examples/svtr/main.rs | 5 +++-- examples/svtr/text5.png | Bin 0 -> 14524 bytes src/models/svtr.rs | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 examples/svtr/text5.png diff --git a/examples/svtr/README.md b/examples/svtr/README.md index 6c94700..ba62fa6 100644 --- a/examples/svtr/README.md +++ b/examples/svtr/README.md @@ -24,8 +24,9 @@ cargo run -r --example svtr ## Results ```shell -[Texts] from the background, but also separate text instances which -[Texts] are closely jointed. Some examples are illustrated in Fig.7. +[Texts] from the background, but also separate text instances which +[Texts] are closely jointed. Some examples are illustrated in Fig.7. [Texts] 你有这么高速运转的机械进入中国,记住我给出的原理 [Texts] 110022345 +[Texts] 冀B6G000 ``` diff --git a/examples/svtr/main.rs b/examples/svtr/main.rs index 3ca77b1..b86fa86 100644 --- a/examples/svtr/main.rs +++ b/examples/svtr/main.rs @@ -4,8 +4,8 @@ fn main() -> Result<(), Box> { // build model let options = Options::default() .with_i00((1, 2, 8).into()) - .with_i03((320, 1500, 2200).into()) - .with_confs(&[0.6]) + .with_i03((320, 960, 1600).into()) + .with_confs(&[0.4]) .with_vocab("../ppocr_rec_vocab.txt") .with_model("../models/ppocr-v4-svtr-ch-dyn.onnx"); let mut model = SVTR::new(&options)?; @@ -16,6 +16,7 @@ fn main() -> Result<(), Box> { DataLoader::try_read("./examples/svtr/text2.png")?, DataLoader::try_read("./examples/svtr/text3.png")?, DataLoader::try_read("./examples/svtr/text4.png")?, + DataLoader::try_read("./examples/svtr/text5.png")?, ]; // run diff --git a/examples/svtr/text5.png b/examples/svtr/text5.png new file mode 100644 index 0000000000000000000000000000000000000000..2ced5b2f852757a3da5032bddfe788c8459cb01e GIT binary patch literal 14524 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 jkprwYP%&)7