From 8fcfa2096edbb53ca1826fb46a9afabfa5b523b9 Mon Sep 17 00:00:00 2001 From: CNWei Date: Wed, 6 May 2026 17:37:38 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=20OpenCV=20?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=B9=B6=E5=AE=9E=E7=8E=B0=E7=BA=AF=20Rust?= =?UTF-8?q?=20=E5=9B=BE=E5=83=8F=E5=A4=84=E7=90=86=E6=B5=81=E6=B0=B4?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 替换 opencv 为 image 库以简化交叉编译 - 修正 nms 逻辑中的 ArrayView 借用问题 - 增加 save_debug_image 方法用于可视化检测框 - 更新 Cargo.toml 依赖项 --- code3.png | Bin 0 -> 5715 bytes samples/det1.png | Bin 0 -> 72098 bytes samples/det2.png | Bin 0 -> 97297 bytes src/det_model.rs | 205 ++++++++++++++++++++++++++++++++++++++++++-- src/lib.rs | 87 +++++++++++-------- src/model_loader.rs | 2 +- src/ocr_model.rs | 55 ++++++------ tests/ocr_test.rs | 60 +++++++++++++ 8 files changed, 338 insertions(+), 71 deletions(-) create mode 100644 code3.png create mode 100644 samples/det1.png create mode 100644 samples/det2.png diff --git a/code3.png b/code3.png new file mode 100644 index 0000000000000000000000000000000000000000..ac30b0bca790308bb6bb7110b8c6e4ff21023ec3 GIT binary patch literal 5715 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 Y#1nkB6_=kB!DTU|p{k?u8)g~$f2FnhEdT%j literal 0 HcmV?d00001 diff --git a/samples/det1.png b/samples/det1.png new file mode 100644 index 0000000000000000000000000000000000000000..dd4cb469e061c52c6afd9b7c20be5a98d8b647cf GIT binary patch literal 72098 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 JC&c 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

