Tải bản đầy đủ (.docx) (61 trang)

Nghiên cứu mô hình học sâu trong ứng dụng nhận diện cảm xúc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.99 MB, 61 trang )

1

MỤC LỤC

DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT


2

Ký hiệu viết tắt

Diễn giải

HoG

Histogram of Oriented Gradient

LBP

Local Binary Pattern

EM

Expectation Maximization

PCA

Principal Component Analysis

LDA


Linear Discriminant Analysis

ANN

Artifical Neural Network

GMM

Gaussian mixture model

SVM

Support Vector Machine

CNN

Convolutional Neural Network

NLP

Natural Language Processing

DANH MỤC BẢNG BIỂU
Bảng 3.1: Môi trường thực nghiệm


3

Bảng 3.2: Bảng so sánh kết quả giữa các mô hình


MỤC LỤC HÌNH ẢNH


4

MỞ ĐẦU
1 Tính cấp thiết của đề tài


5
-

Khuôn mặt con người là một trong những bộ phận có nhiều dây thần kinh nhất trên
cơ thể con người, hệ thống dây thần kinh chằng chịt điều khiển các bộ phận trên
khuôn mặt (mắt, mũi, miệng…) nhằm thể hiện thái độ hay thậm chí là giao tiếp.
Theo một nghiên cứu của giáo sư người Mỹ Albert Mehrabian chỉ ra rằng, trong khi
giao tiếp, 93% thông tin được truyền tải qua giọng điệu và sự thể hiện trên khuôn
mặt của chúng ta, trong khi đó, chỉ có 7% thơng điệp được truyền tải bằng ngơn
ngữ. Qua đó cho thấy, từ những biểu hiện, cảm xúc của khn mặt, ta có thể lấy
được nhiều thông tin từ người đối diện hơn là dựa vào nội dung của cuộc hội thoại.
Ví dụ như khi các trinh sát tra khảo kẻ tình nghi, thì họ thường tìm kiếm các biểu
hiện như: chớp mắt liên tục, mắt đảo liên tục, mím mơi để xác định kẻ đó có nói dối
hay khơng. Hay là các bảo vệ của sân bay, nhận thấy một kẻ tình nghi, khuôn mặt
của hắn bất thường, lo lắng họ sẽ tiến hành tiến tới để kiểm tra. Hay là các hệ thống
tự động đánh giá sự hài lòng của khách hàng dựa trên biểu cảm của khuôn mặt. Cho
nên việc xây dựng một hệ thống để nhận biết biểu hiện trên khuôn mặt của con
người là một nhiệm vụ thiết thực và hữu ích nhưng cũng khơng hề đơn giản. Bài
toán nhận diện biểu cảm của gương mặt là một bài toán con của lĩnh vực computer
vision và machine learning. Những lĩnh vực đang rất được chú ý trong ngành công
nghệ thông tin hiện đại. Đề tài này sẽ nghiên cứu về vấn đề xử lý ảnh và mơ hình

học máy để nhận dạng các đặc điểm khuôn mặt. Với việc máy tính càng ngày càng
phát triển thì việc xây dựng các hệ thống làm thay việc của con người là vơ cùng
cần thiết.
2 Tính thực tiễn của đề tài

-

Các hệ thống tự động nhận diện biểu cảm của khuôn mặt có thể được áp dụng vào
vơ vàn những lĩnh vực khác nhau. Với sự tiến bộ vượt bậc của người máy, đặc biệt
là những người máy hình người, sự cần thiết của hệ thống nhận dạng biểu cảm
khuôn mặt là hiển nhiên. Với việc người máy càng ngày càng tương tác nhiều với
con người và bắt đầu trở thành một phần không thể thiếu của con người ở nơi làm
việc hay thậm chí là trong cuộc sống hàng ngày. Vì lý do đó, luận văn này trình bày
các giải thuật dựa trên lý thuyết máy học và mạng neural để đưa ra các mơ hình
nhằm phân tích cảm xúc cho các dữ liệu được thu thập từ các máy ảnh, máy quay.


6

Mục tiêu nghiên cứu luận văn sẽ đi sâu tìm cấu trúc của mạng neural trong việc xử
lý, phân tích biểu cảm từ hình ảnh được thu thập được, đồng thời dựa vào phân tích
để phân loại các chia thành các loại (N - negative – tệ, Neu – neutral – bình thường,
P – positive – tốt). Nhằm cho ra kết quả đánh giá có độ chính xác gần bằng với kết
quả ban đầu đã được đánh giá bởi con người. Với lượng dữ liệu lớn như hiện nay rất
khó để con người có thể đánh giá hết được, nên mục tiêu của nghiên cứu là xây
dựng mơ hình và giải thuật cho hệ thống có thể tự động phân tích và đánh giá cảm xúc
thu thập đươc. Phạm vi nghiên cứu tập trung vào xây dựng các mơ hình mạng neural
trên và Python nhằm hiện thực hố mơ hình được nghiên cứu. Từ đó đánh giá độ chính
xác của từng mơ hình mạng neural được nghiên cứu dựa trên các dữ liệu thử nghiệm.


