色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

如何使用TensorFlow Lite從Android設(shè)備圖像提取文本

Tensorflowers ? 來源:TensorFlow ? 作者:魏巍 ? 2021-11-02 15:34 ? 次閱讀

俗話說:“一圖勝千言”。圖像包含豐富的視覺信息,但有時關(guān)鍵信息位于圖像的文本當(dāng)中。雖然識字的人可以輕松理解圖像中嵌入的文字,但我們?nèi)绾卫?a href="http://m.1cnz.cn/v/tag/3744/" target="_blank">計算機視覺機器學(xué)習(xí)來教計算機做到這一點呢?

今天,我們將向您展示如何使用 TensorFlow Lite 從 Android 設(shè)備上的圖像中提取文本。我們將引導(dǎo)您完成最近開源的光學(xué)字符識別 (OCR) Android 參考應(yīng)用的關(guān)鍵步驟,您可參考該處獲取完整代碼。在下方動畫中,可以看到該應(yīng)用如何從三款 Google 產(chǎn)品徽標(biāo)圖片中提取產(chǎn)品名稱。

該處

https://github.com/tensorflow/examples/tree/master/lite/examples/optical_character_recognition/android

從圖像中識別文本的過程即為 OCR,該技術(shù)在多個領(lǐng)域中廣泛使用。例如,Google 地圖運用 OCR 技術(shù)從地理定位圖像中提取信息,進而完善 Google 地圖。

Google 地圖運用 OCR 技術(shù)

https://ai.googleblog.com/2017/05/updating-google-maps-with-deep-learning.html

一般來說,OCR 是一個包含多個步驟的流水線。相關(guān)步驟通常包含文本檢測和文本識別:

使用文本檢測模型查找文本周圍的邊界框;

執(zhí)行一些后處理操作,以轉(zhuǎn)換邊界框;

將這些邊界框內(nèi)的圖像轉(zhuǎn)換為灰度圖像,如此一來,文本識別模型便可繪制出文字和數(shù)字。

在示例中,我們將利用 TensorFlow Hub 中的文本檢測和文本識別模型。多個不同的模型版本可用來權(quán)衡速度/準(zhǔn)確率的取舍;我們在此使用的是 float16 量化模型。如需有關(guān)模型量化的更多信息,請參閱 TensorFlow Lite 量化文檔。

文本檢測

https://hub.tensorflow.google.cn/sayakpaul/lite-model/east-text-detector/fp16/1

文本識別

https://hub.tensorflow.google.cn/tulasiram58827/lite-model/keras-ocr/float16/2

TensorFlow Lite 量化

https://tensorflow.google.cn/lite/performance/model_optimization

我們還會使用 OpenCV,這是一款廣泛使用的計算機視覺庫,適用于非極大值抑制 (NMS) 和透視變換(我們稍后會對此展開討論),以對檢測結(jié)果進行后處理。此外,我們還會使用 TFLite 支持庫對圖像進行灰度和標(biāo)準(zhǔn)化處理。

非極大值抑制

https://www.coursera.org/lecture/convolutional-neural-networks/non-max-suppression-dvrjH

TFLite 支持庫

https://tensorflow.google.cn/lite/inference_with_metadata/lite_support

對于文本檢測,由于檢測模型支持 320x320 的固定像素,我們會使用 TFLite 支持庫調(diào)整輸入圖像的大小并對其進行標(biāo)準(zhǔn)化處理:

檢測模型

https://hub.tensorflow.google.cn/sayakpaul/lite-model/east-text-detector/fp16/1

val imageProcessor =

ImageProcessor.Builder().add(ResizeOp(height, width, ResizeOp.ResizeMethod.BILINEAR)).add(NormalizeOp(means, stds)).build()

var tensorImage = TensorImage(DataType.FLOAT32)

tensorImage.load(bitmapIn)

tensorImage = imageProcessor.process(tensorImage)

接下來,我們使用 TFLite 運行檢測模型:

detectionInterpreter.runForMultipleInputsOutputs(detectionInputs, detectionOutputs)

