Linux의 명령 줄에서 OCR을 사용하는 방법은 무엇입니까?


30

수 천 페이지의 스캔 된 책 페이지가 있습니다. 각 페이지는 JPG로 개별적으로 저장됩니다. 글은 분명하지만 글꼴은 다양하며 페이지에는 그림과 삽화가 들어 있습니다.

각 JPG 파일에 나타나는 모든 단어 목록을 만들어야합니다. 나타나는 단어가 나열된 이미지를 스캔하기위한 명령 줄 도구가 있습니까? 완벽한 스캔이 필요하지 않으며 추정치 일뿐입니다.


github.com/tesseract-ocr/tesseract/wiki/Command-Line-Usage-이것은 ocrmypdf 의 엔진이며 일반적으로 설정 단계가 적습니다.
oakad


2
복제는 약간 오래된, 더 새로운 것들이 존재할 수 있습니다. 투표를 열어 두겠습니다.
Archemar

답변:


25

tesseract 는 아마도 가장 많이 사용되는 솔루션 일 것입니다. 대부분의 패키지 리포지토리에서 사용할 수 있습니다 (예 :

sudo apt install tesseract-ocr

와 함께 사용할 수 있습니다

tesseract input.png out.txt

19

설치 imagemagick, pdftotext(명명 된 패키지에 poppler-utils일부 패키지 관리자에서) ocrmypdf . 후자는 빠르며 (ocr은 많은 CPU를 필요로하며 모든 코어를 사용하도록 구성됨) 오픈 소스이며 자주 업데이트되는 OCR 소프트웨어입니다. 이 방법은 실제로 단어에 레이블을 지정하는 대신 각 단어에 문자열을 할당하려고 시도 할 때 과도하게 사용되지만, 오픈 소스 OCR 소프트웨어를 일반적으로 사용하기에 좋고 쉬운 방법을 찾는 데 많은 어려움을 겪었습니다. 그런 다음 모든 JPG를 저장 한 디렉토리에서 다음을 수행하십시오.

$ convert *.jpg pictures.pdf
$ ocrmypdf pictures.pdf scanned.pdf
$ pdftotext scanned.pdf scanned.txt
$ wc -w scanned.txt

2
다음으로, 아래에 언급 된 Tesseract를 사용합니다.
exic

ocrmypdf내 하루를 만들어
매일 우주 비행사

pdf로 먼저 변환해야한다는 생각은 바보입니다. 왜 jpg 파일을 입력하고 원시 텍스트를 가져올 수 없습니까?
Michael

bash 파일을 사용하여 모든 명령 행을 수행 할 수 있습니다.
projetmbc

7

업 스케일 이미지 file.png 480 %, 그레이 스케일로 변경, 흰색으로 백필, 선명하게 한 다음 테서 랙트 OCR을 사용하여 추출합니다. 매우 큰 글꼴을 제외하고 검정 바탕에 흰색을 제외하고는 대부분의 경우 잘 작동합니다. 글꼴이 매우 큰 경우 고급 200 % 또는 300 % 만 가능합니다.

 convert -colorspace gray -fill white  -resize 480%  -sharpen 0x1  file.png file.jpg
 tesseract file.jpg file

결과는 file.txt에 있습니다.


이것은 작은 글꼴 크기의 영어가 아닌 매우 작은 텍스트 조각으로 저에게 효과적이었습니다. 놀랄 만한.
Avio


0

TL; DR

for i in /path_to/*.jpg;do ./myocr.sh $i $(basename $i .jpg);done

#!/bin/bash
# PROGRAM=myocr.sh
if [ "$1" ] && [ -e "$1" ]; then
  TMPF=$(mktemp myocr.sh.XXXXXXXX.tif)
  DEST="$2"
  if [ ! "$DEST" ]; then
    DEST="${1%.*}.txt"
    if [ -e "$DEST" ]; then
      echo "$DEST already exists; please provide a new textfile name" >&2
      exit 1
    fi
  fi
  /usr/bin/convert "$1" -colorspace Gray -depth 8 -resample 200x200 -flatten -alpha Off $TMPF \
  && /usr/bin/tesseract $TMPF "$DEST"
  EX=$?
  /bin/rm -f $TMPF
  [ $EX -eq 0 ] && [ "$TERM" ] && echo "created $DEST"
  exit $EX
else
  echo "Usage: $0 imagefile [textfile]" >&2
  echo " creates a plain text file with the text found in imagefile" >&2
  exit 1
fi

출처 : https://help.ubuntu.com/community/OCR

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.