HỌCVIỆNCƠNGNGHỆBƯUCHÍNHVIỄNTHƠNG
---------------------------------------
NguyễnPhướcĐại
ỨNGDỤNGPHƯƠNGPHÁPHỌCSÂUVÀONHẬNDẠN
GCẢMXÚCĐỂĐÁNHGIÁĐỘHÀILỊNGKHÁCH HÀNG
ĐỀÁNTỐT NGHIỆP THẠCSĨKỸTHUẬT
(Theođịnhhướngứng dụng)
THÀNHPHỐHỒCHÍ MINH -2023
HỌCVIỆNCƠNGNGHỆBƯUCHÍNHVIỄNTHƠNG
---------------------------------------
NguyễnPhướcĐại
ỨNGDỤNGPHƯƠNGPHÁPHỌCSÂUVÀONHẬNDẠN
GCẢMXÚCĐỂĐÁNHGIÁĐỘHÀILỊNGKHÁCH HÀNG
Chunngành:HệthốngthơngtinMã
số:
8.48.01.04
ĐỀÁNTỐTNGHIỆPTHẠCSĨKỸTHUẬT
(Theođịnhhướngứng dụng)
NGƯỜIHƯỚNGDẪNKHOAHỌCTS.
HUỲNHTRỌNGTHƯA
THÀNHPHỐHỒCHÍMINH -2023
1
LỜICAMĐOAN
Tôi xin cam đoan đề án thạc sĩ hệ thống thông tin“Ứng dụng phương
pháphọc sâu vào nhận dạng cảm xúc để đánh giá độ hài lịng khách hàng”là do
tơinghiêncứu,tổnghợpvàthựchiện.
Tấtcảcácnộidung,cácsốliệu,kếtquảnêutrongđềántốtnghiệpnàylàtrungthựcvàchưatừng
được ai cơng bố trong bất kỳ cơng trình nào khác. Tơi hoàn toànchịutráchnhiệmchomọihànhvi sao
chéptráiphéphoặcviphạm quychếđàotạo.
TPHCM, ngày12tháng10năm2023
Họcviênthựchiệnđềán
NguyễnPhướcĐại
LỜICÁMƠN
TơixingửilờicảmơnchânthànhvàsâusắcđếnTS.HuỳnhTrọngThưa,ngườithầy đã tận tâm và
nhiệt
tình
trong
việc
hướng
dẫn
và
động
viên
tơi
suốt
q
trìnhthựchiệnđềán.Nhờsựhỗtrợcủangườithầy,tơiđãđượcđịnhhướngvàhồnthànhcácmục
tiêumà tơiđãđề ra.
Tơi xin gửi lời tri ân chân thành đến các Thầy, Cô đã đồng hành và tận
tìnhgiảng dạy cho tơi suốt thời gian học tập trong chương trình Thạc sĩ Hệ thống
thơngtin tại khoa Đào tạo Sau đại học, Học viện Công nghệ Bưu chính Viễn thơng
cơ sởtạithànhphốHồChíMinh.
Tơi muốn bày tỏ lịng biết ơn đến ban Giám Đốc Trung tâm Cơng nghệ
Thơngtin–ViễnthơngTâyNinhđãtạođiềukiệnthuậnlợichoqtrìnhhọctậpcủatơi.
Tơibiếtơnđếntấtcảbạnbèđãđộngviên,hỗtrợvàđónggópnhữngýkiếnqbáuchođềánnà
y.Đónggópcủacácbạnđãgiúptơihồnthiệnnghiêncứunày.
Đềánđãhồnthànhvàđạtđượcmộtsốkếtquảnhấtđịnh,tuyvậytơithừanhậnrằngcịntồntạinhững
hạnchếvàthiếusót.Vìvậy,tơichânthànhmongnhậnđượcsựthơngcảm,sựđónggópqbáutừqthầycơvàcácbạnđểtơicóthểcải
thiện,nângcaochấtlượngcủanghiêncứunày.
Mộtlầnnữatơixinchânthànhcảmơn!
TPHCM, ngày12tháng10năm2023
Họcviênthựchiệnđềán
NguyễnPhướcĐại
MỤCLỤC
LỜICAMĐOAN.......................................................................................................i
LỜICÁMƠN............................................................................................................ii
MỤCLỤC................................................................................................................iii
DANHMỤCCÁCTHUẬTNGỮ,CHỮVIẾTTẮT...................................................v
DANHSÁCHHÌNHVẼ...........................................................................................vi
DANHSÁCHBẢNG.............................................................................................viii
MỞĐẦU................................................................................................................... 1
CHƯƠNG1 –TỔNGQUAN....................................................................................2
2.1. Lýdochọnđềtài............................................................................................2
2.2. Mụcđíchnghiêncứu.....................................................................................2
2.3. Đốitượngvàphạm vinghiêncứu..................................................................2
2.4. Phươngphápnghiêncứu..............................................................................3
2.5. Tínhthựctiễn...............................................................................................3
2.6. Bốcụctrìnhbàyđềán....................................................................................3
CHƯƠNG2–CƠSỞ LÝTHUYẾT VÀCÁCNGHIÊNCỨULIÊNQUAN..............5
2.1. Cơsở lýthuyết..............................................................................................5
2.1.1.
GiớithiệuTensorFlow.........................................................................5
2.1.2.
GiớithiệuvềOpenCV...........................................................................6
2.1.3.
GiớithiệuvềPython.............................................................................8
2.2. Cácnghiêncứu liên quan.............................................................................9
2.2.1.
MơhìnhVGG......................................................................................9
2.2.2.
MơhìnhResNet.................................................................................11
2.2.3.
MơhìnhMobileNet............................................................................12
2.2.4.
Kiếntrúc Finetune-MobileNet...........................................................15
CHƯƠNG3 –MƠHÌNHĐỀXUẤT........................................................................19
3.1. Chuẩn bịdữliệu.........................................................................................19
3.1.1.
Tậpdữ liệu........................................................................................19
3.1.2.
Xửlýdữ liệu......................................................................................19
3.2. Huấnluyệnmơhình....................................................................................21
3.2.1.
Xửlýdữ liệuđầuvào...........................................................................21
3.2.2.
Xâydựngmơhình...............................................................................22
3.2.3.
Huấnluyệnmơ hình...........................................................................24
3.2.4.
Kếtquảhuấnluyệnmơhình..................................................................24
3.2.5.
Mơhìnhđượcchọn.............................................................................29
3.3. Cảitiếnmơhình..........................................................................................30
3.3.1.
Kiếntrúc Finetune-MobileNetV2......................................................30
3.3.2.
Phânnhómđộhàilịng.........................................................................31
3.3.3.
Kếtquảhuấnluyệnsaucảitiến............................................................312
Chương4– THỰCNGHIỆM..................................................................................36
4.1. Thuthậpthêmdữliệucảmxúcthựctế.............................................................36
4.2. Huấnluyệnmơhình.......................................................................................36
4.3. Triển khaimơhình.......................................................................................36
4.4. Càiđặtthựcnghiệm......................................................................................38
KẾTLUẬNVÀHƯỚNGPHÁTTRIỂN.................................................................41
DANHMỤCCÁCTÀILIỆU THAMKHẢO.........................................................42
DANHMỤCCÁCTHUẬTNGỮ,CHỮVIẾTTẮT
Viếttắt
DCNN
TiếngAnh
DeepConvolutionalNeural
Networks
Mạngnơrontíchchập sâu
Finetune
Tinhchỉnh
MobileNet
Mạngdiđộng
VGG
VisualGeometryGroup
ResNet
ResidualNetwork
OpenCV
TiếngViệt
OpenSourceComputerVision
Thưviệnthịgiácmáytính
Library
mãnguồnmở
DANHSÁCHHÌNHVẼ
Hình1.1:CấuhìnhConvNet................................................................................10
Hình1.2: KiếntrúcchoImageNet........................................................................11
Hình1.3:TỷlệlỗikhixácthựcImageNet.MơhìnhVGG-16,ResNet50/101/152chỉsử dụngphépchiếuđểtăngkíchthước.................................................12
Hình1.4:KiếntrúcthânMobileNet......................................................................13
Hình1.5:Lớptíchchậptiêuchuẩn:(a)vớiđịnhmứchàngloạtvàReLU,
(b)Lớptíchchậptheo chiềusâuvới Depthwisevà Pointwise..................................14
Hình1.6:KiếntrúchệthốngMobileNettinhchỉnh.................................................16
Hình1.7:MơhìnhMobileNetCNN.....................................................................17
Hình1.8: KiếntrúcFinetunedMobileNet............................................................18
Hình2.1:Xửlýdữliệu input................................................................................22
Hình2.2:MơhìnhResNet50...............................................................................23
Hình2.3:MơhìnhVGG16..................................................................................23
Hình2.4:MơhìnhMobileNetV2.........................................................................23
Hình2.5: KếtquảtrainingvớiResNet50..............................................................24
Hình2.6:Kếtquả trainingvớiVGG16.................................................................25
Hình2.7: KếtquảtrainingvớiMobileNetV2........................................................25
Hình2.8:Kếtquả độchínhxácnhãncảmxúc vớiVGG16......................................26
Hình2.9:Kếtquả độchínhxácnhãncảmxúc vớiResNet50...................................27
Hình2.10:Kếtquả độ chínhxácnhãncảmxúcvớiMobileNetV2............................28
Hình2.11:Biểuđồsosánhgiữa3mơ hình.............................................................29
Hình3.1: KiếntrúcMobileNetV2.......................................................................30
Hình3.2:KếtquảtrainingvớiMobileNetV2 saucải tiến......................................32
Hình3.3:Biểuđồ độchínhxáccủacácnhãncảmxúcvớiMobileNetV2...................33
Hình3.4:Biểuđồsosánhgiữa4mơhìnhtheo nhãncảmxúc....................................35
Hình4.1:Kiếntrúc hệ thống thực nghiệm..........................................................36
Hình4.2:Giaodiệnhệthốngdemo.......................................................................38
Hình4.3:Cácbướcđưadữ liệuvàohệthống đểnhậndạng......................................39
Hình4.4:Kếtquảdựđốncảmxúcquanhậndạngkhnmặt...................................39
Hình4.5:Kếtquả dữ liệunhậndạngchưa chuẩnxáchồn tồn..............................40
DANHSÁCHBẢNG
Bảng1.1:Kếtquả kiểmthửmơhìnhVGG16 đãtraining........................................26
Bảng1.2:Kếtquả kiểmthử mơhìnhResNet50đãtraining.....................................27
Bảng1.3:KếtquảkiểmthửmơhìnhMobileNetV2đãtraining.................................28
Bảng1.4:Kếtquả sosánhgiữa3mơ hình..............................................................29
Bảng2.1:Kếtquả8lớpcảmxúcchạythửMobileNetV2 saucải tiến........................32
Bảng2.2:Kếtquả sosánhgiữakỹthuậtđóng băng5lớp,20lớpvà 40lớp..................33
Bảng2.3: KếtquảkiểmthửmơhìnhFinetune20-MobileNetV2đãtraining..............34
Bảng2.4:Kếtquả kiểmthử4mơhình...................................................................34
1
MỞĐẦU
Trong thời đại số hóa và phát triển cơng nghệ như hiện nay, ứng dụng của
trítuệnhântạovàhọcmáyđãmanglạinhữngtiếnbộđángkểtrongnhiềulĩnhvực,đặcbiệtlà trong việc
nhận
dạng
và
xử
lý
dữ
liệu
hình
ảnh.
Một
trong
những
ứng
dụngquantrọngcủahọcmáytronglĩnhvựcnàylàkhảnăngnhậndạngcảmxúcmặtngười,gópphầnnân
gcaokhảnăngtươngtácgiữaconngườivàmáytính.
Cảm xúc mặt người chứa đựng những thông điệp quan trọng về tâm trạng,
tìnhcảm và thái độ của một cá nhân tại thời điểm cụ thể. Để hiểu được những thơng
điệpnày,máytínhcầncókhảnăngxửlývànhậnbiếtcácđặcđiểmtronghìnhảnhkhnmặt,từđóph
ânloạicảmxúcnhưvuivẻ,buồnbã,tứcgiận,sợhãi,kinhngạc,vàghétbỏ.Trongbốicảnhnày,việcs
ửdụngmơhìnhDeepConvolutionalNeuralNetworks(DCNN)vàkỹthuậtFine-tuneđãchứngminhsựhiệu
quảtrongviệcxâydựngcáchệthốngnhậndạngcảmxúcmặtngười.
Mơ hình MobileNet, một loại mơ hình DCNN, đã được phát triển để đáp
ứngnhu cầu trong việc xử lý hình ảnh trên các thiết bị có tài nguyên hạn chế như
điệnthoại di động và thiết bị nhúng. Kết hợp với kỹ thuật Fine-tune, mơ hình
MobileNetcóthểđượctinhchỉnhvàđàotạolạitrêndữliệucụthể,giúpnângcaokhảnăngnhậndạn
gcảmxúcmặtngườitrêncáctậpdữ liệucụthể.
Đề án tốt nghiệp này nhằm khám phá tiềm năng của mơ hình MobileNet và
kỹthuật Fine-tune trong việc xây dựng hệ thống nhận dạng cảm xúc mặt người. Quaviệc nghiên cứu và thực
nghiệm,
mong
muốn
rằng
luận
văn
sẽ
đóng
góp
vào
pháttriểncủalĩnhvựcnàyvàmởranhữnghướng nghiêncứutiềmnăngtrongtươnglai.
sự
CHƯƠNG1–TỔNGQUAN
2.1.
Lýdo chọn đềtài
Hiện nay, một phần rất quan trọng trong chiến lược sản xuất kinh doanh
củanhiều doanh nghiệp là công tác đánh giá độ hài lịng của khách hàng. Ngồi
cácphươngpháptruyềnthốnglàkhảosáttrựctiếpýkiếnkháchhàngngaytạiđiểmgiaodịch,gửiliên
kết
đánh
giá
trực
truyến…,
thì
một
phương
pháp
được
đề
cập
đến
lànhậndạngcảmxúckhnmặtđểđánhgiáđộhàilịngcủakháchhàngkhitrảinghiệmdịchvụ.
Xây dựng một ứng dụng thử nghiệm khả năng nhận dạng cảm xúc trên
mặtngười từ các tập dữ liệu mở trên internet, đánh giá tính khả thi trước khi phát
triển ýtưởngthànhứngdụnghồnchỉnhápdụngvàothựctế.Nênviệcđềxuấtgiảipháp“Ứng dụng phương pháp
học
sâu
vào
nhận
dạng
cảm
xúc
để
đánh
giá
độ
hàilịngkháchhàng”làcótínhthiết thựcvàmangtínhứngdụngcao.
2.2.
Mụcđíchnghiêncứu
Đềán“Ứngdụngphươngpháphọcsâuvàonhậndạngcảmxúcđểđánhgiáđộhài lịng khách
hàng”hướngtớimộtứngdụngcóchứcnăngpháthiệnrakhnmặtngười và nhận dạng cảm xúc trên khn
mặt
đó
như
giận
giữ,
khinh
thường,
sợ
hãi,vuivẻ/hạnhphúc,bìnhthường,buồn,ngạcnhiên.Thơngquanghiêncứucácphươngpháp học
máychobàitốnnhậndạngcảmxúcmặtngườivàngơnngữlậptrìnhPython, đề án muốn xây dựng một ứng
dụng
có
thể
nhận
dạng
được
cảm
xúc
củakhnmặtngườitừđóđánhgiáđộhàilịngcủakháchhàng.
2.3.
Đối tượngvàphạmvinghiêncứu
Vớimụctiêuđặtraởtrên,đềánthựchiệnnhữngvấnđềsau:
- Đốitượngnghiêncứulàcácphươngpháppháthiệnkhnmặtngườivànhậndạng cảm xúc
củakhnmặtquađólựachọnmộtphươngphápphùhợp.Tìmhiểuvàđềxuấtmộtphươngphápcụthể.
- Nghiêncứuvàsửdụngphươngpháphọcmáy,cụthểlàl à mơhìnhMobileNetđểphânloạic
ảmxúccủakháchhàng.
- Phạm vi thực hiện: sử dụng tập dữ liệu trên Kaggle để huấn luyện và đưa
rakỹthuậttốiưumơhìnhápdụng.
2.4.
Phươngphápnghiêncứu
- Phương pháp nghiên cứu lý thuyết: Mô tả kiến thức về mạng nơron và
họcsâu cần thiết để hiểu về mơ hình MobileNet. Phân tích chi tiết cách MobileNet
hoạtđộng,cáchápdụngvàobàitốnphânloạicảmxúc.
- Phươngphápnghiêncứuthựcnghiệm:Trìnhbàyquytrìnhxâydựngtậpdữliệu, tiền xử lý,
huấn
luyện
và
đánh
giá
mơ
hình.
Thử
nghiệm
nhiều
mơ
hình
khácnhaunhưVGG,Resnet,thửnghiệmkỹthuậtFinetunevớimơhìnhMobileNetđểtăngđộchínhx
ác.
2.5.
Tính thựctiễn
Đề án nghiên cứu một số kỹ thuật, các mơ hình hỗ trợ cho việc phát hiện
vànhậndạng cảmxúcmặtngười.
Bêncạnhđó,đềánnàygópphầnxâydựngứngdụngnhậndạngcảmmặtngườiđểápdụngđá
nhgiáđộhàilịngkháchhàngtrongthựctiễn.
2.6.
Bốcục trìnhbàyđềán
Nội dung của đề án được chia thành các phần như
sau:MỞĐẦU
CHƯƠNG1–TỔNGQUAN
- Lý do thực hiện đề tài, mục đích nghiên cứu Ứng dụng phương pháp học
sâuvàonhậndạngcảmxúcđểđánhgiáđộhài lịngkháchhàng.
- Đốitượngnghiêncứu,phạmvinghiêncứu vàphươngphápnghiêncứu
- Tínhthựctiễn
- Trìnhbày bốcụcchínhcủa đềán
CHƯƠNG2–CƠSỞLÝTHUYẾTVÀCÁCNGHIÊNCỨULIÊNQUAN
- Giớithiệucácthưviệnsửdụng: Tensorflow, Python, OpenCV
- Giới thiệu các mơ hình pretrained: VGG, Resnet,
MobilenetV2CHƯƠNG3–MƠHÌNHĐỀXUẤT
- Phươngphápđềxuấ t được huấnluyện trê nb ộ dữliệu“FacialExpressio
nsTrainingData”trênKaggle
- Đểgiảiquyếtbàitoáncầnxemxétthựchiệnhaibước:giaiđoạnhuấnluyệnvàgiai
đoạnthử nghiệm
- Trìnhbàycáchthựchiệngồm:chuẩnbịdữliệu,xửlýdữliệu,huấn
luyệnmơhìnhvàđưarakếtquảbằngmơhìnhMobileNetV2kếthợpkỹthuậtFine-tune
CHƯƠNG4–THỰCNGHIỆM
- Xâydựngứngdụngthửnghiệmnềnwebđểxửlýnhậndạngcảmxúcmặtng
ườitừcácnguồndữliệuđầuvào.
- Kếtquảthực nghiệm.
KẾT LUẬN VÀ HƯỚNG PHÁT
TRIỂNDANHMỤCTÀI
LIỆUTHAMKHẢO
CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN
CỨULIÊNQUAN
2.1.
Cơsở lýthuyết
2.1.1. GiớithiệuTensorFlow
TensorFlowlàmộtthư việnmãnguồnmởcủaGoogledànhchohọcmáyvàtrítuệ nhân tạo.
Nóđượcpháttriểnbanđầuđểtạoramơhìnhhọcmáyvàmạngnơronmột cách dễ dàng và hiệu quả. Từ đó,
TensorFlow đã trở thành một trong những thưviệnphổbiếnnhấtvàmạnhmẽnhấttronglĩnhvựchọcmáy,
chophépnhànghiêncứuvànhàpháttriểntạoravàtriểnkhaicácmơhìnhphứctạp.[4]
ĐặcđiểmchínhcủaTensorFlow:
- Data Flow Graphs (Đồ thị luồng dữ liệu): TensorFlow sử dụng cơ chế
biểudiễnmơhìnhthơngquađồthịluồngdữliệu.Trongđồthịnày,cácnodeđạidiệnchocác phép
tốn
và
các
cạnh
đại
diện
cho
dữ
liệu
chạy
qua
các
phép
tốn.
Điều
này
tạoracơsởchoviệcphântántínhtốnvàtốiưuhóa.
- StaticandDynamicComputation(Tínhtốntĩnhvàđộng):TensorFlowhỗtrợcả tính tốntĩnh
và tính tốn động. Trong tính tốn tĩnh, đồ thị tínhtốnđược xácđịnh trước và tối ưu hóa trước khi chạy.
Trong
tính
tốn
động,
bạn
có
thể
tạo
vàthayđổiđồthịtrongqtrìnhchạy,đặcbiệthữchtrongviệcxâydựngcácmơhìnhcócấu
ra
trúc
linh hoạthơn.
- High-level APIs và Low-level APIs: TensorFlow cung cấp cả hai loại
API.High-level APIs như Keras giúp bạn xây dựng và huấn luyện mơ hình một
cách
dễdàng,trongkhiLow-
levelAPIschophépbạntùychỉnhvàkiểmsốtchitiếthơncủaqtrìnhtínhtốn.
- Auto Differentiation (Tự động đạo hàm): TensorFlow có khả năng tính
tốntự động đạo hàm, giúp bạn dễ dàng tính tốn đạo hàm của các biểu thức phức
tạptrongqtrìnhhuấnluyệnmơhình.
- Hỗtrợđanềntảng:TensorFlowkhơngchỉhỗtrợCPUmàcịnhỗtrợGPUvàTPU(Tenso
rProcessingUnit)đểgiatăngtốcđộtínhtốn,đặcbiệttrongcácmơhìnhsâuvàphứctạp.
- Community lớn và sự phát triển liên tục: TensorFlow có một cộng đồng
lớnvà đa dạng, đồng thời Google và cộng đồng đang liên tục phát triển thư viện,
cungcấpcập nhậtvà cải tiếnthường xuyên.
ỨngdụngcủaTensorFlow:
- Học máy và trí tuệ nhân tạo: TensorFlow được sử dụng rộng rãi để xây
dựng,đàotạovàtriểnkhaicácmơhìnhhọcmáyvàtrítuệnhântạotrênnhiềulĩnhvựcnhưnhậndạng
hìnhảnh,xửlýngơnngữtựnhiên,dựbáo,vànhiềuứngdụngkhác.
- Nghiên cứu và phát triển mới: Các nhà nghiên cứu và nhà phát triển có thể
sửdụng TensorFlow để thử nghiệm các ý tưởng mới, thiết kế các mơ hình tùy chỉnh
vàthựcnghiệmcácgiảipháptronglĩnhvựctrítuệnhântạo.
- Triểnkhaisảnphẩm:TensorFlowcũngcókhảnăngtriểnkhaicácmơhìnhđãxây dựng vào
cácsảnphẩmthựctế,từứngdụngdiđộng,ứngdụngwebchođếnhệthốngnhúng.
Tóm lại, TensorFlow là một cơng cụ mạnh mẽ và đa dạng trong lĩnh vực
họcmáy và trí tuệ nhân tạo, cho phép bạn xây dựng và triển khai các mơ hình từ cơ
bảnđến phức tạp, đáp ứng nhiều nhu cầu khác nhau trong cộng đồng nghiên cứu và
pháttriển.
2.1.2. GiớithiệuvềOpenCV
OpenCV (Open Source Computer Vision Library) là một thư viện mã
nguồnmở chuyên dụng cho xử lý hình ảnh và thị giác máy tính. Được phát triển bởi
Intelvào năm 1999 [5], OpenCV đã trở thành một công cụ quan trọng trong lĩnh
vực xửlýhìnhảnh,hỗtrợcho việcphântích,xửlývà hiểuthơng tintừdữliệuhìnhảnh.
ChứcnăngchínhcủaOpenCV:
- Xửlýảnhvàvideo:OpenCVcungcấpnhiềuchứcnăngđểthựchiệncácthaotácxử
lýcơbảnnhưlọc,biếnđổi,cắt,ghép,xoay,đảongượchìnhảnhvàvideo.
- Phân tích đối tượng và thị giác máy tính: OpenCV hỗ trợ việc phát hiện,
theodõi, và phân loại đối tượng trong hình ảnh và video. Điều này bao gồm nhận
dạngkhnmặt,đốitượng,vàcácđặctrưngquantrọngkhác.
- Pháthiệnvàtheodõiđườngviền:OpenCVcókhảnăngpháthiệnđườngviềntronghìnhả
nh,chophépbạnxácđịnhcáchìnhdạngvàcạnh.
- Xử lý dữ liệu từ camera: OpenCV cho phép bạn truy cập và xử lý dữ liệu
từcácthiếtbịcamera,giúp xâydựngcácứng dụng thịgiác máytính thờigianthực.
- Xử lý ảnh y tế và khoa học: OpenCV cũng được sử dụng trong lĩnh vực y
tếvàkhoahọc,giúpphântíchvàxử lýdữ liệuhìnhảnhyhọcvàkhoahọc.
- Pháttriểnứngdụngthịgiácmáytính:OpenCVcungcấpAPIvàcơngcụpháttriểnđểxâyd
ựngcácứngdụngthịgiácmáytínhtrựcquanvàmạnhmẽ.
ĐặcđiểmchínhcủaOpenCV:
- Đa nền tảng: OpenCV được hỗ trợ trên nhiều hệ điều hành như
Windows,Linux,macOSvàcảAndroid.
-Hỗ trợ nhiều ngôn ngữ lập trình: OpenCV có API cho nhiều ngơn ngữ nhưC+
+,Python,Java,vàC#.
- Cộngđồnglớnvàsựpháttriểnliêntục:OpenCVcómộtcộngđồngđơngđảovàtíchcực,giúp
duytrìvàpháttriểnthưviện,cũngnhưcungcấphỗtrợ,tàiliệuvàvídụchongườidùng.
- Hỗ trợ phân tán tính tốn: OpenCV hỗ trợ tính tốn phân tán để tận dụng
khảnăngxử lýsongsongcủacácmáytính.
- Tiện ích trong việc học máy và trí tuệ nhân tạo: OpenCV cung cấp các
cơngcụ hữu ích để xử lý và trích xuất dữ liệu hình ảnh để sử dụng trong các mơ
hình họcmáyvàtrí tuệnhântạo.
ỨngdụngcủaOpenCV:
- Xửlýhìnhảnhytế:OpenCVcóthểgiúppháthiệnvàphântíchcácvùngkhốiu,dấuvếttron
ghìnhảnhyhọc.
- Nhậndạngkhnmặtvàđốitượng:OpenCVđượcsửdụngrộngrãitrongcácứngdụngnh
ậndạngkhnmặt,pháthiệnđối tượngvànhận dạngvật thể.
- Xử lý ảnh và video trong ứng dụng di động và web: OpenCV cung cấp
cáccôngcụphùhợp choviệcxử lýảnhvàvideotrongcácứngdụngdiđộngvàweb.
- Robotics và tự động hóa: OpenCV có thể được sử dụng trong các ứng
dụngroboticsvàtựđộnghóađểnhậnbiếtvàtươngtácvớimơi trường.
Tóm lại, OpenCV là một thư viện quan trọng và mạnh mẽ trong lĩnh vực xử
lýhình ảnh và thị giác máy tính, hỗ trợ cho việc xây dựng và triển khai các ứng
dụngthịgiácmáytínhđadạngvàmạnhmẽ.
2.1.3. Giớithiệu vềPython
Pythonlàmộtngơnngữlậptrìnhmãnguồnmở,cócúphápđơngiảnvàdễđọc,đượcpháttriển
bởiGuidovanRossumvàđượcramắtlầnđầuvàonăm1991.Pythonđượcthiếtkếđểdễdàngđọc,vi
ếtvàhiểu,giúpchongườilậptrìnhtậptrungvàogiảiquyếtvấnđềthayvìtốnthờigianvớicúphápp
hứctạp.[6]
ĐặcđiểmchínhcủaPython:
- Cú pháp đơn giản và rõ ràng: Python sử dụng cú pháp rất giống với ngôn
ngữtựnhiên,giúpdễdànghọcvàsử dụng.
- Dễ đọc và dễ hiểu: Code Python thường rất dễ đọc, người mới học lập
trìnhcũngcó thểnhanh chóng hiểuvàviếtmã.
- Thưviệnvàcộngđồngphongphú:Pythoncómộthệthốngthưviệnrộnglớn,hỗtrợchonh
iềulĩnhvựckhácnhaunhưxửlýhìnhảnh,họcmáy,webdevelopment,xửlýdữ
liệu,vànhiềuứngdụngkhác.
- Hỗ trợ đa nền tảng: Python có thể chạy trên nhiều nền tảng như
Windows,macOSvàLinux.
- Học và nghiên cứu: Python là một ngôn ngữ phổ biến trong lĩnh vực học
tậpvànghiêncứu,vớinhiềutàiliệu,sáchvàkhóahọcchấtlượng.
ỨngdụngcủaPython:
- Web Development: Python được sử dụng trong việc xây dựng các trang
webvàứngdụng websửdụngcácframeworknhưDjangovàFlask.
- Xửlýdữliệuvàphântích:Pythonlàngơnngữưathíchchoviệcxửlývàphântíchdữ
liệu,vớicácthư việnnhư NumPy,PandasvàMatplotlib.
- Học máy và trí tuệ nhân tạo: Python là một ngơn ngữ phổ biến trong lĩnh
vựchọcmáyvàtrítuệnhântạo,vớicácthưviệnnhưTensorFlow,PyTorchvàScikit-learn.
- Ứng dụng di động và phát triển game: Python có thể được sử dụng trong
pháttriểnứngdụngdiđộngsửdụngcácframeworknhưKivyvàBeeWare,cũngnhưtrongpháttriểngame.
- Xửlýhìnhảnhvàthịgiácmáytính:Pythoncóthểđượcsửdụngđểxâydựngcácứngdụng
xử lýhìnhảnhvàthịgiácmáytínhsử dụngthưviệnOpenCV.
2.2.
Các nghiên cứuliênquan
2.2.1. MơhìnhVGG
Kiến trúc mạng VGG là một dạng kiến trúc mạng nơron tích chập sâu
(CNN)được giới thiệu trong bài báo "Very Deep Convolutional Networks For
Large-scaleImage Recognition" của Karen Simonyan và Andrew Zisserman [1].
Kiến trúc nàyđược thiết kế để thực hiện nhận dạng hình ảnh trên quy mô lớn và đã
đạt được hiệusuấtấntượngtrêncáctập dữliệunhư ImageNet.
Môtảkiến trúcVGG:
- Lớp đầu vào (Input Layer): Mạng VGG khởi đầu bằng một lớp đầu
vào(inputlayer)được dùngđểchứa hìnhảnh đầu vào.
- Lớp tích chập (Convolutional Layer): Mạng VGG sử dụng một chuỗi
cáclớp tích chập với kích thước nhỏ (3x3) và bước nhảy là 1. Những lớp tích chập
nàythựchiệnviệchọccácđặctrưngcụcbộtừ hìnhảnh.
- Lớpgộp(PoolingLayer):Saumỗilớptíchchập,mộtlớpgộp(poolinglayer)đượcthêmvà
ovớikíchthướclà2x2vàbướcnhảylà2.Lớpgộpnàygiúpgiảmkíchthướcdữ
liệu,tăngtínhtrừutượngvàgiảmsốlượngthamsố.
- Lớp kết nối đầy đủ (Fully Connected Layer): Sau chuỗi các lớp tích
chậpvàgộp,mạngVGGsửdụngmộthoặcvàilớp kếtnốiđầyđủđểhọccácmốiquanhệtoàncục
giữacácđặctrưng.
- Lớpđầura(OutputLayer):Cuốicùng,kiếntrúcVGGkếtthúcvớimộtlớpđầu ra (output
layer)chứasốlượngnơ-rontươngứngvớisốlượnglớpphânloại(vídụ:sốlượnglớptrongbộdữliệuImageNet).
- Hàm kích hoạt (Activation Function): Giữa các lớp, hàm kích hoạt
thườngđược áp dụng, thường là hàm ReLU (Rectified Linear Activation), nhằm
tăng tínhkhơngtuyếntínhvàgiảmtìnhtrạngmấtmátđạohàm.
Hình1.1:CấuhìnhConvNet
- Các phiên bản phổ biến: Một số phiên bản phổ biến của mạng VGG
làVGG16vàVGG19.VGG16baogồmtổngcộng16lớp,với13lớptíchchậpvà3lớpkếtnốiđầyđ
ủ.VGG19cũngtntheocấutrúctươngtự,nhưngcótổngcộng19lớp.