báo cáo bài tập lớn xử lý ngôn ngữ tự nhiên đề tài nhận dạng chữ viết

40 1.2K 2
báo cáo bài tập lớn xử lý ngôn ngữ tự nhiên đề tài nhận dạng chữ viết

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN XỬ LÝ NGÔN NGỮ TỰ NHIÊN NHẬN DẠNG CHỮ VIẾT Giảng viên hướng dẫn: PGS. Lê Thanh Hương Sinh viên thực hiện: Phạm Phương Bắc 20080176 Nguyễn Duy Hưởng 20081337 Lê Quốc Trung 20082778 Nguyễn Tuấn Vinh 20083174 Phạm Tuấn Việt 20083152 Hà Nội - 04/2012 Mục Lục Mục Lục 1 1 Lời nói đầu 2 Chương I. Tổng quan về tài 3 I.1. Tổng quan về nhận dạng chữ viết 3 I.2. Các khái niệm liên quan 4 I.2.1 Mạng nơ ron 4 I.2.2. Mạng nơ ron nhân tạo 5 I.2.3. Mạng Perceptron 16 I.2.4. Phương pháp học máy back-propagation 21 I.2.5. Tập huấn luyện mạng 28 Chương II. Nội dung thực hiện 29 II.1 Các modun chương trình 29 II.1.1. Mô hình bài toán 29 II.1.2. Giao diện chương trình 34 II.2. Kết quả 36 II.3. Đánh giá 37 Kết luận 39 Tài liệu tham khảo 40 Chú thích 40 Lời nói đầu Từ trước đến nay đề tài nhận dạng chữ viết đã được quan tâm nghiên cứu rất nhiều vì nó có tính ứng dụng cao trong thực tiễn như giúp tăng tốc độ nhập thông tin từ các loại tài liệu chưa 2 được số hóa hoặc còn ở dạng ảnh sang dạng ngôn ngữ máy, hỗ trợ khả năng đọc văn bản cho robot, đặc biệt là với tình hình phát triển rất nhanh của các thiết bị di động như smart phone, tablet… một nhu cầu lớn được đặt ra là tốc độ tạo văn bản khi sử dụng. Do vậy vấn đề nhận dạng chữ viết ngày càng chứng tỏ tính hữu dụng của nó trong đời sống. Căn cứ vào tiềm năng của lĩnh vực nhận dạng chữ viết và niềm yêu thích lĩnh vực nhận dạng, nhóm em đã lựa chọn đề tài nhận dạng chữ viết. Chúng em xin cảm ơn PGS. Lê Thanh Hương – Giảng viên viện CNTT&TT trường Đại học Bách khoa Hà Nội đã giúp chúng em giải đáp các thắc mắc trong quá trình học cũng như làm bài tập lớn. Chương I. Tổng quan về tài I.1. Tổng quan về nhận dạng chữ viết Nhận dạng chữ viết có hai loại là nhận dạng chữ in và chữ viết tay. Mỗi kiểu nhận dạng có những đặc trưng riêng. Chữ in thường tuân theo những mẫu nhất định của các font chữ trong các chương trình tạo văn bản và thường rõ nét. Đối với chữ viết tay, mỗi người có một kiểu viết riêng thậm chí chữ viết của một người cũng không giống nhau qua các lần viết khác nhau. Chữ 3 viết tay trên văn bản như giấy thường hay bị mờ, mất nét, lệch dòng…Điều đó khiến cho việc nhận dạng trở lên khó khăn hơn. Trong khuôn khổ bài tập lớn, nhóm em làm về nhận dạng các ký tự viết tay, cụ thể hơn là các ký tự số viết tay. Ảnh của các ký tự này được tạo bởi chương trình vẽ của máy tính và được lưu vào các tệp ảnh .png. I.2. Các khái niệm liên quan I.2.1 Mạng nơ ron Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tử này có thể chia làm bốn thành phần cơ bản như sau: dendrites, soma, axon và synapses. - Dendrites: là phần nhận tín hiệu đầu vào - Soma: là hạt nhân - Axon: là phần dẫn ra tín hiệu xử lý - Synapses: là đường tín hiệu điện hóa giao tiếp giữa các nơron. Kiến trúc cơ sở này của bộ não con người có một vài đặc tính chung. Một cách tổng quát, thì một nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết hợp chúng lại với nhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối cùng ở đầu ra. Hình 1.1 dưới đây chỉ ra mối quan hệ giữa bốn phần từ của một nơron sinh học Hình 1.1: Một nơron sinh học Một nơron sinh học chỉ có một số chức năng cơ bản như vậy, ta nhận thấy khả năng xử lý thông tin của nó là rất yếu. Để có được khả năng xử lý thông tin hoàn hảo như bộ não con người, thì các nơron phải kết hợp và trao đổi thông tin với nhau. Ta hình dung sơ đồ liên kết, và trao đổi thông tin giữa hai nơron như hình 1.2. 4 Hình 1.2. Sự liên kết các nơron I.2.2. Mạng nơ ron nhân tạo Mô hình toán học của mạng nơron sinh học được đề xuất bởi McCulloch và Pitts, thường được gọi là nơron M-P, ngoài ra nó còn được gọi là phần tử xử lý và được ký hiệu là PE (Processing Element). Mô hình nơron có m đầu vào x 1 , x 2 ,…, x m , và một đầu ra y i như sau: Hình 1.3: Mô hình một nơron nhân tạo Giải thích các thành phần cơ bản: - Tập các đầu vào: Là các tín hiệu vào của nơron, các tín hiệu này thường được đưa vào dưới dạng một vector m chiều. 5 - Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng số (thường được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu vào thứ j cho nơron i thường được ký hiệu là w ij . Thông thường các trọng số này được khởi tạo ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng. - Bộ tổng (Hàm tổng): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó. - Ngưỡng: Ngưỡng này thường được đưa vào như một thành phần của hàm truyền - Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi nơron. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1,1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến. Việc lựa chọn hàm truyền tùy thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng. - Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa một đầu ra. Về mặt toán học, cấu trúc của một nơron i được mô tả bằng cặp biểu thức sau: trong đó: x 1 , x 2, … x m là các tín hiệu đầu vào, còn w i1 , w i2 , …, w im là các trọng số kết nối của nơron thứ i, net i là hàm tổng, f là hàm truyền, Ө i là một ngưỡng, y i là tín hiệu đầu ra của nơron. Như vậy, tương tự như nơron sinh học, nơron nhân tạo cũng nhận các tín hiệu đầu vào, xử lý (nhân tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả đến hàm truyền), và cho một tín hiệu đầu ra (là kết quả của hàm truyền). ● Hàm truyền có thể có các dạng sau: - Hàm bước y = (1.6) - Hàm giới hạn chặt (hay còn gọi là hàm bước) y = sgn(x) = (1.7) - Hàm bậc thang y = sgn(x) = (1.8) - Hàm ngưỡng đơn cực 6 y = với ⅄ > 0 (1.9) -Hàm ngưỡng hai cực y = – 1 với < 0⅄ (1.10) ●Đồ thị các dạng hàm truyền được biểu diễn như sau: I.2.2.1. Cấu tạo và phương thức làm việc của mạng nơron Dựa trên những phương pháp xây dựng mạng nơron đã trình bày ở mục trên, ta có thể hình dung mạng nơron như là một hệ truyền đạt và xử lý tín hiệu. Đặc tính truyền đạt của nơron phần lớn là đặc tính truyền đạt tĩnh. Khi liên kết các đầu vào/ra của nhiều nơron với nhau, ta thu được một mạng nơron, việc ghép nối các nơron trong mạng với nhau có thể là theo một nguyên tắc bất kỳ. Vì mạng nơron là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt các loại nơron khác nhau, các nơron có đầu vào nhận thông tin từ môi trường bên ngoài khác với các nơron có đầu vào được nối với các nơron khác trong mạng, chúng được phân biệt với nhau qua vector hàm trọng số ở đầu vào w. 7 Nguyên lý cấu tạo của mạng nơron bao gồm nhiều lớp, mỗi lớp bao gồm nhiều lớp, mỗi lớp bao gồm nhiều nơron có cùng chức năng trong mạng. Hình 1.5 là mô hình hoạt động của một mạng nơron 3 lớp với 8 phần tử nơron. Mạng có ba đầu vào x 1 , x 2 , x 3 và hai đầu vào y 1 , y 2 . Các tín hiệu đầu vào được đưa đến 3 nơron đầu vào, 3 nơron này làm thành lớp đầu vào của mạng. Các nơron trong lớp này được gọi là nơron đầu vào. Đầu ra của các nơron này được đưa đến đầu vào của 3 nơron tiếp theo, 3 nơron này không trực tiếp tiếp xúc với môi trường bên ngoài mà làm thành lớp ẩn, hay còn gọi là lớp trung gian. Các nơron trong lớp này có tên là nơron nội hay nơron ẩn. Đầu ra của các nơron này được đưa đến 2 nơron đưa tín hiệu ra môi trường bên ngoài. Các nơron trong lớp đầu ra này được gọi là nơron đầu ra. Mạng nơron được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau đi từ đầu vào đến đầu ra. Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào. Một mạng nơron có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng một hướng ( Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vì bất cứ một nơron nào trong mạng cũng được nối với một hoặc một vài nơron khác). Mạng nơron bao gồm một hay nhiều lớp trung gian được gọi là mạng Multilayer Perceptrons (MLP – Network). Mạng nơron khi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽ được hình thành dần dần sau một quá trình học. Mạng nơron được học bằng cách đưa vào những kích thích, và mạng hình thành những đáp ứng tương ứng, những đáp ứng tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ. Giai đoạn này được gọi là giai đoạn học của mạng. Khi đã hình thành tri thức mạng, mạng có thể giải quyết các vấn đề một cách đúng đắn. Đó có thể là vấn đề ứng dụng rất khác nhau, được giải quyết chủ yếu dựa trên sự tổ chức hơp nhất giữa các thông tin đầu vào của mạng và các đáp ứng đầu ra. ● Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thu được không đầy đủ hoặc bị tác động của nhiễu. Mạng nơron kiểu này được ứng dụng trong lĩnh vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là nhận dạng chữ viết. ● Nhiệm vụ tổng quát của một mạng nơron là lưu giữ động các thông tin. Dạng thông tin lưu trữ giữ này chính là quan hệ giữa các thông tin đầu vào và các đáp ứng đầu ra tương ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng có khả năng suy diễn và 8 đưa ra một đáp ứng phù hợp. Đây chính là chức năng nhận dạng theo mẫu của mạng nơ ron. Để thực hiện chức năng này, mạng nơron đóng vai trò như một bộ phận tổ chức các nhóm thông tin đầu vào, và tương ứng với mỗi nhóm là một đáp ứng đầu ra phù hợp. Như vậy, một nhóm bao gồm một loại thông tin đầu vào và một đáp ứng đầu ra. Các nhóm có thể được hình thành trong quá trình học, và cũng có thể không hình thành trong quá trình học. Hình 1.6 là một số liên kết đặc thù của mạng nơron. Nơron được vẽ là các vòng tròn xem như một tế bào thần kinh, chúng có các mối liên hệ đến các nơron khác nhờ các trọng số kiên kết. Tập hợp các trọng số liên kết này sẽ lập thành các ma trận trọng số tương ứng. Mạng nơron một lớp Mỗi một nơron có thể phối hợp với các nơron khác tạo thành một lớp các trọng số. Mạng một lớp truyền thẳng như hình 1.6a. Một lớp nơron là một nhóm các nơron mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng thời. Trong ma trận trọng số, các hàng là thể hiện nơron, hàng thứ j có thể đặt nhãn như một vector w j của nơron thứ j gồm m trọng số w ji . Các trọng số trong cùng một cột thứ j (j = 1,2,…n) đồng thời cùng nhận môt tín hiệu đầu vào x j . w j = [w j1 , w j2 , …, w jm ] Tại cùng một thời điêm, vector đầu vào x = [ x 1 , x 2 ,… x n ] có thể là một nguồn bên ngoài là cảm biến hoặc thiết bị đo lường đưa tới mạng. 9 Mạng nơron truyền thẳng nhiều lớp Mạng nơron nhiều lớp (Hình 1.6.c) có các lớp được phân chia thành 3 loại sau đây: ● Lớp vào là lớp nơron đầu tiên nhận tín hiệu vào x i (i = 1,2,…,n). Mỗi tín hiệu x i được đưa đến tất cả các nơron của lớp đầu vào. Thông thường, các nơron đầu vào không làm biến đổi các tín hiệu vào x i , tức là chúng không có các trọng số hoặc không có các loại hàm chuyển đổi nào, chúng chỉ đóng vai trò phân phối các tín hiệu. ● Lớp ẩn là lớp nơron sau lớp vào, chúng không trực tiếp liên hệ với thế giới bên ngoài như các lớp nơron vào/ra. ● Lớp ra là lớp nơron tạo ra các tín hiệu ra cuối cùng. Mạng nơron phản hồi Mạng nơron phản hồi là mạng mà đầu ra của mỗi nơron được quay trở lại nối với đầu vào của các nơron cùng lớp được gọi là mạng Laeral (như hình 1.6.b) Mạng nơron hồi quy Mạng nơron phản hồi có thể thực hiện đóng vòng được gọi là mạng nơron hồi quy (như hình 1.6.d). Mạng nơron hồi quy có trọng số liên kết đối xứng như mạng Hopfield, mạng luôn hội tụ về trạng thái ổn định (Hình 1.6.b). Mạng BAM thuộc nhóm mạng nơron hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với tín hiệu vào/ra. Nghiên cứu mạng nơron hồi quy mà có trọng số liên kết không đối xứng, thì sẽ gặp phải vấn đề phức tạp nhiều hơn so với mạng truyền thẳng và mạng hồi quy có trọng số liên kết đối xứng. Mạng Hopfield Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 1.6.b. Cấu trúc chi tiết của nó được thể hiện trong hình 1.7. Khi hoạt động với tín hiệu rời rạc, nó được gọi là mạng Hopfield rời rạc, và cấu trúc của nó cũng được gọi là mạng hồi quy. 10 [...]... rất hiệu quả trong lĩnh vực nhận dạng chữ viết, đã được nhiều tác giả sử dụng trong chương trình nhận dạng của họ II.1.1 Mô hình bài toán Bài toán nhận dạng chữ viết có hai giai đoạn chính giữ vài trò quyết đinh đến chất lượng quá trình nhận dạng đó là phân tích tập mẫu và huấn luyện mạng II.1.1.1 Phân tích mẫu Thuật toán : 29 • Get image boundary : cắt lấy khung bao của ký tự Thuật toán cắt : o Lấy... sử dụng ít hơn các nơron tầng ẩn 27 I.2.5 Tập huấn luyện mạng Tập dữ liệu sử dụng cho việc huấn luyện và kiểm thử là một tập ảnh của các ký tự riêng rẽ Tập ảnh gốc là một tập gồm 62 lớp , mỗi lớp có 55 ảnh png của 55 người viết khác nhau về một ký tự Trong số 62 lớp này có 10 lớp ảnh của các con số, 26 lớp ảnh của các ký tự viết hoa, 26 lớp ảnh của các ký tự viết thường Các ảnh này được tạo ra bởi... trích rút ra các đặc trưng cho quá trình huấn luyện và kiểm thử sẽ nhanh hơn Một số ví dụ về các ảnh trong tập mẫu : Trong khuôn khổ bài tập lớn nhóm em chỉ tiến hành nhận dạng các ký tự số viết tay Trong đó tập huấn luyện sẽ là 40 ảnh đầu của từng ký tự trong một lớp, tập kiểm thử là 15 ảnh cuối cuối trong mỗi lớp Như vậy sẽ có 400 mẫu cho quá trình huấn luyện mạng và 150 mẫu cho việc kiểm thử Lớp... …\HandwritingRecognition\bin\Debug\ … Tập dữ liệu ảnh được tải về theo đường link sau : http://www.ee.surrey.ac.uk/CVSSP/demos/chars74k/ 28 Chương II Nội dung thực hiện II.1 Các modun chương trình Chương trình được viết bằng Visual C#.NET trong bộ công cụ Visual Studio 2010, môi trường NET Framework 4.0 Thông qua quá trình đọc và tìm hiểu các tài liệu liên quan đến nhận dạng chữ viết, nhóm em quyết định chọn phương pháp nhận dạng. .. vấn đề cần chú ý khi sử dụng mạng MLP Mạng nơron perceptron nhiều lớp là loại mạng nơron được sử dụng trong nhiều ứng dụng thực tế Tuy nhiên, để mạng có thể đưa ra kết quả tốt, chúng ta cần quan tâm đến một số vấn đề có ảnh hưởng khá quan trọng đến hiệu quả làm việc của nó bao gồm: vấn đề chuẩn hóa số liệu đầu vào, vấn đề học chưa đủ và học quá của mạng, vấn đề lựa chọn một cấu trúc mạng phù hơp với bài. .. Các vector cho quá trình huấn luyện được được lấy ra một cách ngẫu nhiên từ tập các vector đầu vào II.1.1.3 Modun kiểm thử Từ tập 150 ảnh cho quá trình test, phân tích như lúc phân tích với tập huấn luyện để thu được tập 150 vector đầu vào cho quá trình test Các vector này cũng được đưa vào một cách ngẫu nhiên Với mỗi vector trong tập 150 vector vào, tính giá trị 16 nơron đầu ra rồi so sánh với ngưỡng... 0 vào phần tử mảng tương ứng với 16 nơron đầu ra, nếu nơron đầu ra có giá trị lớn hơn 0.5 thì gán 1 cho phần tử mảng tương ứng Từ 16 bit đầu ra này, tính giá trị của ký tự Unicode tương ứng II.1.1.4 Modun nhận dạng trực quan Thực ra đây cũng chỉ là một cách kiểm tra trực quan bằng cách load trực tiếp ảnh của ký tự cần nhận dạng, sau đó chương trình cũng thực hiện các bước phân tích ảnh gồm có cắt ảnh... các giá trị của các nơ ron đầu ra với ngưỡng 0.5 để tạo ra mảng 16 giá trị (0,1) đây được coi là ký tự dạng Unicode, sau đó chương trình sẽ chuyển ký tự Unicode đó sang dạng char 33 II.1.2 Giao diện chương trình Modun nhận diện trực quan 34 Modun huấn luyện Modun kiểm thử 35 Hướng dẫn : Trước khi nhận dạng trực quan hoặc kiểm thử thì mạng nơron cần được huấn luyện hoặc được gán trọng số đã được huấn... việc xử lý Các ảnh trong tập dữ liệu ảnh có sẵn có kích thước 1200x900 Do kích thước quá lớn sẽ làm chậm quá trình đọc dữ liệu ảnh nên nhóm em sử dụng phần mềm Free Photo Converter chuyển các ảnh về định dạng png có kích thước 320x240 Với kích thước ảnh nhỏ thì quá trình đọc dữ liệu ảnh để trích rút ra các đặc trưng cho quá trình huấn luyện và kiểm thử sẽ nhanh hơn Một số ví dụ về các ảnh trong tập. .. tích, xử lý ảnh trong tập mẫu tạo ra mảng các vector đầu vào • Tính đầu ra, cập nhật trọng số, tính lỗi trung bình o Với mỗi vector trong mảng đầu vào, tính đầu ra tương ứng với qua bộ trọng số, so sánh 16 đầu ra của mạng nơron với 16 bit đầu ra mong đợi để tính giá trị lỗi, sau đó cập nhật trọng số, tính lỗi trung bình (Các đầu ra mong đợi là các ký tự tương ứng với các ảnh đưa vào, các ký tự đó đượng . học cũng như làm bài tập lớn. Chương I. Tổng quan về tài I.1. Tổng quan về nhận dạng chữ viết Nhận dạng chữ viết có hai loại là nhận dạng chữ in và chữ viết tay. Mỗi kiểu nhận dạng có những đặc. ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN XỬ LÝ NGÔN NGỮ TỰ NHIÊN NHẬN DẠNG CHỮ VIẾT Giảng viên hướng dẫn: PGS. Lê Thanh Hương Sinh viên thực hiện:. cầu lớn được đặt ra là tốc độ tạo văn bản khi sử dụng. Do vậy vấn đề nhận dạng chữ viết ngày càng chứng tỏ tính hữu dụng của nó trong đời sống. Căn cứ vào tiềm năng của lĩnh vực nhận dạng chữ viết

Ngày đăng: 23/10/2014, 23:41

Từ khóa liên quan

Mục lục

  • Mục Lục

  • Lời nói đầu

  • Chương I. Tổng quan về tài

    • I.1. Tổng quan về nhận dạng chữ viết

    • I.2. Các khái niệm liên quan

      • I.2.1 Mạng nơ ron

      • I.2.2. Mạng nơ ron nhân tạo

      • I.2.3. Mạng Perceptron

      • I.2.4. Phương pháp học máy back-propagation

      • I.2.5. Tập huấn luyện mạng

      • Chương II. Nội dung thực hiện

        • II.1 Các modun chương trình

          • II.1.1. Mô hình bài toán

          • II.1.2. Giao diện chương trình

          • II.2. Kết quả

          • II.3. Đánh giá

          • Kết luận

          • Tài liệu tham khảo

          • Chú thích

Tài liệu cùng người dùng

Tài liệu liên quan