1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

61 119 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 5,2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Luận văn thạc sĩ Phân loại và nhận dạng tự động các ký tự trong ảnh captcha2.25 Minh họa bước lấy đặc trưng của 1 ký tự trong captcha qua từng lớp tích chập.. Luận văn thạc sĩ Phân loại

Trang 1

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

Trang 2

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

1.1 Định nghĩa captcha 1

1.2 Lịch sử và ứng dụng 2

1.2.1 Lịch sử 2

1.2.2 Ứng dụng 2

1.3 Quá trình sinh captcha 3

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

2 Nhận dạng tự động captcha sử dụng CNN 8 2.1 Phép toán hình thái 8

2.1.1 Phép toán giãn nở 11

2.1.2 Phép toán co 12

2.2 Lọc ảnh 13

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

2.2.2 Phép lọc Gauss 14

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

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

2.3.1 Tích chập 16

2.3.2 Mạng tích chập (CNN) 20

2.4 Nhận dạng captcha sử dụng CNN 27

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

Trang 3

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

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

3 Kết quả thực nghiệm 30 3.1 Bộ dữ liệu sử dụng 30

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

3.2.1 Tham số mô hình 34

3.2.2 Độ đo 35

3.3 Kết quả thực nghiệm 35

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

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

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

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

Nguyễn Duy Anh ii Cơ sở toán cho tin học

Trang 4

AF Activation function.

Hàm kích hoạt

BG Background của ả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 của ảnh nhị phân

MIT Massachusetts Institute of Technology

Viện công nghệ Massachusetts

KQT Kết quả của phương pháp tách

và nhận dạng từng ký tự

KQTB Kết quả của phương pháp nhận dạng toàn bộ

ký tự nhưng không thực hiện bước tiền xử lý

KQTB + TXL Kết quả của phương pháp nhận dạng toàn bộ

ký tự và có thực hiện 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

Trang 5

Mathematic morphology Phép toán hình thái

Pool Lớp tổng hợp đơn giản hóa thông tin đầu ra

Structuring element Phần tử cấu trúc

iv

Trang 6

1.1 Một số mẫu captcha 2

1.2 Một số mẫu captcha được tạo nhiễu bởi phương pháp phối hợp ngẫu nhiên một hoặc nhiều loại nhiễu khác nhau 4

1.3 Một số kết quả tấn công captcha 2003-2008 tổng hợp trong tài liệu [10] 6 1.4 Một số kết quả tấn công captcha 2009-2016 tổng hợp trong tài liệu [10] 6 2.1 Biểu diễn một ảnh số, mỗi ô vuông là một điểm ảnh 9

2.2 Một số dạng SE 10

2.3 Ví dụ về SE phản chiếu 10

2.4 Ví dụ phép giãn nở với ảnh I và phần tử cấu trúc Z 11

2.5 Ví dụ phép co với ảnh I và thành phần cấu trúc Z 12

2.6 Minh họa lọc ảnh 13

2.7 Định nghĩa ảnh xám I và Kernel K 13

2.8 Kết quả tính phép lọc trung bình trên ảnh I được ảnh D 14

2.9 Minh họa kernel Gausian blur 15

2.10 Kết quả tính phép lọc trung vị tại một vùng cục bộ 16

2.11 Kết quả lọc ảnh bằng lọc Gauss và lọc trung vị 16

2.12 Ảnh xám I, ảnh I0 mở rộng biên 0 xung quanh I và kernel K 17

2.13 Nhân tích chập tại điểm I11 với K theo công thức (2.13) cho ra điểm r11 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 ra điểm r22 18 2.15 2 ảnh gốc 19

2.16 Nhân tích chập với kernel K1 hiện rõ các cạnh theo chiều ngang 19

2.17 Nhân tích chập với kernel K2 hiện rõ các cạnh theo chiều dọc 19

2.18 Minh họa mô hình CNN để nhận dạng 1 ký tự [26] 21

2.19 Minh họa về bước tính tích chập [6] 22

2.20 Minh họa max pooling 25

2.21 Minh họa Average pooling 26

2.22 Hai cách tiếp cận để nhận dạng captcha bằng CNN 27

2.23 Một số ví dụ tách từng ký tự khỏi ảnh 28

2.24 Ví dụ tập các ảnh kí tự đã được cắt và xếp theo thư mục 28

Trang 7

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

2.25 Minh họa bước lấy đặc trưng của 1 ký tự trong captcha qua từng lớp

tích chập 28

2.26 Ví dụ một số kết quả tiền xử lý 29

2.27 Minh họa các bước lấy đặc trưng của ảnh captcha qua từng lớp tích chập 29 3.1 Một số mẫu dữ liệu trong bộ dữ liệu Dataset-1 30

3.2 Kí tự W và Q bị dính với nhau 31

3.3 Một số mẫu dữ liệu trong bộ Dataset-2 31

3.4 Hai loại nhiễu nền captcha dùng trong Dataset-2 31

