Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel_第1頁(yè)
Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel_第2頁(yè)
Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel_第3頁(yè)
Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel_第4頁(yè)
Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第Python實(shí)現(xiàn)批量識(shí)別圖片文字并存為Excel目錄一、背景二、需求三、實(shí)戰(zhàn)1.安裝模塊2.識(shí)別一張圖片3.批量識(shí)別圖片4.保存數(shù)據(jù)

一、背景

大家好,我是J哥。

也許你還記得,前不久復(fù)旦大學(xué)一博士生寫(xiě)了130行Python代碼,批量識(shí)別核酸截圖內(nèi)容的故事。當(dāng)時(shí)還被人民日?qǐng)?bào)公眾號(hào)報(bào)道出來(lái),夸贊用所學(xué)貢獻(xiàn)青春力量!

其實(shí),批量文字識(shí)別(OCR)是Python辦公自動(dòng)化的基本操作,應(yīng)用在我們工作生活中的方方面面,比如車牌識(shí)別、證件識(shí)別、銀行卡識(shí)別、票據(jù)識(shí)別等等。

Python中OCR第三方庫(kù)非常多,比如easyocr、PaddleOCR、cnocr等等。當(dāng)然,直接調(diào)用百度API也是可以的,不過(guò)超過(guò)一定限額后要收費(fèi),因此本文主要以開(kāi)源免費(fèi)的easyocr來(lái)進(jìn)行介紹。

二、需求

本文以證件識(shí)別為例,我網(wǎng)上找了3張?zhí)摂M身份證來(lái)實(shí)驗(yàn):

運(yùn)用easyocr進(jìn)行識(shí)別并保存為Excel,效果如下:

三、實(shí)戰(zhàn)

1.安裝模塊

在Python中使用easyocr非常簡(jiǎn)單,只要使用pip命令安裝easyocr即可(建議使用清華源,否則安裝會(huì)比較慢)。

pip

install

easyocr

不過(guò)easyocr的深度學(xué)習(xí)算法依賴于另一個(gè)著名的第三方模塊pytorch,圖形處理部分則會(huì)用到opencv、Pillow等,所以還需要確保自己電腦上已經(jīng)安裝這些基礎(chǔ)模塊。

2.識(shí)別一張圖片

1.easyocr識(shí)別圖片代碼非常簡(jiǎn)潔,只需要?jiǎng)?chuàng)建一個(gè)easyocr.Reader類對(duì)象,指定以下兩個(gè)常用參數(shù):

需要識(shí)別的文字屬于哪幾種語(yǔ)言是否啟用GPU顯卡加速

2.調(diào)用Reader對(duì)象的readtext方法,將圖片中所有文字讀入一個(gè)列表并返回。

'''

公眾號(hào):菜J學(xué)Python

作者:J哥

#

導(dǎo)入模塊

import

easyocr

#

圖片路徑

image

=

'./id_card/1.jpg'

#

創(chuàng)建ocr的reader對(duì)象,識(shí)別中英文

ocr

=

easyocr.Reader(['ch_sim',

'en'],gpu=False)

#

識(shí)別圖片文字

content

=

ocr.readtext(image)

print(content)

識(shí)別結(jié)果如下:

[([[39,31],[207,31],[207,67],[39,67]],姓名韋小寶,0.8973890994570185),([[40,82],[159,82],[159,119],[40,119]],性別男,0.9799311480828728),([[178,86],[272,86],[272,116],[178,116]],民族漢,0.5456928014755249),([[40,131],[100,131],[100,161],[40,161]],出生,0.5362269878387451),([[114,134],[240,134],[240,162],[114,162]],1654年12,0.6952526392609933),([[266,134],[322,134],[322,162],[266,162]],20日,0.31329770168285426),([[42,181],[395,181],[395,213],[42,213]],住址北京市東城區(qū)景山前街4號(hào),0.48138251996753667),([[112,222],[256,222],[256,254],[112,254]],紫禁城敬事房,0.9732440311960702),([[44,307],[195,307],[195,337],[44,337]],公民身份證號(hào)碼,0.612808391503521),([[212,308],[526,308],[526,334],[212,334]],112044165412202538,0.7003081027071493)]

readtext返回的列表中,每個(gè)元素都是一個(gè)元組,內(nèi)含三個(gè)信息:位置、文字、置信度。我們可以在調(diào)用readtext時(shí)指定一個(gè)參數(shù)detail=0,從而只返回文字內(nèi)容。于是修改后代碼和效果如下:

import

easyocr

image

=

'./id_card/1.jpg'

ocr

=

easyocr.Reader(['ch_sim',

'en'],gpu=False)

content

=

ocr.readtext(image,detail=0)

print(content)

[姓名韋小寶,性別男,民族漢,出生,1654年12,20日,住址北京市東城區(qū)景山前街4號(hào),紫禁城敬事房,公民身份證號(hào)碼,112044165412202538]

3.批量識(shí)別圖片

批量識(shí)別圖片無(wú)非就是遍歷圖片文件夾,這里用到了os.listdir()方法以返回文件列表。然后用ocr.readtext()去識(shí)別每一張圖片文字內(nèi)容,接著通過(guò)字符串切片來(lái)獲取姓名、性別、民族、出生、住址和身份證號(hào)等關(guān)鍵信息,最后統(tǒng)一將這些信息存入列表data中。

'''

公眾號(hào):菜J學(xué)Python

作者:J哥

import

easyocr

import

os

#

指明所有圖片所在的文件夾

images

=

'./id_card'

#

創(chuàng)建ocr的reader對(duì)象,識(shí)別中英文

ocr

=

easyocr.Reader(['ch_sim',

'en'])

#

識(shí)別圖片文字

content

=

ocr.readtext(images,detail=0)

#

遍歷所有圖片并識(shí)別文字,切片提取有效信息

data

=

[]

for

image

in

os.listdir(images):

content

=

ocr.readtext(f'{images}/{image}',

detail=0)

print(f"正在識(shí)別:{image}")

name

=

content[0][4:]

gender

=

content[1][-1]

nation

=

content[2][-1]

birth

=

content[-5]

if

"月"

not

in

birth:

birth

=

content[-6]

+

"月"

+

content[-5]

if

"日"

not

in

birth:

birth

=

birth[:-1]

+

"日"

address

=

content[-4][4:]

+

content[-3]

number

=

content[-1]

print(f"完成識(shí)別:{image}")

print("-"

*

50)

data.append([name,

gender,

nation,

birth,

address,

number])

4.保存數(shù)據(jù)

圖片文字識(shí)別之后,建議通過(guò)pandas輸出為Excel,方便簡(jiǎn)潔。

'''

公眾號(hào):菜J學(xué)Python

作者:J哥

import

pand

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論