feat: ddddocr-rs 完成 core/ort/tract2 规范整改与发布

准备

  - core:内置官方字符集(OLD/BETA)与 ModelMetadata::from_builtin_*
  构造器
  - ort:导出 Session、实现 Info、修正 cuda feature 接线、共享推理工具
  - tract2:包名更名(原 ddddocr-tract 已被占用)并完成规范整改
  - 集成测试按领域拆分(ocr / det / slide / common / api_surface)
  - 发布准备:Cargo.toml 元数据、workspace 版本 0.2.4、LICENSE/
  NOTICE、README 模型下载说明
This commit is contained in:
2026-08-10 19:56:29 +08:00
parent fe61895926
commit 00e8ab5308
58 changed files with 2542 additions and 2237 deletions

View File

@@ -165,7 +165,7 @@ mod tests {
#[test]
fn new_wraps_third_party_error() {
let io_err = std::io::Error::new(std::io::ErrorKind::Other, "boom");
let io_err = std::io::Error::other("boom");
let err = DdddError::new(io_err);
assert!(matches!(err, DdddError::Other(_)));
}

View File

@@ -2,7 +2,7 @@
//!
//! `ddddocr-rs` 的核心库:提供与具体推理引擎解耦的 OCR 识别、目标检测det与滑块匹配slide能力。
//! 推理能力由 [`traits::InferenceEngine`]、[`traits::OcrEngine`]、[`traits::DetEngine`] 抽象,
//! 由 `ddddocr-tract`、`ddddocr-ort` 等引擎 crate 实现。
//! 由 `ddddocr-tract2`、`ddddocr-ort` 等引擎 crate 实现。
//!
//! 完整可运行示例见 `ddddocr-core/examples/quick_start.rs`。

View File

@@ -1,6 +1,7 @@
//! OCR 模块:识别器构建器、执行入口及元数据、字符集等类型。
mod builder;
mod builtin;
mod charset;
mod color_filter;
mod executor;

File diff suppressed because it is too large Load Diff

View File

@@ -88,6 +88,37 @@ impl ModelMetadata {
normalization,
}
}
/// 使用内置旧版字符集(与官方旧版模型配套)。
pub fn from_builtin_old(
word: bool,
resize: Resize,
channel: u8,
normalization: Normalization,
) -> Self {
Self::from_static_slice(
super::builtin::CHARSET_OLD,
word,
resize,
channel,
normalization,
)
}
/// 使用内置 Beta 字符集(与官方 Beta 模型配套)。
pub fn from_builtin_beta(
word: bool,
resize: Resize,
channel: u8,
normalization: Normalization,
) -> Self {
Self::from_static_slice(
super::builtin::CHARSET_BETA,
word,
resize,
channel,
normalization,
)
}
}
#[cfg(test)]

View File

@@ -15,7 +15,7 @@ pub trait Info {
fn model_info(&self) -> crate::error::Result<ModelInfo>;
}
/// 推理引擎统一抽象接口,由 ddddocr-tract、ddddocr-ort 等引擎 crate 实现。
/// 推理引擎统一抽象接口,由 ddddocr-tract2、ddddocr-ort 等引擎 crate 实现。
pub trait InferenceEngine {
/// 引擎产出的输出枚举OCR 为 [`crate::OcrOutput`],检测为 [`crate::DetOutput`])。
type Output;