Nhận dạng chữ in nói chung và nhận dạng chữ in tiếng Việt nói riêng đã và đang là bài toán thu hút được nhiều sự quan tâm và nghiên cứu. Vì vậy đồ án này em xin tìm hiểu một phần trong mảng này.Bài toán nhận dạng chữ in Tiếng Việt gồm ba công đoạn chủ yếu: Phân đoạn ảnh thành các kí tự, Nhận dạng kí tự và hậu xử lý.Với bài toán nhận dạng chữ in tiếng Việt có sự khó khăn do hệ thống có dấu mũ của các kí tự, làm tăng số kí tự cần nhận dạng, cũng như khó khăn trong việc nhận dạng kí tự vì các kí tự có đặc điểm khá giống nhau, đồng thời tăng khả năng giao nhau giữa các dòng. Để giải quyết vấn đề này, trong đồ án này, tôi sử dụng phương pháp tách dòng dựa vào khoảng trắng.Đồ án gồm có 5 chương với bố cục như sau:Chương 1: Giới thiệu.Chương 2: Cơ sở lý thuyết cho phân đoạn ảnh và thuật toán nhận dạng kí tự.Chương 3: Phân đoạn ảnh cho nhận dạng kí tự.Chương 4: Bộ nhận dạng kí tựChương 5: Thực nghiệm
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đồ án tốt nghiệp “Nhận dạng kí tự chữ in hoa Tiếng Việt”
là công trình nghiên cứu của bản thân Các số liệu, kết quả nghiên cứ nêu trong đồ
án này là trung thực và không sao chép y nguyên từ các công trình khác Tôi xin
chịu trách nhiệm về đồ án của mình
Đà Nẵng, tháng 5/2014 Người viết
Trang 2MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH MỤC HÌNH VẼ 6
DANH MỤC BẢNG BIỂU 7
DANH MỤC TỪ VIẾT TẮT 8
Mở đầu 9
Chương 1 10
GIỚI THIỆU 10
1.1 Đặt vấn đề 10
1.2 Nội dung nghiên cứu của đồ án 12
1.3 Một số ứng dụng của nhận dạng kí tự 12
1.4 Kết luận chương 13
CHƯƠNG 2 14
CƠ SỞ LÝ THUYẾT CHO PHÂN ĐOẠN ẢNH VÀ THUẬT TOÁN NHẬN DẠNG KÍ TỰ 14
2.1 Giới thiệu chương 14
2.2 Không gian màu RGB 14
2.3 Cơ bản về xử lý ảnh 15
2.3.1 Điểm ảnh 15
2.3.2 Độ phân giải ảnh 15
2.3.3 Mức xám của ảnh 16
2.3.4 Các hàm hiển thị ảnh trong Matlab 16
Trang 32.4 Cơ sở lý thuyết cho phân đoạn ảnh 19
2.4.1 Nhị phân hóa 19
2.4.2 Xử lý triệt nhiễu và nâng cao chất lượng ảnh 20
2.4.3 Chuẩn hóa kích thước ảnh 21
2.5 Phương pháp nhận dạng kí tự 22
2.5.1 Đối sánh mẫu 22
2.5.2 Đánh giá, so sánh phương pháp đôi sánh mẫu với các phương pháp khác 23
2.6 Kĩ thuật PCA 24
2.6.1 Giới thiệu 24
2.6.2 Một số khái niệm toán học sử dụng trong PCA 25
2.6.3 Thuật toán PCA 27
2.7 Kết luận chương 28
CHƯƠNG 3: 29
PHÂN ĐOẠN ẢNH CHO NHẬN DẠNG VĂN BẢN 29
3.1 Giới thiệu chương 29
3.2 Tiền xử lý ảnh 29
3.3 Tách dòng 29
3.3.1 Ý tưởng 29
3.3.2 Ưu nhược điểm của phương pháp 30
3.3.3 Thuật toán 30
3.4 Tách từ 31
3.4.1 Ý tưởng 31
3.4.2 Thuật toán 32
3.5 Tách kí tự 32
Trang 43.5.1 Ý tưởng 33
3.5.2 Thuật toán 33
3.6 Xác định giới hạn chính xác cho từng kí tự 33
3.6.1 Xác định giới hạn trên và giới hạn dưới của kí tự 33
3.6.2 Xác định giới hạn phải và giới hạn trái của kí tự 34
3.7 Ánh xạ kí tự ảnh vào ma trận giá trị 34
3.7.1 Chuẩn hóa kích thước từng kí tự 34
3.7.2 Chuyển ma trận lưới pixel thành ma trận giá trị 35
3.8 Kết luân chương 35
Chương 4: 37
BỘ NHẬN DẠNG KÍ TỰ 37
4.1 Giới thiệu chương 37
4.2 Thuật toán PCA được sử dụng cho nhận dạng kí tự 37
4.3 Các bước để nhận dạng văn bản kí tự 39
4.4 Kết luận chương 41
Chương 5 42
THỰC NGHIỆM ĐÁNH GIÁ KẾT QUẢ CHƯƠNG TRINH NHẬN DẠNG KÍ TỰ CHỮ IN HOA TIẾNG VIỆT 42
5.1 Giới thiệu 42
5.2 Môi trường thực nghiệm 42
5.3 Thực nghiệm với bộ phân đoạn ảnh 42
5.3.1 Tách dòng 43
5.3.2 Tách từ 43
5.3.3 Tách kí tự 44
Trang 55.5 Thực nghiệm với chương trình nhận dạng văn bản 46
5.6 Kết luận chương 48
Kết luận và Hướng phát triển đề tài 49
Tài liệu tham khảo 50
PHỤ LỤC 51
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1 Sơ đồ khối hệ nhận dạng văn bản Tiếng Việt 11
Hình 2.1 Không gian màu RGB 15
Hình 2.2 ví dụ chuyển ảnh RGB sang ảnh đa mức xám và sau đó là ảnh nhị phân 19 Hinh 2.3 Ví dụ về nhiễu đốm 20
Hình 2.4 Ảnh sau khi áp dụng lọc trung vị 21
Hình 2.5 Kí tự A sau khi được chuẩn hóa với kích thước 15x10 21
Hình 2.6 Minh họa PCA :phép chiếu lên các trục tọa độ khác nhau có thể cho cùng cách nhìn rất khác nhau về cùng một dữ liệu 24
Hình 2.7 Minh họa PCA : tìm cá trụ tọa độ mới sao cho dữ liệu có độ biến thiên cao nhất 25
Hình 2.8 Các bước chính thực hiện PCA 27
Hình 3.1 Mô phỏng kết quả tách dòng 31
Hình 3.2 Ví dụ cho thuật toán tách từ 32
Hình 3.3 Mô tả vị trí của các vết cắt của kí tự 33
Hình 3.4 Mô tả giới hạn trên và giới hạn dưới của kí tự 34
Hình 4.2 Các bước thực hiện nhận dạng kí tự 40
Hình 5.1 Minh họa cho quá trình tách dòng 43
Hình 5.2 Ảnh các mẫu kí tự in hoa Tiếng Việt font chữ Arial 45
Hình 5.3 Ví dụ ảnh văn bản 1 để nhận dạng 46
Hinh 5.4 Văn bản sau khi nhận dạng xong 46
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2.1 Các hàm xử lý hình ảnh khác trong Matlab 17
Bảng 2.2 Các phương pháp nội suy 22
Bảng 5.1 Kết quả thực nghiệm tách dòng 43
Bảng 5.2 Kết quả thực nghiệm tách từ 44
Bảng 5.3 Kết quả thực nghiệm nhận dạng kí tự 47
Trang 8DANH MỤC TỪ VIẾT TẮT
ORC: Optical Character Recognition
PCA: Principal Component Analysis
RGB: red-green-blue
PEL: Picture Element
SVM: support vector machine
Trang 9Mở đầu
Nhận dạng chữ in nói chung và nhận dạng chữ in tiếng Việt nói riêng đã vàđang là bài toán thu hút được nhiều sự quan tâm và nghiên cứu Vì vậy đồ án này
em xin tìm hiểu một phần trong mảng này
Bài toán nhận dạng chữ in Tiếng Việt gồm ba công đoạn chủ yếu: Phân đoạnảnh thành các kí tự, Nhận dạng kí tự và hậu xử lý
Với bài toán nhận dạng chữ in tiếng Việt có sự khó khăn do hệ thống có dấu
mũ của các kí tự, làm tăng số kí tự cần nhận dạng, cũng như khó khăn trong việcnhận dạng kí tự vì các kí tự có đặc điểm khá giống nhau, đồng thời tăng khả nănggiao nhau giữa các dòng Để giải quyết vấn đề này, trong đồ án này, tôi sử dụngphương pháp tách dòng dựa vào khoảng trắng
Đồ án gồm có 5 chương với bố cục như sau:
Chương 1: Giới thiệu
Chương 2: Cơ sở lý thuyết cho phân đoạn ảnh và thuật toán nhận dạng kí tự
Chương 3: Phân đoạn ảnh cho nhận dạng kí tự
Chương 4: Bộ nhận dạng kí tự
Chương 5: Thực nghiệm
Em xin chân thành cảm ơn cô Bùi Thị Minh Tú đã tận tình hướng dẫn, cungcấp tài liệu đồng thời động viên trong thời gian em nghiên cứu và hoàn thành đồ ánnày
Trong thời gian thực hiện đồ án, mặc dù có nhiều cố gắng nhưng đồ ánkhông thể tránh khỏi những thiếu sót Kính mong các thầy cô tận tình chỉ bảo vàgóp ý để đồ án hoàn thiện hơn
Em xin chân thành cảm ơn!
Trang 10Chương 1
GIỚI THIỆU1.1 Đặt vấn đề
Nhận dạng kí tự quang học (ORC-Optical Character Recognition) là một bàitoán chuyển các hình ảnh của chữ viết tay hoặc đánh máy (thường được quét bằngmáy scanner) thành các văn bản tài liệu Do bài toán vẫn còn nhiều vấn đề chưa giảiquyết một cách triệt để, như vấn đề về tốc độ xử lý, độ chính xác Và vì vậy vẫnnhận được nhiều sự quan tâm nghiên cứu, đặc biệt là cho Tiếng Việt Nhận dạngvăn bản được áp dụng trong quá trình tự động hóa các công việc văn phòng nhưnhập liệu, lưu trữ văn bản, sách báo, phân loại thư tín,…, những công việc đòi hỏithời gian của con người
Hiện nay cũng có rất nhiều bài báo đề cập đến bài toán nhận dạng kí tựquang học, nhằm cải tiến các phương pháp phân đoạn ảnh, nhận dạng Song vẫnchưa giải quyết một cách triệt để những vấn đề khó khăn của bài toán thường gặpphải Đặc biệt là đối với việc nhận dạng các kí tự Tiếng Việt, gặp rất nhiều khókhăn, do tính riêng biệt của Tiếng Việt: số kí tự nhiều, các kí tự lại có dấu… Nênbài toán vẫn còn thu hút được sự quan tâm, nghiên cứu nhằm giải quyết những khókhăn đó
Một số hệ nhận dạng văn bản đã và đang được áp dụng rất nhiều vào ứngdụng như FineReader của hãng AABBYY, OmmiPage của hãng ScanSoft đượcdùng để nhận dạng các văn bản tiếng Anh… VNDOCR của Viện công nghệ thôngtin cho các văn bản tiếng Việt
Bài toán nhận dạng văn bản được thực hiện qua ba giai đoạn chính: phânđoạn ảnh, nhận dạng từ và hậu xử lý Trong đồ án này tôi xin đi sâu vào nghiên cứucông đoạn nhận dạng từ Bên cạnh đó kết hợp với phân đoạn ảnh để xây dựng thànhmột hệ thống nhận dạng văn bản hoàn thiện Bài toán mà chúng tôi đang nghiên cứuđược thực hiện qua các giai đoạn như mô tả trong hình sau
Trang 11Hình 1.1 Sơ đồ khối hệ nhận dạng văn bản Tiếng Việt.
Đầu vào của hệ thống nhận dạng của chúng ta là một hình ảnh scan từ mộtvăn bản tiếng Việt Đầu ra là một bản đã được nhận dạng, văn bản này có thể chỉnhsửa Để xử lý được điều này hệ thống nhận dạng của chúng ta sẽ trải qua giai đoạnsau đây:
1 Phân đoạn ảnh: Giai đoạn này có nhiệm vụ loại bỏ nhiễu nhằm nâng cao chấtlượng hình ảnh đầu vào Sau đó thực hiện việc tách đoạn, tách dòng, tách từ, tách kítự
2 Bộ nhận dạng kí tự: Đầu vào của giai đoạn này là ảnh của một kí tự, đầu ra là kí
tự nhận dạng được Thông thường trong phần này sử dụng một thuật toán học máyhoặc một bộ đối sánh mẫu
3 Bộ hậu xử lý: Tổng hợp các kí tự nhận dạng được và hiển thị lên cho người dùng.Đồng thời trong phần này có nhiều nghiên cứu và hệ thống đưa nhiệm vụ điều chỉnhnhận dạng sai dùng từ điển hoặc mô hình ngôn ngữ
Văn bản sau khi scan
Văn bản được nhận dạng
Phân đoạn ảnh
Bộ nhận dạng
Bộ hậu xử lý
Trang 12Từ sơ đồ hình 1.1 chúng ta cũng thấy rằng để xây dựng được hệ thống nhậndạng thì có hai công đoạn quan trọng nhất: Phân đoạn ảnh và Xây dựng bộ nhận
dạng kí tự Trong đồ án này tôi đi vào nghiên cứu bộ nhận dạng kí tự và một sốkhâu trong bộ phân đoạn ảnh
1.2 Nội dung nghiên cứu của đồ án
Bài toán thực hiện trong đồ án này là bài toán nhận dạng chữ in tiếng Việtứng dụng trong quá trình tự động hóa các công việc văn phòng Bài toán này gồm 3công đoạn chủ yếu Nhưng trong khoá luận này tập trung chủ yếu vào 2 công đoạnchủ yếu là phân đoạn ảnh và nhận dạng kí tự Đồng thời cũng nghiên cứu lý thuyết
cơ bản về các hệ nhận dạng đã được xây dựng và phát triển Tách dòng, tách từ,tách ký tự là ba nội dung quan trọng của quá trình phân đoạn ảnh Độ chính xác củamỗi giai đoạn có thể làm ảnh hưởng đến độ chính xác của giai đoạn khác, cũng nhưcủa toàn bộ hệ thống Chúng tôi nghiên cứu đánh giá một số phương pháp được sửdụng để thực hiện các nội dung đó, và áp dụng nó vào bài toán nhận dạng văn bảnchữ in tiếng Việt.Trong giai đoạn nhận dang kí tự, trong đồ án này tôi đề xuất sửdụng thuật toán PCA
1.3 Một số ứng dụng của nhận dạng kí tự.
Trong an ninh và bảo mật, nhận dạng kí tự quang học được áp dụng vào nhậndạng biển số xe, giúp quá trình lưu trữ cũng như xác nhận thông tin về chiếc xe
mang biển số một cách nhanh chóng Qua đó giúp quản lý các xe lưu thông trong
thành phố một cách cụ thể, hay giúp việc điều tra, phá án của cảnh sát
Trong cục quản lý hàng hải, việc giải quyết các giấy tờ hải quan xuất nhập
khẩu là cả một vấn đề đối với những người quản lý Công việc này tốn rất nhiều
thời gian Áp dụng ứng dụng nhận dạng kí tự vào, giúp việc truy nhập thông tin
xuất nhập khẩu một cách nhanh chóng, ít tốn thời gian và công sức
Nhận dạng các kí tự viết tay đang là chủ đề nóng trong giai đoạn hiện nay
Qua đó tăng thêm khả năng nhập liệu cho các hệ điều hành cũng như các phần mềmkhác Ngoài nhập bằng bàn phím, phím ảo, chuột Bây giờ nhờ vào áp dụng kĩ thuật
Trang 13Các công việc hành chính được giải quyết nhanh chóng hơn, hiệu quả hơn
nhờ vào áp dụng kĩ thuật nhận dạng kí tự quang học Các giấy tờ cá nhân: chứng
minh nhân dân, giấy khai sinh, giấy tờ nhà đất,… sẽ được nhận dạng để thu thập
thông tin nhanh hơn, chính xác hơn
1.4 Kết luận chương.
Kĩ thuật nhận dạng kí tự quang học đã được phát triển từ khá lâu Song vẫn chưa giải quyết được triệt để các vấn đề để đạt kết quả chính xác cao nhất; nên vẫn được sự quan tâm, chú ý của các nhà khoa học cũng như các công ty
Để tìm hiểu sâu hơn về cơ sở lý thuyết và các kĩ thuật trong nhận dạng kí tự chúng ta sẽ lần lượt đi vào các chương sau:
Chương 2: Cơ sở lý thuyết cho phân đoạn ảnh và thuật toán nhận dạng kí tự
Chương 3: Phân đoạn ảnh cho nhận dạng kí tự
Chương 4: Bộ nhận dạng kí tự
Chương 5: Thực nghiệm
Trang 14CHƯƠNG 2
CƠ SỞ LÝ THUYẾT CHO PHÂN ĐOẠN ẢNH VÀ THUẬT TOÁN NHẬN
DẠNG KÍ TỰ 2.1 Giới thiệu chương
Trong chương này, đồ án đề cập đến các vấn đề cơ bản về ảnh và xử lý ảnh
cho bộ phân đoạn ảnh; đồng thời giới thiệu thuật toán nhận dạng cho bộ nhận dạng
kí tự Nội dung chương gồm các phần chính sau:
- Không gian màu RGB
- Cơ bản về xử lý ảnh
- Cơ sở lý thuyết cho phân đoạn ảnh
- Phương pháp nhận dạng kí tự
- Cơ sở lý thuyết của Kĩ thuật PCA
2.2 Không gian màu RGB.
Đầu vào của hệ thống nhận dạng là một ảnh RGB, do được scan hoặc chụp
từ văn bản cần nhận dạng Nhưng phân đoạn ảnh và nhận dạng kí tự thì thực hiệnhoàn toàn trên ảnh nhị phân Đồng thời kết hợp với một số phương pháp để xử lýtheo những yêu cầu công việc
Chuẩn RBG là chuẩn màu cơ bản đầu tiên và vẫn được sử dụng rộng rãi
trong dữ liêu ảnh và video Chuẩn được xây dựng dựa trên ba màu chính cơ bản là:
R (đỏ - red), B(blue – xanh da trời ), G(green – xanh lá cây ), các màu khácđược tạo nên từ ba màu cơ bản Hệ thống màu RGB được xây dựng gồm các thànhphần màu chính mà giác quan con người cảm nhận được Trong ảnh số, mỗi điểmảnh pixel trong không gian RGB thường được tạo nên từ 24 bit Mỗi R, G hoăc Bđược biểu diễn 8 bit
Ảnh RGB còn gọi là ảnh “truecolor” do tính trung thực của nó Ảnh nàyđược biểu diễn bởi một ma trận 3 chiều có kích thước m x n x 3, với m x n là kíchthước ảnh theo pixels Ma trận này định nghĩa các thành phần màu red, green, bluecho mỗi điểm ảnh, các phần tử của nó có thể thuộc kiểu uint8, uint16, hoặc double
Trang 15Ví dụ, điểm ảnh ở vị trí (10,5) sẽ có ba thành màu được xác định bởi các giátrị (10,5,1), (10,5,2) và (10,5,3) Các file ảnh hiện nay thường sử dụng 8 bit chothành phần màu, nghĩa là mất 24bit cho mỗi điểm ảnh (khoảng 16 triệu màu).
Hình 2.1 : Không gian màu RGB
2.3 Cơ bản về xử lý ảnh [2]
2.3.1 Điểm ảnh.
Ảnh tự nhiên liên tục về không gian và độ sáng (ảnh RGB) Để xử lý bằngmáy tính (số), ảnh cần được số hóa Số hóa ảnh là sự biến đổi gần đúng một ảnh liêntục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mứcxám)
Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người khôngphân biệt được ranh giới giữa chúng Một một điểm như vậy gọi là điểm ảnh (PEL:Picture Element) hay gọi tắt là Pixel Trong khuôn khổ 2 chiều, mỗi pixel ứng với 1cặp tọa độ (x,y)
2.3.2 Độ phân giải ảnh.
Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên mộtảnh số được hiển thị.Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được
Trang 16chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảngcách thích hợp tạo nên một mật độ phân bố, mật độ đó chính là phân giải và đượcphân bố theo trục x và y trong không gian 2 chiều.
2.3.3 Mức xám của ảnh.
Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x,y) của điểm ảnh và
độ xám của nó Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thườngdùng trong xử lý ảnh:
- Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị sốtại điểm đó Các thang giá trị mức xám thông thường: 16, 32, 64, 128,256
- Ảnh đen trắng: là ảnh có hai màu đen, trắng với mức xám ở các điểm ảnh
có thể khác nhau
- Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạonên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu
- Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô
tả 2 mức khác nhau Nói cách khác mỗi điểm ảnh chỉ có thể là 0 hoặc 1
2.3.4 Các hàm hiển thị ảnh trong Matlab [6]
Để hiển thị ảnh, Matlab cung cấp 2 hàm cơ bản là image và imagesc Ngoài
ra, trong Image Processing Toolbox cũng có hai hàm hiển thị khác là imview vàimshow
- Hàm image(x,y,c) hiển thị hình ảnh biểu diễn bởi ma trận c kích thước mxnlên hệ trục tọa độ x,y là các véctơ xác định vị trí của các điểm c(1,1) và c(m,n)
- Hàm imagesc có chức năng tương tự hàm image, ngoại trừ việc dữ liệu ảnh
sẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành
- Hàm imview cho phép hiển thị ảnh trên của sổ riêng nền Java, gọi là ImageViewer
- Hàm imshow cho phép hiển thị ảnh trên một Figure và tự động thiết lập giátrị các đối tượng image, axes, figure để hiển thị hình ảnh
Trang 17Các hàm chuyển đổi loại ảnh và kiểu dữ liệu ảnh
dither Tạo ảnh nhị phân hay ảnh RGB
gray2ind Chuyển ảnh trắng đen thành ảnh indexed
grayslice Chuyển ảnh trắng đen thành ảnh indexed bằng lấy ngưỡng
im2bw Chuyển ảnh thành ảnh kiểu dữ liệu nhị phân
im2double Chuyển ảnh thành ảnh kiểu dữ liệu double
im2uint16 Chuyển ảnh thành ảnh kiểu dữ liệu uint16
im2uint8 Chuyển ảnh thành ảnh kiểu dữ liệu uint8
imapprox Xấp xỉ ảnh indexed bằng cách giảm số màu
ind2gray Chuyển ảnh indexed thành ảnh gray scale
ind2rgb Chuyển ảnh indexed thành ảnh RBG
mat2gray Tạo ảnh gray scale từ ma trận
rgb2ind Chuyển ảnh RBG thành ảnh indexed
rgb2gray Chuyển ảnh RBG thành ảnh gray scale
Các hàm truy xuất dữ liệu ảnh
imfinfo Truy xuất thông tin ảnh
imread Đọc ảnh từ file và xuất ra ma trận ảnh
imwrite Lưu ma trận ảnh thành file ảnh
Các hàm biến đổi hình học
cp2tform Định nghĩa phép biến đổi hình học từng cặp tương ứng
imcrop Trích xuất một phần ảnh
imresize Thay đổi kích thước ảnh
imrotate Thực hiện phép quay ảnh
imtranform Thực hiện phép biến đổi hình học tổng quát
maketform Định nghĩa phép biến đổi hình học tổng quát
Bảng 2.1 Các hàm xử lý hình ảnh khác trong Matlab
2.3.5 Các hàm khác được sử dụng trong đề tài [6]
str=strcat(s1,s2,s3…): ghép các chuỗi lại với nhau, trả về chuỗi nối tiếps1s2s3…
str=int2str(x): Chuyển đổi số kiểu integer thành chuỗi ký tự
[m n]=size(a): Trả về giá trị là ma trận có dạng [m,n] là kích thước của matrận a
T=reshape(X,M,N): Trả về ma trận có kích thước MxN với các phần tử làcác phần tử nằm trong ma trận X
Trang 18 mean(X): Ma trận X có kích thước MxN, hàm trả về ma trận có kích thước1xN mỗi phần tử là trung bình từng cột trong ma trận X
mean(X,dim): với dim là chiều lấy trung bình, nếu dim bằng 1 lấy trung bìnhtheo cột, nếu dim bằng 2 lấy trung bình theo hàng Không có tham số dim thìmặc định dim bằng 1
E=eig(X): Trả về một vector chứa các giá trị riêng của ma trận vuông X
[V, D] = eig(X): tạo ra một ma trận đường chéo D của các giá trị riêng vàmột ma trận V có các cột tương ứng là các vector riêng, do đó: X * V = V *D
diag(V,K): Trong đó V là một vector với các thành phần N là một ma trậnvuông kiểu N+ABS(K) với các phần tử của V trên đường chéo thứ K K = 0
là đường chéo chính, K> 0 là ở phía trên đường chéo chính và K <0 là ở phíadưới đường chéo chính
Diag(V): Giống như DIAG (V, 0) và đặt vector V trên đường chéo chính
Sort(X): Phân loại tăng dần hay giảm
Đối với các vector, Sort(X) sắp xếp các phần tử của X thứ tự tăng dần Đối với ma trận, Sort(X) các loại mỗi cột của X thứ tự tăng dần Khi X là một mảng di động của chuỗi, Sort(X) sắp xếp các ký tự theo thứ tựbảng mã ASCII
Min(X): Trả về vị trí của phần tử nhỏ nhất của ma trận X
Kitu=setstr(i): chuyển số i sang chữ số tương ứng với mã ascii của nó và trả
về giá trị cho kitu
2.4 Cơ sở lý thuyết cho phân đoạn ảnh.
Phân đoạn ảnh: giai đoạn này có nhiệm vụ nhị phân hóa ảnh từ ảnh đầu vàoRGB, cũng nhân loại bỏ nhiễu nhằm nâng cao chất lượng ảnh đầu vào Sau đó thựchiện việc tách kí tự để đưa vào bộ nhận dạng kí tự
2.4.1 Nhị phân hóa.
Ảnh nhị phân là ảnh số mà trong đó giá trị mỗi điểm ảnh có thểnhận một trong hai giá trị 0 hoặc 1
Trang 19Hình 2.2 ví dụ chuyển ảnh RGB sang ảnh đa mức xám và sau đó là ảnh nhị phân.
Quá trình được thực hiện như sau:
- Ảnh RGB được chuyển thành ảnh đa mức xám bằng lệnh: rgb2gray
- Ảnh đa mức xám chuyển thành ảnh nhị phân được thực hiện nhờ vào
hàm phân ngưỡng [2]:
Dest(x, y) =
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ị điểm ảnh tương ứng ở vị trí (x,y) của ảnh đích Threshold 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, không thể lấy cố định
Tùy vào điều kiện và mục đích chúng ta có thể sử dụng một phương pháp
xác định ngưỡng thích hợp.Trong đồ án này tôi sử dụng phương pháp chọn ngưỡng động bằng hàm graythresh(img)
2.4.2 Xử lý triệt nhiễu và nâng cao chất lượng ảnh [6]
Do ảnh hưởng của điều kiện bên ngoài, nhất là điều kiện ánh sáng, bước
phân đoạn ảnh không được thực hiện tốt, dẫn tới vẫn tồn tại các vùng nhiễu ngoài
phần thông tin chính tạo nên nhiễu Làm sai lệch trong quá trình nhận dạng
Quá trình xử lý nhiễu có nhiệm vụ lọc đi các thành phần không mong muốn
để lấy được đúng thành phần cần nhận dạng
Trang 20Trong nhận dạng nói chung và nhận dạng chữ viết nói riêng, nhiễu thường
gặp và có nhiều ảnh hưởng đến kết quả nhận dạng là nhiễu đốm và nhiễu vạch Hiệnnay, chất lượng máy quét rất tốt vì thể nhiễu vạch đã giảm nhiều, tuy nhiên nhiễu
đốm thì vẫn thường thấy
Hìnhh 2.3 Ví dụ về nhiễu đốm
Trong đồ án này, tôi chỉ giới hạn ở việc xử lý các nhiễu đốm, việc loại bỏ cácnhiễu đốm được thực hiền bằng cách áp dụng bộ lọc trung vị (median filter hay hàmmedfilt2)
Hình 2.4 Ảnh sau khi áp dụng lọc trung vị.
2.4.3 Chuẩn hóa kích thước ảnh.
/ Chuẩn hóa kích thước ảnh là bước đưa tất cả các ảnh của các kí tự về cùngmột kích thước MxN Ví dụ 15x10 như trong đồ án sử dụng để chuẩn hóa kíchthước tất các kí tự in hoa [3] Bước này được thực hiện khi tất cả các kí tự được cắt
Trang 21ra từ văn bản cần nhận dạng cũng như ảnh kí tự mẫu đều đã được cắt bỏ phần trắngxung quanh không chứa thông tin.
////
Hình 2.5 Kí tự A sau khi được chuẩn hóa với kích thước 15x10.
Trong matlab ta có hàm imresize để chỉ định hay chuẩn hóa ảnh ra thànhkích thước MxN mong muốn Đi kèm với hàm này thì matlab cũng hỗ trợ một sốphương pháp nội suy pixel Mặc định, hàm imresize sử dụng phương pháp nội suycác pixel gần nhất (nearest-neighbor interpolation) để tính giá trị các pixel của ảnh
ra Tuy nhiên, ta có thể chỉ định các phương pháp nội suy khác Bảng sau đây liệt kêcác phương pháp nội suy được trợ giúp theo thứ tự của độ phức tạp [6].
Giá trị tham số đi
kèm hàm imresize
‘nearest’ Nội suy các pixel gần nhất
(mặc định)
pixel ra được gán giá trị của cácpixel gần nó nhất
‘bilinear’ Nội suy song tuyến tính Giá trị của pixel ra là giá trị trung
bình theo trọng số của 2x2 pixel lâncận
‘biculic’ Nội suy song khối Giá trị của pixel ra là trung bình có
trọng số của 4x4 pixel lân cận
Bảng 2.2: Các phương pháp nội suy
Trong đồ án này tôi sử dụng phương pháp nội suy song tuyến tính Do khả
năng nội suy tương đối chính xác cũng như thời gian nội suy nhanh hơn nội suysong khối
15
Trang 222.5 Phương pháp nhận dạng kí tự.
Có nhiều phương pháp nhận dạng kí tự khác nhau được áp dụng rộng rãitrong các hệ thống nhận dạng kí tự Các phương pháp này có thể được tích hợptrong các hướng tiếp cận sau: đối sánh mẫu, thống kê, cấu trúc, mạng nơ ron vàSVM
Tuy nhiên do thời gian hạn chế nên trong đồ án này tôi áp dụng phương phápđối sánh mẫu
2.5.1 Đối sánh mẫu.
Kỹ thuật nhận dạng này là kĩ thuật tương đối đơn giản dựa trên cơ sở đốisánh các nguyên mẫu (prototype) với nhau đẻ nhận dạng kí tự hoặc từ Nói chung,toán tử đối sánh xác định mức độ giống nhau giữa hai vecto ( nhóm các điểm, hìnhdạng, độ cong…) trong một không gian đặc trưng Các kĩ thuật đối sánh có thểnghiên cứu theo ba hướng sau:
Đối sánh trực tiếp: Một kí tự đầu vào là ảnh đa cấp xám hoặc ảnh nhị phânđược so sánh trực tiếp với một tập mẫu chuẩn đã được lưu trữ Việc so sánhdựa theo một độ đo về sự tương đồng nào đó (chẳng hạn như đọ đo Euclide)
để nhận dạng Mặc dù phương pháp đối sánh trực tiếp đơn giản và có một cơ
sở toán học vững chắc nhưng kết quả nhận dạng của nó cũng rất nhạy cảmvới nhiễu
Các mẫu biến dạng và đối sánh mềm: Một phương pháp đối sánh khác là sửdụng các mẫu biến dạng, trong đó một phép biến dạng ảnh được dùng để đốisánh một ảnh chưa biết với một cơ sở dữ liệu ảnh đã biết Ý tưởng cơ bảncủa đối sánh mềm là đối sánh một cách tối ưu mẫu chưa biết với tất cả cácmẫu có thể mà các mẫu này có thể kéo giãn ra hoặc co lại Chỉ một khônggian đặc trưng được thành lập, các véc tơ chưa biết được đối sánh bằng cách
sử dụng quy hoạch động và một hàm biến dạng
Đối sánh giảm nhẹ: Đây là một kĩ thuật đối sánh ảnh ở mức độ tượng trưng,
kĩ thuật này sử dụng hình dáng hoặc đặc trưng cơ bản của ảnh kí tự Thứnhất, các vùng đối sánh đã được nhận biết Sau đó, trên cơ sở một số vùng
Trang 23đối sánh được đánh giá tốt, các phần tử của ảnh được so sánh với các vùngđối sánh này Công việc này đòi hỏi một kĩ thuật tìm kiếm trong một khônggian đa chiều để tìm cực đại toàn cục của một số hàm.
2.5.2 Đánh giá, so sánh phương pháp đôi sánh mẫu với các phương pháp khác.
Phương pháp đối sánh mẫu là kĩ thuật nhận dạng đơn giản dựa trên cơ sở đốisánh các nguyên mẫu với nhau để nhận dạng
Các kĩ thuật đối sánh mẫu chỉ áp dụng tốt đối với nhận dạng chữ in, còn đốivới chữ viết tay thì các kĩ thuật này tỏ ra kém hiệu quả Kết quả của nó cũng tỏ ranhạy cảm với nhiễu
Vì tính đơn giản, thời gian đáp ứng nhanh, hiệu quả cho nhận dạng kí tự inhoa Tiếng Việt Nên đồ án nhận dạng kí tự in hoa Tiếng Việt này, tôi áp dụng kĩthuật đôi sánh mẫu trực tiếp, dựa vào kĩ thuật PCA
2.6 Kĩ thuật PCA.
2.6.1 Giới thiệu.
Thuật toán PCA (Principal Component Analysis) được sử dụng rộng rãi và
áp dụng khá thành công trong lĩnh vực nhận dạng Ưu điểm của nó ở chỗ giúp
giảm số chiều của dữ liệu Thay vì giữ lại các trục tọa độ của không gian cũ, PCA
xây dựng một không gian mới ít chiều hơn, nhưng lại có khả năng biểu diễn dữ liệu tốt tương đương không gian cũ, nghĩa là đảm bảo độ biến thiên của dữ liệu trên mỗi chiều mới
Mục tiêu của PCA là tìm một không gian mới (với số chiều nhỏ hơn không
gian cũ) Các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi
trục, độ biến thiên của dữ liệu trên đó là lớn nhất có thể
Trang 24Một ví dụ thuyết phục hơn được minh họa trong hình sau:
/
Hình 2.7 Minh họa PCA : tìm cá trụ tọa độ mới sao cho dữ liệu có độ biến thiên
Trang 25Giả sử tập dữ liệu ban đầu (tập điểm màu xanh) được quan sát trong khônggian 3 chiều (trục màu đen) như hình bên trái Rõ ràng 3 trục này không biểu diễnđược tốt nhất mức độ biến thiên của dữ liệu Do đó, PCA sẽ tìm hệ trục tọa độ mới(là hệ trục màu đỏ trong hình bên trái) Sau khi tìm được không gian mới, dữ liệu
sẽ được chuyển sang không gian này để được biểu diễn như trong hình bên phải Rõràng hình bên phải chỉ cần 2 trục tọa độ nhưng biểu diễn tốt hơn độ biến thiên của
dữ liệu so với hệ trục 3 chiều ban đầu Một điểm rất tốt nữa của PCA là các trục tọa
độ trong không gian mới luôn đảm bảo trực giao đôi một với nhau, mặc dù trongkhông gian ban đầu, các trục có thể không trực giao
2.6.2 Một số khái niệm toán học sử dụng trong PCA.
Ví dụ : Với 2 tập dữ liệu [0 8 12 20] và [8 9 11 12] có trung bình mẫu bằng
nhau nhưng lại khá khác nhau Sự khác biệt ở đây chính là khoảng cách của dữ liệu
Do đó độ lệch chuẩn là đại lượng để đo khoảng cách này Ta có thể hiểu độ lệchchuẩn là khoảng cách trung bình từ trung bình mẫu đến các điểm dữ liệu
Ta có công thức :
2.6.2.2 Phương sai.
Trang 26Phương sai là một đại lượng khác dùng để đo khoảng cách của dữ liệu Ta cócông thức :
2.6.2.4 Eigenvalue (giá trị riêng)[5]
Cho / là ma trận vuông cấp / trên trường số/ Số /được gọi là giá trị riêng (gọitắt là trị riêng – kí hiệu GTR) của ma trận A, nếu tồn tại một vectơ /sao cho: /
Khi đó vectơ / được gọi là vectơ riêng (VTR) của ma trận / ứng với giá trị
riêng /
2.6.2.5 Eigenvector ( Véc tơ riêng).[5]
Vectơ riêng (eigenvector) của một phép biến đổi tuyến tính là một vectơ
(khác 0) không thay đổi phương hướng bởi phép biến đổi đó
Ta có u gọi là véc tơ riêng của ma trận A Để tìm véc tơ riêng của ma trận
vuông A, thì ra phải tìm giá trị riêng (eigenvalue) của ma trận A bằng phương trình
sau: det(A- =0 (2.4)
Sau đó ứng với mỗi giá trị riêng vừa tìm được ta tính véc tơ riêng bằng
phương trình sau:
(A - I)ui =0 (2.5)
Trang 272.6.3 Thuật toán PCA.
Thuật toán PCA được thực hiện theo các bước sau :