3.5 Một số mẫu captcha trong bộ dữ liệu Dataset-3 32

3.6 Một số mẫu captcha của bộ dữ liệu Dataset-4 32

3.7 Một số mẫu captcha của bộ dữ liệu Dataset-5 33

3.8 Giãn nở ký tự trong captcha để dễ phát hiện vùng liên thông 39

3.9 Phát hiện thành phần liên thông 39

3.10 Một mẫu captcha có 2 ký tự dính liền nhau 40

3.11 Vùng nhận dạng liên tục nhận 2 ký tự vào 1 ảnh cắt, chưa tốt 40

3.12 Kết quả sau khi dùng thủ thuật cắt đôi vùng nhận các ký tự liền nhau 40 3.13 2 kiểu dữ liệu trong bộ dữ liệu Dataset-2 41

3.14 Kết quả lọc ảnh với 2 loại dữ liệu 1 và 2 41

3.15 Kết quả tách ngưỡng nhị phân với 2 loại dữ liệu 1 và 2 41

3.16 Kết quả lọc thành phần kết nối với 2 loại dữ liệu 1 và 2 42

3.17 Kết quả tách ký tự với 2 loại dữ liệu 1 và 2 42

3.18 Minh họa quy trình tách từng ký tự 43

3.19 Một mẫu tách chưa tốt 43

3.20 Kết quả xử lý ảnh bị cắt lệch 43

3.21 Mẫu dữ liệu minh họa Dataset-3 và Dataset-4 44

3.22 Kết quả tiền xử lý mẫu dữ liệu Dataset-3 và Dataset-4 44

3.23 2 mẫu captcha minh họa quy trình thực nghiệm 45

3.24 Captcha được chuyển sang ảnh xám 45

3.25 Captcha được chuyển sang ảnh xám 45

3.26 Captcha sau bước xử lý cuối cùng 45

Nguyễn Duy Anh vi Cơ sở toán cho tin học

Trang 8

3.1 Các tham số mạng CNN dùng trong thực nghiệm 343.2 Bảng so sánh kết quả thực nghiệm dữ liệu Dataset-1 với Dataset-2 463.3 Bảng so sánh kết quả thực nghiệm dữ liệu Dataset-3, Dataset-4 vàDataset-5 463.4 Bảng so sánh kết quả thực nghiệm tổng quan các bộ dữ liệu 47

Trang 9

Lời nói đầu

Để hoàn thành luận văn thạc sĩ là cả một quá trình đầy khó khăn và thử thách tronghọc tập và nghiên cứu tại trường Đại học Khoa học Tự nhiên Để có được những thànhquả như ngày hôm nay, ngoài những nỗ lực của bản thân, không thể không nhắc tới

là sự động viên, giúp đỡ của các thầy, cô giáo, bạn bè và người thân trong gia đình

Em xin chân thành cảm ơn TS Đỗ Thanh Hà là cán bộ giảng viên của 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 về cảchuyên môn, nghiên cứu và định hướng phát triển trong suốt quá trình làm luận vănlẫn phát triển trong tương lai

Em cũng xin chân thành cảm ơn các thầy cô giáo trong nhà trường, đặc biệt làcác thầy cô trong khoa Toán - Cơ - Tin học đã nhiệt tình giảng dạy và giúp em trang

bị những kiến thức nền tảng cần thiết nhất để phát triển bản thân trong con đườngtương lai

Tuy nhiên vì kiến thức chuyên môn còn hạn chế và bản thân còn thiếu nhiều kinhnghiệm thực tiễn nên nội dung của luận văn không tránh khỏi những thiếu sót, em rấtmong nhận sự góp ý và chỉ bảo của quý thầy cô để hoàn thiện hơn luận văn cũng nhưkiến thức của bản thân

Em xin chân thành cảm ơn!

Hà Nội,ngày 19 tháng 5 năm 2019

Học viên cao học

Nguyễn Duy Anh

viii

Trang 10

Giới thiệu về captcha

Trong thời đại công nghệ hiện nay đa số người dùng sử dụng máy tính đều quen vớiviệc sử dụng captcha Captcha có thể được gặp ở bất cứ đâu trên môi trường internetvới mục đích chính là phân biệt máy tính với con người để chống lại các hình thứcspam Captcha có nhiều loại: âm thanh, đánh tích, sắp xếp hình ảnh và hình ảnh ký

tự bị làm nhiễu Chương này sẽ tập trung giới thiệu một số vấn đề về captcha dạnghình ảnh ký tự bị làm nhiễu

Một hệ thống captcha là một dạng kiểm thử được tạo ra tự động thỏa mãn cácđiều kiện sau:

1 Các máy tính hiện nay không thể giải được một cách chính xác

2 Đa số con người có thể giải được

3 Người tấn công có thể biết trước các kiểu captcha

Trang 11

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

Hình 1.1: Một số mẫu captcha

