Đồ án Tìm hiểu bài toán nhận dạng kí tự viết tay và phát triển ứng dụng

- Chọn ứng dụng cần thử nghiệm: nhận dạng kí tự, chữ số, nhận dạng phiếu đăng kí môn học. - Nạp trọng số tương ứng cho ứng dụng cần thử nghiệm. - Nạp mẫu và huấn luyện mạng nơron.

pdf64 trang | Chia sẻ: lylyngoc | Lượt xem: 3638 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Tìm hiểu bài toán nhận dạng kí tự viết tay và phát triển ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i quyết các vấn đề thực tiễn hoạt động sản xuất, nghiên cứu khoa học kỹ thuật hiện đại đặt ra, cùng với các kỹ thuật tin học mới phát triển (đặc biệt là máy tính điện tử ), nhiều chuyên gia thuộc các lĩnh vực hoạt động khác nhau cũng đã đề xuất và sử dụng các mô hình, thuật tốn nhận dạng trên cơ sở thực nghiệm, theo cách tiếp cận heuristic. Song song với việc xây dựng cơ sở lý thuyết nhận dạng, các hoạt động nghiên cứu ứng dụng lý thuyết nhận dạng cũng tiến hành mạnh mẽ và rộng khắp trên nhiều lĩnh vực khác nhau ở nhiều nước trên thế giới. II. Một số khái niệm về nhận dạng: 1.Nhận dạng: Một biểu diễn là giá đỡ (cái mang) thông tin, thường biểu diễn dưới dạng sau: Mỗi xi biểu diễn kết quả của một phép đo. Tập hợp các biểu diễn xác định X được gọi là không gian biểu diễn. Ví dụ không gian vectơ. Giải thích một biểu diễn nghĩa là cho một kết quả chẳng hạn một cái tên. Giả sử: ta có tập hợp các tên là: Không gian giải thích là một tập thoả các luật, thao tác nào đấy. Một định danh là một ánh xạ của không gian biểu diễn vào không gian giải thích. Mục đích nhận dạng là thực hiện ánh xạ này và tìm thuật tốn để thực hiện trên tồn X. Một thuật tốn như vậy gọi là tốn tử nhận dạng. 2. Tập mẫu nhận dạng: Dữ liệu cho bài tốn nhận dạng thường được biểu diễn qua tập mẫu học T với T=(xq, ) là tập các cặp (dữ liệu - tên). 3. Độ đồng dạng và dị dạng: Là hai chỉ số thường dùng để xây dựng trên quan hệ gần thứ tự trên các cặp đặc biệt khoảng cách giữa hai đối tượng là một chỉ số dị dạng thoả mãn 3 tiên đề: - (x, y) 0 , (x, x)=0 - (x, y)= (y, x) - (x, z) (x, y)+ (y, z) 4. Khoảng cách đối tượng:  nxxxxX 321 ,,  p ,, 21       nxxx X ,,: : 21 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 20 Các hàm đặc trưng quan sát có thể dẫn đến một quan hệ gần thứ tự giữa 1 đối tượng X và các khái niệm Ai, nghĩa là với mọi i, j có thể thiết lập một quan hệ : (X, Ai)  (X, Aj) Quan hệ này thường được thiết lập nhờ một khoảng cách đối tượng, ký hiệu: D(X, A). Nếu muốn phân lớp hoặc định danh X có thể dùng thông tin này. Giả sử Ci là lớp phân hoạch tương ứng với khái niệm đại diện Ai ; X được gán vào Ci nếu D(X, Ai) là nhỏ nhất. III. Một số thuật tốn phân lớp: Có nhiều giải pháp phân lớp, trong thời gian qua em đã tìm hiểu và thử nghiệm một số giải pháp sau: 1. Xếp lớp khoảng cách cực tiểu: Giả thiết là mỗi lớp mẫu được biểu diễn bằng một vectơ đơn (hoặc trung bình). Trong đó Nj là số vectơ mẫu từ lớp j, M là số lớp cần phân biệt và tổng được xác định từ các vectơ này, cách xác định lớp của một vectơ mẫu x chưa biết là chỉ định nó cho lớp đơn điệu gần nhất. Dùng khoảng cách Euclid để xác định độ gần sẽ giảm được tính tốn. Trong đó  a =(aTa )1/2 là dạng Euclid. Sau đó ta chỉ định x cho lớp j nếu Dj(x) là khoảng cách ngắn nhất. Đó là khoảng cách ngắn nhất dùng trong biểu diễn. Ta dễ dàng nhìn thấy nó tương đương với việc đánh giá bằng hàm số Và chỉ định x cho lớp j, nếu dj(x) cho giá trị số lớn nhất. 2. Thuật tốn hàm thế: Phương pháp nhận dạng theo hàm thế được ứng dụng nhiều trong thực tiễn. Việc sử dụng hàm thế được được xuất phát từ nghĩa thế điện trong trường điện từ: Trong không gian có điện tích q tại A thì xung quanh nó có điện trường theo mọi phía. Tại điểm M của không gian ta có thế gây ra bởi q là: a : hằng số q: độ lớn điện tích q r: khoảng cách từ M tới q Các dạng hàm thế thường dùng trong thuật tốn nhận dạng: Mjx N m jxj j ,2,1 1      MjmxxD jj ,2,1;    Mjmmmxxd jTjjTj ,2,12 1    2. r qaM  Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 21 Ở đây , C1, C2 là các hằng số cho trước. (S, S’) là khoảng cách S và S’ (=0, 1, 2..) Cách tính thế đối với mỗi lớp: mj: số mẫu của Kj St: mẫu thuộc Kj Ta có luật quyết định: Chú ý : Việc tính thế đối với mỗi lớp, có thể bổ sung trọng số mẫu (St) : Nhận xét: Nếu chọn  là hàm khoảng cách Euclid thì giải thuật hàm thế này gần giống với cách xếp lớp theo khoảng cách cực tiểu. 3. Phương pháp LDA (Linear Discriminant Analysis): Phương pháp LDA cho trường hợp phân biệt 2 lớp, LDA sẽ tìm một phương chiếu mà phân biệt tốt nhất các mẫu thuộc hai lớp khác nhau trong tập mẫu. Giả sử ta có một tập gồm n mẫu học X bao gồm các vectơ cột d chiều: Trong đó n1 mẫu thuộc về lớp C1 và nằm trong tập con X1, n2 mẫu thuộc về lớp C2 và nằm trong tập con X2. Giả sử ta có một vectơ d chiều w, tích vô hướng y=wTx biểu diễn hình chiếu của vectơ x lên phương w. Ta sẽ tìm một phương chiếu w nhằm tối ưu hố độ phân biệt giữa các mẫu thuộc 2 lớp C1 và C2. Điều này tương đương với việc giảm số chiều của vectơ đặc trưng xuống còn 1 chiều. Ta gọi mi, i=1, 2 là trị trung bình của các mẫu tương ứng với 2 lớp C1 và C2.        '21 ' ,' ,. 1, , ' SSCC SS eSS ss               j K t S t j j SSm KS ,1,     K S, max arg   jKS, neáujKS      t KS t j j SSSm KS jt  .,1,      nixxxx Tdiiii  1,, 21     iXxi i xn m 1 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 22 || ~ 2 ~ 1 mm  Và tương ứng là trung bình của các mẫu được chiếu lên phương w: Trong đó y là hình chiếu của x lên w. Yi là tập các hình chiếu của các x  Xi lên w. Ta có thể xem là một độ đo cho tính phân biệt giữa hai tập Y1 và Y2 . Tuy nhiên để có được sự phân biệt tốt giữa hai tập khi chiếu lên phương w, ta cần có độ sai khác giữa hai trị trung bình này khá lớn hơn so với độ lệch chuẩn nội tại của mỗi tập ( có thể xem như độ rộng của đám mây các mẫu). Thay vì sử dụng phương sai của mỗi tập ta sẽ sử dụng một độ đo khác, gọi là độ rải (scatter) cho các hình chiếu của các mẫu thuộc lớp Ci như sau: Phương pháp LDA sẽ tìm giá trị w để cực đại hố hàm tiêu chuẩn sau đây: Để thấy J(w) là một hàm theo w ta định nghĩa các ma trận SB và Sw như sau: SW được gọi là ma trận rải nội lớp (within-class scatter matrix) SB được gọi là ma trận rải liên hợp (between-class scatter matrix) Ta có: Nên Tương tự ta cũng có: im ~ i T Xx T iYyi i mwxw n y n m ii    11~ 2~~          iYy ii mys 2~ 2 2~ 1 2 2 ~ 1 ~ ||)( ss mmwJ        2 1 ))(( i Xx T iiW i mxmxS T B mmmmS ))(( 2121  2 is =    iXx i TT mwxw 2)( =    iXx T ii T wmxmxw ))(( 2 2 1 2s s  = w TSWw Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 23 Do đó: Để xác định w sao cho J(w) cực đại ta cho đạo hàm riêng J(w) theo w bằng 0 kết quả ta sẽ được: Với  là trị riêng, giải bài tốn tìm trị riêng ta sẽ có: Đây là kết quả tìm được của phương pháp LDA đối với trường hợp chỉ có 2 lớp. Sau khi đã tìm được w, mỗi vectơ x cần nhận dạng sẽ được xử lý như sau: lấy x trừ đi trung bình của mẫu học rồi chiếu lên phương w ta được một giá trị vô hướng, tính khoảng cách từ giá trị vô hướng này trên im ~ của mỗi lớp này chia cho độ lệch chuẩn 2~ i ta được một độ đo khoảng cách từ x đến các cụm ứng với mỗi lớp. i=1..2 x sẽ được gán vào lớp ứng với cụm gần nhất. Để phân biệt được n lớp ta xây dựng n bộ phân loại 2 lớp theo phương pháp nêu trên. Mỗi bộ phân loại sẽ phân biệt một lớp với n-1 lớp còn lại. Nếu một vectơ đầu vào được xếp vào cả hai lớp thì ta sẽ sử dụng khoảng cách di nêu trên để quyết định nó thuộc vào lớp nào. Nếu một vectơ không được xếp vào lớp nào thì coi như không nhận dạng được. Phần tiếp theo xin trình bày cách phân lớp dựa trên mô hình mạng nơron lan truyền ngược, em dành một chương riêng để giới thiệu về mô hình này. 2 1 2( )m m  = w TSBw. J(w) = wSw wSw W T B T . SB w = SW w )( 21 1 mmSw W   1 ( ) i i x m w md       Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 24 CHƯƠNG II PHÂN LỚP DỰA TRÊN MẠNG NƠRON LAN TRUYỀN NGƯỢC Sơ lược về mạng nơron MLP (Multi-Layer Perception ) với thuật tốn lan truyền ngược: I. Giới thiệu: Xét về mặt cấu trúc, MLP có cấu trúc phân lớp. Các cung được nối từ một nút ở lớp này đến các nút ở lớp kế tiếp. Hai nút trong cùng một lớp thì không kết nối với nhau. Mỗi nút trong một lớp nhận giá trị từ các nút ở lớp liền trước, tổng hợp lại theo trọng số của cung kết nối và chuyển giá trị kết xuất của nó cho các nút ở lớp liền sau. Lớp đầu tiên nhận giá trị từ bên ngồi vào và được gọi là lớp nhập (input). Các nút trong lớp nhập được gọi là nút nhập. Lớp cuối cùng sẽ xuất ra kết quả của mạng và được gọi là lớp xuất (output). Các nút trong lớp xuất được gọi là nút xuất. Các lớp còn lại được gọi là lớp ẩn và các nút tương ứng được gọi là nút ẩn. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 25 Hình minh hoạ mô hình mạng nơron 4 lớp:1 lớp nhập, 2lớp ẩn và một lớp xuất . Quá trình nhận dạng là quá trình ánh xạ một mẫu x từ không gian các đặc trưng vào không gian các lớp. Cũng như vậy, MLP thực chất là một hàm ánh xạ một vectơ đầu vào x thành một vectơ đầu ra z. Hàm này có đặc tính sau: 1. Nó là hàm phi tuyến (nonlinear) . 2. Nó có tính ổn định (stable). Nghĩa là nếu một giá trị x0 được ánh xạ thành một giá trị z0 thì một giá trị x1 “gần” với x0 sẽ được ánh xạ thành một giá trị y1 gần với y0. Hay ta có thể nói, sai số nhỏ ánh xạ thành sai số nhỏ. Mạng nơron cũng có thể ánh xạ một giá trị x2 xa x0 thành một giá trị y2 gần với y0 (ánh xạ nhiều một). Thực tế mạng nơron là một bộ máy nội suy và ngoại suy phi tuyến. Một mạng chỉ với một lớp ẩn là đã có thể xấp xỉ bất cứ một hàm phi tuyến nào thông qua một số mẫu trong tập mẫu. Để đạt được điều này, ta cần luyện mạng bằng cách thay đổi các trọng số để ánh xạ từ các giá trị trong tập mẫu đến các giá trị đích mong muốn. Quá trình luyện mạng này cần có tập các vectơ mẫu đầu vào và đầu ra mong muốn tương ứng. Do đó, quá trình học này là quá trình học có giám sát. II. Hoạt động: Mạng nơron MLP chỉ có thể ở một trong hai trạng thái: trạng thái ánh xạ và trạng thái học. Ở trạng thái ánh xạ, thông tin sẽ được lan truyền tiến từ các nút nhập đến các nút xuất và một mẫu x sẽ được ánh xạ thành một kết quả z. Ở trạng thái học, các trọng số của kết nối sẽ được điều chỉnh theo một thuật tốn học để mạng có thể xấp xỉ được một hàm mong muốn nào đó. Thuật tốn lan truyền ngược là một thuật tốn hiệu quả cho quá trình học của MLP. Tiếp theo đây em xin trình bày chi tiết hơn về hai trạng thái này của mạng. 1. Trạng thái ánh xạ: Như đã nói, ở trạng thái ánh xạ, mỗi vectơ đầu vào x sẽ được ánh xạ thành một vectơ kết quả z. Quá trình này được thực hiện như sau: Đầu tiên vectơ mẫu x sẽ được đưa vào lớp nhập. Mỗi nơron trong lớp nhập sẽ mang giá trị của một thành phần của x. Các nút nhập sẽ không tính tốn gì cả mà gửi trực tiếp giá trị của nó đến các nơron ở lớp tiếp theo. Tại mỗi nơron của các lớp tiếp theo, một thao tác giống nhau sẽ được thực hiện. Đầu tiên nó sẽ tính tổng trọng hố của tất cả các giá trị được gửi tới. Sau đó một hàm truyền sẽ được áp dụng trên tổng trọng hố này để cho giá trị xuất của nút này. Hàm truyền có tác dụng nén giá trị của tổng trọng hố vào một miền giới hạn nào đó. Giá trị này được Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 26 truyền cho các nơron ở lớp kế tiếp. Cứ thế thông tin được lan truyền cho đến lớp xuất của mạng. Để đơn giản ta khảo sát mạng gồm 3 lớp: 1 lớp vào, 1 lớp ẩn và 1 lớp xuất. Thực tế cũng chỉ cần mạng 3 lớp là đủ để xấp xỉ các loại hàm. Đối với nút ẩn ta có: Tổng trọng gửi tới nút j là: Kết xuất của mạng có J nút ẩn là: Trong đó I là số nút nhập xi, aij là các trọng từ input i đến nút ẩn j và a0j là trọng ngưỡng của nút ẩn j, g(x) là hàm truyền. Đối với mạng K nút xuất ta có: Tổng trọng gửi tới nút xuất k là: Kết xuất của mạng: Trong đó J là số nút ẩn với các kết xuất yj, bjk là các trọng trên các cung liên kết từ nút ẩn j đến nút xuất thứ k, còn b0k là trọng ngưỡng của nút xuất thứ k, g(vk) là hàm truyền theo k. Ta có sơ đồ thể hiện các thao tác được thực hiện tại mỗi nơron. Một số hàm truyền thường được sử dụng là: - Hàm sigmoid (hay hàm logistic) được xác định bởi:    I i iijjj xaau 1 0 Jjugy jj ,...1)(     J j jjkkk ybbv 1 0 Kkvgz kk ,..1)(  axe xf   1 1)( Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 27 Hình vẽ đồ thị hàm logistic (a=1). Miền giá trị của hàm là(0, 1). - Hàm tanh (tan- hyperbol) Đồ thị hàm tanh. Miền giá trị của hàm là (-1, 1). Hàm này có miền giá trị tương ứng là (0, 1) và (-1, 1). Việc sử dụng hàm logistic (a=1) hay hàm tanh thực ra là tương đương với nhau vì chúng liên hệ tuyến tính với nhau. Việc sử dụng các hàm truyền khác nhau có liên hệ với các khoảng giá trị khác nhau của trọng số. (Thực tế cho thấy, hàm tanh thường cho tốc độ hội tụ nhanh hơn trong quá trình học ). Các hàm truyền có thể được áp dụng vào các nút xuất hoặc không tuỳ vào mục đích ánh xạ của mạng. Nếu ta cần có một số giới hạn nhất định đối với đầu ra, ta sẽ áp dụng một hàm truyền thích hợp cho các nút xuất. Khi mạng nơron được ứng dụng cho nhận dạng thì quá trình nhận dạng chính là quá trình ánh xạ của mạng nơron. 2. Trạng thái học: Xét mạng MLP có một lớp ẩn với thuật tốn lan truyền ngược. -6 -4 -2 2 4 6 0.2 0.4 0.6 0.8 1 xx xx ee eexf     )( -4 -2 2 4 -1 -0.5 0.5 1 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 28 Thuật tốn lan truyền ngược là thuật tốn hữu hiệu cho quá trình học của MLP. Thuật tốn này sẽ cập nhật trọng số dựa trên một hàm lỗi E giữa kết xuất của mạng với giá trị đích. Mục đích của việc học có giám sát bằng MLP là cực tiểu hố hàm lỗi này. Kỹ thuật cơ bản để cực tiểu hố hàm lỗi là phương pháp giảm gradient. Mặc dù phương pháp này có thể dẫn đến một cực tiểu cục bộ, nhưng nó được áp dụng rộng rãi vì tính đơn giản của nó. Thực tế cũng cho thấy trong hầu hết trường hợp phương pháp giảm gradient đều cho kết quả chấp nhận được. Quá trình học của mạng MLP theo thuật tốn lan truyền ngược sẽ lặp đi lặp lại các thao tác sau: - Lan truyền tiến : tính kết xuất y của mạng với một mẫu x. - Lan truyền ngược : tính sai số giữa kết xuất y và giá trị đích t và lan truyền ngược sai số này lại để cập nhật trọng số cho mạng. Quá trình học sẽ dừng khi mạng đã đạt được một độ lỗi nhỏ nhất định. a. Phương pháp giảm gradient: Phương pháp giảm gradient gồm các bước chính sau: - Chọn ngẫu nhiên một điểm x0 trong không gian trọng số. - Tính độ dốc của hàm lỗi tại x0. - Di chuyển điểm x0 theo hướng dốc nhất của hàm lỗi. Quá trình tính độ dốc và di chuyển điểm x0 được lặp đi lặp lại cho đến khi x0 tiến đến giá trị làm cho hàm lỗi cực tiểu (có thể là hàm lỗi cực tiểu địa phương). b. Cập nhật trọng số theo phương pháp giảm gradient: Phương pháp cập nhật trong số theo hướng giảm gradient sẽ dựa trên đạo hàm riêng phần của hàm lỗi E đối với trọng số đang xét theo công thức sau: trong đó: t là chỉ số của lần cập nhật trọng số hiện tại.  được gọi là hệ số học (learning rate). w là một trọng số bất kì trong mạng: aij hoặc bij Công thức trên có thể diễn dịch như sau: cập nhật lại trọng số theo hướng ngược hướng của gradient với độ dài vectơ dịch chuyển phụ thuộc vào  và độ lớn của vectơ đạo hàm. Nếu trọng số được cập nhật theo hướng ngược với gradient một độ dịch chuyển vừa phải, thì giá trị của hàm lỗi sẽ giảm đi so với trước khi cập nhật. Giá trị của  có ảnh hưởng lớn đến tốc độ hội tụ của thuật tốn. Nếu  lớn thì độ dịch chuyển lớn, kết xuất của mạng có thể dao động rất thất thường (vì có thể nhảy qua điểm cực tiểu) và thuật tốn khó hội tụ. Nếu  nhỏ, ta phải cần rất nhiều bước lặp để đi đến được vị trí cực tiểu của hàm lỗi. c. Quy tắc tính đạo hàm lỗi: )()()1( t w Etwtw ij ijij     Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 29 Sai số trung bình bình phương thường được sử dụng để đo lường sự trùng khớp giữa ánh xạ ( ký hiệu NN) cần xây dựng với hàm đích cho trước (qua tập mẫu). Cho tập mẫu: =(Xk, Zk) =(xk1, …,xkM;zk1,…,zkN ); xki, zkj  R ; i= 1,…,M; j=1,…,N; k=1,…,K, gọi Tk= NN(Xk)=(tk1,…,tkN) thì sai số trung bình bình phương sẽ là: Đạo hàm hàm lỗi có thể được tính dựa vào quy tắc chuỗi như sau: Ta xét từng trường hợp cụ thể: Trọng số nút xuất: Ta có chuỗi tính đạo hàm hàm lỗi theo trọng số giữa lớp ẩn và lớp xuất: Một nút xuất không ảnh hưởng gì đến sai số của các nút xuất khác trong lớp xuất. Để đơn giản trong công thức ta bỏ qua chỉ số của các nút xuất, nếu nút xuất đang xét có giá trị thực là z và giá trị đúng của nút đó là t, thì sai số bình phương là: Từ đó ta có: Mặt khác độ dốc hàm logistic được tính như sau: Tính số hạng thứ 3, v/b trong công thức E/b Ta có: Xét với b0 ta có: v/b0 =1 Với trọng số bj, ta có: v/bj =yj Đặt: KN tz E N n K k knkn . )( 2 1 1 1 2     w w w w w E w E n           2 1 1 b v v z z E b E          2)( 2 1 tzE  tz z E    )1()( ' zz v zvg        J j jj ybbv 1 0 v z z Ep      Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 30 Ta có: p=(z-t)z(1-z) Như vậy: Xét trọng số nút ẩn: Ta có đạo hàm của hàm lỗi đối với các trọng số của một nút ẩn: Các nút ẩn tự chúng không tạo lỗi nhưng chúng góp phần tác động vào lỗi của các nút xuất. Những tác động này cũng xác định theo luật chuỗi: (trong công thức này chỉ số j đã được bỏ đi vì chỉ có một nút ẩn tham gia) Công thức trên cho thấy ảnh hưởng của nút ẩn vào hàm E là một tổng theo tất cả các nút xuất (k=1…K) của tích ba số hạng. Hai số hạng đầu trong tích đó có ý nghĩa tương tự như phần trên. Ở trên ta đặt tích này là p. Lượng p này lan truyền ngược từ nút xuất đến nút ẩn. Nếu ta cho p một chỉ số cho biết nó thuộc về nút xuất nào, ta có thể viết phương trình trên lại như sau: Xét số hạng vk/ y ta có: Như vậy: Ta tiếp tục xét y/u trong chuỗi tính E/a Đặt :         Jjpy jp b E jj 0 a u u y y E a E          y v v z z E y E k k k K k k           1        K k k k y v p y E 1 k k b y v         K k kk bpy E 1 )1( yy u y    u y y Eq      Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 31 Ta có: Và cuối cùng u/a, trong chuỗi tính E/a chính là thay đổi của u đối với thay đổi của một trọng số. Nó phụ thuộc vào loại trọng số. Đối với trọng ngưỡng a0, ta có: Với các trọïng trên cung nối trực tiếp ai, i>0 ta có: Tóm lại: 3. Một vài kỹ thuật luyện mạng: a. Học theo lô: Như đã nói trong phần trước, trọng số của mạng được cập nhật khi tất cả các mẫu học đều đã được đưa vào mạng (học theo bước học). Đây là một kỹ thuật học theo lô. Trong cách học thông thường của thuật tốn lan truyền ngược, mỗi khi ta đưa vào mạng một mẫu học đạo hàm hàm lỗi được tính và trọng số được cập nhật ngay, sau đó mẫu học tiếp theo được đưa vào mạng và quá trình trên được lặp lại cho từng mẫu học. Mỗi bước trong quá trình trên gọi là một bước lặp. Khi tất cả các mẫu trong tập học đã được đưa vào mạng, ta hồn tất bước học. Cách cập nhật này có thể dẫn đến trường hợp ở một bước lặp p trọng số được cập nhật sao cho giảm E(p), nhưng ở một bước lặp q khác, trọng số lại được cập nhật sao cho tăng E(q). Kết quả là một bước học sẽ chứa đựng sự tự mâu thuẫn trong nó, cụ thể sẽ có một bước lặp làm ngược lại với những kết quả đã đạt được ở những bước trước một cách cục bộ tại một trọng số. Điều này làm cho quá trình học nhiễu loạn và kém hiệu quả. Cách học theo bước giúp ta tránh được hiện tượng này. Trong phương pháp này trọng số sẽ được cập nhật sau mỗi bước học. Nghĩa là tất cả các mẫu học sẽ được đưa vào mạng và các đạo hàm riêng phần ứng với mỗi trọng số và mỗi mẫu học sẽ được tính tốn. Sau đó đạo hàm riêng phần ứng với mỗi trọng số sẽ được tính bằng tổng tất cả các đạo hàm riêng phần ứng với trọng số đó trên tất cả các mẫu học. )1( 1 yybpq K k kk          1 0    a u i i x a u            0 0 iqx iq a E ii Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 32 Phương pháp học theo bước học đã được ứng dụng rộng rãi trong các hệ thống xử lý lớn nhờ khả năng áp dụng việc xử lý song song cho việc tính tốn các đạo hàm riêng phần. b. Ngăn chặn quá khớp: Quá khớp: Là trường hợp mạng thuộc hết dữ liệu học ( kể cả nhiễu), lúc đó nó sẽ trả lời chính xác những gì nó được học còn những gì nó không được học thì không quan tâm. Nghĩa là mạng không có khả năng tổng quát hố, mà tổng quát lại là điều ta cần khi sử dụng mạng. Cách khắc phục: Có nhiều cách khắc phục tình trạng này song cách đơn giản nhất là: Chia mẫu thành tập luyện và tập kiểm tra. Luyện mạng với tập mẫu luyện, nhưng định kỳ ngừng luyện để đánh giá sai số bằng tập mẫu kiểm tra. Mỗi lần ngừng lại để đánh giá sai số trên mẫu kiểm tra, cần lưu lại các trọng số. Khi sai số trên mẫu kiểm tra đi lên, thì quá khớp đã bắt đầu. Do vậy, ta ngừng luyện, trở về trọng sinh lỗi thấp nhất trên mẫu kiểm tra. PHẦN III KẾT QUẢ THỬ NGHIỆM Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 33 CHƯƠNG I MINH HỌA ỨNG DỤNG GIẢI THUẬT TÁCH THÀNH PHẦN LIÊN THÔNG TRONG BÀI TỐN NHẬN DẠNG ẢNH VĂN BẢN Trước khi xây dựng chương trình nhận dạng kí tự viết tay, em xin giới thiệu một ứng dụng có liên quan đến nhận dạng kí tự, đó là ứng dụng nhận dạng ảnh văn bản. Với cơ sở lí thuyết vừa nêu ta hồn tồn có thể xây dựng được ứng dụng này. I. Nhận dạng một văn bản: Giả thiết coi đầu vào chỉ là một ảnh văn bản đơn giản: chỉ có một cột và gồm các kí tự ( tuy nhiên không nhất thiết chỉ chứa kí tự vì có thể hồn tồn loại bỏ các liên thông là hình ảnh nếu căn cứ vào kích thước của chúng). Ta có sơ đồ nhận dạng như sau: Tách liên thông Khử liên thông đặc biệt Xác định hàng liên thông Sửa lỗi xác định hàng Tách liên thông dính Nhận dạng các liên thông Aûnh văn bản đơn Tập các liên thông ( còn liên thông đặc biệt & liên thông dính) Tập liên thông đã được xử lý Các liên thông đã được sắp xếp theo hàng Trật tự các liên thông trên hàng được xếp lại Vị trí các liên thông đã được xếp đúng Văn bản có thể hiệu chỉnh Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 34 II. Minh hoạ chương trình: Chương trình sau đây minh hoạ cho nhận dạng văn bản chứa kí tự font Vni- Times, size 12.Việc nhận dạng từng kí tự được thực hiện như sau: Kí tự được chuẩn hố vào lưới ô vuông kích thước 56x48 điểm ảnh. Cách xác định đặc trưng của font chữ in như sau: Chia khung kí tự thành nhiều ô vuông nhỏ kích thước 8x8. Trên mỗi ô vuông nhỏ ta xác định 4 đặc trưng gồm: - Tổng số pixel có hướng 0 hoặc 4 - Tổng số pixel có hướng 1 hoặc 5 - Tổng số pixel có hướng 2 hoặc 6 - Tổng số pixel có hướng 3 hoặc 7 Hướng của pixel được xác định so với pixel ở trung tâm của ô vuông kích thước 8x8. Như vậy với một ảnh kí tự ta sẽ có được 7x6x4=169 đặc trưng, X=(x1, x2, …xn) n=169. Giải thuật nhận dạng trong chương trình dựa trên ý tưởng: tìm một mẫu trong số các mẫu lưu trữ có đặc trưng gần giống nhất với mẫu nhận dạng. Hàm “gần giống” dựa vào hàm tính khoảng cách ơclit giữa hai vectơ. Chương trình minh hoạ cho nhận dạng văn bản tiếng Việt không chứa kí tự đặc biệt, kết quả cho thấy việc tách chữ và xác định hàng tương đối chính xác, độ chính xác nhận dạng khoảng 93-95%. Thực hiện như sau: Nạp ảnh văn bản cần nhận dạng vào, sau đó nhấn nút nhận dạng để xem kết quả. Ta có hình minh hoạ kết quả nhận dạng: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 35 CHƯƠNG II CHƯƠNG TRÌNH NHẬN DẠNG KÍ TỰ VIẾT TAY I. Giới thiệu chương trình: Chương trình nhận dạng các kí tự viết tay không trực tuyến, ảnh kí tự nhận dạng được thu nhận qua máy quét hoặc viết trực tiếp vào vùng nhận dạng. Aûnh có thể chứa nhiều kí tự, được viết trên nhiều hàng khác nhau. Tuỳ vào mục đích ứng dụng cần phát triển mà ta xây dựng tập mẫu cho mỗi ứng dụng. Bước đầu thử nghiệm em xây dựng bộ nhận dạng cho 2 lớp kí tự gồm: kí tự là chữ cái không có dấu và kí tự là chữ số. Lớp kí tự chữ cái: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, d, e, f, g, h, i, j, k, l, m, n, q, r, s, t, v, x, y. Lớp kí tự số : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Do một số kí tự khi viết hoa hay viết thường đều giống nhau, chỉ khác nhau về mặt kích thước, do đó đối với những kí tự này ta có thể xét thêm kích thước của chữ, nếu kích thước lớn hơn một ngưỡng nhất định thì coi là chữ hoa, ngược lại là chữ thường. Về mặt kí tự số ta sẽ không phân biệt được số “0” và kí tự chữ “O”, do đó chương trình tách riêng nhận dạng kí tự chữ và nhận dạng số. Chương trình được cài đặt bằng công cụ lập trình Borland Delphi 5.0 chạy trên môi trường Windows. II. Thực hiện chương trình: Ta có quy trình xử lí như sau: Aûnh đầu vào  lọc ảnh  nhị phân hố  tách các liên thông chữ  chỉnh nghiêng  chuẩn hố kích thước  tìm biên rút đặc trưng trên đường biên  qua bộ phân lớp  quyết định lớp của ảnh nhận dạng  xuất kết quả theo định dạng trật tự kí tự trên hàng. Với ảnh đầu vào là ảnh xám, định dạng file là *.bmp, được scan với độ phân giải 300 dpi, tỉ lệ 100%. Ta có quy trình nhận dạng được chia làm các giai đoạn như sau : 1. Tiền xử lí: - Lọc ảnh: Lọc ảnh nhằm giảm bớt nhiễu bằng giải thuật lọc trung bình. - Nhị phân ảnh: Dựa vào giải thuật Otsu đã trình bày tiến hành phân ngưỡng, tạo ra ảnh nhị phân chứa giá trị 0 và 1: 0 tượng trưng cho điểm thuộc nền, 1 tượng trưng cho điểm thuộc đối tượng. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 36 - Tách liên thông: Dùng giải thuật tách liên thông để tách các kí tự ra khỏi ảnh. - Chỉnh nghiêng và chuẩn kích thước: Tiến hành chỉnh nghiêng và chuẩn hố kí tự về kích thước chuẩn là 80x56. 2. Trích chọn đặc trưng: Có thể thấy rằng cấu trúc một kí tự có thể mô tả một cách chính xác qua các đường biên của miền liên thông. Do đó cấu trúc hố đường biên của một miền liên thông được xác định như sau: Bước 1: Phát hiện biên của kí tự Bước 2: Mã hố đường biên kí tự bằng mã xích. Bước 3: Tiến hành chia kí tự ra nhiều ô nhỏ và xác định đặc trưng của kí tự theo mô tả lí thuyết đã trình bày ở phần II, chương III. Kết quả ta có véctơ đặc trưng của kí tự là: X=(x1, x2,…xn) với n=216 3. Bộ phân lớp: Qua thử nghiệm các bộ phân lớp đã trình bày cho thấy: phân lớp kí tự bằng mạng nơron cho kết quả vượt trội hơn. Mạng nơron được thiết kế để nhận dạng là mạng 2 lớp:1 lớp vào và một lớp ra, với giải thuật lan truyền ngược và kỹ thuật giảm gradient, chọn 08.0 . Véctơ X=(x1, x2, ... xn) trong quá trình huấn luyện và nhận dạng được chuẩn hố sao cho 1X , nghĩa là các thành phần của véctơ X được tính lại như sau: Mạng thứ nhất được thử nghiệm trên 2366 mẫu học đối với lớp kí tự chữ. Mạng thứ hai thử nghiệm trên 1000 mẫu học đối với kí tự số. Mạng thứ nhất luyện sau 30.000 học kì. Mạng thứ hai luyện sau 10.000 học kì. Kết quả: Sau thời gian học mạng thứ nhất và mạng thứ hai phân biệt gần hồn tồn các mẫu đã học, đặc biệt khả năng tổng quát của mạng rất cao. Bảng kết quả thử nghiệm trên một số người: Người thứ 1: Mẫu số Mẫu chữ: Mẫu số 0 1 2 3 4 5 6 7 8 9 Số mẫu thử 176 102 113 116 96 107 140 161 143 121 Số mẫu sai 0 0 0 0 0 0 0 0 3 1 Tỷ lệ đúng 100% 100% 100% 100% 100% 100% 100% 100% 97,9% 99,1% Kí tự Số mẫu Số mẫu lỗi Độ chính xác A 109 2 98.17% B 116 3 97.41% C 132 2 98.48% D 99 0 100% E 114 0 100% ni X xx ii ..1 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 37 Kí tự Số mẫu Số mẫu lỗi Độ chính xác a 148 0 100% b 133 6 95.49% d 122 0 100% e 100 17 83% f 105 0 100% g 113 4 96.46% h 127 0 100% i 159 13 91.82 j 161 1 99.38 k 116 0 100% l 100 19 81% m 136 0 100% n 158 20 87.34% q 142 0 100% r 139 6 97.79% Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 38 Người thứ 2: Mẫu số: Mẫu chữ: Kí tự Số mẫu Số mẫu lỗi Độ chính xác A 124 6 95.16% B 120 6 95% C 104 2 98.08% D 113 0 100% E 116 2 98.28% F 120 1 99.17% G 101 0 100% H 109 0 100% I 110 10 90.91% J 127 4 96.85% K 103 7 93.2% L 102 2 98.04% M 118 0 100% Mẫu số 0 1 2 3 4 5 6 7 8 9 Số mẫu thử 105 100 92 97 100 97 104 100 101 100 Số mẫu sai 0 0 0 0 0 0 1 1 4 0 Tỷ lệ đúng 100% 100% 100% 100% 100% 100% 99% 99% 96% 100% Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 39 Kí tự Số mẫu Số mẫu lỗi Độ chính xác a 102 0 100% b 113 13 88.5% d 98 0 100% e 113 19 83.19% f 108 6 94.44% g 110 10 90.91% h 100 9 91% i 115 29 74.78% j 120 3 97.5% k 102 14 86.27 l 134 34 74.63% m 102 0 100% n 103 18 82.52% q 100 1 99% r 100 4 94% s 107 11 90.6% t 130 13 90% v 100 15 85% x 100 14 86% y 103 0 100% Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 40 III. Minh hoạ một số kết quả: Nhận dạng kí tự số : Aûnh viết bằng mouse : Kết quả: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 41 Aûnh kí tự viết trên giấy : Kết quả: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 42 Nhận dạng kí tự chữ: Aûnh viết bằng mouse: Kết quả: Aûnh nhận dạng: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 43 Kết quả: Aûnh kí tự viết trên giấy: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 44 Kết quả: Aûnh kí tự: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 45 Kết quả: CHƯƠNG III ỨNG DỤNG XỬ LÍ PHIẾU ĐĂNG KÍ MÔN HỌC I. Giới thiệu: Phiếu đăng kí môn học dùng ở phòng đào tạo Trường Đại Học Thuỷ Sản Nha Trang, là một biểu mẫu nhằm mục đích thu nhận thông tin đăng kí môn học của sinh viên, bao gồm các môn học được sinh viên đăng kí học và các môn sinh viên hủy bỏ. Với số lượng sinh viên ngày càng tăng, chương trình xử lí phiếu đăng kí môn học này nhằm giúp việc đăng kí môn học được nhanh chóng, tiết kiệm thời gian và công sức nhập dữ liệu cho nhân viên phòng đào tạo. Mẫu phiếu có dạng như sau: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 46 Yêu cầu xử lí: Từ phiếu đã điền đầy đủ thông tin, chương trình sẽ lấy ra các thông tin sau: - Mã số sinh viên (MSSV). - Mã các môn học huỷ bỏ, mã lớp sinh viên sẽ huỷ bỏ môn này. - Mã các môn học đăng kí học lại, mã lớp sinh viên sẽ học lại các môn này. - Mã các môn học đăng kí học vượt, mã lớp sinh viên sẽ học vượt các môn này. Như vậy từ các thông tin trên ta sẽ xác định được yêu cầu đăng kí môn học của mỗi sinh viên. Ta có sơ đồ quy trình thực hiện của hệ thống đăng kí môn học tự động như sau: Phiếu đăng kí môn học Thiết bị thu nhận ảnh Xử lí, nhận dạng ảnh thu được CSDL Lưu trữ CSDL Kiểm tra Chỉnh sửa dữ liệu file ảnh Kết quả Dữ liệu đã kiểm tra Kết quả Y/c kiểm tra K/q kiểm tra Tìm kiếm K/q tìm kiếm Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 47 Hình vẽ: Sơ đồ mô hình của hệ xử lí phiếu đăng kí môn học tự động Trên đây là mô hình tổng thể cho hệ thống vừa nêu, tuy nhiên để áp dụng vào thực tế cần phải có một hệ thống quản lí sinh viên và các môn học. Việc kiểm tra tính đúng đắn của dữ liệu và lưu trữ dữ liệu sẽ do hệ thống này đảm nhiệm, mục tiêu của thử nghiệm này là thực hiện công đoạn: xử lí và nhận dạng ảnh thu được để cho ra kết quả có thể chỉnh sửa. II. Thực hiện chương trình: Chương trình thử nghiệm xử lí thông tin phiếu đăng kí môn học có nhiệm vụ lọc ra các thông tin ghi trong phiếu nêu trên. Qua khảo sát cho thấy, kí tự ghi trong phiếu gồm: Kí tự số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Kí tự chữ ( yêu cầu là chữ viết hoa ) gồm một số kí tự: B, C, D ,H , K, L , P, S, T, N,... Ví dụ: Mã số sinh viên: 8D15014 Mã số môn học: 10221 (tốn cao cấp A3) Mã lớp MH: TH40, NT41... Ta có chương trình thực hiện như sau: 1. Định dạng và lấy thông tin từ biểu mẫu: Aûnh phiếu đăng kí môn học bước đầu thử nghiệm được lưu dạng file *.bmp, scan với độ phân giải 300 dpi và kích thước 100%. Aûnh quét vào cho phép độ nghiêng vừa phải từ 10 – 50. Ta có quy trình định dạng và lấy thông tin từ biểu mẫu được thực hiện như sau: Bước 1: Tìm kiếm dấu hiệu định vị biểu mẫu. Bước 2: Loại bỏ các vùng thông tin in trước bằng cách so khớp với mặt nạ mẫu. Bước 3: Lấy thông tin vùng dữ liệu. a. Tìm kiếm dấu hiệu định vị biểu mẫu: Dấu hiệu định vị biểu mẫu là một điểm chuẩn trong biểu mẫu, dựa vào điểm chuẩn này ta sẽ xác định toạ độ của các vùng dữ liệu còn lại. Aûnh phiếu đăng kí môn học Kết quả nhận dạng Aûnh từng kí tự Mẫu vectơ đặc trưng Định dạng và lấy thông tin từ biểu mẫu Xác định véctơ đặc trưng của kí tự Nhận dạng véctơ đặc trưng Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 48 Toạ độ điểm chuẩn được sử dụng trong chương trình là giao điểm giữa lề trái biểu mẫu và đường thẳng ngang qua tiêu đề của biểu mẫu. Việc xác định lề trái và đường thẳng ngang qua tiêu đề của biểu mẫu dựa vào sự biến thiên năng lượng mức xám của biểu mẫu: Nếu ta kiểm tra biểu mẫu từ trái sang phải thì lề trái của biểu mẫu chính là vùng có mức năng lượng thay đổi cao đầu tiên. Tương tự nếu xét theo hướng ngang từ đầu biểu mẫu đến cuối biểu mẫu thì tiêu đề ngang của biểu mẫu là vùng có mức năng lượng thay đổi cao đầu tiên. Ta có hình minh hoạ: Hình minh hoạ xác định điểm chuẩn trong biểu mẫu. Điểm chuẩn Lề trái Lề tiêu đề Vùng dữ liệu Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 49 b. Loại bỏ thông tin in trước bằng cách so khớp với mặt nạ mẫu: Căn cứ vào điểm chuẩn ta định vị toạ độ từng ô của của vùng dữ liệu gồm: các ô chứa mã số sinh viên, các ô chứa thông tin đăng kí môn học. Tọa độ các ô này đã được xác định trước so với điểm chuẩn vừa nêu, ta xem các ô đó như một mặt nạ mẫu. c. Lấy thông tin vùng dữ liệu: Aûnh kí tự trong mỗi ô vuông nhỏ lần lượt được cắt ra, chuẩn bị xử lý để xác định véctơ đặc trưng. Chú ý cần phải loại bỏ nhiễu gây ra bởi các đường khung xung quanh kí tự trước khi đưa vào bộ xử lý lấy đặc trưng của kí tự. Cách giải quyết: ta có thế căn cứ vào mật độ phân bố của các điểm đen trên đường chạy lân cận của 4 cạnh khung kí tự, tỉ số phân bố số điểm đen và điểm trắng trên mỗi đường chạy này đểphân biệt đâu là nhiễu do khung xung quanh kí tự gây ra. Ví dụ: Hình minh hoạ kí tự bị nhiễu do cắt phạm đường khung. Sau khi loại bỏ hiện tượng nhiễu này, ảnh kí tự được đưa vào bộ xác định véctơ đặc trưng để xử lý và rút ra vectơ đặc trưng cho kí tự cần nhận dạng. 2. Xác định vectơ đặc trưng của kí tự: Trươc tiên, ảnh kí tự được lọc nhiễu, chỉnh nghiêng, và chuẩn hố về kích thước chuẩn 80x56. Sau đó, tiến hành xác định véctơ đặc trưng kí tự như trong chương trình thử nghiệm nhận dạng chữ viết tay vừa nêu, dựa trên cơ sở lý thuyết đã trình bày ở phần II, chương III. Như vậy với mỗi kí tự ta sẽ xác định được một véctơ đặc trưng mô tả đường biên có dạng sau: X=(x1, x2, ...xn), n=216. Trong đó n là số chiều của véctơ X, hay còn là số đặc trưng của kí tự. 3. Nhận dạng véctơ đặc trưng: Chương trình sử dụng mạng nơron trong phần ứng dụng nhận dạng chữ viết tay để tiến hành phân lớp các kí tự. Nhiễu do cắt phạm khung ô vuông của biểu mẫu Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 50 Do đặc điểm dữ liệu cần phân lớp chỉ gồm các kí tự số, và một số kí tự viết hoa, nên số lớp kí tự được thu nhỏ lại, điều này nâng cao khả năng nhận biết và độ chính xác của mạng. Cụ thể mạng huấn luyện cho 20 lớp kí tự gồm : Kí tự số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Kí tự chữ hoa: B, C, D, H, K, L, N, P, S, T. Mạng được huấn luyện sau 50.000 học kì với tập mẫu gồm 2051 véctơ đặc trưng của kí tự, hệ số 08.0 . Kết quả khả năng phân lớp của mạng là tương đối tốt. Nhận xét: Có những vị trí mà ta biết trước chắc chắn dữ liệu là kí tự chữ hay kí tự số, do đó có thể sử dụng ràng buộc này để tăng độ chính xác cho việc phân lớp của mạng. III. Minh hoạ một số kết quả: Aûnh phiếu đăng kí môn học được điền đầy đủ thông tin. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 51 Kết quả xử lí: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 52 Hình minh hoạ kết quả lấy thông tin phiếu đăng kí môn học. Aûnh phiếu đăng kí môn học được ghi trực tiếp trong chương trình. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 53 Kết quả xử lí: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 54 Hình minh hoạ kết quả xử lí phiếu đăng kí môn học CHƯƠNG IV ĐÁNH GIÁ KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI I. Nhận xét chung: Nhìn chung đồ án đã hồn thành về mặt cơ bản nội dung đã đề ra. Đó là sự kết hợp giữa xử lí ảnh và lý thuyết nhận dạng nhằm giải quyết một phần bài tốn nhận dạng chữ viết tay và phát triển một số ứng dụng dựa trên kết quả đã đạt được. Mặc dù hết sức cố gắng, song sai sót là điều không tránh khỏi. Để đánh giá chính xác hiệu quả của chương trình cần nhiều thời gian và những kiểm nghiệm thực tế. Theo ý kiến chủ quan em, trong quá trình thử nghiệm và cài đặt chương trình có thể rút ra những nhận xét sau: Ưu điểm: Khả năng nhận dạng các kí tự chữ số và kí tự chữ cái viết hoa là tương đối tốt, với trạng thái viết thoải mái, bình thường và kiểu chữ viết không phức tạp. Điều này cho thấy hướng đi của lý thuyết đề ra là hợp lý, làm nền tảng cơ sở cho sự phát triển ứng dụng sau này của hệ thống. Việc tách các kí tự ra khỏi văn bản tương đối chính xác. Ta chỉ mất nhiều thời gian cho quá trình huấn luyện mạng, song quá trình nhận dạng thì đơn giản và nhanh chóng. Với cơ sở lý thuyết đã nêu và những thử nghiệm cho thấy dựa vào đó ta có thể xây dựng được nhiều ứng dụng khác nhau. Nhược điểm: Chương trình đang ở mức thử nghiệm, chưa áp dụng vào thực tế. Hệ thống cài đặt còn hạn chế về giao diện, việc quản lí bộ nhớ chưa được chú trọng, cụ thể cần phải thay đổi định dạng file ảnh lưu trữ vì kích thước định dạng file *.bmp là quá lớn. II. Hướng phát triển: Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 55 Để nâng cao hiệu quả, độ chính xác nhận dạng ta có thể phối hợp nhiều mô hình phân lớp với nhau. Bên cạnh đặc trưng mô tả đường biên của kí tự ta cần quan tâm đến một số đặc trưng hình học khác như : - Kích thước theo phương x, y và tỷ lệ của chúng. - Chu vi, diện tích của kí tự. - Số các lỗ của kí tự. - Số euler = (Số thành phần liên thông ) – (Số lỗ của kí tự). Một vấn đề khác chưa được đề cập đến đó là nhận dạng các kí tự viết tay có dấu. Các vấn đề này vẫn đang được tìm hiểu và thử nghiệm song song với việc phát triển những ứng dụng dựa trên kết quả đạt được nhằm hồn thiện chương trình. III. Lời cám ơn: Từ đồ án này em đã bước đầu nắm được một số vấn đề xung quanh bài tốn xử lý, nhận dạng ảnh chữ viết tay và phát triển ứng dụng. Qua đây, em xin gửi lời cám ơn chân thành đến thầy Nguyễn Đình Thuân (giáo viên hướng dẫn), đã tận tình chỉ bảo, tạo điều kiện thuận lợi, động viên giúp em hồn thành nội dung đồ án này, cám ơn các bạn sinh viên đã đóng góp nhiều ý kiến quý báu giúp chương trình hồn thiện hơn. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 56 PHẦN IV PHỤ LỤC GIỚI THIỆU GIAO DIỆN CHƯƠNG TRÌNH A. CHƯƠNG TRÌNH THỬ NGHIỆM NHẬN DẠNG KÍ TỰ VIẾT TAY VÀ PHIẾU ĐĂNG KÍ MÔN HỌC. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 57 Hình 1. Form chính của chương trình. Chức năng: - Chọn ứng dụng cần thử nghiệm: nhận dạng kí tự, chữ số, nhận dạng phiếu đăng kí môn học. - Nạp trọng số tương ứng cho ứng dụng cần thử nghiệm. - Nạp mẫu và huấn luyện mạng nơron. Hình 2. Form nhận dạng: chức năng nạp ảnh, hoặc viết trực tiếp vào vùng trắng để nhận dạng cho ra kết quả. Hình 3. Form lấy đặc trưng của mẫu học. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 58 Chức năng lấy véctơ đặc trưng hướng đường biên của mẫu học. Hình 3. Form minh hoạ tiến trình luyện mạng của mạng nơron. B. CHƯƠNG TRÌNH THỬ NGHIỆM NHẬN DẠNG VĂN BẢN TIẾNG VIỆT CHỮ IN. Hình 1. Form chính của chương trình. Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 59 Chức năng: Nạp dữ liệu, nhận dạng ảnh văn bản bằng phương pháp đối sánh. Hình 2. Form nhận dạng ảnh văn bản, chức năng nhận dạng ảnh văn bản và cho ra kết quả. TÀI LIỆU THAM KHẢO [1]. “ Nhập môn xử lý ảnh số”, Lương Mạnh Bá – Nguyễn Thanh Thủy, Nhà xuất bản Khoa Học Kỹ Thuật, 1999. [2]. “ Nhận dạng chữ viết tay rời tiếng Việt”, luận án thạc sĩ, Phạm Đại Xuân, Đại học Khoa Học Tự Nhiên TPHCM. [3]. “ Một số phương pháp mới để giải quyết các bài tốn trong nhận dạng tiếng Việt”, luận văn thạc sĩ khoa học, Nguyễn Trí Tuấn, Đại học Khoa Học Tự Nhiên TPHCM. [4]. “ Xử lý ảnh và video số”, Nguyễn Kim Sách, Nhà xuất bản Khoa Học Kỹ Thuật. [5]. “ Mạng nơron phương pháp và ứng dụng”, Nguyễn Đình Thúc, Nhà xuất bản Giáo Dục, 2000 . [6]. “ Nhận dạng cảm xúc mặt người”, luận văn tốt nghiệp đại học, Ngô Trung Thành, Đại học Khoa Học Tự Nhiên TPHCM. [7]. “ Ứng dụng mạng nơron nhân tạo trong hệ thống xử lý biểu mẫu tự động”, Hồng Kiếm (Khoa công nghệ thông tin Đại học Khoa Học Tự Nhiên Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 60 TPHCM), Nguyễn Hồng Sơn - Đào Minh Sơn ( Trung tâm máy tính, Cục xuất nhập cảnh, Bộ công an). [8]. “ Giáo trình lý thuyết và bài tập Borland Delphi”, Lê Phương Lan -- Hồng Đức Hải, Nhà xuất bản Giáo Dục, 2000. [9]. “ Practical computer vision using C “, J.R.Parker. [10]. Ebook: “Pattern_Recognition_with_Neural_Networks_in_C++”. [11]. “Extraction of Data from Preprinted Forms” A.Ltaylor, R.Fritzson, J.A.Pastor, Machine Vision Applications, vol.5, pp.211-222,1992. [12]. “ Open CV”, Intel open source computer vision library. MỤC LỤC Trang Lời nói đầu ............................................................................................. 1 Nhận xét của giáo viên ........................................................................... 2 Phần I: Tổng quan và cơ sở lý thuyết tiền xử lý ảnh kí tự........................ 3 Chương I: Tổng quan ................................................................... 4 I. Giới thiệu bài tốn ....................................................... 4 II. Cấu trúc nội dung của đồ án ..................................... 5 Chương II: Cơ sở lý thuyết tiền xử lý ảnh kí tự ............................ 6 I. Lọc mịn ảnh .............................................................. 6 II. Nhị phân ảnh ............................................................ 6 III. Đánh nhãn thành phần liên thông ............................ 8 1. Tách liên thông bằng kỹ thuật đệ quy ................ 8 2. Giải thuật cải tiến .............................................. 9 IV. Chỉnh nghiêng ...................................................... 11 V. Chuẩn kích thước ................................................... 12 VI. Lấp khoảng trống ảnh bằng phép đóng morphology ................................................................ 12 1. Một số định nghĩa ........................................... 12 2. Phép giãn ........................................................ 13 3. Phép co ........................................................... 13 4. Phép đóng ....................................................... 13 VII. Lấy đường biên và làm trơn đường biên .............. 14 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 61 1. Phát hiện biên ................................................. 14 2. Dò biên và mã hố đường biên ......................... 14 3. Xác định hướng của điểm biên ....................... 15 4. Làm trơn đường biên ...................................... 15 Chương III: Rút đặc trưng ......................................................... 18 I. Giới thiệu đặc trưng hướng ...................................... 18 II. Chia ô..................................................................... 18 III. Đặc trưng hướng của đường biên .......................... 19 Phần II: Các mô hình nhận dạng ........................................................... 20 Chương I: Giới thiệu các mô hình phân lớp, nhận dạng ............. 21 I. Khái quát tình hình nghiên cứu, ứng dụng lý thuyết nhận dạng ............................................................... 21 II. Một số khái niệm về nhận dạng .............................. 22 1. Nhận dạng ...................................................... 22 2. Tập mẫu nhận dạng ......................................... 22 3. Độ đồng dạng và dị dạng ................................ 22 4. Khoảng cách đối tượng ................................... 22 III. Một số thuật tốn phân lớp ..................................... 23 1. Xếp lớp khoảng cách cực tiểu ......................... 23 2. Thuật tốn hàm thế ........................................... 23 3. Phương pháp LDA (Linear Discriminant Analysis) ........................... 24 Chương II: Phân lớp dựa trên mạng nơron lan truyền ngược ..... 28 I. Giới thiệu ................................................................ 28 II. Hoạt động............................................................... 29 1. Trạng thái ánh xạ ............................................ 29 2. Trạng thái học ................................................. 32 a. Phương pháp giảm gradient ....................... 32 b. Cập nhật trọng số theo phương pháp giảm gradient ............................................. 32 c. Quy tắc tính đạo hàm lỗi ............................ 33 3. Một vài kỹ thuật luyện mạng........................... 36 a. Học theo lô ................................................ 36 b. Ngăn chặn quá khớp .................................. 36 Phần III: Kết quả thử nghiệm ............................................................... 37 Chương I: Minh hoạ ứng dụng giải thuật tách thành phần liên thông trong bài tốn nhận dạng ảnh văn bản ............... 38 I. Nhận dạng một văn bản ........................................... 38 II. Minh hoạ chương trình ........................................... 39 Chương II: Chương trình nhận dạng kí tự viết tay ..................... 40 I. Giới thiệu chương trình ........................................... 40 II. Thực hiện chương trình .......................................... 40 1. Tiền xử lý ....................................................... 41 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 62 2. Trích chọn đặc trưng ....................................... 41 3. Bộ phân lớp .................................................... 41 III. Minh hoạ một số kết quả ....................................... 46 Chương III: Ứng dụng xử lý phiếu đăng kí môn học ................. 52 I. Giới thiệu ................................................................ 52 II. Thực hiện chương trình .......................................... 54 1. Định dạng và lấy thông tin từ biểu mẫu........... 54 a. Tìm dấu hiệu định vị biểu mẫu .................. 54 b. Loại bỏ thông tin in trước bằng cách so khớp với mặt nạ mẫu ................................. 56 c. Lấy thông tin vùng dữ liệu ......................... 56 2. Xác định véctơ đặc trưng của ký tự ................. 56 3. Nhận dạng véc tơ đặc trưng ............................ 57 III. Minh hoạ một số kết quả ....................................... 58 Chương IV: Đánh giá kết luận và hướng phát triển của đề tài 62 I. Nhận xét chung........................................................ 62 II. Hướng phát triển .................................................... 62 III. Lời cám ơn ............................................................ 63 Phần IV: Phụ lục giới thiệu giao diện chương trình ............................... 64 A. Chương trình thử nghiệm nhận dạng kí tự viết tay và phiếu đăng kí môn học ...................................................... 65 B. Chương trình thử nghiệm nhận dạng văn bản tiếng Việt chữ in.................................... ................................................. 67 Tài liệu tham khảo:.......... .................................................................... 68 Mục lục:.................................... ............................................................. 69 Nhận dạng kí tự viết tay và phát triển ứng dụng SVTH : NguyễnĐình Cường Trang 63

Các file đính kèm theo tài liệu này:

  • pdfBáo cáo thực tập- Tìm hiểu bài toán nhận dạng kí tự viết tay và phát triển ứng dụng.pdf