1. Trang chủ
  2. » Giáo án - Bài giảng

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

13 74 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục tiêu của bài viết là nghiên cứu về thuộc tính trích chọn đặc trưng HOG và thuật toán học máy SVM, đồng thời sử dụng SVM với thuộc tính HOG trong nhận dạng chữ số viết tay cho bài toán nhận dạng số báo danh tự động.

Trang 1

TẠP CHÍ KHOA HỌC

QUẢN LÝ VÀ CÔNG NGHỆ

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

MCS HOG FEATURES AND SUPPORT VECTOR MACHINE BASED HANDWRITTEN DIGIT RECOGINITION SYSTEM

Đỗ Thị Thanh Nga

Trường Đại học Công nghệ và Quản lý Hữu Nghị

Email: thanhngait94@gmail.com

Nguyễn Vân Anh

Trường Đại học Kinh Doanh và Công Nghệ Hà Nội

Email: vnvananhcomputer@gmail.com

Ngày tòa soạn nhận được bài báo: 28/11/2018

Ngày phản biện đánh giá: 18/12/2018 Ngày bài báo được duyệt đăng: 28/12/2018

Tóm tắt: Nhận dạng chữ số viết tay là một bài toán khó nhưng có rất nhiều ứng dụng trong thực tế Nhận dạng chữ số viết tay có thể ứng dụng trong nhận dạng số báo danh

tự động, nhận dạng câu trả lời trắc nghiệm tự động,… Mục tiêu của bài báo là nghiên cứu

về thuộc tính trích chọn đặc trưng HOG và thuật toán học máy SVM, đồng thời sử dụng SVM với thuộc tính HOG trong nhận dạng chữ số viết tay cho bài toán nhận dạng số báo danh tự động.

Từ khóa:

Summary: Handwriting digit recognition is a difficult problem but there are many practical applications Handwritten alphanumeric identification can be applied in automatic attendance check, automatic multiple choice test answer identification, etc The objective

of the paper is to study the attribute HOG features and SVM, while using SVM with HOG attribute in hand writeen digit identification for automatic attendance check.

Keywords: HOG, SVM, MNIST

Trang 2

16 TẠP CHÍ KHOA HỌC

QUẢN LÝ VÀ CÔNG NGHỆ

I TỔNG QUAN NHẬN DẠNG CHỮ SỐ

Nhận dạng chữ số là đề tài thu hút rất nhiều nhà nghiên cứu quan tâm Nhận dạng chữ số được chia thành 2 loại: Nhận dạng chữ số in và nhận dạng chữ số viết tay Và trong bài báo này

ta sẽ chỉ tìm hiểu về nhận dạng chữ số viết tay

Các bước trong nhận dạng chữ số

Bước 1: Tiền xử lý

Bước này sẽ giúp tăng độ chính xác cho hệ thống nhận dạng Vì trong quá trình quét ảnh

sẽ gặp các loại nhiễu, kích thước ảnh không đồng nhất hoặc ảnh thiếu ánh sáng trong quá trình chụp

Bước 2: Tách các chữ số

Ở bước này sẽ tiến hành tách từng riêng từng ký tự để phục vụ nhận dạng Vì chỉ khi tách riêng từng ký tự đơn ra khỏi một tổng thể lớn thì hệ thống mới dễ dàng phân lớp và nhận dạng

Bước 3: Trích rút đặc trưng

Đặc trưng của ảnh là những đặc điểm riêng biệt giúp phân biệt ảnh này với ảnh khác Và để giảm độ phức tạp và tăng độ chính xác của thuật toán thì đòi hỏi các đặc trưng được trích chọn rút gọn nhưng vẫn đảm bảo đủ thông tin đối tượng Từ những tiêu chí trên ta phải tập hợp được đặc trưng riêng cho từng lớp để phân biệt các lớp với nhau

Bước 4: Huấn luyện và Nhận dạng

• Huấn luyện

