BÀI TẬP MÔN CHUYÊN ĐỀ HỆ THỐNG THÔNG TIN TÊN ĐỀ TÀI : NGHIÊN CỨU VỀ MẠNG NEURON TÍCH CHẬP VÀ ỨNG DỤNG CHO BÀI TOÁN NHẬN DẠNG CHỮ VIẾT TAY TIẾNG VIỆT CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN GIẢNG VIÊN HƯỚNG DẪN: PGS.TS. NGUYỄN QUANG HOAN HÀ NỘI – NĂM 2021 MỤC LỤC PHẦN MỞ ĐẦU Chương I. TỔNG QUAN TÀI LIỆU 1.1 . Giới thiệu. 1.1.1 . Tổng quan về nhận diện ký tự quang học 1.2 . Phạm vi nghiên cứu. 1.3 . Khái quát về xử lý ảnh. 1.3.1 . Một số khái niệm cơ bản 1.3.2 . Một số vấn đề trong xử lý ảnh ký tự 1.3.2.1 . Các hệ thống xử lý ảnh 1.3.2.2 . Các hình thái của ảnh 1.3.2.3 . Một số ứng dụng trong xử lý ảnh 1.4 . Hệ thống nhận diện ký tự viết tay. 1.4.1 . Những khó khan của bài toán 1.4.2 . Tầm quan trọng và ứng dụng của bài toán nhận dạng chữ viết tay 1.4.3 . Các thành phần của hệ thống Chương II. CƠ SƠ LÝ THUYẾT VÀ MÔ HÌNH NGHIÊN CỨU. 2.1 . Hệ thống phát hiện ký tự. 2.1.1 . Tiền xử lý 2.1.1.1 . Nhị phân hóa 2.1.1.2 . Phân ngưỡng ảnh với thuật toán Otsu 2.1.1.3 . Lọc ảnh 2.1.1.4 . Làm trơn biên chữ 2.1.1.5 . Làm mảnh chữ 2.1.1.6 . Làm đầy chữ 2.1.2 . Phát hiện ký tự, phát hiện biên canny 2.2 . Hệ thống nhận diện ký tự. 2.2.1 . Mạng nơron và mạng nơron lan truyền ngược 2.2.1.1 . Giới thiệu về mạng nơron. 2.2.1.2 . Một số kiểu mạng nơron. 2.2.1.3 . Mạng nơron truyền thẳng nhiều lớp MP 2.2.2 . Mạng nơron tích chập. 2.2.2.1 . Định nghĩa mạng nơron tích chập 2.2.2.2 . Tích chập (Convolution) 2.2.2.3 . Mô hình mạng nơron tích chập Chương III. THIẾT KẾ, MÔ PHỎNG 3.1.1 . Thu thập dữ liệu 3.1.2 . Huấn luyện dữ liệu 3.1.2.1 . Mô hình sử dụng 3.2.2.2 . Công cụ huấn luyện và phần cứng huấn luyện 3.2.2.3 . Các tiêu chi đánh giá và huấn luyện KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO DANH MỤC CHỮ VIẾT TẮT DANH MỤC ĐỒ THỊ Hình 1.1. Quá trình xử lý ảnh Hình 1.2. Các bước cơ bản trong một hệ thống xử lý ảnh Hình 1.3 Các thành phần của hệ thống nhận dạng Hình 2.1. Nhị phân hoá ảnh Hình 2.2. Ảnh và Histogram tương ứng của ảnh Hình 2.3. Minh hoạ việc lọc ảnh Hình 2.4.Minh hoạ kết quả của việc nhân ma trận Hình 2.5. Minh hoạ phép lọc Gauss Hình 2.6. (a) Ảnh gốc, (b) Ảnh sau khi được làm trơn biên. Hình 2.7. Làm mảnh chữ Hình 2.8. Phát hiện ký tự trong ảnh Hình 2.9. Tìm biên dựa trên điểm cực đại Hình 2.10. Minh hoạ về ngưỡng lọc Hình 2.11. Một vài ký tự thu được sau khi tiến hành phát hiện biên Hình 2.12. Cấu tạo một Neural Hình 2.13. Mạng tự kết hợp Hình 2.14. Mạng kết hợp khác kiểu Hình 2.15. Mạng neural lan truyền ngược MLP Hình 2.16 . Mô hình mạng neuron lan truyền ngược Hình 2.17 . Ảnh hưởng của kích thước mẫu Hình 2.18. Minh họa tích chập Hình 2.19 Ảnh mờ sau khi chập Hình 2.20. Ảnh được phát hiện biên sai khi chập Hình 2.21. Mô hình mạng neural tích chập Hình 2.22. Mô hình mạng perceptron đa tầng Hình 3.1. Một số ký tự trong bộ EMNIST Hình 3.2. Danh sách các lớp và các tham số Hình 3.3. Tóm tắt mô hình huấn luyện Hình 3.4. Độ chính xác trung bình sau mỗi vòng lặp Hình 3.5. Độ chính xác tuyệt đối của mỗi vòng lặp Hình 3.6. Giá trị trung bình của hàm mất mát qua mỗi vòng lặp Hình 3.7. Giá trị tuyệt đối của hàm mất mát tại mỗi vòng lặp Hình 3.8. Kết quả huấn luyện tổng thể DANH MỤC BẢNG LỜI MỞ ĐẦU Deep Learning là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ ý nghĩa của các từ loại dữ liệu. Deep Learning được ứng dụng trong nhận diện ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên. Hiện nay rất nhiều các bài toán nhận dạng sử dụng deep learning để giải quyết do deep learning có thể giải quyết các bài toán với số lượng lớn, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống. Convolution Neural Network (CNNs – Mạng nơron tích chập) là một trong những mô hình Deep Learning tiên tiế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. Trong bài tiểu luận này, em đi vào nghiên cứu về mạng neural cũng như mạng Convolution của mô hình CNNs trong phân lớp ảnh, và áp dụng trong việc xây dựng hệ thống nhận dạng chữ viết tay tiếng Việt. Trong bài tiểu luận này em sẽ xây dựng mô hình mạng nơron tích chập với việc sử dụng nhiều lớp khác nhau của mạng để trích chọn tự động được các đặc trưng tốt nhất trong ảnh. Đồng thời, cũng kết hợp giữa mạng nơron tích chập và Multilayer Perceptron nhằm cải thiện hiệu suất của mô hình. Nhận dạng chữ viết tay là bài toán được quan tâm rất nhiều vì nó là một trong các yêu cầu trong nhiều ứng dụng thực tế. Các ứng dụng của nhận dạng chữ viết tay đã và đang được ứng dụng vào đời sống như phục vụ cho công việc tựu động hóa đọc tài liệu, tăng tốc độ và hiệu quả nhập thông tin vào máy tính. Nhận dạng chữ viết tay có thể phục vụ cho các ứng dụng đọc và xử lý các chứng từ, hóa đơn, phiếu ghi, bản viết tay chương trình, …. Hiện nay, đã có một số đề tài nghiên cứu nhận dạng chữ viết tay sử dụng các mô hình như: K láng giềng gần nhất (KNearest Neighbor KNN), máy hỗ trợ vectơ (Suport Vector Machine SVM), mô hình Markov ẩn (Hidden Markov ModelHMM)….. Tuy nhiên, các mô hình này cho kết quả nhận dạng không cao, mất nhiều thời gian cho việc trích rút đặc trưng ảnh. Vì vậy, trong nghiên cứu này chúng tôi sẽ xây dựng một mô hình mới để có thể trích rút tự động các đặc trưng trong ảnh và mô hình mới này cũng cho kết quả tốt hơn các mô hình trước đó.
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN - - BÀI TẬP MÔN CHUYÊN ĐỀ HỆ THỐNG THÔNG TIN TÊN ĐỀ TÀI NHẬN DẠNG CHỮ VIẾT TAY TIẾNG VIỆT SỬ DỤNG MẠNG NEURON TÍCH CHẬP CHUN NGÀNH : HỆ THỐNG THƠNG TIN HÀ NỘI – NĂM 2021 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN - - BÀI TẬP MÔN CHUYÊN ĐỀ HỆ THỐNG THÔNG TIN TÊN ĐỀ TÀI : NGHIÊN CỨU VỀ MẠNG NEURON TÍCH CHẬP VÀ ỨNG DỤNG CHO BÀI TOÁN NHẬN DẠNG CHỮ VIẾT TAY TIẾNG VIỆT CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN GIẢNG VIÊN HƯỚNG DẪN: PGS.TS NGUYỄN QUANG HOAN HÀ NỘI – NĂM 2021 MỤC LỤC PHẦN MỞ ĐẦU Chương I TỔNG QUAN TÀI LIỆU 1.1 Giới thiệu 1.1.1 Tổng quan nhận diện ký tự quang học 1.2 Phạm vi nghiên cứu 1.3 Khái quát xử lý ảnh 1.3.1 Một số khái niệm 1.3.2 Một số vấn đề xử lý ảnh ký tự 1.3.2.1 Các hệ thống xử lý ảnh 1.3.2.2 Các hình thái ảnh 1.3.2.3 Một số ứng dụng xử lý ảnh 1.4 Hệ thống nhận diện ký tự viết tay 1.4.1 Những khó khan toán 1.4.2 Tầm quan trọng ứng dụng toán nhận dạng chữ viết tay 1.4.3 Các thành phần hệ thống Chương II CƠ SƠ LÝ THUYẾT VÀ MƠ HÌNH NGHIÊN CỨU 2.1 Hệ thống phát ký tự 2.1.1 Tiền xử lý 2.1.1.1 Nhị phân hóa 2.1.1.2 Phân ngưỡng ảnh với thuật toán Otsu 2.1.1.3 Lọc ảnh 2.1.1.4 Làm trơn biên chữ 2.1.1.5 Làm mảnh chữ 2.1.1.6 Làm đầy chữ 2.1.2 Phát ký tự, phát biên canny 2.2 Hệ thống nhận diện ký tự 2.2.1 Mạng nơ-ron mạng nơ-ron lan truyền ngược 2.2.1.1 Giới thiệu mạng nơ-ron 2.2.1.2 Một số kiểu mạng nơ-ron 2.2.1.3 Mạng nơ-ron truyền thẳng nhiều lớp MP 2.2.2 Mạng nơ-ron tích chập 2.2.2.1 Định nghĩa mạng nơ-ron tích chập 2.2.2.2 Tích chập (Convolution) 2.2.2.3 Mơ hình mạng nơ-ron tích chập Chương III THIẾT KẾ, MƠ PHỎNG 3.1.1 Thu thập liệu 3.1.2 Huấn luyện liệu 3.1.2.1 Mơ hình sử dụng 3.2.2.2 Công cụ huấn luyện phần cứng huấn luyện 3.2.2.3 Các tiêu chi đánh giá huấn luyện KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO DANH MỤC CHỮ VIẾT TẮT DANH MỤC ĐỒ THỊ Hình 1.1 Quá trình xử lý ảnh Hình 1.2 Các bước hệ thống xử lý ảnh Hình 1.3 Các thành phần hệ thống nhận dạng Hình 2.1 Nhị phân hố ảnh Hình 2.2 Ảnh Histogram tương ứng ảnh Hình 2.3 Minh hoạ việc lọc ảnh Hình 2.4.Minh hoạ kết việc nhân ma trận Hình 2.5 Minh hoạ phép lọc Gauss Hình 2.6 (a) Ảnh gốc, (b) Ảnh sau làm trơn biên Hình 2.7 Làm mảnh chữ Hình 2.8 Phát ký tự ảnh Hình 2.9 Tìm biên dựa điểm cực đại Hình 2.10 Minh hoạ ngưỡng lọc Hình 2.11 Một vài ký tự thu sau tiến hành phát biên Hình 2.12 Cấu tạo Neural Hình 2.13 Mạng tự kết hợp Hình 2.14 Mạng kết hợp khác kiểu Hình 2.15 Mạng neural lan truyền ngược MLP Hình 2.16 Mơ hình mạng neuron lan truyền ngược Hình 2.17 Ảnh hưởng kích thước mẫu Hình 2.18 Minh họa tích chập Hình 2.19 Ảnh mờ sau chập Hình 2.20 Ảnh phát biên sai chập Hình 2.21 Mơ hình mạng neural tích chập Hình 2.22 Mơ hình mạng perceptron đa tầng Hình 3.1 Một số ký tự EMNIST Hình 3.2 Danh sách lớp tham số Hình 3.3 Tóm tắt mơ hình huấn luyện Hình 3.4 Độ xác trung bình sau vịng lặp Hình 3.5 Độ xác tuyệt đối vịng lặp Hình 3.6 Giá trị trung bình hàm mát qua vịng lặp Hình 3.7 Giá trị tuyệt đối hàm mát vịng lặp Hình 3.8 Kết huấn luyện tổng thể DANH MỤC BẢNG LỜI MỞ ĐẦU Deep Learning thuật toán dựa số ý tưởng từ não tới việc tiếp thu nhiều tầng biểu đạt, cụ thể lẫn trừu tượng, qua làm rõ ý nghĩa từ loại liệu Deep Learning ứng dụng nhận diện ảnh, nhận diện giọng nói, xử lý ngơn ngữ tự nhiên Hiện nhiều toán nhận dạng sử dụng deep learning để giải deep learning giải toán với số lượng lớn, kích thước đầu vào lớn với hiệu độ xác vượt trội so với phương pháp phân lớp truyền thống Convolution Neural Network (CNNs – Mạng nơ-ron tích chập) mơ hình Deep Learning tiên tiến giúp cho xây dựng hệ thống thơng minh với độ xác cao Trong tiểu luận này, em vào nghiên cứu mạng neural mạng Convolution mơ hình CNNs phân lớp ảnh, áp dụng việc xây dựng hệ thống nhận dạng chữ viết tay tiếng Việt Trong tiểu luận em xây dựng mơ hình mạng nơ-ron tích chập với việc sử dụng nhiều lớp khác mạng để trích chọn tự động đặc trưng tốt ảnh Đồng thời, kết hợp mạng nơ-ron tích chập Multi-layer Perceptron nhằm cải thiện hiệu suất mơ hình Nhận dạng chữ viết tay tốn quan tâm nhiều yêu cầu nhiều ứng dụng thực tế Các ứng dụng nhận dạng chữ viết tay ứng dụng vào đời sống phục vụ cho cơng việc tựu động hóa đọc tài liệu, tăng tốc độ hiệu nhập thông tin vào máy tính Nhận dạng chữ viết tay phục vụ cho ứng dụng đọc xử lý chứng từ, hóa đơn, phiếu ghi, viết tay chương trình, … Hiện nay, có số đề tài nghiên cứu nhận dạng chữ viết tay sử dụng mơ hình như: K láng giềng gần (K-Nearest Neighbor - KNN), máy hỗ trợ vec-tơ (Suport Vector Machine - SVM), mơ hình Markov ẩn (Hidden Markov Model-HMM)… Tuy nhiên, mơ hình cho kết nhận dạng khơng cao, nhiều thời gian cho việc trích rút đặc trưng ảnh Vì vậy, nghiên cứu chúng tơi xây dựng mơ hình để trích rút tự động đặc trưng ảnh mơ hình cho kết tốt mơ hình trước CHƯƠNG I: TỔNG QUAN TÀI LIỆU Giới thiệu Bài toán nhận dạng chữ viết tay ứng dụng nhiều thực tế, tích hợp vào hệ thống nhận dạng form tự động, tích hợp máy PDA có hình cảm ứng, nhận dạng ký tự… Do có nhiều ứng dụng quan trọng nên từ lâu toán nhận dạng chữ viết tay thu hút quan tâm nhiều nhà nghiên cứu, Nghiên cứu Norhidayu tác giả sử dụng thuật toán phân loại KNN cho kết phân loại cao 99,26% Kết thục nghiệm cho thấy phương pháp LBP nhận dạng ký tự chữ số viết tay liệu MNIST với độ xác 89,81% liệu C1 với độ xác 70,91% Từ nhận định em thử áp dụng mạng convolution neuron network để thục toán nhận dạng chữ viết tay Nhận dạng ký tự viết tay phân làm hai loại: nhận dạng ký tự viết tay online (trực tuyến) nhận dạng ký tự viết tay offline (ngoại tuyến) 1.1 Nhận dạng ký tự viết tay online thực sở lưu lại thông tin nét chữ thứ tự nét viết, hướng tốc độ nét viết q trình viết Đây sở để máy tính nhận diện chữ cái, việc nhận dạng khơng gặp q nhiều khó khăn Một sản phẩm nhận dạng chữ viết tay trực tuyến tiêu biểu hệ thống nhận dạng chữ viết tay rời rạc trực tuyến trạm làm việc IBM H.S.M.Beigi, C.C.Tapert, M.Ukeison C.G.Wolf phòng thực hành Waston IBM cài đặt[1] Ngược lại nhận dạng ký tự viết tay offline, liệu đầu vào ảnh văn quét vào nên việc nhận dạng có độ khó cao nhiều so với nhận dạng ký tự viết tay online Do liệu đầu vào ảnh văn nên nhận dạng ký tự viết tay offline nhận dạng chữ in gọi chung nhận diện ký tự quang học (tiếng Anh: Optical Character Recognition, viết tắt OCR) 1.1.1 Tổng quan nhận diện ký tự quang học Nhận dạng ký tự quang học loại phần mềm máy tính tạo để chuyển hình ảnh chữ viết tay chữ đánh máy (thường quét máy scanner) thành văn tài liệu OCR hình thành từ lĩnh vực nghiên cứu nhận dạng mẫu, trí tuệ nhận tạo machine vision Mặc dù công việc nghiên cứu học thuật tiếp tục, phần công việc OCR chuyển sang ứng dụng thực tế với kỹ thuật chứng minh Nhận dạng ký tự quang học (dùng kỹ thuật quang học chẳng hạn gương ống kính) nhận dạng ký tự số (sử dụng máy qt thuật tốn máy tính) lúc đầu xem xét hai lĩnh vực khác Bởi có ứng dụng tồn với kỹ thuật quang học thực sự, thuật ngữ Nhận dạng ký tự quang học mở rộng bao gồm ý nghĩa nhận dạng ký tự số Đầu tiên hệ thống nhận dạng yêu cầu phải huấn luyện với mẫu ký tự cụ thể Các hệ thống "thông minh" với độ xác nhận dạng cao hầu hết phông chữ trở nên phổ biến Một số hệ thống cịn có khả tái tạo lại định dạng tài liệu gần giống với gốc bao gồm: hình ảnh, cột, bảng biểu, thành phần văn Hiện nay, với chữ Việt, phần mềm nhận dạng chữ Việt in VnDOCR 4.0 có khả nhận dạng trực tiếp loại tài liệu quét qua máy quét, không cần lưu trữ dạng tệp ảnh trung gian Các trang tài liệu quét lưu trữ dạng tệp tin nhiều trang Kết nhận dạng lưu trữ sang định dạng Microsoft Word, Excel phục vụ tốt nhu cầu số hóa liệu 1.2 Phạm vi nghiên cứu Đầu vào ảnh chụp từ thiết bị kỹ thuật số chứa ký tự viết tay viết giấy, có nhiễu vạch, nhiễu đốm, nhiên khơng chứa vật thể phức tạp khác cối, xe cộ, người làm ảnh hưởng đến trình phát ký tự Các ký tự viết tay nhận diện bao gồm 62 ký tự: 26 ký tự latinh viết hoa (A-Z), 26 ký tự latinh viết thường (a-z), 10 ký tự số (0-9) 1.3 Khái quát xử lý ảnh 1.3.1 Một số khái niệm Con người thu nhận thông tin qua giác quan, thị giác đóng vai trò quan trọng Những năm trở lại với phát triển phần cứng máy tính, xử lý ảnh đồ hoạ phát triển cách mạnh mẽ có nhiều ứng dụng sống Xử lý ảnh đồ hoạ đóng vai trị quan trọng tương tác người máy Quá trình xử lý ảnh xem trình thao tác ảnh đầu vào nhằm cho kết mong muốn Kết đầu trình xử lý ảnh ảnh “tốt hơn” kết luận Ảnh “tốt hơn” Ảnh Xử lý ảnh Kết luận Hình 1.1 Q trình xử lý ảnh Ảnh xem tập hợp điểm ảnh điểm ảnh xem đặc trưng cường độ sáng hay dấu hiệu vị trí đối tượng khơng gian xem hàm n biến P(c1, c2, , cn) Do đó, ảnh xử lý ảnh xem ảnh n chiều Sơ đồ tổng quát hệ thống xử lý ảnh: Hình 1.2 Các bước hệ thống xử lý ảnh 1.3.2 Một số vấn đề xử lý ảnh ký tự 1.3.2.1 Các hệ thống xử lý ảnh a Tiền xử lý Tiền xử lý giai đoạn xử lý ảnh số Tuỳ thuộc vào trình xử lý giai đoạn thực công đoạn khác như: nâng cấp, chỉnh mức sang, khôi phục ảnh, nắn chỉnh hình học, khử nhiễu v.v… b Trích chọn đặc trưng Các đặc điểm đối tượng trích chọn tuỳ theo mục đích nhận dạng q trình xử lý ảnh Có thể nêu số đặc điểm ảnh sau đây: Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn v.v Đặc điểm biến đổi: Các đặc điểm loại trích chọn việc thực lọc vùng (zonal filtering) Các vùng gọi “mặt nạ đặc 10 điểm” (feature mask) thường khe hẹp với hình dạng khác (chữ nhật, tam giác, cung tròn v.v ) Đặc điểm biên đường biên: Đặc trưng cho đường biên đối tượng hữu ích việc trích trọn thuộc tính bất biến dùng nhận dạng đối tượng Các đặc điểm trích chọn nhờ tốn tử gradient, toán tử la bàn, toán tử Laplace, toán tử “chéo khơng” (zero crossing) v.v Việc trích chọn hiệu đặc điểm giúp cho việc nhận dạng đối tượng ảnh xác, với tốc độ tính tốn cao dung lượng nhớ lưu trữ giảm xuống c Nhận dạng Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại phân nhóm mẫu vấn đề quan trọng thị giác máy, ứng dụng nhiều Như thường lệ kết nối điểm ảnh đầu vào cho nơron tầng ẩn Nhưng không kết nối điểm ảnh đầu vào cho neuron ẩn Thay vào đó, kết nối phạm vi nhỏ, vùng cục ảnh Để xác hơn, nơron lớp ẩn kết nối với vùng nhỏ nơron đầu vào, ví dụ, vùng × 5, tương ứng với 25 điểm ảnh đầu vào Vì vậy, nơron ẩn cụ thể, có kết nối sau: Vùng ảnh đầu vào gọi vùng tiếp nhận cục cho nơron ẩn Đó cửa sổ nhỏ điểm ảnh đầu vào Mỗi kết nối học trọng số Và nơron ẩn học độ lệch (overall bias) Bạn hiểu nơron lớp ẩn cụ thể học để phân tích trường tiếp nhận cục cụ thể Sau trượt trường tiếp nhận cục toàn ảnh Đối với trường tiếp nhận cục bộ, có nơron ẩn khác tầng ẩn Để minh họa điều cách cụ thể, bắt đầu với trường tiếp nhận cục góc bên trái: 36 Sau đó, trượt trường tiếp nhận cục điểm ảnh bên phải (tức nơron), để kết nối với nơron ẩn thứ hai: Và việc xây dựng lớp ẩn Lưu ý có ảnh đầu vào 28x28 5x5 trường tiếp nhận cục ta xó 24x24 nơ-ron lớp ẩn Có điều di chuyển trường tiếp nhận cục ngang qua 23 nơ-ron (hoặc xuông 23 nơ-ron), trước chạm với phía bên phải (hoặc dưới) ảnh đầu vào Trọng số độ lệch (Shared weights and biases) : Mỗi neuron ẩn có độ lệch (bias) × trọng số liên kết với trường tiếp nhận cục Những chưa đề cập đến sử dụng trọng số độ lệch tương tự cho nơron ẩn 24 × 24 Nói cách khác, neuron ẩn thứ j, k, đầu là: 37 Ở đây, σ hàm kích hoạt neuron - có lẽ hàm sigmoid sử dụng chương trước b giá trị chung cho độ lệch M wl, m mảng × trọng số chia sẻ Và, cuối cùng, sử dụng axy biểu thị giá trị kích hoạt đầu vào vị trí x, y Chúng ta chưa xác định xác khái niệm đặc trưng Ta nghĩ đặc trưng loại mẫu đầu vào mà làm cho nơ-ron hoạt động, ví dụ : biên ảnh dạng hình khối khác, vị trí khác ảnh đầu vào Tại điều lại có lý, giả sử trọng số độ lẹch mà nở-ron ẩn chọn ra, biên thẳng đứng (vertical edge) trường tiếp nhận cục Khả hữu ích vị trí khác ảnh Và đó, hữu ích để áp dụng phát đặc trưng giống ảnh Để đặt thuật ngữ trừu tượng chút, mạng chập thích nghỉ với bất biến dịch (translation invariance) ảnh: di chuyển ảnh mèo ít, hình ảnh mèo Trong thực tế, tốn phân lớp kí tự MNIST mà nghiên cứu, ảnh đặt trung tâm chuẩn hóa kich thước Chính mà MNIST có bất biến chuyển dịch so với ảnh tìm thấy tự nhiên Tuy nhiên, đặc trưng phù hợp ảnh đầu vào Vì lý này, gọi đồ từ lớp đầu vào cho lớp ẩn đồ đặc trưng(feature map) Chúng ta gọi trọng số xác định đồ đặc trưng trọng số chia sẻ (shared weights) Và gọi độ lệch xác định đồ đặc trưng độ lệch chia sẻ (shared bía) Các trọng số chia sẻ độ lệch thường gọi hạt nhân (kernel) hay lọc (filter) Cấu trúc mạng vừa mô tả phát đồ đặc trưng Để nhận dạng ảnh cần nhiều đồ đặc trưng Và đó, lớp tích chập hoàn chỉnh bao gồm vài đồ đặc trưng: Trong ví dụ, co đồ đặc trưng Mỗi đồ đặc trưng xác định tập 5x5 trọng số chia sẻ, độ lệch chia sẻ Kết mạng phát loại đặc trưng khác nhau, với đặc trưng phát toàn ảnh Chúng ta chi đồ đặc trưng, để làm cho sơ đồ trêm đơn giản Tuy nhiên, thực tế mạng chập sử dụng nhiều đồ đặc trưng Một mạng chập LeNet-5, sử dụng đồ đặc trưng, đồ liên 38 kết đến trường tiếp nhận cục 5x5, để phát kí tự MNIST Vì vậy, ví dụ minh họa thực gần LeNet-5 Trong ví dụ phát triển sau chương trình sử dụng lướp tích chập với 20 40 đồ đặc trưng Chúng ta xem qua số đồ đặc trưng đá học Trên 20 ảnh tương ứng với 20 đồ đặc trưng khác (hay gọi lọc, nhân) Mỗi đồ thể hình khối kích thước 5x5, tương ứng với 5x5 trọng số trường tiếp nhận cục Khối trắng có nghĩa trọng số nhỏ hơn, đồ đặc trưng đáp ứng để tương ứng với điểm ảnh đầu vào Khối sẫm màu có nghĩa trọng số lơn hơn, đó, đồ đặc trưng đáp ứng nhiều với điểm ảnh đầu vào tương ứng Những hình ảnh cho thấy kiểu đặc trưng mà lớp tích chập đáp ứng Một ưu điểm quan trọng trọng số độ lệch chia sẻ làm giảm đáng kể số lượng tham sô liên quan đến mạng tích chập Đối với đồ đặc trưng cần 25 = x trọng số chia sẻ độ lệch chia sẻ Vì vậy, đồ đặc trưng cần 26 tham số Nếu có 20 đồ đặc trưng cần 20 x 26 = 520 tham số để xác định lớp tích chập Bây làm phép so sánh, giả sử có lớp kết nối đầy đủ, tức có 784 = 28 x 28 784 = 28 x 28 nơ-ron đầu vào, số nơron lớp ẩn khiêm tốn 30, nhưu sử dụng nhiều ví dụ trước sách Như vậy,cần 784 x 30 số cộng thêm 30 sai lệch (bias), tổng số 23,5550 tham số (parameter) Nói cách khác, lớp kết nối đầy đủ (fully-connected layer) cần số lượng tham số nhiều gấp 40 lần so với lớp tích chập (convolutional layer) Tất nhiên, thực sụ làm so sánh trực tiếp số lượng tham số, hai mơ hình khác Nhưng trực giác dường việc sử dụng bất biến dịch lớp tích chập giảm số lượng tham số cần thiết mà đạt hiệu giống mơ hình kết nối đầy đủ Mơ hình mạng tích chập cho kết huấn luyện nhanh giúp xây dựng mạng sâu sử dụng lớp tích chập Cái tên “convolutional” xuất phát hoạt động phương trình đơi biết đến convolution Chính xác chút, người ta đơi viết phương trình 39 a1 = σ(b + w * a0), a1 tập kích hoạt đầu từ đồ đặc trưng, a tập hợp kích hoạt đầu vào, * gọi phép toán chập Lớp chứa hay lớp tổng hợp (Pooling layer): Ngoài lớp tích chập vừa mơ tả, mạng nơron tích chập chứa lớp pooling Lớp pooling thường sử dụng sau lớp tích chập Những lớp pooling làm đơn giản hóa thơng tin đầu từ lớp tích chập Ví dụ, đơn vị lớp pooling thu gọn vùng × nơron lớp trước Một thủ tục pooling phổ biến max-pooling Trong max-pooling, đơn vị pooling đơn giản kết đầu kích hoạt giá trị lớn vùng đầu vào × 2, minh họa sơ đồ sau: Lưu ý có 24 × 24 nơron đầu từ lớp tích chập, sau pooling có 12 × 12 nơron Như đề cập trên, lớp tích chập thường có nhiều đồ đặc trưng Chúng ta áp dụng max-pooling cho đồ đặc trưng riêng biệt Vì vậy, có ba đồ đặc trưng, lớp tích chập max-pooling kết hợp sau: Chúng ta hiểu max-pooling cách cho mạng để hỏi xem đặc trưng tìm thấy đâu khu vực ảnh Sau bỏ thơng tin định vị xác Trực giác một đặc trưng tìm thấy, vị trí xác khơng quan trọng vị trí thơ so với đặc trưng khác Mộtlợi ích lớn có nhiều tính gộp (fewer pooled features), điều giúp giảm số lượng tham số cần thiết lớp sau 40 Max-pooling kỹ thuật sử dụng để pooling Một phương pháp phổ biến khác gọi 1.2 pooling Ở đây, thay lấy giá trị kích hoạt tối đa (maximum activation) vùng 2x2 nơ-ron, lấy bậc tổng bình phương kích hoạt vùng 2x2 Trong chi tiết khác nhau, trực giác tương tự max-pooling: L2 pooling cách để cô đọng thông tin từ lớp tích chập Trong thực tế, hai kỹ thuật đướcử dụng rộng rãi Và người ta sử dụng loại pooling khác Đặt tất chúng lại với (Putting it all together): Bây đặt tất ý tưởng lại với để tạo thành mạng tích chập hồn chỉnh Nó tương tự kiến trúc nhìn vào, có thêm lớp 10 nơron đầu ra, tương ứng với 10 giá trị cho số MNIST ( '0', '1', '2', v.v…): Mạng bắt đầu với 28x28 nơ-ron đầu vào, sử dụng để mã hóa cường độ điểm ảnh cho ảnh MNIST Sau lớp tích chập sử dụng 5x5 trường hợp tiếp nhận cục đồ đặc trưng Kết lớp 3x24x24 nơ-ron lớp ẩn Bước max-pooling, áp dụng cho 2x2 vùng qua đồ đặc trưng (feature maps) Kết lớp 3x12x12 nơ-ron đặc trưng tầng ẩn Lớp cuối kết nối mạng lớp đầy đủ kết nối Đó là, lớp nối nơron từ lớp max-pooled tới nơron tầng Kiến trúc kết nối đầy đủ giống sử dụng chương trước Kiến trúc tích chập hồn tồn khác với kiến trúc sử dụng chương trước Nhưng tổng thể tương tự: mạng cấu tạo từ nhiều đơn vị đơn giản, hành vi xác định trọng số độ lệch Và mục tiêu tổng thể nhau: sử dụng liệu huấn luyện để huấn luyện trọng số độ lệch mạng mạng tốt việc phân loại chữ số đầu vào Đặc biệt, phần đầu ta trình bày, ta huấn luyện ạng sử dụng gradient descent ngẫu nhiên lan truyền ngược Tuy nhiên, cần thay đổi thủ tục lan truyền ngược (backpropagation) Lý công thức lan truyền ngược cho mạng với tầng kết nối đầy đủ May mắn thay, đơn giản để thay đổi công thức lan truyền ngược cho lớp tích chập lớp max-pooling CHƯƠNG III THIẾT KẾ, MÔ PHỎNG 3.1 Cài đặt chương trình chạy chương trình 41 3.1.1 Thu thập liệu Dữ liệu sử dụng cho toán lấy từ EMNIST Viện tiêu chuẩn kỹ thuật quốc gia Hoa Kỳ (NIST) tập hợp ký tự Latinh viết tay có nguồn gốc từ Cơ sở liệu NIST đặc biệt 19 (NIST Special Database 19) • Tên liệu: EMIST ByClass • Số lượng mẫu: 814,255 mẫu • Huấn luyện: 697,932 mẫu (6/7) • Kiểm thử: 116,323 mẫu (1/7) • Số lớp: 62 ký tự gồm A-Z, a-z, 0-9 • Kích thước ảnh: 28*28 • Số kênh màu: (Ảnh đa mức xám: 256 mức) Hình 3.1 Một số ký tự EMNIST 3.1.2 Huấn luyện liệu 3.1.2.1 Mơ hình sử dụng Dưới kiến trúc CNN đề xuất với lớp 1,7 triệu tham số, cho tỉ lệ nhận dạng xác xấp xỉ 90% Ảnh đầu vào: Kích thước 28x28x1 • Lớp thứ nhất: Tích chập o Filter: 5x5 o Stride: o Padding: o Input : 28x28x1 o Số lọc: 32 o Số lượng tham số: (5x5+1)x32=832 o Output : 28x28x32 • Lớp thứ hai: Tích chập o Filter: 5x5 42 • • • • • • o Stride: o Padding: o Input : 28x28x32 o Số lọc: 32 o Số lượng tham số: (5x5x32+1)x32=25,632 o Output : 28x28x32 Lớp thứ 3: Pooling o Filter: 2x2 o Stride: o Input: 28x28x32 o Ouput: 14x14x32 Lớp thứ 4: Tích chập o Filter: 3x3 o Stride: o Padding: o Input: 14x14x32 o Số lọc: 64 o Số lượng tham số: (3x3x32+1)x64=18,496 o Output: 14x14x64 Lớp thứ 5: Tích chập o Filter: 3x3 o Stride: o Padding: o Input:14x14x64 o Số lọc: 64 o Số lượng tham số: (3x3x64+1)x64=36,928 Lớp thứ 6: Pooling o Filter: 2x2 o Stride: o Input:14x14x64 o Output:7x7x64 Lớp thứ 7: Kết nối đầy đủ o Hàm kích hoạt: ReLU o Input: 7x7x64=3136 o Số lượng tham số: 3136x512=1,606,144 o Output: 512 Lớp thứ 8: Kết nối đầy đủ o Hàm kích hoạt: Softmax o Input: 512 o Số lượng tham số:512x62 = 31,744 43 o Output: 62 Hình 3.2 Danh sách lớp tham số Danh sách lớp mạng tham số hình cửa sổ Consoler window sửa dụng thư viện học máy Keras ngôn ngữ Python Ở có lớp em khơng liệt kê mơ hình lớp duỗi ảnh(Flatten) lớp có nhiệm vụ duỗi ma trận chiều thành vector để làm đầu vào cho lớp fully connected Lớp bỏ học(Dropout) hình nhằm mục đích tránh tượng khớp cách không cập nhật vài trọng số nơron bó học (batch_size) Các nơron chọn để khơng cập nhật hồn tồn ngẫu nhiên Và hàm có tham số đầu vào tỉ lệ trọng số không cập nhật (ví dụ: 0.1 cập nhật có ngẫu nhiên 10% số lượng tham số khơng cập nhật) 44 Hình 3.3 Tóm tắt mơ hình huấn luyện 3.2.2.2 Công cụ huấn luyện phần cứng huấn luyện Ngôn ngữ: Python; thư viện: Open CV, Keras, Tensorflow; Framework: Framework (Python) Mô tả sơ lược: Ở ta thiết kế hệ nhận dạng ký tự với phần training xử lý liệu ảnh ngôn ngữ Python thiết kế giao diện sử dụng ứng dụng cho người dùng ngôn ngữ C# sử dụng Net Framework Microsoft * Khởi tạo thơng số để huấn luyện mạng: • Số lần học(epochs) : 10 • Kích thước bó (batch_size): 256 (Trọng số cập nhật lại sau bó) * Huấn luyện mạng: • Mẫu huấn luyện: 697,932 mẫu (chiếm 6/7 tổng số mẫu liệu) • Kiểm thử: 116,323 mẫu (chiếm 1/7 tổng số mẫu liệu) • Mơi trường huấn luyện hệ điều hành Windows 10 ngôn ngữ Python phiên 3.7.5 giao diện thiết kế dựa NET Framework phiên 4.6.2 • Phần cứng: CPU Intel Core i5 – 9400, 8GB Ram, Card đồ hoạ Intel(R) UHD Graphics 630 • Tốc độ huấn luyện: 3ms/mẫu Thời gian huấn luyện: 3.2.2.3 Các tiêu chi đánh giá huấn luyện 3.2.2.3.1 Độ xác Độ xác hay Accuracy tốn phân lớp đơn giản tính tỉ lệ số mẫu dự đoán tổng số mẫu tập kiểm thử 45 Với mơ hình liệu Sau tiến hành huấn luyện ta thu kết độ xác hình Dữ liệu hình sinh lưu vào nhật ký trình huấn luyện liệu nhờ thư viện Keras Tensorflow ngơn ngữ Python Hình 3.4 Độ xác trung bình sau vịng lặp Hình 3.5 Độ xác tuyệt đối vịng lặp Ở ta thấy độ xác tuyệt đối qua vịng lặp có hình gấp khúc tốc độ học(learning rate) khơng phù hợp Thường giải thuật tự động khởi tạo tốc độ học cao bắt đầu giảm dần theo thời gian để tìm cực tiểu hàm mát Nếu 46 khơng thay đổi giá trị tốc độ học theo lý thuyết giải thuật giảm độ dốc (Gradient descent) ta khó tìm cực tiểu hàm mát 3.2.2.3.2 Hàm mát Hàm mát (Loss Function) trả số thực không âm thể chênh lệch hai đại lượng: label dự đoán y label Loss function giống hình thức để bắt model đóng phạt lần dự đốn sai, số mức phạt tỉ lệ thuận với độ trầm trọng sai sót Trong tốn học có giám sát, mục tiêu ta ln bao gồm giảm thiểu tổng mức phạt phải đóng Trong trường hợp lý tưởng , loss function trả giá trị cực tiểu Vì loss function đo đạc chênh lệch , nên không lạ ta nghĩ đến việc lấy hiệu chúng: Tuy nhiên hàm lại khơng thỏa mãn tính chất khơng âm loss function Ta sửa lại để thỏa mãn tính chất Ví dụ lấy giá trị tuyệt đối hiệu: Loss function không âm lại không thuận tiện việc cực tiểu hóa[6], đạo hàm không liên tục (nhớ đạo hàm bị đứt quãng tại) thường phương pháp cực tiểu hóa hàm số thơng dụng địi hỏi phải tính đạo hàm Một cách khác lấy bình phương hiệu: Với tốn phân lớp ta dùng bình phương lỗi (MSE – Mean Square Error) cách tính tổng bình phương lỗi y Hình 3.6 Giá trị trung bình hàm mát qua vịng lặp 47 Hình 3.7 Giá trị tuyệt đối hàm mát vòng lặp Tương tự độ xác Hàm mát gặp đường gấp khúc sau khoảng thời gian đào tạo Hình 3.8 Kết huấn luyện tổng thể Hình cho ta thấy số liệu hàm mát độ xác mơ hình thay đổi qua vịng lặp Cùng giá trị trung bình cuối thu Kèm theo vài tham số khác thời gian huấn vòng lặp, thời gian huấn luyện mẫu,v.v… 3.2.2.4 Kết Kết luận hướng phát triển Trên sở nghiên cứu mạng nơron tích chập thực toán nhận diện ký tự viết tay Đồ án đạt kết sau: • Nghiên cứu vấn đề xử lý ảnh nhận diện ký tự Các thao tác tiền xử lý như: phân ngưỡng, làm mịn, nhị phân hoá, tìm biên,v.v… • Nghiên cứu giải thuật phân ngưỡng ảnh Otsu hay giải thuật phát đối tương Cụ thể phương pháp Canny để tìm đường biên ngồi ký tự 48 • Nghiên cứu mạng nơron cách thức học mạng Cách hình thành liên kết đào tạo trọng số mạng Tìm hiểu cách mà mạng tích chập học trọng số khó khăn việc đào tạo mạng cách chọn số lượng tham số hay vấn đề khớp liệu(Overfitting) • Tiến hành thực nghiệm hệ thống với liệu viết tay EMNIST, từ xây dựng nên hệ thống có khả xử lý ảnh ký tự viết tay làm đầu vào trả kết đầu ký tự nhận diện Bên cạnh kết đạt cịn hạn chế là: • Tỉ lệ phát nhận dạng chưa thực cao (với độ xác khoảng 90%) đơi bước phát vật thể cịn bỏ sót vài ký tự chất lượng ảnh đầu vào không tốt(bị mờ, nhiễu) người viết,v.v… • Mạng chưa có khả nhận diện từ mà nhận diện ký tự rời rạc Qua kết hạn chế hệ thống cho thấy việc nghiên cứu học sâu nói chung mạng tích chập tốn nhận diện ký tự viết tay nói riêng địi hỏi trình nghiên cứu thực lâu dài Trong phạm vi đồ án em thực việc phát nhận dạng ký tự với độ xác chưa cao Để xây dựng hệ thống nhận diện chữ viết tay tổng quát, áp dụng thực tế cần phải có thêm nhiều thời gian Trước mắt hướng phát triển đồ án tập trung cải thiện độ xác cho trình phát nhận dạng ký tự, giúp hệ thống hoạt động ổn định Trong tương lai phát triển thành hệ thống nhận diện từ câu viết tay nhờ sử dụng mạng nhớ dài-ngắn (LSTM - Long Short-Term Memory) TÀI LIỆU THAM KHẢO [1] Phân ngưỡng OTSU: https://univtechnews.wordpress.com/2017/04/19/tim-hieuthuat-toan-otsu/ 49 [2] Phương pháp Canny: https://minhng.info/tutorials/xu-ly-anh-opencv-hien-thuccanny-edge.html Một vài phương pháp phát biên: https://lib.hpu.edu.vn/bitstream/handle/123456789/18204/21_DangThiThuong_CT1101.p df Thuật tốn trích chọn đăc điểm ảnh : https://forum.machinelearningcoban.com/t/tong-hop-cac-thuat-toan-trich-chon-dac-trungpho-bien-trong-xu-ly-anh/2450 Ảnh mức xám Histogram https://viblo.asia/p/tim-hieu-ve-hoghistogram-of-oriented-gradients-m68Z0wL6KkG https://minhng.info/tutorials/histograms-of-oriented-gradients.html Học có giám sát, khơng giám sát, học tăng cường: https://machinelearningcoban.com/2016/12/27/categories/#supervised-learning-hoc-cogiam-sat https://medium.com/@thanhleo92/gi%E1%BB%9Bi-thi%E1%BB%87u-v%E1%BB %81-machine-learning-92bfcdc4bf4e https://nttuan8.com/bai-6-convolutional-neural-network/ Gradien Decent: https://machinelearningcoban.com/2017/01/16/gradientdescent2/ Lan truyền ngược: https://en.wikipedia.org/wiki/Backpropagation Overfitting: https://machinelearningcoban.com/2017/03/04/overfitting/ https://viblo.asia/p/deep-learning-tim-hieu-ve-mang-tich-chap-cnn-maGK73bOKj2 https://www.phamduytung.com/blog/2018-10-02-understanding-epoch-batchsizeiterations/ https://www.tensorflow.org/tutorials/images/transfer_learning 50 ... LBP nhận dạng ký tự chữ số viết tay liệu MNIST với độ xác 89,81% liệu C1 với độ xác 70,91% Từ nhận định em thử áp dụng mạng convolution neuron network để thục toán nhận dạng chữ viết tay Nhận dạng. .. hợp mạng nơ-ron tích chập Multi-layer Perceptron nhằm cải thiện hiệu suất mô hình Nhận dạng chữ viết tay tốn quan tâm nhiều yêu cầu nhiều ứng dụng thực tế Các ứng dụng nhận dạng chữ viết tay. .. tự viết tay phân làm hai loại: nhận dạng ký tự viết tay online (trực tuyến) nhận dạng ký tự viết tay offline (ngoại tuyến) 1.1 Nhận dạng ký tự viết tay online thực sở lưu lại thông tin nét chữ