Hình 1.1 (a) mô tả một mẫu captcha được chương trình EZ-Gimpy tạo ra [13], đãđược Yahoo sử dụng vào những năm 2000 Tuy nhiên, đã có những công nghệ nhậndạng tự động được loại captcha này Captcha hình 1.1 (b) làm cho nội dung khó nhận

ra hơn bằng cách thêm vào đường gạch ngang và bố trí ký tự không thẳng hàng

ra hệ thống captcha có thể coi là đầu tiên Với mục đích chống lại hệ thống nhận dạng

ký tự quang học (OCR) Vào năm 2000 Von Ahn và Blum đã phát triển nhiều mẫucaptcha được sử dụng rộng rãi và công khai khái niệm captcha để định danh nhữngchương trình có thể phân biệt được máy tính và con người

b Bảo vệ đăng ký Email, Website: Hiện nay có không ít công ty cung cấp dịch vụtạo email miễn phí, đi kèm với đó là sự xuất hiện của những chương trình tự độngđăng ký email tràn lan Đặc biệt các website ngày nay đa số đều cho phép đăng

ký tài khoản miễn phí thông qua email Sự liên kết giữa email và website này làđối tượng rất dễ bị spam nên luôn cần được bảo vệ bởi captcha nhằm chống lại

sự lạm dụng các chương trình tự động

Nguyễn Duy Anh 2 Cơ sở toán cho tin học

Trang 12

c Bảo vệ các cuộc thăm dò trực tuyến: Vào tháng 11 năm 1999, một trang web đã

tổ chức cuộc thăm dò trực tuyến bình chọn trường đại học có ngành khoa họcmáy tính tốt nhất Và rất nhanh chóng nó trở thành cuộc đua bỏ phiếu bằng cácchương trình tự động giữa hai đại học lớn là CMU và MIT [5] Từ đó tính chínhxác của các cuộc thăm dò trực tuyến đã bị đặt những dấu hỏi lớn Để giải quyếtvấn đề này captcha chính là câu trả lời với ứng dụng phân biệt giữa máy tínhvới con người sẽ giúp đảm bảo sự chính xác của các kết quả thăm dò trực tuyếnkhông còn bị làm sai lệch bởi các công cụ đánh giá tự động nữa

1.3 Quá trình sinh captcha

Captcha được hình thành bởi 2 thành phần chính là nội dung captcha và nhiễu captcha.Tùy vào yêu cầu về độ phức tạp của captcha mà 2 thành phần này được xây dựng theonhiều phương pháp khác nhau nhưng vẫn xoay quanh một định hướng nhất định

1 Tạo nội dung captcha

Nội dung captcha thường được tạo bởi các ký tự chữ, số cả dạng viết hoa và viếtthường sử dụng ngẫu nhiên tùy theo mỗi loại Các loại captcha phổ biến thườngbao gồm cả chữ và số để đảm bảo độ khó nhất định Tuy nhiên trong thời điểmhiện tại vẫn còn không ít trang web sử dụng các loại captcha toàn chữ hoặc toàn

số, những captcha có nội dung đơn giản như vậy rất dễ bị tấn công và nhận dạng

tự động Do đó nội dung là một trong số các yếu tố quan trọng để đánh giá độ

an toàn của captcha

2 Tạo nhiễu captcha

Một thành phần không thể thiếu để tạo nên độ khó của captcha là nhiễu captcha.Hiện nay cách tạo nhiễu của captcha rất phong phú và đa dạng như :

a Làm méo, bẻ cong ký tự theo nhiều hình dạng

b Phủ các thành phần làm nhiễu lên captcha như chấm hạt, các đoạn gạchngang, các mảng màu khác biệt v.v phủ lên ký tự

c Đổi màu ngẫu nhiên các thành phần nhiễu và cả ký tự trên captcha

d Biến đổi độ đậm nhạt ngẫu nhiên các thành phần nhiễu và cả ký tự trêncaptcha

e Phối hợp ngẫu nhiên một hoặc nhiều các phương pháp trên

Trang 13

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

Hình 1.2 giới thiệu một số mẫu captcha phổ biến hiện nay được tạo nhiễu bởiphương pháp phối hợp nhiều kiểu nhiễu (e) Các kiểu nhiễu của captcha đượctùy biến rất phong phú và đa dạng nhưng không phối hợp quá nhiều kỹ thuậtlàm nhiễu vì sẽ gây khó khăn cả cho con người khi nhận dạng

Hình 1.2: Một số mẫu captcha được tạo nhiễu bởi phương pháp phối hợp ngẫu nhiênmột hoặc nhiều loại nhiễu khác nhau

Trong mỗi công cụ sinh captcha nhất định sau khi sinh captcha luôn tạo kèm một

bộ giải captcha tự dộng Bộ giải này luôn đi kèm với bộ sinh captcha khi dùng trongcác hệ thống thực tế và cũng trở thành mục tiêu tấn công chính của các hacker hiệnnay

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

