Nhận dạng số viết tay sử dụng thuộc tính hog kết hợp với Support Vector Machine

Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì: • Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây. • Chữ viết nguệch ngoạc, cách điệu • Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam.TẠP CHÍ KHOA HỌC 27 QUẢN LÝ VÀ CÔNG NGHỆ V. KẾT LUẬN Trong bài báo này đã nghiên cứu tổng quan về nhận dang chữ số, phương pháp trích chọn đặc trưng HOG và thuật toán SVM để áp dụng vào bài toán nhận dạng số báo danh trong phiếu thi trắc nghiệm. Giải pháp dùng thuật toán SVM mặc dù chưa đem lại kết quả tuyệt đối nhưng nó sẽ là nền tảng cho các nghiên cứu về nhận dạng sau này.

pdf13 trang | Chia sẻ: hachi492 | Ngày: 11/01/2022 | Lượt xem: 392 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Nhận dạng số viết tay sử dụng thuộc tính hog kết hợp với Support Vector Machine, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
đối diện được coi là giống nhau. Dưới đây là kết quả việc miêu tả quá trình minh họa biểu đồ gradient: Hình 2.4. Bảng minh họa biểu đồ gradient Tại các pixel bao quanh màu xanh. Nó là các góc (hướng) của 80 độ và giá trị cường độ là 2. Vì vậy sẽ thêm 2 vào vị trí 5 trong dãy tương ứng với 80 độ. Với các pixel xung quanh màu đỏ có giá trị góc là 10 độ và giá trị cường độ là 4. Với 10 độ là một nửa giữa 0 và 20 độ:  Khoảng cách từ 0 -> 10 = 10, tỉ lệ 10/20 = 0.5  Khoảng cách từ 10  20 = 10, tỉ lệ 10/20 = 0.5  Giá trị cường độ gradient g = 4 phân bố đều cho hai góc 0 và 20, mỗi góc có giá trị 4x0.5 = 2. Hình 2.5. Điều chỉnh bảng minh họa biểu đồ gradient Với Pixel ở vị trí khoanh tròn xanh lá có giá trị góc là 165, giá trị cường độ là 85. Trong histogram 9 bin tương ứng với các góc 0 -> 180 nên góc 165 nằm giữa bin 160 và bin 0. Khoảng cách từ 160 -> 165 = 5, tỉ lệ 5/20 = 0.25 Khoảng cách từ 165 -> 180 (~0) = 15, tỉ lệ 15/20 = 0.75. Do khoảng cách từ 165 -> 160 gần hơn nên trọng số phân bố vào bin 160 sẽ là 0.75, trọng số phân bố vào bin0 sẽ là 0.25. Bin 160 sẽ nhận giá trị 85x0.75 = 63.75, bin 0 nhận giá trị 85x0.2 = 1.25. Ở bước trước bin 0 đã có giá trị là 2, nên bin 0 sẽ có giá trị là 2 + 21.25 = 23.25 Lần lượt tính cho tất cả các ô trong cell trên, chúng ta được biểu đồ histogram như sau: Hình 2.6. Biểu đồ đánh giá kết quả Bước 4: Chuẩn hóa khối 16 x 16 Các Gradient rất nhạy cảm với ánh sáng, nhất là các vùng chồng lấn lên nhau. Vì thế chúng ta sẽ chuẩn hóa lại biểu đồ để chúng không bị ảnh hưởng với các biến đổi ánh sáng. Ở đây thay vì chuẩn hóa vector histogram từng ô 8x8, ta sẽ chuẩn hóa cho từng khối 16x16. Bên phải: Các gradient cùng một phần được biểu diễn dưới các con số. Hình 2.3. Ảnh được phân tích độ lớn và hướng Từ hình ảnh trên ta thấy, các mũi tên được trình bày với hướng của các gradient và độ dài chỉ cường độ của các gradient. Ở bên phải chúng ta thấy các số nguyên thể hiện các gradient trong các ô 8 x 8 với một sự khác biệt nhỏ - các góc nằm ở giữa 0 và 180 thay vì 0 đến 360. Vì ở đây một mũi tên của gradient và một góc 180 độ đối diện được coi là giống nhau. Dưới đây là kết quả việc miêu tả quá trình minh họa biểu đồ gradient: Hình 2.4. Bảng minh họa biểu đồ gradient Tại các pixel bao quanh màu xanh. Nó là các góc (hướng) của 80 độ và giá trị cường độ là 2. Vì vậy sẽ thêm 2 vào vị trí 5 trong dãy tương ứng với 80 độ. Với các pixel xung quanh màu đỏ có giá trị góc là 10 độ và giá trị cường độ là 4. Với 10 độ là một nửa giữa 0 và 20 độ:  Khoảng cách từ 0 -> 10 = 10, tỉ lệ 10/20 = 0.5  Khoảng cách từ 10  20 = 10, tỉ lệ 10/20 = 0.5  Giá trị cường độ gradient g = 4 phân bố đều cho hai góc 0 và 20, mỗi góc có giá trị 4x0.5 = 2. Hình 2.5. Điều chỉnh bảng minh họa biểu đồ gradient Với Pixel ở vị trí khoanh tròn xanh lá có giá trị góc là 165, giá trị cường độ là 85. Trong histogram 9 bin tương ứng với các góc 0 -> 180 nên góc 165 nằm giữa bin 160 và bin 0. Khoảng cách từ 160 -> 165 = 5, tỉ lệ 5/20 = 0.25 Khoảng cách từ 165 -> 180 (~0) = 15, tỉ lệ 15/20 = 0.75. Do khoảng cách từ 165 -> 160 gần hơn nên trọng số phân bố vào bin 160 sẽ là 0.75, trọng số phân bố vào bin0 sẽ là 0.25. B n 160 sẽ nhậ giá trị 85x0.75 = 63.75, bin 0 nhận giá trị 85x0.2 = 1.25. Ở bước trước bin 0 đã có giá trị là 2, nên bin 0 sẽ có giá trị là 2 + 21.25 = 23.25 Lần lượt tính cho tất cả các ô trong cell trên, chúng ta được biểu đồ istogram như sau: Hình 2.6. Biểu đồ đánh giá kết quả Bước 4: Chuẩn hóa khối 16 x 16 Các Gradient rất nhạy cảm với ánh sáng, nhất là các vùng chồng lấn lên nhau. Vì thế chúng ta sẽ chuẩn hóa lại biểu đồ để chúng không bị ảnh hưởng với các biến đổi á sáng. Ở đây thay vì chuẩn hóa vector histogram từng ô 8x8, ta sẽ chuẩn hóa cho từng khối 16x16. Hình 2.5. Điều chỉnh bảng minh họa biểu đồ gradient Với Pixel ở vị trí khoanh tròn xanh lá có giá trị góc là 165, giá trị cường độ là 85. Trong histogram 9 bin tương ứng với các góc 0 -> 180 nên góc 165 nằm giữa bin 160 và bin 0. Khoảng cách từ 160 -> 165 = 5, tỉ lệ 5/20 = 0.25 Khoảng cách từ 165 -> 180 (~0) = 15, tỉ lệ 15/20 = 0.75. Do khoảng cách từ 165 -> 160 gần hơn nên trọng số phân bố vào bin 160 sẽ là 0.75, trọng số phân bố vào bin0 sẽ là 0.25. Bin 160 sẽ nhận giá trị 85x0.75 = 63.75, bin 0 nhận giá trị 85x0.2 = 1.25. Ở bước trước bin 0 đã có giá trị là 2, nên bin 0 sẽ có giá rị là 2 + 21.25 = 23.25 Lần lượt tính cho tất cả các ô trong cell trên, chúng ta được biểu đồ histogram như sau: Hình 2.6. Biểu đồ đánh giá kết quả 21TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Hình 2.7. Quá trình di chuyển khối 16x16 Hình 3.1. Phân hoạch tập mẫu từ không gian Rn sang không gian Rd. Bước 4: Chuẩn hóa khối 16 x 16 Các Gradient rất nhạy cảm với ánh sáng, nhất là các vùng chồng lấn lên nhau. Vì thế chúng ta sẽ chuẩn hóa lại biểu đồ để chúng không bị ảnh hưởng với các biến đổi ánh sáng. Ở đây thay vì chuẩn hóa vector histogram từng ô 8x8, ta sẽ chuẩn hóa cho từng khối 16x16. Ta thấy mỗi khối 16x16 sẽ gồm 4 ô 8x8 mà 1 ô 8x8 có vector histogram kích thước là 9x1. Vậy một khối 16x16 sẽ có vector histogram kích thước là 36x1. Việc chuẩn hóa vecto 36 x 1 được tính toán trên một cửa sổ trượt với bước di chuyển là 8 pixel, và ta lần lượt trượt cửa sổ 16x16 từ trái qua phải, từ trên xuống dưới đến khi hết hình. Bước 5: Tính toán vecto đặc trưng HOG Để tính toán vecto đặc trưng cuối cùng cho toàn bộ các hình ảnh nhỏ, các đoạn vecto 36 x 1 sẽ được nối lại thành một vecto khổng lồ. Và đây là cách tính vecto này: Chúng ta có bao nhiêu vị trí của các khối 16 x 16? Có 7 vị trí nằm ngang và 15 dọc tổng cộng sẽ có 7 x 15 = 105 vị trí Mỗi khối 16 x 16 sẽ biểu diễn một vecto 36 x 1. Vì vậy chúng ta sẽ có một vecto khổng lồ, vecto đó chứa một vecto 36 x 105 = 3780 chiều. Ta thấy mỗi khối 16x16 sẽ gồm 4 ô 8x8 mà 1 ô 8x8 có vector histogram kích thước là 9x1. Vậy một khối 16x16 sẽ có vector histogram kích thước là 36x1. Việc chuẩn hóa vecto 36 x 1 được tính toán trên một cửa sổ trượt với bước di chuyển là 8 pixel, và ta lần lượt trượt cửa sổ 16x16 từ trái qua phải, từ trên xuống dưới đến khi hết hình. Hình 2.7. Quá trình di chuyển khối 16x16 Bước 5: Tính toán vecto đặc trưng HOG Để tính toán vecto đặc trưng cuối cùng cho toàn bộ các hình ảnh nhỏ, các đoạn vecto 36 x 1 sẽ được nối lại thành một vecto khổng lồ. Và đây là cách tính vecto này: Chúng ta có bao nhiêu vị trí của các khối 16 x 16? Có 7 vị trí nằm ngang và 15 dọc tổng cộng sẽ có 7 x 15 = 105 vị trí Mỗi khối 16 x 16 sẽ biểu diễn một vecto 36 x 1. Vì vậy chúng ta sẽ có một vecto khổng lồ, vecto đó chứa một vecto 36 x 105 = 3780 chiều. III. THUẬT TOÁN SVM SVM thực hiện chuyển tập mẫu từ không gian biểu diễn Rn của chúng sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd tìm một siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, có nghĩa là tìm ra miền phân bổ của từng lớp trong không gian biểu diễn Rn, để từ đó xác định được phân lớp của một mẫu nhận dạng. SVM là một phương pháp có tính tổng quát cao, có thể được áp dụng cho nhiều bài toán nhận dạng khác nhau. Hình 3.1. Phân hoạch tập mẫu từ không gian Rn sang không gian Rd. 1. Ý tưởng của thuật toán: Cho trước một tập huấn luyện được biểu diễn trên một không gian vector. Phương pháp này sẽ tìm ra một siêu phẳng và quyết định tốt nhất để phân tách thành các lớp trên không gian. Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác. Hình 3.2. Siêu phẳng phân chia dữ liệu với khoảng cách biên lớn nhất. 2. Cá bước chính Đầu vào của thuật toán là các vector của số thực. Tiền xử lý dữ liệu: Biến đổi dữ liệu phù hợp cho quá trình tính toán, tránh các số quá lớn mô tả các thuộc tính. Thường nên co giãn (scaling) dữ liệu chuyển về đoạn [-1, 1] hoặc [0, 1]. Chọn hàm hạt nhân: lựa chọn hàm hạt nhân phù hợp tương ứng cho từng bài toán cụ thể để đạt độ chính xác cao trong quá trình phân lớp. Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng dụng. Sử dụng các tham số cho huấn luyện với tập mẫu: trong quá trình huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách giữa các siêu phẳng trong quá trình phân lớp, xác định hàm phân lớp trong không gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng bằng cách mô tả hạt nhân và cuối cùng là kiểm thử tập dữ liệu 3. Các dạng bài toán phân lớp trong SVM  Bài toán phân lớp nhị phân với SVM  Bài toán nhiều phân lớp với SVM  Phương pháp thứ 1: One - vs – One  Phương pháp thứ 2: One - vs – Rest IV. THỰC NGHIỆM 1. Mô tả bài toán Hiện nay, có rất nhiều mẫu phiếu trả lời trắc nghiệm được sử dụng cho từng kỳ thi khác nhau. Ta thấy mỗi khối 16x16 sẽ gồm 4 ô 8x8 mà 1 ô 8x8 có vector histogram kích thước là 9x1. Vậy một khối 16x16 sẽ có vector histogram kích thước là 36x1. Việc chuẩn hóa vecto 36 x 1 được tính toán trên một cửa sổ trượt với bước di chuyển là 8 pixel, và ta lần lượt trượt cửa sổ 16x16 từ trái qua phải, từ trên xuống dưới đến khi hết hình. Hình 2.7. Quá trình di chuyển khối 16x16 Bước 5: Tính toán vecto đặc trưng HOG Để tính toán vecto đặc trưng cuối cùng cho toàn bộ các hình ảnh nhỏ, các đoạn vecto 36 x 1 sẽ được nối lại thành một vecto khổng lồ. Và đây là cách tính vecto này: Chúng ta có bao nhiêu vị trí của các khối 16 x 16? Có 7 vị trí nằm ngang và 15 dọc tổng cộng sẽ có 7 x 15 = 105 vị trí Mỗi khối 16 x 16 sẽ biểu diễn một vecto 36 x 1. Vì vậy chúng ta sẽ có một vecto khổng lồ, vecto đó chứa một vecto 36 x 105 = 3780 chiều. III. THUẬT TOÁN SVM SVM thực hiện chuyển tập mẫu từ không gian biểu diễn Rn của chúng sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd tìm một siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, có nghĩa là tìm ra miền phân bổ của từng lớp trong không gian biểu diễn Rn, để từ đó xác định được phân lớp của một mẫu nhận dạng. SVM là một phương pháp có tính tổng quát cao, có thể được áp dụng cho nhiều bài toán nhận dạng khác nhau. Hình 3.1. Phân hoạch tập mẫu từ không gian Rn sang không gian Rd. 1. Ý tưởng của thuật toán: Cho trước một tập huấn luyện được biểu diễn trên một không gian vector. Phương pháp này sẽ tìm ra một siêu p ẳng và quyết định tốt nhất để phân tách thành các lớp trên không gian. Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó khoảng cách biên càng lớn thì mặt phẳng quyết địn càng tốt, đồng thời việc phân loại càng chính xác. Hình 3.2. Siêu phẳng phân chia dữ liệu với khoảng cách biên lớn nhất. 2. Các bước chính Đầu vào của thuật toán là các vector của số thực. Tiền xử lý dữ liệu: Biến đổi dữ liệu phù hợp cho quá trình tính toán, tránh các số quá lớn mô tả các thuộc tính. Thường nên co giãn (scaling) dữ liệu chuyển về đoạn [-1, 1] hoặc [0, 1]. Chọn hàm hạt nhân: lựa chọn hàm hạt n ân phù hợp tương ứng cho từng bài toán cụ thể để đạt độ chính xác cao trong quá trình phân lớp. Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng dụng. Sử dụng các tham số cho huấn luyện với tập mẫu: trong quá trình huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách giữa các siêu phẳng trong quá trình phân lớp, xác định hàm phân lớp trong không gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng bằng cách mô tả hạt nhân và cuối cùng là kiểm thử tập dữ liệu 3. Các dạng bài toán phân lớp trong SVM  Bài toán phân lớp nhị phân với SVM  Bài toán nhiều phân lớp với SVM  Phương pháp thứ 1: One - vs – One  Phương pháp thứ 2: One - vs – Rest IV. THỰC NGHIỆM 1. Mô tả bài toán Hiện nay, có rất nhiều mẫu phiếu trả lời trắc nghiệm được sử dụng cho từng kỳ thi khác nhau. III. THUẬT TOÁN SVM SVM thực hiện chuyển tập mẫu từ không ian biểu diễn Rn của chúng sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd tìm một siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, có nghĩa là tìm ra miền phân bổ của từng lớp trong không gian biểu diễn Rn, để từ đó xác định được phân lớp của một mẫu nhận dạng. SVM là một phương pháp có tính tổng quát cao, có thể được áp dụng cho nhiều bài toán nhận dạng khác nhau. 22 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Ta thấy mỗi khối 16x16 sẽ gồm 4 ô 8x8 mà 1 ô 8x8 có vector histogram kích thước là 9x1. Vậy một khối 16x16 sẽ có vector histogram kích thước là 36x1. Việc chuẩn hóa vecto 36 x 1 được tính toán trên một cửa sổ trượt với bước di chuyển là 8 pixel, và ta lần lượt trượt cửa sổ 16x16 từ trái qua phải, từ trên xuống dưới đến khi hết hình. Hình 2.7. Quá trình di chuyển khối 16x16 Bước 5: Tính toán vecto đặc trưng HOG Để tính toán vecto đặc trưng cuối cùng cho toàn bộ các hình ảnh nhỏ, các đoạn vecto 36 x 1 sẽ được nối lại thành một vecto khổng lồ. Và đây là cách tính vecto này: Chúng ta có bao nhiêu vị trí của các khối 16 x 16? Có 7 vị trí nằm ngang và 15 dọc tổng cộng sẽ có 7 x 15 = 105 vị trí Mỗi khối 16 x 16 sẽ biểu diễn một vecto 36 x 1. Vì vậy chúng ta sẽ có một vecto khổng lồ, vecto đó chứa một vecto 36 x 105 = 3780 chiều. III. THUẬT TOÁN SVM SVM thực hiện chuyển tập mẫu từ không gian biểu diễn Rn của chúng sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd tìm một siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, có nghĩa là tìm ra miền phân bổ của từng lớp trong không gian biểu diễn Rn, để từ đó xác định được phân lớp của một mẫu nhận dạng. SVM là một phương pháp có tính tổng quát cao, có thể được áp dụng cho nhiều bài toán nhận dạng khác nhau. Hình 3.1. Phân hoạch tập mẫu từ không gian Rn sang không gian Rd. 1. Ý tưởng của thuật toán: Cho trước một tập huấn luyện được biểu diễn trên một không gian vector. Phương pháp này sẽ tìm ra một siêu phẳng và quyết định tốt nhất để phân tách thành các lớp trên không gian. Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác. Hình 3.2. Siêu phẳng phân chia dữ liệu với khoảng cách biên lớn nhất. 2. Các bước chính Đầu vào của thuật toán là các vector của số thực. Tiền xử lý dữ liệu: Biến đổi dữ liệu phù hợp cho quá trình tính toán, tránh các số quá lớn mô tả các thuộc tính. Thường nên co giãn (scaling) dữ liệu chuyển về đoạn [-1, 1] hoặc [0, 1]. Chọn hàm hạt nhân: lựa chọn hàm hạt nhân phù hợp tương ứng cho từng bài toán cụ thể để đạt độ chính xác cao trong quá trình phân lớp. Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng dụng. Sử dụng các tham số cho huấn luyện với tập mẫu: trong quá trình huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách giữa các siêu phẳng trong quá trình phân lớp, xác định hàm phân lớp trong không gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng bằng cách mô tả hạt nhân và cuối cùng là kiểm thử tập dữ liệu 3. Các dạng bài toán phân lớp trong SVM  Bài toán phân lớp nhị phân với SVM  Bài toán nhiều phân lớp với SVM  Phương pháp thứ 1: One - vs – One  Phương pháp thứ 2: One - vs – Rest IV. THỰC NGHIỆM 1. Mô tả bài toán Hiện nay, có rất nhiều mẫu phiếu trả lời trắc nghiệm được sử dụng cho từng kỳ thi khác nhau. 1. Ý tưởng của thuật toán: Cho trước một tập huấn luyện được biểu diễn trên một không gian vector. Phương pháp này sẽ tìm ra một siêu phẳng và quyết định tốt nhất để phân tách thành các lớp trên không gian. Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khi đó khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác. Hình 3.2. Siêu phẳng phân chia dữ liệu với khoảng cách biên lớn nhất. 2. Các bước chính Đầu vào của thuật toán là các vector của số thực. Tiền xử lý dữ liệu: Biến đổi dữ liệu phù hợp cho quá trình tính toán, tránh các số quá lớn mô tả các thuộc tính. Thường nên co giãn (scaling) dữ liệu chuyển về đoạn [-1, 1] hoặc [0, 1]. Chọn hàm hạt nhân: lựa chọn hàm hạt nhân phù hợp tương ứng cho từng bài toán cụ thể để đạt độ chính xác cao trong quá trình phân lớp. Thực hiện việc kiểm tra chéo để xác định các tham số cho ứng dụng. Sử dụng các tham số cho huấn luyện với tập mẫu: trong quá trình huấn luyện sẽ sử dụng thuật toán tối ưu hóa khoảng cách giữa các siêu phẳng trong quá trình phân lớp, xác định hàm phân lớp trong khô g gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng bằng cách mô tả hạt nhân và cuối cùng là kiểm thử tập dữ liệu 3. Các dạng bài toán phân lớp trong SVM • Bài toán phân lớp nhị phân với SVM • Bài toán nhiều phân lớp với SVM  Phương pháp thứ 1: One - vs – One  Phương pháp thứ 2: O e - vs – Rest IV. THỰC NGHIỆM 1. Mô tả bài toán Hiện nay, có rất hiều mẫu phiếu trả lời trắc nghiệm được sử dụng cho từng kỳ thi khác nhau. Nhưng trong đó có 2 mẫu phiếu trả lời trắc nghiệm phổ biến: Phiếu dành cho kỳ thi tuyển sinh đại học (Phiếu 1) và phiếu dành cho các kỳ kiểm tra kết thúc môn học (Phiếu 2). 23TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Với đề tài nhận dạng số viết tay ta có thể áp dụng với cả 2 bài toán trên: • Đối với “Phiếu 1”: Phần ghi thông tin số báo danh của thí sinh gồm 2 phần: phần đánh số báo danh bằng cách tô các chấm tròn trên các chữ số và phần ghi số báo danh bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích loại bỏ các Phiếu trả lời trắc nghiệm không hợp lệ do số báo danh được ghi bằng phương pháp chấm tròn không khớp với số báo danh được ghi bằng cách viết tay. • Đối với “Phiếu 2”: Phần ghi thông tin số báo danh của thí sinh chỉ gồm phần ghi bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích hỗ trợ giáo viên lên điểm mỗi kỳ thi. 2. Kho dữ liệu thử nghiệm Bộ dữ liệu chuẩn MNIST Bộ cơ sở dữ liệu MNIST là bộ cơ sở dữ liệu lớn nhất về chữ số viết tay. MNIST bao gồm 70.000 dữ liệu được lưu dưới dạng hình ảnh: trong đấy ta sử dụng 50.000 dữ liệu cho huấn luyện và 20.000 dữ liệu cho việc kiểm tra. Nhưng trong đó có 2 mẫu phiếu trả lời trắc nghiệm phổ biến: Phiếu dành cho kỳ thi tuyển sinh đại học (Phiếu 1) và phiếu dành cho các kỳ kiểm tra kết thúc môn học (Phiếu 2). Phiếu 1 Phiếu 2 Với đề tài nhận dạng số viết tay ta có t ể áp dụng với cả 2 bài toán trên:  Đối với “Phiếu 1”: Phần ghi thông tin số báo danh của thí sinh gồm 2 phần: phần đánh số báo danh bằng cách tô các chấm tròn trên các chữ số và phần ghi số báo danh bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích loại bỏ các Phiếu trả lời trắc nghiệm không hợp lệ do số báo danh được ghi bằng phương pháp chấm tròn không khớp với số báo danh được ghi bằng cách viết tay.  Đối với “Phiếu 2”: Phần ghi thông tin số báo danh của thí sinh chỉ gồm phần ghi bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích hỗ trợ giáo viên lên điểm mỗi kỳ thi. 2. Kho dữ liệu thử nghiệm Bộ dữ liệu chuẩn MNIST Bộ cơ sở dữ liệu MNIST là bộ cơ sở dữ liệu lớn nhất về chữ số viết tay. MNIST bao gồm 70.000 dữ liệu được lưu dưới dạng hình ảnh: trong đấy ta sử dụng 50.000 dữ liệu cho huấn luyện và 20.000 dữ liệu cho việc kiểm tra. Bộ dữ liệu số báo danh viết tay Xây dựng bộ dữ liệu viết tay phục vụ cho việc thử nghiệm bao gồm 150 ảnh số báo danh đã được cắt ra từ phiếu trả lời trắc nghiệm, mỗi ảnh chứa 6 chữ số viết tay. Vậy tổng cộng có 150x6 =900 chữ số viết tay. Hình 3.3. Một số hình ảnh về dữ liệu SBD viết tay 3. Giải quyết bài toán Các kỹ thuật sử dụng:  Dữ liệu: Tập dữ liệu MNIST và dữ liệu viết tay tự tạo  Đặc trưng: Đặc trưng HOG  Thuật toán: Thuật toán SVM Các bước giải quyết bài toán Đầu tiên ta xây dựng mô hình huấn luyện dữ liệu để phục vụ cho bước nhận dạng. Ở đây ta giả định đã xác định và cắt được vị trí ô số báo danh. Đầu tiên, ảnh thu được từ camera hoặc scan được đưa vào hệ thống. Hình 3.4.Ảnh đầu vào Nhưng trong đó có 2 mẫu phiếu trả lời trắc nghiệm phổ biến: Phiếu dành cho kỳ thi tuyển sinh đại học (Phiếu 1) và phiếu dành cho các kỳ kiểm tra kết thúc môn học (Phiếu 2). Phiếu 1 Phiếu 2 Với đề tài nhận dạng số viết tay ta có thể áp dụng với cả 2 bài toán trên:  Đối với “Phiếu 1”: Phần ghi thông tin số b o danh của thí sinh gồm 2 phần: phần đánh số báo danh bằng cách tô các chấm tròn trên các chữ số và phần ghi số báo danh bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích loại bỏ các Phiếu trả lời trắc nghiệm không hợp lệ do số báo danh được ghi bằng phương pháp chấm tròn không khớp với số báo danh được ghi bằng cách viết tay.  Đối với “Phiếu 2”: Phần ghi thông tin số báo danh của thí sinh chỉ gồm phần ghi bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích hỗ trợ giáo viên lên điểm mỗi kỳ thi. 2. Kho dữ liệu thử nghiệm Bộ dữ liệu chuẩn MNIST Bộ cơ sở dữ liệu MNIST là bộ cơ sở dữ liệu lớn nhất về chữ số viết tay. MNIST bao gồm 70.000 dữ liệu được lưu dưới dạng hình ảnh: trong đấy ta sử dụng 50.000 dữ liệu cho huấn luyện và 20.000 dữ liệu cho việc kiểm tra. Bộ dữ liệu số báo danh viết tay Xây dựng bộ dữ liệu viết tay phục vụ cho việc thử nghiệm bao gồm 150 ảnh số báo danh đã được cắt ra từ phiếu trả lời trắc nghiệm, mỗi ảnh chứa 6 chữ số viết tay. Vậy tổng cộng có 150x6 =900 chữ số viết tay. Hình 3.3. Một số hình ảnh về dữ liệu SBD viết tay 3. Giải quyết bài toán Các kỹ thuật sử dụng:  Dữ liệu: Tập dữ liệu MNIST và dữ liệu viết tay tự tạo  Đặc trưng: Đặc trưng HOG  Thuật toán: Thuật toán SVM Các bước giải quyết bài toán Đầu tiên ta xây dựng mô hình huấn luyện dữ liệu để phục vụ cho bước nhận dạng. Ở đây ta giả định đã xác định và cắt được vị trí ô số báo danh. Đầu tiên, ảnh thu được từ camera hoặc scan được đưa vào hệ thống. Hình 3.4.Ảnh đầu vào 24 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Bộ dữ liệu số báo danh viết tay Xây dựng bộ dữ liệu viết tay phục vụ cho việc thử nghiệm bao gồm 150 ảnh số báo danh đã được cắt ra từ phiếu trả lời trắc nghiệm, mỗi ảnh chứa 6 chữ số viết tay. Vậy tổng cộng có 150x6 =900 chữ số viết tay. Nhưng trong đó có 2 mẫu phiếu trả lời trắc nghiệm phổ biến: Phiếu dành cho kỳ thi tuyển sinh đại học (Phiếu 1) và phiếu dành cho các kỳ kiểm tra kết thúc môn học (Phiếu 2). Phiếu 1 Phiếu 2 Với đề tài nhận dạng số viết tay ta có thể áp dụng với cả 2 bài toán trên:  Đối với “Phiếu 1”: Phần ghi thông tin số báo danh của thí sinh gồm 2 phần: phần đánh số báo danh bằng cách tô các chấm tròn trên các chữ số và phần ghi số báo danh bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích loại bỏ các Phiếu trả lời trắc nghiệm không hợp lệ do số báo danh được ghi bằng phương pháp chấm tròn không khớp với số báo danh được ghi bằng cách viết tay.  Đối với “Phiếu 2”: Phần ghi thông tin số báo danh của thí sinh chỉ gồm phần ghi bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích hỗ trợ giáo viên lên điểm mỗi kỳ thi. 2. Kho dữ liệu thử nghiệm Bộ dữ liệu chuẩn MNIST Bộ cơ sở dữ liệu MNIST là bộ cơ sở dữ liệu lớn nhất về chữ số viết tay. MNIST bao gồm 70.000 dữ liệu được lưu dưới dạng hình ảnh: trong đấy ta sử dụng 50.000 dữ liệu cho huấn luyện và 20.000 dữ liệu cho việc kiểm tra. Bộ dữ liệu số báo danh viết tay Xây dựng bộ dữ liệu viết tay phục vụ cho việc thử nghiệm bao gồm 150 ảnh số báo danh đã được cắt ra từ phiếu trả lời trắc nghiệm, mỗi ảnh chứa 6 chữ số viết tay. Vậy tổng cộng có 150x6 =900 chữ số iết tay. Hình 3.3. Một số hình ảnh về dữ liệu SBD viết tay 3. Giải quyết bài toán Các kỹ thuật sử dụng:  Dữ liệu: Tập dữ liệu MNIST và dữ liệu viết tay tự tạo  Đặc trưng: Đặc trưng HOG  Thuật toán: Thuật toán SVM Các bước giải quyết bài toán Đầu tiên ta xây dựng mô hình huấn luyện dữ liệu để phục vụ cho bước nhận dạng. Ở đây ta giả định đã xác định và cắt được vị trí ô số báo danh. Đầu tiên, ảnh thu được từ camera hoặc scan được đưa vào hệ thống. Hình 3.4.Ảnh đầu vào Nhưng trong đó có 2 mẫu phiếu trả lời trắc nghiệm phổ biến: Phiếu dành cho kỳ thi tuyển sinh đại học (Phiếu 1) và phiếu dành cho các kỳ kiểm tra kết thúc môn học (Phiếu 2). Phiếu 1 Phiếu 2 Với đề tài nhận dạng số viết tay ta có thể áp dụng với cả 2 bài toán trên:  Đối với “Phiếu 1”: Phần ghi thông tin số báo danh của thí sinh gồm 2 phần: phần đánh số báo danh bằng cách tô các chấm tròn trên các chữ số và phần ghi số báo danh bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích loại bỏ các Phiếu trả lời trắc nghiệm không hợp lệ do số báo danh được ghi bằng phương pháp chấm tròn không khớp với số báo danh được ghi bằng cách viết tay.  Đối với “Phiếu 2”: Phần ghi thông tin số báo danh của thí sinh chỉ gồm phần ghi bằng tay. Nhận dạng số báo danh viết tay nhằm mục đích hỗ trợ giáo viên lên điểm mỗi kỳ thi. 2. Kho dữ liệu thử nghiệm Bộ dữ liệu chuẩn MNIST Bộ cơ sở dữ liệu MNIST là bộ cơ sở dữ liệu lớn nhất về chữ số viết tay. MNIST bao gồm 70.000 dữ liệu được lưu dưới dạng hình ảnh: trong đấy ta sử dụng 50.000 dữ liệu cho huấn luyện và 20.000 dữ liệu cho việc kiểm tra. Bộ dữ liệu số báo danh viết tay Xây dựng bộ dữ liệu viết tay phục vụ cho việc thử nghiệm bao gồm 150 ảnh số báo danh đã được cắt ra từ phiếu trả lời trắc nghiệm, mỗi ảnh chứa 6 chữ số viết tay. Vậy tổng cộng có 150x6 =900 chữ số viết tay. Hình 3.3. Một số hình ảnh về dữ liệu SBD viết tay 3. Giải quyết bài toán Các kỹ thuật sử dụng:  Dữ liệu: Tập dữ liệu MNIST và dữ liệu viết tay tự tạo  Đặc trưng: Đặc trưng HOG  Thuật toán: Thuật toán SVM Các bước giải quyết bài toán Đầu tiên ta xây dựng mô hình huấn luyện dữ liệu để phục vụ cho bước nhận dạng. Ở đây ta giả định đã xác định và cắt được vị trí ô số báo danh. Đầu tiên, ảnh thu được từ camera hoặc scan được đưa vào hệ thống. Hình 3.4.Ảnh đầu vào Hình 3.3. Một số hình ảnh về dữ liệu SBD viết tay 3. Giải quyết bài toán Các kỹ thuật sử dụng: • Dữ liệu: Tập dữ liệu MNIST và dữ liệu viết tay tự tạo • Đặc trưng: Đặc trưng HOG • Thuật toán: Thuật toán SVM Các bước giải quyết b i toán Đầu tiên ta xây dựng mô hình huấn luyện dữ liệu để phục vụ cho bước nhận dạng. Ở đây ta giả định đã xác định và ắt được vị trí ô số báo danh. Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Đầu tiê , ảnh thu c từ camera hoặc scan được đưa vào hệ thống. Hình 3.4. Ảnh đầu vào Hình 3.5. Ảnh sau khi chuyển sang đen trắng Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hó kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bả g kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN 25TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.6. Ảnh sau khi được xác định viền Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích c ọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương ây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian h ấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toá SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn l yện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả t ực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN 26 TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viền Loại bỏ các viền nhiễu bằng cách chỉ lấy những viền có diện tích lớn nhất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 235.94 0.46 97.74 96.84 Lần 2 221.90 0.48 97.71 96.88 Lần 3 214.33 0.49 97.77 96.64 Lần 4 220.53 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 55 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 65 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây.  Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN Tiếp theo, điều chỉnh lại kích thước ảnh và chuyển ảnh về ảnh đen trắng. Hình 3.5. Ảnh sau khi chuyển sang đen trắng Sau khi đã chuẩn hóa kích thước và khử nhiễu, thực hiện xác định viền của từng đối tượng: Hình 3.6. Ảnh sau khi được xác định viề Loại bỏ các viền nhiễu bằng cách chỉ lấy nh viền có diện tích lớn hất. Hình 3.7. Ảnh sau khi loại bỏ viền nhiễu Sau khi đã tách được các ký tự ở bước trên, tiến hành chuẩn hóa kích thước đường viền bằng 28x28. Từ đó, tính vetor đặc trưng của từng đối tượng vừa được chuẩn hóa bằng thuộc tính HOG. Sau khi mẫu dữ liệu đã qua các bước tiền xử lý và trích chọn đặc trưng, dựa vào giá trị các tham số thu được khi huấn luyện ta sẽ sử dụng thuật toán SVM để xem xem vector đó thuộc về lớp nào. Kết quả trả về là một số thực tương ứng với nhãn mà ta đã huấn luyện, có 10 nhãn tương ứng với các số từ 0 - 9. 4. Kết quả sau khi nhận dạng Một số kết quả tốt Một số kết quả chưa được tốt Bảng kết quả thực nghiệm trên tập dữ liệu MNIST với thuật toán SVM: Dữ liệu huấn luyện 50.000 Dữ liệu test 20.000 Thời gian huấn luyện (s) Thời gian Test (s) Độ chính xác_Training (%) Độ chính xác_Test (%) Lần 1 . 0.46 97.74 96.84 Lần 2 . 0.48 97.71 96.88 Lần 3 . 0.49 97. 7 9 .64 Lần 4 . 0.46 97.63 96.81 Lần 5 217.38 0.49 97.79 96.68 Trung bình 222.012 0.48 97.73 96.77 Bảng kết quả thực nghiệm trên tập dữ liệu số báo danh viết tay với SVM Chữ số Số lượng Số lượng tách sai Số lượng tách đúng KQ đúng KQ sai Tỉ lệ % đúng Tỉ lệ % sai 0 165 1 164 164 0 100 0 1 85 20 65 40 25 61.54 38.46 2 105 0 105 101 4 96.19 3.81 3 105 0 105 100 5 95.24 4.76 4 85 0 85 55 30 64.71 35.29 5 85 2 83 83 0 100 0 6 55 0 5 50 5 90.91 9.09 7 75 0 75 56 19 74.67 25.33 8 75 1 74 72 2 97.30 2.70 9 65 0 5 49 16 75.38 24.62 Tổng 900 24 876 770 106 87.90 12.10 Thực nghiệm trên ta thấy kết quả nhận dạng trên bộ dữ liệu số báo danh viế tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì:  Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây. Chữ viết nguệch ngoạc, cách điệu  Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. V. KẾT LUẬN Thực nghiệm trên ta thấy kết q ả nhận ạ g trên bộ dữ liệu số báo da h viết tay không được tốt bằng khi thực nghiệm kiểm tra trên bộ dữ liệu của tập MNIST. Nguyên nhân là vì: • Sự khác biệt về hình dáng chữ viết của người Việt Nam và người phương Tây. • Chữ viết nguệch ngoạc, các điệu • Nét chữ không đều dẫn đến bị mất nét trong các bước tiền xử lý Từ những khó khăn, hạn chế trên ta có thể đưa ra phương pháp cải thiện kết quả bằng cách xây dựng bộ dữ liệu riêng phù hợp với hình dáng chữ số viết tay của người Việt Nam. 27TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ V. KẾT LUẬN Trong bài báo này đã nghiên cứu tổng quan về nhận dang chữ số, phương pháp trích chọn đặc trưng HOG và thuật toán SVM để áp dụng vào bài toán nhận dạng số báo danh trong phiếu thi trắc nghiệm. Giải pháp dùng thuật toán SVM mặc dù chưa đem lại kết quả tuyệt đối nhưng nó sẽ là nền tảng cho các nghiên cứu về nhận dạng sau này. TÀI LIỆU THAM KHẢO Tiếng việt [1] Huỳnh Hữu Hưng, Nguyễn Trọng Nguyên, Võ Đức Hoàng (2015), Giáo trình Xử Lý Ảnh. NXB TT&TT. [2] Lương Mạnh Bá, Nguyễn Thanh Thuỷ. Nhập môn xử lý ảnh số. Nhà xuất bản. Nhà xuất bản Khoa học và Kỹ thuật, 2003. Tiếng Anh [3] Navneet Dalal and Bill Triggs. "Histograms of Oriented Gradients for Human Detection". International Conference on Computer Vision & Pattern Recognition.June 2005. Trang Website [4] https://machinelearningcoban.com (Bài 19 - Support Vector Machine) [5] https://www.learnopencv.com/histogram-of-oriented-gradients/ [6] https://www.learnopencv.com/support-vector-machines-svm [7] https://dominhhai.github.io/vi/2017/12/ml-logistic-regression/

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

  • pdfnhan_dang_so_viet_tay_su_dung_thuoc_tinh_hog_ket_hop_voi_sup.pdf
Tài liệu liên quan