Dữ liệu huấn luyện sau khi qua các khâu tiền xử lý và trích chọn đặc trưng sẽ được đưa vào huấn luyện Sau khi kết thúc quá trình huấn luyện, hệ thống sẽ lưu lại giá trị các tham số của hàm quyết định phân lớp để phục vụ cho việc nhận dạng sau này Quá trình huấn luyện tiêu tốn khá nhiều thời gian Tốc độ huấn luyện nhanh hay chậm còn tùy thuộc vào từng thuật toán huấn luyện, chiến lược và số lượng mẫu tham gia huấn luyện

• Nhận dạng

Để nhận dạng thì có rất nhiều các phương pháp khác nhau, mỗi phương pháp đều có những đặc điểm riêng

Từ bộ dữ liệu đã được huấn luyện kết hợp với các thuật toán phân lớp dữ liệu ta sẽ đưa ra được kết quả nhận dạng

II TRÍCH CHỌN ĐẶC TRƯNG VỚI HOG

Histogram of Oriented Gradients là một bộ vector mô tả đặc trưng của đối tượng Nó trích rút những thông tin đặc trưng hữu ích bằng cách loại bỏ những thông tin dư thừa gây nhiễu với mục đích để phát hiện đối tượng

Bài toán tính toán HOG gồm 5 bước:

Trang 3

TẠP CHÍ KHOA HỌC

QUẢN LÝ VÀ CÔNG NGHỆ

Bước 1: Tiền xử lý

Đầu tiên ta phải xác định được đối tượng cần quan tâm, sau đó sẽ cắt và điều chỉnh kích

thước ảnh về cùng một kích thước cho trước (Tùy vào từng bài toán mà ta đưa ra tỉ lệ kích thước

cụ thể)

Ở đây ta lấy bài toán nhận dạng người để làm ví dụ:

Từ một bức ảnh tổng thể có kích thước ban đầu 720x475 ta tiến hành cắt đối tượng cần quan

tâm về kích thước 64x128 (tỉ lệ 1:2)

Để nhận dạng thì có rất nhiều các phương pháp khác nhau, mỗi phương pháp đều có những đặc điểm

riêng

Từ bộ dữ liệu đã được huấn luyện kết hợp với các thuật toán phân lớp dữ liệu ta sẽ đưa ra được kết

quả nhận dạng

II TRÍCH CHỌN ĐẶC TRƯNG VỚI HOG

Histogram of Oriented Gradients là một bộ vector mô tả đặc trưng của đối tượng Nó trích rút

những thông tin đặc trưng hữu ích bằng cách loại bỏ

những thông tin dư thừa gây nhiễu với mục đích để

phát hiện đối tượng

Bài toán tính toán HOG gồm 5 bước:

Bước 1: Tiền xử lý

Đầu tiên ta phải xác định được đối tượng cần quan tâm, sau đó sẽ cắt và điều chỉnh kích thước ảnh

về cùng một kích thước cho trước (Tùy vào từng bài

toán mà ta đưa ra tỉ lệ kích thước cụ thể)

Ở đây ta lấy bài toán nhận dạng người để làm ví dụ:

Từ một bức ảnh tổng thể có kích thước ban đầu 720x475 ta tiến hành cắt đối tượng cần quan tâm về

kích thước 64x128 (tỉ lệ 1:2)

Hình 2.1 Điều chỉnh và phân tách ảnh

Bước 2: Tính toán Gradient của các hình ảnh

Đầu tiên các gradient chiều ngang và chiều thẳng Sau đó, chúng ta sẽ tính toán biểu đồ của các

gradient Điều này sẽ thực hiện được dựa trên hệ

thống các nhân (kernels) sau:

Điều này tính được bằng cách sử dụng toán tử Sobel trong OpenCV với lõi kích cỡ là 1

# Read image

im = cv2.imread (‘bolt.png’)

im = np.float32 (im) / 255.0

# Calculate gradient

gx = cv2.Sobel(img,cv2.CV_32F, 1, 0, ksize =1)

