OCR (Optical Character Recognition,光學字符識別)是指電子設備(例如掃描儀或數碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程;即,針對印刷體字符,采用光學的方式將紙質文檔中的文字轉換成為黑白點陣的圖像文件,并通過識別軟件將圖像中的文字轉換成文本格式,供文字處理軟件進一步編輯加工的技術。如何除錯或利用輔助信息提高識別正確率,是OCR最重要的課題,ICR(Intelligent Character Recognition)的名詞也因此而產生。衡量一個OCR系統性能好壞的主要指標有:拒識率、誤識率、識別速度、用戶界面的友好性,產品的穩定性,易用性及可行性等。
一、Vitis AI Library
Vitis AI Library是一組高層次庫和 API,專為利用 DPU 高效執行 AI 推斷而構建。它是基于 Vitis AI運行時利用 Vitis運行時統一 API 來構建的,能夠為 XRT 提供完整支持。
Vitis AI Library 通過封裝諸多高效且高質量的神經網絡,提供易用且統一的接口。由此可簡化深度學習神經網絡的使用,對于不具備深度學習或 FPGA 知識的用戶也是如此。Vitis AI Library 使開發者能夠專注于開發自己的應用,而不是底層硬件。
二、實現
相較于Vitis AI Runtime,Vitis AI Library 有很多已經封裝好的神經網絡接口,直接拿來用即可。
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),具體文字實現的代碼:
#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文件內容如下:
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
執行sh build.sh
生成可執行文件。待測試的圖片如下:
執行OCR識別后的結果如下:
總體情況識別速度很快,內容識別無誤,不知道啥情況中間的“OF”不見了。
可以看出,Vitis AI Library 使開發者能夠專注于開發自己的應用,而不是底層硬件,快速部署AI相關應用。
-
神經網絡
+關注
關注
42文章
4717瀏覽量
99979 -
AI
+關注
關注
87文章
28818瀏覽量
266157 -
OCR
+關注
關注
0文章
141瀏覽量
16261 -
Vitis
+關注
關注
0文章
145瀏覽量
7310
發布評論請先 登錄
相關推薦
評論