refactor(core): 提炼公共类型

- 将 AxisDim、TensorInfo 等公共类型下沉至 ddddocr_core::types
- 项目结构优化
This commit is contained in:
2026-07-30 16:55:58 +08:00
parent 7d159c5702
commit a3c4614574
22 changed files with 349 additions and 408 deletions

View File

@@ -1,27 +1,27 @@
use crate::loader::Error;
use crate::loader::error::{BuildError, ParseError, Result};
use crate::types::Session;
use ddddocr_core::ModelBuilder;
use ddddocr_core::traits::Loader;
use ort::session::Session as OrtSession;
use ort::session::builder::SessionBuilder;
use std::sync::{Arc, Mutex};
pub struct OrtModelLoader;
impl OrtModelLoader {
/// 获取针对 ORT 后端的链式构建器
pub fn builder() -> OrtModelBuilder {
OrtModelBuilder::default()
}
}
// pub struct OrtModelLoader;
//
// impl OrtModelLoader {
// /// 获取针对 ORT 后端的链式构建器
// pub fn builder() -> OrtModelBuilder {
// OrtModelBuilder::default()
// }
// }
/// ORT 专用的链式构建器
#[derive(Debug, Clone)]
pub struct OrtModelBuilder {
pub struct ModelLoader {
use_gpu: bool,
device_id: i32,
intra_threads: Option<usize>,
}
impl Default for OrtModelBuilder {
impl Default for ModelLoader {
fn default() -> Self {
Self {
use_gpu: false,
@@ -30,7 +30,7 @@ impl Default for OrtModelBuilder {
}
}
}
impl OrtModelBuilder {
impl ModelLoader {
/// 开启或关闭 GPU 加速
pub fn use_gpu(mut self, enable: bool) -> Self {
self.use_gpu = enable;
@@ -83,11 +83,11 @@ impl OrtModelBuilder {
}
}
impl ModelBuilder for OrtModelBuilder {
impl Loader for ModelLoader {
type Session = Session;
type Error = Error;
fn model_for_path<P>(&self, model_path: P) -> Result<Session>
fn build_for_path<P>(&self, model_path: P) -> Result<Session>
where
P: AsRef<std::path::Path>,
{
@@ -102,7 +102,7 @@ impl ModelBuilder for OrtModelBuilder {
Ok(Arc::new(Mutex::new(session))) // 这里的session需要包装下
}
/// 策略 B从内存字节流加载模型配合 include_bytes! 使用)
fn model_from_bytes(&self, model_bytes: &[u8]) -> Result<Session> {
fn build_from_bytes(&self, model_bytes: &[u8]) -> Result<Session> {
let mut builder = self.create_session_builder()?;
let session = builder