Vấn đề đặt ra là mỗi nguời đều có một kiểu chữ viết tay khác nhau: về cỡ chữ,kiểu chữ, độ thanh, đầm của mỗi chữ nên viêc nhận diện chữ viết sao cho máy tính có thểhiểu độ chính xác cao
Trang 1- -BÀI TẬP LỚN
TRÍ TUỆ NHÂN TẠO
Đề tài: Nhận diện chữ viết tay bằng mạng noron nhân tạo
Giảng viên hướng dẫn : TS Phạm Văn Hải
Nhóm sinh viên thực hiện : Nhóm 3
Nguyễn Xuân Tùng 20102495 Nguyễn Thị Kim Chi 20101157 Mai Thị Gấm 20090843 Phạm Thị Sen 20102077 Tống Thị Đông 20104037 Trần Văn Nhuận 20072164
Trang 2Mục Lục
LỜI NÓI ĐẦU 4
CHƯƠNG I: TỔNG QUAN VỀ MẠNG NORON 5
1 Noron sinh học 5
2 Noron nhân tạo 6
3 Mạng noron nhân tạo 8
CHƯƠNG II: GIỚI THIỆU BÀI TOÁN NHẬN DẠNG CHỮ CÁI BẰNG MẠNG NORON NHÂN TẠO 9
1 Các phương pháp nhận dạng chữ cái 9
2 Giải quyết bài toán nhận diện chữ cái 11
CHƯƠNG III: XÂY DỰNG VÀ HUẤN LUYỆN MẠNG NORON NHÂN TẠO ĐỂ GIẢI QUYẾT BÀI TOÁN 15
1 Xây dựng mô hình huấn luyện 15
2 Quá trình nhận dạng 16
3 Thuật toán lan truyền ngược (Back-propagation) 17
CHƯƠNG IV: CÀI ĐẶT BÀI TOÁN 19
TỔNG KẾT 20
TÀI LIỆU THAM KHẢO 21
Trang 3LỜI CẢM ƠN
“Trí tuệ nhân tạo” là khoa học nghiên cứu các hành vi thông minh nhằm giải
quyết các vấn đề được đặt ra đối với các chương trình máy tính Đây là môn học mới lạ với chúng tôi nhưng rất quan trọng với những sinh viên công nghệ thông tin, giúp cung cấp những kiến thức cần thiết về trí thông minh của các hệ thống máy tính Và để có
được những kiến thức đó, chúng tôi xin gửi lời cảm ơn chân thành đến thầy Phạm Văn
Hải – Giảng viên Viện Công nghệ thông tin và truyền thông, Đại học Bách Khoa Hà Nội
đã tận tình chỉ dạy, đưa chúng tôi đến gần hơn với một lĩnh vực hoàn toàn mới, giúp chúng tôi có thêm những kiến thức nền tảng để có thể phát triển tiếp trong tương lai và hoàn thành bài tập này
Trang 4LỜI NÓI ĐẦU
Bài toán nhận dạng tuy ra đời từ thập nhiên 60 của thế kỷ trước nhưng vẫn nhậnđược sự quan tâm, nghiên cứu của nhiều nhà khoa học trên thế giới Đặc biệt là trongnhững năm gần đây, cùng với quá trình đẩy mạnh tin học hóa trong mọi lĩnh vự đời sống
xã hội, nhận dạng không chỉ còn là lĩnh vực nghiên cứu lý thuyết nữa mà đã được ứngdụng rộng rãi trong thực tế cuộc sống Các bài toán nhận dạng được nghiên cứu nhiềunhất hiện nay bao gồm nhận dạng các mẫu hình học (vân tay, mặt người, hình khối,…),nhận dạng tiếng nói và nhận dạng chữ viết Chúng được áp dụng vòa nhiều lĩnh vực như
y học, an ninh, dự báo thời tiết, dự báo cháy rừng,….Trong các bài toán nhận dạng này,nhận dạng chữ viết là bài toán đang được ứng dụng phổ biến nhất hiện nay
Nhận dạng chữ viết bao gồm hai kiểu chính là nhận dạng chữ in và nhận dạng chữviết tay Vấn đề đặt ra là mỗi nguời đều có một kiểu chữ viết tay khác nhau: về cỡ chữ,kiểu chữ, độ thanh, đầm của mỗi chữ nên viêc nhận diện chữ viết sao cho máy tính có thểhiểu độ chính xác cao là khá phức tạp và yêu cầu tốn thời gian.Nó cũng là thách thức đốivới các nhà nghiên cứu, bài toán này vẫn chưa đuợc giải quyết trọn vẹn vì nó còn phụthuộc quá nhiều vào nguời viết và sự biến đổi quá đa dạng trong cách viết và trạng tháitinh thần của người viết
Trong khuôn khổ bài tập lớn của nhóm, chúng tôi xin đuợc trình bày phuơng pháp nhận diện chữ cái viết tay sử dụng mạng nơron nhân tạo
Trang 5CHƯƠNG I: TỔNG QUAN VỀ MẠNG NORON
Hình 1: Cấu trúc của một nơron sinh học điển hình
Mỗi nơron sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây ( dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp và
xử lý cho tín hiệu đi ra Sợi trục truyền tín hiệu ra từ thân tế bào này sang nơron khác.Điểm liên kết giữa sợi trục của nơron này với nhánh hình cây của nơron khác gọi là
synapse Liên kết giữa các nơron và độ nhạy của mỗi synapse được xác định bởi quá trình
hóa học phức tạp Một số cấu trúc của nơron được xác định trước lúc sinh ra Một số cấu
Trang 6trúc được phát triển thông qua quá trình học Trong cuộc đời cá thể, một số liên kết mớiđược hình thành, một số khác bị hủy bỏ
Như vậy nơron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào, xử
lý các tín hiệu này và cho ra một tín hiệu output Tín hiệu output này sau đó được truyền
đi làm tín hiệu đầu vào cho các nơron khác
Dựa trên những hiểu biết về nơron sinh học, con người xây dựng nơron nhân tạovới hy vọng tạo nên một mô hình có sức mạnh như bộ não
2 Noron nhân tạo
Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron, được mô tả như hình dưới đây:
Các thành phần cở bản của một noron nhân tạo là:
Tập đầu vào: là tín hiệu vào của các noron (input signals) của noron, các tín
hiệu này thường được đưa vào dưới dạng một vecto n chiều
Tập các liên kết : Mỗi liên kết được biểu diễn bởi các trọng số (gọi là trong
số liên kết – Synaptic weight), trọn số liên kết thứ j liên kết với noron thứ i
được kí hiệu là wij Thông thường được khởi tạo ngẫu nhiên và được cập nhập lại trong quá trình huấn luyện
Bộ tổng (Summing function): thường được dùng để tính tổng tích trọng số
với đầu vào của nó
Ngưỡng (bias): thường được đưa vào trong thành phần huấn luyện.
Hàm truyền (Transfer function) : hàm này được đưa ra để giới hạn đầu ra
của mỗi noron Thông thường phạm vi đầu ra của mỗi noron được giới hạn trong đoạn [0 , 1] hoặc [-1, 1] Có các loại hàm truyền như trong bảng sau:
Trang 7Trong đó, wij là trọn số liên kết của noron thứ i tới đầu vào j, còn xj là giá trị
đầu vào thứ j, bias là ngưỡng của noron, f() là hàm truyền, a là đầu ra của
noron
3 Mạng noron nhân tạo
Mạng noron nhân tạo, Artificial Neural Network(ANN) là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ noron sinh học Nó được
Trang 8tạo lên từ một số lượng các phần tử noron, kết nối với nhau thông qua trọng số
liên kết , làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng noron nhân tạo được cấu hình cho một ứng dụng cụ thể(nhận dạng mẫu,phân loại dữ liệu, …) thông qua một quá trình học từ tập các mẫu huấn luyện, về
bản chất của quá trình học là quá trình hiệu chỉnh ngưỡng và các trọng số liên kết.
Trang 9CHƯƠNG II: GIỚI THIỆU BÀI TOÁN NHẬN DẠNG CHỮ CÁI BẰNG MẠNG NORON NHÂN TẠO
1 Các phương pháp nhận dạng chữ cái.
Để nhận dạng chữ cái, nhiều giải pháp khác nhau đã được đưa ra, chúng tôi xin được đưa ra một vài phương pháp thông dụng hiện nay:
1.1 Đối sánh mẫu : Đây là kỹ thuật nhận dạng chữ cái đơn giản nhất dựa trên cơ sở
đối sánh các nguyên mẫu với nhau để nhận dạng kí tự hoặc từ Gồm:
- Đối sánh trực tiếp: với kí tự đầu vào là ảnh đa cấp xám hoặc ảnh nhị phân đuợc so sánh trực tiếp với một tập mẫu chuẩn đã được lưu trữ
- Các mẫu biến dạng và đối sánh mềm: Sử dụng các mẫu biến dạng trong đó một phép biến dạng ảnh đuợc dùng để đối sánh là ảnh chưa biết với một cơ sở
dữ liệu ảnh đã biết
- Đối sánh giản nhẹ : kỹ thuật này sử dụng hình dáng đặc trưng cơ bản của ảnh
kí tự, các vùng đối sánh đã đuợc nhận biết Sau đó trên cơ sở một số vùng đối sánh đuợ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ác kỹ thuật của đối sánh mẫu chỉ áp dụng tốt đối với nhận dạng chữ in, còn đối với chữ viết tay thì các kỹ thuật này tỏ ra kém hiệu quả
1.2 Phuơng pháp tiếp cận cấu trúc.
- Cách tiếp cận phuơng pháp này dựa vào việc mô tả đối tượng nhờ một số khái niệm biểu diễn đối tượng cơ sở trong ngôn ngữ tự nhiên Để mô tả đối tuợng nguời ta dung một số dạng nguyên thủy như đoạn thẳng, cung… Mỗi đối tuợng được mô tả như một sự kết hợp các dạng nguyên thủy
- Hiện nay, nhận dạng theo cấu trúc phổ biến là trích trọn các đặc trưng của mẫuhọc, phân hoạch bảng kí tự dựa trên các đặc trưng này, sau đó ảnh cần nhận dạng sẽ đuợc trích chọn đặc trưng, sau đó so sánh trên bảng phân hoạch để tìm
ra kí tự có các đặc trưng phù hợp
- Đối với nhận dạng chữ viết tay rời rạc dựa theo cấu trúc xương và đuờng biên,công việc này đòi hỏi phải xây dựng các đặc trưng của chữ, đặc biệt là đăc trưng về các điểm uốn, điểm gấp khúc và các đặc trưng của các nét.Sau khi tiền xử lý, tách nét đuợc tiến hành thông qua các điểm Sau đó trích chọn đặc trưng cấu trúc xương của chữ, mỗi nét đặc trưng bởi cặp chỉ số đầu và cuối tuơng ứng với các thực tự của điểm chạc đầu và điểm cuối Cuối cùng là xây
Trang 10dựng cây tìm kiếm, dựa vào đặc trưng về cấu trúc xuơng và cấu trúc biên để phân tập mẫu học thành các lớp Qúa trình phân lớp được tiến hành theo 2 bước : Xác định lớp tương ứng với mẫu và tìm kiếm trong lớp đó mẫu nào gầngiống với mẫu vào nhất.
1.3 Mạng nơron.
- Một mạng nơ ron được định nghĩa như một cấu trúc tính toán bao gốm nhiệu
bộ xử lý “ nơron” được kết nối song song chằng chịt với nhau Do bản chất song song của các noron nên nó có thể thực hiện các tính toán tốc độ cao hơn
so với các kỹ thuật phân lớp khác Một mạng nơron chứa nhiều nút, đầu ra củamột nút đuợc sử dụng cho một nút khác ở trong mạng và hàm quyết định cuối cùng phụ thuộc vào sự tuơng tác phức tạp giữa các nút Mặc dù nguyên lý khác nhau nhưng hầu hết các kiến trúc mạng nơron đều tương đương với các phương pháp nhận diện dạng mẫu thống kê
- Các kiến trúc mạng nơron có thể được phân thành 2 nhóm chính là: Mạng truyền thẳng và mạng lan truyền nguợc.Trong các hệ thống nhận dạng chữ, các mạng nơron sử dụng phổ biến nhất là mạng perceptron đa lớp thuộc nhóm mạng truyền thẳng và mạng SOM của Kohonen thuộc nhóm mạng lan truyền ngược
- Mạng perceptron đa lớp đuợc đề xuất bởi Rosenblatt đuợc nhiều tác giả sử dụng trong các hệ nhận dạng chữ viết tay Hầu hết các nghiên cứu phát triển nhận dạng chữ viết tay hiện nay đều tập trung vào mạng SOM SOM kết hợp trích chọn đặc trưng và nhận dạng trên một tập lớp các ký tự huấn luyện Mạng này chứng tỏ rằng nó tuơng đuơng với thuật tóan phân cụm k- mean
- Với thật toán đơn giản nhưng hiệu quả, cùng với thành công của mô hình này trong các ứng dụng thực tiễn, mạng nơron hiện đang là một trong các huớng nghiên cứu của lĩnh vực học máy Mạng nơ ron tỏ ra phù hợp với các bài tóan đối sánh, phân loại mẫu, xấp xỉ hàm, tối ưu hóa, luợng tử hóa véc tơ và phân hoach không gian dữ liệu, trong khi các phương pháp truyền thống không đủ khả năng giải quyết các vấn đề nêu trên một cách hiệu quả Đăc biệt trong các
hệ thống nhận dạng sử dụng mạng nơron đã đạt đuợc tỉ lệ nhận dạng khá chính xác, có thể so sánh với các phương pháp nhận dạng cấu trúc, thống kê…
Trong bài tập lớn của mình chúng tôi áp dụng phương pháp mạng noron nhân tạp để giải quyết bài tóan nhận dạng chữ của mình
Trang 112 Giải quyết bài toán nhận diện chữ cái.
Bài toán nhận dạng chữ cái bằng mạng noron nhân tạo, áp dụng giải thuật lan truyền ngược
Để phân loại một bức ảnh gồm các bước sau:
Mẫu : là chữ cái dung để nhận diện
Tiền xử lý: chuyển đổi tài liệu trong kho dữ liệu thành một hình thức phù hợp để phân loại Cụ thể:
Nhị phân hóa ảnh : ( phần nền và phần chữ) lựa chọn một nguỡng thíchhợp theo cường độ sáng, lớn hơn ngưỡng thì lấy 1 giá trị “ trắng”, nhỏ hơn là đen)
Lọc nhiễu : là khử các tập điểm sang thừa trên ảnh
Chuẩn hóa kích thuớc ảnh
3 Các bước cơ bản để nhận dạng chữ cái.
- Nhị phân hóa ảnh là một kỹ thuật chuyển ảnh đa cấp xám sang ảnh nhị phân Trong bất kỳ bài toán phân tích hoặc nâng cao chất lượng ảnh nào, nó cũng
Mẫu Tiền xử lý
Trích chọn đặc trưng
Phân lớp
Áp dụng giải thuật lan truyền ngược
Đưa ra kết quả.
Trang 12cần thiết để xác định các đối tượng quan trọng Nhị phân hóa ảnh phân chia ảnh thành 2 phần : phần nền và phần chữ Hầu hết các phương pháp nhị phân hóa ảnh hiện nay đều lựa chọn một ngưỡng thích hợp theo cường độ sáng của ảnh và sau đó chuyển tất cả các giá trị độ sang lớn hơn ngưỡng đó thành một giá trị độ sáng ( ví dụ “ trắng” ) và tất cả các giá trị bé hơn ngưỡng thành một giá trị độ sáng khác (“đen”).
- Lọc nhiễu
Nhiễu là một tập các điểm sang thừa trên ảnh Khử nhiễu là một vấn đề thuờng gặp trong nhận dạng, nhiễu có nhiều loại (nhiễu đốm, nhiễu vệt, nhiễu đứt nét…)
Để khử các nhiễu đốm ( các nhiễu với kích thước nhỏ), có thể sử dụng các phương pháp lọc ( lọc trung bình, lọc trung vị) Tuy nhiên, với các nhiễu vệt (hoặc các nhiễu có kích thước lớn) thì các phương pháp lọc tỏ ra kém hiệu quả, trong trường hợp này sử dụng phương pháp khử các vùng liên thông tỏ ra
có hiệu quả hơn
- Chuẩn hóa kích thước ảnh
Việc 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, gian 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ẩnhóa kích thước ảnh luôn luôn được đảm bảo tính cân bằng khi co giãn ảnh sẽ không bị biến dạng hoặc bị lệch
- Làm trơn biên chữ
- Đôi khi do chất lượng quét ảnh quá xấu, các đuờng biên của chữ không còn giữ được dáng điệu trơn tru ban đầu mà hình thành các đường răng cưa giả tạo Trong các trường hợp này, phải dùng các thuật toán làm trơn biên để khắc
Trang 13- Làm đầy chữ.
Chức năng này được áp dụng với các ký tự bị đứt nét một cách ngẫu nhiên, ảnh đứt nét gây khó khăn cho việc tách chữ, dễ bị nhầm hai phần liên thông của ký tự thành hai ký tự riêng biệt , tạo nên sai lầm trong quá trình nhận dạng
- Làm mảnh chữ
Đây là một bước quan trọng nhằm phát hiện khung xương của ký tự bằng cách loại bộ dần các điểm bên ngoài của các nét Tuy nhiên, quá trình làm mảnh chữ rất nhạy cảm với việc khử nhiễu Hiện nay có nhiều phương pháp làm mảnh chữ
Hình ban đầu Sau khi tiền xử lý
Trang 14- Trích chọn đặc trưng.
Trong phần này, ảnh sau khi qua tiền xử lý sẽ đuợc đưa về kích thước NxN vùng Tổng số điểm đen của mỗi vùng sẽ được chọn để tạo thành các vectơ đặc trưng
Trong thực nghiệm, với ảnh kích thước 16x16, chọn N= 8 , như vậy có 8x8 =
64 đặc trưng
Trang 15CHƯƠNG III: XÂY DỰNG VÀ HUẤN LUYỆN MẠNG NORON NHÂN TẠO ĐỂ GIẢI QUYẾT BÀI TOÁN.
1 Xây dựng mô hình huấn luyện
- Mô hình của mạng nơ ron nhân tạo
- Mỗi mẫu dữ liệu được chuẩn bị dưới dạng một cặp ai vector gồm vector các đặc trưng đầu vào(input) và vector mục tiêu(target):
Parttern={input, target}, trong đó:
Input = (numOfStrokes, d1, cos(cos(α1¿), d 2 , … ,cos(α k¿)¿ ¿) (K là số điểm được chọn ra từ dãy điểm của chữ, và cố định trong một bài toán nhận dạng cụthể
Target = {a1, ,an}, ai = 1 nếu mẫu thuộc lớp thứ i, và ạ=0 với mọi i≠j (N là
số lớp chữ cái cần nhận dạng)
Ta có mô hình:
Trong đó:
Trang 16 Data: là tập dữ liệu ban đầu
Training Set: là tập dữ liệu huấn luyện
Test Set: là tập dữ liệu kiểm tra
ANN: là mạng nơron cần huấn luyện
Model: là mô hình tạo ra sau khi huấn luyện mạng với tập dữ liệu huấn luyện
Evaluator: là phần đánh giá chất lượng của mô hình, thường lấy tỉ lệ phân loại đúng trên tập kiểm tra làm tiêu chí đánh giá
Thuật toán cập nhập trong bài toán này, chúng tôi sử dụng thuật toán lan truyền ngược (Back-propagation)
Các mẫu được chia thành hai tập là tập huấn luyện(training set) và tập kiểm tra(test set) Khởi đầu với số lượng nút ẩn nhỏ, quá trình huấn luyện được tiến hành như sau: huấn luyện mạng với tập dữ liệu huấn luyện, kiểm tra mô hình thu được trên tập dữ liệu kiểm tra Chừng nào sai số trên tập kiểm tra còn giảm xuống thì tập kiểm tra không giảm nữa(có thể tăng lên)thì dừng lại
2 Quá trình nhận dạng
Sau quá trình huấn luyện, mạng nơron có thể được sử dụng cho quá trình nhận dạng chữ cái viết tay trực tuyến Với mỗi mẫu chữ đầu vào(được biểu diễn dưới một vector đặc trưng), khi qua mạng noron sẽ cho ra một vector đầu ra có dạng {a1,a2,
…,an} với thành phần là các số thực và N là số lớp chữ cái cần nhận dạng Ta phát biểu và chứng minh giả thuyết sau:
Giả thuyết: nếu ai(1 <= i <= N) là phần tử lớn nhất trong dãy a1,a2,…,an thì sai số
trung bình bình của vector đầu ra này so với vector mục tiêu của lớp thứ i là nhỏ nhất
Từ đó ta có kết luận: mẫu đầu vào gần với lớp thứ i trong tập chữ cần nhận dạng nhất