---
title: crnn
canonical_url: "https://www.modelscope.cn/models/AIBSECO/crnn"
md_url: "https://www.modelscope.cn/models/AIBSECO/crnn.md"
repository: AIBSECO/crnn
last_updated: 2025-09-10
downloads: 1
stars: 0
---

# crnn

> crnn - AIBSECO 在 ModelScope 开源的模型。| item | status | detail | | :-------------------------------------- | ------ | ------ | | 方案选择与硬件资源划分 | 1 | | | 模型导出 | 1 | | | 导出模型精度一致，提供python验证脚本 | 1 | | | cpu处理部分c++工程移植 | 0 | 效果不好，不实现crt | | c++工程精度一致，提供验证脚本 | 0 | | |…

- **Repository**: AIBSECO/crnn
- **Downloads**: 1
- **Stars**: 0
- **Last updated**: 2025-09-10

Source: https://www.modelscope.cn/models/AIBSECO/crnn

---

# 方案名
## 1. 摘要

### 1.1. 身份编号：fwb0025

### 1.2. 类型与序号：模型4


### 1.3. 进展：

| item                                    | status | detail |
| :-------------------------------------- | ------ | ------ |
| 方案选择与硬件资源划分                  | 1      |        |
| 模型导出                                | 1      |        |
| ~导出模型精度一致，提供python验证脚本   | 1      |        |
| cpu处理部分c++工程移植                  | 0    |  效果不好，不实现crt      |
| ~c++工程精度一致，提供验证脚本          |  0      |        |
| ~c++工程性能优化                        |  0      |        |
| icraft编译通过                          |  1      |  虽编译通过，但量化阶段推理有问题      |
| ~存在量化精度调优工作                   |  1      | 尝试各种量化策略，均效果不好😢 |
| ~完成基本pyrt/crt搭建与结果验证         |  1      |        |
| ~完成pyrt/crt精度测试与对齐             |  0      |        |
| 完成上板耗时测试                        |  0      |        |
| ~使用运行时提供的api进行基本性能优化    |  0      |        |
| ~存在整体方案各环节优化或优化方案的设计 |   0     |        |
| 提出bug数                               |   0     |        |


## 2. 方案简介

### 2.1  算法流程介绍

#### 2.1.1. 模型或算法背景：年份，来源，解决什么问题，在同类算法中的精度/耗时评价（可提取paper中的表格或散点图）

> - **年份** ：2015
> - **来源** ：Shi B, Bai X, Yao C, 2015. An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition[A/OL]. arXiv[2025-06-28]. http://arxiv.org/abs/1507.05717. DOI:10.48550/arXiv.1507.05717.
> - **问题背景** ：
> 在序列建模与识别任务中，传统方法往往依赖于手工设计特征与分阶段处理流程，难以适应复杂多变的输入数据，尤其在图像到序列（image-to-sequence）问题中表现出明显局限。近年来，深度学习在图像识别和自然语言处理等领域取得显著进展，特别是卷积神经网络（CNN）在特征提取方面表现优异，而循环神经网络（RNN）则擅长建模时序依赖性。
> 为了充分利用两者优势，Convolutional Recurrent Neural Network（`CRNN`）应运而生。CRNN 结合了 CNN 的空间特征提取能力与 RNN 的序列建模能力，能够直接从图像中提取时序特征，并进行端到端的序列预测。这一架构尤其适用于不规则长度的序列任务，如场景文本识别、语音识别、音乐转录等。
> 具体而言，CRNN 先通过卷积层提取二维图像中的局部视觉特征，再通过循环结构（如双向 LSTM）捕捉时序上下文信息，最后通过转录层（如 CTC）实现对序列的有效解码。相比传统分阶段方法，CRNN 不仅提高了识别准确率，还简化了训练流程，具有更强的泛化能力。

#### 2.1.2. 算法流程梳理（必须使用流程框图）
<div align="center">
<img src="assets/算法流程图.jpg" alt="算法流程图" width="1000">
<p><em>图1：算法流程图</em></p>
</div>

#### 2.1.3. 模型结构上的创新与意义

> CRNN（Convolutional Recurrent Neural Network）模型的结构融合了卷积神经网络（CNN）、循环神经网络（RNN）与连接时序分类（CTC）损失，具备端到端识别图像中序列信息的能力。该模型首先通过CNN提取图像的空间特征，并将其沿水平方向展开为特征序列；随后，利用双向LSTM对序列建模，捕捉字符之间的上下文关系；最后，通过CTC解码输出字符序列，无需字符级别对齐标签。相比传统方法，CRNN避免了字符分割与复杂对齐流程，显著提升了图像到序列任务的准确性与效率。

<div align="center">
<img src="assets/网络结构图.jpg" alt="网络结构图" width="800">
<p><em>图2：网络结构图</em></p>
</div>

#### 2.1.4. 前后处理，或一些其他机制介绍（最好使用流程图）
> 前处理包括重采样与归一化；
> 后处理包括对每个字符位置取预测概率最高的字符以及去除相邻的重复字符。

### 2.2  硬件资源分配
<div align="center">
<img src="assets/资源划分图.jpg" alt="硬件资源分配" width="1000">
<p><em>图3：硬件资源分配图</em></p>
</div> 

## 3. 模型导出说明

### 3.1 NPU加速部分
> 全模型都使用NPU进行计算。

### 3.2. 导出过程修改点
> 无


### 3.3. 1_scripts中的脚本运行说明
> `0_infer.py`:  `python 0_infer.py`使用源码进行推理
> `1_save.py`:   `python 1_save.py`torchscript导出模型
> `2_save_infer.py`:   `python 2_save_infer.py`使用导出后模型进行推理

## 4. cpu处理部分c++工程移植说明
> - 模型在量化阶段后效果很差，不进行C++移植

## 5. ICRAFT编译
**编译通过**

- ### 使用运行时仿真得到的仿真效果
> 模型量化后效果极差，尝试各种量化调优策略均无果。`解析组件仿真失败`，表格中用优化组件仿真结果代替

  | 原图 | 框架动态图推理 | 导出静态模型推理 | 优化组件仿真 | 量化组件仿真 | 指令组件仿真 |
  |---|---|---|---|---|---|
  | ![原图](assets/origin.png)<!-- <img src="assets/origin.png" width="200"> --> | available | available | available | `avalable` | `avalable` |
> - 进行icraft show查看量化效果时（请在`2_compile\dll`路径下进行icraft show，并使用提供的dll），结果如下,这个模型不太适合量化😢😢：

<div align="center">
<img src="assets/icraftshow_problem.jpg" alt="量化效果问题" width="800">
<p><em>图4：量化效果问题展示</em></p>
</div>

## 6. 上板测试与优化
> 仿真结果差，不进行上板测试😢