3 Nội dung luận văn
Luận văn bao gồm 3 chương:
Chương 1: KHÁI QUÁT VỀ NHẬN DIỆN CẢM XÚC
Giới thiệu các cách thức nhận dạng khuôn mặt người, vì sao nên nhận dạng
cảm xúc khn mặt, tầm quan trọng của bài toán trong thực tiễn, một số ứng dụng
thực tiễn của bài toán nhận dạng cảm xúc khn mặt
Chương 2: NGHIÊN CỨU CÁC PHƯƠNG PHÁP TRÍCH TRỌN ĐẶC
TRƯNG VÀ CÁC MƠ HÌNH HỌC MÁY.
-

Nghiên cứu các phương pháp trích trọn đặc trưng hình ảnh phổ biến như

-

Gabor, HoG, LBP
Giới thiệu ứng dụng Deep Learning vào phân tích cảm xúc với dữ liệu
thu thập được, bao gồm tổng quan và các thuật toán trong Deep Learning.
Khái quát về mạng neural trong xử lý ngôn ngữ tự nhiên. Các kiến trúc
mạng Neural được xem xét trong nghiên cứu CNN.

Chương 3: THỰC NGHIỆM NHẬN DIỆN CẢM XÚC
Thực nghiệm xây dựng ứng dụng nhận dạng cảm xúc trên khuôn mặt và
đánh giá các kiến trúc mạng được nghiên cứu. Bao gồm mô tả về dữ liệu và giải
thuật được nghiên cứu. Cách thực nghiệm cho các mơ hình. Sau đó đánh giá độ
chính xác của các giải thuật.


7

CHƯƠNG 1: KHÁI QUÁT VỀ NHẬN DẠNG CẢM XÚC KHUÔN MẶT

1.1

Khái niệm biểu cảm khuôn mặt
Theo cách hiểu thông thường, biểu cảm khn mặt có thể hình dung là thể

hiện bên ngoài tương ứng với một trạng thái của hệ cơ nét mặt nằm dưới vùng da
mặt. Đây cũng là một khái niệm gần gũi với con người trong cuộc sống hàng ngày bởi
con người trong sinh hoạt, lao động, giao tiếp đều cần phải biểu lộ thông tin mà mình
muốn truyền đạt hoặc thậm chí là phản xạ, mà trong đó, biểu cảm khn mặt gắn liền
với việc biểu lộ thông tin qua khuôn mặt là một trong những cách thức cơ bản và phổ
dụng nhất của con người
Các nhà tâm lý học nhìn nhận biểu cảm khn mặt dựa trên những trạng thái
tâm lý con người. Có thể hình dung, khi nói đến tâm trạng hay trạng thái tâm lý là
nói đến một dạng cảm xúc có cường độ nhất định, tồn tại trong một khoảng thời
gian tương đối. Những trạng thái tâm lý có tác động mạnh vào các quyết định của
con người như các thao tác, hành vi, hoạt động. Theo hướng này, trạng thái biểu
cảm có thể được hiểu là cách thức con người thể hiện cảm xúc, dự đốn hay chia sẻ
tình cảm của mình.


8

Hình 1.1 Mơ tả dưới dạng ma trận của các loại cảm xúc theo 2 chiều: cường độ
cao hay thấp(I) và đánh giá tích cực hay tiêu cực(E) của Shaver
Có nhiều cách nhìn nhận về việc phân chia các trạng thái biểu cảm., chẳng hạn như
chia thành 3 mức chính: mức cao, mức trung và mức thấp. Trong đó mức cao thể
hiện sự khác biệt rõ rệt giữa hài lòng và khơng hài lịng. Mức chung thể hiện cảm
giác như tức giận, khiếp sợ, vui mừng và ngạc nhiên. Mức thấp thể hiện khác biệt
nhỏ như với trạng thái tức giận ta có những mức độ khác nhau. Bên cạnh đó, một
cách phân chia trạng thái biểu cảm khác là theo tâm trạng buồn, ngạc nhiên và vui.

Chẳng hạn như trong nghiên cứu của Shaver và các đồng nghiệp về việc phân tích
liên quan đến các trạng thái yêu, vui mừng, ngạc nhiên, tức giận, buồn và sợ hãi. Gần
đây, Matsumoto và các đồng nghiệp sử dụng cách phân chia các trạng thái cảm xúc của
khuôn mặt đã chia thành 7 nhóm thể hiện chính.

Hình 1.2 Trạng thái cảm xúc khuôn mặt cơ bản trong nghiên cứu của Matsumoto
Hệ cơ mặt đóng vai trị quan trọng trong việc tạo ra các biểu cảm của mặt, các cơ
trên khuôn mặt ở trạng thái khác nhau với những trạng thái biểu cảm khác nhau.


