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

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

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

3天內不再提示

把樹莓派打造成識別文本的“神器”!

上海晶珩電子科技有限公司 ? 2025-03-25 09:30 ? 次閱讀

在許多項目中,Raspberry Pi被用作監控攝像頭或執行機器學習任務。在這些場景中,圖像中經常包含應用程序感興趣的文本信息。我們希望提取這些信息并將其轉換,以便通過程序分析文本。Raspberry Pi也能實現這種文本識別,而且并不困難。我們可以從靜態圖像或攝像頭的實時流中讀取文本。

在本教程中,我們將探討如何使用Raspberry Pi實現文本識別,以及為此需要哪些組件。

開始前的必要組件

該應用的主要部分是純軟件基礎的。因此,我們只需要少量的硬件來設置文本識別。我們將需要并使用以下組件:

強大的Raspberry Pi(例如 Model 4)

官方Raspberry Pi攝像頭,或者:USB 網絡攝像頭

電源連接:micro USB 線纜和 USB 適配器

可以使用屏幕、鍵盤和鼠標,但由于我們遠程操作Raspberry Pi,因此它們并非必需。因此,您應該已經相應地設置了Raspberry Pi,并啟用了 SSH,還建立了遠程桌面連接。之后,我們就可以直接開始了。使用 SSH 和 Putty 遠程訪問

什么是文本識別(OCR)以及它在Raspberry Pi上是如何工作的?

簡而言之,圖像上的文本識別(光學字符識別或簡稱 OCR)實際上是識別單個字母。如果它們足夠接近,就會形成一個單詞。

在之前的教程中,我們已經看到可以訓練一個模型來識別圖像上的物體。如果我們現在訓練所有(拉丁)字母——而不是物體——我們也可以通過模型再次識別它們。

理論上,這是可行的,但需要付出很多努力。必須先訓練不同的字體、顏色、格式等。但是,我們想節省為此所需的時間。

因此,我們使用來自 Google 的 Tesseract庫。它已包含此類模型,并且經過了許多開發人員的優化。

安裝 Tesseract OCR 庫

我們可以自己編譯 Tesseract,或者簡單地通過包管理器安裝它。后者可以通過以下命令輕松完成:

sudo apt install tesseract-ocr

我們可以使用tesseract -v 輕松檢查安裝是否成功。

現在,我們可以進行第一次小測試。為此,我們將使用這張圖片:

cd9620ea-0918-11f0-9434-92fbcf53809c.png

您可以通過以下方式下載它:

wget https://tutorials-raspberrypi.de/wp-content/uploads/coffee-ocr.jpg

然后,我們執行以下命令:

tesseract coffee-ocr.jpg stdout

輸出如下所示:

Warning: Invalid resolution 0 dpi. Using 70 instead.Estimating resolution as 554COFFEE

因此,在我們的輸入圖像中,文本“COFFEE”被識別出來了。

由于我們想在 Python 腳本中使用整個功能,因此我們需要一些庫,如 OpenCV和 Tesseract 的 Python 包裝器。OpenCV:https://opencv.org/我們通過 Python 包管理器安裝它們:

pip3 install opencv-python pillow pytesseract imutils numpy

在Raspberry Pi上通過 Python 腳本測試文本識別

到目前為止,我們僅在未處理的彩色圖像上嘗試識別單詞。預處理步驟通常可以改善結果。例如,通過將彩色圖像轉換為灰度圖像。另一方面,我們也可以嘗試檢測圖像中的邊緣,以更好地突出字母/單詞。

因此,讓我們首先通過 Python 腳本在Raspberry Pi上啟用文本識別。為此,我們創建一個文件夾和一個文件。

mkdir ocrcd ocrsudo nano example.py

我們插入以下內容:

import cv2import pytesseractimport numpy as npfrom pytesseract import Output img_source = cv2.imread('images/coffee.jpg') def get_grayscale(image): return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) def thresholding(image): return cv2.threshold(image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1] def opening(image): kernel = np.ones((5, 5), np.uint8) return cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel) def canny(image): return cv2.Canny(image, 100, 200) gray = get_grayscale(img_source)thresh = thresholding(gray)opening = opening(gray)canny = canny(gray) for img in [img_source, gray, thresh, opening, canny]: d = pytesseract.image_to_data(img, output_type=Output.DICT) n_boxes = len(d['text']) # back to RGB if len(img.shape) == 2: img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB) for i in range(n_boxes): if int(d['conf'][i]) > 60: (text, x, y, w, h) = (d['text'][i], d['left'][i], d['top'][i], d['width'][i], d['height'][i]) # don't show empty text if text and text.strip() != "": img = cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) img = cv2.putText(img, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 1.2, (0, 255, 0), 3) cv2.imshow('img', img) cv2.waitKey(0)

讓我們看看一些有趣的行:

導入庫(第1-4行)

加載圖像(第5行),根據需要調整路徑!

