LỜI CẢM ƠN Qua quá trình học tập và làm việc trong suốt thời gian học, tôi thực sự biết ơn sự giúp đỡ tận tình của quý thầy cô và các bạn đã hỗ trợ tôi hoàn thành luận văn “Nghiên cứu nh
Trang 1ĐẶNG NGUYỄN HOÀNG HẢI
NGHIÊN CỨU NHẬN DẠNG CHỮ IN VIẾT TAY
RỜI RẠC ỨNG DỤNG THUẬT TOÁN
LAN TRUYỀN NGƯỢC
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGHỆ AN, 3/2017
Trang 2ĐẶNG NGUYỄN HOÀNG HẢI
NGHIÊN CỨU NHẬN DẠNG CHỮ IN VIẾT TAY
RỜI RẠC ỨNG DỤNG THUẬT TOÁN
LAN TRUYỀN NGƯỢC
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.02.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS PHAN LÊ NA
NGHỆ AN, 3/2017
Trang 3LỜI CẢM ƠN
Qua quá trình học tập và làm việc trong suốt thời gian học, tôi thực sự biết ơn sự giúp đỡ tận tình của quý thầy cô và các bạn đã hỗ trợ tôi hoàn thành luận văn “Nghiên cứu nhận dạng chữ in viết tay rời rạc ứng dụng thuật toán lan truyền ngược” Ngoài sự cố gắng của bản thân, bên cạnh đó là sự nhiệt tình của giáo viên hướng dẫn TS Phan Lê Na góp phần hoàn thành tốt luận văn, một lần nữa em xin cảm ơn thầy cô và các bạn, kính mong thầy cô và các bạn đóng góp thêm để chương trình hoàn chỉnh hơn
Em xin chân thành cảm ơn !
Tác giả
Đặng Nguyễn Hoàng Hải
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan đề tài “Nghiên cứu nhận dạng chữ in viết tay rời rạc
ứng dụng thuật toán lan truyền ngược” là công trình nghiên cứu của bản thân
Các số liệu, kết quả thực nghiệm trình bày trong luận văn này là trung thực Những tài liệu được sử dụng trong luận văn có nguồn gốc trích dẫn đầy đủ, được thông qua sự đồng ý của giáo viên hướng dẫn và Hội đồng cho bảo vệ
Tác giả
Đặng Nguyễn Hoàng Hải
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Lịch sử vấn đề 1
3 Đối tượng và phạm vi nghiên cứu 2
4 Mục đích, nhiệm vụ nghiên cứu 2
5 Phương pháp nghiên cứu 2
6 Đóng góp của Luận văn 3
7 Cấu trúc của Luận văn 3
CHƯƠNG 1 4
TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG CHỮ IN VIẾT TAY 4
RỜI RẠC 4
1.1 Giới thiệu về nhận dạng chữ viết tay 4
1.2 Tổng quan mô hình nhận dạng chữ viết tay 4
1.3 Các giai đoạn thực hiện 5
1.3.1 Ảnh đầu vào 5
1.3.2 Tiền xử lý 5
1.3.2.1 Chuyển xám ảnh 5
1.3.2.2 Nhị phân hóa ảnh 6
1.3.2.3 Lọc nhiễu 7
1.3.2.4 Chỉnh nghiêng văn bản 8
1.3.3 Phân tích tìm ký tự xử lý 9
1.3.3.1 Tách dòng 9
1.3.3.2 Tách từ 10
1.3.3.3 Tách ký tự 10
Trang 61.3.3.4 Phát hiện biên ký tự 11
1.3.3.5 Chuẩn hóa kích thước ký tự 11
1.3.4 Trích chọn đặc trưng 12
1.3.4.1 Một số đặc trưng cơ bản của mẫu 13
1.3.4.2 Các phương pháp trích chọn đặc trưng cơ bản 14
1.3.5 Huấn luyện và nhận dạng 17
1.3.6 Hậu xử lý 17
CHƯƠNG 2 18
CƠ SỞ LÝ THUYẾT MẠNG NEURAL NHÂN TẠO 18
2.1 Giới thiệu 18
2.2 Khái niệm 18
2.3 Mô hình và kiến trúc mạng Neural 19
2.3.1 Mô hình mạng Neural 19
2.3.2 Kiến trúc mạng neural 21
2.4 Phương pháp học 23
2.4.1 Học có giám sát 23
2.4.2 Học không có giám sát 24
2.4.3 Học tăng cường 24
2.5 Kiến trúc mạng Perceptron 24
2.5.1 Mạng Perceptron một lớp 24
2.5.2 Mạng Perceptron một neuron 25
2.5.3 Mạng Perceptron nhiều neuron 26
2.5.4 Luật học Perceptron 26
2.5.5 Hạn chế của mạng Perceptron một lớp 28
2.6 Mạng Perceptron nhiều lớp và thuật toán lan truyền ngược 28
2.6.1 Mạng Perceptron nhiều lớp 28
2.6.2 Kiến trúc mạng 29
2.6.3 Thuật toán lan truyền ngược (backpropagation) 29
2.6.4 Những hạn chế của phương pháp lan truyền ngược 34
CHƯƠNG 3 35
Trang 7ỨNG DỤNG MẠNG NEURAL TRONG NHẬN DẠNG CHỮ VIẾT
TAY 35
3.1 Giới thiệu ngôn ngữ Matlab 35
3.2 Cài đặt thuật toán thiết kế chương trình trên Matlab 36
3.3 Giới thiệu chương trình 39
3.4 Hướng dẫn chạy chương trình 40
3.5 Kiểm tra, nhận xét kết quả thực nghiệm 41
3.5.1 Kiểm tra nhận dạng 41
3.5.2 Nhận xét 43
KẾT LUẬN 45
TÀI LIỆU THAM KHẢO 46
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Trong thời đại công nghệ khoa học phát triển, đặc biệt trong lĩnh vực công nghệ thông tin Hầu như mọi công việc hiện nay đều phải dựa vào công nghệ thông tin như y tế, giáo dục, ngân hàng Trong đó bài toán nhận dạng là một trong những ứng dụng giúp con người giải quyết được nhiều vấn đề như nhận dạng vân tay, nhận dạng mặt người, nhận dạng giọng nói, nhận dạng chữ viết… Đối với bài toán nhận dạng chữ viết tay hiện nay còn khá nhọc nhằn, hiệu quả
chưa cao Do đó trong luận văn này tôi “Nghiên cứu nhận dạng chữ in viết tay
rời rạc ứng dụng thuật toán lan truyền ngược”
2 Lịch sử vấn đề
Nhận dạng chữ viết tay hay chữ đánh máy thường được quét bằng máy scanner để chuyển thành tài liệu văn bản nhằm mục đích điều chỉnh, lấy thông tin theo ý của mình Vấn đề đặt ra là làm thế nào máy tính nhận dạng được chính xác ảnh đầu vào, đó là vấn đề cần giải quyết Vì vậy nhận dạng được sự quan tâm nghiên cứu đặc biệt đối với chữ viết tay Nhận dạng chữ viết rất hữu ích trong công việc văn phòng để thu thập tài liệu sách báo quan trọng, trong bưu điện thư tín dùng lưu địa chỉ liên lạc, mặt khác nó còn giải quyết vấn đề nhận dạng biển số xe rất hiệu quả trong việc quản lý xe… Từ những ứng dụng thiết thực, hiệu quả mang tính kinh tế cao, mà các nhà nghiên cứu không ngừng cải tiến nhằm tìm ra độ chính xác của nhận dạng là cao nhất, tối ưu nhất Hiện nay nhận dạng chữ đánh máy gần như giải quyết tuyệt đối, độ chính xác rất cao (sản phẩm FineReader của hãng ABBYY có thể nhận dạng chữ in hơn 20 ngôn ngữ khác nhau, OmmiPage của hãng Scansoft được nhận dạng các văn bản tiếng Anh hay phần mềm nhận dạng chữ in Việt VnDOCR của viện Công nghệ Thông tin Hà Nội nhận dạng văn bản ảnh tiếng Việt với độ chính xác trên 98% ) Tuy nhiên đối với chữ viết tay cũng là thách thức lớn cho
Trang 9những người nghiên cứu, do cách viết của mỗi người, chữ đẹp xấu, viết lệch chữ… Từ những yếu tố về cách viết đó, nó ảnh hưởng đến kết quả nhận dạng rất nhiều, do đó bài toán nhận dạng chữ viết đang là thách thức của chúng ta
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Nghiên cứu một số kỹ thuật trong lý thuyết xử lý ảnh
- Các phương pháp rút trích đặc trưng trong nhận dạng mẫu
- Phương pháp huấn luyện nhận dạng mẫu ứng dụng thuật toán lan truyền ngược trên công cụ lập trình Matlab
4 Mục đích, nhiệm vụ nghiên cứu
Mục đích nghiên cứu: Tiếp cận phương pháp nhận dạng chữ in viết tay
rời rạc ứng dụng thuật toán lan truyền ngược trong mạng Neural từ ảnh đầu vào nhằm số hóa tài liệu một cách tự động và nhanh chóng
Nhiệm vụ nghiên cứu: Xây dựng ứng dụng nhận dạng chữ viết tay
(offline) cụ thể qua các bước xử lý ảnh chữ viết đầu vào, rút trích đặc trưng, huấn luyện và nhận dạng mẫu ứng dụng thuật toán lan truyền ngược
5 Phương pháp nghiên cứu
Tìm kiếm tài liệu tham khảo trên website, thư viện, bài báo khoa học và
sự trợ giúp nhiệt tình của giáo viên hướng dẫn, từ đó xây dựng mô hình cho bài toán nhận dạng chữ in viết tay rời rạc Lựa chọn phương pháp phù hợp, tối ưu,
Trang 10đánh giá kết quả bài toán qua thực nghiệm rút ra kết luận
6 Đóng góp của Luận văn
Trình bài tóm tắt phương pháp cơ bản trong bài toán nhận dạng chữ in viết tay rời rạc và nhận xét, đánh giá độ chính xác trong quá trình thực nghiệm
7 Cấu trúc của Luận văn
Luận văn gồm có 2 phần và 3 chương:
Phần mở đầu
Chương 1: Tổng quan về bài toán nhận dạng chữ in viết tay rời rạc
Trong chương này nghiên cứu một số phương pháp xử lý ảnh chữ in viết tay rời rạc, trích chọn đặc trưng ảnh ký tự, huấn luyện và hậu xử lý
Chương 2: Cơ sở lý thuyết mạng Neural nhân tạo
Giới thiệu khái quát mạng Neural, tìm hiểu mô hình và kiến trúc mạng, phương pháp học và thuật toán lan truyền ngược
Chương 3: Ứng dụng thuật toán lan truyền ngược trong nhận dạng chữ in
viết tay rời rạc
Xây dựng chương trình demo nhận dạng chữ viết tay trên ngôn ngữ Matlab, nhận xét, đánh giá kết quả qua chương trình
Phần kết luận
Trang 11CHƯƠNG 1 TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG CHỮ IN VIẾT TAY
RỜI RẠC 1.1 Giới thiệu về nhận dạng chữ viết tay
Nhận dạng chữ viết tay hiện nay được nhiều người nghiên cứu trong lĩnh vực công nghệ Nhận dạng chữ viết tay có hai dạng: đó là nhận dạng online và nhận dạng offline Nhận dạng online nghĩa là hệ thống sẽ nhận dạng các chữ được viết lên màn hình ngay khi nó được viết, nhận dạng online hiện nay khá phát triển như ứng dụng nhận dạng chữ viết tay trên điện thoại di động hay mới đây Google đã tích hợp nhận dạng chữ viết tay để tìm kiếm Nhận dạng offline
là nhận dạng chữ viết trên giấy hay một văn bản giấy, thông tin đầu vào là ảnh văn bản hoặc ảnh chữ viết tay, nhận dạng offline hiện nay vẫn còn là bài toán khó Vì có nhiều vấn đề phải xử lý như ảnh đầu vào tốt hay xấu có thể làm mất thông tin trong quá trình xử lý ảnh, chữ viết có rõ nét hay không,… Những vấn
đề đó ảnh hưởng đến kết quả nhận dạng rất lớn [3], [4], [6]
1.2 Tổng quan mô hình nhận dạng chữ viết tay
Trang 121.3 Các giai đoạn thực hiện
1.3.1 Ảnh đầu vào
Ảnh đầu vào là các file ảnh (*.BMP, *.JPG, *.JPEG, *.PNG), thông thường ta đưa về chuẩn ảnh *.BMP Ảnh viết tay đầu vào được thu từ camera, ảnh chụp từ điện thoại, máy ảnh Chúng có kích cỡ, độ phân giải, kỹ thuật chụp ảnh (ảnh nghiêng, không rõ chữ…) thường không giống nhau Do đó phải xử
lý ảnh như: lọc mịn ảnh, nhị phân, chỉnh nghiêng, chuẩn kích thước, lấp khoảng trống, lấy biên Nhằm để được mẫu nhận dạng tốt phục vụ cho việc trích chọn đặc trưng và nhận dạng
1.3.2 Tiền xử lý
Tiền xử lý là giai đoạn xử lý ảnh văn bản, có ảnh hưởng trực tiếp đến độ chính xác của kết quả nhận dạng Nếu xử lý tốt giai đoạn này thì việc nhận dạng phân lớp dễ dàng hơn Tuy nhiên nó cũng ảnh hưởng tốc độ của hệ thống nhận dạng Vì thế tùy thuộc mức độ, chất lượng của ảnh mà ta xử lý nhằm tăng tốc
độ của hệ thống Một số thao tác cần xử lý ảnh văn bản: chuyển xám, nhị phân, lọc nhiễu, chỉnh nghiêng, tách biên
1.3.2.1 Chuyển xám ảnh
Khi chúng ta nhận ảnh đầu vào từ các thiết bị camera, máy chụp hình, điện thoại thông thường là một ảnh màu Vì thế chúng ta cần chuyển xám ảnh nhằm giảm kích thước ảnh tăng khả năng xử lý, giảm độ phức tạp của các thuật toán trên ảnh Đối với ảnh màu mỗi điểm ảnh (Pixel) có giá trị gồm 3 màu đỏ (RED), xanh lá (GREEN) và xanh dương (BLUE), mỗi màu có giá trị từ 0 đến 255 nghĩa là mỗi điểm ảnh cần 24 bit hay 3 bytes để biểu diễn Còn ảnh xám giá trị mỗi điểm ảnh nằm trong giải giá trị từ 0 đến 255, nghĩa là cần 8 bit hay 1 byte
để biểu diễn Với một ảnh có cùng kích thước dung lượng của ảnh màu sẽ tăng gắp 3 lần ảnh xám
Chúng ta có công thức chuyển các thông số giá trị màu của một pixel thành
Trang 13mức xám tương ứng như sau: G = α.CR + βCG + Ω.CB
Trong đó các giá trị CR, CG và CB lần lượt là các mức độ màu đỏ, xanh
lá và xanh dương của pixel màu, còn các giá trị α, β, Ω là các hệ số cường độ sáng của 3 màu
Ý tưởng của thuật toán này: tính trung bình cộng giá trị của 1 pixel, sau
đó gán lại giá trị trung bình cộng cho RGB Thuật toán này còn được gọi là thuật toán trung bình cộng
1.3.2.2 Nhị phân hóa ảnh
Nhị phân hóa ảnh là quá trình biến đổi ảnh xám thành ảnh nhị phân Ảnh nhị phân là ảnh mà giá trị của các điểm ảnh được biểu diễn bằng hai giá trị 0 (đen) và 255 (trắng) (tương ứng với 0 và 1) Vì giá trị điểm ảnh được biểu diễn bởi hai giá trị 0 hoặc 1, nên một điểm ảnh được biểu diễn bằng 1 bit do đó ảnh
có kích thước rất nhỏ phù hợp cho quá trình nhận dạng ảnh
Để chuyển một ảnh xám đa cấp thành ảnh nhị phân có nhiều phương pháp thực hiện, hầu hết các phương pháp này đều dựa vào việc chọn ngưỡng thích hợp theo cường độ sáng của ảnh
Ta có hàm phân ngưỡng sau:
Dest(x,y) = 1 if Source(x,y) ≥ T
0 if Source(x,y) < T Trong đó:
- Source(x,y) là giá trị điểm ảnh ở vị trí (x,y) của ảnh nguồn
- Dest(x,y) là giá trị tương ứng ở vị trí (x,y) của ảnh đích
- T là giá trị ngưỡng
Tuy nhiên, giá trị cụ thể của ngưỡng lại phụ thuộc vào từng ảnh, vùng ảnh đầu vào đang xét Đối với bài toán nhận dạng này ta sử dụng phương pháp chọn ngưỡng cố định với ngưỡng T = 128 (xét trên thang độ sáng từ 0 đến 255), phương pháp này đơn giản và cho kết quả tương đối đáp ứng được yêu cầu bài
Trang 14toán nhận dạng
1.3.2.3 Lọc nhiễu
Trong nhận dạng ảnh, nhiễu ảnh hưởng lớn đến độ chính xác của bài toán,
vì thế lọc nhiễu là giai đoạn quan trọng trong quá trình nhận dạng Nhiễu có nhiều loại như nhiễu đốm, nhiễu muối tiêu, nhiễu vệt, nhiễu đứt nét…Khử nhiễu có nhiều phương pháp, với từng loại nhiễu khác nhau sử dụng phương pháp khử khác nhau để được kết quả tốt nhất Thông thường đa số ảnh bị nhiễu thường là nhiễu đốm, nhiễu muối tiêu, đối với bài toán nhận dạng chữ viết ta
sử dụng phương pháp lọc Trung vị Vì nó khá hiệu quả đối với nhiễu đốm và nhiễu muối tiêu
Ý tưởng phương pháp lọc Trung vị: ta sử dụng một cửa sổ lọc (ma trận 3x3) quét qua từng điểm ảnh của ảnh gốc (ảnh đầu vào) Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3x3 của ảnh gốc lấp vào
ma trận lọc Sau đó sắp xếp các điểm ảnh trong cửa sổ lọc theo thứ tự (tăng dần hoặc giảm dần) Cuối cùng, gán điểm ảnh nằm chính giữa (Trung vị) của dãy giá trị điểm ảnh được sắp xếp cho giá trị điểm ảnh đang xét của ảnh đầu ra
Ví dụ: có ma trận lọc 3x3 như sau:
52 20 58
63 200 58
61 60 255
- Các giá trị sau khi được sắp xếp: 20, 52, 58, 58, 60, 61, 63, 200, 255
- Kết quả là giá trị 200 sẽ được thay bằng giá trị 60
Hạn chế của lọc Trung vị là chậm do mỗi lần tính giá trị mới phải thực hiện sắp xếp lại nxn lần
Trang 151.3.2.4 Chỉnh nghiêng văn bản
Trong quá trình scan văn bản hay lỗi ảnh chụp từ camera có thể làm ảnh văn bản bị nghiêng ảnh hưởng đến công đoạn tách chữ, do đó cần hiệu chỉnh nghiêng văn bản về vị trí trục hoành theo phương nằm ngang
Có nhiều phương pháp để chỉnh nghiêng văn bản như: phương pháp phân tích hình chiếu (Projection Profile), phương pháp dựa vào trọng tâm (Center of Gravity), Phương pháp dựa vào biến đổi Hough (Hough Transform)…Mục đích của các phương pháp này là tìm độ lệch nghiêng và hiệu chỉnh góc nghiêng văn bản để xử lý ảnh văn bản đạt hiệu quả tốt nhất
Phương pháp phân tích hình chiếu là phương pháp phổ biến nhất trong phát hiện góc nghiêng văn bản Ý tưởng chính của phương pháp này là tính Histogram cho tất cả các góc lệch (Histogram của một góc là số điểm ảnh đen trong ảnh, sao cho các điểm này nằm trên những đường thẳng có cùng một hướng tương ứng với góc đó) Sau đó, dùng một hàm chi phí áp dụng cho các giá trị Histogram này Góc nghiêng của văn bản tương ứng với góc có giá trị hàm chi phí cực đại
Phát hiện góc lệch văn bản bằng cách chiếu các góc là phương pháp đơn giản và dễ hiểu, tốc độ nhanh, phù hợp với bài toán nhận dạng ảnh văn bản Tuy nhiên, phương pháp này có điểm hạn chế nhiều về độ chính xác với các góc lệch lớn Để thuật toán có độ chính xác cao thì góc lệch văn bản phải giới hạn trong khoảng ± 150 (theo Baird)
Hình 1.3.2.4.1 Hiệu chỉnh độ nghiêng văn bản
Trang 161.3.3 Phân tích tìm ký tự xử lý
Sau khi thực hiện các thao tác xử lý ảnh đầu vào được trình bài trong phần tiền xử lý, bước tiếp theo ta tách khối ảnh văn bản thành từng ảnh ký tự đơn, phát hiện biên, chuẩn hóa kích thước ảnh ký tự để phục vụ cho việc trích chọn đặc trưng trên từng ký tự đó và đưa vào nhận dạng
1.3.3.1 Tách dòng
Tách dòng văn bản chính là cơ sở để tiến hành tách từng ký tự, có nhiều phương pháp để tách dòng văn bản như: tách dòng dựa vào đường kẽ ngang, tách dòng dựa vào thành phần liên thông, tách dòng dựa vào khoảng trắng giữa các dòng, tách dòng dựa vào lượt đồ sáng Histogram…Mỗi phương pháp điều
có ưu, nhược điểm khác nhau Hầu hết những phương pháp tách dòng điều đạt kết quả tốt đối với văn bản ảnh đánh máy Nhưng không hiệu quả đối với văn bản ảnh viết tay Vì chữ viết tay giữa các dòng thường có phần giao giữa các
ký tự là khá phổ biến điều này ảnh hưởng rất lớn đến việc tách sai dòng Trong bài luận này ta chỉ nhận dạng chữ in viết tay rời rạc nên việc tách dòng không quá phức tạp, ý tưởng của phương pháp tách dòng như sau:
- Xác định giới hạn trên: Xuất phát từ điểm ảnh đầu tiên của file ảnh quét
từ trái sang phải theo chiều rộng của ảnh Nếu gặp một điểm màu đen thì ghi nhận đây là giới hạn trên của dòng Nếu không, tiếp tục duyệt Khi quét hết chiều rộng của ảnh, vẫn không tìm thấy giá trị điểm màu đen thì nhảy xuống dòng tiếp theo
- Xác định giới hạn dưới của dòng: Bắt đầu duyệt từ giới hạn trên vừa tìm được của dòng tại vị trí (x, y), Tương tự như cách xác định giới hạn trên, ta duyệt hết chiều rộng của ảnh Nếu duyệt hết dòng mà vẫn không tìm thấy điểm đen nào thì ghi nhận y là giới hạn dưới của dòng, dừng duyệt Nếu chưa tìm thấy giới hạn dưới, tiếp tục duyệt đến dòng tiếp theo
Trang 17- Khi tìm được gới hạn trên và giới hạn dưới của một dòng, ta tiếp tục lặp lại các bước để xác định các giới hạn của các dòng tiếp theo, cho đến khi duyệt hết chiều cao của ảnh thì dừng, quá trình xác định dòng ký tự hoàn tất
Hình 1.3.3.1.1 Quá trình tách dòng từ ảnh đầu vào
Nhược điểm của phương pháp này là đối với văn bản ảnh bị nghiêng sẽ hưởng đến kết quả tách dòng
1.3.3.2 Tách từ
Sau khi văn bản đã tách thành từng dòng riêng biệt, bước tiếp theo ta tách thành từ Tách từ cũng có rất nhiều phương pháp trong đó phương pháp sử dụng lượt đồ Histogram theo chiều dọc có độ chính xác cao
1.3.3.3 Tách ký tự
Tách ký tự là quá trình tách thành một ký tự riêng biệt, nhưng cũng là công đoạn khó nhất Vì đối với chữ viết tay các ký tự có thể dính vào nhau, độ rộng của ký tự không đều nhau, làm cho việc tách ký tự trở nên không chính xác Tách ký tự chữ viết tay không rời rạc là việc rất khó khăn, thường ta áp dụng phương pháp Histogram theo chiều dọc kết hợp với tính trung bình khoảng cách của các ký tự để quá trình cắt có độ chính xác cao hơn, nhưng việc tìm được ngưỡng phù hợp trở nên nhọc nhằn hơn (do các ký tự dính vào nhau) Việc tách
ký tự có chính xác cao hay không còn phải phụ thuộc vào nét chữ của người viết (người viết rõ nét, đều chữ thì tách ký tự chính xác hơn)
Trong bài luân này chúng ta nghiên cứu về chữ viết tay rời rạc nên những trường hợp ký tự dính vào nhau không xẩy ra Vì vậy ta có thể sử dụng phương
Trang 18pháp tách ký tự giống như phương pháp tách dòng được trình bài ở phần trên Thay vì tách dòng ta quét ảnh từ trên xuống để tách thành từng dòng, còn tách
ký tự ta quét dòng từ trái sang phải để tách thành ký tự riêng biệt
Hình 1.3.3.3.1 Quá trình tách ký tự 1.3.3.4 Phát hiện biên ký tự
Mục đích của việc phát hiện biên nhằm loại bỏ những phần dư thừa không cần thiết được thể hiện qua hình 1.3.3.4.1
Hình 1.3.3.4.1 Loại bỏ phần tử dư thừa trên ký tự “A”
Phương pháp phát hiện biên là sự kết hợp của phương pháp tách dòng và tách ký tự Ta tìm giới hạn trên, dưới, trái, phải
1.3.3.5 Chuẩn hóa kích thước ký tự
Sau khi hoàn tất quá trình cắt ký tự, các ký tự có kích thước ảnh không đều nhau Vì vậy để đưa vào hệ thống nhận dạng việc chuẩn hóa kích thước ảnh ký tự là cần thiết, nhằm tăng độ chính xác của quá trình nhận dạng và tạo
Trang 19sự đồng đều kích thước trong quá trình xử lý Ảnh ký tự được chuẩn hóa kích thước được thể hiện hình 1.3.3.5.1
Hình 1.3.3.5.1 Chuẩn hóa kích thước ảnh ký tự “A” và “P”
Phương pháp chuẩn hóa kích thước ảnh dựa trên việc xác định trọng tâm ảnh, sau đó xác định khoảng cách lớn nhất từ tâm ảnh đến các cạnh trên, dưới, trái, phải của hình chữ nhật bao quanh ảnh Thông qua khoảng cách lớn nhất
đó, có thể xác định được một tỷ lệ co, giãn của ảnh gốc so với kích thước đã xác định, từ đó hiệu chỉnh kích thước ảnh theo tỷ lệ co, giãn này Như vậy, thuật toán chuẩn hóa kích thước ảnh luôn luôn đảm bảo được tính cân bằng khi
co giãn ảnh, ảnh sẽ không bị biến dạng hoặc bị lệch
1.3.4 Trích chọn đặc trưng
Trích chọn đặc trưng đóng vai trò quan trọng trong nhận dạng ký tự Mỗi
ký tự có một vài đặc trưng riêng biệt đó là cách nhận biết sự khác nhau giữa các ký tự Mục tiêu chính của việc trích chọn đặc trưng là rút trích những thông tin cần thiết nhất từ ký tự ban đầu mà vẫn đảm bảo được sự chính xác thông tin của ký tự đó Khi mà dữ liệu đầu vào cho một thuật toán là quá lớn và cũng có thể là dư thừa (nhiều dữ liệu, nhưng không có nhiều thông tin) Do đó việc trích chọn đặc trưng là không thể thiếu đặc biệt đối với bài toán nhận dạng với tập
dữ liệu đầu vào lớn Trích chọn đặc trưng có rất nhiều phương pháp, trong bài luận nay tôi giới thiệu một vài phương pháp thường hay sử dụng trong nhận dạng chữ viết tay
Trang 201.3.4.1 Một số đặc trưng cơ bản của mẫu
Đặc trưng thống kê: là phương pháp thống kê sự biến đổi đa dạng về
hình dáng, cường độ, hướng của ký tự Mặc dù các kiểu đặc trưng này không thể xây dựng lại ảnh gốc, nhưng nó được sử dụng để thu nhỏ số chiều của tập đặc trưng nhằm tăng tốc độ và giảm thiểu độ phức tạp tính toán Một số đặc trưng thống kê thường dùng để biểu diễn ảnh ký tự như: trích chọn phân vùng, trích chọn chu tuyến, đặc trưng hướng Đặc trưng thống kê được thể hiện qua hình 1.3.4.1.1
Hình 1.3.4.1.2 Cấu trúc hình thái ký tự “A” và “H”
Trang 211.3.4.2 Các phương pháp trích chọn đặc trưng cơ bản
- Trích chọn chu tuyến:
+ Phần được trích chọn là khoảng cách từ biên của khung chứa chữ đến
điểm đen đầu tiên của chữ trên cùng một dòng quét
+ Ví dụ một ảnh ký tự có kích thước điểm ảnh 16*16 (16 dòng và 16 cột), phần trên 16 khoảng cách từ điểm đen đầu chữ đến biên khung (16 đặc trưng), dưới 16, trái, phải 16 Vậy tổng cộng có 64 đặc trưng
Hình 1.3.4.2.1 Trích chọn chu tuyến
- Trích chọn đặc trưng phân vùng:
+ Ảnh ký tự sau khi đã chuẩn hóa kích thước thành n*m, sau đó ta chia thành k vùng (k = k1 + k2 + … + ki) bằng nhau, từ k vùng ta tính giá trị trung bình trong vùng ki, ta được k đặc trưng
+ Ví dụ ta có ảnh ký tự kích thước 90*60 điểm ảnh được chia thành 54 vùng bằng nhau, mỗi vùng có kích thước 10*10 điểm ảnh Các đặc trưng này được rút ra từ mỗi điểm ảnh của từng vùng bằng cách di chuyển dọc theo đường chéo của các điểm ảnh 10*10 tương ứng của nó Mỗi vùng có 19 đường chéo
và các điểm ảnh nằm trên mỗi đường chéo được tính tổng để có một đặc trưng duy nhất Với 19 đặc trưng được tính giá trị trung bình để tạo thành một giá trị đặc trưng duy nhất trong vùng Việc này được lặp lại cho đến tinh hết tất cả
Trang 22trong vùng Cuối cùng, 54 đặc trưng được trích từ ảnh ký tự Ngoài ra, ta còn trích thêm 9 và 6 đặc trưng thu được bằng cách lấy trung bình các giá trị theo dòng và cột Vậy có tổng cộng 69 đặc trưng
Hình 1.3.4.2.2 Trích chọn đặc trưng phân vùng
- Trích chọn đặc trưng Gradient:
+ Gradient là một vector có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh theo 2 hướng x và y, hay nói các khác Gradient đại diện cho sự thay đổi về hướng và độ lớn của một vùng ảnh Gradient được tính bởi toán tử Sobel theo tọa độ (x,y) được biểu diễn bởi hai ma trận được thể hiện qua hình 1.3.4.2.3
Sx Sy
Hình 1.3.4.2.3 Mặt nạ Sobel theo hai hướng X và Y
Trang 23+ Giả sử đầu vào một ảnh có kích thước D1xD2, với mỗi điểm ảnh có toạ
độ (i, j), ta xét tại điểm ảnh này và 8 điểm lân cận nó, các giá trị này được cho bởi ma trận I Các vector thành phần Sx và Sy của vector gradient tại điểm ảnh
có tọa độ (i, j) khi đó sẽ được tính dựa trên mặt nạ của toán tử Sobel theo hướng
là tập hợp biên độ và hướng của vector gradient tại tất cả các điểm ảnh Từ bản
đồ biên độ, ta tìm các điểm biên của ảnh bằng cách chọn một ngưỡng θ, và xét
r(i, j) Nếu r(i, j) > θ thì điểm ảnh tại (i, j) là điểm biên
+ Sau đó ta xác định các điểm biên và lượng tử hướng của chúng về 12 giá trị từ 0 đến 11 tương ứng với 360 độ Tính được bản đồ biên độ và bản đồ hướng của ảnh, chia ảnh thành 3×3 phần bằng nhau Với mỗi phần ảnh k (k = 0…8) ta làm như sau:
+ Dựa vào bản đồ biên độ và bản đồ hướng để tính tổng số điểm biên có giá trị hướng lần lượt là 0, …, 11 Giả sử thu được bộ 12 giá trị ai với i = 0…11
Trang 24và ai là tổng số điểm biên có giá trị hướng bằng i Với ngưỡng η được chọn trước (áp dụng cho tất cả các phần của ảnh) ta xác định lại giá trị ai như sau: nếu ai > η thì ai = 1; ngược lại ai = 0
+ Vậy vùng ảnh k sẽ có 12 bit đặc trưng có giá trị 0 hoặc 1 (tương ứng với
các giá trị ai) thể hiện các đặc trưng về hướng của các điểm biên trong phần ảnh này Như vậy, số đặc trưng theo hướng của toàn bộ ảnh sẽ là: 3×3×12 = 108 và được thể hiện dưới dạng bit nhị phân (0 hoặc 1)
1.3.5 Huấn luyện và nhận dạng
Đây là giai đoạn quyết định của bài toán nhận dạng, ảnh hưởng đến kết quả nhận dạng (độ chính xác, tốc độ xử lý) Có nhiều phương pháp để giải quyết bài toán nhận dạng như phương pháp đối sánh mẫu, phương pháp tiếp cận cấu trúc, phương pháp thống kê, mô hình Markov ẩn (HMM), máy tựa véc tơ (SVM), mạng Neural Trong đó mạng Neural được giới thiệu và áp dụng trong bài luận này
1.3.6 Hậu xử lý
Hậu xử lý đây là giai đoạn cuối cùng của bài toán nhận dạng chữ viết Sau khi ký được nhận dạng việc còn lại của hậu xử lý là ghép các ký tự thành chữ, câu, đoạn, giống như theo cấu trúc của ảnh chữ ban đầu Ngoài ra còn xử lý những sai sót trong quá trình nhận dạng (nhận sai chữ) Mô hình ngôn ngữ thống kê N-Grams đã được sử dụng khá thành công trong việc kiểm tra chính
tả ở công đoạn hậu xử lý Hậu xử lý góp phần cải thiện rất nhiều độ chính xác của bài toán nhận dạng
Trang 25CHƯƠNG 2
CƠ SỞ LÝ THUYẾT MẠNG NEURAL NHÂN TẠO
Giới thiệu khái quát mạng Neural, tìm hiểu mô hình và kiến trúc mạng, phương pháp học và thuật toán lan truyền ngược ứng dụng cho mô hình nhận dạng chữ viết tay rời rạc [1], [2], [5], [7]
2.1 Giới thiệu
Mạng neural nhân tạo (Artificial Neural Network - ANN) là một mô phỏng
xử lý thông tin, được nghiên cứu ra từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý thông tin Nó bao gồm số lượng lớn các mối gắn kết cấp cao để xử lý các yếu tố làm việc trong mối liên hệ giải quyết vấn đề rõ ràng ANN giống như con người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử dụng trong những tình huống phù hợp
Hình 2.1.1 Mô hình mạng neural sinh học
Đầu tiên ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits Các nghiên cứu ứng dụng đã được thực hiện trong rất nhiều lĩnh vực: kỹ thuật chế tạo, y học, quân sự, kinh tế Tại Việt Nam việc nghiên cứu ứng dụng ANN trong vài năm gần đây đang được quan tâm đặc biệt trong lĩnh vực nhận dạng
2.2 Khái niệm
Neural nhân tạo là một đơn vị tính toán có thể có nhiều đầu vào và chỉ một
Trang 26đầu ra Mỗi một neural nhân tạo được tạo ra sẽ có nhiệm vụ tổng hợp các thông tin đầu vào và chuyển đổi thành thông tin một tín hiệu ở đầu ra Mỗi đầu vào được gắn liền với một hệ số nhân bất kì nào đó gọi chung là trọng số (weight) Trọng số có thể là các số dương hoặc âm Mỗi neural nhân tạo có một giá trị ngưỡng Chức năng đầu vào của mỗi neural là tính tổng các tín hiệu đầu vào với các trọng số liên kết đồng thời kết hợp với giá trị ngưỡng để tạo ra một giá trị nhất định là tín hiệu đầu vào (net input) Mỗi neural nhân tạo cho ra một giá trị ở đầu ra, và giá trị đầu ra này phụ thuộc vào hàm truyền dẫn (transfer function) Hàm này sẽ nhận tín hiệu đầu vào (net input) sau đó tính toán và cho
ra kết quả là đầu ra của neural
2.3 Mô hình và kiến trúc mạng Neural
2.3.1 Mô hình mạng Neural
- Mô hình mạng Neural một đầu vào
+ Đầu vào: p (một số vô hướng)
+ Trọng số: w (một số vô hướng)
+ Đầu vào: 1 (một số vô hướng)
+ Độ lệch: b (một số vô hướng), b có thể có hoặc không
+ Đầu vào mạng (net input): n = wp + b
+ Hàm truyền: f (f tạo ra số vô hướng a = f(wp + b) là đầu ra của mạng)
Input Neural
Nguồn [Martin T Hagan, Howard B Demuth, Mark Hudson Beale]
Hình 2.3.1.1 Mạng Neural 1 đầu vào