use std::path::PathBuf;
use serde::{Deserialize, Serialize};
use crate::config::{LangRec, ModelType, OcrVersion};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct ModelConfig {
pub lang: LangRec,
pub ocr_version: OcrVersion,
pub model_type: ModelType,
pub model_path: Option<PathBuf>,
pub rec_keys_path: Option<PathBuf>,
pub allow_download: bool,
}
impl Default for ModelConfig {
fn default() -> Self {
Self {
lang: LangRec::default(),
ocr_version: OcrVersion::default(),
model_type: ModelType::default(),
model_path: None,
rec_keys_path: None,
allow_download: true,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct RecognizerConfig {
pub model: ModelConfig,
pub rec_batch_num: usize,
pub rec_img_shape: [usize; 3],
pub model_store_dir: Option<PathBuf>,
}
impl Default for RecognizerConfig {
fn default() -> Self {
Self {
model: ModelConfig::default(),
rec_batch_num: 6,
rec_img_shape: [3, 48, 320],
model_store_dir: None,
}
}
}
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize)]
pub struct RecognizeOptions {
pub return_word_box: bool,
pub return_single_char_box: bool,
}