Security Image captcha CNN RNN deeplearning

보안 문자 차단기를 구축하는 첫 번째 단계는 예제 보안 문자 이미지를 직접 다운로드하는 것입니다. 아래 그림에서 “Security Image”텍스트 옆에있는 captcha 이미지를 마우스 오른쪽 버튼으로 클릭하면 다음 URL이 표시됩니다.

https://www.e-zpassny.com/vector/jcaptcha.do

복사하는 경우 이 URL을 웹 브라우저에 붙여넣고 새로 고침을 여러 번 누르면 새로 고침 할 때마다 새 보안 문자를 생성하는 동적 프로그램임을 알 수 있습니다. 따라서 예제 보안 문자 이미지를 얻으려면이 이미지를 수백 번 요청하고 결과 이미지를 저장해야합니다.

새 보안 문자 이미지를 자동으로 가져 와서 디스크에 저장하려면 download_images.py를 사용할 수 있습니다.

2 ~ 5 행은 필수 Python 패키지를 가져옵니다. requests 라이브러리는 HTTP 연결 작업을 쉽게 만들어 주며 Python 환경에서 많이 사용됩니다. 시스템에 아직 requests가 설치되어 있지 않은 경우 다음을 통해 설치할 수 있습니다.

그런 다음 8-13 행에서 명령 줄 인수를 구문 분석합니다. 원시 보안 문자 이미지를 저장할 출력 디렉토리의 경로 인 단일 명령 줄 인수 –output이 필요합니다 (나중에 이미지의 각 숫자에 레이블을 지정합니다). 두 번째 옵션 인 –num-images 스위치는 다운로드 할 보안 문자 이미지의 수를 제어합니다. 이 값의 기본값은 총 500 개입니다. 각 보안 문자에 4 자리 숫자가 있으므로이 값 500은 네트워크 훈련에 사용할 수있는 총 500×4 = 2,000 자리 숫자를 제공합니다. 다음 코드 블록은 지금까지 생성 된 총 이미지 수와 함께 다운로드 할 보안 문자 이미지의 URL을 초기화합니다.

이제 captcha 이미지를 다운로드 할 준비가되었습니다.

22 행에서 다운로드하려는 –num-images에 대해 반복을 시작합니다. 25 행에서 이미지 다운로드를 요청합니다. 그런 다음 28-32 행의 디스크에 이미지를 저장합니다. 이미지를 다운로드하는 중에 오류가 발생하면 39 행과 40 행의 try / except 블록이 이를 포착하고 스크립트를 계속할 수 있도록합니다. 마지막으로, 우리가 요청하는 웹 서버에 대한 부하를 줄이기 위해 43 번 줄에 작은 쉬는 모드를 삽입합니다. 다음 명령을 사용하여 download_images.py를 실행할 수 있습니다.

이 스크립트는 (1) 이미지 다운로드를 네트워크에 요청하고 (2) 다운로드 할 때마다 0.1 초의 일시 중지를 삽입했기 때문에 실행하는 데 시간이 걸립니다. 프로그램 실행이 완료되면 다운로드 디렉토리가 이미지로 채워진 것을 볼 수 있습니다.​

그러나 이것은 원시 보안 문자 이미지 일뿐입니다. 훈련 세트를 만들기 위해 보안 문자의 각 숫자를 추출하고 레이블을 지정해야합니다. 이를 달성하기 위해 우리는 약간의 OpenCV 및 이미지 처리 기술을 사용하여 작업을 더 쉽게 만들 것입니다