Tesseract+PyOCR로 간이 OCR 시도
이른바 Tesseract OCR
'Tesseract OCR'은 구글, HP가 개발한 오픈 소스 OCR 엔진이다.
100개 이상의 언어를 인식할 수 있는 유니코드(UTF-8)를 지원합니다.
이른바 PyOCR
'PyOCR'은 파이톤이 사용하는 OCR 도구 지퍼다.
파이썬 프로그램의 다양한 OCR 도구를 사용할 수 있습니다.
현재 지원되는 OCR 도구는 다음과 같은 3가지입니다.
'PyOCR'은 파이톤이 사용하는 OCR 도구 지퍼다.
파이썬 프로그램의 다양한 OCR 도구를 사용할 수 있습니다.
현재 지원되는 OCR 도구는 다음과 같은 3가지입니다.
환경 구조
※ 운영 환경은 맥OS입니다.
1. Tesseract OCR
① Tesseract 설치
Homebrew를 사용할 때brew install tesseract
끝납니다.
② 데이터 학습 준비
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
상기 링크에서 훈련 데이터를 다운로드하여 아래 내용에 저장한다.
/usr/local/Cellar/tesseract/[tesseractのバージョン]/share/tessdata
4.0.0 버전에서는 속도를 중시하는'tessdata fast'정밀도의'tessdata best'를 선택할 수 있습니다.
본 보도는 일반적인 훈련 데이터'tessdata'를 사용합니다.
※ 기타 환경은 아래 내용을 참조하십시오.
https://github.com/tesseract-ocr/tesseract/wiki
2. PyOCR
① PyOCR 설치
다음 명령만 실행합니다.
sudo pip3 install pyocr
환경 구축은 이것으로 끝난다.간단하네.
실행하다
집행여기.의 샘플.(※ 조금 만졌다.)
example.pyfrom PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
txt = tool.image_to_string(
Image.open("[ファイル名]"),
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )
①Wikipedia
실행 결과出 典 : フ リ ー 百 科 事 典 『 ウ ィ キ ペ デ ィ ア (Wikipedia) 』
OCR
・ 光 学 文 字 認 識 (Optical Character Recognition) の 略 称 。
・ 光 学 式 文 字 読 取 装 置 (Optical Character Reader) の 略 称 。
・ オ イ ル 循 環 率 (Oil Circulation Ratio) の 略 称 。
・ 過 電 流 継 電 器 (Over Current Relay) の 略 称 。
こ の ペ ー ジ は 曖 昧 さ 回 避 の た め の ペ ー ジ で す 。 一 つ の 語 句 が 複 数 の 意 味 ・ 職 能 を 有 す る 場 合 の 水 先 案 内 の た め に 、 異 な る 用 法 を 一 覧 に し て あ り ま す 。 お 探 し の 用 語 に 一 番 近 い 記 事 を
選 ん で 下 さ い 。 こ の ペ ー ジ ヘ リ ン ク し て い る ペ ー ジ を 見 つ け た ら 、 リ ン ク を 適 切 な 項 目 に 張 り 替 え て 下 さ い 。
カ テ ゴ リ : 暖 昧 さ 回 避
제목의'OCR'은 읽지 못했지만 대체로 완벽했다.
②야후뉴스
실행 결과ニ ュ ー ス | 細 津 _ エ ン タ メ レ ス ポ ー
①⑧ 時 ⑥ 分 更 新
・ 細 野 氏 の 処 遇 岸 田 氏 が 不 快 感 國 四 謬 璽以′ 和
・ 小 ④ 死 亡 第 三 者 委 を 設 置 へ 団 E ⑤ ョ ~ 。
・③① 日 は 広 く 雨 予 報 都 心 で 雪 か 団 G ド 】
・ 広 河 隆 一 氏 か ら 性 袖 害 新 告 発 國 ` き て ま す 」
・ パ チ ン コ 依 存 ⑤ 社 が 対 策 表 明 団 (TE 雷睾豊冑4時鵠分配信
・ ピ ー ス ポ ー ト 豪 華 造 船 が 頓 挫 ⑪
・ VG 井 ノ 原 提 案 ア プ リ が 話 題 団
・ 亡 き 有 賀 さ つ き さ ん 父 の 後 悔 國
も っ と 見 る ト ピ ッ ク ス 一 覧
숫자를 ◯으로 묶다.(규격이 있는 것 같다)
또 카메라의 그림 문자 등도 문자로 오인했다.
③ 사진에서 읽기
실행 결과ョ の ス キ ト
辻 点 花 付
紅 余 化 伝
RO 〇 YAL 〟
M ま EL K T イ EA
0 :鯱翼 ① ダ
ロ イ ヤ ル ミ ル ク デ ー 一 ー
繁 勇 表 示 (①00ml 当 た り ノ
① げ ー③⑥kcaL た ん ば く < 質 0Gg、 胆 賀
為 航 化 物 ⑥.⑥⑧ 食 報 柑 き 見 0
② ` 沈 殿 し た り 固 ま っ た り す る `
⑳ 謬 あ り ま せ ん 。g r 声 け て く だ さ い 映 種 城 捨 畜
S 格 a
`幟鱒鱒州 ′~
A ①
도대체 정밀도가 떨어진 건가..
이해하기 어려우니 그림의 어느 부분이 문자인지 확인해 보세요.
경품(WordBox)
상자에 단어로 인식되는 영역을 반환할 수 있으므로 OpenCV를 사용하여 사각형을 그립니다.
코드는 아래 보도를 참고하였다.
파이톤으로 일본어 OCR 할 때의 노트.
example.pyimport pyocr
import pyocr.builders
import cv2
from PIL import Image
import sys
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
tool = tools[0]
res = tool.image_to_string(Image.open("[ファイル名]"),
lang="jpn",
builder=pyocr.builders.WordBoxBuilder(tesseract_layout=6))
out = cv2.imread("[ファイル名]")
for d in res:
print(d.content)
print(d.position)
cv2.rectangle(out_resize, d.position[0], d.position[1], (0, 0, 255), 2)
cv2.imshow("img",out)
cv2.waitKey(0)
cv2.destroyAllWindows()
도안과 문자를 한 문자로 오인하다.
이 때문에 Tesseract OCR(트레이닝 데이터)은 문자의 기울기와 실진을 잘하지 못한다.
무늬 등에 대한 오인식도 많기 때문에 실제 응용에서는 다양한 제한이 필요하다.
하지만 식욕을 돋우는 소스로 그 정확도는 파격적이니 꼭 시도해 보세요!
참조 링크
파이톤으로 일본어 OCR 할 때의 노트.
[PyOCR] 이미지에서 일본어 문자 데이터 추출
Reference
이 문제에 관하여(Tesseract+PyOCR로 간이 OCR 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nabechi6011/items/3a367ca94dbd208efcc7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
집행여기.의 샘플.(※ 조금 만졌다.)
example.py
from PIL import Image
import sys
import pyocr
import pyocr.builders
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
txt = tool.image_to_string(
Image.open("[ファイル名]"),
lang="jpn",
builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )
①Wikipedia
실행 결과
出 典 : フ リ ー 百 科 事 典 『 ウ ィ キ ペ デ ィ ア (Wikipedia) 』
OCR
・ 光 学 文 字 認 識 (Optical Character Recognition) の 略 称 。
・ 光 学 式 文 字 読 取 装 置 (Optical Character Reader) の 略 称 。
・ オ イ ル 循 環 率 (Oil Circulation Ratio) の 略 称 。
・ 過 電 流 継 電 器 (Over Current Relay) の 略 称 。
こ の ペ ー ジ は 曖 昧 さ 回 避 の た め の ペ ー ジ で す 。 一 つ の 語 句 が 複 数 の 意 味 ・ 職 能 を 有 す る 場 合 の 水 先 案 内 の た め に 、 異 な る 用 法 を 一 覧 に し て あ り ま す 。 お 探 し の 用 語 に 一 番 近 い 記 事 を
選 ん で 下 さ い 。 こ の ペ ー ジ ヘ リ ン ク し て い る ペ ー ジ を 見 つ け た ら 、 リ ン ク を 適 切 な 項 目 に 張 り 替 え て 下 さ い 。
カ テ ゴ リ : 暖 昧 さ 回 避
제목의'OCR'은 읽지 못했지만 대체로 완벽했다.②야후뉴스
실행 결과
ニ ュ ー ス | 細 津 _ エ ン タ メ レ ス ポ ー
①⑧ 時 ⑥ 分 更 新
・ 細 野 氏 の 処 遇 岸 田 氏 が 不 快 感 國 四 謬 璽以′ 和
・ 小 ④ 死 亡 第 三 者 委 を 設 置 へ 団 E ⑤ ョ ~ 。
・③① 日 は 広 く 雨 予 報 都 心 で 雪 か 団 G ド 】
・ 広 河 隆 一 氏 か ら 性 袖 害 新 告 発 國 ` き て ま す 」
・ パ チ ン コ 依 存 ⑤ 社 が 対 策 表 明 団 (TE 雷睾豊冑4時鵠分配信
・ ピ ー ス ポ ー ト 豪 華 造 船 が 頓 挫 ⑪
・ VG 井 ノ 原 提 案 ア プ リ が 話 題 団
・ 亡 き 有 賀 さ つ き さ ん 父 の 後 悔 國
も っ と 見 る ト ピ ッ ク ス 一 覧
숫자를 ◯으로 묶다.(규격이 있는 것 같다)또 카메라의 그림 문자 등도 문자로 오인했다.
③ 사진에서 읽기
실행 결과
ョ の ス キ ト
辻 点 花 付
紅 余 化 伝
RO 〇 YAL 〟
M ま EL K T イ EA
0 :鯱翼 ① ダ
ロ イ ヤ ル ミ ル ク デ ー 一 ー
繁 勇 表 示 (①00ml 当 た り ノ
① げ ー③⑥kcaL た ん ば く < 質 0Gg、 胆 賀
為 航 化 物 ⑥.⑥⑧ 食 報 柑 き 見 0
② ` 沈 殿 し た り 固 ま っ た り す る `
⑳ 謬 あ り ま せ ん 。g r 声 け て く だ さ い 映 種 城 捨 畜
S 格 a
`幟鱒鱒州 ′~
A ①
도대체 정밀도가 떨어진 건가..이해하기 어려우니 그림의 어느 부분이 문자인지 확인해 보세요.
경품(WordBox)
상자에 단어로 인식되는 영역을 반환할 수 있으므로 OpenCV를 사용하여 사각형을 그립니다.
코드는 아래 보도를 참고하였다.
파이톤으로 일본어 OCR 할 때의 노트.
example.pyimport pyocr
import pyocr.builders
import cv2
from PIL import Image
import sys
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
tool = tools[0]
res = tool.image_to_string(Image.open("[ファイル名]"),
lang="jpn",
builder=pyocr.builders.WordBoxBuilder(tesseract_layout=6))
out = cv2.imread("[ファイル名]")
for d in res:
print(d.content)
print(d.position)
cv2.rectangle(out_resize, d.position[0], d.position[1], (0, 0, 255), 2)
cv2.imshow("img",out)
cv2.waitKey(0)
cv2.destroyAllWindows()
도안과 문자를 한 문자로 오인하다.
이 때문에 Tesseract OCR(트레이닝 데이터)은 문자의 기울기와 실진을 잘하지 못한다.
무늬 등에 대한 오인식도 많기 때문에 실제 응용에서는 다양한 제한이 필요하다.
하지만 식욕을 돋우는 소스로 그 정확도는 파격적이니 꼭 시도해 보세요!
참조 링크
파이톤으로 일본어 OCR 할 때의 노트.
[PyOCR] 이미지에서 일본어 문자 데이터 추출
Reference
이 문제에 관하여(Tesseract+PyOCR로 간이 OCR 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nabechi6011/items/3a367ca94dbd208efcc7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import pyocr
import pyocr.builders
import cv2
from PIL import Image
import sys
tools = pyocr.get_available_tools()
if len(tools) == 0:
print("No OCR tool found")
sys.exit(1)
tool = tools[0]
res = tool.image_to_string(Image.open("[ファイル名]"),
lang="jpn",
builder=pyocr.builders.WordBoxBuilder(tesseract_layout=6))
out = cv2.imread("[ファイル名]")
for d in res:
print(d.content)
print(d.position)
cv2.rectangle(out_resize, d.position[0], d.position[1], (0, 0, 255), 2)
cv2.imshow("img",out)
cv2.waitKey(0)
cv2.destroyAllWindows()
파이톤으로 일본어 OCR 할 때의 노트.
[PyOCR] 이미지에서 일본어 문자 데이터 추출
Reference
이 문제에 관하여(Tesseract+PyOCR로 간이 OCR 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nabechi6011/items/3a367ca94dbd208efcc7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)