Tải bản đầy đủ (.pptx) (29 trang)

Tìm hiểu CAPTCHA và nhận diện CAPTCHA sử dụng deep learning để chỉ ra các lỗ hỏng trong CAPTCHA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.66 MB, 29 trang )

TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP THỰC
PHẨM TP.HỒ CHÍ MINH

BÁO CÁO ĐỒ ÁN
HỌC PHẦN
Đề tài: Tìm hiểu Captcha và nhận
diện Captcha, sử dụng Deep
Learning để chỉ ra các lỗ hổng
tron Captcha
GVHD: Nguyễn Trọng Nghĩa


Thành viên nhóm
1. Nguyễn Phạm Hồi Thanh - 2033181067
2. Đặng Hoàng Nhu - 2033180162


Nộ i d u ng
Chương 1: Tổng quan về Captcha
Chương 2: Tổng quan về Deep Learing
Chương 3: Tổng quan về bài toán
Chương 4: Kết quả bài toán
Chương 5: Những lỗ hổng của Captcha
Demo thực nghiệm


Chương I: Tổng quan về Captcha
Captcha là gì? Đặc điểm?

Ứng dụng


Nguyên tắc
hoạt động


Captcha là gì?
- CAPTCHA là một hình ảnh bao gồm các chữ cái méo mó, dị
dạng
- Hệ thống CAPTCHA đặt ra những thử thách mà con người
có thể giải được nó.
- Phải khiến máy tính khơng thể giải được chính xác.
- Do đó được dùng để phân biệt con người và máy tính.


Đặc điểm của Captcha
- Hệ thống CAPTCHA yều cầu thử thách phải được tạo ra tự
động và phải có những đặc điểm nhất định.
- Hệ thống CAPTCHA phải đặt ra những thử thách mà thơng
thường thì mọi người đều có thể hiểu và giải được nó.
- Phải khiến máy tính khơng thể giải được chính xác.


Ứng dụng của
Captcha

- Chống spam.
- Xác nhận tài khoản người
dùng khi đăng ký.
- Chặn các cuộc tấn
công Từ chối dịch vụ
như DDOS và DOS..

- Đảm bảo an
tồn của thơng
tin và dữ liệu.


Chương II: Tổng quan về Deep Learing
Deep Learing là gì?
Ứng dụng của Deep Learning

CNN là gì?


Deep Learning là gì?
- Deep Learning (hay cịn được gọi là Deep
Structured Learning) là một nhánh của Machine
Learning, được mở rộng hơn dựa trên mạng nhân
tạo với phương pháp Representation Learning.
Q trình xử lý của Deep Learning có thể được
giám sát, bán giám sát hoặc khơng có sự giám sát.
- Được áp dụng cho các lĩnh vực bao gồm thị giác
máy tính, nhận dạng giọng nói, xử lý ngơn ngữ tự
nhiên, dịch máy, tin sinh học, thiết kế thuốc, y tế
phân tích hình ảnh, kiểm tra vật liệu và các chương
trình trị chơi dạng Board – game.


Ứng dụng của Deep Learning

-


Nhận dạng giọng nói
Xử lý ngơn ngữ
Khám phá dược phẩm và độc chất
Quản lý khách hang
Tin sinh học
Phân tích hình ảnh y tế
Quảng cáo
Phát hiện gian lận tài chính


CNN là gì?
Convolutional Neural Network (CNNs – Mạng neural
tích phức hợp) là một trong những mơ hình Deep
Learning tiên tiến. Nó giúp cho chúng ta xây dựng
được những hệ thống thơng minh với độ chính xác
cao như hiện nay..


Chương III: Tổng quan về Bài Toán
Dữ liệu đầu vào
Sơ lược mơ hình
Mục tiêu bài tốn
Bố trí thực nghiệm
Bộ cơng cụ được sử dụng
Xây dựng mơ hình CNN


Dữ liệu đầu vào
- Gồm 10000 bức ảnh được lấy nguồn từ bài viết
Simple a Captcha trên WordPress.

- 6000 ảnh dung để train và 4000 ảnh dung để test.
- Kích thước đâu vào 72x24 pixels.
Sơ lược mơ hình
-

Mục tiêu bài tốn
Bố trí thực nghiệm
Bộ cơng cụ được sử dụng
Xây dựng mơ hình CNN


Mục tiêu bài toán
- Mục tiêu của bài toán là có thể sử dụng Deep
Learning với mơ hình CNN để nhận dạng được
Captcha dạng 4 ký tự. Cho thấy được tỷ lệ và xác
suất thành công của công cụ. Từ đó chứng minh
những lỗ hổng của Captcha hiện nay.
- Đồng thời có thể áp dụng phương pháp trên để
phá mã Captcha với 8 ký tự hoặc nhiều hơn 10
ký tự. Qua đó càng khẳng định thêm cho sự lạc
hậu của Captcha.