gy = cv2.Sobel(img,cv2.CV_32F, 0, 1, ksize =1) Tiếp theo chúng ta sẽ tìm được độ lớn và hướng của gradien bằng công thức sau:

𝑔𝑔 = √𝑔𝑔𝑥𝑥2 + 𝑔𝑔𝑦𝑦2

𝜃𝜃 = 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑔𝑔 𝑔𝑔𝑦𝑦

𝑥𝑥 Kết quả sau khi tính toán gradient chúng ta sẽ có như sau:

Sobel theo chiều x Sobel theo chiều y Cường độ gradient

Hình 2.2 Phân tích ảnh bằng gradient

Bước 3: Tính toán biểu đồ các Gradient trong một cells 8x8

Chia ảnh thành các ô có kích thước 8x8 pixel

Với mỗi thành phần nhỏ trong ô ảnh màu sẽ chứa 8x8x3= 192 giá trị pixel Còn với Gradient thì phần nhỏ đó chỉ chưa 8x8x2=128 giá trị pixel vì trong Gradient chỉ chứa 2 giá trị là độ lớn và hướng

Và để việc biểu diễn trở lên gọn hơn ta sẽ biểu diễn 128 giá trị đó trên một biểu đồ có 9 hướng tượng trưng cho hướng của gradient Nó tương ứng với 9 góc 0, 20,40,…,160

Ví dụ với hình ảnh nhỏ 8 x 8 chúng ta sẽ nhận được vẻ bên ngoài của gradient

Ở giữa: Một hình nhỏ RGB và trình bày các gradient bằng cách sử dụng mũi tên

Để nhận dạng thì có rất nhiều các phương pháp khác nhau, mỗi phương pháp đều có những đặc điểm riêng

Từ bộ dữ liệu đã được huấn luyện kết hợp với các thuật toán phân lớp dữ liệu ta sẽ đưa ra được kết quả nhận dạng

II TRÍCH CHỌN ĐẶC TRƯNG VỚI HOG Histogram of Oriented Gradients là một bộ vector mô tả đặc trưng của đối tượng Nó trích rút những thông tin đặc trưng hữu ích bằng cách loại bỏ những thông tin dư thừa gây nhiễu với mục đích để phát hiện đối tượng

Bài toán tính toán HOG gồm 5 bước:

Bước 1: Tiền xử lý

Đầu tiên ta phải xác định được đối tượng cần quan tâm, sau đó sẽ cắt và điều chỉnh kích thước ảnh

về cùng một kích thước cho trước (Tùy vào từng bài toán mà ta đưa ra tỉ lệ kích thước cụ thể)

Ở đây ta lấy bài toán nhận dạng người để làm ví dụ:

Từ một bức ảnh tổng thể có kích thước ban đầu 720x475 ta tiến hành cắt đối tượng cần quan tâm về kích thước 64x128 (tỉ lệ 1:2)

Hình 2.1 Điều chỉnh và phân tách ảnh

Bước 2: Tính toán Gradient của các hình ảnh

Đầu tiên các gradient chiều ngang và chiều thẳng Sau đó, chúng ta sẽ tính toán biểu đồ của các gradient Điều này sẽ thực hiện được dựa trên hệ thống các nhân (kernels) sau:

Điều này tính được bằng cách sử dụng toán tử Sobel trong OpenCV với lõi kích cỡ là 1

# Read image

im = cv2.imread (‘bolt.png’)

im = np.float32 (im) / 255.0

# Calculate gradient

gx = cv2.Sobel(img,cv2.CV_32F, 1, 0, ksize =1)

gy = cv2.Sobel(img,cv2.CV_32F, 0, 1, ksize =1) Tiếp theo chúng ta sẽ tìm được độ lớn và hướng của gradien bằng công thức sau:

𝑔𝑔 = √𝑔𝑔𝑥𝑥2 + 𝑔𝑔𝑦𝑦2

𝜃𝜃 = 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑔𝑔𝑦𝑦 𝑔𝑔

