日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

OpenVINO2021.4版本中場景文字檢測與識別模型的推理使用

英特爾物聯(lián)網(wǎng) ? 來源:英特爾物聯(lián)網(wǎng) ? 作者: 賈志剛 ? 2021-08-26 15:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

場景文字檢測與識別模型

OpenVINO2021.4支持場景文字檢測是基于MobileNetV2的PixelLink模型,模型有兩個分別是text-detection-0003與text-detection-0004。以text-detection-0003模型為例它有兩個輸出,分別是分割輸出與bounding Boxes輸出

下面是基于VGG16作為backbone實現(xiàn)的PixelLink的模型。

最終得到輸出text/notext的mask區(qū)域,對mask區(qū)域簡單處理之后就會得到每個場景文字區(qū)域的ROI。關于后處理,再后續(xù)的會有詳細代碼演示。OpenVINO2021.4不僅支持場景文字的檢測還支持場景文字的識別,支持場景文字識別的模型是基于VGG16+雙向LSTM,識別0~9與26個字符加空白,并且非大小寫敏感!

模型輸入與輸出格式

PixelLink場景文字檢測模型的輸入與輸出格式如下:

輸入格式:1x3x768x1280 BGR彩色圖像

輸出格式:

name: “model/link_logits_/add”, [1x16x192x320] – pixelLink的輸出

name: “model/segm_logits/add”, [1x2x192x320] – 像素分類text/no text

圖-3文本識別模型的輸入與輸出格式如下:

輸入格式:1x1x32x120

輸出格式:30, 1, 37

輸出解釋是基于CTC貪心解析方式。

其中37字符集長度,字符集為:

0123456789abcdefghijklmnopqrstuvwxyz#

#表示空白。

同步與異步推理

在OpenVINO的IE推理模塊相關SDK支持同步與異步推理模型,同步的意思是阻塞直到返回結(jié)果, 異步就是調(diào)用推理之后直接返回,接受到處理完成通知之后再解析輸出,相比同步方式,異步推理更加適合視頻流多路推理的方式。異步推理的執(zhí)行方式大致如下:

// start the async infer request (puts the request to the queue and immediately returns)

async_infer_request-》StartAsync();

// here you can continue execution on the host until results of the current request are really needed

//。。。

async_infer_request.Wait(IInferRequest::RESULT_READY);

auto output = async_infer_request.GetBlob(output_name);

場景文字檢測代碼演示

OpenVINO2021.4中場景文字檢測的,以text-detection-0003為例。加載模型文件與獲取推理請求等與之前的保持一致,無需再說,這里主要是PixelLink模型的輸出解析部分,它的解析部分代碼如下:

cv::Mat mask = cv::Size(out_w, out_h), CV_8U);

int step = out_h*out_w;

for (int row = 0; row 《 out_h; row++) {

for (int col = 0; col 《 out_w; col++) {

float p1 = detection_out[row*out_w + col];

float p2 = detection_out[step + row*out_w + col]; // text

if (p2》1.0) {

mask.at《uchar》(row, col) = 255;

}

}

}

cv::resize(mask, mask, cv::Size(im_w, im_h));

std::vector《std::vector《cv::Point》》 contours;

cv::findContours(mask, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);

對輸出的Mask數(shù)據(jù),完成text與非text的分類,得到二值圖象,然后對二值圖象完成輪廓發(fā)現(xiàn),根據(jù)輪廓發(fā)現(xiàn)的的結(jié)果輸出最大/最小外接矩形,得到每個Text區(qū)域的檢測結(jié)果,最終模型的運行結(jié)果如下:

場景文字識別代碼演示

場景文字識別是基于場景文字檢測模型輸出得到的TEXT區(qū)域作為輸入,基于灰度圖象預測輸出,使用text-recognition-0012模型。關于模型加載、輸入與輸出設置同樣不再贅述,檢測得到TEXT的ROI作為輸入,推理與預測文字及顯示的代碼如下:

auto reco_output = reco_request.GetBlob(reco_output_name);

const float* blob_out = static_cast《PrecisionTrait《Precision::FP32》::value_type*》(reco_output-》buffer());

const SizeVector reco_dims = reco_output-》getTensorDesc().getDims();

const int RW = reco_dims[0];

const int RB = reco_dims[1];

const int RL = reco_dims[2];

std::string ocr_txt = ctc_decode(blob_out, RW, RL);

