Bài tập lớn môn trí tuệ nhân tạo nhận dạng ký tự viết tay tiếng việt

20 10 0
Bài tập lớn môn trí tuệ nhân tạo  nhận dạng ký tự viết tay tiếng 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 & TRUYỀN THƠNG BÀI TẬP LỚN MƠN TRÍ TUỆ NHÂN TẠO ĐỀ TÀI: NHẬN DẠNG KÝ TỰ VIẾT TAY TIẾNG VIỆT Giáo viên hướng dẫn: Nguyễn Nhật Quang Nhóm sinh viên thực hiện: LÊ NGỌC MINH 20071946 ĐỖ BÍCH NGỌC 20072097 Lớp: Khoa học máy tính – K52 HÀ NỘI 11/2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC MỤC LỤC GIỚI THIỆU BÀI TOÁN MÔ TẢ BÀI TOÁN PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN 3.1 Cơ sở lý thuyết 3.1.1 Mạng neuron 3.1.2 Perceptron 3.1.3 Mạng neuron nhiều lớp giải thuật lan truyền ngược 3.2 Giải toán 3.2.1 Chương trình 3.2.2 Khởi tạo mạng neuron 3.2.3 Chuẩn bị liệu 10 3.2.4 Các kết thực nghiệm 12 GIỚI THIỆU VỀ PHẦN MỀM sapphireOCR 17 4.1 Hướng dẫn cài đặt 17 4.2 Hướng dẫn sử dụng 17 CÁC VẤN ĐỀ PHÁT SINH VÀ ĐỀ XUẤT 19 5.1 Kết nhận dạng thấp 19 5.2 Tốc độ huấn luyện chậm 19 TÀI LIỆU VÀ MÃ NGUỒN SỬ DỤNG 20 6.1 Tài liệu tham khảo 20 6.2 Mã nguồn 20 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com GIỚI THIỆU BÀI TỐN Nhận dạng kí tự quang học (Optical Character Recognition – OCR) lĩnh vực nghiên cứu cách chuyển đổi ảnh số chụp hay quét từ tài liệu viết tay, đánh máy hay in thành dạng văn máy tính hiểu Trên giới, cơng nghệ OCR có tác động sâu sắc đến nhiều lĩnh vực sản xuất đời sống Việc chuyển văn in giấy thành dạng điện tử nhỏ gọn dễ tìm kiếm giúp hàng triệu trang sách báo đến với bạn đọc khắp nơi giới Bằng cách kết hợp với phần mềm text-to-speech lượng tài liệu đọc thành tiếng cho người khiếm thị Nhiều bưu điện áp dụng hệ thống phân loại thư tự động dựa máy đọc bì thư có cài phần mềm OCR Các ngân hàng đọc nội dung séc để chống rửa tiền, gian lận phát khủng bố OCR vào đời sống hàng ngày qua thiết bị thông tin cá nhân (PDA) giúp người sử dụng nhập liệu cách viết lên hình cảm ứng thay đem theo bàn phím cồng kềnh Ở Việt Nam, cơng nghệ OCR phát triển giai đoạn đầu với vài phần mềm nhận dạng kí tự in VnDOCR, VietOCR, ABBYY lĩnh vực nhận dạng chữ viết tay bỏ ngỏ Với số lượng lớn tài liệu viết tay cần xử lí phát triển công nghệ di động PDA hướng nghiên cứu đầy triển vọng Q trình OCR gồm nhiều bước phân tích cấu trúc văn bản, tách dạng, tách kí tự, kiểm tra ngữ nghĩa để tăng độ xác… bước sở mà chương trình OCR phải thực nhận dạng kí tự (đơn lẻ) Trong thời gian hạn hẹp đồ án môn học chúng em chọn thực bước LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MƠ TẢ BÀI TỐN Giả thiết bước xử lí trước kí tự phân lập, kết ảnh nhị phân kích thước 60x80 ảnh chứa kí tự tiếng Việt (có dấu) kí tự có độ nghiêng khơng q lớn kích thước hợp chuẩn với sai số chấp nhận được, cần chuyển kí tự thành dạng mã hố Unicode Chuẩn kích thước chữ cái: • ascender height: trùng với cạnh ảnh • cap height: trùng với cạnh ảnh • median: 1/3 chiều cao ảnh • baseline: 4/5 chiều cao ảnh • descender height: trùng với cạnh ảnh • chiều rộng: xấp xỉ chiều rộng ảnh Như có nghĩa chương trình khơng xử lí chữ có kích thước q nhỏ, q nghiêng lệch hay biến dạng mức Các chữ giả thiết đưa dạng chuẩn (với sai số chấp nhận được) bước xử lí trước LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHƯƠNG PHÁP GIẢI QUYẾT BÀI TỐN Chương trình “Nhận dạng ký tự viết tay tiếng Việt” sử dụng mơ hình mạng neuron thuật toán lan truyền ngược Sau chi tiết phương pháp 3.1 Cơ sở lý thuyết 3.1.1 Mạng neuron Mạng neuron nhân tạo (artificial neural network) mơ hình tốn học hay mơ hình tính tốn lấy cảm hứng dựa cấu trúc mạng thần kinh Một mạng neuron bao gồm nhóm neuron nối với nhau, sở thơng tin xử lý Mơ hình mạng neuron nhân tạo thường áp dụng với toán nhận dạng, đặc biệt với tốn có nhiều biểu diễn hình ảnh Cùng với giải thuật lan truyền ngược, mạng neuron thích hợp với tốn mang đặc điểm sau: Một thể biểu diễn nhiều cặp giá trị Hàm mục tiêu đầu có giá trị rời rạc, giá trị thực vector giá trị rời rạc giá trị thực Các ví dụ học có lỗi Thời gian huấn luyện dài chấp nhận Có thể yêu cầu tiến hóa nhanh hàm mục tiêu cần học Khả người hiểu hàm mục tiêu cần học không quan trọng 3.1.2 Perceptron Cơ mạng neuron nhân tạo dựa khái niệm perceptron a Biểu diễn perceptron: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Một perceptron nhận giá trị đầu vào vector thực, tính tốn tổ hợp tuyến tính đầu vào đưa đầu kết lớn ngưỡng đó, -1 ngược lại: 1 if w0 + w1 x1 + w2 x2 + + wn xn > o( x1, , xn ) =  −1 otherwise vỡi wi giá trị thực, hay trọng số, định đóng góp đầu vào xi vào đầu perceptron Giá trị w0 ngưỡng để tổ hợp trọng số đầu vào w1x1 + … + wnxn phải vượt qua để perceptron cho giá trị Có thể viết: r r r o( x ) = w ⋅ x Huấn luyện perceptron học bao gồm việc chọn giá trị trọng số w0, …, wn cho thích hợp b Nguyên tắc huấn luyện perceptron Một cách để học vector số chấp nhận bắt đầu với trọng số ngẫu nhiên, sau áp dụng ví dụ học cho perceptron, thay đổi giá trị trọng số phân loại nhầm ví dụ Q trình lặp lại qua nhiều lần đến perceptron phân loại ví dụ học xác Trọng số thay đổi sau bước theo nguyên tắc huấn luyện perceptron sau: wi ← wi + ∆wi với ∆wi = η (t − o) xi Ở t đầu mục tiêu cho ví dụ học tại, o đầu sinh perceptron η giá trị dương gọi tốc độ học (learning rate) Vai trị tốc độ học kiểm sốt mức độ trọng số thay đổi sau bước Nó thường gán giá trị nhỏ (VD 0.1) c Sai số huấn luyện (training error) Sai số thường tính bằng: E= (td − od ) ∑ d∈D LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com với D tập ví dụ học, td đầu mục tiêu ví dụ học d, od đầu tính tốn ví dụ học d 3.1.3 Mạng neuron nhiều lớp giải thuật lan truyền ngược a Hàm ngưỡng Một perceptron cho đầu hàm tuyến tính Hàm ngưỡng sử dụng để đưa giá trị đầu hàm không tuyến tính giá trị đầu vào Các hàm ngưỡng hay sử dụng là: Hàm sigmoid: r r r o( x ) = σ ( w ⋅ x ) σ ( y) = 1 + e− y Hàm tanh: r r r o( x ) = tanh( w ⋅ x ) tanh( y ) = e y − e− y e y + e− y b Mạng neuron feedforward Mạng neuron feedforward mạng neuron mà neuron lớp trước nối chiều với lớp sau LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Thông thường mạng neuron nhiều lớp chia thành loại lớp: Lớp input: Là giao diện mạng neuron với mơi trường ngồi, có nhiệm vụ lấy đầu vào Lớp hidden: Là lớp ẩn giữa, có nhiệm vụ tính tốn Lớp output: Là đầu toán Số neuron lớp input output thường xác định với toán, nhiên số lớp hidden số neuron lớp hidden cần xác định thực nghiệm c Giải thuật backpropagation BACKPROPAGATION(training_example, η, nin, nout, nhidden) r rr r Mỗi ví dụ học gặp có dạng ( x , t ) với x vector đầu vào t vector mục tiêu η tốc độ học nin, nout, nhidden số neuron lớp input, ouput hidden Đầu vào từ neuron i đến neuron j ký hiệu xji, trọng số từ neuron i đến neuron j ký hiệu wji Tạo mạng feedforward với nin input neuron, nout ouput neuron, nhidden hidden neuron Khởi tạo trọng số giá trị ngẫu nhiên nhỏ (VD -.05 05) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cho đến thỏa mãn điều kiện kết thúc: rr Với ( x , t ) thuộc ví dụ học: r Cho giá trị đầu vào x tính tốn giá trị đầu o neuron Lan truyền sai số ngược lại mạng: Với neuron k lớp output, tính sai số δk δ k = ok (1 − ok )(tk − ok ) Với neuron h lớp hidden, tính sai số δh δ k = oh (1 − oh ) ∑ wkhδ k k∈outputs Cập nhật lại trọng số wji w ji = w ji + ∆w ji với ∆w ji = ηδ j x ji d Momentum Một cách phổ biến để thay đổi nguyên tắc cập nhật trọng số thuật toán làm cho cập nhật trọng số vòng lặp thứ n phụ thuộc phần vào lần cập nhật thứ (n - 1) sau: ∆w ji (n) = ηδ j x ji + α∆w ji (n − 1) ≤ α < số gọi momentum 3.2 Giải tốn 3.2.1 Chương trình Input: Là ảnh nhị phân chữ cần nhận dạng Ouput: Ký tự nhận dạng mã unicode Chương trình gồm chức vẽ lấy ảnh từ bên để nhận dạng 3.2.2 Khởi tạo mạng neuron Lớp input: Gồm 60 đầu vào 60 đầu vào lấy cách tách biên ảnh thành chuỗi Fourier, lấy nhiều thành phần liên thông 10 giá trị chuỗi Fourier với thành phần Lớp output: Gồm 16 đầu Các đầu mã nhị phân unicode ký tự cần nhận dạng Lựa chọn hàm ngưỡng: Do đầu bit nên hàm sigmoid chọn để làm hàm ngưỡng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tập ví dụ học kiểm tra Các ví dụ học kiểm tra lấy từ mẫu viết tay thực tế sinh viên giảng đường Các mẫu sau scan xử lý thành ảnh nhị phân tách sẵn thành thành phần đầu đầu vào tương ứng để huấn luyện kiểm tra 3.2.3 Chuẩn bị liệu Để thu thập mẫu chữ viết tay chúng em nhờ bạn giảng đường điền chữ vào phiếu Số lượng phiếu phát khoảng 200 phiếu Các phiếu thu quét vào máy dùng chương trình tách thành kí tự 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình Phiếu thu thập mẫu chữ viết tay 11 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.2.4 Các kết thực nghiệm a Số lớp hidden 100 0.5 0.6 Best validate Best Training time error performance 0.3438487922 0.4495412844 0.1009166667 100 100 0.5 0.5 0.6 0.6 0.2557802063 0.2082746529 0.5871559633 0.4101333333 0.6559633028 1.0681 100 0.5 0.6 0.2025941125 0.6559633028 2.2036166667 100 0.5 0.6 0.6304081646 0.0825688073 1.5053166667 Layer size Learning rate Momentum Layer count Mạng neuron với lớp ẩn có xác suất nhận dạng tương đương với mạng có lớp ẩn error nhỏ chút Thời gian huấn luyện mạng tăng nhanh số lớp ẩn tăng từ đến Kết mạng neuron lớp ẩn thấp hẳn mạng lại số lớp ẩn lớn yêu cầu số lần lặp lớn để tinh chỉnh kết Trong điều kiện dừng thuật toán chọn cố định sau 100 lần lặp mà không giảm validate error b Số neuron lớp hidden 0.5 0.6 Best validate Best Training time error performance 50 0.4587816385 0.2752293578 0.3109166667 0.5 0.6 80 0.2118265925 0.6330275229 1.7182166667 0.5 0.6 100 0.2025941125 0.6559633028 2.2036166667 3 0.5 0.5 0.6 0.6 120 150 0.2166624127 0.4611618863 0.6467889908 2.7471166667 0.2752293578 1.4589666667 Layer count Learning rate Momentum Layer size 12 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khi số neuron lớp ẩn vượt qua 80 tăng số neuron khơng tác động nhiều đến kết Với mạng 150 neuron lớp ẩn, kết thấp hẳn không thoả mãn điều kiện dừng giống phần (a) c Tốc độ học 100 Learning Best validate Best Training time rate error performance 0.7 0.1 0.2061831533 0.623853211 3.9724166667 3 100 100 0.7 0.7 0.3 0.5 0.224606125 0.2097530639 0.619266055 2.6471166667 0.6376146789 2.1955333333 100 0.7 0.9 0.3250993898 0.4633027523 0.8474333333 Layer count Layer size Momentum 13 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com d Momentum Layer count Layer size Learning rate Best validate Best Training time error performance 0.2177829205 0.628440367 1.4793666667 Momentum 100 0.5 2 100 100 0.5 0.5 0.04 0.1 0.2305489015 0.2269169588 0.6100917431 1.0493333333 0.6146788991 1.9783166667 100 0.5 0.3 0.2076263935 0.6422018349 100 0.5 0.7 0.2097530639 0.6376146789 2.1955333333 100 0.5 0.9 0.5251302293 0.2339449541 1.71595 0.4365 Đồ thị cho thấy lựa chọn giá trị momentum cao khiến cho thuật tốn bỏ sót số giá trị tối ưu Giá trị momentum tối ưu 0,7 e Lựa chọn tham số • Số neuron lớp ẩn: 100 • Số lớp ẩn: • Tốc độ học: 0,5 • Momentum: 0,6 f Kết huấn luyện Thử nghiệm với liệu gồm số kí tự có dấu (Ă, Ấ, Á, À, Ả v.v…) cho kết tạm ổn • Tỉ lệ nhận dạng đúng: 49% • Tổng lỗi validate: ~0,33 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com • Số bước lặp: 2338 Tuy nhiên với liệu đầy đủ chữ tiếng việt khơng dấu có dấu (gần 200 kí tự), kết thu thấp: • Tỉ lệ nhận dạng đúng: ~30% • Tổng lỗi liệu kiểm thử: ~0,45 • Số bước lặp: 2608 0.7 0.6 0.5 0.4 Training error Validating error Performance 0.3 0.2 0.1 48 132 216 300 384 468 552 636 720 804 888 972 1056 1140 1224 1308 1392 1476 1560 1644 1728 1812 1896 1980 2064 2148 2232 2316 2400 2484 2568 90 174 258 342 426 510 594 678 762 846 930 1014 1098 1182 1266 1350 1434 1518 1602 1686 1770 1854 1938 2022 2106 2190 2274 2358 2442 2526 Hình 2Thử nghiệm với liệu đầy đủ 15 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 0,7 0,6 0,5 0,4 Training error Validating error Performance 0,3 0,2 0,1 35 65 95 155 215 275 335 395 455 515 575 635 695 755 815 875 935 995 1055 1115 1175 1235 1295 1355 1415 1475 1535 1595 1655 1715 1775 1835 1895 1955 2015 2075 2135 2195 2255 2315 125 185 245 305 365 425 485 545 605 665 725 785 845 905 965 1025 1085 1145 1205 1265 1325 1385 1445 1505 1565 1625 1685 1745 1805 1865 1925 1985 2045 2105 2165 2225 2285 Hình Thử nghiệm với liệu chứa vài kí tự có dấu 16 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com GIỚI THIỆU VỀ PHẦN MỀM sapphireOCR 4.1 Hướng dẫn cài đặt Phần mềm sapphireOCR chạy Java Runtime Environment (JRE) Để chạy chương trình trước hết máy phải có JRE, download cách cài đặt xem http://www.java.com/en/download/index.jsp sapphireOCR phần mềm không cần cài đặt Sau giải nén thư mục, cần chạy file shortcut sapphireOCR 4.2 Hướng dẫn sử dụng Sau làm theo hướng dẫn cài đặt, sau giao diện chương trình: Chương trình có khung vẽ cho người sử dụng dùng chuột trái viết chữ, chữ nhận diện ghi phần Character có mã Unicode (hexa) tương ứng Ngồi ra, người sử dụng load file ảnh bên qua menu File > Open chỉnh sửa thêm tùy ý Để lưu lại file ảnh vừa vẽ, chọn File > Save As 17 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Để tẩy, dùng chuột phải thao tác thay cho chuột trái Để xóa tồn khung vẽ, chọn Edit > Clear All 18 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CÁC VẤN ĐỀ PHÁT SINH VÀ ĐỀ XUẤT 5.1 Kết nhận dạng thấp Nguyên nhân khâu tiền xử lí thực chưa tốt Để giải vấn đề cần cải thiện thuật tốn tiền xử lí kết hợp với chương trình nhận dạng tài liệu đưa thêm số thuật tốn “đốn” dựa vào từ điển 5.2 Tốc độ huấn luyện chậm Khi thử nghiệm liệu đầy đủ, chương trình cần 112 phút để hoàn tất huấn luyện Giải pháp: song song hoá thuật toán huấn luyện 19 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIỆU VÀ MÃ NGUỒN SỬ DỤNG 6.1 Tài liệu tham khảo [1] Thầy Nguyễn Nhật Quang, Slide giảng mơn Trí tuệ nhân tạo, 2010 [2] Jeff Heaton – Introduction to Neural Networks with Java, 1st Ed [3] Tom M Mitchell, Machine learning, 1997 [4] Tinku Acharya, Image processing Principles and Applications 6.2 Mã nguồn CannyEdgeDetector – Tom Gibara (Public domain) Commons Lang – Apache Software Foundation (Apache License v2) Commons IO – Apache Software Foundation (Apache License v2) yamlbeans (New BSD License) 20 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... trình ? ?Nhận dạng ký tự viết tay tiếng Việt? ?? sử dụng mơ hình mạng neuron thuật toán lan truyền ngược Sau chi tiết phương pháp 3.1 Cơ sở lý thuyết 3.1.1 Mạng neuron Mạng neuron nhân tạo (artificial... Chương trình Input: Là ảnh nhị phân chữ cần nhận dạng Ouput: Ký tự nhận dạng mã unicode Chương trình gồm chức vẽ lấy ảnh từ bên để nhận dạng 3.2.2 Khởi tạo mạng neuron Lớp input: Gồm 60 đầu vào... cách viết lên hình cảm ứng thay đem theo bàn phím cồng kềnh Ở Việt Nam, công nghệ OCR phát triển giai đoạn đầu với vài phần mềm nhận dạng kí tự in VnDOCR, VietOCR, ABBYY lĩnh vực nhận dạng chữ viết

Ngày đăng: 01/11/2022, 15:10

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

  • Đang cập nhật ...

Tài liệu liên quan