𝑥𝑥 Kết quả sau khi tính toán gradient chúng ta sẽ có như sau:

Sobel theo chiều x Sobel theo chiều y Cường độ gradient

Hình 2.2 Phân tích ảnh bằng gradient

Bước 3: Tính toán biểu đồ các Gradient trong một cells 8x8

Chia ảnh thành các ô có kích thước 8x8 pixel

Với mỗi thành phần nhỏ trong ô ảnh màu sẽ chứa 8x8x3= 192 giá trị pixel Còn với Gradient thì phần nhỏ đó chỉ chưa 8x8x2=128 giá trị pixel vì trong Gradient chỉ chứa 2 giá trị là độ lớn và hướng

Và để việc biểu diễn trở lên gọn hơn ta sẽ biểu diễn 128 giá trị đó trên một biểu đồ có 9 hướng tượng trưng cho hướng của gradient Nó tương ứng với 9 góc 0, 20,40,…,160

Ví dụ với hình ảnh nhỏ 8 x 8 chúng ta sẽ nhận được vẻ bên ngoài của gradient

Ở giữa: Một hình nhỏ RGB và trình bày các gradient bằng cách sử dụng mũi tên

Hình 2.1 Điều chỉnh và phân tách ảnh

Bước 2: Tính toán Gradient của các hình ảnh

Đầu tiên các gradient chiều ngang và chiều thẳng Sau đó, chúng ta sẽ tính toán biểu đồ của

các gradient Điều này sẽ thực hiện được dựa trên hệ thống các nhân (kernels) sau:

Điều này tính được bằng cách sử dụng toán tử

Sobel trong OpenCV với lõi kích cỡ là 1

# Read image

im = cv2.imread (‘bolt.png’)

im = np.float32 (im) / 255.0

# Calculate gradient

gx = cv2.Sobel(img,cv2.CV_32F, 1, 0, ksize =1)

gy = cv2.Sobel(img,cv2.CV_32F, 0, 1, ksize =1)

Tiếp theo chúng ta sẽ tìm được độ lớn và hướng của gradien bằng công thức sau:

g= √(g_x^2+g_y^2 )

Trang 4

18 TẠP CHÍ KHOA HỌC

QUẢN LÝ VÀ CÔNG NGHỆ

θ=arctan g_y/g_x Kết quả sau khi tính toán gradient chúng ta sẽ có như sau:

Để nhận dạng thì có rất nhiều các phương pháp

khác nhau, mỗi phương pháp đều có những đặc điểm

riêng

Từ bộ dữ liệu đã được huấn luyện kết hợp với

các thuật toán phân lớp dữ liệu ta sẽ đưa ra được kết

quả nhận dạng

II TRÍCH CHỌN ĐẶC TRƯNG VỚI HOG

Histogram of Oriented Gradients là một bộ

vector mô tả đặc trưng của đối tượng Nó trích rút

những thông tin đặc trưng hữu ích bằng cách loại bỏ

những thông tin dư thừa gây nhiễu với mục đích để

phát hiện đối tượng

Bài toán tính toán HOG gồm 5 bước:

Bước 1: Tiền xử lý

Đầu tiên ta phải xác định được đối tượng cần

quan tâm, sau đó sẽ cắt và điều chỉnh kích thước ảnh

về cùng một kích thước cho trước (Tùy vào từng bài

toán mà ta đưa ra tỉ lệ kích thước cụ thể)

Ở đây ta lấy bài toán nhận dạng người để làm ví

dụ:

Từ một bức ảnh tổng thể có kích thước ban đầu

720x475 ta tiến hành cắt đối tượng cần quan tâm về

kích thước 64x128 (tỉ lệ 1:2)

Hình 2.1 Điều chỉnh và phân tách ảnh

Bước 2: Tính toán Gradient của các hình ảnh

Đầu tiên các gradient chiều ngang và chiều

thẳng Sau đó, chúng ta sẽ tính toán biểu đồ của các