std::cout 《《 ocr_txt 《《 std::endl;

cv::putText(src, ocr_txt, box.tl(), cv::FONT_HERSHEY_PLAIN, 1.0, cv::Scalar(255, 0, 0), 1);

其中RWxRBxRL=30x1x37,CTC解析的函數(shù)ctc_decode實現(xiàn)代碼如下:

std::string ctc_decode(const float* blob_out, int seq_w, int seq_l) {

printf(“seq width: %d, seq length: %d ”, seq_w, seq_l);

std::string res = “”;

bool prev_pad = false;

const int num_classes = alphabet.length();

int seq_len = seq_w*seq_l;

for (int i = 0; i 《 seq_w; i++) {

int argmax = 0;

int max_prob = blob_out[i*seq_l];

for (int j = 0; j 《num_classes; j++) {

if (blob_out[i*seq_l + j] 》 max_prob) {

max_prob = blob_out[i*seq_l + j];

argmax = j;

}

}

auto symbol = alphabet[argmax];

if (symbol == ‘#’) {

prev_pad = true;

}

else {

if (res.empty() || prev_pad || (!res.empty() && symbol != res.back())) {

prev_pad = false;

res += symbol;

}

}

}

return res;

}

解析過程就是對得到二維矩陣30x37,按行先做argmax,然后再去掉重復,最終得到預測生成的text文本返回。

總結(jié)

本文主要講述了OpenVINO2021.4版本中場景文字檢測與識別模型的推理使用,以及同步與異步推理的的基本概念。特別值得注意的是場景文字識別模型是基于灰度圖象不是RGB彩色圖象,如果搞錯這點就會得到錯誤的文本預測結(jié)果。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • RGB
    RGB
    +關注

    關注

    4

    文章

    836

    瀏覽量

    62250
  • 識別
    +關注

    關注

    3

    文章

    175

    瀏覽量

    32650
  • vgg
    vgg
    +關注

    關注

    1

    文章

    11

    瀏覽量

    5475
  • LSTM
    +關注

    關注

    0

    文章

    63

    瀏覽量

    4448

原文標題:OpenVINO? 場景文字識別與同步與異步推理

