在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

OpenVINO場景文字檢測與文字識別教程

英特爾物聯網 ? 來源:英特爾物聯網 ? 2023-09-24 15:31 ? 次閱讀

作者:賈志剛英特爾邊緣計算創新大使

01OpenVINO場景文字檢測

OpenVINO是英特爾推出的深度學習模型部署框架,當前最新版本是OpenVINO2023版本。OpenVINO2023自帶各種常見視覺任務支持的預訓練模型庫Model Zoo,其中支持場景文字檢測的網絡模型是來自Model Zoo中名稱為:text-detection-0003的模型(基于PixelLink架構的場景文字檢測網絡)。

d381afc6-5936-11ee-939d-92fbcf53809c.png

圖-1 PixelLink網絡模型架構

圖-1中的PixelLink場景文字檢測模型的輸入與輸出格式說明

輸入格式:

1x3x768x1280 BGR彩色圖像

輸出格式:

name: "model/link_logits_/add", [1x16x192x320] – pixelLink的輸出
name: "model/segm_logits/add", [1x2x192x320] – 像素分類text/no text

左滑查看更多

02OpenVINO文字識別

OpenVINO支持文字識別(數字與英文)的模型是來自Model Zoo中名稱為:text-recognition-0012d的模型,是典型的CRNN結構模型。(基于類似VGG卷積結構backbone與雙向LSTM編解碼頭的文字識別網絡)

d3a52870-5936-11ee-939d-92fbcf53809c.png

圖-2 CRNN網絡模型架構

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

輸入格式:1x1x32x120

輸出格式:30, 1, 37

輸出解釋是基于CTC貪心解析方式,其中37字符集長度,字符集為:0123456789abcdefghijklmnopqrstuvwxyz#

#表示空白。

03MediaPipe手勢識別

谷歌在2020年發布的mediapipe開發包說起,這個開發包集成了包含手勢姿態等各種landmark檢測與跟蹤算法。其中支持手勢識別是通過兩個模型實現,一個是模型是檢測手掌,另外一個模型是實現手掌的landmakr標記。

d3c32fd2-5936-11ee-939d-92fbcf53809c.png

圖-3手勢landmark點位說明

04OpenVINO與MediaPipe庫的安裝

pip install openvino==2023.0.2
pip install mediapipe

左滑查看更多

請先安裝好OpenCV-Python開發包依賴。

05應用構建說明

首先基于OpenCV打開USB攝像頭或者筆記本的web cam,讀取視頻幀,然后在每一幀中完成手勢landmark檢測,根據檢測到手勢landmark數據,分別獲取左右手的食指指尖位置坐標(圖-3中的第八個點位),這樣就得到了手勢選擇的ROI區域,同時把當前幀的圖像送入到OpenVINO場景文字識別模塊中,完成場景文字識別,最后對比手勢選擇的區域與場景文字識別結果每個區域,計算它們的并交比,并交比閾值大于0.5的,就返回該區域對應的OCR識別結果,并顯示到界面上。整個流程如下:

d3e388f4-5936-11ee-939d-92fbcf53809c.png

圖-4程序執行流程圖

06代碼實現

根據圖-4的程序執行流程圖,把場景文字檢測與識別部分封裝到了一個類TextDetectAndRecognizer,最終實現的主程序代碼如下:

import cv2 as cv
import numpy as np
import mediapipe as mp
from text_detector import TextDetectAndRecognizer
digit_nums = ['0','1', '2','3','4','5','6','7','8','9','a','b','c','d','e','f','g',
       'h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','#']


mp_drawing = mp.solutions.drawing_utils
mp_hands = mp.solutions.hands


x0 = 0
y0 = 0
detector = TextDetectAndRecognizer()


