Phân loại và nhận dạng tự động các ký tự trên ảnh captcha

61 119 1
Phân loại và nhận dạng tự động các ký tự trên ảnh captcha

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA TOÁN-TIN ———————o0o——————– LUẬN VĂN THẠC SĨ PHÂN LOẠI VÀ NHẬN DẠNG TỰ ĐỘNG CÁC KÝ TỰ TRÊN ẢNH CAPCHA Chuyên ngành: Cơ sở toán cho tin học Người hướng dẫn: TS Đỗ Thanh Hà Học viên: Nguyễn Duy Anh HÀ NỘI, 5/2019 Mục lục Một số kí hiệu viết tắt iii Bảng giải thuật ngữ iv Danh sách hình vẽ iv Danh sách bảng vi Lời nói đầu viii Giới thiệu captcha 1.1 Định nghĩa captcha 1.2 Lịch sử ứng dụng 1.2.1 1.2.2 Lịch sử Ứng dụng 2 1.3 Quá trình sinh captcha 1.4 Các phương pháp nhận dạng captcha tự động Nhận dạng tự động captcha sử dụng CNN 2.1 2.2 2.3 2.4 Phép tốn hình thái 2.1.1 Phép toán giãn nở 11 2.1.2 Phép toán co 12 Lọc ảnh 13 2.2.1 2.2.2 Nguyên tắc chung lọc ảnh Phép lọc Gauss 13 14 2.2.3 Phép lọc trung vị ảnh xám 15 Lý thuyết tích chập mạng tích chập (CNN) 16 2.3.1 2.3.2 Tích chập Mạng tích chập (CNN) 16 20 Nhận dạng captcha sử dụng CNN 27 2.4.1 27 Phương pháp tách nhận dạng ký tự i Luận văn thạc sĩ 2.4.2 Phân loại nhận dạng tự động ký tự ảnh captcha Phương pháp nhận dạng toàn ký tự Kết thực nghiệm 3.1 3.2 3.3 29 30 Bộ liệu sử dụng Mơ hình sử dụng tham số 30 34 3.2.1 Tham số mơ hình 34 3.2.2 Độ đo 35 Kết thực nghiệm 3.3.1 Ngơn ngữ lập trình, thư viện 35 35 3.3.2 Kết đạt với mẫu liệu 37 3.3.3 Mơ tả q trình thực nghiệm 39 3.3.4 So sánh kết thực nghiệm 46 Kết luận 48 Tài liệu tham khảo 49 Nguyễn Duy Anh ii Cơ sở toán cho tin học Một số kí hiệu viết tắt AF Activation function Hàm kích hoạt BG Background ảnh nhị phân CAPTCHA Completely Automated Public Turing test to tell Computers and Humans Apart CMU Carnegie Mellon University Đại học Carnegie Mellon FC Fully connected Lớp kết nối đầy đủ FG Foreground ảnh nhị phân MIT Massachusetts Institute of Technology Viện công nghệ Massachusetts KQT Kết phương pháp tách nhận dạng ký tự KQTB Kết phương pháp nhận dạng tồn ký tự khơng thực bước tiền xử lý KQTB + TXL Kết phương pháp nhận dạng toàn ký tự có thực bước tiền xử lý OCR Optical Character Recognition Nhận dạng ký tự quang học PIL Python Imaging Library ReLU Rectified Linear Unit Tinh chỉnh đơn vị tuyến tính iii Bảng giải thuật ngữ Convolution Lớp tích chập Dilation Phép giãn nở Erosion Phép co Grayscale image Ảnh xám Kernel Ma trận lọc (cửa sổ chập) Mathematic morphology Phép tốn hình thái Pool Lớp tổng hợp đơn giản hóa thơng tin đầu Structuring element Phần tử cấu trúc iv Danh sách hình vẽ 1.1 Một số mẫu captcha 1.2 Một số mẫu captcha tạo nhiễu phương pháp phối hợp ngẫu nhiên nhiều loại nhiễu khác 1.3 Một số kết công captcha 2003-2008 tổng hợp tài liệu [10] 1.4 Một số kết công captcha 2009-2016 tổng hợp tài liệu [10] 2.1 Biểu diễn ảnh số, ô vuông điểm ảnh 2.2 Một số dạng SE 10 2.3 Ví dụ SE phản chiếu 10 2.4 2.5 Ví dụ phép giãn nở với ảnh I phần tử cấu trúc Z Ví dụ phép co với ảnh I thành phần cấu trúc Z 11 12 2.6 Minh họa lọc ảnh 13 2.7 Định nghĩa ảnh xám I Kernel K 13 2.8 2.9 Kết tính phép lọc trung bình ảnh I ảnh D Minh họa kernel Gausian blur 14 15 2.10 Kết tính phép lọc trung vị vùng cục 16 2.11 Kết lọc ảnh lọc Gauss lọc trung vị 16 2.12 Ảnh xám I, ảnh I mở rộng biên xung quanh I kernel K 2.13 Nhân tích chập điểm I11 với K theo công thức (2.13) cho điểm r11 17 17 2.14 Lấy ma trận hàng xóm điểm I22 nhân tích chập với K cho điểm r22 18 2.15 ảnh gốc 19 2.16 Nhân tích chập với kernel K1 rõ cạnh theo chiều ngang 2.17 Nhân tích chập với kernel K2 rõ cạnh theo chiều dọc 19 19 2.18 Minh họa mơ hình CNN để nhận dạng ký tự [26] 21 2.19 Minh họa bước tính tích chập [6] 22 2.20 Minh họa max pooling 2.21 Minh họa Average pooling 25 26 2.22 Hai cách tiếp cận để nhận dạng captcha CNN 27 2.23 Một số ví dụ tách ký tự khỏi ảnh 28 2.24 Ví dụ tập ảnh kí tự cắt xếp theo thư mục 28 v Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha 2.25 Minh họa bước lấy đặc trưng ký tự captcha qua lớp tích chập 2.26 Ví dụ số kết tiền xử lý 28 29 2.27 Minh họa bước lấy đặc trưng ảnh captcha qua lớp tích chập 29 3.1 3.2 Một số mẫu liệu liệu Dataset-1 Kí tự W Q bị dính với 30 31 3.3 Một số mẫu liệu Dataset-2 31 3.4 Hai loại nhiễu captcha dùng Dataset-2 31 3.5 3.6 Một số mẫu captcha liệu Dataset-3 Một số mẫu captcha liệu Dataset-4 32 32 3.7 Một số mẫu captcha liệu Dataset-5 33 3.8 Giãn nở ký tự captcha để dễ phát vùng liên thông 39 3.9 Phát thành phần liên thông 3.10 Một mẫu captcha có ký tự dính liền 39 40 3.11 Vùng nhận dạng liên tục nhận ký tự vào ảnh cắt, chưa tốt 40 3.12 Kết sau dùng thủ thuật cắt đôi vùng nhận ký tự liền 40 3.13 kiểu liệu liệu Dataset-2 3.14 Kết lọc ảnh với loại liệu 41 41 3.15 Kết tách ngưỡng nhị phân với loại liệu 41 3.16 Kết lọc thành phần kết nối với loại liệu 42 3.17 Kết tách ký tự với loại liệu 3.18 Minh họa quy trình tách ký tự 42 43 3.19 Một mẫu tách chưa tốt 43 3.20 Kết xử lý ảnh bị cắt lệch 43 3.21 Mẫu liệu minh họa Dataset-3 Dataset-4 3.22 Kết tiền xử lý mẫu liệu Dataset-3 Dataset-4 44 44 3.23 mẫu captcha minh họa quy trình thực nghiệm 45 3.24 Captcha chuyển sang ảnh xám 45 3.25 Captcha chuyển sang ảnh xám 3.26 Captcha sau bước xử lý cuối 45 45 Nguyễn Duy Anh vi Cơ sở toán cho tin học Danh sách bảng 3.1 Các tham số mạng CNN dùng thực nghiệm 34 3.2 3.3 Bảng so sánh kết thực nghiệm liệu Dataset-1 với Dataset-2 Bảng so sánh kết thực nghiệm liệu Dataset-3, Dataset-4 46 Dataset-5 46 Bảng so sánh kết thực nghiệm tổng quan liệu 47 3.4 vii Lời nói đầu Để hồn thành luận văn thạc sĩ q trình đầy khó khăn thử thách học tập nghiên cứu trường Đại học Khoa học Tự nhiên Để có thành ngày hơm nay, ngồi nỗ lực thân, không nhắc tới động viên, giúp đỡ thầy, cô giáo, bạn bè người thân gia đình Em xin chân thành cảm ơn TS Đỗ Thanh Hà cán giảng viên Trường Đại học Khoa học Tự nhiên - Đại học Quốc gia Hà Nội tận tình giúp đỡ em chuyên môn, nghiên cứu định hướng phát triển suốt trình làm luận văn lẫn phát triển tương lai Em xin chân thành cảm ơn thầy cô giáo nhà trường, đặc biệt thầy khoa Tốn - Cơ - Tin học nhiệt tình giảng dạy giúp em trang bị kiến thức tảng cần thiết để phát triển thân đường tương lai Tuy nhiên kiến thức chun mơn hạn chế thân thiếu nhiều kinh nghiệm thực tiễn nên nội dung luận văn không tránh khỏi thiếu sót, em mong nhận góp ý bảo q thầy để hồn thiện luận văn kiến thức thân Em xin chân thành cảm ơn! Hà Nội,ngày 19 tháng năm 2019 Học viên cao học Nguyễn Duy Anh viii Chương Giới thiệu captcha Trong thời đại công nghệ đa số người dùng sử dụng máy tính quen với việc sử dụng captcha Captcha gặp đâu mơi trường internet với mục đích phân biệt máy tính với người để chống lại hình thức spam Captcha có nhiều loại: âm thanh, đánh tích, xếp hình ảnh hình ảnh ký tự bị làm nhiễu Chương tập trung giới thiệu số vấn đề captcha dạng hình ảnh ký tự bị làm nhiễu 1.1 Định nghĩa captcha Định nghĩa 1.1.1 Một captcha [5] loại kiểm thử dạng hỏi đáp dùng máy tính để xác định xem người dùng có phải người hay khơng "captcha" chữ viết tắt "Completely Automated Public Turing test to tell Computers and Humans Apart" (Phép thử Turing công cộng hồn tồn tự động để phân biệt máy tính với người) Đây q trình máy tính (máy chủ) yêu cầu người dùng hoàn tất kiểm tra đơn giản mà máy tính dễ dàng tạo đánh giá, tự giải Vì máy tính khó giải captcha, người dùng nhập vào lời giải xem người Một hệ thống captcha dạng kiểm thử tạo tự động thỏa mãn điều kiện sau: Các máy tính khơng thể giải cách xác Đa số người giải Người cơng biết trước kiểu captcha Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Dataset-3 a Tập huấn luyện: 99225 mẫu b Tập kiểm tra: 2201 mẫu Bộ liệu Dataset-3 với bị làm nhiễu gạch ngang đậm ngẫu nhiên thường kéo dài qua chuỗi kí tự captcha làm liền mạch kí tự gây khó khăn nhiều sử dụng phương pháp tách chữ Dataset-1 Dataset-2.Do để nhận dạng tự động liệu tiếp cận theo phương pháp nhận dạng toàn ký tự ảnh đem lại hiệu đáng kể so với phương pháp tách ký tự thông qua thực nghiệm Kết độ đọ theo công thức (3.1) với kết trung bình lần đo 86% Dataset-4 a Tập huấn luyện: 9800 mẫu b Tập kiểm tra: 200 mẫu Bộ liệu Dataset-4 nâng cấp độ khó kí tự Dataset-3 với kí tự làm đậm dính với nhiều hơn, bên cạnh kí tự làm méo đường gạch ngang ngẫu nhiên bị làm méo làm cho lượng thông tin nhiễu bên ảnh captcha tăng lên nhiều Với lưỡng liệu tập huấn luyện 1/10 lượng liệu tập huấn luyện Dataset-3 trình thưc nghiệm cho độ đo theo cơng thức (3.1) với kết trung bình lần đo 39%, thấp nhiều so với liệu Dataset-3 Dataset-5 a Tập huấn luyện: 13300 mẫu b Tập kiểm tra: 700 mẫu Bộ liệu Dataset-5 ảnh màu đặc biệt kí tự ảnh lại có độ đậm nhạt khác nên bước tiền xử lý thực nghiệm đưa ảnh ảnh xám chuyển sang ảnh nhị phân mát nhiều thơng tin chí có hình ảnh bị thơng tin hồn tồn ngưỡng chuyển ảnh nhị phân khơng phù hợp Bên cạnh nhiễu phức tạp làm cho mơ hình hoạt động khơng tốt với liệu Dataset-5 Mặc dù bổ sung nhiều bước tiền xử lý giúp cho ảnh captcha dạng dễ nhận dạng kết cuối chưa tốt với độ đọ theo công thức (3.1) với kết trung bình lần đo 1,8% Nguyễn Duy Anh 38 Cơ sở toán cho tin học Luận văn thạc sĩ 3.3.3 Phân loại nhận dạng tự động ký tự ảnh captcha Mô tả trình thực nghiệm Quá trình thực nghiệm số mơ hình phương pháp nhằm chọn phương pháp nhận dạng tối ưu liệu tập trung xây dựng cải thiện theo phương án Do phần mô tả cụ thể bước nhận dạng tối ưu với liệu Các bước thực nghiệm liệu Dataset-1 Do liệu captcha Dataset-1 đơn giản với nhiễu nên cách tiếp cận hợp lý thực tách kí tự hình ảnh sau nhận dạng kí tự trả kết captcha Quá trình thực theo bước sau: Đầu tiên sau đọc xong hình ảnh cần chuyển ảnh sang ảnh nhị phân đen trắng phương pháp OTSU giãn nở ảnh để dễ dàng nhận dạng vùng liên thơng hình 3.8: Hình 3.8: Giãn nở ký tự captcha để dễ phát vùng liên thông Tiếp tìm thành phần liên thơng chứa điểm điểm ảnh màu hình 3.9 tách thành ảnh riêng biệt để lưu lại làm liệu huấn luyện Hình 3.9: Phát thành phần liên thơng Lúc có số trường hợp xảy số captcha bị làm nhiễu cách có kí tự xếp dính vào ví dụ mẫu captcha hình 3.10 Nguyễn Duy Anh 39 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Hình 3.10: Một mẫu captcha có ký tự dính liền Khi xử lý cắt vùng liên thơng có kết nhận ln vùng có ký tự hình 3.11 : Hình 3.11: Vùng nhận dạng liên tục nhận ký tự vào ảnh cắt, chưa tốt Để xử lý vấn đề khắc phục cách sau, kí tự bị liền nhận khung,chiều dài chắn tăng lớn chiều cao khung cắt ta cần đặt mức điều kiện chiều dài lớn "1.25× chiều cao" thưc chia đôi khung thành khung để tách kí tự Khi ta có kết nhận đủ khung ký tự ảnh hình 3.12 Hình 3.12: Kết sau dùng thủ thuật cắt đôi vùng nhận ký tự liền Sau tách ký tự khỏi ảnh, liệu đưa vào mơ hình CNN đươc xây dựng thư viện Tensorflow chạy Keras để huấn luyện kiểm tra Kết thu tốt với hiệu suất nhận dạng toàn captcha ngẫu nhiên tập kiểm tra Các bước thực nghiệm liệu Dataset-2 Do liệu Dataset-2 có cấu trúc gồm loại liệu khác hình 3.13 Nên bước đầu tiên, cần tìm cách để phân loại loại liệu để có phương án tiền xử lý hợp lý với loại Trong bước này, cách dựa biểu đồ hình ảnh Hình ảnh làm nhiễu điểm chấm chứa nhiều điểm màu đen túy (giá trị 0) đó, cần tìm giá trị ngưỡng cho số điểm ảnh đen có hiệu phân loại Ta phân loại ảnh nhiễu chấm loại 1, ảnh nhiễu gạch loại Nguyễn Duy Anh 40 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Hình 3.13: kiểu liệu liệu Dataset-2 Sau phân loại liệu cần thực tách kí tự captcha để nhận dạng mơ hình CNN Đầu tiên sau phân loại liệu liệu Dataset-2 cần phải khử nhiễu loại captcha Các lọc khác hoạt động tốt loại ảnh khác Sau thử nghiệm lọc khác với loại liệu captcha phương án hợp lý sử dụng lọc trung vị cho liệu loại lọc Gaussian cho liệu loại Cả lọc làm mịn ảnh để thực bước tiền xử lý Kết thu hình 3.14: Hình 3.14: Kết lọc ảnh với loại liệu Tiếp theo thực tách nhiễu khỏi ngưỡng nhi phân OTSU Qua trình thử nghiệm cho thấy hiệu với ngưỡng cho liệu loại l 170 cho loại 155 sau tách ngưỡng ta có kết hình 3.15 Hình 3.15: Kết tách ngưỡng nhị phân với loại liệu Kết sau tách ngưỡng nhị phân hình 3.15 với liệu loại tốt nhiên với liệu loại số nhiễu nhỏ khơng khử hồn tồn nên để xử lý phần nhiễu dùng cách đêm số thành phần liên thông để lọc bỏ Trong thực nghiệm với liên kết hợp lý để tìm loại bỏ nhiễu Sau lọc nhiễu kết hình 3.16 với liệu loại loại bỏ gần tồn nhiễu hạt sót lại sau bước trước Nguyễn Duy Anh 41 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Hình 3.16: Kết lọc thành phần kết nối với loại liệu Đây thời điểm thích hợp để tách ký tự khỏi ảnh Qua kiểm tra tập liệu thấy thấy bên trái chữ số ảnh đa số điểm ảnh thứ 30, cạnh trái cắt dọc điểm ảnh thứ 30 Ranh giới bên phải điểm ảnh trắng bên phải Để đảm bảo không cắt nhầm biên phải điểm nhiễu sót chiều dài vùng cắt phải thỏa mãn điều kiện độ dài khung cắt phải nhở 125 điểm ảnh Ranh giới tìm theo cách tương tự Kết thực tách ký tự khỏi sau Hình 3.17: Kết tách ký tự với loại liệu Kết hình 3.17 chia thành phần có độ dài tương tự cách chia hình 3.12 liệu Dataset-1 để có chữ số riêng biệt Nhưng qua thực nghiệm cho thấy thay chia cho sáu hình 3.18(a) , chia hình ảnh thành nửa lấy phần nguyên chiều dài khung cắt sau tiếp tục chia lấy giá trị nguyên cho kết cắt tốt bị lệch sang ký tự khác hình 3.18(b) Tuy nhiên sau tách kết tách thu tốt tồn số trường hợp bị cắt lẹm vào ký tự khác Để giải vấn đề xử lý sau : ví dụ cụ thể với mẫu tách chưa tốt hình 3.19 Vấn đề xử lý theo ý tưởng dịch chuyển lại phần chữ số bị cắt lẹm sang trái Để làm điều đó, trước tiên cần xác định quy tắc cho việc dịch chuyển phần bị cắt lệch điều kiện sau Xem xét có nhiều thành phần liên thơng ảnh kí tự cắt Điều cắt lệch làm dịch chuyển có khoảng cách phần chữ số đơn Vì vậy, điều chưa thể kết luận có Nguyễn Duy Anh 42 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Hình 3.18: Minh họa quy trình tách ký tự Hình 3.19: Một mẫu tách chưa tốt phần ký tự bị cắt lệch Phần bị cắt lệch cần phải ln ln dính vào cạnh bên trái hình ảnh chữ số sau cắt Phần dịch chuyển phải có kích thước khơng vượt q 35 % hình ảnh Nếu điều kiện thỏa mãn thao tác dịch chuyển phần bị cắt lệch sang trái áp dụng Sau xử lý với hình 3.19 ta có kết hình 3.20 Hình 3.20: Kết xử lý ảnh bị cắt lệch Với ảnh ký tự riêng biết tách tốt dễ nhận dạng toán trở lại thành nhận dạng ký tự giống với liệu Dataset-1 Bây cần mơ hình CNN với lớp tích chập đơn giản có kết nhận dạng tốt với ký tự Bộ tham số mơ hình CNN phù hợp với liệu Mục 3.2 xây dụng thư viện PyTourch thực nghiệm để huấn luyện kiểm tra cho kết tốt bảng 3.2 Các bước thực nghiệm liệu Dataset-3, Dataset-4 Bộ liệu Dataset-3 Dataset-4 tạo từ chương trình sinh captcha xây dựng trình thực nghiệm, chúng có kích thước cấu trúc captcha tương Nguyễn Duy Anh 43 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha tự thay đổi định dạng kí tự captcha, độ dính ký tự tăng độ khó so với liệu Dataset-1 Dataset-2 Quá trình thực nghiệm với liệu Dataset-3 Dataset-4 sau: Hình 3.21: Mẫu liệu minh họa Dataset-3 Dataset-4 Với mẫu liệu bước nhận thấy phần chứa ký tự captcha yếu nằm nửa bên trái ảnh, thực cắt ảnh để cắt bớt phần gạch thừa giúp giảm bớt nhiều nhiễu nhận dạng toàn CNN Sau cắt ảnh bước tiền xử lý tốt phù hợp với loại captcha thực phép co nội dung ảnh để giảm bớt nhiễu ảnh nhiều tốt giữ lại nội dung thể ký tự captcha Các kỹ thuật tiền xử lý khác nhằm loại bỏ nét gạch ảnh hưởng tới cấu trúc ký tự làm cho hiệu suất nhận dạng giảm xuống đáng kể nên không sử dụng với liệu Kết sau tiền xử lý hình 3.21 kết hình 3.22 Hình 3.22: Kết tiền xử lý mẫu liệu Dataset-3 Dataset-4 Sau tiền xử lý ta có ảnh captcha loại bỏ nhiều chi tiết thừa để đưa vào mơ hình huấn luyện kiểm tra với kết thực nghiệm bảng 3.3 Các bước thực nghiệm liệu Dataset-5 Bộ liệu Datase-5 liệu với lượng nhiễu lớn tổng hợp bổ sung từ captcha trước Nên để nhận dạng tự động liệu phải thực bước tiền xử lý kỹ nhằm loại bỏ nhiễu captcha không làm nhiều chi tiết cuả ký tự Quy trình thực nghiệm với liệu mô tả với mẫu captcha liệu hình 3.23 Nguyễn Duy Anh 44 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Hình 3.23: mẫu captcha minh họa quy trình thực nghiệm Đầu tiên cần chuyển ảnh màu sang ảnh xám hình 3.24 mẫu captcha ảnh màu để nguyên ảnh màu đặc trưng thêm chiều nhân độ khó nhận dạng CNN Hình 3.24: Captcha chuyển sang ảnh xám Sau có ảnh xám, áp dụng lọc Gauss để làm mờ nội dung captcha để nhiễu làm mờ giảm mức xám Hỗ trợ cho trình lọc ngưỡng xám bước sau Sau áp dụng lọc Gauss có kết hình 3.25 với captcha mẫu Hình 3.25: Captcha chuyển sang ảnh xám Khi captcha làm mờ lọc Gauss theo lý thuyết mục 2.1 Để hỗ trợ q trình lọc thành phần liên thơng bước cần tạo thêm ảnh phụ với ảnh tạo từ lọc trung vị ảnh tạo lọc ngưỡng xám theo phương pháp OTSU Sau tìm thành phần liên thơng tương tự phương thức lọc thành phần liên thông với liệu Dataset-2 hình 3.16 để tìm thấy thành phần liên thông đủ khả ký tự captcha cần giữ lại loại bỏ thành phần nhiễu không đủ số liên kết Với liệu sử dụng ngưỡng 20 liên kết để lọc nhiễu Sau tìm loại bỏ thành phần nhiễu, ảnh giữ lại thành phần chứa ký tự captcha hình 3.26 Hình 3.26: Captcha sau bước xử lý cuối Có thể thấy bước tiền xử lý giúp lọc đường gạch ngang nhiễu số trường hợp định nhiên có khơng ảnh lọc nhiễu chưa tốt Nguyễn Duy Anh 45 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Sau tiền xử lý ảnh đưa vào mơ hình CNN dùng chung với Dataset-3 Dataset-4 để huấn luyện Tuy nhiên sau trình huấn luyện Thực kiểm thử với tập liệu kiểm tra nhiên kết thu thấp nhận 1-2 % bảng 3.3 Mơ hình CNN thử nghiệm với định dạng tham số khác khơng hiệu mơ hình CNN lớp với lớp tích chập sử dụng chung với mơ hình cho liệu nhận dạng số captcha 3.3.4 So sánh kết thực nghiệm Với liệu sử dụng luận văn thực nghiệm với hướng tiếp cận để nhận dạng tự động captcha "tách nhận dạng ký tự" với "nhận dạng toàn ảnh captcha" cụ thể với phương pháp tách ký tự, thực nghiệm cho kết tối ưu liệu Dataset-1 Dataset-2 cho kết so sánh hiệu nhận dạng bảng sau Tên liệu Kết Dataset-1 Dataset-2 100 % 97 % Bảng 3.2: Bảng so sánh kết thực nghiệm liệu Dataset-1 với Dataset-2 Nhận xét: Kết thực nghiệm liệu Dataset-1 Dataset-2 cho thấy phương pháp "tách nhận dạng ký tự " cho kết tốt với loại captcha đơn giản phù hợp sử dụng kĩ thuật tiền xử lý để tách ký tự Khi tách ký tự captcha riêng biệt toán nhận dạng captcha tự động gần trở thành toán nhận dạng ký tự viết tay cần sử dụng mơ hình CNN đơn giản đem lại hiệu suất nhận dạng cao Với phương pháp cần tối ưu quy trình tiền xử lý nhắm tách ký tự tốt để mơ hình CNN dễ dàng thực bước lại Với liệu Dataset-3, Dataset-4, Dataset-5 kiểu nhiễu phức tạp làm cho phương pháp "tách nhận diện ký tự " cho hiệu thấp để khắc phục điều cần áp dụng phương pháp "nhận dạng tồn ảnh captcha" với hình thức thực nghiệm dùng phương pháp có tiền xử lý không tiền xử lý captcha Kết so sánh thể qua bảng đây: Tên liệu Dataset-3 Dataset-4 Kết không tiền xử lý 77 % 19 % Kết có tiền xử lý 86 % 39 % Dataset-5 0% 1.8% Bảng 3.3: Bảng so sánh kết thực nghiệm liệu Dataset-3, Dataset-4 Dataset-5 Nguyễn Duy Anh 46 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha Nhận xét: Với kết thực nghiệm so sánh bảng 3.3 thấy tầm quan trọng bước tiền xử lý tình nhận dạng captcha phức tạp Đặc biệt với liệu Dataset-5 có nhiều hình thức nhiễu ảnh captcha phải thông qua nhiều bước tiền xử lý cải thiện hiệu suất Với liệu Dataset-3 Dataset-4 chênh lệch số lượng mẫu liệu huấn luyện độ phức tạp nhiễu thay đổi nên có chênh lệch lớn kết thực nghiệm Qua thấy tầm ảnh hưởng yếu tố: tiền xử lý , lượng liệu huấn luyện độ khó captcha đến hiệu suất nhận dạng tự động ký tự ảnh captcha Cuối bảng 3.4 thực nghiệm so sánh kết hợp phương pháp nhận dạng tác động tiền xử lý với liệu Tên liệu Dataset-1 Dataset-2 KQT 100 % 97 % KQTB 98 % 0% KQTB + TXL 99 % 93 % Dataset-3 Dataset-4 3.5 % 1.5 % 77 % 19 % 86 % 39 % Dataset-5 0% 0% 1.8 % Bảng 3.4: Bảng so sánh kết thực nghiệm tổng quan liệu Nhận xét: Bảng 3.4 cho thấy với Dataset-3, Dataset-4, Dataset-5 phương pháp nhận dạng toàn nội dung captcha có tiền xử lý cho hiệu tốt đáng kể so với phương pháp tách ký tự liệu Bên cạnh Với liệu Dataset-1, Dataset-2, kết có giảm chút so với phương pháp tách ký tự mức tốt Có thể thấy với điều kiện thực tế, phương pháp nhận dạng toàn ký tự captcha mơ hình CNN hướng tiếp cận hợp lý Chương giới thiệu trình thực nghiệm nhận dạng captcha tự động với captcha phổ biến gồm phần: tìm hiểu xây dựng chương trình sinh liệu captcha, thực nghiệm tối ưu hóa tiền xử lý tham số mơ hình CNN cho liệu captcha Sau tổng hợp kết thực nghiệm nhận xét, đánh giá yếu tố ảnh hưởng tới trình nhận dạng tự động captcha, đưa khuyến cáo an toàn bảo mật captcha Nguyễn Duy Anh 47 Cơ sở toán cho tin học Kết luận Kết luận Quá trình thực luận văn học viên nghiên cứu, tìm hiểu vấn đề phân loại nhận dạng tự động ký tự ảnh captcha Qua luận văn đạt số kết sau: - Tìm hiểu captcha vấn đề liên quan đến khái niệm, lịch sử, ý nghĩa ứng dụng, trình sinh captcha Bên cạnh nghiên cứu phương pháp cơng nhận dạng tự động captcha thực tế - Thực lập trình sinh liệu captcha phổ biến với hỗ trợ thư viện xây dựng captcha ngơn ngữ lập trình Java Python, nhằm mục đích huấn luyện mơ hình nhận dạng tự động ký tự ảnh captcha - Nghiên cứu vấn đề lý thuyết phục vụ cho trình nhận dạng tự động captcha mơ hình CNN như: Các vấn đề tiền xử lý, co giãn, làm mờ ảnh Các lý thuyết tiền đề CNN phép tính tích chập sở ứng dụng lý thuyết mô hình CNN Bên cạnh tìm hiểu định hướng áp dụng lý thuyết vào quy trình nhận dạng tự động captcha - Thực tìm hiểu, xây dựng mơ hình CNN nhiều API python khác thư Tensorflow, Keras, PyTouch để phục vụ trình thực nghiệm nhận dạng liệu captcha khác theo cấp độ từ dễ đến khó - Đề xuất hướng tiếp cận thực nghiệm nhận dạng tự động captcha tối ưu quy trình tiền xử lý số loại captcha phổ biến thực tế Xây dựng chương trình cơng mềm để đánh giá độ an tồn captcha thơng qua kết thực nghiệm - Rút số đánh giá trình nhận dạng tự động captcha thông qua yếu tố gồm có độ tốt sau tiền xử lý, số lượng mẫu huấn luyện Thơng qua có đề xuất số khuyến nghị yếu tố an toàn captcha Bên cạnh với thực nghiệm thay đổi mơ hình CNN để tiến hành thực 48 Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha nghiệm cho thấy tham số mơ kích thước, số lượng cửa sổ trượt, hàm kích hoạt, hàm lấy mẫu, thứ tự kết hợp tầng CNN v.v cần lựa chọn phù hợp với kiểu liệu khác thử nghiệm nhiều lần để tìm cấu trúc đem lại hiệu tốt Tuy nhiên song song với mục tiêu đạt trên, luận văn số hạn chế định sau: - Với số liệu captcha khó phương pháp tiền xử lý liệu chưa thực đủ tốt dẫn đến kết thực nghiệm thấp - Các thực nghiệm nhận dạng tự động làm số liệu captcha tương đối phổ biến nội dung luận văn tìm hiểu phương pháp nhận dạng tự động captcha với loại captcha khác nên chưa đủ độ tốt gặp captcha có kiểu nhiễu nội dung khác thực tế Hướng phát triển CNN đạt thành tựu định lĩnh vực nhận dạng nhiều hạn chế tốn nhiều khơng gian thời gian tính toán, cần số lượng liệu lớn tập huấn luyện hay hạn chế việc hiểu ngữ nghĩa ảnh Những thực nghiệm, phân tích kết luận luận văn gợi ý hướng phát triển tương lai kỹ thuật nhận dạng tự động captcha : - Hướng thứ tiếp tục cải thiện q trình tiền xử lý để có thơng tin, đặc trưng tốt hơn, nhiễu trước đưa vào mơ hình CNN Do mơ hình CNN giá trị trọng số bias mà trình phân loại học lại phụ thuộc trực tiếp vào giá trị đầu vào nên tập trung cải thiện kỹ thuật tiền xử lý định hướng tốt tương lai Bên cạnh cải thiện vấn đề tiền xử lý nhiễu ảnh captcha tiền đề tốt cho số toán khác liên quan đến vấn đề xử lý ký tự - Hướng thứ cải thiện mơ hình CNN mở rộng độ đa dạng liệu Tuy nhiên vấn đề khó bao quát hết trường hợp liệu, đồng thời cách cần số lượng lớn liệu tập huấn luyện cải thiện kết Hướng phát triển đặt thách thức khơng nhỏ q trình nghiên cứu Nguyễn Duy Anh 49 Cơ sở toán cho tin học Tài liệu tham khảo Tiếng Việt [1] Nguyễn Thị Vân Anh (2018), Nghiên cứu khả mạng tích chập việc hiểu ngữ nghĩa ảnh, Đại học Khoa học Tự nhiên, tr 6-16 [2] Nguyễn Công Thành (2016), Tấn cơng CAPTCHA cách phòng chống, Tạp chí an tồn thơng tin Tiếng Anh [3] Ahmad, A S.,Yan, J., Marshall, L (2010), “The robustness of a new CAPTCHA,” in Proceedings of the 3rd European Workshop on System Security, EUROSEC’10, pp 36–41 [4] Ahmad, A S.,Yan, J., Tayara, M (2011), The Robustness of Google CAPTCHAs, Computing Science Technical Report CSTR-1278, Newcastle University [5] Amrinder, A (2007), Statistics Hacking - Exploiting Vulnerabilities in News Websites, International Journal of Computer Science and Network Security , pp 342 – 347 [6] Andrej, K (2019), "CS231n Convolutional Neural Networks for Visual Recognition", http://cs231n.github.io/convolutional-networks/ [7] Bansal, A., Garg, D.,Gupta, A (2008), “Breaking a Visual CAPTCHA: A Novel Approach using HMM", IEEE [8] Cade, M.(2015), TensorFlow, Google’s Open Source AI, Points to a Fast-Changing Hardware World [9] Chellapilla, K., Simard, P Y (2004), “Using Machine Learning to Break Visual Human Interaction Proofs (HIPs),” in Proceedings of the Advances in Neural Information Processing Systems, pp 265–272 50 Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha [10] Chen, J., Luo, X., Guo, Y.,Zhang, Y., Gong, D (2017), A Survey on Breaking Technique of Text-Based CAPTCHA, Hindawi [11] Dean, J., Monga, R et al (2015) TensorFlow: Large-scale machine learning on heterogeneous systems, Google Research|https://www.tensorflow.org/ [12] Edward, R (1992), An Introduction to Morphological Image Processing,ISBN 08194-0845-X [13] EZ-Gimpy captcha, http://www.cs.sfu.ca/~mori/research/gimpy/ [14] Fukushima, K (1980), Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position,NHK Broadcasting Science Research Laboratories, Kinuta, Setagaya, Tokyo, Japan [15] Gao, H., Wang, W., Fan, Y (2012), “Divide and conquer: An efficient attack on Yahoo! CAPTCHA,” IEEE, Proceedings of the 11th IEEE International Conference on Trust, Security and Privacy in Computing and Communications TrustCom2012, pp 9–16 [16] Gao, H., Yan, J., Cao, F et al (2016), “A Simple Generic Attack on Text Captchas,” in Proceedings of the Network and Distributed System Security Symposium, San Diego, USA, pp 1–14 [17] Gao, H., Wang, W., Qi, J., Wang, X., Liu, X., Yan, J (2013), “The robustness of hollow CAPTCHAs,” in Proceedings of the ACM SIGSAC Conference on Computer and Communications Security, CCS 2013, pp 1075–1085 [18] Hong, C., Lopez-Pineda, B., Rajendran, K., Recasens, A (2015) “Breaking Microsoft’s CAPTCHA,”,https://courses.csail mit.edu/6.857/2016/files/honglopezpineda-rajendran-recansens.pdf [19] Huang, S.,Lee, K., Bell, G., Ou, Z (2010), “An efficient segmentation algorithm for CAPTCHAs with line cluttering and character warping,” Multimedia Tools and Applications, vol 48, no 2, pp 267–289 [20] Hubel, D.H., Wiesel, T.N (1961), Receptive fields, binocular interaction and functional architecture in the cat’s visual cortex, The Neurophysiolojy Laboratory, Department of Pharmacology Harvard Aledical School, Boston, Massachusetts, USA , pp.109-123 Nguyễn Duy Anh 51 Cơ sở toán cho tin học Luận văn thạc sĩ Phân loại nhận dạng tự động ký tự ảnh captcha [21] Hussain, R., Gao, H., Shaikh, R A (2016) “Segmentation of connected characters in text-based CAPTCHAs for intelligent character recognition,” Multimedia Tools and Applications, pp 1–15 [22] Jean, B F.,Paucher, R (2009), "The Captchacker Project", http://citeseerx ist.psu.edu/viewdoc/download?doi=10.1.1.800.3065&rep=rep1&type=pdf [23] Ketkar, N (2017) Introduction to PyTorch Deep Learning with Python Apress, Berkeley, CA pp 195–208 [24] Laurent, N., Hugues, T.(2010), Mathematical morphology: from theory to applications, ISTE-Wiley ISBN 978-1-84821-215-2 [25] Moy, G.,Jones,N., Harkless, C.,Potter, R (2004), “Distortion estimation techniques in solving visual CAPTCHAs,” IEEE, pp 23–28 [26] Saha, S (2018), A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way, Towards Data Science [27] Sharma, P., Tyagi, N., Singhal, D.(2013), "CAPTCHAs: VULNERABILITY TO ATTACKS", International Journal of Emerging Trends and Technology in Computer Science ISSN 2278-6856 [28] Yan, J., Ahmad, A S El (2007), “Breaking visual CAPTCHAs with naıve pattern recognition algorithms,” in Proceedings of the 23rd Annual Computer Security Applications Conference, pp 279–291 [29] Yan, J., Ahmad, A S E (2008), “A low-cost attack on a microsoft CAPTCHA,” in Proceedings of the 15th ACM conference on Computer and Communications Security, CCS’08, pp 543–554 [30] Yann, L., Léeon, B., Yoshua, B., Patrick, H (1998), Gradient-based learning applied to document recognition, IEEE Nguyễn Duy Anh 52 Cơ sở toán cho tin học ... Nhận dạng captcha sử dụng CNN 27 2.4.1 27 Phương pháp tách nhận dạng ký tự i Luận văn thạc sĩ 2.4.2 Phân loại nhận dạng tự động ký tự ảnh captcha Phương pháp nhận. .. để phủ định mục đích mà captcha tạo Nhận dạng tự động captcha chia thành kỹ thuật nhận dạng cứng nhận dạng mềm Nhận dạng cứng Nhận dạng cứng phương pháp nhận dạng tự động mang tính kỹ thuật Nguyễn... để nhận dạng tự động ký tự ảnh captcha Nguyễn Duy Anh Cơ sở toán cho tin học Chương Nhận dạng tự động captcha sử dụng CNN Chương giới thiệu số vấn đề lý thuyết phục vụ trình nhận dạng tự động captcha