9

Hình 1.3 Hệ cơ mặt
Nói chung, trước khi có những sự phát triển trong lĩnh vực công nghệ thông
tin, đặc biệt là trong lĩnh vực thị giác máy, việc phân tích biểu cảm khn mặt về cơ
bản là vấn đề của những nhà nghiên cứu tâm lý và bác sĩ. Tuy nhiên sau đó đã có
những sự thay đổi và đã xuất hiện nhiều nhóm nghiên cứu, nhiều cơng ty đầu tư vào
vấn đề phân tích biểu cảm khn mặt trên phương diện xử lý ảnh và đồ họa máy
tính. Có thể kể đến một vài kết quả khởi đầu như: vào năm 1978, Suwa và các cộng
sự đã trình bày một khảo sát sơ bộ về việc phân tích biểu cảm khn mặt tự động
từ một chuỗi các hình ảnh; vào những năm 90, vấn đề nghiên cứu biểu cảm khuôn
mặt tự động đạt được nhiều sự quan tâm với sự tiên phong của Mase và Pentland,
trong cơng trình này các tác giả trình bày một phương pháp sử dụng luồng quang
học để ước lượng các cử động của cơ mặt và dựa vào đó để nhận dạng một số biểu
cảm đặc trưng, theo đó những thí nghiệm ban đầu cho thấy độ chính xác khoảng
80% khi nhận bốn loại: hạnh phúc, giận dữ, ghê tởm, và ngạc nhiên. Nghiên cứu về
biểu cảm khuôn mặt trong lĩnh vực công nghệ thơng tin rất được quan tâm đến
chính bởi vì nó hứa hẹn rất nhiều ứng dụng trong cuộc sống, chẳng hạn:



Các hệ thống xác thực bằng sinh trắc học trong thời gian thực cho phép
người dùng đăng nhập bằng cách nhìn vào ống kính camera


10


Các hệ thống kiểm sốt vào ra và có lưu vết thời gian



Các ứng dụng nhận dạng đối tượng khơng cần sự ghi danh trước.



Hệ thống giám sát video và nhận dạng khn mặt tự động

1.2

Phân tích cảm xúc
Phân tích cảm xúc là một lĩnh vực mới trong xử lý ngôn ngữ tự nhiên, sử

dụng các kỹ thuật NLP để rút trích thơng tin cảm xúc của con người từ một câu nói
hay một hình ảnh, từ đó giúp đánh giá cảm xúc của con người là tích cực hay tiêu
cực. Dựa vào mạng xã hội, sử dụng các kỹ thuật trong NLP có thể rút trích thơng tin
và từ đó thống kê các mức độ quan tâm của người dùng đối với các sự kiện và
thông tin được chia sẻ, giúp việc tổng hợp đánh giá của người sử dụng cho các cơng
ty và tổ chức được tốt hơn.

Hình 1. 4 Phân tích cảm xúc từ hình ảnh

Các vấn đề cần quan tâm ở đây là:


Làm thế nào mà máy có thể hiểu đó là ý kiến chủ quan hay thiên về cảm xúc
bản thân


11


Làm thế nào để máy phân rõ hai cực tích cực và tiêu cực



Làm thế nào để máy có thể giải quyết các cảm xúc chủ quan



Làm thế nào để máy tính điểm cho một quan điểm, ý kiến



Làm thế nào để máy biết được cường độ của cảm xúc



Làm thế nào để biết sự khác nhau giữa cảm xúc của các khn mặt

Chúng ta có thể theo dõi các sản phẩm, thương hiệu hay cả con người xem cách mà
mọi người đang có cái nhìn tích cực hay tiêu cực trên web. Vì vậy mà gần đây các

nhà khoa học đã sử dụng các mơ hình trong Deep Learning cho q trình tự học và
phân tích cảm xúc trong ngôn ngữ, nhằm tiến gần hơn đến việc con người và máy
tính giao tiếp với nhau.
1.3 Một vài hệ thống nhận dạng biểu cảm
1.3.1 Emoji8:
• Ứng dụng này sử dụng Windows Machine Learning chạy cục bộ trên thiết bị chứ

không phải dựa vào máy chủ, để nhận dạng nét mặt. Nó sẽ đưa ra biểu tượng cảm
xúc ngẫu nhiên để bạn bắt chước, phân tích nguồn cấp dữ liệu video từ webcam
của máy tính, sau đó cho bạn biết tỉ lệ phần trăm chính xác bạn giống với các biểu


tượng cảm xúc này bao nhiêu để "chấm điểm" cho bạn.
Bạn có thể dùng nó để thử và luyện khả năng biểu đạt cảm xúc bằng khn mặt. Nó
cịn cung cấp cho bạn tùy chọn tạo ảnh động (GIF) với các biểu cảm của mình để
chia sẻ trên các mạng xã hội, điển hình như Twitter. Emoji8 hồn tồn miễn phí và
hiện có sẵn trong Microsoft Store. Mã nguồn của ứng dụng này hiện cũng đã được
Microsoft công khai trên GitHub.


