1.2.1 Yêu cầu về thiết k ế ASIC cho bộ lọc FIRTối ưu số Area củủa Cell Tối ưu chi phí sản xuấấtt Tối ưu công suấtt 1.2.2 Các biểu cảm cảm xúc trên mặt ngườ iCon ngườ i có nhiều cách để
Trang 1ĐẠ ĐẠI H I HỌ ỌC QU C QUỐ ỐC GIA TP.HCM C GIA TP.HCM TRƯỜNG ĐẠ
CHHOEUNG YEAN
THI THIẾ ẾT K T K Ế Ế ASIC CHO B ASIC CHO BỘ Ộ L LỌ ỌC FIR C FIR
CÔNG SU CÔNG SUẤ ẤT TH T THẤ ẤP P
Chuyên ngành: K ỹỹ thuật điện tửử
Mã sốố: 1678001
LU LUẬN VĂN THẠC SĨ ẬN VĂN THẠC SĨ
Trang 2ngày tháng tháng năm năm .
Thành phầần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họọ, tên, họọc hàm, họọc vịị củủa Hội đồng chấấm bảảo vệệ luận văn thạc sĩ)
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Tự do Tự do Hạnh phúc Hạnh phúcNGHĨA VIỆT NAM Độc lập Độc lập
NHI NHIỆ ỆM V M VỤ Ụ LU LUẬN VĂN THẠC SĨ ẬN VĂN THẠC SĨ
Họ tên học viên: Chhoeung Chhoeung Yean Yean MSHV: MSHV: 16780011678001
I. TÊN ĐỀTÊN ĐỀ TÀI: THI TÀI: THIẾẾT K T K ẾẾ ASIC CHO B ASIC CHO BỘỘ L LỌỌC FIR CÔNG SUC FIR CÔNG SUẤẤT THT THẤẤPP
II. NHINHIỆỆM M VVỤỤ VÀ VÀ NNỘỘI DUNG:I DUNG: ThiThiếết t k k ếế đượ c c mmộột con chip có thểể ttối ưu đượ cccông suấất vớ i thuậật toán bộộ l lọọc FIR bằằng tr ễễ và diệện tích củủa a CMOS CMOS trong trong vi mvi mạạch
ssốố III. NGÀY GIAO NHINGÀY GIAO NHIỆỆM VM VỤỤ : : 15/01/2018
IV. NGÀY HOÀN THÀNH NHINGÀY HOÀN THÀNH NHIỆỆM VM VỤỤ: 30/12/2018
V. CÁN BCÁN BỘỘ HƯỚ HƯỚ NG DNG DẪẪNN: TS Trương Quang Vinh
CHỦ NHIỆM BỘ
CHỦ NHIỆM BỘ MÔN ĐÀO TẠOMÔN ĐÀO TẠO
(Họ tên và chữ ký) (Họ tên và chữ ký)
TRƯỞNG KHOA….………
TRƯỞNG KHOA….………
(H ọọ tên và ch ữữ ký)
G Ghi ch hi chú ú: Học viên phải đóng tờ nhiệm vụ này vào trang đầu tiên của tập thuyết minh LV
Trang 4L LỜI CÁM ƠN ỜI CÁM ƠN
Được sự phân công của nhà trường, khoa điện – điện tử và sự đồng ý của giáoviên hướng dẫn TS Trương Quang Vinh, em đã thực hiện luận văn thạc sĩ chuyênngành kỹ thuật điện tử với đề tàivới đề tài ““ThiThiếết t k k ếế ASIC cho b ASIC cho bộộ llọọc FIR công suc FIR công suấất t ththấấpptrên công ngh
trên công nghệệ CMOS 90NM CMOS 90NM”” Qua trang viết này emQua trang viết này em xin gửi lời cảm ơn tới nhữngngười đã giúp đỡ em trong thời gian học tập, nghiên cứu luận văn thời gian qua.
Trước hết, em xin gửi lời cảm ơn chân thành đến TS TrươngQuang Vinh Thầy
là người đã trực tiếp hướng dẫn và tận tình chỉ bảo trong công việc nghiên cứu, tìmkiếm tài liệu, xử lý và phân tích vấn đề của luận văn Nhờ thầy mà em có thể hoànthành luận văn cao học.
Ngoài Ngoài ra, em ra, em cũng xcũng xin in chân tchân thành cảm hành cảm ơn ơn quý quý đồng đồng nghiệp, nghiệp, gia gia đìnhđình và bạn bècùng khóa đã luôn động viên và hỗ trợ em trong suốt quá trình nghiên cứu và hoànthành luận văn này.
TÁC GIẢ TÁC GIẢ
Chhoeung Yean
Trang 5TÓM T TÓM TẮ ẮT TTi
Tiếếng Ving Việệt:t:
Ngày nay các thiếết bịị di động như điện thoại di động, máy tính xách tay, hay cácthiếết t bbịị y sinh cầầm tay ngày càng tr ở nên phổổ bibiếến và mộột t phphầần n ttấất t yyếếu trong cuộộcc
ssốống Bô lọọc FIR , hay bộộ l lọc đáp ứng xung hữữu hạạn (Finite Impulse Response) đượ cc
ssửử dụụng r ấất r ộộng rãi trong các thiếết bịị y sinh, xửử lý tiếếng nói, xửử lý hình ảảnh, và xửử lývideo Bộộ l lọọc này, sửử dụụng các nguồn năng lượng để xửử lý các quá trình trên r ấất nhiềềuunăng lượ ng Không chỉỉ có độ ổn định điện áp và dòng điện mà nó còn có hiệệu suấất lọọccnăng lượ ng cao Sựự l lọc ọc năng năng lượ lượ ng từừ bộộ l lọọc FIR cấp điệc cho mộột thiếết bịị hoạt động
vvới điện áp thấp hơn thương thông qua các nguồn điện củủa tín hiệệu, tín hiệệu hình ảảnh,tín hiệệu video, tín hiệệu tiếếng nói Việệc sửử dụụng bộộ l lọọc FIR nhằằm tạạo ra nhiềều mức điệnn
áp khác nhau phụục c vvụụ cho các khốối i chchức năng mạch, thiếết t bbịị và các ứứng ng ddụụng trong
cùng mộột hệệ thốống Yêu cầầu bộộ l lọc đáp ứng xung hữữu hạạn, hiệu năng sau khi đượ c lọọcc
có độ gợn năng lượng tháp để đảm bảảo cho hệệ thốốngổn định theo ngõ ra cho phép
Luận văn này trình bày các vấn đề liên quan đến n bbộộ llọọc FIR giảảm m hihiệệu u susuấất tín
hiệệu u bbằng phương pháp xung, thực c hihiệện trên mô phỏỏng hoạt động vi mạạch trên nên
ttảảng công nghệệ 180nm 180nm Trong báo Trong báo cáo này, cáo này,
Luận văn đã thực c hihiệện thành công mô phỏỏng ng bbộộ llọọc FIR trên cấp độ ddạạng khốốiitrên Matlab và mô phỏỏng vi mạạch ch bbằằng phầần n mmềềm Synopsis sửử ddụụng mã bù bộộ ccộộngCIA 4bit, và bô cộộng Ripple 16bit K ếết mô phỏỏng so sánh hai bộộ công này là 70%nhanh hơn so vớ i bộộ cộộng Ripple 16 bit và tiêu thụụ năng lượ ng hiều hơn 24,7% Mô
phỏỏng thựực hiện trên thư viện vi mạạch 180nm CMOS TSMC 1p6M cho hiệệu suấất 80%
có khảả năng
Trang 6In the 21st century, the fast growing demand of portable and filter electronicsystem has driven the efforts to reduce power consumption or to improve theefficiency of these electronic equipments Regulator are essential for most electrically powered
powered system system which which include include the the prevalent prevalent filter filter equipments equipments and and singal singal processing.processing.Regulators are required to reduce the power varriation from DSP system,
Trang 7L LỜI CAM ĐOAN ỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu củủa riêng tôi Các sốố liệệu, k ếết quảả trong đề tài này là trung thực và chưa công bố dướ i i bbấất t k k ỳỳ hình thức nào trước đây
Tấất cảả nhữững tham khảảo và k ếế thừừa cho việệc tc thhựực hiệện luận văn này đã đượ c cảm ơn
và các thông tin trích dẫẫn trong luận văn đã đượ c chỉỉ rõ nguồồn gốc và đượ c phép công
bốố
TP.HCM, ngày ngày tháng tháng năm
HHọọc viên thc viên thự ự c hic hiệệnn
Chhoeung Yean
Trang 8Mục lục
1 T Tổổng quan: ng quan: 9 9 1.1 Gi ớ i thi ệệ u v ềề đề tài 9 9 1.2 Đặc trưng củ a m ặt ngườ ii Error! Bookmark not defined
1.2.1 Yêu c ầầ u v ềề nh ậậ n d ạạ ng khuôn m ặặ t.t 10 10
1.2.2 Các bi ểể u c ảả m c ảả m xúc trên m ặt ngườ ii 10
1.3 M ụụ c tiêu, nhi ệệ m v ụụ và ph ạm vi đề tài 10
1.3.1 M ụụ c tiêu c ủa đề tài 10 10
1.3.2 Nhi ệệ m v ụụ c ủa đề tài 10 10
1.3.3 Ph ạạ m vi c ủa đề tài 11 11
1.4 T ổổ ch ứứ c lu ận văn 11
2 Tình hình nghiên c Tình hình nghiên cứu trong và ngoài nướ ứu trong và ngoài nướ cc 12 12
3 M Mạng nơ ạng nơ -ron tích ch -ron tích chậập (Convolution neural network - CNN) p (Convolution neural network - CNN) 19 19
3.1 T ổổ ng quan 19 19
3.2 M ạng nơ -ron tích ch ậậ p 20 20
4 Thi Thiếết k t k ếế h hệệ th thốống và mô ph ng và mô phỏỏng th ng thử ử nghi nghiệệm m 25 25
4.1 Ki ếế n trúc h ệệ th ốố ng nh ậậ n di ệệ n c ảả m xúc khuôn m ặặ t s ửử d ụụ ng m ạng nơ -ron tích ch ậậ p (CNN) 25 4.2 D ữữ li ệệ u s ửử d ụụ ng cho hu ấấ n luy ệệ n m ạạ ng (Training dataset) 33 33
4.3 Hu ấấ n luy ệệ n cho ki ếế n trúc m ạng nơ -ron tích ch ậậ p 35 35
4.4 Thi ếế t k ếế giao di ện chương trình (GUI) 46 46
4.5 Mô ph ỏỏ ng và th ựự c nghi ệệ m 47 47
5 Hướ Hướ ng phát tri ng phát triển đề ển đề tài tài 58 58
6 Tài li Tài liệệu tham kh u tham khảảoo 59 59
Trang 91. Tổng quan1.1. Giớ i thiệu về đề tàiTrong những năm gần đây, cùng vớ i i ssựự phát triểển nhanh củủa vi mạạch ch ssốố, nóđượ c thiếết k ếế bở i hai quá trình, mộột là thiếết k ếế Front – End và hai là thiếết k ếế Back – End Cảả hai qua trình thiếết t k k ếế nhà thiếết k ếế ngày càng dòi hỏỏi công suấất t ththấấ p p vàvàthông lượ ng cao củủa mứức tiêu thụụ năng lượ ng Nhữững các nhà thiếết k ếế vi vi mmạạch sốố
ssửử ddụụng ng r r ấất nhiềều toán họọc c ccầần thiết để ththựực c hihiệện trong qua trình thiếết t k k ếế để thuđượ c vi mạạch có công suấất thấp, và độ tr ễễ r ấất ít
Luận văn này xin trình bày một quá trình thiếết t k k ếế vi vi mmạạch ch ssốố ccủủa a bbộộ llọc đáp
ứứng xung hữữu hạạn (FIR) Quà trình thiếết k ếế thựực hiệện các chức năng chính: Thiếếtt
k ếế bộộ l lọc đáp ứng xung hữữu hạạn, dựựa vào toán họọc củủa bộộ l lọc đáp ứng xung hữữuu
hhạạn thiếết k ếế mộột vi mạạch sốố bằằng phầần mềềm synopsis Vi mạch đã thiết k ếế có thểể
ttối ưu đượ c mứức tiệệu thụụ năng lượ ng
Cốốt lõi của phương pháp tiế p cậận củủa luận văn đưa ra đượ c dựựa trên việệc:
Lựựa chọọn bài toán học để thiếết k ếế
Sửử dụng phương pháp bộộ l lọc đáp ứng xung hữữu hạạn (FIR)
Thiếết k ếế bộộ l lọc đáp ứng xung hữữu hạạn công suậật thấấ p1.2. Đặc tr ưng của quá trình thiết k ế ASIC cho bộ lọc FIR
Vi mạạch sốố là tr ọọng tâm chính trong mốối quan hệệ giao tiếế p trong p trong mmọi lĩnh vực,
đó vai trò quan trọng trong việệc thiếết k ếế vi vi mach mach ssốố có thểể t tối ưu đượ c công suốốtt
và tốối i titiểu đượ c chi phí sảản sn suuất cũng như chi phí tiêu thụ năng lượ ng ng ccủa ngườ iidùng Để thiếết k ếế được điều đó, chúng ta thiết k ếế vi mạạch cho mộột bộộ l lọc đáp ứngxung hữữu hạn (FIR) Điều này khá là rõ nét, Bộộ l lọc đáp ứng xung hữữu hạạn là mộộtt
bộộ l lọọc tính toán nhanh và tốối tiểểu con CMOS cho qua trình thiếết k ếế ASIC Nhũng bài toán đã xử trong bộộ l lọọc FIR này gồồm có:
1. Cửửa sốố
2. Mẫẫu tầần sốố
3. Lặặ p tối ưu
Trang 101.2.1 Yêu cầu về thiết k ế ASIC cho bộ lọc FIR
Tối ưu số Area củủa Cell
Tối ưu chi phí sản xuấấtt
Tối ưu công suấtt
1.2.2
Các biểu cảm cảm xúc trên mặt ngườ iCon ngườ i có nhiều cách để truyền đạt thông tin vớ i nhau: ngôn ngữữ, , ccửử chchỉỉ,,
llời nói… Biểu hiệện cảảm xúc trên khuôn mặt cũng là một cách để truyền đạt thôngtin, nó có thểể bibiểểu u hihiệện n mmộột t nhnhận định nh ccủa con người trướ c c ssựự vvậật, hiện tườ ng.Hình bên dướ i là 7 cảm xúc cơ bản cửử con người mà đề tài này đề cậậ p tớ ii – nhậậnn
ddạạng, phân biệt đượ c 7 loạại cảm xúc cơ bản của con ngườ i Tiến sĩ Paul Ekman đãtrình bày 7 cảm xúc cơ bản và được con ngườ ii ở mọọi nền văn hóa thể hiệện giốốngnhau trong Emotions Revealed (2003)
1.3. Mục tiêu, nhiệm vụ và phạm vi đề tài1.3.1 Mục tiêu của đề tài
Nhậận n didiệện n ccảảm xúc trên khuôn mặt ngườ i là mộột trong những đề tài thiếết t ththựực và
ccầần thiết đối vớ i sựự phát triểển giao tiếp ngườ i-máy hiệện nay, vì vậậy:
Cảảm xúc trên khuôn mặt người đượ c máy nhậận biếết mộột cách tựự động
Thông tin vềề cảảm xúc có thểể đượ c ghi nhậậnn để làm dữữ liệệu cho nhữững phân
tích vềề thịị trườ ng, mức độ hài lòng củủa khách hàng
Từừ việệc phân tích dữữ liệệu trên, một vài hành động có thểể được đưa ra nhằmnâng cao chất lượ ng dịịch vụụ hoặc điều chỉỉnh chất lượ ng sảản phẩẩm
1.3.2 Nhiệm vụ của đề tài
Phát hiệện và trích xuấất khuôn mặặt từừ ảảnh / video thờ i gian thựựcc
Tính toán và ước lượ ng cảảm xúc trên khuôn mặặtt ở khung ảảnh hiệện tạạii
Trích xuấất cảảm xúc trên khuôn mặặt và hiểển thịị k ếết quảả
Trang 11Luận văn sẽ đi qua các mục chính sau:
Xem qua các nghiên cứu trong và ngoài nướ c vềề đề tài củủa luận văn Phân tích thuậật toán nhậận dạạng cảảm xúc khuôn mặặt (Mạng nơ -ron tích chậậ p) Mô phỏỏng và thửử nghiệệm
K ếết luậận và thảảo luậận vềề các cảải tiếến có thểể trong tương lai
Trang 122. Tình hình nghiên cứu trong và ngoài nướ c
Nhậận n didiệện n ccảảm xúc trên khuôn mặt ngườ ii đang là một lĩnh vực đượ c nghiên
ccứứu nhiều trong lĩnh vực thịị giác máy tính. giác máy tính Trong phTrong phần luận văn này, em xin đưa
ra
ra mmộột t ssốố lĩnh vực nghiên cứứu, u, mmộột t ssốố phương phương pháp pháp tiếtiế p p ccậậnn đặc trưng để ngườ ii
đọc có thểể kham thảảo
Năm 2010, Năm 2010, táctác gigiảả Đinh Xuân Nhấất trong khóa luậận n ttốốt nghiệp Đại i hhọọc Côngnghệệ Đại i hhọọc c QuQuốốc gia Hà Nội, “ội, “Nghiên cNghiên cứ ứ u các thuu các thuậật toán nht toán nhậận n ddạạng ng ccảảmmxúc trên khuôn m
xúc trên khuôn mặặt t 2D2D”, đã đưa các so sánh 3 thuậ”, đã đưa các so sánh 3 thuật toán nhậận n ddạạng ng ccảảm xúctrên khuôn mặặt t ggồồm 5 m 5 ccảảm xúc cơ bản: vui, buồồn, ghê tở m, giậận n ddữữ và tvà tựự nhiên.Tác giảả đđã ã chchỉỉ ra ra mmộột t ssốố thuthuậật toán họọc và áp dụụng thuậật toán này cho bài toán phân lớp để nhậận dạạng cảảm xúc
Dữữ liliệu đầu u vvào mà đề tài sửử ddụụng bao gồồm có 75 ảảnh khuôn mặặt t mmẫu, độ
phân giải 600x800 điểm ảảnh, tấất cảả đều là ảảnh khuôn mặặt một ngườ i và có độ sángđồng đều nhau Tậậ p ảảnh này chỉỉ có 5 cảảm xúc chính là: vui, buồồn, ghê tở m, giậậnn
ddữữ và bình thườ ng Trong 75 ảảnh khuôn mặặt mẫẫu, 40 ảảnh bấất k ỳỳ chọọn làm dữữ liệệuu
huấấn luyệện cho mạạng, còn 35 ảảnh làm dữữ liệệu kiểểm tra
Nhữững k ếết quảả chính mà khóa luận đạt đượ c:
Giớ i thiệệu chi tiếết t vvềề phương phương phpháp trích chọn đặc trưng (PCA) và à MMạạngnoron nhiềều u ttầầng truyềền n ththẳng, đồng thờ i i gigiớ i thiệu sơ lượ c c vvềề mmộột t gigiảảiithuậật phân lớ p khác là cây quyết định
Áp dụụng các giảải thuậật này cho bài toán nhậận dạạng cảảm xúc
Nhữững vấn đề mà khóa luận chưa giải quyết đượ c:
Xây dựựng tậậ p huấấn luyệện lớn để đạt k ếết quảả chính xác hơn
Xây dựựng ng mmột chương tr ình hoàn chỉỉnh có giao diện tương tác với ngườ ii
ssửử dụụng
Trang 13K ếết quảả nhậận dạng thu được chưa cao, phân bốố không đồng đều giữữa các cảảmxúc vớ i nhau:
Cảm xúc Phương pháp
Vui Ghêtởm Giậndữ Buồn thườngBình Trung bình
PCA truyền thống 80% 70% 86% 55% 84% 84% 75.00%75.00%Mạng noron 100% 100% 67% 50% 80% 80% 79.40%79.40%Cây quyết định 60% 60% 14.30% 14.30% 16.70% 16.70% 0% 60% 60% 30.20%30.20%
BBảảng 2.1:ng 2.1: So sánh độSo sánh độ chính xác c chính xác củủa ma mộột st sốố phương phápphương pháp (1) (1)Năm 2010
Năm 2010, Trong bài báo “, Trong bài báo “F F a acia cial E l Exp xprre essio ssion Re n Reco cogni gnittiio on Using A n Using AA AM M A
Algo lgorriitthm hm”, các tác giả Nguyen Duc Thanh, Nguyen Huu Tan, Nguyen Tan Luy
đến từừ Bộộ môn Tựự động, Đại họọc Bách Khoa TP.HCM đã đề xuất 2 phương pháp,trong đó 1 là AAM kết hợ p mạạng thầần kinh cho k ếết quảả chính xác hơn nhưng tốcc
độ xửử lý chậậm, và phương pháp kia là AAM kết hợp tương quan điểm vớ i tốc độ
for human-robot interaction” các tác giả” các tác giả Le Thi-Lan và Dong Van-Thai đến từừ
Đại i hhọọc Bách Khoa Hà Nội ội đđã trình bày k ếết t ququảả nghiên cứứu u vvềề nhnhậận n ddạạng ng ccảảmxúc khuôn mặt ngườ i i ViViệệt Nam, trong đó bao gồồm việệc xây dựựng database, phát
hiệện khuôn mặặt và nhậận dạạng biểểu hiệện khuôn mặt Đóng góp chính trong bài báo
là database biểểu u hihiệện khuôn mặặt t ccủa ngườ i i ViViệệt Nam, và k ếết t ququảả sơ bộ vvềề phát
hiệện và nhậận dạạng biểểu hiệện cảảm xúc trên khuôn mặặt.t
Trang 14K ếết t ququảả phát hiệện khuôn mặặt t vvới độ chính xác là 83% vớ i hình ảảnh nhiềềuukhuôn mặặt và 94% vớ i hìnhảảnh mộột khuôn mặặt.t.
Hình 2.1: Các thành phHình 2.1: Các thành phần cơ bảần cơ bản cn củủa khuôn ma khuôn mặặtt
Mộột nghiên cứứu Liyuan Zhen và Shifeng Zhu, “Convolutional Neural Networkfor Facial Expression Recognition” chỉ ra k ếết quảả triểển khai củủa mộột sốố kiếến trúc
ccủủa mạng nơ ron tích chậậ p mà nhóm đã thực hiệện Tuy nhiên k ếết quảả đạt đượ ccchưa cao
Trang 15Tác giảả ssửử ddụụng ng ddữữ liliệệu u ttừừ cucuộộc thi nhậận n ddạạng ng ccảảm xúc khuôn mặặt Kaggle(Kaggle facial expression challenge) bao gồồm 28709 ảảnh và cho việệc c huhuấấn luyệệnn
và 3589 ảảnh cho việệc kiểểm tra, các ảảnh này là ảảnh khuôn mặt ngườ i có kích thướ cc48x48 pixels và được định dạạng ở ảảnh xám
Hình 2.2: CHình 2.2: Cảảm xúc trên khuôn mm xúc trên khuôn mặặt và tht và thốống kê dng kê dữ ữ li liệệu trongu trong KaggleArushi Raghuvanshi và Vivek Choksi đã giớ i thiệu đề ttài ài ““FacialFacialExpression Recognition with Convolutional Neural Networks
Expression Recognition with Convolutional Neural Networks” ” sửsử ddụụng ng mmạạng
nơ ron tích chậậ p p 5 5 llớp để gigiảải quyếết bài toán nhậận n didiệện n ccảảm xúc khuôn mặặt trênảnh Baseline classifier cũng đượ c sửử dụụnng trong đề t tài này để đưa ra kết quảả tínhtoán vềề cảảm xúc khuôn mặặt.t
Nhóm Nhóm ssửử ddụụng ng ddữữ liliệệu u ttừừ cucuộộc thi nhậận n ddạạng ng ccảảm xúc khuôn mặặt Kaggle
(Kaggle facial expression challenge) để tritriểển khai và kiểểm tra hệệ ththốống, k ếết t ququảả triểển khai củủa 5 mô hình dựựa trên mạạng nơ -ron tích chậậ p không cao
Trang 16Năm Năm 2017, 2017, các các tác tác giảgiả Minh-An Quinn, Grant Sivesind, Guilherme Reis
ccủa đại i hhọọc Stanford đã giớ i thiệệu nhiềều mô hình nhân dạạng ng ccảảm xúc khuôn mặặtttrong đề tài: “tài: “Real-time Emotion Recognition From Facial ExpressionsReal-time Emotion Recognition From Facial Expressions””, thựựcc
hiệện trên mộột t ssốố ttậậ p p ddữữ liliệệu, trong đó có FER2013 Trong đó có mô hình mạng
nơ -ron tích chậậ p p vvớ i 10 lớp và độ chính xác đạt đượ c 66,67% trên tậậ p FER2013
Độ chính xác tậậ p p trung trung chchủủ yyếếuu ở các cảảm xúc vui, ngạạc nhiên, giậận và tựự nhiên
K ếết quảả này hoàn toàn trùng khớ p khi thựực hiệện giảải thuậật này trên video thờ i gian
thựực
Hình 2.3 Ma trHình 2.3 Ma trậận cn cảảm xúc cm xúc của đềủa đề tài (1) tài (1)
Trang 17BBảảng 2.4:ng 2.4: So sánh độSo sánh độ chính xác c chính xác củủa ma mộột st sốố phương pháp (4)phương pháp (4) Ngày 20
Ngày 20 tháng 10 tháng 10 năm 2017,năm 2017, các tác giảả Octavio Arriaga, Matias Toro, Paul Plöger giớ i thiệệu mộột nghiên cứu mang tên “ứu mang tên “Real-time ConvolutionalReal-time ConvolutionalNeural Networks for Emotion and Gender Classification
Valdenegro-Neural Networks for Emotion and Gender Classification”.”. Nghiên Nghiên ccứứu này
thựực hiệện các công việệc: nhậận diệện khuôn mặặt, nhậận diệện cảảm xúc k ếết hợ p vớ i giớ iitính xửử lý thờ i gian thựực
Trang 18Hình 2.4 MôHình 2.4 Mô hình đượ hình đượ c gic giớ ớ i thii thiệu trong đềệu trong đề tài tài
Hình 2.5 Ma trHình 2.5 Ma trậận cn cảảm xúc cm xúc của đềủa đề tài (2) tài (2)
Trang 19Hệệ thống đượ c thiếết k ếế vớ i các lớp cơ bản củủa mộột hệệ thốống mạng nơ -ron tích
chậậ p, p, tuy tuy nhiên, nhiên, không không ssửử ddụụng ng llớ p p k k ếết t nnối đầy đủ trong mạạng Hệệ ththống đượ cc
huấấn luyệện n vvớ i IMDB dataset vớ i 460,723 hình ảảnh RGB vềề gigiới tính, độ chínhxác đạt đượ c là 96%, 35,887 hình ảảnh từừ FER2013 với độ chính xác khoảản 66%.Trên đây là một t ssốố nghiên cứu trong và ngoài nước liên quan đến n viviệệc c nhnhậậnn
ddạạng ng ccảảm xúc khuôn mặặt, t, mmỗỗi nghiên cứu đều có ưu điểm và nhược điểm riêng,
hhầầu hếết các nghiên cứu đều dùng hình ảnh để làm tậậ p huấấn luyệện và tậậ p kiểểm tra
độ chính xác củủa a hhệệ ththốống Phầần n titiếế p p theo theo ccủa đề tài sẽẽ là phầần phân tích thuậậtttoán nhậận dạạng cảảm xúc khuôn mặặt sửử dụụng mạng nơ -ron tích chậậ p (CNN)
3. Mạng nơ -ron tích chập (Convolution neural network - CNN)3.1. Tổng quan
Mạng nơ -ron truyềền n ththẳẳng nhiềều u llớ p p là là mmộột t k k ỹỹ thuthuậật có sứức c mmạạnh và tầầm ảảnh
hưở ng lớ n trong máy họọc (machine learning) vớ i việc đượ c huấấn luyệện dựa như là
mộột hàm không tuyến tính để gigiảải quyếết t mmộột t ssốố bài toán thựực c ttếế Tuy nhiên việệcc
llựựa a chchọọn n ththủủ công thuậật toán trích xuất đặt trưng và thuật toán phân loại thườ ng
ddựựa theo kinh nghiệệm, dẫn đến bài toán không tối ưu Do đó, hướ ng giảải quyếết tốốtt
nhất là đưa mạng nơ -ron lên dữữ liệu thô ban đầu và để cho thuậật toán huấấn luyệệnntìm ra đặt trưng tối ưu bằng cách thay đổi các tr ọọng sốố tương ứng
Vấn đề ccủủa cách tiếế p p ccậận này là sốố chichiềều u ccủủa a ddữữ liliệu đầu vào tương đối i llớ nn
đồng thờ i là một lượ ng ng llớ n liên k ếết t gigiữữa các phầần n ttửử ẩẩn và lớ p p ngõ ngõ vào vào (input(input
layer) Thông thườ ng con sốố này đạt khoảảng 10,000 hoặặc c llớn hơn tùy vào từng
ứứng ng ddụụng ng ccụụ t thhểể SSốố lượ ng ng llớ n n mmẫẫuu dùng để huhuấấn luyệện có thểể tương đối i nhnhỏỏ soso
vvới kích thướ c mẫẫu sẽẽ dẫn đến n mmạng nơ -ron truyềền thẳẳng sẽẽ tr ở nên phứức tạạ p, vàcũng dẫn đến hiện tượ ng quá khớ p dữữ liệệu
Một điểm không thuậận lợ i củủa nữữa mạng nơ -ron truyềền thẳng đó là dữ liệệu ngõvào phải có kích thước không đổi và các mẫẫu ngõ vào phải được định dạng đúngtheo mộột yêu cầu nào đó của lớp ngõ vào, điều này khó thựực hiện đượ c trong thựựcc
ttếế
Trang 20Mạng nơ -ron tích chậậ p (CNN) p (CNN) không không nhnhữững sẽẽ giảải quyếết các vấn đề đã nêu ở trên mà còn cho có thểể áp áp ddụụng giảải quyếết các bài toán nhậận n ddạạng phứức c ttạạ p p vvớ ii
hiệệu xuấất cao
3.2. Mạng nơ -ron tích chậ p
Mạng nơ -ron tích chậậ p p (Convolutional (Convolutional Neural Neural NetworkNetwork – CNN) là mộột trong
nhữững mô hình máy họọc (machine learning) tiên tiếến giúp cho chúng ta xây dựựngđượ c c nhnhữững ng hhệệ ththốống thông minh với độ chính xác cao CNN trong nhậận n ddạạng
ccảảm xúc khuôn mặt cũng là một trong nhữững giảải pháp trong thịị giác máy tính,giao tiếp ngườ ii – máy trong xu thếế hiệện nay
Cấu trúc cơ bản n ccủủa a mmộột t mmạng nơ -ron tích chập (CNN) thườ ng bao gồồm các
llớ p: p: LLớ p p tích tích chchậậ p p (Convolution (Convolution layer), layer), llớ p p Pooling Pooling (Pooling (Pooling layer), layer), llớ p p hihiệệuu
chỉỉnh tuyếến tính (Rectified linear units layer - ReLU) và lớ p k ếết nối đầy đủ (Fullyconnected layer) Độ phphứức c ttạạ p p ccủủa a kikiếến trúc mạạng tích chậậ p p còn còn tùy tùy ttừừng ứứng
ddụụng cụụ thểể mà ngườ i thiếết k ếế có thểể l lựựa chọọn mộột hoặặc nhiềều lớp để xây dựựng.Dưới đây là phần giớ i thiệệu các lớp cơ bản có trong mộột mạng nơ -ron tích chậậ p
và các thành phầần chính trong hệệ thốống của đề tài
a. Lớ p tích chậậ p (Convoluation layer)
Lớ p này sẽẽ sửử dụụng mộột bộộ các bộộ l lọc có kích thướ c nhỏỏ so vớ ii ảảnh áp vào mộộttvùng trong ảảnh và tiếến hành tính tích chậậ p giữữa bộộ filter và giá tr ịị điểm ảảnh trongvùng cụục c bbộộ đó Bộ llọọc sẽẽ llần lượt đượ c c ddịịch chuyểển theo mộột giá tr ịị bước bước trượ trượ tt
và quét toàn bộộ ảảnh Các thông sốố củủa bộộ l lọọc này sẽẽ đượ c khở i tạạo mộột cách ngẫẫuu
nhiên và sẽẽ đượ c cậậ p nhậật dầần trong quá trình huấấn luyệện cho mạạng
Giảả sửử f k là bộộ l lọc có kích thướ cc n m đượ c áp dụụng trên ngõ vào x n m là sốố lượ ng liên k ếết ngõ vào mà mỗi nơ -ron có Phép tích chậậ p giữữaa f k và ngõ vào x cho
n m u
Trang 21ssốố ccủa các nơ -ron lân cận Điều này có ý nghĩa tích cực cho việệc c ccậậ p p nhnhậật các
tr ọọng sốố thấp, trái ngượ c vớ i mạng nơ -ron truyềền thẳẳng, và các tr ọọng sốố có sựự ràng
buộộc vớ i nhau
Hình 3.1: Tích chHình 3.1: Tích chậập gip giữ ữ a ngõ vào và ca ngõ vào và cử ử a sa sổổ ch chậậpp
b. Lớ p Pooling (Pooling layer)
Mụục tiêu củủa a llớ p p pooling pooling là là làm làm gigiảm kích thướ c c ccủủaa ảnh nhưng vẫn n gigiữữ cácthông tin quan tr ọọng nhất trong đó Sửử ddụụng ng mmộột hàm kích hoạt tương ứng ng vvớ ii
mục đích của ngườ i thiếết k ếế để Các phương thức lấấy phổổ biếến trong lớ p p PoolingPooling
là MaxPooling (lấấy giá tr ịị llớ n n nhnhấất), MinPooling (lấấy giá tr ịị nhnhỏỏ nhnhấất) vàAveragePooling (lấấy giá tr ịị trung bình) Khác vớ i i llớ p p tích tích chchậậ p, p, llớ p p PoolingPoolingkhông tính tích chậậ p mà tiếến hành lấấy mẫẫu (subsampling)
Max pooling là phương pháp giảm kích thướ c c mmẫẫu u vvớ i hàm kích hoạạt làMaximun đượ c áp dụụng trên ngõ vào x. GiGiảả sửử m là kích thướ c c ccủủa a ccửửa sổổ trượ t,t,
k ếết quảả thu đượ c khi áp dụụng hàm kích hoạt Maximun như sau:
Trang 22Hình 3.2: HoHình 3.2: Hoạt độạt động cng củủa max-poolinga max-pooling
c. Lớ p hiệệu chỉỉnh tuyếến tính (Rectified Linear Unit – ReLU layer)
Lớ p p này này có có nhinhiệệm m vvụụ chuyểển toàn bộộ giá tr ịị âm trong k ếết t ququảả llấấy y ttừừ llớ p p tíchtích
chậậ p p thành thành giá giá tr tr ịị 0 mà vẫẫn n gigiữữ đượ c sựự tin cậậy toán họọc củủa a mmạng Ý nghĩa củaa
llớ p nà p này này y này chính lchính là tà tạạo nên tính phi tuyếến cho mô hình Ngoài ra, nó còn có tác
ddụụng giảm lượ ng tính toán cho các lớ p tiếp theo, và ngăn chặn việệc triệệt tiêu sai sốố gradient vì gradient là mộột hàm tuyếến tính hoặặc là 0
Tương tự như trong mạng truyềền tn thhẳẳng, việệc xây dựựng ng ddựựa trên các phép biếếnn
đổi tuyếến tính sẽẽ khikhiếến n viviệệc xây dựng đa tầng đa lớ p p tr tr ở nên vô nghĩa Có rấttnhiều cách để khikhiếến mô hình tr ở nên phi tuyến như sử ddụụng các hàm kích hoạạttsigmoid, tanh, … nhưng hàm R (x) = max(0,x) dễễ tính toán nhanh mà vẫẫn hiệệu quảả
Hình 3.3: HoHình 3.3: Hoạt độạt động cng củủa la lớ ớ p hip hiệệu chuu chuẩẩn tuyn tuyếến tínhn tính
Trang 23Lớ p k ếết nối đầy đủ (Fully connected layer)
Lớ p p k k ếết t nnối đầy đủ đượ c c bibiết đến như là mạng nơ -ron nhiềều u ttần, các nơ -rontrong mạạng ng k k ếết t nnốối i ttấất t ccảả các nơ -ron củủa a llớp trướ c Giảả ssửử ngõ vào x có kíchthướ cc k và l là sốố lượ ng nỏỏ-ron có trong lớ p k ếết nối đầy đủ này K ếết quảả trong ma
tr ậậnn W l l k k
( ( ) ) ( ( ))
F
Trong đó, là hàm kích hoạạt.t Ở đề tài này, hàm kích hoạạt là hàm softmax
Vớ i mỗỗi phầần tửử 1 j j N , ngõ được tính như sau:
1
( ( ))
j ii
x
x ii
( ( ) ) { {ii| | i i j j ii: : j ii} C
C x x x x x x (3.5)(3.5)
e. Drop out
Mặặt dù có nhiều thành công nhưng mạng nơ -ron vẫẫn tồồn tạại những nhược điểm
nhất định Sựự t tồồn tạại củủa các lớ ẩẩn phi tuyếến làm cho mạạng tr ở nên phứức tạạ p vàchiếếm nhiềều tài nguyên, quá trình huấấn luyệện cho mạng cũng mất khá nhiềều tu thhờ iigian Bên cạnh đó, sự phù hợ p quá p quá mmức (Overfitting) cũng gây nhiều cảản tr ở cho
ssựự phát triểển củủa mạng nơ -ron
Drop-out là mộột t k k ỹỹ thuthuậậtt dùng để loloạại i bbỏỏ mmộột t ssốố thành phầần cùng vớ i i k k ếết t nnốốii
ccủủa nó ra khỏỏi i mmạạng trong quá trình huấấn luyệện nhằm ngăn chặn sựự phù hợ p quá
mứức củủa mạạng, nghĩa là tạm thờ i loạại bỏỏ mộột vài thành phầần cùng vớ i các k ếết nốốii
Trang 24ccủủa nó ra khỏỏi i mmạạng Các phầần n ttửử đượ c c loloạại i bbỏỏ trong mạng đượ c c llựựa a chchọọn n mmộộttcách ngẫẫu nhiên
Hình 3.4: K Hình 3.4: K ỹỹ thu thuậật drop-out trong CNNt drop-out trong CNN
f. Chia sẻẻ tr ọọng sốố Chia sẻẻ tr tr ọọng ng ssốố là là mmộột trong nhữững nguyên tắắt quan tr ọọng trong CNN, cónghĩa rất lớ p làm p làm gigiảảm các tham sốố cần đượ c cậậ p nhậật trong quá trình huấấn luyệệnncho mạng Hơn nữa, chia sẻẻ tr ọọng sốố còn giúp việệc huấấn luyệện cho mạạng tr ở nên
hiệệu u ququảả hơn, đặt t bibiệt là trườ ng ng hhợ p p mmộột t ssốố kikiếến trúc cụục c bbộộ xuxuấất t hihiệệnn ở khônggian ngõ vào
Hình 3.5: K Hình 3.5: K ỹỹ thu thuậật chia st chia sẽẽ tr trọọng sng sốố trong CNN trong CNN
Trang 254. Thiết k ế hệ thống và mô phỏng thử nghiệm4.1. Kiến trúc hệ thống nhận diện cảm xúc khuôn mặt sử dụng mạng nơ -ron tích
chậ p (CNN)
Mộột t kikiếến trúc mạng có đượ c c hihiệệu u ququảả ttốốt cho quá trình nhậận n ddạng đượ c hìnhthành từừ nhinhiềều u yyếếu u ttố, trong đó việc c llựựa a chchọọn n ssốố lượ ng các lớp cơ bản cũng nhưcác thốống sốố hay hàm kích hoạạt cho từừng lớ p chiếếm vài trò quan tr ọọng, sao cho nó
đảm bảo đượ c các yêu cầầu nhậận dạng được đề ra
Trong đề tài này, hệệ thống đượ c thiếết k ếế bao gồồm 2 phầần chính: Phầần trích xuấấttđặt trưng và phân phân loại cảảm xúc
Hình 4.1: CHình 4.1: Cấấu trúc hu trúc hệệ th thốống mng mạng nơ ạng nơ -ron tích ch-ron tích chậậpp
Trang 26Phầần trích xuất đặt trưng bao gồm 4 lớ p tích chậậ p và 2 lớ p pooling, cụụ thểể như sau:
Data: là dữữ liệệu ngõ vào củủa hệệ thốống Dữữ liệệu huấấn luyệện cho mạạng là tậậ p
ddữữ liliệệu u ggồồm các hình ảnh được định nh ddạạng ở mmức xám, có kích thướ cc48x48 pixels Kích thước này cũng là kích thướ c ngõ vào củủa a mmạạng khi
thựực thi hệệ ththốống Ảnh nh ttừừ video / webcam sẽẽ đượ c chuyển đổi kênh màu
và định dạạng lạại sao cho phù hợ p vớ i k ích thước đã khai báo
Conv_1: Conv_1: là là llớ p p tích tích chchập đầu tiên củủa a hhệệ ththốống, sửử ddụụng 96 bộộ llọọc c vvớ iicùng kích thướ c 3x3 pixels Ở l lớp đầu tiên này, không có bộộ l lọc đượ c áp
ddụụng
Pooling_1 là lớ p p pooling pooling ngay ngay sau sau llớ p p conv_1, conv_1, vvới kích thướ c c ccửửa a ssổổ làlà3x3 pixels
Conv_2a là lớ p p tích tích chchậậ p p ththứứ 2 2 ssửử ddụụng 108 bộộ llọc có kích thướ c 2x2 pixels Đi cùng vớ i nó là hàm kích hoạạt ReLU
Pooling_2 là lớ p p pooling pooling ththứứ 2 trong mạng, tuy nhiên kích thướ c c bbộộ llọọcc
chỉỉ là 2x2 pixels, và mỗỗi lần trượ t củủa cửửa sổổ là 1 pixel
Tiếế p p theo theo là là 2 2 llớ p p tích tích chchậậ p p liên liên titiếế p p vvới kích thước tương ứng là 208 bộộ
llọọc 2x2 và 64 bộộ l lọọc 2x2 Cảả 2 2 llớ p tích p tích chchập này đều sửử dụụng hàm ReLU
để làm hàm kích hoạạt.t
Tiếế p p theo theo là là phphầần phân loạại i ccảảm xúc, bao gồồm thành phầần chính là 3 lớ fully connected với kích thướ cc khác nhau, tương ứng là 512, 256 và 7 K ỹỹ
thuật drop out đượ c áp dụụng trên 2 lớp đầu tiên vớ i tỉỉ l lệệ 0.3, tứức là có 30%
nơ -ron củủa 2 lớ p này bịị t tắắt trong quá trình huấấn luyệện, nhằằm hạạn chếế hiệệnntượ ng quá khớ p p (overfitting) (overfitting) vvốốn là một nhược điểm m llớ n trong các mạạng
nơ -ron nhân tạạo Hàm mấất mát softmax cross-entropy đượ c c ssửử ddụng để
phảản hồồi thông tin trong quá trình huấấn luyệện mạạng
Tương ứng vớ i kiến trúc đã nêu ở trên, kích thướ c ngõ ra củủa hệệ ththốống cho
ttừừng ng llớp đượ c lc liiệệt kêở bảng bên dướ i.i
Trang 27Layer KíchLayer Kích thước ngõ rathước ngõ ra
Dữ liệu ngõ vào 48x48 48x48 Convolution
Convolution Convolution 2c 2c 64x24x24
Fully connected_2 connected_2 256x1 Fully
Fully connected_3 connected_3 7x1
BBảng 4.1: Kích thướ ảng 4.1: Kích thướ c ngõ ra cc ngõ ra củủa các la các lớ ớ p trong mp trong mạạngng
a. Input layer
Nh ̃ ̃ng phương thưưưng phương thư ́ ́c trong module tf.layer cho viêê ̣ ̣c taa ̣ ̣o ra lơ ́ ́ p convolutional p convolutional vvaa ̀ ̀
llơ ́ ́ p pooling p pooling đốđối vơ ́ ́i dữữ liêê ̣ ̣uu aa ̉ ̉nh 2 chiềều chââ ́ ́ p nhââ ̣ ̣n ngõõ vaa ̀ ̀o laa ̀ ̀ mộột tensor coo ́ ́ shape
llaa ̀ ̀ [ batch_size, image_width, image_height, channels] Trong đo batch_size, image_width, image_height, channels] Trong đo ́ ́::
llaa ̀ ̀ [batch_size; 48, 48, 1] vàà đôđô ̀ ̀ng thờ i input layer phảải resize caa ́ ́c maa ̉ ̉ng 1 chiêê ̀ ̀u vêê ̀ ̀
maa ̉ ̉ng 2 chiềều k ́ ́ch thướ ch thướ c 48x48 tương ưtương ư ́ ́ng vơ ́ ́i k ́ ́ch thướ c không gian cuu ̉ ̉aa ảảnh
b. LLớ ớ p tích chp tích chậậppTrong lơ ́ ́ p t ́ ́ch chââ ̣ ̣ p đâ p đâ ̀ ̀u tiên, 95 bôô ̣ ̣ l loo ̣ ̣c 3x3 đươ ̣c sưư ̉ ̉ duu ̣ ̣ng đêng đê ̉ ̉ aa ́ ́ p duu ̣ ̣ng cho inputlayer, vơ ́ ́i activation function laa ̀ ̀ hhaa ̀ ̀m ReLU Phương thưm ReLU Phương thư ́ ́c con2d() trong module
Trang 28conv_1 = conv_2d
(self.network, 96, 3, strides=1, bias=True, padding=padding,
activation= ‘‘relu’’,,name='Conv2d_1')
Tham sôô ́ ́ inputs tiêê ́ ́ p nhââ ̣ ̣n đần đầu vaa ̀ ̀o củủa lơ ́ ́ p conv_1 vaa ̀ ̀ ch ̉ ̉ nhậận tensor hợ p lêê ̣ ̣ nêê ́ ́uu
ccóó shape làà [batch_size, image_width, image_height, channels] ƠƠ ̉ ̉ đđây conv1layer đươ ̣c k ếết nôô ́ ́i vớ i input_layer coo ́ ́ shape [batch_size; 48, 48, 1]
Tham sôô ́ ́ filters ch ̉ ̉ ra ra ssốố lươ ̣ng bôô ̣ ̣ l loo ̣ ̣c đươ c đươ ̣c sưư ̉ ̉ duu ̣ ̣ng, ơ ̉ ̉ đây lađây la ̀ ̀ 96 Tham sôô ́ ́ tiếế ptheo ch ̉ ̉ ra k ́ ́ch thươ ch thươ ́ ́c cuu ̉ ̉a mỗỗi bôô ̣ ̣ l loo ̣ ̣c, ơ ̉ ̉ đây sưđây sư ̉ ̉ duu ̣ ̣ng [3,3]
Tham sốố strides chỉỉ mức độ trượ t củủa cửửa sốố tích chậậ p trên ảảnh ngõ vào, ở đây
mỗỗi lần trượ t củủa cửửa sổổ tích chậậ p là 1 pixel (strides=1)
Tham sôô ́ ́ padding nhậận 2 giaa ́ ́ tr tr ii ̣ ̣hoặặcc ““same”” hoặặcc ““valid”. Nêê ́ ́u u gigiaa ́ ́ tr tr ịị truyêê ̀ ̀nn
vvàào làà ““valid”, input đượ c giữữ nguyên để xưư ̉ ̉ l lýý vaa ̀ ̀ dẫẫn đên đê ́ ́n cáác feature map ơ ̉ ̉ ngoo ̃ ̃
ra củủa lớ p conv p conv ccoo ́ ́ k ́ ́ch thươ ch thươ ́ ́c nhoo ̉ ̉ hơn đâhơn đâ ̀ ̀u vàào Nêê ́ ́u giaa ́ ́ tr ii ̣ ̣truyêê ̀ ̀n vàào laa ̀ ̀ ““same”,TensorFlow see ̃ ̃ thêm cáác giáá tr ii ̣ ̣0 vaa ̀ ̀o input sao cho khi t ́ ́nh tíích chââ ̣ ̣ p hoaa ̀ ̀n thaa ̀ ̀nh
ssee ̃ ̃ cho ra feature map coo ́ ́ cuu ̀ ̀ng k ́ ́cch thươ ́ ́c vơ ́ ́i input.
Tham sốố activation chỉỉ ra haa ̀ ̀m activation function naa ̀ ̀o sẽẽ đươ ̣cc aa ́ ́ p duu ̣ ̣ng sau khi
tt ́ ́nh tíích chââ ̣ ̣ p đêđê ̉ ̉ cho đâcho đâ ̀ ̀u ra cuôô ́ ́i cuu ̀ ̀ng,ơ ̉ ̉ đây activation function laa ̀ ̀ haa ̀ ̀m ReLU
Ngoo ̃ ̃ ra ra ccuu ̉ ̉a a llơ ́ ́ p p conv_1 conv_1 ssee ̃ ̃ ccoo ́ ́ shape laa ̀ ̀ [batch_size, 84, 84, 96]: cóó ccuu ̀ ̀ng chiềềuu
ddàài vàà chiềều r ộộng vơ ́ ́ii input nhưng sôinput nhưng sô ́ ́ channels ơ ̉ ̉ ngoo ̃ ̃ ra cho mỗỗi input laa ̀ ̀ 96
c. LLớ ớ p poolingp pooling
Lơ ́ ́ p p pooling pooling ththưư ́ ́ nhnhââ ́ ́t t ssee ̃ ̃ k k ếết t nnôô ́ ́i i vvớ i i llơ ́ ́ p p conv_1 conv_1 vvừa đượ c taa ̣ ̣oo ra Phương thưra Phương thư ́ ́ccmax_pooling2d() đươ ̣c c ssưư ̉ ̉ dduu ̣ ̣ng đểng để xây dựựng ng llơ ́ ́ p p pooling pooling ssưư ̉ ̉ dduu ̣ ̣ng thuââ ̣ ̣t t totoaa ́ ́nn
Trang 29maxpool_1 = max_pool_2d(conv_1, 3,
strides=2, padding=padding,name='MaxPool_1')
Tham sôô ́ ́ inputs ch ̉ ̉ ra ngõõ vvaa ̀ ̀o o ccuu ̉ ̉a pool_1 vớ i shape hơ ̣ p p llêê ̣ ̣ llaa ̀ ̀ [batch_size,image_width, image_height, channels] ƠƠ ̉ ̉ đđây, input laa ̀ ̀ ngoo ̃ ̃ ra cuu ̉ ̉a conv1 coo ́ ́ shape[batch_size; 48; 48; 96]
Tham sôô ́ ́ pool_size chỉỉ ra k ra k ́ ́cch thướ c củủa bộộ lloo ̣ ̣c lơ ́ ́ p p p pooling,ooling, ơ ̉ ̉ đây kđây k ́ ́cch thươ ́ ́ccđươ ̣c sưư ̉ ̉ dụụng laa ̀ ̀ 3x3
Tham sốố strides chỉỉ r a bước trượ t cuu ̉ ̉a bôô ̣ ̣ l loo ̣ ̣c, ở đây đươ ̣c caa ̀ ̀i đăi đă ̣ ̣t băă ̀ ̀ng 2, ngh ĩ aa
llaa ̀ ̀ ccaa ́ ́c c vvùùng nhỏỏ đượ c chia ra mỗỗi i llââ ̀ ̀n trươ n trươ ̣t phân cáách ch vvơ ́ ́i nhau bơ ̉ ̉i 2 pixel theochiềều ngang vàà 2 pixel theo chiềều u ddọọc c VVàà vv ̀ ̀ k k ích thươ ́ ́c c bbôô ̣ ̣ lloo ̣ ̣c c llàà 2x2 nên mỗỗii
vvùùng nhỏỏ sẽẽ chỉỉ aa ́ ́ p duu ̣ ̣ng bôô ̣ ̣ l loo ̣ ̣c 1 c 1 llââ ̀ ̀n (không coo ́ ́ pixel chung gi ̃ ̃ưưa caa ́ ́c vuu ̀ ̀ng trong
mỗỗi lââ ̀ ̀n loo ̣ ̣c)
Ngoo ̃ ̃ ra ra ccuu ̉ ̉a pool_1 coo ́ ́ shape làà [batch_size, 24, 24, 96]: mỗỗii feature map đafeature map đa ̃ ̃ đươ ̣c giảm đi 50% kảm đi 50% k ́ ́ch thướ ch thướ c
d. LLớ ớ p tích chp tích chậập thp thứ ứ 2, pooling th 2, pooling thứ ứ 2, l 2, lớ ớ p tích chp tích chậập thp thứ ứ 3 và th 3 và thứ ứ 4 4Cũng với phương thức conv2d() và max_pooling2d(), 4 lớ p p titiếế p p theo theo thuthuộộcc
phầần tích xuất đặt trưng đượ c sửử dụụng vớ i cấấu hình khác nhau:
Trang 30e. LLớ ớ p k p k ếết nt nối đầy đủối đầy đủ 1 (FC layer) 1 (FC layer)
Lơ ́ ́ p p FC FC (v(vơ ́ ́i 512 nơ -ron vaa ̀ ̀ R R eLU activation) đươ ̣c thêm vàào o mmạạnng CNN đêg CNN đê ̉ ̉
thựực c hihiệện nhiệệm m vvuu ̣ ̣ phân loạại i ddưư ̣ ̣a trên các đăác đă ̣ ̣c trưng đac trưng đa ̃ ̃ đươ ̣c c tr tr ́ ́ch xuââ ́ ́t t bbơ ̉ ̉i i llơ ́ ́ pconvolutional vàà pooling ở ph ́ ́aa trươ ́ ́c Một điêột điê ̉ ̉m lưu ym lưu y ́ ́ ở đây lađây la ̀ ̀ caa ́ ́c feature map ơ ̉ ̉
ngoo ̃ ̃ ra ra ccủủa a llơ ́ ́ p p pooling pooling ththứứ 2 2 ccoo ́ ́ shape laa ̀ ̀ [batch_size; 24; 24; 64], tương ư64], tương ư ́ ́ng 1
mẫẫuu ơ ̉ ̉ ngngoo ̃ ̃ ra ra ccuu ̉ ̉a a llớ p p conv_2cconv_2c đượ c c tr tr íích xuââ ́ ́t t ththaa ̀ ̀nh 64 ma tr ââ ̣ ̣n 2 chiêê ̀ ̀u u k k ́ ́chthươ ́ ́c 24x24 Trướ cc khi đưa vakhi đưa va ̀ ̀o lơ ́ ́ p FC, 64 p FC, 64 ma tr ma tr ââ ̣ ̣n 2 chiêê ̀ ̀u (tương ưu (tương ư ́ ́ng vơ ́ ́i 1 đăi 1 đă ̣ ̣cctrưng) được phương thức flatten chuyểển thành vector 1 chiêê ̀ ̀u có 36864 phầần n ttửử,,cũng chính là 36864 nơ -ron
net = flatten(conv_2c, name='Net')drop_net_1 = dropout(net, 0.1)
Ở đây, để tránh hiện tượ ng over fitting, k ỹỹ thuật drop out đượ c áp dụụng cho lớ flatten Ngoo ̃ ̃ vaa ̀ ̀o lơ ́ ́ p dropout p dropout llaa ̀ ̀ ngoo ̃ ̃ ra cuu ̉ ̉a lơ ́ ́ p flatten, p flatten, tt ̉ ̉ l lêê ̣ ̣ dropout (rate) đươ ̣ ̣c đăc đă ̣ ̣tt
llaa ̀ ̀ 0.1, ngh ̃ ̃a a llàà trong suôô ́ ́t t ququáá tr tr ̀ ̀nh huââ ́ ́n luyêê ̣ ̣n, n, ccoo ́ ́ 10% caa ́ ́c c nơ nơ -ron trong lơ ́ ́ pflatten see ̃ ̃ bbii ̣ ̣ttăă ́ ́t t mmôô ̣ ̣t t ccaa ́ ́ch ngẫẫu nhiên (1 nơ u nhiên (1 nơ -ron bii ̣ ̣ttăă ́ ́t khi noo ́ ́ nhnhââ ̣ ̣n n gigiaa ́ ́ t tr r ii ̣ ̣tr oo ̣ ̣ng ng ssôô ́ ́
f. LLớ ớ p k p k ếết nt nối đầy đủối đầy đủ 2 (FC layer) 2 (FC layer)
final_2 = fully_connected (drop_net_2, 256, activation = 'relu')drop_net_3 = dropout(final_2, 0.5)
Trang 31Tương tự như lớ p p FC FC ththứứ nhnhấất, t, llớ p p FC FC ththứứ 2 này cũng sử ddụng phương thứccfully_connected() với 256 nơ -ron tham gia vào quá trình phân loại, drop out vơi tỉ
llệệ 50% cũng đượ c áp dụng để tránh hiện tượ ng over fitting cho mạạng trong quátrình huấấn luyệện Hàm kích hoạạt vẫẫn là ReLU
Ngõ Ngõ ra ra ccủủa a llớ p p FC FC ththứứ hai này (sau khi áp dụụng drop out) là môô ̣ ̣t tensor coo ́ ́ shape [batch_size, 256]
g. LLớ ớ p k p k ếết nt nối đầy đủối đầy đủ 3 (FC layer) 3 (FC layer)
Lớ p p này này là là llơ ́ ́ p p cucuôô ́ ́i i ccuu ̀ ̀ng trong maa ̣ ̣ng CNN laa ̀ ̀ llơ ́ ́ p p ssee ̃ ̃ tr tr aa ̉ ̉ vvêê ̀ ̀ mmôô ̣ ̣t vector haa ̀ ̀ng
chưư ́ ́a a ccaa ́ ́c c xxáác c susuââ ́ ́t t ddưư ̣ ̣ đoađoa ́ ́n n ccủủa mô h ̀ ̀nh Lơ ́ ́ p p FC FC cucuôô ́ ́i i ccuu ̀ ̀ng ng ggôô ̀ ̀m m 77 nơ -r on tương
ưư ́ ́ng vơ ́ ́i 7 cảảm xúc mà hệệ thốống xửử lý nhậận dạạng vàà activation function laa ̀ ̀ softmax.Loss = fully_connected(drop_net_3,7,activation='softmax', name='Total_loss')
Ngoo ̃ ̃ ra cuôô ́ ́i cuu ̀ ̀ng củủa maa ̣ ̣ng CNN làà tensor coo ́ ́ shape [batch_size, 7]
h. CCấấu hình hu hình hồồi quy (regression)i quy (regression) Ngõ ra
Ngõ ra ccủủa lớ p k ếết nối đầy đủ cuối cùng đượ cc đăng ký hồi quy vớ i Tflearn hổổ
tr ợ phương phương thức thức đăng đăng ký ký hồhồi quy cùng vớ i i viviệc định nghĩa tối ưu hàm mất mát(loss fuction) và tốc độ hhọọc c ccủủa a mmạạng Ở đây, hàm mất mát là hàmategorical_crossentropy và tốc độ học được đặt là 0.0001
self.network = tflearn.regression
(Loss, optimizer = 'Adam' , loss='categorical_crossentropy',learning_rate=0.0001)
i.i. Load dLoad dữ ữ li liệệu cho huu cho huấấn huyn huyệện và validationn và validation
Để huhuấấn luyêê ̣ ̣n mô h ̀ ̀nh nh bbằằng TensorFlow, d ̃ ̃ưư liliệệu u totoaa ̀ ̀n n bbôô ̣ ̣ ttââ ̣ ̣ p p training training set set vvaa ̀ ̀
toaa ̀ ̀n bôô ̣ ̣ t tââ ̣ ̣ p t p testing setesting set đượ cc lưu trong 4 mảng cóó k ích thươ ́ ́c lớn Trong đoớn Trong đo ́ ́ imagedata vàà labels data sẽẽ được lưu riêng trong 2 mảng riêng biêê ̣ ̣tt nhưng vẫnhưng vẫn đan đa ̉ ̉m baa ̉ ̉oo
ccoo ́ ́ thêê ̉ ̉ tr ́ ́ch xuââ ́ ́t thaa ̀ ̀nh mộột căă ̣ ̣ p d ̃ ̃ưư liệệu khi huââ ́ ́n luyêê ̣ ̣n.