Đồ án tốt nghiệp - Ứng dụng mạng neural trong nhận dạng kí tự

36 940 6
Đồ án tốt nghiệp - Ứng dụng mạng neural trong nhận dạng kí 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

Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự

Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự LỜI CẢM ƠN Em xin chân thành cảm ơn các thầy, các cô khoa Công nghệ Thông tin Trường Đại học Dân lập Hải Phòng đã tận tình dạy dỗ, truyền đạt cho chúng em nhiều kiến thức quý báu. Em xin tỏ lòng biết ơn sâu sắc đến thầy Th.s Ngô Trường Giang, người đã tận tình giúp đỡ và truyền đạt nhiều kinh nghiệm để đề tài có thể được thực hiện và hoàn thành. Xin chân thành cảm ơn các bạn trong khoa Công Nghệ Thông Tin, Đại Học Dân Lập Hải Phòng đã giúp đỡ, động viên tôi rất nhiều trong quá trình thực hiện đề tài. Em xin trân thành cảm ơn! Hải Phòng, tháng 07 năm 2007. Sinh viên Bùi Quang Chiến Bùi Quang Chiến Trang 1 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự MỤC LỤC LỜI CẢM ƠN...................................................................................................1 MỤC LỤC........................................................................................................2 LỜI NÓI ĐẦU..................................................................................................3 CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO...................4 1.1. Khái niệm mạng neural ..........................................................................4 1.1.1. Tìm hiểu về Neural.......................................................................4 1.1.2. Mạng neural nhân tạo....................................................................5 1.2. Phân loại mạng neural nhân tạo..............................................................6 1.2.1. Phân loại theo kiểu liên kết neural................................................6 1.2.2. Một số loại mạng neural................................................................6 1.3. Huấn luyện mạng neural.........................................................................8 1.3.1. Phương pháp học...........................................................................8 1.3.2. Thuật toán học của mạng neural nhiều lớp...................................8 1.4. Thu thập dữ liệu cho mạng neural.........................................................12 1.5. Biểu diễn chi thức cho mạng neural......................................................12 CHƯƠNG 2: ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG KÍ TỰ..........14 2.1. Phát biểu bài toán..................................................................................14 2.2. Các bước giải quyết giải quyết bài toán................................................14 2.2.1. Xây dựng mạng neural................................................................14 2.2.2. Xử lý dữ liệu (phân tích ảnh)......................................................15 2.2.3. Huấn luyện mạng neural.............................................................20 2.2.4. Nhận dạng ảnh kí tự....................................................................21 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM.........................22 3.1. Môi trường thử nghiệm.........................................................................22 3.2. Giao diện chương trình.........................................................................22 3.3. Thực nghiệm.........................................................................................22 3.3.1. Thực nghiệm quá trình tính giá trị một số tham số đầu vào:......22 3.3.2. Thực nghiệm huấn luyện mạng...................................................24 3.3.3. Thực nghiệm nhận dạng..............................................................28 KẾT LUẬN....................................................................................................33 TÀI LIỆU THAM KHẢO..............................................................................35 Bùi Quang Chiến Trang 2 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự LỜI NÓI ĐẦU Ngày nay không ai có thể phủ nhận vai trò cực kỳ quan trọng của máy tính trong nghiên cứu khoa học kỹ thuật cũng như trong đời sống. Máy tính đã làm được những điều kỳ diệu và giải được những vấn đề tưởng chừng nan giải. Càng ngày càng có nhiều người tự hỏi, liệu máy tính có khả năng suy nghĩ như con người hay chưa? Chúng ta sẽ không trả lời câu hỏi ấy. Thay vào đó, chúng ta sẽ nêu ra những khác biệt chủ yếu giữa cách làm việc của máy tính và bộ óc con người. Một máy tính, dù có mạnh đến đâu chăng nữa, đều phải làm việc theo một chương trình chính xác đã được hoạch định trước bởi các chuyên gia. Bài toán càng phức tạp thì việc lập trình càng công phu. Trong khi đó con người làm việc bằng cách học tập và rèn luyện, khi làm việc con người có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan trọng hơn hết, họ có thể sáng tạo. Do có khả năng liên tưởng, con người có thể dễ dàng làm nhiều điều mà việc lập trình cho máy tính đòi hỏi rất nhiều công sức. Chẳng hạn như việc nhận dạng hay trò chơi ô chữ. Một em bé có thể tự học hỏi để nhận dạng và phân loại đồ vật chung quanh mình, biết được cái gì là thức ăn, cái gì là đồ chơi. Một người bình thường cũng có thể đoán được vài chữ trong một ô chữ. Nhưng thật khó mà dạy cho máy tính làm được những việc ấy. Từ lâu các nhà khoa học đã nhận thấy những ưu điểm của bộ óc con người và tìm cách bắt chước để thực hiện trên những máy tính, tạo cho nó có khả năng học tập, nhận dạng và phân loại. Các mạng neural nhân tạo đã ra đời từ những nỗ lực đó. Nó thực sự được chú ý và nhanh chóng trở thành một hướng nghiên cứu đầy triển vọng trong mục đích xây dựng các máy thông minh tiến gần tới trí tuệ con người. Đặc biệt là lĩnh vực nhận dạng. Trong đồ án này sẽ trình bày “Ứng dụng mạng neural trong nhận dạng kí tự”. Nội dung báo cáo gồm những chương sau: Chương 1:Tổng quan về mạng neural nhân tạo. Chương 2: Ứng dụng mạng neural nhận dạng kí tự. Chương 3: Cài đặt chương trình thử nghiệm. Bùi Quang Chiến Trang 3 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO 1.1. Khái niệm mạng neural . 1.1.1. Tìm hiểu về Neural. Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến từ một liên kết. Đặc trưng của neural là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán của mạng neural. y1 y2 yk w1 f a w2 wk b0 Đầu ra a=f( ∑w’y+b) Đầu vào Hình1.1: Mô hình một neural nhân tạo Một neural được cầu tạo gồm các thành phần chính :  Liên kết neural.  Bộ cộng .  Hàm kích hoạt. Bảng 1.1 : Một số hàm kích hoạt cơ bản trong mạng neural: Bùi Quang Chiến Trang 4 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Tên hàm Công thức hardlim a=0 a=1 hardlims với n < 0 với n ≥ 0 a = -1 với n < 0 a=1 với n ≥ 0 purelin a=n Satlin a=0 với n < 0 a=n với 0 ≤ n ≤ 1 a=1 với n > 1 satlins tansig poslin compet a = -1 với n < 0 a=n với 0 ≤ n ≤ 1 a=1 với n > 1 a= en − e−n 1 + e −n a=0 với n < 0 a=n với n ≥ 0 a = 1 với neural có n lớn nhất a = 0 với các neural còn lại logsig a= 1 1 + e −n 1.1.2. Mạng neural nhân tạo. Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là neural) tựa như neural thần kinh của não người, hoạt động song song và được nối với nhau bởi các liên kết neural. Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các neural. Mô hình mạng neural. Bùi Quang Chiến Trang 5 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 1.2: Sơ đồ đơn giản về một mạng neural nhân tạo Mô hình mạng neural ở trên gồm 3 lớp:  Lớp nhập (input).  Lớp ẩn(hidden).  Lớp xuất (output). 1.2. Phân loại mạng neural nhân tạo. 1.2.1. Phân loại theo kiểu liên kết neural. Ta có:  Mạng neural dẫn tiến.  Mạng neural qui hồi. 1.2.2. Một số loại mạng neural. 1.2.2.1. Mạng dẫn tiến . Có thể nói mạng neural dẫn tiến là một kiểu mạng đơn giản trong việc sắp đặt mạng. Trong mạng này thông tin chỉ truyền trên một hướng duy nhất. Từ lớp đầu vào xuyên qua lớp ẩn (nếu có) và kết thúc tại lớp đầu ra. Không có chu trình hoặc vòng trong mạng. Bùi Quang Chiến Trang 6 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự a. Các mạng dẫn tiến đơn mức. Mức đầu vào Mức đầu ra Hình 1.3: Mạng tiến với một mức neural b. Các mạng dẫn tiến đa mức. Mức đầu vào Mức ẩn Mức đầu ra Hình 1.4: Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra 1.2.2.2. Mạng quy hồi . Trái với mạng neural dẫn tiến , mạng neural quy hồi là những mô hình với hai luồng dữ liệu có hướng. Trong khi mạng dẫn tiến truyền dữ liệu theo một đường thẳng thì những mạng neural quy hồi có ít nhất một phản hồi từ những neural xử lý sau quay trở lại các neural xử lý trước đó. Bùi Quang Chiến Trang 7 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 1.5: Mạng hồi quy không có neural ẩn và không có vòng lặp tự phản hồi Hình 1.6: Mạng hồi quy có các neural ẩn 1.3. Huấn luyện mạng neural. 1.3.1. Phương pháp học. Mạng neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh và dữ liệu khi đã học. Có 3 kiểu học chính:  Học có giám sát (có mẫu).  Học không giám sát.  Học tăng cường. 1.3.2. Thuật toán học của mạng neural nhiều lớp. Huấn luyện mạng neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược: Bùi Quang Chiến Trang 8 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:  Thay đổi giá trị của trọng số liên kết W của các neural trong mạng biểu diễn được dữ liệu học.  Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả dự đoán của mạng gọi là lỗi (học có giám sát). Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá trình huyến luyện(học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất. Thuật toán: Xét mạng neural 3 lớp : lớp nhập, lớp ẩn và lớp xuất. Hàm kích hoạt các neural : logistic (sigmoid). g(x)= (1.3) Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ. Bước 2 : Chọn lớp đầu vào x và đính nó vào lớp đầu vào . Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kich hoạt các neural đầu ra. Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất. sử dụng GRADIENT của hàm lỗi . Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp ẩn. sử dụng GRADIENT của hàm lỗi. Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ y1 δ Wi). Bước 7: quay w1 lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu. Trong đó: GRADIENT hàm lỗi: z=g(v) y 2 với các neural lớp đầu ra: Đối w 2 v=b0 + g(x)= Bùi Quang Chiến yk wk b0 Trang 9 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hàm lỗi: E(z)= (z - t)2 (1.4) Đạo hàm riêng của hàm lỗi theo trọng số b: ∂E ∂E ∂z ∂v = ∂b ∂z ∂v ∂b (1.5) Ta có: ∂E = ( z −t ) ∂z ∂z ∂g = = z (1 − z ) ∂v ∂v 1, i = 0 ∂v = ∂b1 y i , i > 0 Đặt: p= ∂E ∂z = ( z − t ) z ( z −1) ∂z ∂v Ta được: Bùi Quang Chiến Trang 10 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự  p i =0 ∂E = ∂bi pyi i >0 (1.6) Đối với các neural lớp ẩn: Lớp đầu ra x1 a1 x2 a2 a0 ad Đầu ra a=f( ∑w’ Đạo hàm riêng của hàm lỗi theo trọng số: y+b ) ∂E ∂E ∂y ∂u ∂a = ∂y ∂u ∂a y=g(u) v=a0 + (1.7) Ta có: K ∂E ∂E ∂zi ∂vi =∑ ∂y i =1 ∂zi ∂vi ∂y ∂E ∂zi = ( zi − ti ) zi (1 − zi ) = pi ∂zi ∂vi ∂vi = bi ∂y ∂y = y (1 − y ) ∂u ∂u 1, j = 0 = ∂a j c j , j > 0 Đặt: Bùi Quang Chiến Trang 11 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự ∂E ∂y  K  q= =  ∑ pibi  y (1 − y ) ∂y ∂u  i =1  Ta được: ∂E  q i = 0 = ∂a1 qxi i > 0 (1.8) Sau khi tính được đạo hàm riêng của hàm lỗi theo từng trọng số, trọng số sẽ được điều chỉnh bằng cách trừ bớt đi 1 lượng bằng tích của đạo hàm riêng và tốc độ học: ∂E wi = wi −1 − µ ∂w i−1 (1.9) 1.4. Thu thập dữ liệu cho mạng neural. Cách thu thập dữ liệu có thể nói gọn lại như sau: - Chọn những giá trị huấn luyện có tác dụng. - Dữ liệu số và biến có giá trị định danh có thể xử lý trực tiếp bằng mạng neural. Chuyển những loại biến khác sang một trong các dạng này. - Cần hàng trăm hoặc hàng ngàn trường hợp mẫu huấn luyện; càng nhiều biến thì càng nhiều mẫu huấn luyện. Mạng neural có khả năng nhận ra những biến hữu dụng để huấn luyện. 1.5. Biểu diễn chi thức cho mạng neural. Do cấu trúc một mạng neural là vô cùng đa dạng, nên để có thể biểu diễn tri thức một cách có hiệu quả, người ta đưa ra bốn quy tắc chung sau: Quy tắc 1. Các đầu vào tương tự từ các lớp tương tự cần phải luôn tạo ra những biểu diễn tương tự trong mạng, và như vậy nên được phân lớp thuộc về cùng một loại. Trong tiêu chuẩn này, người ta thường sử dụng một số thước đo để xác định độ “tương tự” giữa các đầu vào. Quy tắc 2. Các phần tử mà có thể phân ra thành các lớp riêng biệt thì nên có những biểu diễn khác nhau đáng kể trong mạng. Bùi Quang Chiến Trang 12 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Quy tắc 3. Nếu một đặc trưng nào đó đặc biệt quan trọng thì nên có một số lượng lớn neural liên quan đến việc biểu diễn đặc trưng này trong mạng. Số lượng lớn các neural bảo đảm mức độ chính xác cao trong việc thực hiện các quyết định và nâng cao khả năng chịu đựng các neuron hỏng. Quy tắc 4. Thông tin ban đầu và các tính chất bất biến nên được đưa vào trong thiết kế ban đầu của một mạng neural, và như vậy sẽ giảm bớt gánh nặng cho quá trình học. Bùi Quang Chiến Trang 13 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự CHƯƠNG 2: ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG KÍ TỰ 2.1. Phát biểu bài toán Cho bài toán nhận dạng kí tự với đầu vào là trang văn bản trên định dạng file ảnh (*.bmp,*.jmp,…). Yêu cầu là xây dựng chương trình nhận dạng kí tự văn bản trên file ảnh. Sử dụng công cụ là mạng nơron và đầu ra là tập hợp các kí tự lư trữ dưới dạng văn bản. Giả thiết giai đoạn tiền xử lý đã được thực hiện : ảnh đã được phân ngưỡng, xoay ảnh, lọc nhiễu... Đề tài này chỉ đi sâu nghiên cứu quá trình nhận dạng kí tự của mạng neural. 2.2. Các bước giải quyết giải quyết bài toán 2.2.1. Xây dựng mạng neural. Chọn mạng đa tầng Feedforward với 3 lớp : 0 hoặc 1 Điểm ảnh Điểm ảnh 0 hoặc 1 Điểm ảnh 0 hoặc 1 0 hoặc 1 Điểm ảnh 16 neural Lớp đầu ra 150 neural Lớp đầu vào 500 neural Lớp ẩn Hình 2.1: Sơ đồ mạng neural thiết kế Bùi Quang Chiến Trang 14 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự 2.2.2. Xử lý dữ liệu (phân tích ảnh). 2.2.2.1. Tách dòng kí tự. Thuật toán: 1. Bắt đầu từ điểm ảnh x, y đầu tiên (0,0), và đặt là dòng 0. 2. Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh. 3. Nếu là phát hiện điểm đen thì lưu giá trị y là đỉnh của hàng đầu tiên:  Nếu không xét tiếp điểm tiếp theo.  Nếu không thấy điểm đen nào thì tăng y và khởi động lại x để quét dòng ngang tiếp theo.  Bắt đầu từ đỉnh cuả hàng tìm thấy (0,giới hạn trên). 4. Quét đến hết chiều rộng của ảnh trên một giá trị y của ảnh.  Nếu không phát hiện điểm đen nào thì đánh dấu giá trị y-1 là giới hạn dưới của hàng. Và tăng số dòng, xét dòng tiếp theo.  Nếu vẫn phát hiện thấy điểm đen tăng y và khởi động lại x xét hàng ngang tiếp theo. 5. Bắt đầu từ giới hạn dưới của hàng ngang tìm thấy sau cùng lặp lại từ bước 1 đến bước 4 tìm dòng kế tiếp. 6. Nếu y bằng chiều cao của ảnh thì dừng. Giới hạn trên Gới hạn dưới Ảnh đầu vào Quá trình tách dòng Hình 2.2: Quá trình tách dòng kí tự Bùi Quang Chiến Trang 15 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự 2.2.2.2. Tách kí tự. Thuật toán 1. Bắt đầu từ kí tự đầu tiên của hàng trên cùng với giá trị x đầu tiên. 2. Quét hết chiều rộng với một giá trị y.  Nếu phát hiện điểm đen đánh dấu y như là đỉnh của hàng đầu tiên.  Nếu không xét điểm tiếp theo. 3. Bắt đầu từ giới hạn trên của kí tự phát hiện được và giá trị x đầu tiên.(0,giới hạn trên kí tự) . 4. Quét đến giới hạn dưới của dòng, giữ nguyên x.  Nếu phát hiện điểm đen đánh dấu x là phía trái của kí tự.  Nếu không xét điểm tiếp theo.  Nếu không thấy điểm đen nào tăng x và khởi động lại y để xét đường thẳng đứng tiếp theo. 5. Bắt đầu từ phía trái của kí tự tìm thấy và đỉnh của dòng hiện thời, (giới hạn trái kí tự, giới hạn trên dòng). 6. Quét hết chiều rộng của ảnh. Trên cùng một giá trị x.  Nếu không có điểm đen nào thì đánh dấu x-1 là bên phải của kí tự.  Nếu phát hiện điểm đen tăng x và khởi động lại y để xét đường thẳng đứng tiếp theo. Bùi Quang Chiến Trang 16 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự x (0,0) Gới hạn trái kí tự Quá trình tách kí tự y Hình 2.3: Quá trình tách kí tự Đ ầu ra a =f ( ∑ w ’y + b) Gới hạn phải kí tự 2.2.2.3. Tìm giới hạn kí tự. Thuật toán 1. Bắt đầu từ đỉnh của dòng hiện thời và bên trái của kí tự. 2. Quét đến bên phải của kí tự. cùng một giá trị y.  Nếu phát hiện điểm đen thì đánh dấu y và thay đổi lại giới hạn trên.  Nếu không xét điểm tiếp theo.  Nếu không tìm thấy điểm đen nào tăng y và khởi động lại x, xét đường thẳng ngang tiếp theo. 3. Bắt đầu từ giới hạn dưới của dòng và bên trái của kí tự. 4. Quét tới bên phải của kí tự trên một giá trị y. Gới hạn trên  Nếu phát hiện điểm đen, đánh ký tựdấu y là giới hạn dưới của kí tự.  Nếu không phát hiện điểm đen giảm y và khởi động lại x xét đường thẳng ngangQuá tiếp theo. trình tìm giới hạn Bùi Quang Chiến Gới hạn dưới ký tự Trang 17 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 2.4: Quá trình tìm giới hạn kí tự 2.2.2.4. Ánh xạ vào ma trận Thuật toán: 1. Đối với chiều rộng:  Khởi tạo với 10 phần tử tương ứng.  Ánh xạ điểm đầu (0,y) và điểm cuối (C_rong,y) của ảnh kí tự tương ứng với giá trị đầu (0,y) và giá trị cuối (10,y) của ma trận.  Chia nhỏ chiều rộng thành 10 giá trị tương ứng. 2. Đối với chiều cao:  Khởi tạo với 15 phần tử tương ứng. (0,0)  Ánh xạ điểm đầu (x,0) và điểm cuối (x,C_cao) của ảnh kí tự tương ứng với giá trị đầu (x,0) và giá trị cuối (x,15) của ma trận. 0  Chia nhỏ chiều cao thành 15 giá trị tương ứng. Bùi Quang Chiến Trang 18 15 (10,15) 0 10 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 2.5: Quá trình chia lưới kí tự Để đưa giá trị vào mạng neural ta cần chuyển ma trận điểm ảnh sang ma trận giá trị. Thuật toán: 1. Bắt đầu từ phần tử (0,0). 2. Tăng x giữ nguyên giá trị y cho tới khi bằng chiều rộng của ma trận.  Ánh xạ mỗi phần tử tới một phần tử của mảng tuyến tính.  Nếu là điểm đen thì nhận giá trị bằng 1.  Ngược lạI nhận giá trị bằng 0.  Nếu x = chiều rộng thì khởi động lại x và tăng y. Lặp lại cho tới khi (x,y)=( C_Rong, C_Cao). Bùi Quang Chiến Trang 19 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 2.6: Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị. 2.2.3. Huấn luyện mạng neural. Thuật toán: 1. Xây dựng mạng tương ứng với mô hình tham số. 2. Khởi tạo giá trị trọng số với giá trị ngẫu nhiên. Nạp file huấn luyện (cả ảnh đầu vào và đầu ra mong muốn). 3. Phân tích ảnh và ánh xạ tất cả kí tự tìm thấy vào các mảng một chiều. 4. Đọc giá trị đầu ra mong muốn từ file và chuyển đổi từng kí tự tới giá trị nhị phân Unicode và lưu trữ riêng biệt. 5. Với mỗi kí tự:  Tính toán giá trị đầu ra của mạng Feed ForWard.  So sánh với giá trị đầu ra mong muốn tương ứng với từng kí tự và tính toán lỗi.  truyền ngược giá trị từ đầu và với mỗi liên kết điều chỉnh trọng số liên kết. 6. Chuyển sang kí tự tiếp theo và lặp lại “6” cho tới khi hết các kí tự. 7. Tính toán trung bình lỗi cho tất cả các kí tự. Bùi Quang Chiến Trang 20 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự 8. Lặp lại từ bước 6 đến 8 cho tới khi đạt số đưa vào của số lần lặp tối đa.  Với phạm vi lỗi đạt đến ngưỡng. Nếu như vậy thì bỏ lặp lại.  Ngược lại tiếp tục lặp lại. 2.2.4. Nhận dạng ảnh kí tự. Thuật toán: 1. Nạp file ảnh. 2. Phân tích ảnh cho các dòng kí tự. 3. Với mỗi dòng tách các kí tự liên tiếp.  Phân tích và xử lý ảnh kí tự cho việc ánh xạ vào một vectơ đầu vào.  Đưa giá trị vecto đầu vào cho mạng neural và tính toán giá trị đầu ra.  Chuyển đổi mã Unicode đầu ra từ nhị phân tới kí tự tương ứng và trả ra dưới dạng textbox. Bùi Quang Chiến Trang 21 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 3.1. Môi trường thử nghiệm. Phần cứng : Một máy tính pentum IV. Card đồ họa 256 MB. Ram 512 MB . Phần mềm : Ngôn ngữ sử dụng: C# trong bộ visual studio 2005. Tập dữ liệu là những ảnh bitmap với số ký tự đầu vào từ 120 đến 160 ký tự của hai loại font: Arial và Tahoma với các kích thước: 8,10,12,14,18,20. 3.2. Giao diện chương trình. Hình 3.1: Giao diện chương trình thực nghiệm 3.3. Thực nghiệm 3.3.1. Thực nghiệm quá trình tính giá trị một số tham số đầu vào: 3.3.1.1. Thực nghiệm tìn số lần lặp lại. Các giá trị khác số kí tự=124, tốc độ học=150, Sigmoid slope=0.014 Bùi Quang Chiến Trang 22 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Bảng 3.2 : Thực nghiệm tìm số lần lặp 300 Kiểu font Số kí tự lỗi. 600 900 Số kí tự % lỗi lỗi. % lỗi Số kí % lỗi tự lỗi. Arial 4 4.44 3 3.33 1 1.11 Tahoma 1 1.11 0 0 0 0 Time NewRoman 0 0 0 0 1 1.11 Giá trị quyết định ở trên cho số lần lặp là 300. 3.3.1.2. Thực nghiệm tìm đầu vào (số kí tự đưa vào). Các giá trị khác số lần lặp=300, tốc độ học=150, Sigmoid slope=0.014. Bảng 3.3 : Thực nghiệm tìm số kí tự 50 Kiểu font 90 Số kí % lỗi tự lỗi. 124 Số kí tự % lỗi lỗi. Số kí tự % lỗi lỗi. Arial 0 0 4 0.044 6 0.048 Tahoma 0 0 2 0.022 4 0.032 TimeNewRoman 0 0 2 0.022 4 0.032 Giá trị quyết định ở trên cho số kí tự đưa vào là 120 đến 160. 3.3.1.3. Thực nghiệm tìm tham số tốc độ học. Các giá trị khác số kí tự=124, số lần lặp=300, Sigmoid slope=0.014. Bảng 3.4: Thực nghiệm tìm tốc độ học 50 100 Kiểu font Số kt lỗi. % lỗi Số kt lỗi. 150 % lỗi Số kt lỗi. % lỗi Arial 82 91.11 18 20 3 3.33 Tahoma 56 62.22 11 12.22 1 1.11 Bùi Quang Chiến Trang 23 Đồ án tốt nghiệp Time NewRoman Ứng dụng mạng neural trong nhận dạng kí tự 77 85.56 15 16.67 0 0 Theo kết quả trong bảng 3.4, giá trị tối ưu quyết định ở trên cho tham số tốc độ học là 150. 3.3.2. Thực nghiệm huấn luyện mạng. Trong đồ án này một số tham số được lựa chọn sau: Tốc độ học = 150. Hệ số góc Sigmoid= 0.014. Trọng số kết nối cơ sở= 30. Số lần lại 300. Trung bình ngưỡng của lỗi = 0.0002. Mẫu dùng trong quá trình thực nghiệm huấn luyện: Ảnh đầu vào: Bùi Quang Chiến Trang 24 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 3.2: Ảnh đầu dùng để huấn luyện Đầu ra mong muốn: ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 Ung Dung Mang Neural Trong Nhan Dang Ky Tu--Bui Quang Chien--2007 Network Name = Arial8 Hidden Layer Size = 500 Number of Patterns= 124 Number of Epochs =Hình 300 3.3: File là đầu ra mong muốn Learning Rate = 150 Sigmoid Slope = 0.014 Weight Bias = 30 Weight[1 , 0 , 0] = -75.64764 Weight[1 , 0 , 1] = 165.6839 Weight[1 , 0 , 2] = -315.9442 Weight[1 , 0 , 3] = 20.66214 Weight[1 , 0 , 4] = -100.0667 Weight[1 , 0 , 5] = 211.1713 Weight[1 , 0 , 6] = 133.3773 . . Dưới dây hình 3.4 là một ví dụ các giá trị trọng số của file sau khi huấn luyện: . Weight[2 , 15 , 494] = 6.119909 Weight[2 , 15 , 495] = 27.66709 Weight[2 , 15 , 496] = -14.68367 Weight[2 , 15 , 497] = 6.72017 Bùi Quang Chiến Weight[2 , 15 , 498] = 8.664137 Weight[2 , 15 , 499] = -21.96243 Trang 25 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Bảng 3.5: Thống kê kết quả huấn luyện: Loại font Arial8 Bùi Quang Chiến Số kí tự huấn luyện Số kí tự lỗi 124 2 %lỗi Ghi chú 0.016 Trang 26 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Arial10 124 2 0.016 Arial12 124 3 0.024 Arial14 124 3 0.024 Arial18 124 2 0.016 Arial20 124 2 0.016 Arial_Số 160 0 0 Arial_Hoa 156 0 0 Arial_Thường 156 0 0 Tahoma 8 124 2 0.016 Tahoma 10 124 3 0.026 Tahoma 12 124 2 0.016 Tahoma 14 124 2 0.016 Tahoma 18 124 0 0 Tahoma 20 124 0 0 Tahoma_Số 160 0 0 Tahoma_Hoa 156 0 0 Tahoma_Thường 156 0 0 Nhận xét quá trình huấn luyện : Đối vớI font Ariai có : I Hình3.5 a : chữ “I_ hoa” mã 48h Bùi Quang Chiến l Hình 3.5b : chữ “l_thường” mã 6Ch Trang 27 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Đối với quá trình huấn luyện ta cần chú ý nhiều và font Arial như ở hình 3.5a và hình 3.5b chữ “I_Hoa”mã 49h và chữ “l_Thường ” mã 6Ch khi tách kí tự, chia lưới và đưa kết quả vào mạng sẽ làm cho mạng không phân biệt được hai kí tự này dẫn đến sau này nhận dạng sai. Phương pháp này cần tăng số lần lặp cho quá trình huấn luyện. 3.3.3. Thực nghiệm nhận dạng. Để thực hiện nhận dạng kí tự chúng ta tiến hành các bước sau:  Đưa giá trị đã huấn luyện vào mạng.  Đưa anh cần nhận dạng vào.  Ghi lại kết quả nhận dạng được. Một số ảnh và kết quả nhận dạng được Ảnh đầu vào: Bùi Quang Chiến Trang 28 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 3.6a : Ảnh kích cỡ 8 cua font Arial Kết quả thu được ABCDEFGHlJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijkImnopqrstuvwxyz 0123456789 Hình 3.7b : Kết quả thu được của font Arial8 Ảnh đầu vào: Bùi Quang Chiến Trang 29 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình3.8a : Ảnh kích cỡ 8 cua font Arial Kết quả thu được TRUONG DAl HOC DAN LAP HAlPHONG Nganh Cong NgheThong Tin Lop CT702 SinhVien BuiQuang Chien Mm So SinhVien 10324 DeTaiTotNghiep Nam 2007 Ung Dung Mang NeuraITrong Nhan Dang kyTu Hình 3.8b : Kết quả thu được của font Arial8 Bảng3.6: Kết quả quá trình nhận dạng font Arial Bùi Quang Chiến Trang 30 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Loại font Số kí tự nhận dạng Số kí tự lỗi Arial8 124 2 0.016 150 4 0.026 124 3 0.024 150 4 0.026 124 2 0.016 150 5 0.03 124 2 0.016 150 2 0.013 124 2 0.016 150 2 0.013 124 2 0.026 150 2 0.013 160 0 0 72 0 0 156 0 0 150 0 0 156 0 0 150 0 0 Arial10 Arial12 Arial14 Arial18 Arial20 Arial_Số Arial_Hoa Arial_Thường % lỗi Ghi chú Bảng3.7: Kết quả quá trình nhận dạng font Tahoma Loại font Tahoma8 Bùi Quang Chiến Số kí tự nhận dạng Số kí tự lỗi 124 2 0.016 150 2 0.013 % lỗi Ghi chú Trang 31 Đồ án tốt nghiệp Tahoma10 Tahoma12 Tahoma14 Tahoma18 Tahoma20 Tahoma_Số Tahoma_Hoa Tahoma_Thường Ứng dụng mạng neural trong nhận dạng kí tự 124 1 0.008 150 4 0.026 124 3 0.024 150 4 0.026 124 0 0 150 0 0 124 0 0 150 0 0 124 0 0 150 0 0 160 0 0 72 0 0 156 0 0 150 0 0 156 0 0 150 0 0 Nhận xét quá trình nhận dạng kí tự: Chương trình thực nghiệm đã được huấn luyện và nhận dạng hai loại font : Arial và Tahoma với nhiều kích thước khác nhau đã đạt được kết quả tốt, nhưng còn một số tồn tại cần được phát triển để đạt kết quả cao hơn. Đối với quá trình huấn luyện ta cần chú ý nhiều và font Arial như đã nói ở hình 3.5a và hình 3.5b chữ “I_Hoa”mã 49h và chữ “l_Thường ” mã 6Ch khi tách kí tự, chia lưới và đưa kết quả vào mạng sẽ làm cho mạng không phân biệt được hai kí tự này dẫn đến sau này nhận dạng sai. Phương pháp này cần tăng số lần lặp cho quá trình huấn luyện. Bùi Quang Chiến Trang 32 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Ngoài ra còn một số trường hợp ảnh của hai kí tự nằm chéo nhau như một số trường hợp sau: Nó sẽ dẫn đến quá trình tách kí tự bị dính do dó nhận dạng sai. Đối với trường hợp này ta cần phát triển phương pháp tách để tách kí tự. Trong quá trình thực nghiệm nhận dạng kí tự ta thấy những kí tự sai là do quá trình huấn luyện mạng chưa học được cho nên những kí tự này trong ảnh nhận dạng sẽ bị nhận dạng sai. Chỉ có một số ít do quá trình tách kí tự. KẾT LUẬN Trong thời gian vừa qua, như đã trình bày ở trên đây nội dung nghiên cứu đề tài của em được gồm các phần chính sau:  Tìm hiểu mạng nơron nhân tạo.  Tìm hiểu bài toán nhận dạng  Mô tả bài toán ứng dụng mạng nơron trong nhận dạng kí tự.  Phân tích cụ thể bài toán nhận dạng. Bùi Quang Chiến Trang 33 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự  Thiết kế mạng và huấn luyện mạng nơron cho bài toán “ứng dụng mạng nơron trong nhận dạng kí tự”.  Cài đặt và kiểm tra thực nghiệm bài toán này. Nhận dạng kí tự là một phần rất quan trọng của lĩnh vực nhận dạng nói riêng và xử lý ảnh nói chung. Cùng với việc sử dụng công cụ là mạng neural là một lĩnh vực còn khá mới cần được phát triển hơn. Trong Khóa luận này nó mới chỉ dừng ở phần thử nghiệm trên một số loại font., kích thước…nhất định. Hướng phát triển tiếp theo của khóa luận này trong tương lai.  Nâng cao hiệu quả và độ chính xác trong việc nhận dạng kí tự.  Mở rộng thêm nhiều loại font.  Mở rộng các cỡ chữ đặc biệt là các cỡ chữ dùng nhiều trong văn bản.  Phát triển thêm các chức năng hay mô đun cho thiết bị cầm tay. Bùi Quang Chiến Trang 34 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự TÀI LIỆU THAM KHẢO [1.] Tìm hiểu mạng neural nhân tạo cho bài toán nhận dạng Đồ án tốt nghiệp năm 2006. Đinh Thị Hương Lan, CT603, Trường đại học dân lập hải phòng. [2.] MathNeuralNetworks. Ben Krose, faculty of Mathematics and computer science, university of Amsterdam. And Patrick van der smagt, institute of robotics and system dynamics German aerospase Reseach establishment. [3.] Artificial Neural Networks and Information theory, colin Fyfe, department of computing and information system, the university of Paisley. [4.] A Growth Algorithm for Neural Networks Decision Trees. Mostefa golea and Mario Marchand, Deparment of physics, university of Ottawa Canada. [5.] Artificial neural network From Wikipedia, the free encyclopedia. [6.] Neural network From Wikipedia, the free encyclopedia. [7.] http://en.wikipedia.org/wiki/Non-linear [8.] http://www.codeproject.com/ Bùi Quang Chiến Trang 35 [...]... hiểu mạng nơron nhân tạo  Tìm hiểu bài toán nhận dạng  Mô tả bài toán ứng dụng mạng nơron trong nhận dạng kí tự  Phân tích cụ thể bài toán nhận dạng Bùi Quang Chiến Trang 33 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự  Thiết kế mạng và huấn luyện mạng nơron cho bài toán ứng dụng mạng nơron trong nhận dạng kí tự  Cài đặt và kiểm tra thực nghiệm bài toán này Nhận dạng kí tự là... vào trong thiết kế ban đầu của một mạng neural, và như vậy sẽ giảm bớt gánh nặng cho quá trình học Bùi Quang Chiến Trang 13 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự CHƯƠNG 2: ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG KÍ TỰ 2.1 Phát biểu bài toán Cho bài toán nhận dạng kí tự với đầu vào là trang văn bản trên định dạng file ảnh (*.bmp,*.jmp,…) Yêu cầu là xây dựng chương trình nhận dạng kí tự văn... Quang Chiến Weight[2 , 15 , 498] = 8.664137 Weight[2 , 15 , 499] = -2 1.96243 Trang 25 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Bảng 3.5: Thống kê kết quả huấn luyện: Loại font Arial8 Bùi Quang Chiến Số kí tự huấn luyện Số kí tự lỗi 124 2 %lỗi Ghi chú 0.016 Trang 26 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Arial10 124 2 0.016 Arial12 124 3 0.024 Arial14 124 3 0.024... điểm đen nào thì đánh dấu x-1 là bên phải của kí tự  Nếu phát hiện điểm đen tăng x và khởi động lại y để xét đường thẳng ứng tiếp theo Bùi Quang Chiến Trang 16 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự x (0,0) Gới hạn trái kí tự Quá trình tách kí tự y Hình 2.3: Quá trình tách kí tự Đ ầu ra a =f ( ∑ w ’y + b) Gới hạn phải kí tự 2.2.2.3 Tìm giới hạn kí tự Thuật toán 1 Bắt đầu từ đỉnh... tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 3.6a : Ảnh kích cỡ 8 cua font Arial Kết quả thu được ABCDEFGHlJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijkImnopqrstuvwxyz 0123456789 Hình 3.7b : Kết quả thu được của font Arial8 Ảnh đầu vào: Bùi Quang Chiến Trang 29 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình3.8a : Ảnh kích... Trang 20 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự 8 Lặp lại từ bước 6 đến 8 cho tới khi đạt số đưa vào của số lần lặp tối đa  Với phạm vi lỗi đạt đến ngưỡng Nếu như vậy thì bỏ lặp lại  Ngược lại tiếp tục lặp lại 2.2.4 Nhận dạng ảnh kí tự Thuật toán: 1 Nạp file ảnh 2 Phân tích ảnh cho các dòng kí tự 3 Với mỗi dòng tách các kí tự liên tiếp  Phân tích và xử lý ảnh kí tự cho việc ánh xạ... tách kí tự, chia lưới và đưa kết quả vào mạng sẽ làm cho mạng không phân biệt được hai kí tự này dẫn đến sau này nhận dạng sai Phương pháp này cần tăng số lần lặp cho quá trình huấn luyện Bùi Quang Chiến Trang 32 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Ngoài ra còn một số trường hợp ảnh của hai kí tự nằm chéo nhau như một số trường hợp sau: Nó sẽ dẫn đến quá trình tách kí tự bị dính... đầu vào cho mạng neural và tính toán giá trị đầu ra  Chuyển đổi mã Unicode đầu ra từ nhị phân tới kí tự tương ứng và trả ra dưới dạng textbox Bùi Quang Chiến Trang 21 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Môi trường thử nghiệm Phần cứng : Một máy tính pentum IV Card đồ họa 256 MB Ram 512 MB Phần mềm : Ngôn ngữ sử dụng: C# trong bộ visual... đặc biệt là các cỡ chữ dùng nhiều trong văn bản  Phát triển thêm các chức năng hay mô đun cho thiết bị cầm tay Bùi Quang Chiến Trang 34 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự TÀI LIỆU THAM KHẢO [1.] Tìm hiểu mạng neural nhân tạo cho bài toán nhận dạng Đồ án tốt nghiệp năm 2006 Đinh Thị Hương Lan, CT603, Trường đại học dân lập hải phòng [2.] MathNeuralNetworks Ben Krose, faculty... đánh ký tựdấu y là giới hạn dưới của kí tự  Nếu không phát hiện điểm đen giảm y và khởi động lại x xét đường thẳng ngangQuá tiếp theo trình tìm giới hạn Bùi Quang Chiến Gới hạn dưới ký tự Trang 17 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng kí tự Hình 2.4: Quá trình tìm giới hạn kí tự 2.2.2.4 Ánh xạ vào ma trận Thuật toán: 1 Đối với chiều rộng:  Khởi tạo với 10 phần tử tương ứng  Ánh xạ