Bố trí thực nghiệm
- Từ dữ liệu đầu vào gồm 10000 bức ảnh
Captcha 4 ký tự có độ phân giải là 72x24 pixels.

- Ta lấy 60% của thư viện ảnh trên để train,
khoảng 40% cịn lại test độ chính xác của thực
nghiệm ta sắp tiến hành.



Bộ công cụ được sử dụng
-

-

-

Python: là một ngôn ngữ lập trình thú vị với các thư viện
tuyệt vời cho máy học và thị giác máy tính.
OpenCV: là một khn khổ phổ biến để xử lý hình ảnh và
thị giác máy tính.
Keras: là một khung học sâu được viết bằng Python. Nó
giúp dễ dàng xác định, đào tạo và sử dụng mạng neural
sâu với mã hóa tối thiểu.
Numpy: là một thư viện lõi phục vụ cho khoa học máy tính
của Python, hỗ trợ cho việc tính tốn các mảng nhiều
chiều, có kích thước lớn với các hàm đã được tối ưu áp
dụng lên các mảng nhiều chiều đó.
Imutils: là một loạt các chức năng tiện lợi để thực hiện các
chức năng xử lý hình ảnh cơ bản
Scikit-learn (Sklearn): là thư viện mạnh mẽ nhất dành cho
các thuật toán học máy được viết trên ngôn ngữ Python.


Xây dựng mơ hình – Khởi tạo
- Input: Ảnh Captcha có 4 ký tự có kích thước là 72x24 pixels. Được xử lý ban
đầu cho các ký tự được cắt vào trong chương trình Input_shape (20,20,1).
- Tạo Dataset: Để đào tạo bất kỳ hệ thống học máy nào, chúng ta cần dữ liệu

đào tạo. Để phá vỡ hệ thống CAPTCHA, chúng ta muốn dữ liệu đào tạo
giống như sau:


Xây dựng mơ hình – Dữ liệu đầu vào


Xây dựng mơ hình – Đơn giản hoa vấn
đề


Xây dựng mơ hìnhHồn chỉnh
- Ban đầu ký tự đã được xử lý input 20x20 pixel qua Conv2D với filter
size 5x5 thu được 20 feature map với mỗi feature map có thơng số là
ma trận 20x20.
- Tiếp theo được xử lý qua MaxPooling2D với pooling size: 2x2 để giảm
neural xuống một nửa với thông số output: 10x10x20.
- Tiếp tục được xử lý qua lớp Conv2D với filter size 5x5 thu được 50
feature map với mỗi feature map có thơng số là ma trận 10x10.
- Tiếp theo được xử lý qua MaxPooling2D với pooling size: 2x2 để giảm
neural xuống một nửa với thơng số output: 5x5x50.
- Sau đó được xử lý bằng 2 lớp ẩn gồm Flatten và dense:
+ Đầu tiên qua Flatten để lát phẳng layer thu 1250 nodes.
+ Tiếp theo qua Dense với (activation=”relu”) để giảm chi phí tính tốn
xuống cịn 500 nodes.
- Cuối cùng với output layer ta thu được 32 nodes khi xử lý bởi dense
với (activation=”softmax”) sau đó chương trình sẽ lấy kết quả dự đốn
có xác suất cao nhất từ 1 trong 32 node ở trên tương ứng với mỗi node
là các chữ và số.



Chương IV: Kết quả thực nghiệm
Mục tiêu cần phải thu được:
- Số lần duyệt qua hết số lượng
mẫu trong tập huấn luyện.
- Thống kê tỷ lệ sai sót cho mỗi lần
thực nghiệm
- Một số dự đốn về captcha của
chương trình: Sai, đúng và trường
hợp khác.


Số lần duyệt qua hết số lượng
mẫu trong tập huấn luyện.
- Epoch: Một Epoch được tính là khi chúng ta đưa tất
cả dữ liệu vào mạng neural network 1 lần. Khi dữ
liệu quá lớn, chúng ta không thể đưa hết mỗi lần tất
cả tập dữ liệu vào để huấn luyện được. Buộc lòng
chúng ta phải chia nhỏ tập dữ liệu ra thành các
batch (size nhỏ hơn)
- Thông số về độ chính xác cho từng Epoch.


Thống kê tỷ lệ sai sót cho mỗi lần thực
nghiệm
Nguyên nhân sai số
- Một số ảnh bị lỗi.
- Một số bị bỏ qua.
- Tuy nhiên đa phần các
trường hợp sai số đa

phần các ký tự đều sẽ
dính liền nhau hoặc lỗi ký
tự khi load ảnh vào
chương trình


Hình ảnh một
số Captcha
chương trình
dự đốn đúng


Hình ảnh một
số Captcha
chương trình
dự đốn sai


×