Ngày nay captcha được sử dụng rất phổ biến như một thành phần quan trọng trongquy trình bảo mật an ninh an toàn thông tin Song hành với điều này các nỗ lưc trongviệc tự động hóa các cuộc tấn công nhằm vào các website như: quảng cáo quy mô lớn,can thiệp vào các hệ thống bình chọn trực tuyến, tấn công từ chối dịch vụ các website;Tạo ra các liên kết giả để nâng hạng của website trong các máy tìm kiếm; Truy cậpthông tin bí mật hoặc lây lan mã độc v.v Từ đó nhu cầu đánh giá và kiểm định vànâng cấp độ an toàn của mỗi loại captcha trước khi đưa vào sử dụng trong thực tế làrất cần thiết Phương pháp cụ thể và phổ biến nhất là nghiên cứu và tìm ra cách tấncông giả định vào các mẫu captcha, hay chính là thực hiện nhận dạng captcha tự độngbằng máy không phải con người để phủ định mục đích chính mà captcha được tạo ra.Nhận dạng tự động captcha được chia thành 2 kỹ thuật chính là nhận dạng cứng vànhận dạng mềm

1 Nhận dạng cứng

Nhận dạng cứng là một phương pháp nhận dạng tự động mang tính kỹ thuật

Nguyễn Duy Anh 4 Cơ sở toán cho tin học

Trang 14

cao Phương pháp này tập trung vào các điểm yếu trong quá trình sinh và kiểmtra thông qua bộ giải captcha Các phương pháp này sử dụng nhiều cách khácnhau để vượt qua bước kiểm tra captcha, trong đó có hai hướng phổ biến nhất

là tấn công vào máy khách và tấn công vào máy chủ [2]

a Một số dạng tấn công máy khách:

- Tấn công vào các trường ẩn và vùng lưu trữ trên máy khách: bằng nhiềuthủ thuật khác nhau, người tấn công có thể khai thác được bộ giải captchanằm trong các trường ẩn và vùng lưu trữ của máy khách do đặc điểm kém

an toàn của nó

- Tấn công lựa chọn giá trị chuỗi CAPTCHA: trong trường hợp bộ sinhcaptcha đặt ở máy khách và bộ giải captcha ở máy chủ thì người tấn côngvẫn có thể lấy được một số thông tin chuỗi captcha nhất định trong bộ giảiđặt ở máy chủ và sử dụng nó để tấn công captcha

- Tấn công bằng cách sử dụng con người để nhận dạng: dạng tấn công lợidụng lao động giá rẻ ở một số quốc gia để thực hiện nhận dạng hỗ trợ chocác phương pháp tấn công khác

2 Nhận dạng mềm

Nhận dạng mềm là một phương pháp nhận dạng tự động mang tính học thuậtcao Với mục đích chính là nghiên cứu và xây dựng các phương pháp sử dụngnhững kiến thức trong các lĩnh vực về trí tuệ nhân tạo cụ thể là thị giác máytính, học máy thống kê để xây dựng các công cụ tự động nhận dạng và xử lý cácloại captcha mà không cần quan tâm tới quy trình sinh và kiểm tra captcha nhưphương pháp nhận dạng cứng

Năm 2017 trong bản báo cáo nghiên cứu về hiệu quả kỹ thuật nhận dạng tự độngcaptcha dựa trên nhận dạng văn bản [10] của Xiangyang Luo, và cộng sự có tổnghợp sự phát triển của kỹ thuật nhận dạng tự động captcha theo các năm minh

Trang 15

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

họa trong hình 1.3 và 1.4

Thời kì đầu những năm từ 2003 tới 2008 các phương pháp tấn công thường sửdụng bao gồm đánh giá độ méo, và sử dụng mô hình CNN với hiệu quả biến độngtùy vào từng bộ dữ liệu và phương pháp sử dụng ( [25], [7], [28], [9], [29])

Hình 1.3: Một số kết quả tấn công captcha 2003-2008 tổng hợp trong tài liệu [10]

Từ những năm 2009 tới 2016 việc ứng dụng các mô hình học máy vào nhận dạng

tự động captcha ngày một phổ biến và linh hoạt, một số mô hình có thể kể đếnbao gồm SVN, KNN, CNN, v.v Có thể thấy mô hình CNN vẫn được sử dụngphổ biến do tính năng ưu việt và tiềm năng phát triển phong phú của nó đối vớibài toán nhận dạng ( [22], [19], [3], [4], [15] [17], [18], [16], [21])

Hình 1.4: Một số kết quả tấn công captcha 2009-2016 tổng hợp trong tài liệu [10]

Nguyễn Duy Anh 6 Cơ sở toán cho tin học

Trang 16

Nội dung luận văn này sẽ tập trung tìm hiểu và thực nghiệm với phương phápnhận dạng mềm sử dụng mô hình nhận dạng là CNN.

