Nhận dạng luôn là một phần quan trọng và thú vị trong các ứng dụng tin học hiện naỵ Nhận dạng chữ viết cũng như nhận dạng nói chung là dùng thuật toán để tìm ra các đặc điểm riêng của từng cá thể trong quần thể mà chúng ta phải nhận dạng. Đối với nhận dạng ký tự quang thì với mỗi dữ liệu nhập vào (có thể là ký tự viết bằng chuột hay chữ ký được scan), ta sẽ phải tìm ra được đầu ra tương ứng với nó.
Máy Scanner là một loại máy scan phẳng (Flatbed Scanner) dùng để scan những tài liệu đơn lẻ như văn bản, hình ảnh, thẻ, CMND…
Giới thiệu chung
Trong phần trên, ta đã tìm hiểu về mạng nơron Kohonen. Ta đã biết rằng, một mạng nơron Kohonen có thể được sử dụng để phân loại các mẫu vào trong các nhóm khác nhaụ Trong chương này, chúng ta sẽ xem xét kỹ hơn một ứng dụng riêng biệt của mạng nơron Kohonen. Đó là, mạng nơron Kohonen sẽ được áp dụng để nhận dạng ký tự quang, cụ thể là chữ viết tay bằng chuột hoặc chữ ký được scan.
Các chương trình nhận dạng quang cũng có khả năng đọc văn bản in. Văn bản này có thể là văn bản được quét từ tài liệu, hoặc văn bản viết tay đó là vẽ bằng thiết bị cầm tay,…
Trong chương này, chúng ta sẽ phát triển một ví dụ, đó là nó có thể được huấn luyện để nhận dạng chữ viết tay của con ngườị
Trong đó:
• Tiền xử lý: là quá trình chuẩn hóa dữ liệu đầu vàọ
• Trích chọn đặc trưng: là quá trình tìm ra các thông tin hữu ích và đặc trưng nhất cho mẫu đầu vào để sử dụng trong quá trình nhận dạng.
Hình 1:Mô hình chung trong nhận dạng chữ viết.
• Nhận dạng: là quá trình sử dụng một mô hình nhận dạng cụ thể và một thuật toán cụ thể để trả lời mẫu đầu vào là ký tự nàọ
• Hậu xử lý: là quá trình xử lý kết quả cho phù hợp với từng ứng dụng cụ thể.
Ị Huấn luyện mạng
Hình 2: Sơ đồ huấn luyện mạng
Trong đó:
• Data: là tập dữ liệu ban đầụ
• Training Set: là tập dữ liệu huấn luyện.
• Model: là mô hình tạo ra sau khi huấn luyện mạng với tập dữ liệu huấn luyện. • Evaluator: là phần đánh giá chất lượng mô hình, thường lấy tỉ lệ phân loại
đúng trên tập kiểm tra làm tiêu chí đánh giá.
Huấn luyện mạng với tập dữ liệu huấn luyện, kiểm tra mô hình thu được trên tập dữ liệu kiểm trạ Chừng nào sai số trên tập kiểm tra còn giảm xuống được thì ta tiếp tục huấn luyện lại trên tập dữ liệu huấn luyện. Khi nào sai số trên tập kiểm tra không giảm được nữa thì dừng.
IỊ Thử nghiệm sử dụng mạng nơron Kohonen để nhận dạng ký tự quang
Ứng dụng nhận dạng quang sẽ hiển thị một giao diện người-máy bằng đồ họa đơn giản, đó là sẽ cho phép ta huấn luyện và sử dụng mạng nơron.
Như đã nói, chương trình này không trực tiếp đọc để nhận dạng các ký tự mà nó phải được huấn luyện từ các ký tự được đưa vào bằng việc vẽ trực tiếp bằng chuột, hoặc đưa vào dưới dạng ảnh được scan, trước khi nó có thể nhận dạng dữ liệu đầu vàọ Các file huấn luyện ký tự được lưu trữ trong quyển từ điển mẫụ
Dữ liệu ta đưa vào phải được tải mẫu trước khi chúng được nhận dạng. Ký tự (ảnh) được tải mẫu bằng cách; đưa ký tự (ảnh) vào trong một lưới nhỏ 5x7 pixel.
Khi ta tải mẫu ký tự (ảnh), một khung hình chữ nhật được vẽ quanh ký tự (ảnh). Khung này gọi là khung cắt xén. Mục đích của khung cắt xén là cắt ra khoảng trắng không cần thiết cho ký tự (ảnh). Vì vậy, ta có thể vẽ ký tự (lấy ảnh) ở vị trí bất kỳ trong khu vực vẽ, thì chương trình vẫn nhận dạng được ký tự (ảnh).
Theo cách phân chia trên thì mạng có 5x7=35 nơron đầu vàọ Số nơron đầu ra được chọn cho mạng nơron Kohonen được sử dụng trong chương trình này tương ứng với số ký tự (ảnh) có trong tập mẫụ Nếu có 26 ký tự (ảnh) trong tập mẫu, thì sẽ có 26 nơron đầu rạ Thử nghiệm chương trình với tập mẫu nhỏ (khoảng 150 mẫu) thì độ chính xác khoảng 80%.
* Huấn luyện mạng nơron: Mỗi kết nối nơron được gán một trọng số. Để xác định tổng số các kết nối, ta cần phải nhân số nơron đầu vào và số các nơron đầu rạ Nếu một mạng nơron với 26 nơron đầu ra và 35 nơron đầu vào sẽ có kết quả là 910 trọng
số kết nốị Quá trình huấn luyện là quá trình điều chỉnh các trọng số để thu được ma trận trọng số mà ta mong muốn.
Do đầu vào của mảng là 35 nơron nên các nơron này là nơron “thắng", nó được lưu giữ với số nguyên "tốt nhất" đó chính là số 1. Hình minh họa phía dướị
Hình 3.4: Biểu diễn ký tự e theo ma trận 5x7 pixcel.
Hình 3.5: Biểu diễn ký tự e theo ma trận 5x7 bởi các giá trị
Hình3.6: Biểu diễn ký tự e ở vector đầu vào
Ta bắt đầu khởi tạo ma trận trọng số bằng cách lựa chọn ngẫu nhiên. Sau khi khởi tạo ma trận thì quá trình luyện sẽ bắt đầụ Ban đầu, ma trận trong số được đánh giá để xác định xem những gì hiện tại của nó là sai số (lỗi) cấp. Sai số này được xác định bởi việc huấn luyện đầu vào như thế nào (các ký tự mà ta tạo ra) để đưa ra các nơron đầu rạ Nếu sai số tính toán ở mức dưới 10% thì quá trình đã hoàn thành.
Sau đây là một số kết quả thu được trong quá trình chạy thử nghiệm chương trình.
Hình 7 Vẽ và gán ký tự
Hình 8 Kết quả mạng nơron Kohonen nhận dạng ký tự e và ký tự c
f. Chọn ảnh, lấy chữ ký (hình 9)
Hình 10 Kết quả mạng nơron Kohonen nhận dạng chữ ký
IIỊ Trường hợp ngoại lệ
Chương trình được trình bầy ở đây chỉ có khả năng trong nhận dạng các ký tự riêng biệt.
Khi chạy chương trình, ta thấy có vấn đề xảy rạ Ví dụ như: chương trình khó có thể xác định để phận biệt giữa chư “o” thường và chữ “O” hoa, hay chữ số 0 (số không). Vậy ta thấy, giữa các ký tự này thì không thể vận dụng bằng mạng nơron Kohonen.
IV. Kết luận
Trong chương này, chỉ ra một ứng dụng thực tế của mạng nơron Kohonen. Tiêu điểm của chương này là tạo ra một ứng dụng nhỏ đó là khả năng nhận dạng chữ viết taỵ
Các ký tự (chữ ký được scan) được người sử dụng đưa vào với độ phân giải caọ Để biểu diễn được tới mạng nơron, ta giảm bớt độ phân giải này bằng cách sử dụng kỹ thuật cắt xén và tải mẫu, ký tự (chữ ký) được chuyển sang một ảnh thứ hai với độ phân giải thấp hơn nhiềụ
Khi ảnh được đưa vào, nó phải được cắt xén để loại bỏ các khoảng trắng. Vì thế nó không phụ thuộc vào vị trí và cỡ viết của ký tự (ảnh).
Sự tải mẫu là quá trình đưa ảnh có độ phân giải cao được chuyển đổi về ảnh có độ phân giải thấp hơn. Mỗi pixel trong ký tự (chữ ký) tải mẫu được ấn định cho một mầu trung bình của vùng tương ứng trong ảnh có độ phân giải caọ
Kết quả ảnh tải mẫu sau đó được đưa tới tập huấn luyện hoặc tới quá trình nhớ của mạng nơron Kohonen. Mạng nơron Kohonen được sử dụng trong ví dụ này có số nơron đầu vào bằng số pixel của ký tự (hình ảnh) được tải mẫu, và số nơron đầu ra bằng số ký tự mà ta tạo trong tập mẫu