預處理函數,用于轉換為灰度值(第9-23行)

第32行:在這里,我們提取任何數據(文本、坐標、分數等)

為了能夠在之后為框著色,如果必要,我們將灰度圖像轉換回具有顏色通道的圖像(第36-37行)

從第39行開始,將為分數高于60的框著色。

為此,我們在第41行提取文本、起始坐標和框的尺寸。

只有當檢測到(非空)文本時,我們才繪制框(第43-45行)。

然后,我們運行腳本并等待按下轉義鍵(第47/48行)。

我們現在運行腳本:

python3 example.py

然后,5張不同的圖像會依次出現(按 ESC 鍵顯示下一張圖像)。識別出的文本會在圖像上被標記出來。這樣,您可以確定哪個預處理步驟最適合您。

通過Raspberry Pi攝像頭識別實時圖像中的文本

到目前為止,我們僅使用靜態圖像作為文本識別的輸入。現在,我們還希望在連接的攝像頭的實時流中識別文本。這只需要對我們之前的腳本進行一些小的更改。我們創建一個新文件:

sudo nano ocr_camera.py

文件內容如下:

import cv2import pytesseractfrom pytesseract import Output cap = cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) while True: # Capture frame-by-frame ret, frame = cap.read() d = pytesseract.image_to_data(frame, output_type=Output.DICT) n_boxes = len(d['text']) for i in range(n_boxes): if int(d['conf'][i]) > 60: (text, x, y, w, h) = (d['text'][i], d['left'][i], d['top'][i], d['width'][i], d['height'][i]) # don't show empty text if text and text.strip() != "": frame = cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) frame = cv2.putText(frame, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 3) # Display the resulting frame cv2.imshow('frame', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break # When everything done, release the capturecap.release()cv2.destroyAllWindows()

我們現在的改動如下:

在第5-6行,我們定義了相機,而不是固定的圖像。相機必須被連接并被識別。

在第10行,我們讀取了當前的幀。

這里我們省略了預處理步驟,但這些步驟也很容易被插入(在第11行)。

最后但同樣重要的是,我們也運行了腳本:

python3 ocr_camera.py

現在將相機對準文本,觀察文本上的單詞是如何被識別的:

在我的示例中,你可以清楚地看到轉換為灰度圖像是有意義的,因為單詞“Tutorials”太亮了。

其他語言的文本識別

Tesseract默認只安裝了英語作為識別語言。我們可以用以下命令檢查:

tesseract --list-langs

如果你想添加更多應該識別文本的語言,可以這樣做:

sudo apt-get install tesseract-ocr-[lang]

將[lang]替換為語言的縮寫(all表示安裝所有現有的語言)。

https://askubuntu.com/questions/793634/how-do-i-install-a-new-language-pack-for-tesseract-on-16-04/798492#798492然后你可以在Python腳本中選擇語言。添加參數:

d = pytesseract.image_to_data(img, lang='eng')

結論

Tesseract是一個強大的工具,它為圖像或幀提供了開箱即用的文本識別功能。這意味著我們不需要訓練和創建自己的機器學習模型。盡管計算量相對較大,但Raspberry Pi的文本識別效果非常好。通過各種處理步驟,可以進一步改進結果。
順便提一下,你可以在Github倉庫中找到這兩個腳本。


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

    關注

    0

    文章

    119

    瀏覽量

    17256
  • Raspberry Pi
    +關注

    關注

    2

    文章

    613

    瀏覽量

    22547
  • 樹莓派
    +關注

    關注

    118

    文章

    1882

    瀏覽量

    106257
