1.2、SD卡系统烧录
balenaEtcher软件
二、字符和文本检测介绍
字符和文本检测是计算机视觉领域的重要问题,主要是识别和理解图像或视频中的文字信息。字符检测和识别(OCR)技术最早在1929年由德国科学家Tausheck提出,定义为将印刷体的字符从纸质文档中识别出来。随着OCR技术的日益发展,人们已不再仅仅满足于文档或书本上的文字,开始将目标转移到现实世界场景中的文字,这被称为场景文字识别(Scene Text Recogni
tion,STR)。现在的OCR泛指所有图像文字检测和识别技术,包括传统文档图像识别与场景文字识别技术。
在计算机视觉领域,文本检测是其重要的一个子任务。文本检测分为两个主要步骤:文本定位和文本识别。文本定位是确定文本在图像中的位置,而文本识别则是识别图像中的具体字符。
字符检测的难度等级 字符检测的难度等级大体上可以分为以下几个级别:
1. 简单:对于简单的字符检测任务,通常只需要使用基本的图像处理技术,如边缘检测或阈值处理等即可完成任务。
2. 中等:对于中等难度的字符检测任务,可能需要使用更复杂的图像处理技术,如形态学处理、降噪等。
3. 困难:对于困难的字符检测任务,由于字符可能会被严重扭曲、光照不均、阴影、背景噪声等影响,因此需要使用更高级的算法和技术来提高检测的准确性。
三、代码实现
3.1、字符检测源码
#include
#include
#include
#include
#include
#include
#include
#include
#include "./process_result.hpp"
int main(int argc, char* argv[]) {
std::string model = argv[1];
return vitis::ai::main_for_jpeg_demo(
argc, argv,
[model] {
return vitis::ai::OCR::create(model);
},
process_result, 2);
}
3.2、文本检测源码
#include
#include
#include
#include
#include
#include
#include
#include
#include "./process_result.hpp"
int main(int argc, char* argv[]) {
std::string model = argv[1];
return vitis::ai::main_for_jpeg_demo(
argc, argv,
[model] {
return vitis::ai::TextMountain::create(model);
},
process_result, 2);
}
四、实践效果
4.1、字符检测
使用命令运行代码程序。
cd ~/Vitis-AI/examples/vai_library/samples/ocr
./test_jpeg_ocr ocr_pt sample_ocr.jpg
OCR
该网络用于光学字符识别,包括文本检测和文本识别。该网络由 ResNet-FPN 特征提取器、检测分支和识别分支构成。
此模型由 ICDAR-2017 数据集进行训练。输入为包含某些字符的图像。输出为包含所识别的字词及其位置的结构。下
图显示了 OCR 的结果。
换一个带中文的图片试一下,结果只能识别英文,准确率很高。
4.2、文本检测
Textmountain 检测
该网络用于多语种文本检测。该网络由 ResNet-FPN 特征提取器和检测预测器构成。该模型由 ICDAR-2017 进行训
练。输入为包含某些文本的图像。输出为包含所识别的字词及其位置的结构。下图显示了 Textmountain 模型的结果。