OCR (Optical Character Recognition,光學(xué)字符識(shí)別)是指電子設(shè)備(例如掃描儀或數(shù)碼相機(jī))檢查紙上打印的字符,通過(guò)檢測(cè)暗、亮的模式確定其形狀,然后用字符識(shí)別方法將形狀翻譯成計(jì)算機(jī)文字的過(guò)程;即,針對(duì)印刷體字符,采用光學(xué)的方式將紙質(zhì)文檔中的文字轉(zhuǎn)換成為黑白點(diǎn)陣的圖像文件,并通過(guò)識(shí)別軟件將圖像中的文字轉(zhuǎn)換成文本格式,供文字處理軟件進(jìn)一步編輯加工的技術(shù)。如何除錯(cuò)或利用輔助信息提高識(shí)別正確率,是OCR最重要的課題,ICR(Intelligent Character Recognition)的名詞也因此而產(chǎn)生。衡量一個(gè)OCR系統(tǒng)性能好壞的主要指標(biāo)有:拒識(shí)率、誤識(shí)率、識(shí)別速度、用戶界面的友好性,產(chǎn)品的穩(wěn)定性,易用性及可行性等。
一、Vitis AI Library
Vitis AI Library是一組高層次庫(kù)和 API,專為利用 DPU 高效執(zhí)行 AI 推斷而構(gòu)建。它是基于 Vitis AI運(yùn)行時(shí)利用 Vitis運(yùn)行時(shí)統(tǒng)一 API 來(lái)構(gòu)建的,能夠?yàn)?XRT 提供完整支持。
Vitis AI Library 通過(guò)封裝諸多高效且高質(zhì)量的神經(jīng)網(wǎng)絡(luò),提供易用且統(tǒng)一的接口。由此可簡(jiǎn)化深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的使用,對(duì)于不具備深度學(xué)習(xí)或 FPGA 知識(shí)的用戶也是如此。Vitis AI Library 使開發(fā)者能夠?qū)W⒂陂_發(fā)自己的應(yīng)用,而不是底層硬件。

二、實(shí)現(xiàn)
相較于Vitis AI Runtime,Vitis AI Library 有很多已經(jīng)封裝好的神經(jīng)網(wǎng)絡(luò)接口,直接拿來(lái)用即可。
OCR識(shí)別基于Vitis AI Library 的ocr_pt模型,OCR識(shí)別的代碼如下:
#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);
}
主要使用Vitis AI Library 的OCR功能(lvitis_ai_library-ocr),具體文字實(shí)現(xiàn)的代碼:
#include
#include
#include
#include
#include
#include
#include "vitis/ai/ocr.hpp"
using namespace cv;
using namespace std;
Scalar colors[] = { Scalar(255, 0, 0), Scalar(0, 255, 0), Scalar(255, 255, 0), Scalar(0, 0, 255) };
static cv::Mat process_result( cv::Mat &img,
const vitis::ai::OCRResult &result, bool is_jpeg) {
for(unsigned int i=0; i
代碼中可以看出,直接使用了openCV的功能。
三、編譯&運(yùn)行
build.sh文件內(nèi)容如下:
result=0 && pkg-config --list-all | grep opencv4 && result=1
if [ $result -eq 1 ]; then
OPENCV_FLAGS=$(pkg-config --cflags --libs-only-L opencv4)
else
OPENCV_FLAGS=$(pkg-config --cflags --libs-only-L opencv)
fi
CXX=${CXX:-g++}
for file in $(ls *.cpp); do
filename=${file%.*}
$CXX -std=c++17 -O2 -I. -o ${filename} ${file} -lvitis_ai_library-ocr -lvitis_ai_library-dpu_task -lvitis_ai_library-xnnpp -lvitis_ai_library-model_config -lvitis_ai_library-math -lvart-util -lxir -pthread -ljson-c -lglog ${OPENCV_FLAGS} -lopencv_core -lopencv_videoio -lopencv_imgproc -lopencv_imgcodecs -lopencv_highgui
done
執(zhí)行sh build.sh
生成可執(zhí)行文件。待測(cè)試的圖片如下:
執(zhí)行OCR識(shí)別后的結(jié)果如下:

總體情況識(shí)別速度很快,內(nèi)容識(shí)別無(wú)誤,不知道啥情況中間的“OF”不見了。
可以看出,Vitis AI Library 使開發(fā)者能夠?qū)W⒂陂_發(fā)自己的應(yīng)用,而不是底層硬件,快速部署AI相關(guān)應(yīng)用。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4809瀏覽量
102826 -
AI
+關(guān)注
關(guān)注
87文章
34294瀏覽量
275476 -
OCR
+關(guān)注
關(guān)注
0文章
157瀏覽量
16712 -
Vitis
+關(guān)注
關(guān)注
0文章
147瀏覽量
7836
發(fā)布評(píng)論請(qǐng)先 登錄
AI開發(fā)平臺(tái)Vitis AI 2.5讓AI加速體驗(yàn)更上一層樓 Vitis AI新功能概述
Vitis AI Model Zone軟件平臺(tái)具備哪些功能?
【KV260視覺入門套件試用體驗(yàn)】部署vitis-ai環(huán)境以及測(cè)試demo
【KV260視覺入門套件試用體驗(yàn)】Vitis AI 初次體驗(yàn)
【KV260視覺入門套件試用體驗(yàn)】五、VITis AI (人臉檢測(cè)和人體檢測(cè))
【KV260視覺入門套件試用體驗(yàn)】六、VITis AI車牌檢測(cè)&車牌識(shí)別
【KV260視覺入門套件試用體驗(yàn)】七、VITis AI字符和文本檢測(cè)(OCR&Textmountain)
【KV260視覺入門套件試用體驗(yàn)】基于Vitis AI的ADAS目標(biāo)識(shí)別
【KV260視覺入門套件試用體驗(yàn)】Vitis-AI加速的YOLOX視頻目標(biāo)檢測(cè)示例體驗(yàn)和原理解析
【KV260視覺入門套件試用體驗(yàn)】Vitis AI 構(gòu)建開發(fā)環(huán)境,并使用inspector檢查模型
【KV260視覺入門套件試用體驗(yàn)】Vitis AI Library體驗(yàn)之OCR識(shí)別
使用數(shù)字識(shí)別和AI實(shí)現(xiàn)OCR的資料合集

OCR識(shí)別技術(shù)
如何使用Vitis AI Library來(lái)安裝、使用和開發(fā)應(yīng)用
使用Vitis-AI進(jìn)行車牌識(shí)別

評(píng)論