收藏 人收藏

    評論

    相關推薦

    樹莓DIY之打造mini版BOOMBOX

    樹莓官方的 raspbian 鏡像里面的 dtoverlay 里面已經添加了可以加載的驅動, 其中有一項是 audremap, 實際上就是允許通過樹莓的 GPIO 引腳進行音樂播
    發表于 04-19 15:54 ?1696次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>DIY之<b class='flag-5'>打造</b>mini版BOOMBOX

    樹莓做人臉識別

    基于云服務平臺的人臉識別1、設備樹莓2、USB攝像頭。2、要求l使用USB攝像頭抓拍(可以使用各種開源軟件,也可以自己編程)臉部照片;l使用人臉識別的云服務平臺(可選擇FACECOR
    發表于 08-07 23:19

    在Windows、OSX和樹莓下編輯樹莓config

    :關閉樹莓,拔掉電源和SD卡SD卡插入MAC機的SD卡卡槽,在Finder中打開SD卡查找名為config的文件 (有可能是config.txt)如果文件存在,用TextEdit打開。如果找不到,用
    發表于 01-11 17:56

    樹莓語音識別機器人(下)

    `樹莓語音識別機器人(上)第四步:聲卡盡管有音頻輸出口可以連接音箱或耳機,但為了獲得更好的音質,我們將外置聲卡材料:1. 樹莓2. US
    發表于 01-20 10:59

    樹莓怎么打造開心農場

    /ACCESSORIES_RPI_4.html]其它更多有趣的專案:DIY相機樹莓做的報警器跟拍的小車家庭媒體中心云監控DIY街頭游戲機人臉識別云相冊樹莓
    發表于 02-22 15:14

    樹莓+nodejs之打造物聯網圖傳控制履帶車

    樹莓+nodejs打造物聯網圖傳控制履帶車
    發表于 05-08 06:36

    樹莓裝機教程

    樹莓裝機教程樹莓裝機教程樹莓裝機教程樹莓
    發表于 11-25 10:14 ?52次下載

    樹莓3硬件配置_樹莓3都能裝什么系統_樹莓3系統安裝教程

    樹莓3一直頗受電子發燒友的青睞,這篇文章主要討論的就是樹莓3的硬件配置、樹莓3都能裝什么系
    發表于 12-08 14:36 ?2.7w次閱讀

    CES 2019:谷歌欲數字助手打造成大平臺

    的一系列新功能,以及其與第三方的產品整合。谷歌勢必要將自家的數字助理打造成比擬亞馬遜Alexa的平臺。 谷歌通過智 ... 據國外媒體報道,在2019年度國際消費電子展(CES)上,谷歌重點推介了谷歌
    發表于 01-15 14:17 ?282次閱讀

    樹莓是什么樹莓的簡單介紹

    要想玩轉樹莓,首先得知道樹莓是什么。在本節中,作者將帶領大家揭開樹莓的神秘面紗,了解
    發表于 05-15 18:09 ?30次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的簡單介紹

    海南電網將致力海南打造成國內首個智能電網示范省

    “海南電網將在省委、省政府和南方電網指導下,緊緊圍繞生態立省、綠色崛起、國際旅游島建設主線,按照‘超前謀劃、需求驅動、遠近結合’的原則,努力海南打造成國內首個省域智能電網示范省。”南方電網海南電網公司董事長鄧恩宏對此表示。
    發表于 05-29 15:07 ?2873次閱讀

    樹莓的學習設計方案合集

    手臂,MAX17043 鋰電池電量計樹莓驅動程序及教程等,Raspberry Pi打造的高清監控攝像機的DIY全過程共享,基于Arduino和樹莓
    發表于 03-11 08:00 ?12次下載
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的學習設計方案合集

    TensorFlow手勢識別樹莓開源

    電子發燒友網站提供《TensorFlow手勢識別樹莓開源.zip》資料免費下載
    發表于 11-09 09:27 ?1次下載
    TensorFlow手勢<b class='flag-5'>識別</b><b class='flag-5'>樹莓</b><b class='flag-5'>派</b>開源

    驚了!這個“神器”讓樹莓秒變智能管家,圖像識別+無線投屏,太秀了!

    和BalenaCloud,讓樹莓實現從圖像識別到智能生活的華麗轉身!圖像分類項目:用樹莓和BalenaOS實現智能
    的頭像 發表于 03-25 09:23 ?170次閱讀
    驚了!這個“<b class='flag-5'>神器</b>”讓<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>秒變智能管家,圖像<b class='flag-5'>識別</b>+無線投屏,太秀了!

    樹莓5終極開發方案:VSCode Server避坑實戰指南

    導語:你是否想過將信用卡大小的樹莓5打造成隨身攜帶的云端開發神器?開發者RaduZaharia歷經反復試驗,終于突破性實現VSCodeServer在
    的頭像 發表于 03-25 16:39 ?110次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>5終極開發方案:VSCode Server避坑實戰指南
    主站蜘蛛池模板: 成人永久免费视频网站在线观看 | 69午夜视频 | 丁香六月婷婷综合 | 狠狠狠狼鲁欧美综合网免费 | 国产成人v爽在线免播放观看 | 特黄特色的视频免费播放 | 综合伊人久久 | 免费aⅴ网站 | 在线你懂的网址 | 大黄网站色多多 | 免费看的黄网站 | 久久99爰这里有精品国产 | 久99热| 黄色大片免费观看 | 97久久综合区小说区图片专区 | va在线观看| 48pao强力打造免费基地 | 免费看日本黄色片 | 女人被狂躁视频免费网站 | 亚洲精品二区中文字幕 | 99久久精品久久久久久婷婷 | 黄色软件合集 | 欧美jizzhd精品欧美4k | 中文字幕视频一区 | 色综合久久丁香婷婷 | 五月综合色啪 | 色在线视频播放 | 加勒比色 | 操亚洲| 深爱五月激情网 | 天天干天天干天天干天天 | 欧美高清另类 | 国产美女免费 | 免费欧美黄色网址 | 午夜噜噜噜私人影院在线播放 | 夜夜摸视频网 | 俄罗斯女人69xxx | 久久精品国产福利国产琪琪 | 免费一级特黄 | 国产重口老太和小伙乱视频 | 色avav |