Ứng dụng mạng neural trong nhận dạng kí tự

59 1K 18
Ứ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

Ứ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 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 tự MỤC LỤC LỜI CẢM ƠN 1 MỤC LỤC 2 LỜI NÓI ĐẦU 4 CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO .5 1.1. Khái niệm mạng neural .5 1.1.1. Tìm hiểu về Neural .5 1.1.2. Mạng neural nhân tạo .8 1.2. Đặc trưng của mạng neural 10 1.2.1. Tính phi tuyến .10 1.2.2. Tính chất tương ướng đầu vào đầu ra .10 1.2.3. Tính chất thích nghi 10 1.2.4. Tính chất đưa ra lời giải có bằng chứng .11 1.2.5. Tính chất chấp nhận sai xót 11 1.2.6. Khả năng cài đặt VLSI(Very-large-scale-intergrated) 11 1.2.7. Tính chất đồng dạng trong phân tích và thiết kế .11 1.3. Phân loại mạng neural nhân tạo 12 1.3.1. Phân loại theo kiểu liên kết neural .12 1.3.2. Một số loại mạng neural .12 1.4. Xây dựng mạng neural 14 1.5. Huấn luyện mạng neural 16 1.5.1. Phương pháp học 16 1.5.2. Thuật toán học 17 1.6. Thu thập dữ liệu cho mạng neural 22 1.7. Biểu diễn chi thức cho mạng neural 24 1.8. Một số vấn đề của mạng neural 26 1.9. Ứng dụng của mạng neural .27 CHƯƠNG 2: ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG TỰ 28 2.1. Giới thiệu 28 2.2. Phát biểu bài toán 28 Bùi Quang Chiến Trang 2 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự 2.3. Các bước giải quyết giải quyết bài toán 29 2.3.1. Xây dựng mạng neural .29 2.3.2. Xử lý dữ liệu (phân tích ảnh) 30 2.3.3. Huấn luyện mạng neural .35 2.3.4. Nhận dạng ảnh tự 38 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM .41 3.1. Môi trường thử nghiệm .41 3.2. Giao diện chương trình .41 3.3. Bảng mã ASCII sử dụng trong chương trình 41 3.4. Thực nghiệm 42 3.4.1. Thực nghiệm quá trình tính giá trị một số tham số đầu vào: 42 3.4.2. Thực nghiệm huấn luyện mạng 45 3.4.3. Thực nghiệm nhận dạng .49 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 58 Bùi Quang Chiến Trang 3 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng 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 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 tự. Chương 3: Cài đặt chương trình thử nghiệm. Bùi Quang Chiến Trang 4 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng 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. 1.1.1.1. Neural sinh học: Một neural được cấu gồm những thành phần chính sau: Dendrite, Soma, Synapse, Axon như hình 1.1. Hình 1.1: Mô hình neural sinh học Soma là thân của neural. Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới dạng xung điện thế) đến cho soma xử lý. Bên trong soma các dữ liệu đó được tổng hợp lại, có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các dữ liệu mà neural nhận được. Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon. Khác với dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từ neural đi các nơi khác. Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡng nào đó thì axon mới phát một xung điện thế, còn nếu không thì nó ở trạng thái nghỉ. Axon nối với các dendrites của các neural khác thông qua những mối nối đặc biệt gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát ra từ Bùi Quang Chiến Trang 5 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa" trên dendrites để cho các ions truyền qua. Chính dòng ions này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các neural khác. Có thể tóm tắt hoạt động của một neural như sau: neural lấy tổng tất cả các điện thế vào mà nó nhận được, và phát ra một xung điện thế nếu tổng ấy lớn hơn một ngưỡng nào đó. Các neural nối với nhau ở các synapses. Synapse được gọi là mạch khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các neural khác. Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn. Các synapses đóng vai trò rất quan trọng trong sự học tập. Khi chúng ta học tập thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các neural. Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các neural càng nhiều, càng nhạy bén. 1.1.1.2. Neural nhân tạo: 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. Hình1.2: Mô hình một neural nhân tạo Bùi Quang Chiến Trang 6 w 2 w k w 1 y 1 y 2 b 0 y k f a Đầu vào Đầu ra a=f( ∑w’y+b) Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự 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. Liên kết neural là một thành phần của mạng neural nhận tạo để liên kết giữa các neural, nó nối đầu ra của neural lớp này với đầu vào của một neural trong lớp khác. Đặc trưng của thành phần liên kết là một trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này. Các trọng số liên kết chính là các tham số tự do cơ bản của mạng neuron, có thể thay đổi được nhằm thích nghi với môi trường xung quanh. Bộ cộng dùng để tính tổng các tín hiệu đầu vào của neural, đã được nhân với các trọng số liên kết tương ứng. phép toán được mô tả ở đây tạo nên một bộ hợp tuyến tính. Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một 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 mạng neural. Nó được xem như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn. Mô hình neural trong hình 1.2 còn bao gồm một hệ số điều chỉnh b tác động từ bên ngoài. Hệ số điều chỉnh b có tác dụng tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tùy theo nó dương hay âm. Bùi Quang Chiến Trang 7 [...]... Chiến Trang 27 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự CHƯƠNG 2: ỨNG DỤNG MẠNG NEURAL NHẬN DẠNG TỰ 2.1 Giới thiệu Nhận dạngtự là một ứng dụng đang được rất nhiều người quan tâm nhưng nó đầy khó khăn và thử thách Điều rất khó của khả năng nhận dạng phù hợp tự là các kiểu ngôn ngữ rất phức tạp không theo quy luật do biến đổi trong font, kiểu và kích cỡ Với một số phương thức... Ứng dụng mạng neural trong nhận dạng tự  Chuyển thành ma trận tuyến tính và đưa vào mạng neural  Đưa và mạng neural tính giá trị đầu ra  Hiển thị tự của mã Unicode thu được Các bước giải quyết bài toán sử dụng mạng neural nhận dạng ký tự: Xây dựng mạng, xử lý dữ liệu(phân tích ảnh), huấn luyện mạng nueral và nhận dạng mạng neural 2.3 Các bước giải quyết giải quyết bài toán 2.3.1 Xây dựng mạng. .. toán học trong nhiều ứng dụng khác nhau của mạng neural Các mạng tổ hợp (modular) có thể được xây dựng thông qua một sự tích hợp các mô hình khác nhau Bùi Quang Chiến Trang 11 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự 1.3 Phân loại mạng neural nhân tạo 1.3.1 Phân loại theo kiểu liên kết neural Ta có mạng neural truyền thẳng và neural mạng qui hồi Trong mạng truyền thẳng các neural đi... phải của 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 x (0,0) f Gới hạn trái tự Quá trình tách tự Gới hạn phải tự y Hình 2.3: Quá trình tách tự 2.3.2.3 Tìm giới hạn tự Trong một số trường hợp quá trình tách tự có thể không phải là giới hạn thực tế của tự Ở đây xuất hiện vấn đề không sắp xếp tự theo quy luật như sắp xếp dòng tự Tức... số kết nối không tồn tại trong mạng, chúng ta nói rằng mạng là kết nối không đầy đủ Mức đầu vào gồm các nút nguồn Mức ẩn Mức đầu ra gồm các gồm các neural ẩn neural đầu ra Hình 1.5: Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra Bùi Quang Chiến Trang 13 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự 1.3.2.2 Mạng quy hồi Trái với mạng neural dẫn tiến , mạng nổn quy hồi là những... neural và các cạnh của đồ thị là các liên kết giữa các neural Bùi Quang Chiến Trang 14 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự h1 g1 x h2 f g2 h3 Hình 1.8: Sơ đồ đồ thị có hướng đơn giản Vì vậy để xây dựng một mạng neural ta xây dựng một đồ thị có hướng: số đỉnh của đồ thị bằng số neural trong mạng, giá trị của các cạnh chính là trọng số liên kết neural Ví dụ xây dựng một mạng neural. .. 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 29 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự Lớp đầu vào gồm 150 neural nhận giá trị nhị phân(0,1) của 150 thành phần của véctơ tương ứng. .. không quá đơn giản như mô hình Bởi vì mạng neural hoạt động như một hộp đen Một số hướng dẫn khi sử dụng mạng neural Bùi Quang Chiến Trang 26 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự Xây dựng mạng khởi tạo(dùng một lớp ẩn có số neural= ½ tổng số neural của lớp nhập và l ớp xuất) Huấn luyện mạng dùng các giải thuật huấn luyện Nên thực hiện trên nhiều mạng khác nhau để tránh trường hợp... trái của tự 4 Quét tới bên phải của tự trên một giá trị y  Nếu phát hiện điểm đen, đánh dấu y là giới hạn dưới của 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 ngang tiếp theo Gới hạn trên ký tự Quá trình tìm giới hạn Gới hạn dưới ký tự Hình 2.4: Quá trình tìm giới hạn tự Bùi Quang Chiến Trang 33 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự 2.3.2.4... một hàng không tất yếu là đỉnh của tất cả và tương tự đáy của của một hàng cũng không là đáy của tất cả các tự trên một dòng Từ đây cần có một thủ tục tìm giới hạn tự Thuật toán Bùi Quang Chiến Trang 32 Đồ án tốt nghiệp Ứng dụng mạng neural trong nhận dạng tự 1 Bắt đầu từ đỉnh của dòng hiện thời và bên trái của tự 2 Quét đến bên phải của tự cùng một giá trị y  Nếu phát hiện điểm đen thì . Ứ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. . 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