Chương này đã trình bày các vấn đề xung quanh captcha gồm 4 nội dung chính là:Định nghĩa, lịch sử và ứng dụng, quá trình sinh, các kĩ thuật tấn công captcha Vớimục đích tìm hiểu các kỹ thuật tấn công captcha tập trung xây dựng các công cụ thựcnghiệm để kiểm thử và đánh giá độ an toàn của một số bộ captcha Trong chương tiếptheo luận văn sẽ giới thiệu chi tiết các lý thuyết tiền xử lý và áp dụng mô hình CNN

để nhận dạng tự động các ký tự trong ảnh captcha

Trang 17

áp dụng mô hình CNN để nhận dạng tự động captcha.

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

Định nghĩa 2.1.1 Hình thái toán học (Mathematical morphology) [24] là một

lý thuyết và kỹ thuật để phân tích và xử lý cấu trúc hình học, dựa trên lý thuyết tậphợp, lý thuyết lưới và hàm ngẫu nhiên

Hình thái toán học là phương pháp khá phổ biến trong xử lý ảnh số, đây là mộttrong những kỹ thuật quan trọng được áp dụng trong giai đoạn tiền xử lý hình ảnh để

có được ảnh đầu vào tốt cho hệ thống nhận dạng

Định nghĩa 2.1.2 Một ảnh I là một ánh xạ từ tập Sp gồm các tọa độ điểm ảnh

p = (r, c) ( tập không gian ảnh) vào tập các giá trị G thỏa mãn: với mỗi tọa độ điểmảnh p tồn tại một giá trị I(p) ∈ G

Định nghĩa 2.1.3 Một ảnh nhị phân có 2 giá trị G = {Vf g, Vbg} trong đó Vf g đượcgọi là giá trị foreground và Vbg được gọi là giá trị background

Thông thường Vf g = 0 và Vbg = −∞ Ngoài ra Vf g và Vbg có thể nhận các giá trịkhác bao gồm {Vf g, Vbg} = {0, ∞}, {0, 1}, {1, 0}, {0, 255}, {255, 0} trong nội dung luậnvăn này đặt {Vf g, Vbg} = {255, 0}

Định nghĩa 2.1.4 Foreground của một ảnh nhị phân I được định nghĩa như sau

F G{I} = {I(p), p = (r, c) ∈ Sp|I(p) = Vf g} (2.1)

8

Trang 18

Định nghĩa 2.1.5 Background của một ảnh nhị phân I được định nghĩa như sau.

BG{I} = {I(p), p = (r, c) ∈ Sp|I(p) = Vbg} (2.2)Như vậy F G{I} ∪ BG{I} = I và F G{I} ∩ BG{I} = ∅

Bên cạnh đó có thể thấy background là phần bù của foreground và ngược lại

BG{I} = {F G{I}C}, F G{I} = {BG{I}C} (2.3)Hình 2.1 minh họa về khái niệm foregrounf và background của một ảnh nhị phân

I với c = 255

Hình 2.1: Biểu diễn một ảnh số, mỗi ô vuông là một điểm ảnh

Định nghĩa 2.1.6 Support của một ảnh I là tập vị các điểm ảnh foreground trongkhông gian ảnh

supp(I) = {p = (r, c) ∈ Sp|I(p) = Vf g} (2.4)Định nghĩa 2.1.7 Phần bù của support là tập vị trí các điểm ảnh background trongkhông gian ảnh

supp(I)C = {p = (r, c) ∈ Sp|I(p) = Vbg} (2.5)Định nghĩa 2.1.8 Thành phần cấu trúc (Structuring Element (SE) ) [12] làmột ảnh nhỏ, được sử dụng như một của sổ dịch chuyển nhằm hỗ trợ phác họa hàngxóm của một điểm ảnh trong không gian ảnh

Hình 2.2 minh họa về các SE được sử dụng trong luận văn trong đó FG là màuxám BG là màu trắng

Trang 19

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

Hình 2.2: Một số dạng SE

SE có thể có bất kì hình dáng kích thước nào với tâm tùy ý như trong hình 2.2điểm tròn trắng là tâm của thành phần cấu trúc Ngoài ra một số hình dạng phổ biếncủa SE thường được sử dụng hiện nay như dạng hình thoi, hình chữ thập thẳng hoặcchéo và dạng đường theo chiều ngang, dọc

Định nghĩa 2.1.9 Cho ảnh I và Z là SE, Z + p được hiểu là Z được di chuyển saocho tâm của nó trùng với vị trí p ∈ Sp khi đó tập các vị trí trong ảnh được phác họabởi Z + p gọi là Z-hàng xóm của p kí hiệu N {i, Z}(p)

Định nghĩa 2.1.10 Cho Z là SE, ζ là hình vuông gồm vị trí các điểm ảnh mà chứatập {(r, c), (−r, −c)|(r, c) ∈ supp(Z)} Khi đó ¯Z(a, b) = Z(a, b)∀(a, b) ∈ ζ là thànhphần cấu trúc phản chiếu của Z

Có thể hiểu về mặt kĩ thuật ¯Z là Z quay 180 độ quanh tâm của nó như hình 2.3dưới đây

Hình 2.3: Ví dụ về SE phản chiếu

Nguyễn Duy Anh 10 Cơ sở toán cho tin học

Trang 20

Trong nội dung luận văn này phép giãn nở được áp dụng với định nghĩa thứ 3 Với

ví dụ minh họa trong hình 2.4 ta áp dụng công thức (2.8) để thực hiện phép giãn nởảnh I với SE là ảnh Z

Hình 2.4: Ví dụ phép giãn nở với ảnh I và phần tử cấu trúc Z

Trang 21

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

2.1.2 Phép toán co

Tương tự như phép giãn nở phép co (Erosion) [12] cũng có nhiều cách định nghĩa và

ba trong số các định nghĩa có thể áp dụng cho ảnh nhị phân là:

1 Tập tất cả các vị trí điểm ảnh p trong không gian ảnh mà thỏa Z + p là tập concủa I

Hình 2.5: Ví dụ phép co với ảnh I và thành phần cấu trúc Z

Nguyễn Duy Anh 12 Cơ sở toán cho tin học

Trang 22

2.2 Lọc ảnh

Lọc ảnh (Image Filtering) là một bước rất quan trọng trong quá trình tiền xử lý hìnhảnh với các mục đích khá đa dạng như lọc nhiễu, làm nét hình ảnh v.v Phần này sẽgiới thiệu nguyên tắc chung của lọc ảnh và một số phép lọc ảnh cơ bản

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

Nguyên tắc chung của các phương pháp lọc là cho ma trận ảnh tích chập với một matrận lọc (Kernel) Ma trận lọc lọc còn có thể được gọi là cửa sổ chập (trong phép nhântich chập), cửa sổ lọc, mặt nạ v.v Trong luận văn sử dụng thuật ngữ kernel

Việc tính tích chập ảnh với kernel thực hiện bằng cách trượt kernel lần lượt trêntừng điểm ảnh của ảnh theo hàng và thực hiện phép tích chập với từng vùng chiếu củakernel trên ảnh với tâm của kernel trùng với điểm ảnh đang xét Phép tính tích chập

sẽ được giới thiệu chi tiết tại mục 2.3.1 Hình 2.6 minh họa nguyên tắc lọc ảnh trênảnh I với kenel kích thước 3 × 3 (vùng màu xám trên ảnh I) và ảnh kết quả O với cácđiểm ảnh đầu ra được biết đổi màu xám

Trang 23

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

trung bình cho ra tọa độ tương ứng trong ảnh kết quả D

D(3, 3) = (7 + 2 + 1 + 6 + 2 + 8 + 6 + 7 + 7)/9 = 1

9× 46

Hình 2.8: Kết quả tính phép lọc trung bình trên ảnh I được ảnh D

Thực hiện tương tự với các điểm khác trong I ta sẽ có kết quả là ảnh D như tronghình 2.8

2.2.2 Phép lọc Gauss

Phép lọc Gauss là cách làm mờ hình ảnh bằng cách tính tích chập hình đó với kernel làGausian Blur Nó có thể giúp làm giảm nhiễu và mức độ chi tiết (không mong muốn)của hình ảnh Về mặt trực quan, đây được xem như là phương pháp làm mờ mịn cũnggiống như hiệu ứng hình ảnh được đặt dưới một lớp màn trong suốt bị mờ

Gaussian blur là một loại kernel làm mờ ảnh, sử dụng lý thuyết hàm Gaussian

để tính toán việc chuyển đổi mỗi điểm ảnh của hình Dưới đây là phương trình hàmGaussian dùng trong không gian ảnh hai chiều

Nguyễn Duy Anh 14 Cơ sở toán cho tin học

Trang 24

Hình 2.9: Minh họa kernel Gausian blur

Giá trị mới của mỗi điểm ảnh sau khi tính tích chập với kernel đại diện cho hàmGaussian có thể coi là trung bình lượng giá của các điểm ảnh xung quanh nó Giá trịlượng giá của phần tử trung tâm kernel tương ứng với điểm ảnh đang xét là lớn nhất,giá trị này sẽ nhỏ hơn đối với các phần tử tương ứng với những điểm ảnh kế cận mộtcách đối xứng và tỉ lệ thuận với khoảng cách của phần tử này với trung tâm Tính chấtnày giúp giữ lại đường viền và biên cũng như làm mờ một cách đồng bộ hơn so với cácphương pháp khác

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

Trong phép lọc ảnh có một trường hợp đặc biệt đó là phép lọc trung vị Phép lọc trung

vị thực hiện bằng cách sắp sếp các giá trị mức xám tăng dần trong vùng cục bộ rồi lấygiá trị trung vị mức xám thay thế mức xám ở tâm vùng cục bộ

Với phép lọc trung bình ở trên, giá trị điểm trung tâm được tính mới (có thể bằnghoặc khác với giá trị một điểm trong vùng ma trận lọc), còn với phép lọc trung vị, giátrị điểm trung tâm luôn được thay bằng một giá trị điểm ảnh trong ảnh đầu vào Dovậy, phương pháp lọc này phù hợp dùng để loại bỏ nhiễu hạt, nhiễu muối tiêu khá tốt

Ví dụ : Hình 2.10 minh họa phép lọc trung vị với một điểm ảnh trong ảnh gốc thựchiện trên vùng cục bộ bao quanh điểm ảnh đó

Trang 25

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

Hình 2.10: Kết quả tính phép lọc trung vị tại một vùng cục bộ

Ví dụ trong hình 2.11 thể hiện kết quả lọc ảnh bằng bộ lọc Gauss và bộ lọc trung

Nguyễn Duy Anh 16 Cơ sở toán cho tin học

Trang 26

2 Điểm neo (anchor point) của kernel thường được chọn là tâm của kernel Giá trịmỗi phần tử trên kernel được xem như là hệ số tổ hợp với lần lượt từng giá trị

độ xám của điểm ảnh trong vùng tương ứng với kernel

Theo hướng thực nghiệm phép tính tích chập giữa một ảnh I và một kernel K làquét K trên từng điểm ảnh của I, tại mỗi điểm ảnh trên I thực hiện phép tích chậpchập giữa K với ma trận tương ứng do K chiếu xuống điểm ảnh đó sao cho tâm của

K trùng với điểm ảnh đang xét Với các điểm ảnh ở biên để thực hiện tính toán, ảnhgốc thường được mở rộng biên với số lượng cột và hàng của đường biên được mở rộng

là tùy chọn nhưng thường phụ thuộc vào kiểu kernel sao cho khi trượt trên ảnh đã mởrộng không bị thiếu vùng để tính toán Các giá trị của đường biên thường được chọnbằng 0 hoặc những giá trị điểm ảnh gần đó Trong luận văn giá trị đường biên đượcchọn bằng 0

Ví dụ: phép tính tính chập giữa 1 ảnh xám I với kernel K

Hình 2.12: Ảnh xám I, ảnh I0 mở rộng biên 0 xung quanh I và kernel K

Hình 2.13: Nhân tích chập tại điểm I11 với K theo công thức (2.13) cho ra điểm r11Lấy ma trận trận được chiếu bởi K của I11 (vùng xanh lá) trong ảnh I0 thực hiệnphép nhân tích chập với kernel K theo công thức (2.13) sẽ có kết quả là điểm ảnh r11

Trang 27

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

trong ảnh đầu ra R đươc tính như sau:

r11 = w00× I22 + w10× I12 + w20× 0 + w01× I21 + w11 (2.14)

×I11 + w21× 0 + w02× 0 + w12× 0 + w22× 0

Hình 2.14: Lấy ma trận hàng xóm điểm I22 nhân tích chập với K cho ra điểm r22Tiếp theo quét kernel K lần lượt trên các điểm ảnh của I và tính toán tương tựnhư trên Khi qua các điểm ảnh biên của I các phần thiếu với công thức (2.13) đượcthay bằng điểm ảnh biên trong ảnh I0 là 0 Khi quét K tới những điểm ảnh không phảibiên trên I thì công thức (2.13) sẽ được tính với thông số đầy đủ Điểm ảnh r22 trongảnh kết quả R được tính như sau:

r22= w00× I33 + w10× I23 + w20× I13 + w01× I32 + w11 (2.15)

×I22+ w21× I12 + w02× I31 + w12× I21 + w22× I11

Thực hiện tương tự lần lượt với các điểm ảnh trong ảnh gốc cho đến hết I44 ta sẽ

có được hình ảnh kết quả R có kích thước 4 × 4 đã được biến đổi hoàn toàn bằng phéptính tích chập

Đối với ảnh màu, bộ lọc có 3 chiều tương ứng với 3 kênh màu của ảnh, thực hiệntính tích chập trên mỗi kênh màu với mỗi chiều của bộ lọc tương ứng, kết quả cuốicùng là tổng hợp tuyến tính của tích chập trên 3 kênh màu của ảnh Tuy nhiên, sốlượng bộ lọc được áp dụng lên 1 kênh màu cũng có thể lớn hơn 1 và sự kết hợp củacác tích chập cũng không nhất thiết phải là tổng của các kết quả mà có thể sử dụngmột bộ trọng số nào đó để tính tổng các kết quả tích chập thu được

Phép tính tích tập có rất nhiều tác dụng trong xử lý hình ảnh Với tác dụng đặctrưng là trích chọn các đặc trưng cụ thể hình ảnh dựa vào sự biến đổi của kernel Hình2.16 và hình 2.17 dưới đây sẽ minh họa trực quan tác động của phép tính tích chậpvới ảnh gốc ở hình 2.15

Nguyễn Duy Anh 18 Cơ sở toán cho tin học

Trang 28

Hình 2.15: 2 ảnh gốc

Thực hiện phép nhân tích chập với 2 kernel được định nghĩa khác nhau sẽ có đượccác ảnh kết quả đặc trưng như hình 2.16 và 2.17

Hình 2.16: Nhân tích chập với kernel K1 hiện rõ các cạnh theo chiều ngang

Hình 2.17: Nhân tích chập với kernel K2 hiện rõ các cạnh theo chiều dọcQua đó có thể thấy được phép tính tích chập có ứng dụng rút trích đặc trưng rất

đa dạng và là một tiền đề tốt cho các vấn đề nhận dạng nội dung trong hình ảnh Bêncạnh đó cũng là thành phần quan trọng trong mô hình mạng nơ-ron tích chập CNNtrong phần tiếp theo

Trang 29

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

Các tế bào đơn giản được kích hoạt khi nhận dạng các hình dáng đơn giản nhưđường nằm ngang trong một khu vực cố định và một góc cạnh của nó Các tế bào phứctạp có vùng tiếp nhận lơn hơn và đầu ra của nó không nhạy cảm với những vị trí cốđịnh trong vùng Trong thị giác, vùng tiếp nhận của một nơ-ron tương ứng với mộtvùng trên võng mạc nơi mà sẽ kích hoạt nơ-ron tương ứng

Năm 1980, Fukushima đề xuất mô hình mạng nơ-ron có cấp bậc gọi là neocognitron.[14] Mô hình này dựa trên khái niệm về S cell và C cell Mạng neocognitron có thểnhận dạng mẫu dựa trên việc học hình dáng của đối tượng

Sau đó vào năm 1998, Mạng nơ-ron Tích Chập được giới thiệu bởi Bengio, Le Cun,Bottou và Haffner Mô hình đầu tiên của họ được gọi tên là LeNet-5 [30] Mô hình này

có thể nhận dạng chữ số viết tay

Kiến trúc mạng tích chập

Mạng nơ-ron tích chập [1] có kiến trúc khác với mạng nơ-ron thông thường Mạngnơ-ron bình thường chuyển đổi đầu vào thông qua hàng loạt các tầng ẩn Mỗi tầng làmột tập các nơ-ron và các tầng được liên kết đầy đủ với các nơ-ron ở tầng trước đó

Và ở tầng cuối cùng sẽ là tầng kết quả đại diện cho dự đoán của mạng

Đầu tiên, mạng tích chập được chia thành 3 chiều: rộng, cao, và sâu Kế đên, cácnơ-ron trong mạng không liên kết hoàn toàn với toàn bộ nơ-ron kế đến nhưng chỉ liênkết tới một vùng nhỏ Cuối cùng, một tầng đầu ra được tối giản thành vecter của giátrị xác suất

CNN gồm hai thành phần chính là:

a Phần mã hóa hay phần rút trích đặc trưng: trong phần này, mạng sẽ tiến hànhtính toán hàng loạt phép tích chập và phép hợp nhất (pooling) để phát hiện cácđặc trưng Ví dụ: nếu ta có hình ảnh con ngựa vằn, thì trong phần này mạng sẽnhận dạng các sọc vằn, hai tai, và bốn chân của nó

b Phần phân lớp: tại phần này, một lớp với các liên kết đầy đủ sẽ đóng vai trò nhưmột bộ phân lớp các đặc trưng đã rút trích được trước đó Tầng này sẽ đưa raxác suất của một đối tượng trong hình

Nguyễn Duy Anh 20 Cơ sở toán cho tin học

Trang 30

Hình 2.18: Minh họa mô hình CNN để nhận dạng 1 ký tự [26]

Mô hình CNN được minh họa cụ thể trên hình 2.18 nội dung tiếp theo sẽ giới thiệuchi tiết của từng thành phần trong mạng tích chập

1 Tầng tích chập (Convolution layer, CONV)

Tầng tích chập là tầng quan trọng nhất trong mạng vì kết quả của nó quyết địnhlớn nhất đến độ chính xác của đầu ra toàn mạng Như đã giới thiệu về tích chập

ở trên, tầng này cũng thực hiện theo phương pháp như vậy nhưng điểm khác biệt

là các bộ lọc kết nối đến từng vùng của dữ liệu đầu vào để tính toán

- AddPadding P1 và P2 là số lượng hàng và cột cần tăng thêm mỗi phía chođầu vào Mục đích để tính toán không bị gián đoạn khi áp bộ lọc lên các vịtrí biên của dữ liệu đầu vào Giá trị P cũng góp phần quyết định kích thướccủa kết quả đầu ra

Đầu ra là một tensor có kích thước: o1× o2 × K với:

o1 = (x1− f1+ 2P1)/S1+ 1 (2.16)

o = (x − f + 2P )/S + 1 (2.17)

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w