NỘI DUNG BÁO CÁOVÀ TRÍCH XUẤT ĐẶC TRƯNG TRAINING VÀ ĐÁNH GIÁ CÁC MODEL ỨNG DỤNG VÀ HƯỚNG CẢI THIỆN 02 CÁC NGHIÊN CỨU TRƯỚC... GIỚI THIỆU ĐỀ TÀI - Bài toán thuộc lớp bài toán phân loại,
Trang 1BÁO CÁO ĐỒ ÁN MÔN HỌC: MÁY HỌC (MACHINE LEARNING)
ĐỀ TÀI: PHÂN LOẠI CHỮ VIẾT TAY TIẾNG VIỆT CÓ DẤU
Lớp: CS114.L22.KHCL
CS114.L21.KHCL
Sinh viên thực hiện: Đỗ Trọng Khánh – 19521676
Võ Phạm Duy Đức – 19521383 Trịnh Công Danh – 19521326
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn: Lê Đình Duy
Phạm Nguyễn Trường An
Trang 2NỘI DUNG BÁO CÁO
VÀ TRÍCH XUẤT ĐẶC TRƯNG
TRAINING VÀ ĐÁNH GIÁ CÁC MODEL
ỨNG DỤNG VÀ HƯỚNG CẢI THIỆN
02 CÁC NGHIÊN
CỨU TRƯỚC
Trang 31 GIỚI THIỆU ĐỀ
TÀI
- Bài toán thuộc lớp bài toán phân loại, có tổng cộng 89 lớp đại diện cho 89 chữ cái tiếng Việt viết thường bao gồm cả các dấu phụ (sắc, huyền, hỏi, ngã, nặng)
- Đầu vào của bài toán là một tấm ảnh chứa một chữ cái tiếng Việt viết thường
- Đầu ra là kết quả dự đoán chữ cái tương ứng với tấm ảnh đó
Phân loại chữ cái viết tay là đề tài nghiên cứu khá
phổ biến Nhưng chữ cái Tiếng Việt hiện nay vẫn
chưa được nghiên cứu nhiều Đó là lí do nhóm
quyết định thực hiện đề tài này
Trang 42 CÁC NGHIÊN CỨU
TRƯỚC Nghiên cứu của các giảng viên trường đại học Duy Tân
1 Mô tả bộ dữ liệu
- Bộ dữ liệu chuẩn MNIST: Bộ dữ liệu MNIST bao gồm
60.000 mẫu huấn luyện và 10.000 mẫu khác để nhận
dạng, mỗi mẫu là một ảnh kích thước 28 x 28
- Bộ dữ liệu chữ viết tay tiếng Việt: Bộ dữ liệu chữ viết tay
tiếng Việt (VietData) bao gồm 89 lớp chữ cái in hoa, mỗi
lớp chọn ra 200 mẫu, như vậy bộ dữ liệu VietData tổng
cộng 17.800 mẫu
2 Phương pháp nghiên cứu
- Tác giả xây dựng mô hình nhân dạng chữ viết tay rời rạc dựa trên phương pháp phân lớp SVM - Support Vector Machines Công việc được thực hiện dựa trên 2 bước:
+ Bước 1: Xây dựng mô hình huấn luyện+ Bước 2: Phân lớp nhận dạng
Trang 53 Kết quả thực nghiệm
- Trên b d li u MNIST:ộ ữ ệ
+ Mô hình SVM đ c s d ng v i hàm nhân RBF ượ ử ụ ớ
và các tham s C = 10 (tham s hàm ph t), Cache = ố ố ạ
1000 (kích th c vùng nh đ l u tr các vect t a).ướ ớ ể ư ữ ơ ự
- Trên b d li u ch vi t tay ti ng Vi t:ộ ữ ệ ữ ế ế ệ
+ Vi c th c nghi m trên d li u ch vi t tay ti ng Vi t ệ ự ệ ữ ệ ữ ế ế ệ
đ c ti n hành theo ph ng th c th m đ nh chéo (Cross-ượ ế ươ ứ ẩ ịValidation)
4 Nhận xét
- SVM là m t ph ng pháp h c máy tiên ti n có c s toán h c ch t ch và đ t đ chính xác phân l p cao ộ ươ ọ ế ơ ở ọ ặ ẽ ạ ộ ớ
- H n ch khác c a SVM là hu n luy n đòi h i không gian nh l n ạ ế ủ ấ ệ ỏ ớ ớ
- B n ch t c a ph ng pháp SVM là phân l p nh phân nên vi c m r ng kh năng c a SVM đ gi i quy t các ả ấ ủ ươ ớ ị ệ ở ộ ả ủ ể ả ế
bài toán phân lo i nhi u l p là v n đ khó và c n r t nhi u nghiên c u.ạ ề ớ ấ ề ầ ấ ề ứ
2 CÁC NGHIÊN CỨU
TRƯỚC
Trang 63 MÔ TẢ BỘ DỮ
LIỆU
- Dữ liệu được thu thập từ hơn 30 người tình nguyện Nhóm sẽ góp chung dữ liệu với nhóm bạn
Đặng Văn Minh để làm Trainning set và Validation set Sau đó sẽ thu thập thêm dữ liệu để làm
tập Test set dành riêng cho nhóm để đánh giá độ chính xác của mô hình.
- Nhóm sẽ chuẩn bị những mẫu giấy A4 và sẽ nhờ người viết tay những con chữ vào các ô giấy
Mẫu dữ liệu Mẫu dữ liệu đã được viết
Trang 73 MÔ TẢ BỘ DỮ
LIỆU
Các bước thực hiện
B c 1: ướ S d ng ử ụ cv2 edge detection đ c t g n nh ng kho ng tr ng d th a đ thu n ti n trong vi c ể ắ ọ ữ ả ắ ư ừ ể ậ ệ ệ
l c các ô ch ọ ữ
Trang 83 MÔ TẢ BỘ DỮ LIỆU
Bước 2: Lọc từng ô chữ sau khi đã được cắt gọn.
Trang 93 MÔ TẢ BỘ DỮ LIỆU
Bước 3: Sau khi đã có được vị trí của các hàng và vị trí của các từng ô trong mỗi hàng Nhóm tiến
hành duyệt từng ô chữ và lưu vào drive.
Trang 113 MÔ TẢ BỘ DỮ LIỆU
Test set v i ớ 3.512 m u ẫ
đ c thu th p riêng bi t ượ ậ ệ
v i hai t p trên ớ ậ
- Sau khi phân loại và gán nhãn cho dữ liệu, có tổng cộng 29.211 mẫu với 89 class, trung bình mỗi
class sẽ có khoảng 328 tấm ảnh.
- Nhóm chia dữ liệu thu thập được thành 3 tập:
Training set với 20.740
mẫu, các mẫu từ training set
và validation set được thu
thập từ nhiều người viết
khác nhau.
Validation set với 5.229 mẫu,
không được dùng để huấn
luyện mô hình mà dùng để đánh giá mô hình sau khi train.
Trang 124 XỬ LÍ DỮ LIỆU VÀ TRÍCH XUẤT
ĐẶC TRƯNG
- Các nh trong t p train và t p validation đ u đ c chuy n thành nh nh phân (tr ng đen) và x lý nhi u.ả ậ ậ ề ượ ể ả ị ắ ử ễ
- C t b t các kho ng tr ng d th a xung quanh ch và th ng kê đ c min c a width và height là ắ ớ ả ắ ư ừ ữ ố ượ ủ (4, 15).
- Ti p theo ti n hành th resize v kích th c ế ế ử ề ướ (4, 15) m t vài hình, nh n th y hình không còn đ c rõ Do đó nhóm quy t ộ ậ ấ ượ ế
đ nh xoá các hình có ị width < 14 và height = 15.
Tiền Xử lý dữ liệu
- Sau đó resize v kích th c 14x16 đ tránh ề ướ ể
m t s ch nh y, h không đ c rõ và b h ộ ố ữ ư ượ ị ư
Trang 13- Hình ảnh được chia thành các ô nhỏ nối tiếp nhau,
mỗi ô có kích thước 2 x 2 pixel Sẽ có 4 giá trị hướng
và 4 giá trị độ lớn ứng với mỗi ô
- Mỗi ô vuông trong ảnh có kích thước 2x2 pixel và mỗi ô sẽ có 4 giá trị hướng và 4 giá trị độ lớn như sau:
Trang 14- Tiếp theo, thực hiện vote giá trị độ lớn của mỗi pixel có khoảng hướng có cùng vị trí tọa độ vào 1
trong 9 bin sau khi xác định được hướng của pixel thuộc pin tương ứng.
Công thức linear interpolation
Giá trị phương gradient bằng x tương ứng với độ lớn gradient y có cùng vị trí tọa độ (x thuộc [ , ]) Khi đó:
Trang 15- Chuẩn hóa vector histogram theo block gồm 4 ô, mỗi ô 2 x 2 pixel.
- Sau đó dịch block đó sang 1 ô và ta sẽ thực hiện chuẩn hóa cho block đó Đầu vào là một ảnh có kích thước 14x16, áp dụng thuật toán tính HOG với kích thước cells là 2x2 chúng ta sẽ thu được một lưới ô vuông có kích thước 14/2 = 7 ô theo chiều rộng và 16/2 = 8 ô theo chiều dài Sau khi khối block có kích thước 2x2 trải qua 6 bước theo chiều rộng và 7 bước theo chiều và ghép nối tiếp các vector có
36 phần tử lại với nhau ta sẽ có một vector có 36 x 6 x 7 = 1512
phần tử Đây là vector HOG đại diện cho toàn bộ hình ảnh
4 XỬ LÍ DỮ LIỆU VÀ TRÍCH XUẤT
ĐẶC TRƯNG
Trang 165 TRAINING VÀ ĐÁNH GIÁ CÁC
MODEL
- V i bài toán phân lo i ch vi t tay ti ng vi t, nhóm em s dùng các model sau đ hu n luy n: ớ ạ ữ ế ế ệ ẽ ể ấ ệ
+ Logistic Regression
+ Support vector machine (SVM)
+ Multi layer Perceptron (MLPClassifier)
- Đ đánh giá k t qu , chúng em s s d ng cách tính accuracy, accuracy càng cao thì mô hình càng t t ể ế ả ẽ ử ụ ố
1 Th c nghi m trên Logistic Regression ự ệ
- Thời gian train: 2m 23s
- Thời gian test (tập validation và tập test): 39s
Trang 185 TRAINING VÀ ĐÁNH GIÁ CÁC
MODEL
Dự đoán class ‘ẫ’ bằng model Logistic Regression
Dự đoán class ‘ẩ’ bằng model Logistic Regression
Dự đoán class ‘ỗ’ bằng model Logistic Regression
Dự đoán class ‘ỵ’ bằng model Logistic Regression
Trang 195 TRAINING VÀ ĐÁNH GIÁ CÁC
MODEL
2 Th c nghi m trên ự ệ Support vector machine (SVM)
- Thời gian train: 18m 12s
- Thời gian test (tập validation và tập test): 8m 16s
Trang 205 TRAINING VÀ ĐÁNH GIÁ CÁC
MODEL
- Nhận xét:
Các mẫu dữ liệu mà model dự đoán sai (dựa trên điểm f1-score): đ (36%)
Ảnh minh họa cho các trường hợp class bị dự đoán sai:
Dự đoán class ‘đ’ bằng model Support vector machine (SVM)
3 Th c nghi m trên ự ệ Multi layer Perceptron (MLPClassifier)
- Thời gian train: 8m 41s
- Thời gian test (tập validation và tập test): 45s
Trang 215 TRAINING VÀ ĐÁNH GIÁ CÁC
MODEL
- Đánh giá k t quế ả
+ Kết quả trên tập validation:
Trang 225 TRAINING VÀ ĐÁNH GIÁ CÁC
MODEL
Dự đoán class ‘ỗ’ bằng model MLP Dự đoán class ‘ỵ’ bằng model MLP
* Nh n xét chung cho các model ậ :
- Các mô hình đ u cho k t qu t t (đ u trên 60%), đi m accuracy cao nh t đ t đ n 71%.ề ế ả ố ề ể ấ ạ ế
- Mô hình MLP - Classifier cho k t qu t t nh t trên c 2 t p validation và test.ế ả ố ấ ả ậ
- Class ‘ ’ b d đoán sang class ‘y’ và ‘ ’ khá nhi u.ỵ ị ự ỷ ề
Trang 236 HƯỚNG CẢI THIỆN VÀ ỨNG
DỤNG
- Ứng dụng: ứng dụng thực tế của bài toán nhận dạng chữ viết tay tiếng Việt là
chấm bài thi trắc nghiệm.
- Đối với bài toán thực tế dạng này, bài toán ta sẽ được chia thành 2 bài toán
nhỏ hơn:
+ Bài toán xác định (Detection).
+ Bài toán nhận dạng (Classification).
- Các hướng cải thiện bài toán:
+ Accuracy các model nhóm em chọn cho kết quả chung là khá cao nhưng có nhiều class vẫn dự
đoán sai, nên phải học và tìm hiểu thêm nhiều model tốt hơn nữa.
+ Tìm hiểu thêm các phương pháp rút trích đặc trưng khác ngoài rút trích đặc trưng HOG.
+ Cải thiện cách thu thập dữ liệu và tiền xử lý ảnh vì có nhiều ảnh bị nhiễu khá nhiều.
+ Tăng thêm kích thước dữ liệu cho bài toán.
Tờ phiếu trắc nhiệm thông thường
Trang 24XIN CẢM ƠN!