OCR (Optical Character Recognition,光學字符識別)是指電子設備(例如掃描儀或數(shù)碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程;即,針對印刷體字符,采用光學的方式將紙質(zhì)文檔中的文字轉(zhuǎn)換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉(zhuǎn)換成文本格式,供文字處理軟件進一步編輯加工的技術(shù)。如何除錯或利用輔助信息提高識別正確率,是OCR最重要的課題,ICR(Intelligent Character Recognition)的名詞也因此而產(chǎn)生。衡量一個OCR系統(tǒng)性能好壞的主要指標有:拒識率、誤識率、識別速度、用戶界面的友好性,產(chǎn)品的穩(wěn)定性,易用性及可行性等。
一、Vitis AI Library
Vitis AI Library是一組高層次庫和 API,專為利用 DPU 高效執(zhí)行 AI 推斷而構(gòu)建。它是基于 Vitis AI運行時利用 Vitis運行時統(tǒng)一 API 來構(gòu)建的,能夠為 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識別后的結(jié)果如下:
總體情況識別速度很快,內(nèi)容識別無誤,不知道啥情況中間的“OF”不見了。
可以看出,Vitis AI Library 使開發(fā)者能夠?qū)W⒂陂_發(fā)自己的應用,而不是底層硬件,快速部署AI相關(guān)應用。
-
神經(jīng)網(wǎng)絡
+關(guān)注
關(guān)注
42文章
4724瀏覽量
100311 -
AI
+關(guān)注
關(guān)注
87文章
29368瀏覽量
267647 -
OCR
+關(guān)注
關(guān)注
0文章
142瀏覽量
16293 -
Vitis
+關(guān)注
關(guān)注
0文章
145瀏覽量
7359
發(fā)布評論請先 登錄
相關(guān)推薦
評論