Ngày đăng: 24/04/2013, 20:34

Hình ảnh liên quan

Hình 1.1: Mô hình neural sinh học Soma là thân của neural.  - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 1.1.

Mô hình neural sinh học Soma là thân của neural. Xem tại trang 5 của tài liệu.
Hình1.2: Mô hình một neural nhân tạo - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 1.2.

Mô hình một neural nhân tạo Xem tại trang 6 của tài liệu.
Bảng 1.1: Một số hàm kích hoạt cơ bản trong mạng neural: - Ứng dụng mạng neural trong nhận dạng kí tự

Bảng 1.1.

Một số hàm kích hoạt cơ bản trong mạng neural: Xem tại trang 8 của tài liệu.
Mô hình mạng neural. - Ứng dụng mạng neural trong nhận dạng kí tự

h.

ình mạng neural Xem tại trang 9 của tài liệu.
Hình 1.4: Mạng tiến với một mức neural - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 1.4.

Mạng tiến với một mức neural Xem tại trang 12 của tài liệu.
Mạng neural trong hình 1.5 được gọi là kết nối đầy đủ với ý nghĩa là tất cả các nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau - Ứng dụng mạng neural trong nhận dạng kí tự

ng.

neural trong hình 1.5 được gọi là kết nối đầy đủ với ý nghĩa là tất cả các nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau Xem tại trang 13 của tài liệu.
Trái với mạng neural dẫn tiế n, mạng nổn quy hồi là những mô hình với hai luồng dữ liệu có hướng - Ứng dụng mạng neural trong nhận dạng kí tự

