chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

瑞芯微(EASY EAI)RV1126B OCR文字識別

廣州靈眸科技有限公司 ? 2026-01-12 10:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. OCR文字識別簡介

文字識別也是圖像領(lǐng)域一個常見問題。然而,對于自然場景圖像,首先要定位圖像中的文字位置,然后才能進行文字的識別。所以一般包含兩個步驟:

文字檢測:解決的問題是哪里有文字,文字的范圍有多少。

文字識別:對定位好的文字區(qū)域進行識別,主要解決的問題是每個文字是什么,將圖像中的文字區(qū)域進轉(zhuǎn)化為字符信息。

我們的OCR算法是基于CTPN+CRNN設(shè)計的。CTPN是一種文字檢測算法,能有效的檢測出復(fù)雜場景的橫向分布的文字,是目前比較好的文字檢測算法。CRNN算法主要用于端到端地對不定長的文本序列進行識別,不用先對單個文字進行切割,而是將文本識別轉(zhuǎn)化為時序依賴的序列學習問題,就是基于圖像的序列識別。

基于EASY-EAI-Nano-TB硬件主板的運行效率:

v2-182ff4d2a9cc1ee1c705c1799929ad1c_720w.webp

2. 快速上手

2.1 開發(fā)環(huán)境準備

如果您初次閱讀此文檔,請閱讀《入門指南/開發(fā)環(huán)境準備/Easy-Eai編譯環(huán)境準備與更新》,并按照其相關(guān)的操作,進行編譯環(huán)境的部署。

在PC端Ubuntu系統(tǒng)中執(zhí)行run腳本,進入EASY-EAI編譯環(huán)境,具體如下所示。

cd ~/develop_environment
./run.sh
v2-e1127efd76bcca3331922be6d17e546f_720w.webp

2.2 源碼下載

在EASY-EAI編譯環(huán)境下創(chuàng)建存放源碼倉庫的管理目錄:

cd /opt
mkdir EASY-EAI-Toolkit
cd EASY-EAI-Toolkit

通過git工具,在管理目錄內(nèi)克隆遠程倉庫

git clone https://github.com/EASY-EAI/EASY-EAI-Toolkit-1126B.git
v2-67d8e73ccfe13280db05364195d1679f_720w.webp

注:

* 此處可能會因網(wǎng)絡(luò)原因造成卡頓,請耐心等待。

* 如果實在要在gitHub網(wǎng)頁上下載,也要把整個倉庫下載下來,不能單獨下載本實例對應(yīng)的目錄。

2.3 模型部署

要完成算法Demo的執(zhí)行,需要先下載OCR算法模型。

百度網(wǎng)盤鏈接為:https://pan.baidu.com/s/1imI86u1O9xH6T6V_0k2jxw?pwd=1234 (提取碼:1234 )。

v2-46f0cb43eaae629b1314d0d17447c5ff_720w.webp

同時需要把下載的OCR算法模型復(fù)制粘貼到Release/目錄:

v2-7fb3d89d157d2a94eb9a09a9f366bc87_720w.webp

2.4 例程編譯

進入到對應(yīng)的例程目錄執(zhí)行編譯操作,具體命令如下所示:

cd EASY-EAI-Toolkit-1126B/Demos/algorithm-ocr/
./build.sh cpres

注:

* 由于依賴庫部署在板卡上,因此交叉編譯過程中必須保持/mnt掛載。

* 若build.sh腳本帶有cpres參數(shù),則會把Release/目錄下的所有資源都拷貝到開發(fā)板上。

v2-df6923692a41324b6d0723163516e212_720w.webp

2.5 例程運行及效果

通過串口調(diào)試或ssh調(diào)試,進入板卡后臺,定位到例程部署的位置,如下所示:

cd /userdata/Demo/algorithm-ocr/
v2-9adf0d9785c79c39af55904739970245_720w.webp

運行例程命令如下所示:

sudo ./test-ocr test.jpg
v2-f3ec53bc5a0dcbffed899b587101e6bf_720w.webp

在EASY-EAI編譯環(huán)境可以取回測試圖片:

cp /mnt/userdata/Demo/algorithm-ocr/result.jpg .
v2-32a53dd3f520c8c09d4437f28b808afe_720w.webp

結(jié)果圖片如下所示:

v2-9c533337a91fb36629d25264daca6bc8_720w.webp

API的詳細說明,以及API的調(diào)用(本例程源碼),詳細信息見下方說明。

3. OCR文字識別API說明

3.1 引用方式

為方便客戶在本地工程中直接調(diào)用我們的EASY EAI api庫,此處列出工程中需要鏈接的庫以及頭文件等,方便用戶直接添加。

v2-1bd7d06cf825a9a95eb5b4f14c1eef95_720w.webp

3.2 OCR檢測初始化函數(shù)

設(shè)置OCR檢測初始化函數(shù)原型如下所示。

int ocr_det_init(const char* model_path, rknn_app_context_t* app_ctx);

具體介紹如下所示。

v2-c3158b2c8f0958ba7f9add2370c26e33_720w.webp

3.3 OCR檢測運行函數(shù)

設(shè)置OCR檢測運行原型如下所示。

int ocr_det_run(rknn_app_context_t* app_ctx, cv::Mat input_image, ocr_det_postprocess_params* params, ocr_det_result* out_result);

具體介紹如下所示。

v2-bf4d465efb5915679af930e56afcbcea_720w.webp

3.4 OCR檢測釋放函數(shù)

設(shè)置OCR檢測釋放原型如下所示。

int ocr_det_release(rknn_app_context_t* app_ctx);

具體介紹如下所示。

v2-45a3c60f49dc43f42f55558b95145223_720w.webp

3.5 OCR識別初始化函數(shù)

OCR識別初始化函數(shù)原型如下所示。

int ocr_rec_init(const char* model_path, rknn_app_context_t* app_ctx);

具體介紹如下所示。

v2-6c480d211692a2dc01f54d3703abf6d9_720w.webp

3.6 OCR識別運行函數(shù)

OCR識別運行函數(shù)原型如下所示。

int ocr_rec_run(rknn_app_context_t* app_ctx, cv::Mat input_image, ocr_rec_result* out_result);

具體介紹如下所示。

v2-23d426dd9e0bfc9691061c75d04cb4f2_720w.webp

3.7 OCR識別釋放函數(shù)

OCR識別釋放函數(shù)原型如下所示。

int ocr_rec_release(rknn_app_context_t* app_ctx);

具體介紹如下所示。

v2-8ee67b1293b2862f66dd73b16e27bf14_720w.webp

4. OCR檢測算法例程

例程目錄為Demos/algorithm-ocr/test-ocr.cpp,操作流程如下。

v2-eaef5e3a1d097054406ba65aa3761af8_720w.webp
#include 
#include 
#include 
#include"ocr.h"

using namespace cv;
using namespace std;

#define INDENT "    "
#define THRESHOLD 0.3 // pixel score threshold
#define BOX_THRESHOLD 0.9 // box score threshold
#define USE_DILATION false // whether to do dilation, true or false
#define DB_UNCLIP_RATIO 1.5 // unclip ratio for poly type