12

Hình 1. 5 Ứng dụng nhận diện cảm xúc Emoji8
Sophia (robot)
Sophia là một robot hình dạng giống con người được phát triển bởi cơng ty Hanson

1.3.2


Robotics ở Hồng Kơng. Sophia được kích hoạt ngày 19 tháng 4 năm 2015, xuất

hiện lần đầu tại Liên hoan South By Southwest (Liên hoan thường niên hàng năm tổ
chức tại Texas, Austin vào trung tuần tháng 3 với các sự kiện lớn về công nghệ, ca
hát hay phim truyện)
• Sophia được thiết kế cử động giống con người và có trí tuệ thơng minh nhân tạo.
Mục đích chế tạo Sophia là phát minh ra một robot có ý thức, có sự sáng tạo và có
khả năng như bất kỳ con người nào để giúp con người trong các vấn đề cuộc sống
thường ngày như để phục vụ chăm sóc sức khỏe, điều trị, giáo dục và các ứng dụng
dịch vụ khách hàng.
• Sophia có làn da như da người được làm từ silicon cao cấp. Robot này được tạo
hình như một phụ nữ. Đơi mắt cô robot này được trang bị máy ảnh video cho phép
nó thực hiện giao tiếp bằng mắt. Sophia có thể nhận ra con người và học hỏi từ
những gì cơ nhìn thấy. Được trang bị cơng nghệ tiên tiến cho phép Sophia giao tiếp
với con người, Sophia có thể thể hiện 62 nét mặt sắc thái biểu cảm khác nhau trên
khn mặt.
• Phần mềm của Sofia được cấu thành từ ba phần: Trí tuệ ở mức rất cơ bản (trả lời
những câu hỏi đơn giản), khả năng "diễn thuyết" với văn bản được nạp sẵn, kết hợp


13

thuật toán để ngắt nối câu từ sao cho hợp lý. Cuối cùng là một hệ thống sử dụng
chatbot kết hợp với cơ khí, giúp Sophia có thể nhìn ai đó, lắng nghe họ để lọc ra
những "từ khóa" và ngữ nghĩa, sau đó lựa chọn những câu trả lời được soạn sẵn để
phát ngơn. Sophia chỉ có thể trả lời những câu hỏi một khi được kết nối với Internet,
máy tính và chỉ giới hạn trong những thơng tin mình có được. Sophia được đánh giá
chỉ là một hệ thống chatbot với những thơng tin mình sẵn có trong bộ nhớ. Ngồi ra,
Sophia cịn có khả năng nhận dạng cảm xúc của người mà nó đang giao tiếp để đưa
ra các đoạn hội thoại.
• Sophia là robot đầu tiên được cơng nhận quyền cơng dân


Hình 1.6 Robot Sophia – robot có hình dạng giống con người


14

CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP TRÍCH CHỌN ĐẶC TRƯNG VÀ
HỌC MÁY TRONG NHẬN DẠNG
2.1 Một số phương pháp trích chọn đặc trưng

2.1.1 Tổng quan về các phương pháp trích trọn đặc trưng
Đặc trưng được hiểu là những đặc điểm riêng biệt của một đối tượng để phân
biệt nó với các đối tượng khác.[1,2]
Trích chọn đặc trưng bao gồm hai phần: trích xuất đặc trưng (feature
extraction) và lựa chọn đặc trưng (feature selection). Mục đích của bước này nhằm
rút gọn các dữ liệu hình ảnh thành các đặc trưng để phân biệt các hoạt động đang có
và làm dữ liệu đầu vào cho bước phân lớp.
Tập các đặc trưng thu được từ dữ liệu gọi là không gian đặc trưng. Khi các
hoạt động được phân tách càng rõ trong không gian đặc trưng thì hiệu xuất nhận
dạng sẽ càng cao. Điều kiện lý tưởng nhất của hệ thống nhận dạng là đặc trưng của
cùng một loại hành động có thể xếp cùng một nhóm và đặc trưng của các loại hành
động khác nhau phân biệt nhau càng xa càng tốt.
Không gian đặc trưng của hệ thống nhận dạng hành động càng lớn thì số
lượng tham số, số lượng phép tính, thời gian tính tốn địi hỏi càng cao khi thực
hiện q trình phân lớp. Do đó cần lựa chọn số lượng các đặc trưng sao cho càng ít
càng tốt nhưng vẫn phải đảm bảo hiệu năng cho hệ thống nhận dạng. Trong các
phần sau của luận văn, bước trích chọn đặc trưng chỉ tập trung vào việc trích xuất
đặc trưng mà khơng lựa chọn.[1,2,3,4]
2.1.2 Phương pháp trích rút Gabor
Phương pháp trích chọn đặc trưng Gabor được giới thiệu vào những năm 1990. Ý
tưởng của phương pháp Gabor là sử dụng biến đổi dạng sóng. Các đặc trưng Gabor