# For webcam input:
cap = cv.VideoCapture(0)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv.CAP_PROP_FRAME_WIDTH, 1920)
height = cap.get(cv.CAP_PROP_FRAME_HEIGHT)
width = cap.get(cv.CAP_PROP_FRAME_WIDTH)
# out = cv.VideoWriter("D:/test777.mp4", cv.VideoWriter_fourcc('D', 'I', 'V', 'X'), 15, (np.int(width), np.int(height)), True)
with mp_hands.Hands(
 min_detection_confidence=0.75,
 min_tracking_confidence=0.5) as hands:
 while cap.isOpened():
  success, image = cap.read()


  if not success:
    break


  image.flags.writeable = False
  h, w, c = image.shape
  image = cv.cvtColor(image, cv.COLOR_BGR2RGB)
  results = hands.process(image)


  image = cv.cvtColor(image, cv.COLOR_RGB2BGR)
  x1 = -1
  y1 = -1
  x2 = -1
  y2 = -1
  if results.multi_hand_landmarks:
   for hand_landmarks in results.multi_hand_landmarks:
    mp_drawing.draw_landmarks(
     image,
     hand_landmarks,
     mp_hands.HAND_CONNECTIONS)
    for idx, landmark in enumerate(hand_landmarks.landmark):
      x0 = np.int(landmark.x * w)
      y0 = np.int(landmark.y * h)
      cv.circle(image, (x0, y0), 4, (0, 0, 255), 4, cv.LINE_AA)
      if idx == 8 and x1 == -1 and y1 == -1:
        x1 = x0
        y1 = y0
        cv.circle(image, (x1, y1), 4, (0, 255, 0), 4, cv.LINE_AA)
      if idx == 8 and x1 > 0 and y1 > 0:
        x2 = x0
        y2 = y0
        cv.circle(image, (x2, y2), 4, (0, 255, 0), 4, cv.LINE_AA)


  if abs(x1-x2) > 10 and abs(y1-y2) > 10 and x1 > 0 and x2 > 0:
   if x1 < x2:
 ? ? ? ?cv.rectangle(image, (x1, y1), (x2, y2), (255, 0, 0), 2, 8)
 ? ? ? ?text = detector.inference_image(image, (x1, y1, x2, y2))
 ? ? ? ?cv.putText(image, text, (x1, y1), cv.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 2)
 ? ? ?else:
 ? ? ? ?cv.rectangle(image, (x2, y2), (x1, y1), (255, 0, 0), 2, 8)
 ? ? ? ?text = detector.inference_image(image, (x2, y2, x1, y1))
 ? ? ? ?cv.putText(image, text, (x2, y2), cv.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 2)


 ? ?# Flip the image horizontally for a selfie-view display.
 ? ?cv.imshow('MediaPipe Hands', image)
 ? ?# out.write(image)
 ? ?if cv.waitKey(1) & 0xFF == 27:
 ? ? ?break


cap.release()
# out.release()

左滑查看更多

07移植到AlxBoard開發板上

在愛克斯開發板上安裝好MediaPipe即可,OpenVINO不用安裝了,因為愛克斯開發板自帶OpenCV與OpenVINO,然后就可以直接把python代碼文件copy過去,插上USB攝像頭,直接使用命令行工具運行對應的python文件,就可以直接用了,這樣就在AlxBoard開發板上實現了基于手勢選擇區域的場景文字識別應用。

08后續指南

安裝語音播報支持包:

pip install pyttsx

AlxBorad開發板是支持3.5mm耳機mic接口,支持語音播報的,如果把區域選擇識別的文字,通過pyttsx直接播報就可以實現從手勢識別到語音播報了,自動跟讀卡片單詞啟蒙學英語,后續實現一波,請繼續關注我們。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 英特爾
    +關注

    關注

    61

    文章

    10015

    瀏覽量

    172420
  • 開發套件
    +關注

    關注

    2

    文章

    158

    瀏覽量

    24342
  • 深度學習
    +關注

    關注

    73

    文章

    5516

    瀏覽量

    121601
  • OpenVINO
    +關注

    關注

    0

    文章

    97

    瀏覽量

    242

原文標題:在英特爾開發套件上打造指哪識哪的OCR應用|開發者實戰

