python 이미지 인식 및 문자 추출 방법

머리말
python 이미지 인식 은 일반적으로 tesseract 를 바탕 으로 파충류 에서 인증 코드 를 처리 하여 광범 위 하 게 사용 합 니 다.
설치 하 다.
설치 튜 토리 얼 네트워크 는 대부분 차이 가 많 지 않 습 니 다.윈도 우 는 확실히 번 거 롭 고 각종 경로,환경 변수,심지어 Liux 와 다른 경로 구분자 와 관련 되 기 때문에 이곳 의 설 치 는 Centos 7 을 바탕 으로 합 니 다.
1.설치 의존

yum install -y automake autoconf libtool gcc gcc-c++
2.leptonica 설치
Leptonica 는 주로 이미지 처리 와 이미지 분석 에 사 용 됩 니 다.
원칙적으로 모든 라 이브 러 리 파일 은 yum 으로 직접 설치 할 수 있 으 며,구체 적 인 버 전 을 원한 다 면 공식 소스 에 가서 해당 버 전 을 다운로드 한 후 대응 하 는 방식 으로 컴 파일 할 수 있다.

wget http://www.leptonica.org/source/leptonica-1.74.4.tar.gz
tar -zxvf leptonica-1.74.4.tar.gz
cd leptonica-1.74.4/
./configure
make && make install
3.tesseract 설치
다른 각 버 전 은 이곳 에서 다운로드 하고 자체 컴 파일 할 수 있 으 며 직접 사용 하 는 파일 도 제공 합 니 다.

yum install tesseract
4.설치 검증

tesseract --version
5.언어 팩 다운로드
tesseract-ocr/tessdata해당 언어 팩 을 다운로드 한 후 tessdata 디 렉 터 리 로 이동 하면 whereis tesseract 로 구체 적 인 디 렉 터 리 를 볼 수 있 습 니 다.저 는/usr/share/tesseract/tessdata/mv*.traineddata/usr/local/share/tessdata/
6.현재 다운로드 한 언어 보기
tesseract --list-langs
쓰다

# tesseract
Usage:
 tesseract --help | --help-psm | --help-oem | --version
 tesseract --list-langs [--tessdata-dir PATH]
 tesseract --print-parameters [options...] [configfile...]
 tesseract imagename|stdin outputbase|stdout [options...] [configfile...]

OCR options:
 --tessdata-dir PATH  Specify the location of tessdata path.
 --user-words PATH   Specify the location of user words file.
 --user-patterns PATH Specify the location of user patterns file.
 -l LANG[+LANG]    Specify language(s) used for OCR.
 -c VAR=VALUE     Set value for config variables.
            Multiple -c arguments are allowed.
 --psm NUM       Specify page segmentation mode.
 --oem NUM       Specify OCR Engine mode.
NOTE: These options must occur before any configfile.
문법

tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
이미지 이름
  • outputbase:출력 을 지정 합 니 다.파일 에 저장 하지 않 고 직접 출력 하려 면 stdout 을 사용 하 십시오.그렇지 않 으 면 이 매개 변 수 는 결 과 를 저장 하 는 파일 의 접두사 가 됩 니 다
  • -l 지 정 된 언어 파일 은 기본적으로 영문 을 사용 합 니 다
  • tesseract--print-parameters:더 많은 매개 변수 정 보 를 봅 니 다
  • -c 를 사용 하여 단일 매개 변수의 값 을 지정 하거나 설정 파일 을 명령 마지막 에 기록 합 니 다(여러 설정 파일 지원)
  • psm 이미지 인식 방식
    0:방향 지정 스 크 립 트 모니터링(OSD)
    1:OSD 자동 페이지 나 누 기 사용
    2:자동 으로 페이지 를 나 누 지만 OSD 나 OCR(Optical Character Recognition,광학 문자 인식)을 사용 하지 않 습 니 다.
    3:자동 으로 페이지 를 나 누 지만 OSD 를 사용 하지 않 았 습 니 다(기본 값)
    4:가 변 크기 의 텍스트 열 을 가정 합 니 다.
    5:텍스트 의 단일 블록 을 수직 으로 정렬 한다 고 가정 합 니 다.
    6:통 일 된 텍스트 블록 을 가정 합 니 다.
    7:그림 을 하나의 텍스트 줄 로 봅 니 다.
    8:그림 을 하나의 단어 로 봅 니 다.
    9:그림 을 원 의 단일 단어 로 봅 니 다.
    10:그림 을 단일 문자 로 봅 니 다.
    python 에서 사용
    Tesseract 설치 가 완료 되면 Python 에서 편리 하 게 호출 될 수 있 지만 pillow 와 pytesseract 의 지원 이 필요 합 니 다.
    python 에서 변환
    
    image_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING)
  • image Object,Tesseract 가 처리 한 이미지 의 PIL Image/NumPy 배열
  • lang String,Tesseract 언어 코드 문자열
  • config String,다른 설정 문자열,예 를 들 어 config='--psm 6'
  • 언어 파일 을 중첩 할 수 있 고'+'로 분리 할 수 있 습 니 다
  • 4.567917.우 리 는 여기 서 tessdata 경 로 를 설정 할 수 있 습 니 다.config 를 따라 가면 됩 니 다더 많은 설정 은 config 와 psm 를 포함 하여 tesseract 와 유사 합 니 다실례:
    프로 세 스:그림 을 열 고 설정 하고 변환 할 수 있 습 니 다.Image 의 open 또는 cv2 의 imread 를 통 해 그림 을 열 수 있 습 니 다.그 다음 에 그림 에 대해 대비 도 를 높이 고 소음 을 낮 추 는 등 처리 하면 효과 가 좋 습 니 다.
    
    from PIL import Image
    import pytesseract
    class Languages:
      CHS = 'chi_sim'
      ENG = 'eng'
    def img_to_str(image_path, lang=Languages.ENG):
      return pytesseract.image_to_string(Image.open(image_path), lang)
    print(img_to_str('pic/numu.png', lang=Languages.ENG))
    print(img_to_str('pic/pro.png', lang=Languages.ENG))


    총결산
    간단 한 텍스트 인식 효 과 는 좋 지만 여러 줄,기호 등 을 디자인 하면 식별 효과 가 좋 지 않다.정확 도 는 문자 창고 에 대한 훈련 을 통 해 원 하 는 효 과 를 얻 을 수 있다.그 후에 얻 은 텍스트 에 대해 re 등 각종 라 이브 러 리 를 이용 하여 조작 할 수 있 는데 사실은 응용 이 매우 광범 위 하 다.2.그러나 인증 코드 에 있어 서 는 효과 가 좋 습 니 다.인증 코드 는 tesserocr 도 비교 적 입 니 다.
    중국 어 를 식별 하 는 데 인 코딩 오류 가 발생 할 수 있 습 니 다.이것 도 식별 상의 구멍 중 하나 입 니 다.인터넷 에서 큰 사람들 이 말 하 는 텍스트 를 바 꾸 는 인 코딩 은 문 제 를 해결 하지 못 할 것 같 기 때문에 긴 텍스트 이미지 처리 에 대해 직접 전환 하 는 것 을 권장 하지 않 습 니 다.
    그림 과 글 처리 도 각 플랫폼 의 API 를 참고 할 수 있 고 바 이 두,텐 센트,미 단 이 모두 지원 합 니 다.
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기