사용자 도구

사이트 도구


pdf:ocrmypdf

ocrmypdf

설치

homebrew

  • linuxbrew 로 가장 최신버전 설치 가능
brew install ocrmypdf tesseract tesseract-lang

Ubuntu

sudo apt install ocrmypdf  tesseract-ocr-kor tesseract-ocr-kor-vert gscan2pdf

docker

사용

ocrmypdf -l eng+kor --jobs 4 <원본.pdf> <OCR인식결과.pdf>
 
# 이미지 보정 기능 등 추가
 
ocrmypdf -l kor+eng \
    --deskew # 비틀림 보정
    --clean # 배경 깨끗하게 
    --optimize 3  # PDF 용량 최적화. 최적화 안하려면 0
    <원본.pdf>
    <OCR인식결과.pdf>
 
# OCR 재실행. 이미 OCR 된 파일에 재실행. 최적화 등은 수행하지 않음.
ocrmypdf -l eng --redo-ocr ... input.pdf output.pdf
 
# OCR 없이 PDF 이미지 최적화만 실행
ocrmypdf --tesseract-timeout=0 --optimize 3 --skip-text input.pdf output.pdf

인식률 높이기

  • --deskew : 비틀어진 이미지를 똑바로 세워주고 그로인해 인식률 높아짐. 무조건 해주는게 좋다.
  • --clean : unpaper 를 이용해 책 스캔된것을 깨끗하게 보정. 그러나 OCR 인식에서만 해당 이미지를 사용하고, 실제 출력에서는 원본 대로.
  • Tesseract OCR가 여러 언어를 동시에 인식하면 인식률이 떨어진다는 얘기가 있으나, 그렇다고 ocrmypdf 로 언어를 따로따로 두번 인식시키면 앞서 인식한 언어 데이터는 사라지게 되므로 한 번에 모든 언어를 처리할 것.

PDF 용량 최적화

  • --optimize 숫자
  • 0 : 최적화 안함
  • 1 : 원본 손상없이 최적화
  • 2, 3 : 원본 손상하면서 최적화 최대한
  • 아래 docker 이미지를 통한 스크립트로 하면 jbig2 라이브러리 설치 없이 처리 가능
#!/usr/bin/env bash
# 사용법 : pdf-opt.sh 원본.pdf
# 결과는 원본.opt.pdf
# alpine 버전은 버그가 많았음.
FILE_NAME_ONLY=`basename "$1" .pdf`
OPTIMIZED_NAME="${FILE_NAME_ONLY}.opt.pdf"
 
docker run --rm -i --user "$(id -u):$(id -g)" --workdir /data -v "$PWD:/data" \
  jbarlow83/ocrmypdf --tesseract-timeout=0 --optimize 3 --skip-text \
  "/data/$1" "/data/$OPTIMIZED_NAME"
  • 현재 디렉토리에 있는 것만 처리해야함.

참조

pdf/ocrmypdf.txt · 마지막으로 수정됨: 2024/01/26 16:15 저자 kwon37xi