檢測模型的輸出是一些經(jīng)過旋轉(zhuǎn)且圖像內(nèi)包含文本的邊界框。我們會運行非極大值抑制,借助 OpenCV 為每個文本塊確定一個邊界框:

NMSBoxesRotated(

boundingBoxesMat,

detectedConfidencesMat,

detectionConfidenceThreshold.toFloat(),

detectionNMSThreshold.toFloat(),

indicesMat

有些時候,圖像內(nèi)的文本會出現(xiàn)變形(例如,我的筆記本電腦上的“kubernetes”貼紙),并伴隨一個透視角度:

如果我們只是將原始旋轉(zhuǎn)邊界框直接“喂”給識別模型,則該模型不太可能正確識別字符。在本例中,我們需要使用 OpenCV 來進行透視變換:

val rotationMatrix = getPerspectiveTransform(srcPtsMat, targetPtsMat)

warpPerspective(

srcBitmapMat,

recognitionBitmapMat,

rotationMatrix,

Size(recognitionImageWidth.toDouble(), recognitionImageHeight.toDouble()))

之后,我們會再次使用 TFLite 支持庫,在邊界框內(nèi)調(diào)整變換圖像的大小,并對其進行灰度和歸一化處理:

val imageProcessor =

ImageProcessor.Builder().add(ResizeOp(height, width, ResizeOp.ResizeMethod.BILINEAR)).add(TransformToGrayscaleOp()).add(NormalizeOp(mean, std)).build()

最后,我們會運行文本識別模型、根據(jù)模型輸出繪制出字符與數(shù)字,然后更新應(yīng)用界面:

recognitionInterpreter.run(recognitionTensorImage.buffer, recognitionResult)

var recognizedText = “”for (k in 0 until recognitionModelOutputSize) {

var alphabetIndex = recognitionResult.getInt(k * 8)if(alphabetIndex in 0..alphabets.length - 1)

recognizedText = recognizedText + alphabets[alphabetIndex]}

Log.d(“Recognition result:”, recognizedText)if (recognizedText != “”) {

ocrResults.put(recognizedText, getRandomColor())}

這樣就完成了,就是這么簡單。此時,我們可以在我們的應(yīng)用中使用 TFLite 來提出輸入圖像中的文本。

最后我想指出的是,如果您只是需要一個即用型 OCR SDK,您可以直接使用 Google ML Kit 的文字識別功能。ML Kit 底層使用了 TFLite,并且對于大多數(shù) OCR 用例而言足矣。在以下情況下,您可以使用 TFLite 來構(gòu)建專屬 OCR 解決方案:

您有自己想要使用的專屬文本檢測/識別 TFLite 模型;

您有特殊的業(yè)務(wù)需求(例如識別顛倒的文本),并且需要自定義 OCR 流水線;

您希望支持 ML Kit 沒有覆蓋的語言;

您的目標(biāo)用戶設(shè)備不一定要安裝 Google Play 服務(wù);

您想要控制用于運行模型的硬件后端(CPUGPU 等)。

ML Kit

https://developers.google.cn/ml-kit/vision/text-recognition

Google Play 服務(wù)

https://developers.google.cn/android/guides/overview

在這些情況下,我希望本教程和我們的實現(xiàn)示例可以助您開啟在您的應(yīng)用中構(gòu)建專屬 OCR 功能的旅程。

責(zé)任編輯:haq

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

    關(guān)注

    2

    文章

    439

    瀏覽量

    34177
  • OCR
    OCR
    +關(guān)注

    關(guān)注

    0

    文章

    145

    瀏覽量

    16389
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60544
  • TensorFlow Lite
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    643

原文標(biāo)題:基于 TensorFlow Lite 的 OCR:一款嶄新的示例應(yīng)用

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    EE-300:Blackfin EZ-KIT Lite電路板與CMOS圖像傳感器的接口

    電子發(fā)燒友網(wǎng)站提供《EE-300:Blackfin EZ-KIT Lite電路板與CMOS圖像傳感器的接口.pdf》資料免費下載
    發(fā)表于 01-05 10:00 ?0次下載
    EE-300:Blackfin EZ-KIT <b class='flag-5'>Lite</b>電路板與CMOS<b class='flag-5'>圖像</b>傳感器的接口

    高通AI Hub:輕松實現(xiàn)Android圖像分類

    高通AI Hub為開發(fā)者提供了一個強大的平臺,以優(yōu)化、驗證和部署在Android設(shè)備上的機器學(xué)習(xí)模型。這篇文章將介紹如何使用高通AI Hub進行圖像分類的程式碼開發(fā),并提供一個實際的例子來展示其在
    的頭像 發(fā)表于 11-26 01:03 ?268次閱讀
    高通AI Hub:輕松實現(xiàn)<b class='flag-5'>Android</b><b class='flag-5'>圖像</b>分類

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測試

    本文介紹了在 PC 端交叉編譯 aarch64 平臺的 tensorflow 庫而非 tensorflow lite 的心酸過程。
    的頭像 發(fā)表于 08-25 11:38 ?1221次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發(fā)環(huán)境并測試

    如何在Tensorflow中實現(xiàn)反卷積

    TensorFlow中實現(xiàn)反卷積(也稱為轉(zhuǎn)置卷積或分?jǐn)?shù)步長卷積)是一個涉及多個概念和步驟的過程。反卷積在深度學(xué)習(xí)領(lǐng)域,特別是在圖像分割、圖像超分辨率、以及生成模型(如生成對抗網(wǎng)絡(luò)GANs)等任務(wù)中
    的頭像 發(fā)表于 07-14 10:46 ?665次閱讀

    利用TensorFlow實現(xiàn)基于深度神經(jīng)網(wǎng)絡(luò)的文本分類模型

    要利用TensorFlow實現(xiàn)一個基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的文本分類模型,我們首先需要明確幾個關(guān)鍵步驟:數(shù)據(jù)預(yù)處理、模型構(gòu)建、模型訓(xùn)練、模型評估與調(diào)優(yōu),以及最終的模型部署(盡管在本文中,我們將重點放在前四個步驟上)。下面,我將詳細(xì)闡述這些步驟,并給出一個具體的示例。
    的頭像 發(fā)表于 07-12 16:39 ?902次閱讀

    TensorFlow是什么?TensorFlow怎么用?

    TensorFlow是由Google開發(fā)的一個開源深度學(xué)習(xí)框架,它允許開發(fā)者方便地構(gòu)建、訓(xùn)練和部署各種復(fù)雜的機器學(xué)習(xí)模型。TensorFlow憑借其高效的計算性能、靈活的架構(gòu)以及豐富的工具和庫,在學(xué)
    的頭像 發(fā)表于 07-12 16:38 ?735次閱讀

    Android設(shè)備將SDK更新到1.4.0后無法連接到ESP SoftAP怎么解決?

    將 SDK 1.2.0 更新到 1.4.0 后,一切看起來都很好,但是某些設(shè)備(例如 Android 5.0、Android 4.4)
    發(fā)表于 07-08 07:41

    tensorflow和pytorch哪個更簡單?

    PyTorch更簡單。選擇TensorFlow還是PyTorch取決于您的具體需求和偏好。如果您需要一個易于使用、靈活且具有強大社區(qū)支持的框架,PyTorch可能是一個更好的選擇。如果您需要一個在
    的頭像 發(fā)表于 07-05 09:45 ?908次閱讀

    tensorflow和pytorch哪個好

    :2015年由Google Brain團隊發(fā)布。 語言支持 :主要使用Python,也支持C++、Java等。 設(shè)計哲學(xué) :TensorFlow是一個端到端的機器學(xué)習(xí)平臺,支持研究到生產(chǎn)的所有階段
    的頭像 發(fā)表于 07-05 09:42 ?717次閱讀

    tensorflow簡單的模型訓(xùn)練

    在本文中,我們將詳細(xì)介紹如何使用TensorFlow進行簡單的模型訓(xùn)練。TensorFlow是一個開源的機器學(xué)習(xí)庫,廣泛用于各種機器學(xué)習(xí)任務(wù),包括圖像識別、自然語言處理等。我們將從安裝
    的頭像 發(fā)表于 07-05 09:38 ?716次閱讀

    keras模型轉(zhuǎn)tensorflow session

    在這篇文章中,我們將討論如何將Keras模型轉(zhuǎn)換為TensorFlow session。 Keras和TensorFlow簡介 Keras是一個高級神經(jīng)網(wǎng)絡(luò)API,它提供了一種簡單、快速的方式來構(gòu)建
    的頭像 發(fā)表于 07-05 09:36 ?560次閱讀

    TensorFlow的定義和使用方法

    數(shù)據(jù)流圖,從而簡化機器學(xué)習(xí)模型的構(gòu)建、訓(xùn)練和部署。自2015年11月開源以來,TensorFlow迅速成為數(shù)據(jù)科學(xué)家、軟件開發(fā)者以及教育工作者廣泛使用的工具,廣泛應(yīng)用于圖像識別、自然語言處理、推薦系統(tǒng)等多個領(lǐng)域。本文將深入解讀Tenso
    的頭像 發(fā)表于 07-02 14:14 ?824次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在文本分類領(lǐng)域的應(yīng)用

    在自然語言處理(NLP)領(lǐng)域,文本分類一直是一個重要的研究方向。隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN)在圖像識別領(lǐng)域取得了
    的頭像 發(fā)表于 07-01 16:25 ?756次閱讀

    如何提取、匹配圖像特征點

    我們習(xí)慣圖像中選取比較有代表性的點,然后,在此基礎(chǔ)上,討論相機位姿估計問題,以及這些點的定位問題。 在經(jīng)典 SLAM 模型中,把它們稱為路標(biāo),而在視覺 SLAM 中,路標(biāo)則是指圖像特征(Features)。
    的頭像 發(fā)表于 04-19 11:41 ?687次閱讀

    基于TensorFlow和Keras的圖像識別

    TensorFlow和Keras最常見的用途之一是圖像識別/分類。通過本文,您將了解如何使用Keras達到這一目的。定義如果您不了解圖像識別的基本概念,將很難完全理解本文的內(nèi)容。因此在正文開始之前
    的頭像 發(fā)表于 01-13 08:27 ?849次閱讀
    基于<b class='flag-5'>TensorFlow</b>和Keras的<b class='flag-5'>圖像</b>識別
    主站蜘蛛池模板: a亚洲在线观看不卡高清| 中国拍三a级的明星女| 美女视频黄a视频全免费网站色窝| 国产精品自拍| 成人毛片免费在线观看| ca88亚洲城娱乐| 99视频在线观看视频| 91热久久免费精品99| 《乳色吐息》无删减版在线观看 | 玩弄放荡人妻一区二区三区| 青青涩射射| 欧美做真爱欧免费看| 欧美gay69| 日本枯瘦娇小| 日韩精品人成在线播放| 日韩一区二区三区四区区区| 日本伦理片 中文字幕| 日本亚洲电影| 手机在线免费观看毛片| 天天躁躁水汪汪人碰人| 午夜精品国产自在现线拍| 忘忧草在线社区WWW日本直播| 忘忧草在线影院www日本| 息与子在线交尾中文字幕| 亚洲福利网站| 一区三区三区不卡| 99re10久久热| 成年女人免费播放影院| 国产成人免费高清在线观看| 国产女高清在线看免费观看| 狠狠色狠狠色综合日日32| 久久精品国产在热亚洲| 免费A级毛片无码鲁大师| 啪啪做羞羞事小黄文| 思思99精品国产自在现线| 亚洲成AV人片一区二区不卡| 亚洲视频在线观看视频| 2020精品极品国产色在线| V8成品人视频| 国产麻豆91网在线看| 久久99精品国产免费观看|