gradient Điều này sẽ thực hiện được dựa trên hệ

thống các nhân (kernels) sau:

Điều này tính được bằng cách sử dụng toán tử

Sobel trong OpenCV với lõi kích cỡ là 1

# Read image

im = cv2.imread (‘bolt.png’)

im = np.float32 (im) / 255.0

# Calculate gradient

gx = cv2.Sobel(img,cv2.CV_32F, 1, 0, ksize =1)

gy = cv2.Sobel(img,cv2.CV_32F, 0, 1, ksize =1) Tiếp theo chúng ta sẽ tìm được độ lớn và hướng của gradien bằng công thức sau:

𝑔𝑔 = √𝑔𝑔𝑥𝑥2 + 𝑔𝑔𝑦𝑦2

𝜃𝜃 = 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑔𝑔𝑦𝑦 𝑔𝑔𝑥𝑥 Kết quả sau khi tính toán gradient chúng ta sẽ có như sau:

Sobel theo chiều x Sobel theo chiều y Cường độ gradient

Hình 2.2 Phân tích ảnh bằng gradient

Bước 3: Tính toán biểu đồ các Gradient trong một cells 8x8

Chia ảnh thành các ô có kích thước 8x8 pixel

Với mỗi thành phần nhỏ trong ô ảnh màu sẽ chứa 8x8x3= 192 giá trị pixel Còn với Gradient thì phần nhỏ đó chỉ chưa 8x8x2=128 giá trị pixel vì trong Gradient chỉ chứa 2 giá trị là độ lớn và hướng

Và để việc biểu diễn trở lên gọn hơn ta sẽ biểu diễn 128 giá trị đó trên một biểu đồ có 9 hướng tượng trưng cho hướng của gradient Nó tương ứng với 9 góc 0, 20,40,…,160

Ví dụ với hình ảnh nhỏ 8 x 8 chúng ta sẽ nhận được vẻ bên ngoài của gradient

Ở giữa: Một hình nhỏ RGB và trình bày các gradient bằng cách sử dụng mũi tên

Để nhận dạng thì có rất nhiều các phương pháp

khác nhau, mỗi phương pháp đều có những đặc điểm

riêng

Từ bộ dữ liệu đã được huấn luyện kết hợp với

các thuật toán phân lớp dữ liệu ta sẽ đưa ra được kết

quả nhận dạng

II TRÍCH CHỌN ĐẶC TRƯNG VỚI HOG

Histogram of Oriented Gradients là một bộ

vector mô tả đặc trưng của đối tượng Nó trích rút

những thông tin đặc trưng hữu ích bằng cách loại bỏ

những thông tin dư thừa gây nhiễu với mục đích để

phát hiện đối tượng

Bài toán tính toán HOG gồm 5 bước:

Bước 1: Tiền xử lý

Đầu tiên ta phải xác định được đối tượng cần

quan tâm, sau đó sẽ cắt và điều chỉnh kích thước ảnh

về cùng một kích thước cho trước (Tùy vào từng bài

toán mà ta đưa ra tỉ lệ kích thước cụ thể)

Ở đây ta lấy bài toán nhận dạng người để làm ví

dụ:

Từ một bức ảnh tổng thể có kích thước ban đầu

720x475 ta tiến hành cắt đối tượng cần quan tâm về

kích thước 64x128 (tỉ lệ 1:2)

Hình 2.1 Điều chỉnh và phân tách ảnh

Bước 2: Tính toán Gradient của các hình ảnh

Đầu tiên các gradient chiều ngang và chiều

thẳng Sau đó, chúng ta sẽ tính toán biểu đồ của các

gradient Điều này sẽ thực hiện được dựa trên hệ

thống các nhân (kernels) sau:

Điều này tính được bằng cách sử dụng toán tử

Sobel trong OpenCV với lõi kích cỡ là 1

# Read image

im = cv2.imread (‘bolt.png’)

im = np.float32 (im) / 255.0

# Calculate gradient