文章出處:【微信號:英特爾物聯(lián)網(wǎng),微信公眾號:英特爾物聯(lián)網(wǎng)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【瑞薩AI挑戰(zhàn)賽】手寫數(shù)字識別模型在RA8P1 Titan Board上的部署

    編譯生成的C代碼需集成到RT-Thread Studio的嵌入式工程中,完成板端代碼的修改、編譯與燒錄,最終實現(xiàn)手寫數(shù)字識別模型的板端運行,核心分為工程集成、代碼修改、推理邏輯編寫三個步驟。 5.1
    發(fā)表于 03-15 20:42

    LLM推理模型是如何推理的?

    這篇文章《(How)DoReasoningModelsReason?》對當前大型推理模型(LRM)進行了深刻的剖析,超越了表面的性能宣傳,直指其技術本質(zhì)和核心局限。以下是基于原文的詳細技術原理、關鍵
    的頭像 發(fā)表于 01-19 15:33 ?728次閱讀
    LLM<b class='flag-5'>推理模型</b>是如何<b class='flag-5'>推理</b>的?

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

    1.OCR文字識別簡介文字識別也是圖像領域一個常見問題。然而,對于自然場景圖像,首先要定位圖像中的文字
    的頭像 發(fā)表于 01-12 10:19 ?7224次閱讀
    瑞芯微(EASY EAI)RV1126B OCR<b class='flag-5'>文字</b><b class='flag-5'>識別</b>

    如何精準驅(qū)動菜品識別模型--基于米爾瑞芯微RK3576邊緣計算盒

    的NPU算力: 1. 目標檢測: 當一張圖片或視頻幀輸入后,首先由 YOLOv11s模型進行推理。它的任務是精準定位圖片中菜品所在的位置,并輸出其邊界框,為后續(xù)處理劃定了關鍵區(qū)域。 2. 特征提?。?系統(tǒng)將
    發(fā)表于 10-31 21:19

    什么是AI模型推理能力

    NVIDIA 的數(shù)據(jù)工廠團隊為 NVIDIA Cosmos Reason 等 AI 模型奠定了基礎,該模型近日在 Hugging Face 的物理推理模型排行榜中位列榜首。
    的頭像 發(fā)表于 09-23 15:19 ?1507次閱讀

    基于米爾瑞芯微RK3576開發(fā)板的Qwen2-VL-3B模型NPU多模態(tài)部署評測

    ,RKLLM 通過量化優(yōu)化、多模態(tài)支持等降低模型內(nèi)存占用與推理延遲。實測中,RK3576 運行 Qwen2-VL-3B 模型時,純文字交互 Token 生成穩(wěn)定,多模態(tài)問答能精準
    發(fā)表于 08-29 18:08

    迅為RK3568開發(fā)板模型推理測試實戰(zhàn)LPRNet?車牌識別

    迅為RK3568開發(fā)板模型推理測試實戰(zhàn)LPRNet 車牌識別
    的頭像 發(fā)表于 08-25 14:55 ?1587次閱讀
    迅為RK3568開發(fā)板<b class='flag-5'>模型</b><b class='flag-5'>推理</b>測試實戰(zhàn)LPRNet?車牌<b class='flag-5'>識別</b>

    【EASY EAI Orin Nano開發(fā)板試用體驗】PP-OCRV5文字識別實例搭建與移植

    參數(shù)中填上dec模型的路徑,在第三個參數(shù)中填上rec模型的路徑,在第四個參數(shù)中填上需要進行文字識別的源圖片: 看看效果: RK3588s開發(fā)板上面成功運行,但是RK3576開發(fā)板
    發(fā)表于 08-18 16:57

    無法在NPU上推理OpenVINO?優(yōu)化的 TinyLlama 模型怎么解決?

    在 NPU 上推斷 OpenVINO?優(yōu)化的 TinyLlama 模型。 遇到的錯誤: get_shape was called on a descriptor::Tensor with dynamic shape
    發(fā)表于 07-11 06:58

    模型推理顯存和計算量估計方法研究

    隨著人工智能技術的飛速發(fā)展,深度學習大模型在各個領域得到了廣泛應用。然而,大模型推理過程對顯存和計算資源的需求較高,給實際應用帶來了挑戰(zhàn)。為了解決這一問題,本文將探討大模型
    發(fā)表于 07-03 19:43

    無法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?

    將 Tensorflow Lite 模型轉(zhuǎn)換為 OpenVINO? 格式。 遇到的錯誤: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostP
    發(fā)表于 06-25 08:27

    使用 NPU 插件對量化的 Llama 3.1 8b 模型進行推理時出現(xiàn)“從 __Int64 轉(zhuǎn)換為無符號 int 的錯誤”,怎么解決?

    安裝了 OpenVINO? GenAI 2024.4。 使用以下命令量化 Llama 3.1 8B 模型: optimum-cli export openvino -m meta-llama
    發(fā)表于 06-25 07:20

    使用Openvino? GenAI運行Sdxl Turbo模型時遇到錯誤怎么解決?

    使用 OpenVINO? GenAI 運行 SDXL Turbo 模型。 遇到的錯誤: RuntimeError :- Check ov_tokenizer || ov_detokenizer Neither tokenizer nor detokenizer model
    發(fā)表于 06-24 06:38

    為什么無法在GPU上使用INT8 和 INT4量化模型獲得輸出?

    安裝OpenVINO? 2024.0 版本。 使用 optimum-intel 程序包將 whisper-large-v3 模型轉(zhuǎn)換為 int 4 和 int8,并在 GPU 上使用 Ope
    發(fā)表于 06-23 07:11

    基于LockAI視覺識別模塊:C++目標檢測

    快速部署高性能的目標檢測應用。 特點: 高性能:優(yōu)化了推理速度,在保持高精度的同時實現(xiàn)了快速響應。 靈活性:支持多種預訓練模型,可以根據(jù)具體需求選擇合適的模型架構(gòu)。 易于集成:提供 C
    發(fā)表于 06-06 14:43
    绥江县| 呼图壁县| 宁蒗| 夏河县| 古交市| 重庆市| 宁化县| 安图县| 大方县| 成都市| 砚山县| 华安县| 特克斯县| 青田县| 贵南县| 南汇区| 绥芬河市| 普格县| 尼勒克县| 钦州市| 图木舒克市| 保亭| 盖州市| 绥中县| 呼伦贝尔市| 林口县| 镇赉县| 绥棱县| 仲巴县| 兴国县| 海晏县| 南宁市| 北安市| 湘西| 句容市| 西华县| 濮阳县| 三明市| 将乐县| 繁峙县| 积石山|