3.2 32 mẫu captcha minh họa quy trình thực nghiệm
3.26 Captcha sau bước xử lý cuối cùng
Luận văn thạc sĩ Phân loại và nhận dạng tự động các ký tự trong ảnh captcha
Sau khi tiền xử lý ảnh được đưa vào mơ hình CNN dùng chung với bộ Dataset-3 và Dataset-4 để huấn luyện. Tuy nhiên sau quá trình huấn luyện. Thực hiện kiểm thử với tập dữ liệu kiểm tra tuy nhiên kết quả thu được rất thấp chỉ nhận đúng 1-2 % ở bảng 3.3. Mơ hình CNN đã được thử nghiệm với các định dạng tham số khác nhưng đều khơng hiệu quả chỉ mơ hình CNN 5 lớp với 3 lớp tích chập sử dụng chung với mơ hình cho 2 bộ dữ liệu trên mới có thể nhận dạng đúng một số ít captcha.
3.3.4 So sánh kết quả thực nghiệm
Với 5 bộ dữ liệu sử dụng trong luận văn các thực nghiệm với 2 hướng tiếp cận để nhận dạng tự động captcha là "tách và nhận dạng từng ký tự" với "nhận dạng toàn bộ ảnh captcha" cụ thể với phương pháp tách từng ký tự, thực nghiệm cho kết quả tối ưu trên 2 bộ dữ liệu Dataset-1 và Dataset-2 cho kết quả so sánh hiệu quả nhận dạng trong bảng sau
Tên dữ liệu Dataset-1 Dataset-2
Kết quả 100 % 97 %
Bảng 3.2: Bảng so sánh kết quả thực nghiệm dữ liệu Dataset-1 với Dataset-2
Nhận xét: Kết quả thực nghiệm trên 2 bộ dữ liệu Dataset-1 và Dataset-2 cho
thấy phương pháp "tách và nhận dạng từng ký tự " cho kết quả rất tốt với những loại captcha đơn giản phù hợp sử dụng các kĩ thuật tiền xử lý để tách ký tự. Khi tách được từng ký tự trong captcha riêng biệt thì bài tốn nhận dạng captcha tự động gần như trở thành bài toán nhận dạng ký tự viết tay chỉ cần sử dụng mơ hình CNN đơn giản là có thể đem lại hiệu suất nhận dạng rất cao. Với phương pháp này cần tối ưu quy trình tiền xử lý nhắm tách được ký tự tốt nhất để mơ hình CNN dễ dàng thực hiện các bước cịn lại.
Với bộ dữ liệu Dataset-3, Dataset-4, Dataset-5 do kiểu nhiễu phức tạp làm cho phương pháp "tách nhận diện từng ký tự " cho hiệu quả rất thấp để khắc phục điều đó cần áp dụng phương pháp "nhận dạng toàn bộ ảnh captcha" với 2 hình thức thực nghiệm khi dùng phương pháp này là có tiền xử lý và khơng tiền xử lý captcha. Kết quả so sánh thể hiện qua bảng dưới đây:
Tên dữ liệu Dataset-3 Dataset-4 Dataset-5
Kết quả không tiền xử lý 77 % 19 % 0 % Kết quả có tiền xử lý 86 % 39 % 1.8%
Bảng 3.3: Bảng so sánh kết quả thực nghiệm dữ liệu Dataset-3, Dataset-4 và Dataset-5
Nhận xét: Với kết quả thực nghiệm so sánh trong bảng 3.3 có thể thấy được tầm
quan trọng của bước tiền xử lý trong quá tình nhận dạng captcha phức tạp. Đặc biệt với bộ dữ liệu Dataset-5 có rất nhiều hình thức nhiễu trong ảnh captcha phải thơng qua khá nhiều bước tiền xử lý mới có thể cải thiện được hiệu suất. Với bộ dữ liệu Dataset-3 và Dataset-4 do sự chênh lệch về số lượng mẫu dữ liệu huấn luyện và độ phức tạp của nhiễu thay đổi nên có sự chênh lệch lớn trong kết quả thực nghiệm. Qua bản này có thể thấy tầm ảnh hưởng của các yếu tố: tiền xử lý , lượng dữ liệu huấn luyện và độ khó của captcha đến hiệu suất nhận dạng tự động ký tự trong ảnh captcha.
Cuối cùng bảng 3.4 thực nghiệm so sánh kết hợp giữa các phương pháp nhận dạng và tác động của tiền xử lý với các bộ dữ liệu.
Tên dữ liệu Dataset-1 Dataset-2 Dataset-3 Dataset-4 Dataset-5
KQT 100 % 97 % 3.5 % 1.5 % 0 % KQTB 98 % 0 % 77 % 19 % 0 % KQTB + TXL 99 % 93 % 86 % 39 % 1.8 %
Bảng 3.4: Bảng so sánh kết quả thực nghiệm tổng quan các bộ dữ liệu
Nhận xét: Bảng 3.4 cho thấy với các bộ Dataset-3, Dataset-4, Dataset-5 phương
pháp nhận dạng tồn bộ nội dung captcha có tiền xử lý cho hiệu quả tốt hơn đáng kể so với phương pháp tách từng ký tự trên 3 bộ dữ liệu này. Bên cạnh đó Với bộ dữ liệu Dataset-1, Dataset-2, kết quả có giảm một chút so với phương pháp tách từng ký tự nhưng vẫn ở 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 bộ ký tự captcha bằng mơ hình CNN là hướng tiếp cận hợp lý hơn.
Chương này giới thiệu về quá trình thực nghiệm nhận dạng captcha tự động với các bộ captcha phổ biến gồm các phần: tìm hiểu xây dựng chương trình sinh bộ dữ liệu captcha, thực nghiệm tối ưu hóa tiền xử lý và tham số mơ hình CNN cho từng bộ dữ liệu captcha. Sau đó tổng hợp kết quả thực nghiệm và nhận xét, đánh giá các yếu tố ảnh hưởng tới quá trình nhận dạng tự động captcha, đưa ra các khuyến cáo đối với an tồn và bảo mật captcha.
Kết luận
Kết luận
Q trình thực hiện luận văn học viên đã nghiên cứu, tìm hiểu về vấn đề phân loại và nhận dạng tự động các ký tự trên ảnh captcha. Qua đó luận văn đã đạt được một số kết quả chính như sau:
- Tìm hiểu về captcha và các vấn đề liên quan đến nó như khái niệm, lịch sử, ý nghĩa ứng dụng, quá trình sinh captcha. Bên cạnh đó nghiên cứu về các phương pháp tấn công nhận dạng tự động captcha trong thực tế.
- Thực hiện lập trình sinh 3 bộ dữ liệu captcha phổ biến với sự hỗ trợ của thư viện xây dựng captcha trong ngơn ngữ lập trình Java và Python, nhằm mục đích huấn luyện mơ hình nhận dạng tự động ký tự trong ảnh captcha.
- Nghiên cứu về các vấn đề lý thuyết phục vụ cho quá trình nhận dạng tự động captcha bằng 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 đề của CNN như phép tính tích chập cơ sở ứng dụng và lý thuyết về mơ hình CNN. Bên cạnh đó tìm hiểu về định hướng áp dụng các lý thuyết vào quy trình nhận dạng tự động captcha.
- Thực hiện tìm hiểu, xây dựng các mơ hình CNN bằng nhiều API python khác nhau thư Tensorflow, Keras, PyTouch để phục vụ quá trình thực nghiệm nhận dạng các bộ dữ liệu captcha khác nhau theo cấp độ từ dễ đến khó.
- Đề xuất 2 hướng tiếp cận thực nghiệm nhận dạng tự động captcha và tối ưu quy trình tiền xử lý một số loại captcha phổ biến trong thực tế. Xây dựng các chương trình tấn cơng mềm để đánh giá độ an tồn của captcha thơng qua kết quả thực nghiệm.
- Rút ra một số đánh giá về q trình nhận dạng tự động captcha thơng qua các yếu tố gồm có độ tốt sau khi tiền xử lý, số lượng mẫu huấn luyện. Thơng qua đó có đề xuất 1 số khuyến nghị về các yếu tố an tồn của captcha.
Bên cạnh đó với các thực nghiệm thay đổi mơ hình CNN để tiến hành thực
nghiệm cho thấy rằng các tham số của mơ hình như 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 của các tầng trong CNN v.v. cần lựa chọn phù hợp với từng kiểu dữ liệu khác nhau và thử nghiệm nhiều lần để tìm ra cấu trúc đem lại hiệu quả tốt nhất.
Tuy nhiên song song với những mục tiêu đã đạt được trên, luận văn vẫn còn một số hạn chế nhất định như sau:
- Với một số bộ dữ liệu captcha khó các phương pháp tiền xử lý dữ liệu chưa thực sự đủ tốt dẫn đến kết quả thực nghiệm thấp.
- Các thực nghiệm nhận dạng tự động mới làm trên một số bộ dữ liệu captcha tương đối phổ biến nhưng trong nội dung luận văn này chỉ tìm hiểu phương pháp nhận dạng tự động captcha với từng bộ loại captcha khác nhau nên chưa đủ độ tốt nếu gặp các bộ captcha có kiểu nhiễu và nội dung khác trong thực tế.
Hướng phát triển
CNN tuy đạt được những thành tựu nhất định trong lĩnh vực nhận dạng nhưng cũng vẫn còn khá nhiều hạn chế như tốn nhiều khơng gian và thời gian tính tốn, cần dữ số lượng dữ liệu lớn trong tập huấn luyện hay hạn chế trong việc hiểu ngữ nghĩa của ảnh. Những thực nghiệm, phân tích và kết luận trong luận văn đã gợi ý những hướng phát triển trong tương lai của kỹ thuật nhận dạng tự động captcha :
- Hướng thứ nhất là tiếp tục cải thiện quá trình tiền xử lý để có thể có được những thơng tin, đặc trưng tốt hơn, ít nhiễu hơn trước khi đưa vào mơ hình CNN. Do trong mơ hình CNN các giá trị trọng số và bias mà quá trình phân loại học được lại phụ thuộc trực tiếp vào các giá trị đầu vào nên tập trung cải thiện các kỹ thuật tiền xử lý là một định hướng khá tốt trong tương lai. Bên cạnh đó các cải thiện vấn đề tiền xử lý nhiễu trong ảnh captcha cũng là một tiền đề tốt cho một số bài toán khác liên quan đến vấn đề xử lý ký tự.
- Hướng thứ 2 là cải thiện mơ hình CNN và mở rộng độ đa dạng dữ liệu. Tuy nhiên vấn đề là khá khó bao quát được hết các trường hợp của dữ liệu, đồng thời cách này cũng cần số lượng lớn dữ liệu trong tập huấn luyện thì mới có thể cải thiện kết quả. Hướng phát triển này đặt ra một thách thức không nhỏ đối với quá trình nghiên cứu tiếp theo.
Tài liệu tham khảo
Tiếng Việt
[1] Nguyễn Thị Vân Anh (2018),Nghiên cứu khả năng của mạng tích chập trong việc hiểu ngữ nghĩa củ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 và 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 Web- sites, International Journal of Computer Science and Network Security , pp. 342
– 347.
[6] Andrej, K. (2019), "CS231n Convolutional Neural Networks for Visual Recogni- tion", 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.
[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 0-
8194-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 Broad-
casting Science Research Laboratories, Kinuta, Setagaya, Tokyo, Japan.
[15] Gao, H., Wang, W., Fan, Y. (2012), “Divide and conquer: An efficient attack on Ya- hoo! CAPTCHA,” IEEE, Proceedings of the 11th IEEE International Conference on Trust, Security and Privacy in Computing and Communications TrustCom- 2012, 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 Sym- posium, 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 Com- puter 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/hong- lopezpineda-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 func- tional architecture in the cat’s visual cortex, The Neurophysiolojy Laboratory, De-
partment of Pharmacology Harvard Aledical School, Boston, Massachusetts, USA , pp.109-123
Luận văn thạc sĩ Phân loại và nhận dạng tự động các ký tự trong ả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 applica- tions, 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 Com- puter 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.