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

二、實現(xiàn)
相較于Vitis AI Runtime,Vitis AI Library 有很多已經(jīng)封裝好的神經(jīng)網(wǎng)絡接口,直接拿來用即可。
OCR識別基于Vitis AI Library 的ocr_pt模型,OCR識別的代碼如下:
#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),具體文字實現(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的功能。
三、編譯&運行
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í)行文件。待測試的圖片如下:
執(zhí)行OCR識別后的結果如下:

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

評論