5kX 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 YmL{+-EAxQV2m~xuMJ-spf, Graph>>, } impl ModelSession for Det { - fn predict(&self, image: &DynamicImage, png_fix: bool) -> Result { - // OCR 识别逻辑 + CTC 解码 - Ok("ocr result".to_string()) - } - fn get_model_type(&self) -> ModelType { todo!() } + fn desc(&self) -> String { + "Detection Model 加载成功".to_string() + } } impl Det { pub fn new(model_path: String) -> Result { let session = ModelLoader::load_model(&model_path)?.session; Ok(Self { session }) } + pub fn predict(&self, image_bytes: &[u8]) -> Result>> { + // Rust 中通常在调用层处理文件/PIL转换,这里直接进入核心逻辑 + self.get_bbox(image_bytes) + } + /// 2. preproc: 纯 Rust 实现 (替代 OpenCV) + fn preproc(&self, img: &DynamicImage, input_size: (u32, u32)) -> Result<(Tensor, f32)> { + let (target_h, target_w) = input_size; + let (img_w, img_h) = img.dimensions(); + + // 计算缩放比例 (Letterbox) + let r = (target_h as f32 / img_h as f32).min(target_w as f32 / img_w as f32); + let new_h = (img_h as f32 * r) as u32; + let new_w = (img_w as f32 * r) as u32; + + // Resize 图像 + let resized = img.resize_exact(new_w, new_h, FilterType::Triangle); + // 2. 关键:将 DynamicImage 显式转换为 RgbImage (Rgb) + let resized_rgb = resized.to_rgb8(); + // 创建 114 灰度填充的背景 + let mut base_img = + image::ImageBuffer::from_pixel(target_w, target_h, image::Rgb([114u8, 114, 114])); + + // 将 resize 后的图像覆盖到左上角 (类似于原始代码中的 padded_img[:h, :w]) + image::imageops::overlay(&mut base_img, &resized_rgb, 0, 0); + + // 构造 NCHW Tensor + let mut array = Array4::::zeros((1, 3, target_h as usize, target_w as usize)); + for (x, y, pixel) in base_img.enumerate_pixels() { + // RGB 顺序归一化 (根据模型需求,若需 BGR 则调换索引) + array[[0, 0, y as usize, x as usize]] = pixel[0] as f32; + array[[0, 1, y as usize, x as usize]] = pixel[1] as f32; + array[[0, 2, y as usize, x as usize]] = pixel[2] as f32; + } + + Ok((array.into(), r)) + } + + /// 3. demo_postprocess (逻辑与 Python 一致) + fn demo_postprocess(&self, mut outputs: Array3, img_size: (i32, i32)) -> Array3 { + let strides = [8, 16, 32]; + let mut offset = 0; + + for stride in strides { + let h = img_size.0 / stride; + let w = img_size.1 / stride; + for y in 0..h { + for x in 0..w { + let idx = offset + (y * w + x) as usize; + // cx, cy 还原 + outputs[[0, idx, 0]] = (outputs[[0, idx, 0]] + x as f32) * stride as f32; + outputs[[0, idx, 1]] = (outputs[[0, idx, 1]] + y as f32) * stride as f32; + // w, h 还原 + outputs[[0, idx, 2]] = outputs[[0, idx, 2]].exp() * stride as f32; + outputs[[0, idx, 3]] = outputs[[0, idx, 3]].exp() * stride as f32; + } + } + offset += (h * w) as usize; + } + outputs + } + + /// 4. nms + fn nms(&self, boxes: &Array2, scores: &Array1, nms_thr: f32) -> Vec { + let mut keep = Vec::new(); + let x1 = boxes.column(0); + let y1 = boxes.column(1); + let x2 = boxes.column(2); + let y2 = boxes.column(3); + // 在每一项前加上 &,并确保括号内的计算顺序 + // 注意:ndarray 的 View 运算需要 &view1 - &view2 + let areas = (&x2 - &x1 + 1.0) * (&y2 - &y1 + 1.0); + + let mut v: Vec = (0..scores.len()).collect(); + v.sort_by(|&i, &j| { + scores[j] + .partial_cmp(&scores[i]) + .unwrap_or(std::cmp::Ordering::Equal) + }); + + while let Some(i) = v.first().cloned() { + keep.push(i); + if v.len() == 1 { + break; + } + v.remove(0); + v.retain(|&idx| { + let xx1 = x1[i].max(x1[idx]); + let yy1 = y1[i].max(y1[idx]); + let xx2 = x2[i].min(x2[idx]); + let yy2 = y2[i].min(y2[idx]); + let w = (xx2 - xx1 + 1.0).max(0.0); + let h = (yy2 - yy1 + 1.0).max(0.0); + let inter = w * h; + let iou = inter / (areas[i] + areas[idx] - inter); + iou <= nms_thr + }); + } + keep + } + + /// 5. multiclass_nms + fn multiclass_nms( + &self, + boxes: &Array2, + scores: &Array2, + nms_thr: f32, + score_thr: f32, + ) -> Vec> { + let mut result = Vec::new(); + for i in 0..scores.nrows() { + let row = scores.row(i); + let (cls_id, &score) = row + .iter() + .enumerate() + .max_by(|a, b| a.1.partial_cmp(b.1).unwrap()) + .unwrap(); + + if score > score_thr { + let mut det = boxes.row(i).to_vec(); + det.push(score); + det.push(cls_id as f32); + result.push(det); + } + } + + if result.is_empty() { + return vec![]; + } + + let b_subset = Array2::from_shape_vec( + (result.len(), 4), + result.iter().flat_map(|r| r[0..4].to_vec()).collect(), + ) + .unwrap(); + let s_subset = Array1::from_vec(result.iter().map(|r| r[4]).collect()); + + let keep = self.nms(&b_subset, &s_subset, nms_thr); + keep.into_iter().map(|idx| result[idx].clone()).collect() + } + + /// 6. get_bbox (完全解耦 OpenCV) + pub fn get_bbox(&self, image_bytes: &[u8]) -> Result>> { + // 使用 image crate 解码 + let dynamic_img = image::load_from_memory(image_bytes).context("Failed to decode image")?; + let (orig_w, orig_h) = dynamic_img.dimensions(); + + let (input_tensor, ratio) = self.preproc(&dynamic_img, (416, 416))?; + + // tract 推理 + let outputs = self.session.run(tvec!(input_tensor.into()))?; + let output_array = outputs[0] + .to_array_view::()? + .to_owned() + .into_dimensionality::()?; + + let predictions = self.demo_postprocess(output_array, (416, 416)); + let pred = predictions.slice(s![0, .., ..]); + + let boxes = pred.slice(s![.., 0..4]); + let scores = &pred.slice(s![.., 4..5]) * &pred.slice(s![.., 5..]); + + let mut boxes_xyxy = Array2::::zeros(boxes.raw_dim()); + for i in 0..boxes.nrows() { + boxes_xyxy[[i, 0]] = (boxes[[i, 0]] - boxes[[i, 2]] / 2.0) / ratio; + boxes_xyxy[[i, 1]] = (boxes[[i, 1]] - boxes[[i, 3]] / 2.0) / ratio; + boxes_xyxy[[i, 2]] = (boxes[[i, 0]] + boxes[[i, 2]] / 2.0) / ratio; + boxes_xyxy[[i, 3]] = (boxes[[i, 1]] + boxes[[i, 3]] / 2.0) / ratio; + } + + let dets = self.multiclass_nms(&boxes_xyxy, &scores, 0.45, 0.1); + + Ok(dets + .into_iter() + .map(|d| { + vec![ + (d[0] as i32).max(0).min(orig_w as i32), + (d[1] as i32).max(0).min(orig_h as i32), + (d[2] as i32).max(0).min(orig_w as i32), + (d[3] as i32).max(0).min(orig_h as i32), + ] + }) + .collect()) + } + + } diff --git a/src/lib.rs b/src/lib.rs index 87504ff..f1be9ef 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,84 +10,99 @@ mod utils; use anyhow::Result; use image::DynamicImage; +use std::fmt::{Display, Formatter}; // 关键点:直接使用 tract 重导出的 ndarray +use crate::charset::get_default_charset; use crate::det_model::Det; use crate::model_loader::ModelSession; use crate::ocr_model::Ocr; -use crate::charset::get_default_charset; -pub enum ModeType { +pub enum ModelSpec { /// 默认 OCR (使用内置路径) - Ocr { - path: String, - charset: Vec, - }, - Det { - path: String, - }, + OcrModel, + DetModel, /// 自定义 OCR (路径由用户提供) - CustomOcr { + CustomOcrModel { path: String, charset: Vec, }, } - +impl ModelSpec { + // 将默认路径定义为内部关联常量 + const DEFAULT_OCR_PATH: &'static str = "models/common_sml2h3_f32.onnx"; + const DEFAULT_DET_PATH: &'static str = "models/common_det.onnx"; +} +pub enum Runtime { + Ocr(Ocr), + Det(Det), +} +impl Runtime { + // 统一获取描述的方法 + pub fn desc(&self) -> String { + match self { + Runtime::Ocr(s) => s.desc(), // 调用 Ocr 结构体的方法 + Runtime::Det(s) => s.desc(), // 调用 Det 结构体的方法 + } + } +} pub struct DdddOcrBuilder { - mode: ModeType, + mode: ModelSpec, } impl DdddOcrBuilder { pub fn new() -> Self { Self { - mode: ModeType::Ocr { - path: "models/common.onnx".to_string(), - charset: get_default_charset(), - }, + mode: ModelSpec::OcrModel, } } /// 切换为检测模式 pub fn det(mut self) -> Self { - self.mode = ModeType::Det { - path: "models/common_det.onnx".to_string(), - }; + self.mode = ModelSpec::DetModel; self } /// 设置自定义 OCR 路径 pub fn custom_ocr(mut self, path: String, charset: Vec) -> Self { // 直接重写枚举,替换掉之前的 Ocr 或 Det - self.mode = ModeType::CustomOcr { path, charset }; + self.mode = ModelSpec::CustomOcrModel { path, charset }; self } /// 核心初始化逻辑 pub fn build(self) -> Result { - let session: Box = match self.mode { - ModeType::Ocr { path, charset } => Box::new(Ocr::new(path, charset)?), - ModeType::Det { path } => Box::new(Det::new(path)?), - ModeType::CustomOcr { path, charset } => Box::new(Ocr::new(path, charset)?), + let runtime = match self.mode { + ModelSpec::OcrModel => Runtime::Ocr(Ocr::new(ModelSpec::DEFAULT_OCR_PATH.into(), get_default_charset())?), + ModelSpec::DetModel => Runtime::Det(Det::new(ModelSpec::DEFAULT_DET_PATH.into())?), + ModelSpec::CustomOcrModel { path, charset } => Runtime::Ocr(Ocr::new(path, charset)?), }; - Ok(DdddOcr { session }) + Ok(DdddOcr { runtime }) } } pub struct DdddOcr { - session: Box, + runtime: Runtime, } + +impl Display for DdddOcr { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "DdddOcr(session: {})", self.runtime.desc()) + } +} + impl DdddOcr { pub fn classification(&self, img: &DynamicImage) -> Result { - self.session.predict(img, false) - - // let tensor = self.preprocess_image(img, false)?; - // - // // let result = self.session.run(tvec!(tensor.into()))?; - // // 3. 解析结果 - // // let output = result[0].to_array_view::()?; - // let output = self.inference(tensor)?; - // let output2 = self.process_text_output(&output)?; - // Ok(Self::ctc_decode_indices(&output2)) + match &self.runtime { + Runtime::Ocr(s) => s.predict(img, false), + Runtime::Det(_) => Err(anyhow::anyhow!("当前模型是检测模型,无法执行 OCR")), + } + } + pub fn detection(&self, img: &[u8]) -> Result>> { + match &self.runtime { + Runtime::Det(s) => s.predict(img), + Runtime::Ocr(_) => Err(anyhow::anyhow!("当前模型是 OCR 模型,无法执行检测")), + } } } diff --git a/src/model_loader.rs b/src/model_loader.rs index f8f5c64..e912c9d 100644 --- a/src/model_loader.rs +++ b/src/model_loader.rs @@ -17,8 +17,8 @@ pub enum ModelType { } // 定义统一的 trait pub trait ModelSession { - fn predict(&self, image: &DynamicImage, png_fix: bool) -> Result; fn get_model_type(&self) -> ModelType; + fn desc(&self) -> String; } pub struct ModelLoader { diff --git a/src/ocr_model.rs b/src/ocr_model.rs index 38a8ac8..9f993dc 100644 --- a/src/ocr_model.rs +++ b/src/ocr_model.rs @@ -1,3 +1,4 @@ +use crate::base::ModelArgs; use crate::image_io::png_rgba_white_preprocess; use crate::image_processor::{convert_to_grayscale, resize_image}; use crate::model_loader::{ModelLoader, ModelSession, ModelType}; @@ -7,8 +8,6 @@ use tract_onnx::prelude::tract_ndarray::s; use tract_onnx::prelude::{ DatumType, Graph, IntoTensor, RunnableModel, Tensor, TypedFact, TypedOp, tract_ndarray, tvec, }; -use crate::base::ModelArgs; - // 颜色过滤的自定义范围:(低值RGB, 高值RGB) pub type ColorRange = ((u8, u8, u8), (u8, u8, u8)); @@ -16,17 +15,17 @@ pub type ColorRange = ((u8, u8, u8), (u8, u8, u8)); // 字符集范围类型 #[derive(Debug, Clone)] pub enum CharsetRange { - All, // 所有字符 - Digit, // 数字 - Letter, // 字母 - Alphanumeric, // 字母数字 - Single(String), // 单字符串 - Multiple(Vec), // 多个字符串 - Range(char, char), // 字符范围 - Custom(Vec), // 自定义字符列表 + All, // 所有字符 + Digit, // 数字 + Letter, // 字母 + Alphanumeric, // 字母数字 + Single(String), // 单字符串 + Multiple(Vec), // 多个字符串 + Range(char, char), // 字符范围 + Custom(Vec), // 自定义字符列表 } #[derive(Debug, Clone)] -pub struct PredictArgs{ +pub struct PredictArgs { /// 是否修复PNG格式问题 pub png_fix: bool, /// 是否返回概率信息 @@ -100,7 +99,19 @@ pub struct Ocr { charset: Vec, } impl ModelSession for Ocr { - fn predict(&self, image: &DynamicImage, png_fix: bool) -> Result { + fn get_model_type(&self) -> ModelType { + todo!() + } + fn desc(&self) -> String { + "Ocr Model 加载成功".to_string() + } +} +impl Ocr { + pub fn new(model_path: String, charset: Vec) -> Result { + let session = ModelLoader::load_model(&model_path)?.session; + Ok(Self { session, charset }) + } + pub fn predict(&self, image: &DynamicImage, png_fix: bool) -> Result { let tensor = self.preprocess_image(image, png_fix)?; // // let result = self.session.run(tvec!(tensor.into()))?; @@ -108,19 +119,9 @@ impl ModelSession for Ocr { // // let output = result[0].to_array_view::()?; let output = self.inference(tensor)?; let output2 = self.process_text_output(&output)?; - Ok(Self::ctc_decode_indices(&output2)) + Ok(self.ctc_decode_indices(&output2)) // Ok("ocr result".to_string()) } - - fn get_model_type(&self) -> ModelType { - ModelType::Ocr - } -} -impl Ocr { - pub fn new(model_path: String, charset: Vec) -> Result { - let session = ModelLoader::load_model(&model_path)?.session; - Ok(Self { session, charset }) - } /// 对应 Python 的 _preprocess_image /// 负责:透明背景修复 -> 灰度化 -> 按比例 Resize -> 归一化 -> 4维张量转换 fn preprocess_image(&self, img: &DynamicImage, png_fix: bool) -> anyhow::Result { @@ -222,10 +223,9 @@ impl Ocr { )), } } - fn ctc_decode_indices(predicted_indices: &[i64]) -> String { + fn ctc_decode_indices(&self, predicted_indices: &[i64]) -> String { println!("indices模型输出原始数据: {:?}", predicted_indices); - use crate::charset::CHARSET_BETA; // 对应 _ctc_decode_indices 的逻辑:去重、去 blank (0) let mut res = String::new(); let mut prev_idx: i64 = -1; @@ -235,8 +235,11 @@ impl Ocr { // 2. 跳过 blank 字符 (假设索引 0 是 blank) if idx != prev_idx && idx != 0 { if let Ok(u_idx) = usize::try_from(idx) { - if let Some(&char_str) = CHARSET_BETA.get(u_idx) { + if let Some(char_str) = self.charset.get(u_idx) { res.push_str(char_str); + } else { + // 保护逻辑:如果模型预测的索引超出了字符集范围 + eprintln!("警告: 预测索引 {} 超出字符集范围", u_idx); } } } diff --git a/tests/ocr_test.rs b/tests/ocr_test.rs index 776827d..4cfccfc 100644 --- a/tests/ocr_test.rs +++ b/tests/ocr_test.rs @@ -1,5 +1,44 @@ +use std::fs; +use image::Rgb; use ddddocr_rs::{DdddOcr, DdddOcrBuilder}; // 假设你的包名是这个 +/// 将检测结果绘制在图像上并保存 +fn save_debug_image( image_bytes: &[u8], bboxes: &Vec>, output_path: &str) -> anyhow::Result<()> { + + + let dynamic_img = image::load_from_memory(image_bytes)?; + let mut img = dynamic_img.to_rgb8(); + let (width, height) = img.dimensions(); + let red = Rgb([255u8, 0, 0]); + + for bbox in bboxes { + // 基础边界检查 + let x1 = bbox[0].max(0).min(width as i32 - 1) as u32; + let y1 = bbox[1].max(0).min(height as i32 - 1) as u32; + let x2 = bbox[2].max(0).min(width as i32 - 1) as u32; + let y2 = bbox[3].max(0).min(height as i32 - 1) as u32; + + // 绘制横向线条 + for x in x1..=x2 { + img.put_pixel(x, y1, red); + img.put_pixel(x, y2, red); + // 如果要加粗,多画一行 + if y1 + 1 < height { img.put_pixel(x, y1 + 1, red); } + if y2.saturating_sub(1) > 0 { img.put_pixel(x, y2 - 1, red); } + } + // 绘制纵向线条 + for y in y1..=y2 { + img.put_pixel(x1, y, red); + img.put_pixel(x2, y, red); + // 如果要加粗,多画一列 + if x1 + 1 < width { img.put_pixel(x1 + 1, y, red); } + if x2.saturating_sub(1) > 0 { img.put_pixel(x2 - 1, y, red); } + } + } + + img.save(output_path)?; + Ok(()) +} #[test] fn test_full_classification() { // 1. 初始化模型 @@ -13,4 +52,25 @@ fn test_full_classification() { println!("识别结果: {}", result); assert!(!result.is_empty()); +} +#[test] +fn test_det_load()->anyhow::Result<()>{ + let det = DdddOcrBuilder::new().det().build()?; + let image_path = "samples/det1.png"; + let image_bytes = fs::read(image_path) + .map_err(|e| anyhow::anyhow!("无法读取图片 {}: {}", image_path, e))?; + + println!("图片读取成功,字节大小: {}", image_bytes.len()); + let bboxes =det.detection(&image_bytes)?; + println!(":?{}",det); + println!("检测到的目标数量: {}", bboxes.len()); + if bboxes.is_empty() { + println!("未检测到任何目标。"); + } else { + save_debug_image(&image_bytes, &bboxes, "samples/result.jpg")?; + for (i, bbox) in bboxes.iter().enumerate() { + println!("目标 [{}]: x1={}, y1={}, x2={}, y2={}", i, bbox[0], bbox[1], bbox[2], bbox[3]); + } + } + Ok(()) } \ No newline at end of file