文章出處:【微信號:英特爾物聯網,微信公眾號:英特爾物聯網】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    首發 | 告別手動錄入,開放平臺OCR上線印刷文字識別

    的就是印刷字體的轉化。二、印刷文字識別應用廣泛正如文章開頭我們提到的,生活中有很多需要將印刷字體轉換為設備可編輯的文本場景。而作為OCR家族的重要成員,印刷文字
    發表于 05-17 15:18

    基于SnapDragonBoard410C文字識別

    圖片格式。簡單一句話,就是可以把圖片上的文字識別出來。應用的場景有很多,比如說:身份證號碼識別,銀行卡號識別等等。So 我們本次介紹國內巨頭
    發表于 09-26 18:11

    基于AI通用文字識別能力,檢測識別文檔翻拍、街景翻拍等圖片中的文字

    1. 介紹AI的通用文字識別可以對文檔翻拍、街景翻拍等圖片來源的文字檢測識別,可以集成在其他應用中,提供
    發表于 08-27 11:27

    TH-OCR文字識別系統介紹

    TH-OCR文字識別系統的工作原理為通過掃描儀或數碼相機等光學輸入設備獲取紙張上的文字圖片信息,OCR文字識別系統實際上是讓計算機認字,實現
    發表于 12-27 16:04 ?2157次閱讀

    Android文字識別

    Android文字識別
    發表于 12-20 22:40 ?0次下載

    基于matlab的文字識別算法

    在圖像中,文字信息包含了豐富的高層語義信息,提取出這些文字,對于圖像高層語義的理解、索引和檢索非常有幫助。基于matlab的文字識別算法具有局限性,模板匹配效率低,伸縮范圍比較小的的特
    發表于 01-15 10:31 ?3w次閱讀
    基于matlab的<b class='flag-5'>文字</b><b class='flag-5'>識別</b>算法

    基于FPGA的OCR文字識別技術的深度解析

    OCR在通用文字識別場景下有廣泛應用,基于FPGA異構加速的OCR識別相比CPU/GPU實現具有延時小、成本低的優勢。我們設計了多FPGA芯片協同的異構加速架構,能快速適配業務OCR
    發表于 01-26 12:19 ?4063次閱讀

    如何提取和檢測視頻中的文字?數字視頻中文字檢測提取技術的分析

    檢測與分割以及視頻文字識別(Video OCR) 等。對于不同的典型算法, 分析了其理論基礎和應用特點, 并且通過對比指出其不足和應用的局限。最后, 本文還展望了該技術未來發展的方向。
    發表于 09-17 17:58 ?26次下載
    如何提取和<b class='flag-5'>檢測</b>視頻中的<b class='flag-5'>文字</b>?數字視頻中<b class='flag-5'>文字</b>的<b class='flag-5'>檢測</b>提取技術的分析

    如何在電腦中對圖片文字進行局部識別

    ? ? 相信很多人和小編一樣電腦中保存了一些帶有文字的圖片,有時候因為需要會將里面的文字進行提取,然而又不想對著圖片一個字一個字的打出來,這個時候就需要對圖片中的文字進行局部識別了,那
    發表于 11-13 14:07 ?607次閱讀

    OCR文字識別視覺檢測系統應用程序免費下載

    本文檔的主要內容詳細介紹的是OCR文字識別視覺檢測系統應用程序免費下載。
    發表于 05-28 17:31 ?26次下載

    計算機文字識別技術研究

    計算機文字識別技術研究。
    發表于 03-24 14:15 ?16次下載

    淺析HarmonyOS基于AI的通用文字識別技術

    對圖像信息進行文字檢測識別和關鍵信息提取,并根據分析結果提供翻譯、搜索等相關服務。 通用文字識別的核心技術是OCR【Optical Cha
    的頭像 發表于 08-20 10:42 ?3236次閱讀

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

    場景文字檢測識別模型 OpenVINO2021.4支持場景
    的頭像 發表于 08-26 15:01 ?2923次閱讀

    圖片文字識別:揭開數字世界的神秘面紗

    隨著數字化時代的到來,我們生活中的大部分數據都以圖片的形式存在。然而,這些圖片中蘊含的信息往往比文字更豐富,如何從這些圖片中提取有價值的信息,是數字世界中一個十分重要的問題。這時,圖片文字識別技術
    的頭像 發表于 05-11 18:20 ?666次閱讀

    基于OpenVINO+OpenCV的OCR處理流程化實現

    預處理主要是基于OpenCV、場景文字檢測識別基于OpenVINO框架 + PaddleOCR模型完成。直接按圖索驥即可得到最終結果。 O
    的頭像 發表于 11-07 11:21 ?812次閱讀
    基于<b class='flag-5'>OpenVINO</b>+OpenCV的OCR處理流程化實現
    主站蜘蛛池模板: 国模无水印一区二区三区 | 天天干影院| 男女无遮挡在线完整视频 | 在线看片成人免费视频 | 五夜婷婷 | 日本黄大乳片免费观看 | 亚偷熟乱区视频在线观看 | 成人xxxxx | 亚洲国产视频网 | 国产精品一区在线播放 | 97影院午夜在线观看视频 | 欧美影院一区 | 老湿司午夜爽爽影院榴莲视频 | 丁香伊人五月综合激激激 | 男人的天堂视频网站清风阁 | 免费的毛片网站 | 夜夜爽天天爽 | 成 人 免费 黄 色 视频 | 欧美射射射 | 夜间免费视频 | 亚洲男同tv | 午夜黄色网址 | 免费日韩一级片 | 国产午夜精品一区二区理论影院 | 日日干夜夜欢 | 日韩三级 | 99国产福利| 日本最好的免费影院 | 国产亚洲精品美女2020久久 | 国模于子涵啪啪大胆 | 欧洲精品不卡1卡2卡三卡 | 激情五月社区 | 日韩黄色网 | 立即播放免费毛片一级 | 韩国一级网站 | 欧美a一| 春宵福利网站 | 国产美女亚洲精品久久久久久 | 免费无遮挡很爽很污很黄 | 香蕉视频黄色片 | 在线观看国产精美视频 |