được trích chọn trực tiếp từ ảnh mức xám. Tính chất quan trọng của phương pháp
này là nó làm việc tốt với ảnh bị quay, độc lập với tỷ lệ ảnh, và biến đổi ảnh.
Đặc điểm của trích chọn đặc trưng Gabor là đặc biệt với tần số và hướng đại diện,
giống như hệ thống nhận diện khn mặt người. Nó đặc biệt thích hợp cho cho trích
chọn đặc trưng kết cấu và nhận diện. Bộ lọc Gabor trích chọn trực tiếp từ ảnh cấp
xám. Trong miền không gian hai chiều, Gabor là một hàm Gaussian dạng sóng hình
sin phức hợp, có thể thực hiện tính tốn biến đổi bằng cơng thức:


15

Trong trường hợp này:
(x, y) là tọa độ điểm (pixel) trong miền khơng gian ảnh
ω: Là tần số góc trung tâm
θ: Là hướng của bộ lọc Gabor
σ: Là biểu diễn độ sắc nét dọc theo cả hai hướng x và y

Hình 2.1 Bộ lọc Gabor với 5 loại tần số và 8 hướng khác nhau
Trong hình 2.1. Bộ lọc Gabor với 5 loại tần số và 8 hướng khác nhau. Hình 2.1
minh họa bộ lọc Gabor trong trường hợp chọn 5 loại tần số và 8 hướng khác
nhau.Trên thực tế đa số các thực nghiệm sẽ chọn bộ thông số này. Công thức sau
đây tương ứng là giá trị cho 5 loại tần số và 8 hướng với bộ lọc Gabor trong ví dụ
trên:


16

Giả sử chúng ta có ảnh kích thước 120x120, với việc sử dụng 40 bộ lọc Gabor như
hình 1, chúng ta sẽ có số lượng đặc trưng là 120x120x40 chiều. Chúng ta có thể
giảm số chiều bằng các phương pháp như PCA, LDA…


Hình 2.2 Ảnh sau khi sử dụng bộ lọc Gabor tương ứng với hình 2.1
Biểu diễn Gabor của một ảnh mặt người I(x, y) có thể thu được bằng cách kết hợp
cùng với biểu thức Gabor tương ứng:

Trong đó Gu, v(x,y) là biểu thị mảng hai chiều kết quả tích chập kết hợp tương ứng
với bộ lọc Gabor với tỷ lệ u và hướng v. Phép tích chập ở đây được hiểu như là
phép lọc ảnh để chọn ra các thành phần theo biến đổi Gabor. Hình 2.2 minh họa 40


17

kết quả tương ứng khi sử dụng bộ lọc Gabor với 5 loại tỷ lệ và 8 hướng tương ứng
như trong hình 2.1.
Như vậy, mỗi ảnh I(x, y) có thể được biểu diễn bởi một tập hợp các bộ các tham số
Gabor như sau (tùy theo cách chọn u và v):
{Gu,v(x,y) | u = 0,1,...4; v = 0,1,2,...7 }.
Giá trị của mỗi Gu,v (x,y) sau đó được lấy mẫu bởi một hệ số của r, chuẩn hóa và
thu được véc tơ zu,v bằng cách nối các hàng liên tục. Véc tơ Z cuối cùng thu được
biểu diễn cho ảnh I(x,y) bởi cách nối các véc tơ Zu,v như sau:

