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.
13 trang |
Chia sẻ: hachi492 | Ngày: 11/01/2022 | Lượt xem: 379 | Lượt tải: 0
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:
- nhan_dang_so_viet_tay_su_dung_thuoc_tinh_hog_ket_hop_voi_sup.pdf