Ngày đăng: 16/02/2020, 14:33

Mục lục

  • Một số kí hiệu viết tắt

  • Bảng chú giải thuật ngữ

  • Danh sách hình vẽ

  • Giới thiệu về captcha

    • Định nghĩa captcha

    • Lịch sử và ứng dụng

      • Lịch sử

      • Quá trình sinh captcha

      • Các phương pháp nhận dạng captcha tự động

      • Nhận dạng tự động captcha sử dụng CNN

        • Phép toán hình thái

          • Phép toán giãn nở

          • Lọc ảnh

            • Nguyên tắc chung của lọc ảnh

            • Phép lọc trung vị ảnh xám

            • Lý thuyết tích chập và mạng tích chập (CNN)

              • Tích chập

              • Mạng tích chập (CNN)

              • Nhận dạng captcha sử dụng CNN

                • Phương pháp tách và nhận dạng từng ký tự

                • Phương pháp nhận dạng toàn bộ ký tự

                • Kết quả thực nghiệm

                  • Bộ dữ liệu sử dụng

                  • Mô hình sử dụng và các tham số

                    • Tham số mô hình

                    • Kết quả thực nghiệm

                      • Ngôn ngữ lập trình, thư viện

                      • Kết quả đạt được với các mẫu dữ liệu

                      • Mô tả quá trình thực nghiệm

                      • So sánh kết quả thực nghiệm

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan