Chương 1 tóm tắt về phát hiện và nhận dạng ký tự, quá trình hình thành và phát triển của trí tuệ nhân tạo, học máy và học sâu. Các kiến thức nền tảng này sẽ là nền tảng cơ bản trong liên quan đến định hướng nghiên cứu, tìm hiểu của luận văn. 17 Luan van CHƯƠNG 2. GIỚI THIỆU VỀ MẠNG CONVOLUTION NEURAL NETWORK 2.1 Giới thiệu sơ lược về CNN Mạng CNN được sử dụng rộng rãi, áp dụng rất nhiều trong trích xuất đặc trưng của ảnh, người ta sử dụng CNN nhiều trong các bài toán nhận biết cũng như phân loại hình ảnh.
Trong bài toán phân loại hình ảnh sử dụng CNN thì đầu vào là một ảnh số, máy tính dựa vào các giá trị điểm ảnh sau đó đưa ra kết luận loại mà bức ảnh thuộc về cho bài toán phân loại, máy tính chỉ nhìn thấy bức ảnh như một mảng của các giá trị điểm ảnh. Một bức ảnh thể hiện bởi ba thông số W, H, D trong đó W là chiều rộng của ảnh, là số lượng điểm ảnh trên một hàng của ma trận ảnh, còn H là chiều cao của ảnh, là số lượng điểm ảnh trên một cột của ma trận ảnh, D là chiều hay còn gọi là độ sâu của ảnh, ví dụ một ảnh tạo bởi 3 kênh màu RGB và có chiều cao là 6 và chiều rộng là 6 thì được kí hiệu là 6 × 6 × 3 ví dụ đối với ảnh có kích thước dài và rộng như trên nhưng mà là ảnh một kênh màu, như ảnh xám được kí hiệu là 6 × 6 × 1. Trong DL thì đầu vào đi qua một chuỗi các tầng CNN với các bộ lọc. Kết hợp với các tầng gộp (Pooling) và kết nối đầy đủ (fully connected) và ở tầng cuối áp dụng hàm Softmax để đưa ra xác suất mà đối tượng thuộc về lớp trong bài toán phân loại.
Dưới đây là luồng của mô hình bài toán phân loại sử dụng CNN Hình 2.1 Mô hình CNN sử dụng cho bài toán phân loại Sau đây ta sẽ đi chi tiết về CNN 2.2 Convolution Layer – Tầng Tích Chập 18 Luan van Ở tầng Convolution là tầng đầu tiên giúp trích xuất đặc trưng của ảnh, tầng Convolution trình bày mối quan hệ giữa các giá trị điểm ảnh bằng học các đặc trưng ảnh, sử dụng các cửa sổ hình vuông trên ảnh đầu vào. Để trích xuất đặc trưng ảnh, sử dụng một phép tính toán học với bộ lọc và ma trận điểm ảnh đầu vào. Ví dụ: Về trích xuất đặc trưng của ảnh sử dụng tích chập Một ma trận ảnh có chiều: h×w×d Một bộ lọc có: fh × fw × d Đầu ra một ma trận ảnh có chiều: (h-fh+1 ) × (w - fw +1 ) × 1 Hình 2.2 Nhân ma trận ảnh với bộ lọc Ví dụ: Xem một ma trận có kích thước 5 × 5 và có giá trị các điểm ảnh là 0 hoặc 1, xét một bộ lọc có kích thước 3 × 3 .3 Ma trận và bộ lọc Sau đó thực hiện tính tích chập của ma trận 5 × 5 với ma trận bộ lọc 3 × 3. Sẽ thu được một ma trận đầu ra gọi là 'Feature Map' 19 Luan van Hình 2.4 Kết quả thực hiện phép nhân Tích chập của một ảnh với các bộ lọc khác nhau sẽ đưa ra các kết qủa khác nhau, như phát hiện cạnh, làm mờ, làm sắc nét ảnh.
Hoạt động Bộ lọc Giữ nguyên 0 0 0 [ 0 1 0] 0 0 0 Phát hiện cạnh 1 0 −1 [0 0 0] −1 0 1 0 1 1 [1 −4 1] 0 1 1 −1 −1 −1 [−1 8 −1] −1 −1 −1 Làm sắc nét 0 −1 0 [−1 5 −1] 0 −1 0 Làm mờ 1 1 1 1 [ 1 1 1] 9 1 1 1 Làm mờ theo Gaussian 1 1 2 1 [ 2 4 2] 16 1 2 1 Bảng 2.1 Một số bộ lọc khác 2.3 Strides – Bước nhảy 20 Luan van Bước nhảy là số lượng của điểm ảnh được nhảy qua trên ma trận đầu vào, khi bước nhảy là một thì chúng di chuyển bộ lọc một điểm ảnh sau mỗi lần, khi bước nhảy là hai thì bộ lọc sẽ di chuyển qua hai điểm ảnh sau mỗi lần.5 Đầu ra của ma trận có bước nhảy là hai 2.4 Padding – Đệm Thi thoảng bộ lọc không vừa với ảnh đầu vào, chúng ta sẽ có hai tùy chọn đó là: • Đệm thêm các giá trị 0 vào viền sao cho vừa khít • Bỏ đi phần của bức ảnh nếu bộ lọc không khít 2.5 Non Linearity (ReLU) – Phi tuyến tính Hàm ReLu cho hoạt động phi tuyến tính, hàm được định nghĩa: f (x ) = max (0, x ) PT 0.6 Hoạt động của hàm ReLU 21 Luan van Hàm quan trọng bởi vì nếu không dùng các hàm khởi tạo, mạng chỉ là những hàm tuyến tính, sẽ không áp được hiệu quả được đối với các dữ liệu phi tuyến. Là các dữ liệu không thể phân tách bởi các đường thẳng hoặc mặt phẳng và siêu phẳng. Một số hàm khác thường được sử dụng là: • tanh • Sigmoid 2.6 Pooling Layer – Tầng gộp Tầng có chức năng giảm số lượng của tham số khi mà bức ảnh đầu vào lớn, giúp bỏ đi các thông tin dư thừa, giúp giảm chiều dữ liệu, chỉ giữ lại những thông tin quan trọng, có ba loại của tầng Pooling đó là: • Max Pooling – Chọn giá trị lớn nhất. • Average Pooling – Chọn giá trị trung bình.
• Sum Pooling – Chọn tổng vùng đó. Giải thích: Max Pooling lấy phần tử lớn nhất từ feature map – biểu đồ đặc trưng. Average Pooling lấy giá trị trung bình từ feature map – biểu đồ đặc trưng Sum Pooling lấy tổng các giá trị từ feature map – biểu đồ đặc trưng.7 Max Pooling 22 Luan van 2.7 Full Connected Layer – Tầng kết nối đầy đủ. Theo như tên gọi của nó, chúng ta trải phẳng ma trận sang một véc tơ và đưa nó kết nối đầy đủ với tầng tương tự trong mạng Hình 2.8 Mô tả tầng kết nối đầy đủ 2.8 Kết luận chương.
Trong chương 2 luận văn nghiên cứu về mạng nơ ron tích chập - Convolution neural network (CNN). Trong chương này luận văn đã tìm hiểu về cơ chế hoạt động của CNN trong bài toán nhận biết cũng như phân loại hình ảnh. 23 Luan van CHƯƠNG 3. MÔ HÌNH MẠNG PIXELLINK CHO PHÁT HIỆN VĂN BẢN Có rất nhiều phương pháp cũng như thuật toán để xác định văn bản như SSD [3], CRAFT [1], Pixellink [5].
vv Nhưng khi thử một số phương pháp như CRAFT [1] thì cho kết quả không tốt trên bộ trọng số có sẵn của họ, và phương pháp này sử dụng character Map nên làm dữ liệu tốn nhiều thời gian, dữ liệu phải gán nhãn ở mức độ kí tự. Nhưng Pixellink gán nhãn ở mức độ cụm nên việc gán nhãn dễ dàng và mất ít thời gian hơn. Trong khuôn khổ thời gian luận văn, tôi chỉ mới kịp gán nhãn và thử nghiệm theo Pixellink. Những năm gần đây, áp dụng DL vào phát hiện văn bản đã đạt được nhiều thành công lớn, đa số các phương pháp đều sử dụng ít nhất hai phương thức đó là: • Phân loại mỗi điểm ảnh.
• Hồi quy hộp. Trong đó phân loại điểm ảnh là xác đinh mỗi giá trị điểm ảnh là văn bản hay không (text/non - text). Hồi quy viền xung quanh, là tìm ra các hình chữ nhật bao quanh văn bản đó. Những phương pháp trước đề xuất dùng ít nhất hai phương thức ở trên, nhưng nhận thấy sự không cần thiết của phương thức hồi quy hộp, bởi vì từ các điểm ảnh đã phân loại đã có thể suy ra các hộp chứa các văn bản đó.
Pixellink sử dụng hai cơ chế đó là phân loại các điểm ảnh và tính điểm số liên kết giữa các điểm ảnh kề nó, mỗi điểm ảnh có tối đa tám điểm ảnh kề nó. Việc phát hiện văn bản qua instance Segmentation là dự đoán các điểm ảnh thuộc văn bản và kết hợp các điểm ảnh đó vào các nhóm khác nhau, mỗi nhóm như thế gọi là một instance.1 Cấu trúc mạng 24 Luan van Để trích xuất đặc trưng của một bức ảnh thì ngoài các phương pháp học máy truyền thống như SIFT, SURF…, thì sự phát triển của học sâu ứng dụng của CNN để trích xuất đặc trưng cho thấy mang lại hiệu quả rõ rệt. Trong bài báo gốc của Pixellink họ đề xuất sử dụng mạng VGG16 để trích xuất đặc trưng, nhưng ở tầng kết nối đầy đủ thứ sáu, và tầng kết nối đầy đủ thứ bảy, được chuyển sang tầng Convolutation. Hàm số Softmax được sử dụng cho cả hai nhánh đó là dự đoán text/non-text và điểm số liên kết (Link Score) Hình 3.1 Mô hình mạng VGG16 25 Luan van Feature maps ở mỗi tầng CNN khác nhau sẽ được áp dụng cho quá trình upsample của ảnh sau khi đi qua các tầng CNN.
Tất cả các tầng pooling trừ tầng thứ 5 có bước nhảy là 2, còn tầng pooling thứ 5 có bước nhảy là 1 conv1 x 1,2(16) là tầng convoluation với kernels là 2 cho dự đoán text/non-text, 16 cho quá trình dự đoán liên kết với 8 hàng xóm xung quanh. Quá trình upsample người ta dùng bilinear interpolation để nội suy các điểm khác, sau đây tôi xin trình bày khái quát về bilinear interpolation Giả sử rằng chúng ta muốn tìm giá trị tại một điểm có tọa độ (x,y) nhưng không biết hàm số của nó, mà chỉ biết được giá trị của bốn điểm thuộc hàm số đó, chúng ta sẽ nội suy theo một phương sau đó nội suy theo phương còn lại. Giả sử đã biết trước giá trị tại 4 điểm: 𝑄11 = (𝑥1 , 𝑦1 ), 𝑄12 = (𝑥1 , 𝑦2 ), 𝑄21 = (𝑥2 , 𝑦1 ), 𝑄22 = (𝑥2 , 𝑦2 ) PT.0 Đầu tiên nội suy tuyến tính theo hướng x suy ra 𝑥2 − 𝑥 𝑥 − 𝑥1 𝑓(𝑥, 𝑦1 ) ≈ 𝑓(𝑄11 ) + 𝑓(𝑄21 ), PT.2 𝑥2 − 𝑥1 𝑥2 − 𝑥1 Sau đó nội suy theo hướng y 𝑦2 − 𝑦 𝑦 − 𝑦1 𝑓(𝑥, 𝑦) ≈ 𝑓(𝑥, 𝑦1 ) + · 𝑓(𝑥, 𝑦2 ) 𝑃𝑇.5 (𝑥2 − 𝑥1 )(𝑦2 − 𝑦1 ) 𝑓(𝑄21 )𝑓(𝑄22 ) 𝑦 − 𝑦1 Như vậy có thể nội suy từ 4 điểm cho trước Hình ảnh dưới đây mô tả quá trình phát hiện văn bản của pixellink 26 Luan van Hình 3.2 Quá trình của Pixellink 3.2 Kết nối các điểm ảnh Dự đoán phân loại mỗi lớp cho mỗi điểm ảnh và dự đoán liên kết giữa các điểm ảnh, hai ngưỡng riêng biệt này có thể được áp dụng tách rời nhau. Những điểm ảnh được dự đoán là văn bản, sau đó chúng được nhóm lại thành từng nhóm với nhau bằng cách sử dụng liên kết.