Ngày đăng: 10/10/2015, 10:39

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO

    • 1.1. Khái niệm mạng neural .

      • 1.1.1. Tìm hiểu về Neural.

      • 1.1.2. Mạng neural nhân tạo.

      • 1.2. Phân loại mạng neural nhân tạo.

        • 1.2.1. Phân loại theo kiểu liên kết neural.

        • 1.2.2. Một số loại mạng neural.

          • 1.2.2.1. Mạng dẫn tiến .

          • a. Các mạng dẫn tiến đơn mức.

          • b. Các mạng dẫn tiến đa mức.

          • 1.2.2.2. Mạng quy hồi .

          • 1.3. Huấn luyện mạng neural.

            • 1.3.1. Phương pháp học.

            • 1.3.2. Thuật toán học của mạng neural nhiều lớp.

            • 1.4. Thu thập dữ liệu cho mạng neural.

            • 1.5. Biểu diễn chi thức cho mạng neural.

            • CHƯƠNG 2: ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG KÍ TỰ

              • 2.1. Phát biểu bài toán

              • 2.2. Các bước giải quyết giải quyết bài toán

                • 2.2.1. Xây dựng mạng neural.

                • 2.2.2. Xử lý dữ liệu (phân tích ảnh).

                  • 2.2.2.1. Tách dòng kí tự.

                  • 2.2.2.2. Tách kí tự.

                  • 2.2.2.3. Tìm giới hạn kí tự.

                  • 2.2.2.4. Ánh xạ vào ma trận

                  • 2.2.3. Huấn luyện mạng neural.

                  • 2.2.4. Nhận dạng ảnh kí tự.

                  • CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM

                    • 3.1. Môi trường thử nghiệm.

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

Tài liệu liên quan