Trong đó (zu,v) T là véc tơ chuyển vị của zu,v. Đặc trưng nguồn gốc véc tơ Z bao
gồm tất cả các yếu tố của Gabor đại diện tập:{{Gu\,v(x,y) | u=0,1,...4; v=
0,1,2,...7 }.
Trên thực tế, kích thước của véc tơ Z là khá cao. Ví dụ với ảnh 112 x 92 thì kích
thước véc tơ là: (112 x 92) x (5 x 8)/ (4 x 4) = 25.760. Khi hệ số lấy mẫu là r = (4 x
4) = 16. Chúng ta có thể làm giảm kích thước của véc tơ xuống bằng các thuật tốn
như LDA, PCA.
2.1.3 Phương pháp trích rút đặc trưng HoG
Lược đồ gradient định hướng (HOG) là một bộ mô tả đặc trưng, ban đầu được thiết

kế để phát hiện người (human detection) nhưng sau đó được phát triển và ứng dụng
rộng hơn trong thị giác máy tính, xử lý hình ảnh và nhận dạng.
HOG là một dạng của biểu diễn đặc trưng bằng cách sử dụng các đặc trưng tồn cục
để mơ tả đối tượng chứ khơng sử dụng các đặc trưng cục bộ, điều này dẫn đến việc
tính tốn với HOG là đơn giản hơn so với các phương pháp khác khi chúng ta chỉ
cần thao tác trên tồn bộ bức ảnh thay vì trên những phân vùng hay phân đoạn nhỏ.
Phương pháp này sử dụng một cửa sổ trượt có kích thước xác định trượt trên tồn
bộ bức ảnh và tính tốn các vector gradient cho mỗi khu vực mà cửa sổ đi đến. Để
hiểu rõ hơn về cách thức thuật toán HOG hoạt động trước tiên chúng ta tìm hiểu về
vector gradient[5,6,7]
2.1.3.1 Vector gradient
Theo tốn học, gradient của một trường vơ hướng là một trường vector có chiều
hướng về phía tăng lớn nhất và có độ lớn là mức độ thay đổi lớn nhất của trường vô
hướng. Giả sử hàm f là hàm số rừ R n đến R: f = f(x1, x2, x3 … xn), khi đó theo
định nghĩa gradient của f là một vector mà thành phần là các đạo hàm riêng của f
theo các biến. Nghĩa là:


18

Trong thị giác máy tính bài tốn được đưa về việc tính vector gradient cho các điểm
ảnh trong một bức ảnh. Nó là sự tính tốn các thay đổi về cường độ theo các chiều
ngang và dọc xung quanh mỗi điểm ảnh.
Ví dụ: Xét một bức ảnh xám (hình 2.12), giá trị cường độ các điểm ảnh nằm trong
khoảng [0, 255]. Một điểm ảnh có giá trị cường độ bên trái là 157, giá trị cường độ
bên phải là 65 thì mức thay đổi giá trị theo chiều ngang là 157 - 65 = 92. Tương tự
giá trị cường độ cận trên là 63 và cận dưới là 198 thì mức thay đổi giá trị theo chiều
dọc là 198 - 63 = 135. Đặt hai mức thay đổi cường độ trên cạnh nhau ta được vector
gradient tại điểm đang xét là [ 92 135]


Hình 2.3 Ví dụ tìm vector gradient cho một điểm ảnh

2.1.3.2 Tính tốn gradients
Để có thể tính toán gradients cho một ảnh chúng ta sử dụng hai bộ lọc để tính tốn
gradient theo hai hướng x và y bằng cách sử dụng tích chập (convolution):
Gx = I*Mx
Gy = I*My
Với Mx = [-1 0 1] và My = [-1 0 1]T là bộ lọc theo chiều x và chiều y, I là ảnh cần
tính tốn vector gradient.
Kết quả thu được là một hình ảnh gradient G. Độ lớn G(x, y) và hướng (góc lệch θ)
của vector gradient đối với mỗi điểm ảnh có thể tính tốn như sau:


19

2.1.3.3 Gán hướng cho gradient
Ảnh gradient của MHI được chia thành các cell có kích thước 3x3, khơng gian góc
từ 0 o đến 360o cho mỗi cell được chia thành 9 bin có kích thước giống nhau. Có
nghĩa là các giá trị hướng trong khoảng từ 0 o đến 40 o được gán là 1, trong khoảng
từ 40 o đến 80 o được gán là 2...Sau đó histogram ứng với mỗi cell sẽ được tính độc
lập.[8,9,10]
2.1.3.4 Tính tốn histogram cho từng cell và từng khối
Ứng với mỗi bin ta thống kê độ lớn gradient tại từng vị trí, tại tọa độ (x, y) nếu góc
lệch θ nằm trong bin thì giá trị bin đó bằng giá trị độ lớn G(x, y), ngược lại giá trị
bin tại tọa độ (x, y) bằng 0. Tính tốn với tất cả các điểm trong mỗi cell ta thu được
biểu đồ gradient cho từng cell tương ứng. Vector đặc trưng cho từng cell sẽ gồm 9
giá trị tương ứng với 9 bin.
Để đáp ứng tốt với các điều kiện về sự thay đổi ánh sáng, độ tương phản… các giá
trị gradient sẽ được chuẩn hóa. Để làm được điều này các cell sẽ được nhóm thành
các vùng liên kết gọi là các khối (block) 2x2, nghĩa là mỗi khối sẽ chứa 4 cell. Khi

đó vector đặc trưng HOG sẽ là tổng hợp các histogram của các cell đã được chuẩn
hóa từ tất cả các khối[11,12,13]
2.1.3.5 Chuẩn hố các khối
Có nhiều phương pháp để chuẩn hóa các khối. Nếu gọi v là vector cần chuẩn hóa
chứa tất cả các histogram của một khối, ||vk|| là giá trị chuẩn hóa của nó theo các
chuẩn k = 1 hoặc 2 và e là một hằng số nhỏ thì ta có các cơng thức chuẩn hóa sau:


20

2.1.4 Phương pháp trích chọn Local binary pattern (LBP)
LBP là mẫu nhị phân cục bộ được sử dụng để tính tốn mức độ tương phản cục bộ
của ảnh. Ngồi ra LBP cũng là một dạng của biểu diễn vector đặc trưng, một vector
đặc trưng có thể được tính như sau:
- Bước 1: Chia hình ảnh ra thành các ơ, ví dụ: 16×16 cho mỗi ơ;
- Bước 2: Với mỗi pixel trong một ô, so sánh giá trị điểm ảnh của nó với 8 pixel lân
cận theo thứ tự cùng chiều hoặc ngược chiều kim đồng hồ;
- Bước 3: Với những điểm mà giá trị pixel ở ô trung tâm lớn hơn giá trị pixel ở lân
cận ta đánh số 0, ngược lại ta đánh số 1. Quá trình so sánh kết thúc ta thu được một
số nhị phân có 8 chữ số (thường được viết lại dưới dạng thập phân);
- Tính tốn một lược đồ cho mỗi ơ theo số lần trung tâm lớn hơn và nhỏ hơn các lân
cận. Lược đồ này có thể xem là một vector đặc trưng có 256 chiều.
Ta xét một ví dụ, điểm được xét là pixel 5, các điểm lân cân của nó là 3-7-9-4-6-87-3. Ta sẽ đi tìm trọng số ứng với các điểm lân cận để tính tốn giá trị nhị phân. Với
mỗi vùng lân cận A của điểm trung tâm B=5, nếu A > B thì giá trị trọng số là 1, nếu
A < B thì giá trị trọng số là 0.


21

Hình 2.4 Ví dụ về LBP với ơ 3x3

Lấy thứ tự từ điểm góc trên cùng bên phải theo chiều kim đồng hồ ta có dãy nhị
phân : 011011102, biểu diễn thập phân là 110.

Hình 2.5 Biểu diễn ma trận trọng số thành dãy nhị phân trong LBP

Thông thường trong một bức ảnh khi tính tốn LBP chúng ta thường bỏ đi các pixel
nẳm ở rìa ngồi cùng do khơng đủ vùng lân cận để so sánh. Việc bỏ đi một pixel ở
rìa ngồi cùng là có thể vì các đối tượng trong bức ảnh thường khơng thuộc pixel
ngồi cùng này. Hình 2.6 là kết quả sau khi sử dụng phương pháp LBP với hai bức
ảnh có độ sáng khác nhau.


22

Hình 2.6 Hình ảnh LBP cho hai ảnh gốc có độ sáng khác nhau. a là các ảnh gốc, b
là ảnh LBP tương ứng.

Các vector đặc trưng LBP có thể được xử lý bằng các thuật toán học máy như SVM,
k-nearest neighbors…để tiến hành phân loại. Các trình phân loại như vậy có thể
được sử dụng trong các bài tốn nhận dạng hoặc phân tích kết cấu hình ảnh.
[14,15,16]
2.2
Một số mơ hình học máy
2.2.1 Bài tốn học máy
Học máy (machine learning) là một lĩnh vực của trí tuệ nhân tạo nghiên cứu việc
xây dựng các giải thuật cho phép một mơ hình có thể tự động học từ những dữ liệu
nhằm giải quyết những vấn đề cụ thể. Mục tiêu của học máy là nghiên cứu tìm ra
cách thức để mơ hình hóa bài tốn giúp máy tính tự động sử lý, học từ dữ liệu để
thực hiện nhiệm vụ đặt ra một cách tối ưu nhất có thể.[17]
2.2.2 Học có giám sát (supervised learning)

Đây là phương pháp được sử dụng phổ biến nhất trong bài toán học máy. Các thuật
toán của phương pháp này dự đoán đầu ra (new output) của một dữ liệu mới (new
input) dựa trên các cặp (input, output) đã biết trước đó, cặp dữ liệu này còn được
gọi là (data, label) tức là (dữ liệu, nhãn).[18]
Về mặt toán học khi sử dụng phương pháp học có giám sát, chúng ta có tập hợp các
biến đầu vào X = {x1, x2 …xn} và một tập hợp đầu ra tương ứng Y = {y1, y2 …


23

yn} trong đó xi, yi là các vector. Tập hợp các cặp (xi, yi) ∈ X × Y gọi là tập huấn
luyện (training data). Từ dữ liệu huấn luyện ban đầu cần tính tốn xây dựng một
hàm số f ánh xạ mỗi phần tử của tập X sang một phần tử (xấp xỉ) tương ứng của tập
Y:
yi ≈f(xi), ∀i=1, 2…n
Mục tiêu của hàm f là tính tốn thật tối ưu sao cho khi có dữ liệu mới x chúng ta có
thể tính được đầu ra tương ứng y = f(x).
Ví dụ: trong nhận dạng chữ viết tay, tập huấn luyện sẽ gồm rất nhiều ví dụ của các
chữ cái được viết bởi nhiều người khác nhau. Chúng ta đưa những ảnh này kèm
theo nhãn tương ứng với từng bức ảnh vào thuật tốn. Sau khi tính tốn và xây dựng
một mơ hình trong đó đầu vào là ảnh và đầu ra là chữ cái tương ứng, khi nhận được
một bức ảnh mới mơ hình sẽ cho chúng ta biết nó tương ứng vơi chữ cái nào.
Bản thân phương pháp học có giám sát lại được chia thành hai nhóm:
- Bài toán phân loại (classification): các nhãn của dữ liệu đầu vào được chia thành
hữu hạn các nhóm. Ví dụ: bài toán phân loại thư điện tử, nhận dạng chữ viết tay, dị
tìm khn mặt…
- Bài tốn hồi quy (regression): các nhãn của dữ liệu đầu vào không được chia thành
hữu hạn các nhóm mà là một giá trị cụ thể. Ví dụ: bài tốn dự đốn giá cả một số
mặt hàng, dự đốn tuổi…
Phần tiếp theo của luận văn trình bày một số thuật toán sử dụng trong bài toán học

có giám sát.[19,20]
2.2.2.1 Support vector machine (SVM)
Support vector machine (SVM) là phương pháp phân loại nhị phân. Với một tập
huấn luyện thuộc hai lớp cho trước, thuật toán SVM xây dựng mơ hình để phân loại
các dữ liệu khác vào một trong hai lớp đã biết.
Một SVM hỗ trợ xây dựng một siêu phẳng hoặc một tập hợp các siêu phẳng trong
không gian một hoặc nhiều chiều sao cho khoảng cách từ siêu phẳng đến các điểm
dữ liệu càng xa càng tốt. Trong hình 2.7 các dữ liệu được phân thành hai lớp với hai
đường biên và một siêu phẳng


24

Hình 2.7 Ví dụ về SVM. Đường chấm chấm màu đen là siêu phẳng, các đường nét
liền màu đen là hai đường biên
Giả sử tập huấn luyện gồm n điểm như sau:
D = {(xi, yi)|xi ∈ R p , yi∈{1, -1}}
Trong đó i = 1,2, 3…n, p là số chiều của vector đầu vào. Một siêu phẳng là tập hợp
các điểm x thỏa mãn: w.x + b = 0. Khi đó khoảng cách từ điểm (xn, yn) đến điểm
phân chia là:

Khoảng cách gần nhất từ một điểm dữ liệu đến siêu phẳng:
margin =min(d)
Khi đó cần tìm w và b sao cho margin đạt giá trị lớn nhất:
(w, b) =max( min(d) )
Dễ thấy nếu thay w bằng kw, b bằng kb với k là hằng số dương thì mặt phân chia
khơng đổi, do đó có thể giả sử yn(w.xn+b)=1. Với những điểm gần mặt phân chia
thì yn(w. xn + b) ≥ 1 và bài tốn trở thành dạng tìm w, b sao cho:
(w,b)=max( 1 ||w|| 2 )
Với điều kiện: yn(w.xn+b)≥1 .



25

Khi tìm được mặt phân cách w.x + b = 0, lớp của dữ liệu mới x được xác định bằng
cơng thức: class(x) = sgn(w.x +b), trong đó hàm sgn là hàm xác định dấu:

2.2.2.2 K-láng giềng gần nhất (k-nearest neighbors)
Thuật toán k-láng giềng gần nhất là một trong những thuật đơn giản nhất của học có
giám sát nhưng lại hiệu quả trong nhiều trường hợp. Trong quá trình huấn luyện,
thuật tốn k-láng giềng gần nhất khơng học điều gì từ dữ liệu huấn luyện, mọi tính
tốn được thực hiện khi cần dự đoán kết quả của dữ liệu mới (do đó thuật tốn này
được xếp vào loại lazy learning - học lười biếng).
Trong bài toán phân loại sử dụng k-láng giềng gần nhất, nhãn của một điểm dữ liệu
mới được suy ra trực tiếp từ K điểm dữ liệu gần với điểm đang xét nhất trong tập
huấn luyện. Nhãn của dữ liệu mới có thể được xác định bằng hình thức phiếu bầu
giữa các điểm gần nhất hoặc tính toán trọng số giữa các điểm láng giềng và điểm
đang xét.
Như vậy thuật tốn k-láng giềng gần nhất có thể hiểu là bài tốn tìm nhãn của một
điểm dữ liệu mới bằng cách dựa vào thông tin của k điểm dữ liệu trong tập huấn
luyện gần nó nhất, khơng quan tâm đến việc các điểm dữ liệu này có là điểm gây
nhiễu hay khơng. Thuật tốn k-láng giềng gần nhất có thể thực hiện theo các bước
sau:
- Bước 1: Xác định tham số k;
- Bước 2: Tính khoảng cách giữa điểm dữ liệu đang xét đến tất cả các điểm dữ liệu
huấn luyện;
- Bước 3: Sắp xếp khoảng cách và tìm k điểm dữ liệu gần nhất với điểm đang xét;
- Bước 4: Xác định lớp của k điểm láng giềng gần nhất tìm được ở bước 3;
- Bước 5: Xác định lớp của điểm đang xét dựa vào các lớp của các điểm láng giềng
thu được ở bước 4



×