gx = cv2.Sobel(img,cv2.CV_32F, 1, 0, ksize =1)

gy = cv2.Sobel(img,cv2.CV_32F, 0, 1, ksize =1) Tiếp theo chúng ta sẽ tìm được độ lớn và hướng của gradien bằng công thức sau:

𝑔𝑔 = √𝑔𝑔𝑥𝑥2 + 𝑔𝑔𝑦𝑦2

𝜃𝜃 = 𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎 𝑔𝑔𝑦𝑦 𝑔𝑔𝑥𝑥 Kết quả sau khi tính toán gradient chúng ta sẽ có như sau:

Sobel theo chiều x Sobel theo chiều y Cường độ gradient

Hình 2.2 Phân tích ảnh bằng gradient

Bước 3: Tính toán biểu đồ các Gradient trong một cells 8x8

Chia ảnh thành các ô có kích thước 8x8 pixel

Với mỗi thành phần nhỏ trong ô ảnh màu sẽ chứa 8x8x3= 192 giá trị pixel Còn với Gradient thì phần nhỏ đó chỉ chưa 8x8x2=128 giá trị pixel vì trong Gradient chỉ chứa 2 giá trị là độ lớn và hướng

Và để việc biểu diễn trở lên gọn hơn ta sẽ biểu diễn 128 giá trị đó trên một biểu đồ có 9 hướng tượng trưng cho hướng của gradient Nó tương ứng với 9 góc 0, 20,40,…,160

Ví dụ với hình ảnh nhỏ 8 x 8 chúng ta sẽ nhận được vẻ bên ngoài của gradient

Ở giữa: Một hình nhỏ RGB và trình bày các gradient bằng cách sử dụng mũi tên

Hình 2.2 Phân tích ảnh bằng gradient

Bước 3: Tính toán biểu đồ các Gradient trong một cells 8x8 Chia ảnh thành các ô có kích thước 8x8 pixel Với mỗi thành phần nhỏ trong ô ảnh màu sẽ chứa 8x8x3= 192 giá trị pixel Còn với Gradient thì phần nhỏ đó chỉ chưa 8x8x2=128 giá trị pixel

vì trong Gradient chỉ chứa 2 giá trị là độ lớn và hướng

Và để việc biểu diễn trở lên gọn hơn ta sẽ biểu diễn 128 giá trị đó trên một biểu đồ có 9 hướng tượng trưng cho hướng của gradient Nó tương ứng với 9 góc 0, 20,40,…,160

Ví dụ với hình ảnh nhỏ 8 x 8 chúng ta sẽ nhận được vẻ bên ngoài của gradient

Ở giữa: Một hình nhỏ RGB và trình bày các gradient bằng cách sử dụng mũi tên

Trang 5

TẠP CHÍ KHOA HỌC

QUẢN LÝ VÀ CÔNG NGHỆ

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

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 độ:

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

Trang 6

20 TẠP CHÍ KHOA HỌC

QUẢN LÝ VÀ CÔNG NGHỆ

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

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 độ:

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

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ả

Trang 7

TẠ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á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 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

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

Trang 8

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ô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 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)

Trang 9

TẠ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ó thể áp

dụng với cả 2 bài toán trên:

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

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:

viết tay tự tạo

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

Trang 10

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ố 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

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

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ê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.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ó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

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

Lần 2

Lần 3

Lần 4

Lần 5

Trung bình

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ố lượng Số

Số lượng tách sai

Số lượng tách đúng

KQ đúng KQ sai

Tỉ lệ

% đúng

Tỉ lệ

% sai

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ì:

Việt Nam và người phương Tây

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

Ngày đăng: 25/10/2020, 03:23

HÌNH ẢNH LIÊN QUAN

Hình 2.7. Quá trình dichuyển khối 16x16 Bước 5: Tính toán vecto đặc trưng HOG - 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
Hình 2.7. Quá trình dichuyển khối 16x16 Bước 5: Tính toán vecto đặc trưng HOG (Trang 8)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w