r.

ái với mạng neural dẫn tiế n, mạng nổn quy hồi là những mô hình với hai luồng dữ liệu có hướng Xem tại trang 14 của tài liệu.
Hình 1.6: Mạng hồi quy không có neural ẩn và không có vòng lặp tự phản hồi - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 1.6.

Mạng hồi quy không có neural ẩn và không có vòng lặp tự phản hồi Xem tại trang 14 của tài liệu.
Hình 1.8: Sơ đồ đồ thị có hướng đơn giản - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 1.8.

Sơ đồ đồ thị có hướng đơn giản Xem tại trang 15 của tài liệu.
Hình 2.1: Sơ đồ mạng neural thiết kế - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 2.1.

Sơ đồ mạng neural thiết kế Xem tại trang 29 của tài liệu.
Hình 2.2: Quá trình tách dòngkí tự - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 2.2.

Quá trình tách dòngkí tự Xem tại trang 31 của tài liệu.
Hình 2.3: Quá trình tách kí tự - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 2.3.

Quá trình tách kí tự Xem tại trang 32 của tài liệu.
Hình 2.4: Quá trình tìm giới hạn kí tự - Ứ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ự Xem tại trang 33 của tài liệu.
Hình 2.5: Quá trình chia lưới kí tự - Ứ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ự Xem tại trang 34 của tài liệu.
Hình 2.6: Quá trình ánh xạ từ ma trận điểm sang ma trận giá trị. - Ứ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ị Xem tại trang 35 của tài liệu.
Hình 2.7: Sơ đồ khối quá trình huấn luyện mạng neural - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 2.7.

Sơ đồ khối quá trình huấn luyện mạng neural Xem tại trang 38 của tài liệu.
Hình 3.1: Giao diện chương trình thực nghiệm - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 3.1.

Giao diện chương trình thực nghiệm Xem tại trang 41 của tài liệu.
Bảng 3.2: Thực nghiệm tìm số lần lặ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 Xem tại trang 43 của tài liệu.
Bảng 3.4: Thực nghiệm tìm tốc độ học - Ứng dụng mạng neural trong nhận dạng kí tự

Bảng 3.4.

Thực nghiệm tìm tốc độ học Xem tại trang 44 của tài liệu.
3.4.1.3. Thực nghiệm tìm tham số tốc độ học. - Ứng dụng mạng neural trong nhận dạng kí tự

3.4.1.3..

Thực nghiệm tìm tham số tốc độ học Xem tại trang 44 của tài liệu.
Hình3.2: Ảnh đầu dùng để huấn luyện Đầu ra mong muốn: - Ứ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: Xem tại trang 46 của tài liệu.
Hình 3.4: Kết quả sau khi huấn luyện - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 3.4.

Kết quả sau khi huấn luyện Xem tại trang 47 của tài liệu.
Bảng 3.5: Thống kê kết quả huấn luyện: - Ứ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: Xem tại trang 48 của tài liệu.
Hình 3.10 b: Kết quả thu được của font Tahoma8 - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 3.10.

b: Kết quả thu được của font Tahoma8 Xem tại trang 53 của tài liệu.
Hình 3.10 a: Ảnh kích cỡ 8 cua font Tahoma Kết quả thu được - Ứng dụng mạng neural trong nhận dạng kí tự

Hình 3.10.

a: Ảnh kích cỡ 8 cua font Tahoma Kết quả thu được Xem tại trang 53 của tài liệu.
Bảng3.7: Kết quả quá trình nhận dạng font Tahoma - Ứng dụng mạng neural trong nhận dạng kí tự

Bảng 3.7.

Kết quả quá trình nhận dạng font Tahoma Xem tại trang 54 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan