Giới thiệu chung “ Làm thế nào máy tính có thể nhận dạng chữ viết tay của một người ?” Dùng mạng nơ tron Bài toán thuộc dạng phân lớp các mẫu : đưa các mẫu đầu vào các lớp cho trước..
Trang 1LOGO
TRƯỜNG ĐH CÔNG NGHỆ THÔNG TIN
Trang 3Giới thiệu chung
“ Làm thế nào máy tính có thể nhận dạng chữ viết tay của một người ?”
Dùng mạng nơ tron
Bài toán thuộc dạng phân lớp các mẫu : đưa các
mẫu đầu vào các lớp cho trước
Trang 4Giới thiệu chung
Kết quả chấp nhận được
Ta có thể bổ sung các lớp mà không làm ảnh hưởng đến cấu trúc mạng
Thường được dùng cho các bài toán phân lớp
Vấn đề
Trang 5Giới thiệu chung
Dựa trên nguồn dữ liệu đầu vào, chúng ta chia bài toán thành hai dạng cơ bản :
Nhận dạng trực tiếp (Online)
Nhận dạng gián tiếp (Offline)
dựa trên nguồn dữ liệu đầu vào, chúng ta chia bài toán thành hai dạng cơ bản : nhận dạng trực tiếp (Online) và nhận dạng gián tiếp (Offline)
Trang 6Giới thiệu chung
Chọn ra những đặc điểm cơ bản, đặc trưng riêng của đối tượng để nhận dạng.Tùy bài toán mà ta có cách chọn đặc trưng riêng
Các đặc điểm đặc trưng trên sẽ là vector đầu vào cho mạng nơ tron
Có ảnh hưởng đến tốc độ cũng như kết quả nhận dạng của mạng nơ tron
dựa trên nguồn dữ liệu đầu vào, chúng ta chia bài toán thành hai dạng cơ bản : nhận dạng trực tiếp (Online) và nhận dạng gián tiếp (Offline)
Trang 9NHẬN DẠNG CHỮ VIẾT OFFLINE
Gồm có 3 lớp: một lớp đầu vào , một lớp ẩn và một lớp xuất ra
Lớp đầu vào được cấu thành từ 150 tế bào nơ tron tiếp nhận dữ liệu điểm ảnh nhị phân từ một điểm ảnh biểu tượng ma trận 10x15
Các lớp ẩn được cấu tạo từ 250 tế bào nơ tron có số lượng được quyết
định trên cơ sở kết quả tối ưu trên một cơ sở thử nghiệm và báo lỗi
Lớp xuất ra gồm có 16 tế bào nơ tron tương ứng với 16-bit của mã Unicode
Mô hình mạng nơ tron xây dựng cho bài toán Hàm truyền :
Trong Demo này, mạng được sử dụng là mạng MLP
Trang 11NHẬN DẠNG CHỮ VIẾT OFFLINE
Trước khi đưa dữ liệu cho mạng huấn luyện hoặc nhận dạng, ta cần phải
xử lý những dữ liệu đầu vào này Giai đoạn này được gọi là giai đoạn tiền
xử lý dữ liệu đầu vào Gồm các bước : Thu nhận ảnh ký tự : ảnh văn bản, tài liệu có thể được thu nhận
bằng máy quét scanner, webcam, hoặc các thiết bị thu nhận ảnh
thông dụng khác
Phân tích ảnh để lấy ký tự : gồm hai việc : tách dòng ký tự khỏi
ảnh và tách từ riêng biệt ra khỏi dòng
Ánh xạ ký tự thành thành ma trận Ma trận này sẽ là dữ liệu đầu
vào cho mạng Kích thước của ma trận tương ứng với số nơ tron
đầu vào
Trang 12NHẬN DẠNG CHỮ VIẾT OFFLINE
Tách dòng ký tự
Tách từng ký tự ra khỏi dòng
Ánh xạ ký tự thành ma trận
Trang 13b Nếu không có điểm ảnh màu đen được tìm thấy, tăng y và reset lại
x để quét dòng tiếp theo chiều ngang
2 Bắt đầu từ điễm đầu của dòng đầu tiên và x đầu tiên(0,line_top), ta quét theo chiều rộng của hình
a Nếu không tìm được điểm ảnh nào thì y-1 là đáy là dòng, tăng số dòng lên 1.
b Nếu một điểm ảnh màu đen được phát hiện tăng và thiết lập lại y
x để quét dòng tiếp theo
3 Bắt đầu từ dưới đáy của dòng cuối cùng được tìm thấy, ta lặp lại các bước trên để phát hiện dòng tiếp theo, cho đến hết hình thì dừng
A- Tách dòng ký tự
Trang 14NHẬN DẠNG CHỮ VIẾT OFFLINE
B- Tách từng ký tự
Trang 15NHẬN DẠNG CHỮ VIẾT OFFLINE
1 Bắt đầu từ y dòng đầu tiên, quét hình với với y không đổi
a) Nếu tìm thấy điểm ảnh, y là đỉnh của chữ đầu
b) Nếu không tiếp tục quét
2 Quét hết dòng với x không đổi
a) Nếu tìm thấy điềm ảnh thì x là phía trái của chữ.Nếu không, tiếp tục quét.b) Hết vẫn không thấy thì tăng x and reset y để quét dòng tiếp theo theo chiều dọc
3 Bắt đầu từ bên trái của ký tự được tìm thấy và hàng đầu của dòng hiện tại pixel(character_left, line_top) - ta quét với chiều rộng của hình ảnh trên cùng với x
-a) Nếu không có các ký tự màu đen được tìm thấy thì x-1 là bên phải của
ký tự
b) Ngược lại, ta tăng x và reset y
4 Bắt đầu ở dưới cùng của dòng hiện tại và trái của kí tự, pixel(character_left, line_bottom), quét lên phía bên phải của hình ảnh trên cùng với y
a) Nếu tìm thấy 1 điểm ảnh y là đáy của từ
b) Nếu không tăng y và reset x
Trang 16NHẬN DẠNG CHỮ VIẾT OFFLINE
C- Ánh xạ ký tự thành ma trận
Đối với chiều rộng (khởi tạo 20 điểm)
Chuyển Điểm đầu (0,y) và cuối (width,y) thành điểm đầu (0,y) và cuối (20,y) của ma trận
Điểm giửa (width/2,y) -> điễm thứ 10th của ma trận
Đối với chiều cao ( khởi tạo 30 điểm)
Điểm đầu ( x,0) và cuối (x,height) thành điểm đầu(x,0) và cuối (x,30) của
ma trận
Điểm giửa (x,height/2) -> điểm 15th
Có thể chia nhỏ hơn cho phù hợp
Giảm ma trận thành 10x15 cũng như 2 phía dài và rộng của kí tự
Trang 17NHẬN DẠNG CHỮ VIẾT OFFLINE
Một số vấn đề cần được giải quyết khi huấn luyện là:
Sự lộn xộn không gian dữ liệu đầu vào
Độ phức tạp cửa các mô hình mà chúng ta đang huấn luyện: do việc chồng chéo lên nhau của các đặc trưng nhận dạng và do kích thước dữ liệu
quá cao
Các thông số :
Learning_rate (ảnh hưởng đến tốc độ học của mạng)
Độ chênh lệch Xích- ma: dùng trong hàm truyền
Ngưỡng
Số chu kỳ : số vòng lặp
Thuật toán huấn luyện được sử dụng ở đây là Thuật toán lan truyền ngược
Trang 18NHẬN DẠNG CHỮ VIẾT OFFLINE
DEMO
Trang 19№ of wrong characters % Error
№ of wrong characters % Error
Số ký tự học=90, Learning_rate =150, độ chênh lệch xích-ma=0.014
Trang 20NHẬN DẠNG CHỮ VIẾT OFFLINE
B- Kết quả thử nghiệm với số ký tự khác nhau
Số chu kỳ =100, Learning_rate =150, độ chênh lệch xích-ma=0.014
Font Type
№ of wrong characters % Error
№ of wrong characters % Error
№ of wrong characters % Error
Trang 21NHẬN DẠNG CHỮ VIẾT OFFLINE
Số vòng lặp tổng quát tỉ lệ thuận hiệu suất của mạng Nhưng đến một mức nào đó nó sẽ gây ra hiện tượng học vẹt (over learning), sẽ bỏ qua trạng thái tối ưu
Kích thước đầu vào cũng là một nhân tố ảnh hưởng trực tiếp đến hiệu suất của mạng Thực tế số đầu vào càng nhiều mạng yêu cầu được huấn luyện nhiều hơn để có thể nhận bắt lỗi tốt
Sự thay đổi tham số learning_rate cũng ảnh hưởng hiệu suất của mạng đối với số vòng lặp xác định Giá trị tham số này càng nhỏ thì mạng hiệu chỉnh trọng số càng chậm Nhưng muốn đạt đến trạng thái tối ưu thì ta phải tăng số vòng lặp nhiều hơn
Trang 23NHẬN DẠNG CHỮ VIẾT ONLINE
Là mô hình nhận dạng chữ viết với dữ liệu đầu vào là chữ viết do người sử dụng đang trực tiếp thực hiện
Hệ thống đòi hỏi tốc độ xử lý kết quả nhanh để đáp ứng với tốc độ viết của người dùng
Thông thường, kết quả nhận được từ mô hình này chính xác hơn 70%
Trang 24NHẬN DẠNG CHỮ VIẾT ONLINE
Trong Demo này, mạng được sử dụng là mạng Kohonen
Mạng Kohonen được thiết kế chủ yếu cho việc học không có giám sát
Mạng nơ tron Kohonen 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ơ tron và nó không chứa lớp ẩn
Trang 25NHẬN DẠNG CHỮ VIẾT ONLINE
Đặc trưng nhận dạng :
thông tin thứ tự nét chữ
được viết, thời gian,
không gian tọa độ,
Trang 26NHẬN DẠNG CHỮ VIẾT ONLINE
Trước khi đưa dữ liệu cho mạng huấn luyện hoặc nhận dạng, ta cần phải
xử lý những dữ liệu đầu vào này Giai đoạn này được gọi là giai đoạn tiền
xử lý dữ liệu đầu vào
Giai đoạn này gồm các bước :
Phát hiện ký tự
Tính toán ranh giới của ký tự
Trích xuất đặc trưng : gồm các bước đo đạc tọa độ cực, đưa ký
tự vào lưới, và số hóa (ánh xạ) ký tự
Trang 27 Sự khác nhau giữa các nơ tron thắng sẽ dẫn tới sự khác nhau giữa các mẫu đầu vào tiếp theo
Trang 28NHẬN DẠNG CHỮ VIẾT ONLINE
Các vấn đề trong việc huấn luyện :
Chuẩn hóa dữ liệu đầu vào
Trang 29NHẬN DẠNG CHỮ VIẾT ONLINE
A- Chuẩn hóa dữ liệu đầu vào
Mạng nơ tron Kohonen đòi hỏi dữ liệu đầu vào phải được chuẩn hóa Yêu cầu của mạng nơ tron Kohonen là dữ liệu đầu vào của nó phải được phân hoạch trên miền xác định giữa -1 và 1
Xác định hệ số chuẩn hóa :Hệ số chuẩn hóa là số nghịch đảo của căn
bậc hai độ dài vector đầu vào
Chúng ta sẽ tính toán độ dài vector (vector length) của các dữ liệu đầu vào (vector đầu vào)
(0.5 * 0.5) + (0.75 * 0.75) = 0.8125
=> Hệ số chuẩn hóa : √0.81251 = 1.1094
Trang 31(0.438213+1)/2 = 0.7191065
Đây là giá trị đầu ra của nơ tron đầu tiên Bằng cách so sánh các giá trị này, chúng ta có thể xác định được nơron “ thắng”
Trang 32NHẬN DẠNG CHỮ VIẾT ONLINE
D- Chọn nơ tron thắng
Để chọn nơ tron thắng, chúng ta chọn giá trị của dữ liệu đầu ra là lớn nhất giữa các nơ tron
Trang 34NHẬN DẠNG CHỮ VIẾT ONLINE
E- 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à kết quả thực tế của mạng nơ tron Sai số mà chúng ta tính toán là những cái mà không đúng giữa kết quả mong đợi và kết quả thực tế
ej = ||x-wj||
Sai số này sẽ được tính toán trong quá trình huấn luyện mạng
Trang 35NHẬN DẠNG CHỮ VIẾT ONLINE
DEMO
Trang 36NHẬN DẠNG CHỮ VIẾT ONLINE
Tỉ lệ thành công đối với bộ mẫu do chính mình thêm vào là khoảng 90%
80- Đối với bộ mẫu ban đầu, tỉ lệ thành công chỉ vào khoảng 70%
Đây là một kết quả chỉ tương đối chấp nhận được Tùy nhiên, trong những trường hợp cụ thể, kết quả này lại rất khả quan ( trường hợp nhận dạng chữ ký của một người)
Trang 37 Mô hình ứng dụng mạng nơ tron trong nhận dạng là một cách tiếp cận mới và hiện đại
Nó có thể là công cụ rất mạnh mẽ để giải quyết các bài toán trong lĩnh vực này
Để cải thiện tỉ lệ nhận dạng thành công : đề ra bộ mẫu thích hợp, các phương pháp rút trích đặc trưng phù hợp với kiểu dữ liệu đầu vào, giải pháp giải quyết các tình trạng nghiêng chữ, mờ chữ,
Hướng mở rộng : nhận dạng câu văn (giải quyết việc nhập nhằng và kiểm tra chính tả, ngữ nghĩa trong câu), nhận dạng chữ ký, bút tích của một người v.v