우리는 먼저 가장 간단한 인증 코드, 즉 그래픽 인증 코드를 식별한다. 이런 검증 코드는 가장 먼저 나타났으며, 지금도 흔히 볼 수 있는데, 일반적으로 4 자리 글자나 숫자로 구성되어 있다. 예를 들어, 중국 지식 네트워크의 등록 페이지에는 다음과 같은 유사한 인증 코드가 있습니다:
양식의 마지막 항목은 그래픽 인증 코드입니다. 등록을 완료하려면 그림의 문자를 완전히 정확하게 입력해야 합니다.
인증 코드에 대한 자세한 내용은 다음 웹 문장
를 참조하십시오파이썬 3 파충류 고급: 그래픽 인증 코드 식별
파이썬 3 파충류 고급: 극한 슬라이딩 확인 코드 식별
Python3 크롤러 고급: 포인트 접점 선택 확인 코드 식별
파이썬 3 파충류 고급: 웨이보 궁전 확인 코드 식별
이 섹션의 목표는 지식 네트워크의 인증 코드를 예로 들어 OCR 기술을 사용하여 그래픽 인증 코드를 식별하는 방법을 설명합니다.
준비 작업 인식 그래픽 인증 코드에는 라이브러리 tesserocr 가 필요합니다. 예를 들어, MAC 설치의 경우, MAC 에서는 먼저 Homebrew 를 사용하여 ImageMagick 과 tesseract 라이브러리를 설치하겠습니다. brew install imagemagick brew install tessera CT 다음에 tesserocr 를 설치하면 됩니다. pip3 install tesserocr pillow
유효성 검사 코드 얻기 실험을 용이하게 하기 위해 먼저 유효성 검사 코드의 사진을 로컬에 저장합니다. 개발자 도구를 열고 인증 코드 요소를 찾습니다. 검증 코드 요소는 ser 속성이 CheckCode.aspk 인 그림입니다. 그래서 아래 링크를 직접 열면 확인 코드를 볼 수 있습니다. 마우스 오른쪽 버튼으로 저장하면 code.jpg:
이렇게 하면 테스트 식별을 위한 검증 코드 사진을 얻을 수 있습니다.
관련 권장 사항: 파이썬 자습서
식별 테스트
그런 다음 새 프로젝트를 만들고 프로젝트 루트 아래에 확인 코드 그림을 놓고 tesserocr 라이브러리를 사용하여 확인 코드를 식별합니다. 코드는 다음과 같습니다.
여기서 우리는 tesserocr 의 image_to_text () 메서드를 호출하는 Image 대극을 새로 만들었습니다. 이 Image 오브젝트를 전달하면 인식이 완료되며 구현 프로세스가 간단해져 결과는 다음과 같습니다.
확인 코드 내의 불필요한 선이 그림의 인식을 방해하기 때문에 인식된 결과와 실제 결과가 빗나가는 것을 볼 수 있습니다.
또한 tesserocr 에는 그림 파일을 문자열로 직접 변환하는 보다 간단한 방법이 있습니다. 코드는 다음과 같습니다.
그러나이 방법의 인식 효과는 이전 방법만큼 좋지 않습니다.
인증 코드 처리
위 그림의 경우, 실제로는 완전히 인식되지 않기 때문에 회색조 변환, 이진화 등과 같은 이미지를 더 처리해야 합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 예술명언)
이미지 객체의 convert () 메서드 매개 변수를 l 로 전달하여 그림을 회색 음영 이미지로 변환할 수 있습니다. 코드는 다음과 같습니다.
1 을 전달하면 다음과 같이 그림을 이진화할 수 있습니다.
이진화 임계값을 지정할 수도 있습니다. 위의 방법은 기본 임계값 127 을 사용합니다.
그러나 원본 그림을 직접 변환할 수는 없습니다. 원본 그림을 먼저 그레이스케일 이미지로 변환한 다음 이진화 임계값을 지정합니다. 코드는 다음과 같습니다.
여기서 threshold 변수는 이진화 임계값을 나타내고 임계값은 160 으로 설정한 다음 결과를 살펴보겠습니다.
우리는 현재의 큐알(QR)코드 을 볼 수 있습니다, 그것은 우리가 식별하는 것이 더 편리합니다; 그래서 방해 하는 일부 사진의 경우, 우리는 이미지 인식의 정확성을 향상 시킬 수 있는 몇 가지 회색 음영과 이진화 처리 않습니다.