int main(int argc, char **argv)
{
	if (argc != 2) {
		printf("%s \n", argv[0]);
		return -1;
	}
	/* 參數(shù)初始化 */
	const char *img_path = argv[1];
	Mat input_image, rgb_img;
	input_image = imread(img_path);
	if (input_image.empty()) {
		cout << "Error: Could not load image" << endl;
		return -1;
	}

	cv::cvtColor(input_image, rgb_img, COLOR_BGR2RGB);

	rknn_app_context_t ocr_det_ctx, ocr_rec_ctx;
	memset(&ocr_det_ctx, 0, sizeof(rknn_app_context_t));
	memset(&ocr_rec_ctx, 0, sizeof(rknn_app_context_t));

	/* OCR算法檢測模型&識別模型初始化 */
	ocr_det_init("ocr-det.model", &ocr_det_ctx);
	ocr_rec_init("ocr-rec.model", &ocr_rec_ctx);  

	struct timeval start;
    struct timeval end;
    float time_use=0;

	/* OCR算法檢測模型運行 */
	ocr_det_result results;
    ocr_det_postprocess_params params;
    params.threshold = THRESHOLD;
    params.box_threshold = BOX_THRESHOLD;
    params.use_dilate = USE_DILATION;
    params.db_score_mode = (char*)"slow";
    params.db_box_type = (char*)"poly";
    params.db_unclip_ratio = DB_UNCLIP_RATIO;

	gettimeofday(&start,NULL); 
	int ret;
    ret = ocr_det_run(&ocr_det_ctx, rgb_img, ¶ms, &results);
    if (ret != 0) {
        printf("inference_ppocr_rec_model fail! ret=%d\n", ret);
    }

    gettimeofday(&end,NULL);
    time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒
    printf("time_use is %f\n",time_use/1000);

	/* 截取文字信息和畫框 */
    printf("DRAWING OBJECT\n");
    for (int i = 0; i < results.count; i++)
    {
        printf("[%d]: [(%d, %d), (%d, %d), (%d, %d), (%d, %d)] %f\n", i,
            results.box[i].left_top.x, results.box[i].left_top.y, results.box[i].right_top.x, results.box[i].right_top.y, 
            results.box[i].right_bottom.x, results.box[i].right_bottom.y, results.box[i].left_bottom.x, results.box[i].left_bottom.y,
            results.box[i].score);

        line(input_image, Point(results.box[i].left_top.x, results.box[i].left_top.y), Point(results.box[i].right_top.x, results.box[i].right_top.y),
             Scalar(0, 255, 0), 1, LINE_AA);
        line(input_image, Point(results.box[i].right_top.x, results.box[i].right_top.y), Point(results.box[i].right_bottom.x, results.box[i].right_bottom.y), 
             Scalar(0, 255, 0), 1, LINE_AA);
        line(input_image, Point(results.box[i].right_bottom.x, results.box[i].right_bottom.y), Point(results.box[i].left_bottom.x, results.box[i].left_bottom.y), 
             Scalar(0, 255, 0), 1, LINE_AA);
        line(input_image, Point(results.box[i].left_bottom.x, results.box[i].left_bottom.y), Point(results.box[i].left_top.x, results.box[i].left_top.y), 
             Scalar(0, 255, 0), 1, LINE_AA);

		cv::Mat rgb_crop_image = GetRotateCropImage(rgb_img, results.box[i]);

		/* OCR算法識別模型運行 */
		ocr_rec_result rec_results;
		ocr_rec_run(&ocr_rec_ctx, rgb_crop_image, &rec_results);

		// print text result
    		printf("regconize result: %s, score=%f\n", rec_results.str, rec_results.score);
    }
    cv::imwrite("result.jpg", input_image);
	return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11681

    瀏覽量

    218573
  • 瑞芯微
    +關(guān)注

    關(guān)注

    27

    文章

    738

    瀏覽量

    53905
  • EASY-EAI靈眸科技
    +關(guān)注

    關(guān)注

    4

    文章

    63

    瀏覽量

    3467
  • RV1126B
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    93
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    (EASY EAI)RV1126B 音頻輸入

    1.聲卡資源介紹EASY-EAI-Nano-TB僅有一塊由RV1126B主控輸出的聲卡。通過串口調(diào)試或ssh調(diào)試,可以進入開發(fā)板終端。執(zhí)行aplay命令查看聲卡相關(guān)的詳細信息,如下所示
    的頭像 發(fā)表于 12-18 13:41 ?1911次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音頻輸入

    (EASY EAI)RV1126B PWM使用

    1.PWM簡介1.1開發(fā)板PWM資源1.2查找PWM節(jié)點rv1126b的pwm資源表如下:【PWM1CH0】對應(yīng)的是pwm1_4ch_0,寄存地址為20700000?!綪WM1CH1】對應(yīng)
    的頭像 發(fā)表于 01-06 10:49 ?4742次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> PWM使用

    如何用RV1126B核心板贏得AI紅利?

    在邊緣AI從概念邁向規(guī)?;涞氐漠斚?,RV1126B處理器以精準契合場景剛需的技術(shù)優(yōu)勢,為端側(cè)智能提供了強大算力支撐。而飛凌嵌入式FET112
    的頭像 發(fā)表于 01-09 09:41 ?5767次閱讀
    如何用<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>核心板贏得AI紅利?

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+初識篇

    Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的開發(fā)板,它基于RV1126B處理器,集成了4個Cortex-A53及獨立的NEON協(xié)處理器,它支持4K@30fps的H.
    發(fā)表于 10-25 22:06

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-燈閃

    接上文【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】開箱測評 https://pan.baidu.com/s/15pnbJXPN5TrfV2KfsKaZyQ?pwd=1234 打開
    發(fā)表于 11-01 21:26

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目

    接上文【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】通過wifi連接,使用ssh登錄EASY EAI Nano-TB(
    發(fā)表于 11-02 18:34

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈按鈕項目

    0接上文【EASY EAI Nano-TB(RV1126B)開發(fā)板試用】命令行功能測試-shell腳本進行IO控制-紅綠燈項目-實現(xiàn)開機起動 EASYEAINano-TB(RV1126B
    發(fā)表于 11-03 10:00

    請問各位大佬,如何解決, RV1126B 使用 mpp 自帶工具 調(diào)試時,內(nèi)核直接報錯崩潰!

    請問各位大佬,如何解決, RV1126B 使用 mpp 自帶工具 調(diào)試時,內(nèi)核直接報錯崩潰! 調(diào)試輸出如下:
    發(fā)表于 11-19 16:01

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】+1、開箱上電

    ,避免因接觸不良導(dǎo)致顯示或采集異常。 2 硬件解析:強勁AI核心與豐富接口 2.1 核心處理器性能 EASY EAI Nano-TB開發(fā)板的核心基于
    發(fā)表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)開發(fā)板試用】介紹、系統(tǒng)安裝

    ,并介紹了系統(tǒng)鏡像安裝部署的相關(guān)流程。 介紹 EASY-EAI-Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的AIOT主板。 核心板基于
    發(fā)表于 12-23 18:05

    RV1126系列選型指南:從RV1126RV1126B,一文看懂升級差異

    2025年7月,正式發(fā)布新一代AI視覺芯片RV1126B。作為其金牌方案商,EASYEAI靈眸科技同步推出搭載該芯片的AIoT核心板EAI11
    的頭像 發(fā)表于 09-04 10:50 ?4097次閱讀
    <b class='flag-5'>RV1126</b>系列選型指南:從<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126B</b>,一文看懂升級差異

    【免費試用】EASY EAI Nano-TB(RV1126B)開發(fā)套件評測

    EASY-EAI-Nano-TB是靈眸科技研發(fā)的一款應(yīng)用于AIoT領(lǐng)域的AIOT主板。核心板基于RV1126B處理器設(shè)計,并引入了新
    的頭像 發(fā)表于 09-23 08:09 ?938次閱讀
    【免費試用】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Nano-TB(<b class='flag-5'>RV1126B</b>)開發(fā)套件評測

    RV1126B特性概述

    RV1126BRockchip在2025年第二季度全新推出的Arm架構(gòu)AI視覺芯片,搭載4核Cortex-A53與自研3Tops算力NPU。全面替代上一代的
    的頭像 發(fā)表于 10-09 11:22 ?1502次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>特性概述

    RV1126B開發(fā)套件評測大賽正式開賽!(文末附報名二維碼)

    RV1126B開發(fā)套件評測大賽正式開賽!(文末附報名二維碼)
    的頭像 發(fā)表于 10-27 14:27 ?383次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>開發(fā)套件評測大賽正式開賽?。ㄎ哪└綀竺S碼)

    替代升級實錘!實測RV1126B,CPU性能吊打RV1126

    AI智能芯片迭代提速,推出了全新的Arm架構(gòu)AI視覺芯片RV1126B,是否替換RV1126,CPU性能是擠牙膏還是大突破。帶著這些核
    的頭像 發(fā)表于 12-11 17:13 ?1958次閱讀
    替代升級實錘!實測<b class='flag-5'>RV1126B</b>,CPU性能吊打<b class='flag-5'>RV1126</b>