Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,09 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── Tiểu luận môn học NHẬN DẠNG Đề 10: Tìm hiểu và so sánh một số giải pháp nhận dạng chữ in Học viên Phạm Văn Hiếu Nguyễn Thành Linh Nguyễn Thanh Tùng (CB120162) Lớp Kĩ thuật máy tính và truyền thông 12BMTTT HÀ NỘI 12-2012 Phân công công việc Công việc Người thực hiện Tìm hiểu mạng feed- forward sử dụng giải thuật lan truyền ngược sai số Back Propagation. Nguyễn Thành Linh Ứng dụng mạng feed- forward vào nhận dạng chữ in Phạm Văn Hiếu Mạng nơron Kohonen Nguyễn Thanh Tùng 1 MỤC LỤC 1. Lời mở đầu 2 2. Mạng feed- forward sử dụng giải thuật lan truyền ngược sai số Back Propagation 3 2.1. Các Bước Xây Dựng Nên Bài Toán 3 2.2. Xác Định Cấu Trúc Mạng 3 2.3. Thuật toán huấn luyện mạng. 6 2.4. Phương Pháp và Thuật Toán Nhận Dạng Kí Tự 8 2.4.1. Xử lý dữ liệu (Phân tích ảnh) 8 2.4.2. Huấn Luyện Mạng 16 2.4.3. Nhận Dạng Ký Tự Quang Học 17 3. Mạng nơron Kohonen 19 3.1 Giới thiệu 19 3.2. Mạng nơron Kohonen nhận dạng 21 3.2.1. Chuẩn hóa dữ liệu đầu vào 23 3.2.2. Tính toán dữ liệu đầu ra của nơron 23 3.2.3. Ánh xạ lưỡng cực 24 3.2.4. Chọn nơron thắng 25 3.2.5. Quá trình học của mạng Kohonen 26 3.2.6. Tỉ lệ (tốc độ) học 28 3.2.7. Điều chỉnh các trọng số (cập nhật trọng số) 28 3.2.8. Tính toán sai số 29 4. Kết luận 30 TÀI LIỆU THAM KHẢO 31 2 1. Lời mở đầu Nhận dạng kí tự quang học (OCR – Optical Character Recognition) là một bài toán chuyển các hình ảnh của chữ viết tay hoặc chữ đánh máy (thường được quét bằng má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 được giải quyết một cách triệt để, như vấn đề về tốc độ xử lý, độ chính xác của tách từ, hay độ chính xác của nhận dạng. Và vì vậy bài toán này vẫn nhận được nhiều sự quan tâm nghiên cứu. Nhận dạng văn bản chữ in được áp dụng trong quá trình tự động hoá 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ỏi nhiều thời gian và công sức 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ẫn chư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ặp phả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ên bà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 vấn đề khó khăn của bài toán một cách triệt để. Một số hệ nhận nhận dạng văn bản đã và đang được áp dụng rất nhiều vào ứng dụng như FineReader của hãng AABBYY, OmmiPage của hãng Scansoft được dùng để nhận dạng các văn bản tiếng Anh, VNDOCR của Viện công nghệ thông tin cho các văn bản tiếng Việt. Trong khuôn khổ bài tiểu luận này, chúng em chỉ xin nêu ra kết quả của quá trình tìm hiểu và so sánh các phương pháp nhận dạng chữ in. 3 2. Mạng feed- forward sử dụng giải thuật lan truyền ngược sai số Back Propagation 2.1. Các Bước Xây Dựng Nên Bài Toán Dưới đây là các bước chính khi tiến hành thiết kế và thực thi mạng noron nhân tạo cho bài toán nhận dạng ký tự. Xác định dữ liệu đầu vào, và đầu ra mong muốn để tiến hành huấn luyện cho mạng noron. Đầu vào : Vì tiểu luận chỉ tập trung vào nghiên cứu và cài đặt quá trình nhận dạng ký tự neural, nên các dữ liệu đầu vào phải qua xử lý và đạt chuẩn yêu cầu trước khi đưa vào nhận dạng.Các yêu cầu dữ liệu đầu vào là các file ảnh dạng văn bản có định dạng *.bmp, đây là dạng file ảnh chuẩn, có kiểu màu pixel đen và trắng, để việc tiến hành nhận dạng được chính xác.Các file ảnh này đã qua giai đoạn tiền xử lý : xử lý ảnh nhiễu, ảnh đa sắc , lọc ảnh Đầu ra mong muốn : là một file text chứa các ký tự Unicode tương ứng mà chương trình mong muốn huấn luyện mạng học thuộc.Số ký tự đầu ra mong muốn phải tương ứng với số kí tự ảnh đầu vào cần huấn luyện. Hình 2.1 Một ví dụ về mẫu các ký tự trong nhận dạng ký tự quang học. 2.2. Xác Định Cấu Trúc Mạng Mạng noron được xây dựng theo phương pháp học có giám sát. Bài toán lựa chọn mạng Feed-forward 3 lớp với cấu trúc như sau : ABCDEFGHIJKMNOPQRSTU VWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 +-\?*^@&:<> 4 - Số noron lớp đầu vào : 150 noron. Giải thích : Việc huấn luyện cho mạng học là một vòng lặp duyệt qua lần lượt các ký tự ảnh giúp mạng noron nhớ và nhận dạng các ký tự ảnh này.Với mỗi vòng lặp, một ký tự sẽ được đưa vào giảng dạy cho mạng noron học.Trong quá trình này, mỗi ký tự sẽ được phân tích và chuyển tỉ lệ vào một ma trận nhị phân 15 x 10 .Ứng với mỗi điểm lưới của ma trận sẽ được tuyến tính hóa tạo ra tương ứng với một noron đầu vào.Vì vậy ma trận sẽ tạo ra 15x10=150 noron đầu vào. Lưu ý : Việc chọn số lượng noron đầu vào hay nói cách khác việc chọn tỉ lệ ma trận đầu vào cho kí tự là rất quan trọng. Nếu số lượng noron lớn quá sẽ dẫn đến việc : - Nhận dạng những kí tự có font chữ nhỏ hoặc trung bình bị sai hoặc không chính xác. - Chương trình viết ra phải duyệt qua rất nhiều vòng lặp dẫn đến chương trình bị chậm, hoặc gây ra tình trạng bị đứng máy khi chạy. Nếu số lượng noron quá nhỏ : - Việc phân tích các kí tự ảnh thông thường và lớn sẽ dẫn đến sai số lớn , vì vậy, việc nhận dạng kí tự cũng sẽ thiếu tính chính xác. - Qua kiểm nghiệm, và dựa trên nhiều tài liệu, nhận thấy giá trị 150 noron đầu vào là khá phù hợp để nhận dạng với kiểu kí tự ảnh có font chữ trung bình, và phổ biến.Các kí tự ảnh này có chiều cao trung bình là 70 pixel và chiều rộng khoảng 54 pixel. 5 - Số noron lớp ẩn : 500 noron.Việc lựa chọn giá trị này dựa trên thực nghiệm của các tài liệu chuyên về nhận dạng kí tự quang học.Số noron này được quyết định từ những kết quả tối ưu và giá trị lỗi cơ sở trong quá trình huấn luyện. - Số noron đầu ra : 16 noron tương ứng với 16 bit nhị phân của mã Unicode.Từ 16 noron này ta tổng hợp và chuyển thành 16 bit nhị phân, sau cùng chuyển thành 1 kí tự Unicode. 500 neural Lớp ẩn 150 neural Lớp đầu vào Điểm ảnh Điểm ảnh Điểm ảnh Điểm ảnh 0 hoặc 1 0 hoặc 1 0 hoặc 1 0 hoặc 1 16 neural Lớp đầu ra 6 2.3. Thuật toán huấn luyện mạng. Mạng feed- forward sử dụng giải thuật lan truyền ngược sai số Back Propagation. Giải thuật gồm 2 bước : Bước 1: -Lan truyền xuôi đầu vào qua mạng. Sử dụng các công thức : Công thức chung tính đầu ra của một noron thứ i tại lớp thứ k: y i= f ( n j jij xw 0 -b i ) Với f là hàm chuyển sigmoid lưỡng cực được tính theo công thức : f= 1 1 2 t e α: hệ số góc của hàm chuyển t: biến net-input b i : hệ số ngưỡng hay độ lệch Áp dụng đối với mô hình mạng của chương trình : -Công thức cho đầu ra của một noron thứ i (1250) tại lớp ẩn a i= f ( n j jij xw 1 -b i ) Với ij w : trọng số tại noron thứ i của lớp ẩn kết nối với đầu vào thứ j của lớp vào j x : giá trị đầu vào của noron thứ j tại lớp vào b i : giá trị ngưỡng hay độ lệch của noron thứ i của đầu vào 7 -Công thức cho đầu ra của một noron thứ k (k =116)tại lớp output y k= f( k n j jkj baw 1 )=f [ n j kj w 1 ( f ( n j jij xw 1 )] Bước 2 : Lan truyền ngược Tính toán sai lệch giữa đầu ra thực và đầu ra mong muốn của noron thứ k tại đầu ra. e i= t i - y i Tổng bình phương sai số của mạng ứng với mẫu học (Xs, Ts): E= p k 1 2 1 ( t i - y i ) 2 P: số phần tử đầu ra Nếu E< ε và l+1<epochs thì : Thông tin sai số sẽ được lan truyền ngược qua mạng để điều chỉnh lại trọng số tại vòng lặp l. -Công thức điều chỉnh trọng số với liên kết giữa noron thứ j trong lớp ẩn và noron thứ i trong lớp ra tại lần lặp l+1: (l+1<số lần dạy( epochs) ) ij w (l+1) = ij w (l)+ η.e i (l).y j .f’(y i (l)) Với η: hệ số học e i (l) : giá trị sai lệch của noron thứ i trong lớp ra , trong lần dạy (lặp ) thứ l . f’: đạo hàm của hàm chuyển lưỡng cực ,công thức f’= 2 1 2 x η : hệ số học y i (l) : giá trị đầu ra của noron thứ i trong lớp ra tại vòng lặp thứ l. y j (l) : giá trị đầu ra của noron thứ j trong lớp ẩn tại vòng lặp thứ l. 8 -Công thức điều chỉnh trọng số với liên kết giữa noron vào thứ j và noron ẩn thứ i , tại lần lặp thứ l+1 (l+1 <epochs) ij w (l+1) = ij w (l)+ η.x j. f’(y i ). m k kkki lyflelw 1 ))((').().1( Với : η: hệ số học x j : giá trị đầu ra của noron thứ j trong lớp vào. y i : giá trị đầu ra của noron thứ i trong lớp ẩn w ki (l+1) : trọng số liên kết giữa noron thứ k trong lớp ra và noron thứ i trong lớp ẩn trong lần lặp thứ l+1 . y k (l) : giá trị đầu ra của noron thứ k trong lớp ra. Các tham số sử dụng trong chương trình Tốc độ học η = 150. Hệ số góc α Sigmoid= 0.014. Giá trị ngưỡng hay độ lệch : 30 Số lần dạy 300-600 tùy độ phức tạp của từng loại font. Ngưỡng của lỗi = 0.0002. 2.4. Phương Pháp và Thuật Toán Nhận Dạng Kí Tự 2.4.1. Xử lý dữ liệu (Phân tích ảnh) Quá trình phân tích ảnh thực chất là phân tích chuỗi văn bản ảnh thành từng ký tự một. Việc phân tích này dựa trên việc nhận dạng các pixel màu của ký tự ảnh với dữ liệu đầu vào đã được xử lý và chuyển thành định dạng *.bmp chỉ có 2 pixel điểm đen RGB(0,0,0) và điểm trắng RGB(255, 255, 255). [...]... luyện trước và nó sẽ phân tích các công đoạn để đưa ra kết quả; hoặc là chu kỳ bị loại bỏ hoặc tạo ra một tập các trọng số đó mà có mức sai số có thể chấp nhận được 26 Bắt đầu Đã quá số chu kỳ xác định? Khởi tạo ngẫu nhiên ma trận trọng số N o Tính toán sai số Kiểm tra sai số xem có ở mức chấp nhận được Gán ma trận trọng số này thành ma trận trọng số tốt nhất không? Ye s Nếu có ma trận trọng số tốt hơn... nơron Kohonen nhận dạng Ta sẽ xem việc huấn luyện mạng nơron Kohonen như thế nào để nhận dạng đúng các mẫu mà ta mong muốn Chúng ta bắt đầu bằng cách xem xét cấu trúc của mạng nơron Kohonen Mạng nơron Kohonen chỉ bao gồm một lớp dữ liệu đầu vào và một lớp dữ liệu đầu ra của các nơron và nó không chứa lớp ẩn Lớp dữ liệu đầu vào đối với mạng nơron Kohonen là các nơron đầu vào Các nơron đầu vào này tạo... trận trọng số tốt nhất? Ye s N o Thực hiện huấn luyện, điều N o chỉnh trọng số dựa vào nơron thắng Ye s Tính toán lại tỉ lệ sai số, ghi lại những giá trị đã được cải thiện N o Ye s Ma trận trọng số này đã tốt nhất chưa? Ye s Cải thiện tỉ lệ sai số là tầm thường? Dừng 27 N o Hình 3.2: Sơ đồ khối biểu diễn huấn luyện mạng nơron Kohonen 3.2.6 Tỉ lệ (tốc độ) học Tham số học là một hằng và nó là một số nhỏ... trọng số này được thay đổi như thế nào Phương pháp cho việc tính toán thay đổi các trọng số sử dụng phương trình sau: w t 1 w t ( x w t ) Biến x là vector huấn luyện được đưa vào mạng Biến wt là trọng số của nơron thắng, và biến wt+1 là trọng số mới, α là hệ số học 28 3.2.8 Tính toán sai số Khi mạng huấn luyện không giám sát bao giờ cũng có sai số, đó là sự khác nhau giữa kết quả mong đợi và. .. nhân tạo và mạng nơron Kohonen, Mạng feed- forward - Nắm đượcquy trình chung trong việc xây dựng hệ thống nhận dạng chữ viết - Sử dụng phương pháp tính tích vô hướng hai vector để tìm nơron thắng - Đưa ra phương pháp trích chọn đặc trưng cho nhận dạng ký tự quang học Mặc dù em đã cố gắng để hoàn thiện đề tài, nhưng chắc chắn không thể tránh được những thiếu sót, em rất mong nhận được sự chỉ bảo và giúp... Chúng ta có thể nhận được một số ý tưởng cách bộ não lưu trữ hình ảnh và cách nó nhận dạng các hình ảnh Mô hình Mạng có n nơron PEi , i=1,2, , n Đầu ra của chúng là yi , i=1, ,n Có m tín hiệu vào {x1, x2, , xm},wij là trọng số liên kết từ xj với PEi Gọi s(x), s(y) là hàm chuyển tín hiệu, giả thiết đó là hàm đơn điệu không giảm liên tục như dạng hàm Sigmoid Phương thức biến đổi trọng số được gọi là... tìm cái khớp nhất (matching) – tìm nơron tạm gọi là nơron thắng (theo nghĩa gần mẫu nhất), sử dụng công thức sau: y max( y1 y m ) x.w x , (Phương pháp tính tích vô hướng) 2/ Tính toán sai số và điều chỉnh trọng số Ký hiệu ej là sai số ở cột thứ j, wij là biểu diễn cho cột thứ j của ma trận trọng số w, sai số này được tính theo công thức sau: 20 ej = ||x-wij|| Nếu tổng sai số chưa nằm dưới mức cho... xem các trọng số này được điều chỉnh sử dụng tham số học như thế nào 3.2.7 Điều chỉnh các trọng số (cập nhật trọng số) Một công đoạn xuất hiện khi dữ liệu huấn luyện được đưa vào mạng nơron Kohonen, và các trọng số được điều chỉnh dựa trên các kết quả của dữ liệu huấn luyện Sự điều chỉnh các trọng số sẽ làm cho mạng có thuận lợi hơn ngay sau khi nó được đưa trở lại mạng Ma trận trọng số cuối cùng được... trọng số trong khoảng [-độ lệch,độ lệch ] 3.Nạp file ảnh đầu vào và file huấn luyện (file text đầu ra mong muốn ) 4.Phân tích ảnh và ánh xạ thành 150 noron đầu vào 5.Đọc các kí tự đầu ra mong muốn, chuyển thành giá trị nhị phân Unicode và lưu trữ lại 6.Với mỗi kí tự ảnh : +Tính giá trị đầu ra trong mạng FeedForward +So sánh với ký tự tương ứng ở đầu ra mong muốn và tính toán lỗi +Lan truyền ngược lỗi và. .. sẽ sử dụng hệ số chuẩn hóa giống như đã sử dụng để tính toán cho nơron đầu ra đầu tiên Theo trên ta có hệ số chuẩn hóa là 1.1094 Chúng ta áp dụng phương pháp tính tích vô hướng cho trọng số của nơron đầu ra thứ hai và vector dữ liệu đầu vào, chúng ta sẽ nhận được một giá trị là : |0.5 0.75|*|0.3 0.4| = (0.5*0.75)+(0.3*0.4) = 0.45 Giá trị này được nhân với hệ số chuẩn hóa 1.1094, chúng ta nhận được kết . 0 15 0 10 (0,0) (10 ,15 ) 16 Từ ma trận ảnh này ta ánh xạ thành mảng 1 chiều 15 0 cột 1 dòng, và chuyển thành 15 0 noron đầu vào 2.4.2 2.4 .1. Xử lý dữ liệu (Phân tích ảnh) 8 2.4.2. Huấn Luyện Mạng 16 2.4.3. Nhận Dạng Ký Tự Quang Học 17 3. Mạng nơron Kohonen 19 3 .1 Giới thiệu 19 3.2. Mạng nơron Kohonen nhận dạng 21 3.2 .1. . 500 neural Lớp ẩn 15 0 neural Lớp đầu vào Điểm ảnh Điểm ảnh Điểm ảnh Điểm ảnh 0 hoặc 1 0 hoặc 1 0 hoặc 1 0 hoặc 1 16 neural Lớp đầu ra 6 2.3. Thuật