BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH
Dương Xuân Huy
PHÂN LỚP ĐỒNG PHỤC SINH VIÊN
DÙNG MƠ HÌNH HỌC SÂU
Chun ngành: Khoa học máy tính
Mã số:
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HOC:
PGS.TS. LÊ HỒNG THÁI
Thành phố Hồ Chí Minh - 2019
Lờ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ả nêu trong luận văn là trung thực và chưa từng được ai cơng bố trong
bất kỳ cơng trình nào khác.
Tơi xin cam đoan đây là cơng trình nghiên cứu của bản thân tôi, dưới sự
hướng dẫn khoa học của Thầy PGS.TS. Lê Hồng Thái (Khoa Cơng nghệ
Thơng tin, Trường Đại học Khoa học Tự nhiên - Đại học Quốc gia Thành phố
Hồ Chí Minh). Các thơng tin và số liệu của luận văn có nguồn gốc rõ ràng, cụ
thể, các trích dẫn theo đúng quy định hiện hành.
Tôi xin cam đoan nội dung và kết quả của luận văn này xuất phát từ
cơng sức và q trình lao động, nghiên cứu hồn tồn trung thực, khách quan.
Tp. Hồ Chí Minh, tháng 12 năm 2019
Tác giả
Dương Xuân Huy
Lời cám ơn
Lời đầu tiên, tôi xin gửi lời cám ơn sâu sắc nhất đến thầy PGS.TS. Lê Hoàng
Thái (Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên - Đại học
Quốc gia Thành phố Hồ Chí Minh) đã hướng dẫn luận văn cũng như phát triển định
hướng. Tôi cũng xin cám ơn thầy ThS. Trần Sơn Hải (Khoa Công nghệ Thông tin,
Trường Đại học Sư Phạm Thành phố Hồ Chí Minh) đã góp cơng sức hướng dẫn, hỗ
trợ và các đồng chí trong Ban Chấp hành Đồn Trường, Ban Chấp hành đoàn các
khoa Giáo dục Tiểu học, Giáo dục Mầm non, Giáo dục Đặc Biệt, Công nghệ Thông
tin của Trường Đại học Sư phạm Thành phố Hồ Chí Minh đã bỏ nhiều thời gian hỗ
trợ trong việc thu thập, kiểm tra và gán nhãn dữ liệu để thực hiện được đề tài trong
luận văn này.
Tôi cũng gửi lời cám ơn chân thành đến quý Thầy/ Cô giảng dạy các mơn
ngành Khoa học máy tính khóa K28 đã cung cấp kiến thức quý báu làm nền tảng cơ
bản trong quá trình học tập nghiên cứu. Đồng thời, xin gửi lời cám ơn đến quý
Thầy/Cô Ban Chủ nhiệm khoa Cơng nghệ Thơng tin và q Thầy/Cơ phịng Sau
Đại học Trường Đại học Sư phạm Thành phố Hồ Chí Minh đã hỗ trợ, tạo điều kiện
thuận lợi cho tôi trong suốt thời gian qua.
Trong quá trình thực hiện và tìm hiểu nghiên cứu đề tài, tơi đã gặp rất nhiều
khó khăn và được quý Thầy/Cô hỗ trợ, động viên để tơi hồn thành tốt Luận văn
này.
Cuối cùng, tơi xin bày tỏ lịng biết ơn đến gia đình, bạn bè đã động viên, hỗ
trợ vật chất lẫn tinh thần trong suốt quá trình học tập cũng như nghiên cứu thực hiện
luận văn này.
Chân thành cám ơn quý vị.
Tác giả
Dương Xuân Huy
MỤC LỤC
Trang
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục thuật ngữ và viết tắt
Danh mục các bảng biểu
Danh mục hình vẽ
CHƯƠNG 1. TỔNG QUAN...................................................................................1
1.1. Khái quát về đồng phục sinh viên..................................................................1
1.2. Bài toán phân lớp đồng phục sinh viên..........................................................6
1.3. Mục tiêu hướng đến của bài toán...................................................................7
1.4. Hướng tiếp cận và giải pháp cho bài toán......................................................7
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN. . .10
2.1. Hệ thống phân lớp hình ảnh......................................................................... 10
2.1.1. Bài tốn phân lớp.................................................................................. 10
2.1.2. Các kỹ thuật phân lớp cơ bản................................................................ 12
2.1.3. Các tiêu chuẩn đánh giá........................................................................ 23
2.2. Kỹ thuật phân lớp ảnh dùng Convolutional Neural Network....................... 23
2.2.1. Kiến trúc cơ bản của mơ hình CNN...................................................... 26
2.2.2. Một số kiến trúc CNN thơng dụng........................................................ 33
2.2.3. Tập dữ liệu đầu vào cho mơ hình CNN................................................. 41
2.2.4. Độ đo đánh giá mơ hình........................................................................ 42
CHƯƠNG 3. MƠ HÌNH CNN CHO PHÂN LỚP ĐỒNG PHỤC SINH VIÊN
CÁC KHOA CỦA TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HCM .. 46
3.1. Tiền xử lý ảnh và chuẩn hóa dữ liệu............................................................. 46
3.2. Đề xuất mơ hình CNN.................................................................................. 49
3.3. Q trình huấn luyện mơ hình và phân lớp hình ảnh.................................... 53
CHƯƠNG 4. THỰC NGHIỆM VÀ BÀN LUẬN................................................ 55
4.1. Cơ sở dữ liệu................................................................................................ 55
4.2. Mơi trường thực nghiệm............................................................................... 58
4.3. Q trình thực nghiệm.................................................................................. 59
4.4. Kết quả thực nghiệm.................................................................................... 59
4.4.1. Tỉ lệ tập huấn luyện và kiểm tra............................................................ 59
4.4.2. Kích thước ảnh đầu vào......................................................................... 65
4.4.3. Tăng thêm số lượng ảnh đầu vào........................................................... 68
4.4.4. Tổng kết kết quả thực nghiệm............................................................... 73
CHƯƠNG 5. KẾT LUẬN VÀ KHUYẾN NGHỊ................................................. 75
5.1. Kết luận........................................................................................................ 75
5.2. Kiến nghị...................................................................................................... 76
TÀI LIỆU THAM KHẢO..................................................................................... 77
DANH MỤC THUẬT NGỮ VÀ VIẾT TẮT
Chữ viết
tắt
CNN
Convo
Netwo
NN
Neura
SVM
Suppo
KNN
K-Nea
ReLU
Rectif
GPU
Graph
CONV
Covol
POOL
Poolin
FC
Fully
DANH MỤC CÁC BẢNG BIỂU
Bảng 4.1. Thống kê số lượng và dung lượng của tập ảnh đồng phục sinh viên......56
Bảng 4.2. Thống kê số liệu tập dữ liệu đầu vào...................................................... 58
Bảng 4.3. Thống kê kết quả thực nghiệm thay đổi tỉ lệ phân bố tập dữ liệu...........64
Bảng 4.4. Thống kê kết quả thực nghiệm với 3 kích thước ảnh đầu vào.................68
Bảng 4.5. Thống kê kết quả thực nghiệm với bộ dữ liệu tăng thêm........................70
Bảng 4.6. Thống kê kết quả thực nghiệm huấn luyện 300 lần với bộ dữ liệu tăng
thêm....................................................................................................... 71
DANH MỤC HÌNH VẼ
Hình 1.1. Đồng phục sinh viên một số khoa trực thuộc Trường Đại học Sư phạm
Thành phố Hồ Chí Minh.......................................................................... 2
Hình 1.2. Chương trình Perfect Student do Đồn Trường triển khai......................... 2
Hình 1.3. Ảnh sinh viên đang mặc đồng phục được đăng tải trên mạng xã hội........3
Hình 1.4. Mô tả đồng phục của một số khoa nhiều đặc điểm gần giống nhau..........4
Hình 1.5. Minh họa vấn đề phân lớp đồng phục sinh viên........................................ 5
Hình 1.6. Các bước thực hiện bài tốn phân lớp đồng phục dùng mơ hình CNN.....6
Hình 2.1. Mơ tả bài tốn phân lớp và bài tốn phân cụm........................................ 11
Hình 2.2. Thuật tốn K-Mean với 3 vùng dữ liệu................................................... 13
Hình 2.3. Phân vùng đối tượng trong SVM với đường thẳng (trái), siêu phẳng
(phải)...................................................................................................... 16
Hình 2.4. Mơ tả nhiều siêu phẳng có thể phân chia tập dữ liệu thành 2 vùng.........17
Hình 2.5. Biểu diễn một mơ hình phân lớp cơ bản................................................. 19
Hình 2.6. Minh họa một mơ hình nơ-ron thần kinh................................................ 20
Hình 2.7. Mơ hình tốn học mơ tả cấu trúc của nơ-ron........................................... 21
Hình 2.8. Mơ hình mạng nơ-ron cơ bản.................................................................. 22
Hình 2.9. Bộ dữ liệu chữ ký số MNIST.................................................................. 25
Hình 2.10. Bộ dữ liệu hình ảnh với 10 phân lớp CIFAR-10 [11]............................25
Hình 2.11. Một mơ hình CNN với các thành phần cơ bản......................................26
Hình 2.12. Một số bộ lọc Kernel trong xử lý ảnh................................................... 29
Hình 2.13. Tích chập bộ lọc vào ảnh với stride = 1................................................ 29
Hình 2.14. Tích chập bộ lọc vào ảnh với stride = 1 có thêm padding.....................30
Hình 2.15. Minh họa tầng Pooling với pooling window = 2 và stide = 2...............32
Hình 2.16. Mơ hình CNN với tầng FC cho kết quả dự đốn 4 phân lớp.................33
Hình 2.17. Mơ hình LeNet-1.................................................................................. 34
Hình 2.18. Mơ hình LeNet-4.................................................................................. 34
Hình 2.19. Mơ hình LeNet-5.................................................................................. 34
Hình 2.20. Mơ hình VGG-16.................................................................................. 36
Hình 2.21. Mơ tả q trình xử lý của mơ hình VGG-16......................................... 37
Hình 2.22. Mơ tả một residual block...................................................................... 38
Hình 2.23. Cấu trúc của ResNet 34 và ResNet 50.................................................. 39
Hình 2.24. Mơ tả qui trình tính tốn của ResNet 50............................................... 39
Hình 2.25. Biểu diễn mơ hình DenseNet................................................................ 40
Hình 2.26. Số lượng liên kết giữa các tầng trong DenseNet................................... 40
Hình 2.27. Biểu đồ Confusion-Matrix với 5 phân lớp............................................ 43
Hình 3.1. Minh họa một số ảnh thu thập trong tập dữ liệu đồng phục sinh viên.....47
Hình 3.2. Mơ tả giai đoạn chuẩn hóa hình ảnh....................................................... 49
Hình 3.3. Cấu trúc mơ hình CNN trong quá trình thực nghiệm thay đổi tỉ lệ tập
huấn luyện và kiểm tra........................................................................... 51
Hình 3.4. Minh họa mơ hình CNN đề xuất cho bài tốn phân lớp đồng phục........52
Hình 4.1. Mơ tả một số hình ảnh sau khi tổng hợp và chuẩn hóa cơ bản................56
Hình 4.2. Mơ tả quá trình áp dụng các phép biến đổi trên ảnh gốc.........................57
Hình 4.3. Mơi trường thực nghiệm......................................................................... 58
Hình 4.4. Kết quả thực nghiệm khi chia bộ dữ liệu theo tỉ lệ 10-90.......................61
Hình 4.5. Kết quả thực nghiệm khi chia bộ dữ liệu theo tỉ lệ 20-80.......................62
Hình 4.6. Kết quả thực nghiệm khi chia bộ dữ liệu theo tỉ lệ 30-70.......................62
Hình 4.7. Kết quả thực nghiệm khi chia bộ dữ liệu theo tỉ lệ 50-50.......................63
Hình 4.8. Kết quả thực nghiệm thay đổi tỉ lệ phân bố tập dữ liệu...........................65
Hình 4.9. Cấu trúc mơ hình khi thay đổi kích thước các tập ảnh đầu vào...............66
Hình 4.10. Kết quả mơ hình sử dụng tập ảnh đầu vào 50 x 75 pixel.......................66
Hình 4.11. Kết quả mơ hình sử dụng tập ảnh đầu vào 100 x 150 pixel...................67
Hình 4.12. Kết quả mơ hình sử dụng tập ảnh đầu vào 150 x 225 pixel...................67
Hình 4.13. Kết quả thực nghiệm với bộ dữ liệu tăng thêm kích thước 50 x75........69
Hình 4.14. Kết quả thực nghiệm với bộ dữ liệu tăng thêm kích thước 150x225.....70
Hình 4.15. Tổng hợp kết quả sau khi huấn luyện 100 lần với bộ dữ liệu tăng thêm
................................................................................................................................ 71
Hình 4.16. Tổng hợp kết quả sau khi huấn luyện 300 lần với bộ dữ liệu tăng thêm
................................................................................................................................ 72
Hình 4.17. Huấn luyện 300 lần với bộ dữ liệu tăng thêm kích thước 50 x 75.........72
1
CHƯƠNG 1. TỔNG QUAN
Ngày nay, vấn đề nhận dạng thương hiệu đang được khá nhiều trường đại học
quan tâm, trong đó những bộ đồng phục cho sinh viên là sản phẩm vừa gần gũi vừa
mang lại hiệu quả về mặc truyền thơng khá cao. Hiện nay việc nhận dạng hình ảnh
thương hiệu thông qua những bộ đồng phục này chỉ được thực hiện bằng mắt
thường. Trong khi đó việc nhận dạng hình ảnh hiện nay đã trở thành một chủ đề lớn
trong lĩnh vực Thị giác máy tính được nhiều người nghiên cứu và thực hiện. Tại
chương này chúng ta sẽ tiến hành khảo sát những vấn đề cơ bản liên quan đến
những bộ đồng phục sinh viên và vấn đề về việc nhận dạng và phân lớp những bộ
đồng phục này.
Khái quát về đồng phục sinh viên
Bộ đồng phục là trang phục thiêng liêng, thân thương trong mỗi thế hệ học
sinh, sinh viên. Nó tạo ra một nét đẹp tập thể, đồng đều, mang đến khơng khí sinh
hoạt sơi nổi trong nhà trường, tạo ra một môi trường mang tính văn hóa cao. Một bộ
đồng phục đẹp, tinh tế, gây ấn tượng khơng những góp phần tạo nên vẻ đẹp truyền
thống của nhà trường mà còn để lại nhiều kỉ niệm cho bao thế hệ học sinh, sinh
viên.
Hiện nay, chỉ tính riêng tại Trường Đại học Sư phạm Thành phố Hồ Chí Minh
có 22 khoa đang đào tạo sinh viên. Trong đó, 22/22 khoa đều đã có đồng phục riêng
hoặc đang thử nghiệm, khảo sát để lựa chọn mẫu đồng phục phù hợp [1]. Những bộ
đồng phục cho sinh viên là sản phẩm vừa thiết yếu, gần gũi vừa mang lại hiệu quả
về mặc truyền thông khá cao cho đơn vị. Bên cạnh đó, ta có thể dễ phân biệt một
sinh viên đang học tập tại khoa nào thông qua bộ đồng phục. Tùy theo đặc trưng
của từng khoa thì đồng phục có thể là áo thun hoặc áo sơ mi có logo, kiểu dáng,
màu sắc, họa tiết trang trí khác nhau.
Đồn Thanh niên Cộng sản Hồ Chí Minh và Hội Sinh viên Việt Nam Trường
cũng ban hành Chương trình “Perfect Student” trong đó có khuyến khích sinh viên
sử dụng trang phục lịch sự, đồng phục áo khoa khi đến trường. Ngoài những giờ
học tập tại giảng đường, trong các hoạt động phong trào, sinh hoạt dã ngoại, hoạt
2
động tình nguyện, sinh viên cũng được khuyến khích mặc đồng phục khoa khi tham
dự để tạo nên một môi trường sinh hoạt tập thể cũng như tăng cường hiệu quả
truyền thơng hình ảnh cho các khoa.
Hình 1.1. Đồng phục sinh viên một số khoa trực thuộc Trường Đại học Sư phạm
Thành phố Hồ Chí Minh.
Hình 1.2. Chương trình Perfect Student do Đoàn Trường triển khai.
3
Các hoạt động ngoại khóa cho sinh viên được tổ chức theo nhiều cấp độ như
lớp, khoa, trường [2]. Do đó, trong một năm học, trung bình mỗi tháng sẽ có ít nhất
một hoạt động ngoại khóa cho sinh viên tham gia. Để lưu lại kỉ niệm cũng như
minh chứng cho việc tham gia hoạt động, sinh viên thường chụp ảnh để lưu trữ
hoặc đăng tải lên các mạng xã hội.
Trước đây, để chụp ảnh bạn phải có một chiếc máy ảnh kỹ thuật số đắt tiền
nhưng với sự phát triển vượt bậc của cơng nghệ, điều này có thể thực hiện dễ dàng
với một chiếc điện thoại thông minh giá thành rẻ. Theo một số thống kê cho thấy
1/3 người Việt Nam có sử dụng điện thoại thơng minh và tập trung nhiều ở độ tuổi
từ 18 đến 24 tuổi, lứa tuổi của học sinh, sinh viên.
Bên cạnh đó là sự bùng nổ của các phương tiện truyền thông, các kênh thông
tin đại chúng, các mạng xã hội như Facebook, Instagram, Zalo… khơng khó để tìm
thấy hình ảnh của các bạn sinh viên đang mặc bộ đồng phục của khoa, trường khi
đang học tập hoặc tham gia các hoạt động tại trường. Ta có thể nhận thấy khối
lượng hình ảnh này là vô cùng lớn và liên tục tăng nhanh.
Hình 1.3. Ảnh sinh viên đang mặc đồng phục được đăng tải trên mạng xã hội.
Song việc nhận biết và phân lớp xem các bạn sinh viên đang mặc đồng phục
của khoa nào chỉ có thể thực hiện được khi người phân lớp có hiểu biết đề các đặc
4
trưng riêng của các bộ đồng phục này. Chưa kể đến việc nhằm đảm bảo tính đơn
giản, phù hợp với nhiều mục đích sử dụng nên các mẫu đồng phục thường được tối
giản các họa tiết thiết kế nên việc hai bộ đồng phục của hai khoa khác nhau có nhiều
điểm gần giống nhau rất dễ xảy ra. Để phân biệt một bộ đồng phục ta cần phải xem
xét đến nhiều chi tiết trên áo chứ không đơn giản dựa trên kiểu dáng, màu sắc. Khi
số lượng hình ảnh lớn, những đặc trưng chi tiết của đồng phục làm cho cơng việc
này tốn nhiều thời gian.
Tại hình bên dưới ta có thể thấy, hai mẫu đồng phục của sinh viên khoa Ngữ
văn và khoa Địa lí có cùng hình dạng là áo sơ mi với màu trắng chủ đạo và một số
đường nét trang trí màu đỏ. Có 2 điểm khác biệt để phân biệt ở hai mẫu đồng phục
này. Thứ nhất, ống tay áo đồng phục sinh viên khoa Ngữ văn có viền màu đỏ cịn ở
sinh viên khoa Địa lí có màu trắng trơn. Thứ hai, đồng phục sinh viên khoa Địa lí có
thêm cầu vai màu đỏ cịn ở khoa Ngữ văn thì cơng có chi tiết này.
Hình 1.4. Mơ tả đồng phục của một số khoa nhiều đặc điểm gần giống nhau.
Vấn đề được đặt ra là từ một ảnh chụp bất kỳ có sinh viên đang mặc áo khoa,
làm sao tự động phân lớp ảnh để xác định sinh viên có trên hình là sinh viên của
khoa nào. Kết quả phân lớp cho mục đích thống kê số liệu phục vụ cho các mục tiêu
kiểm tra, giám sát hoặc các nghiên cứu khác. Bài toán phân lớp ảnh tự động hiện
nay đã trở nên khá phổ biến như phân lớp ảnh động vật, phương tiện, các loài hoa,
5
trái cây…[3] sử dụng các kỹ thuật máy học truyền thống hoặc các kỹ thuật học sâu
[4]. Vận dụng ý tưởng về bài toán phân lớp và các kỹ thuật máy học này, ta cũng có
thể giải quyết bài tốn phân lớp đồng phục của sinh viên.
Hình 1.5. Minh họa vấn đề phân lớp đồng phục sinh viên
Qua hình minh họa ta phân tích bài tốn được xây dựng cơ bản gồm 3 bước:
Bước 1: Hình ảnh đồng phục sinh viên.
Bước 2: Mơ hình phân lớp sử dụng các kỹ thuật xử lý hình ảnh, phân lớp để
nhận dạng và dự đốn phân lớp hình ảnh.
Bước 3: Đưa ra kết luận sinh viên trong ảnh mặc đồng phục của khoa nào.
Đây là bài toán phân lớp tập ảnh thành nhiều lớp riêng biệt. Bộ ảnh đầu vào là
ảnh màu kỹ thuật số, ở đây là hình ảnh sinh viên mặc đồng phục của khoa. Nguồn
ảnh có thể thu thập trực tiếp từ các thiết bị ghi hình như máy quay phim, máy ảnh,
điện thoại hoặc tải từ các website, mạng xã hội, trích xuất từ hệ thống camera giám
sát… Tập ảnh này sẽ được đưa vào bộ xử lý của máy tính để xử lý rút trích các đặc
trưng của ảnh để đưa vào các mơ hình huấn luyện, học với kết quả mong muốn trả
về là xác định ảnh thuộc phân lớp nào, đồng phục sinh viên đang mặc là của khoa
nào.
Ta có thể thấy để thực hiện bài tốn này quan trọng nhất là phải tìm kỹ thuật
trích xuất đặc trưng của ảnh và mơ hình huấn luyện phù hợp để có kết quả phân lớp
tối ưu nhất. Hệ thống phân lớp này cần phải có độ chính xác cao, khả năng thích
ứng nhanh, giải quyết vấn đề nhanh với nguồn dữ liệu lớn được bổ sung liên tục,
nhưng vẫn phải đảm bảo tốc độ xử lý ổn định và chi phí hoạt động. Đây là những
yêu cầu mà các mơ hình học sâu đang hướng đến để giải quyết [5].
Hiện nay có một mơ hình học sâu tiên tiến tích hợp cả q trình trích xuất đặc
trưng và huấn luyện ảnh để phân lớp đó là mơ hình mạng nơ-ron tích chập CNN.
6
Mơ hình CNN đã được khá nhiều nhà nghiên cứu lựa chọn vì khả năng linh hoạt
trong việc giải quyết các bài tốn phân lớp với nhiều loại hình ảnh [3]. Đặc điểm
của nó là dễ triển khai và điều chỉnh cấu trúc tạo nên những biến thể khác nhau để
xử lý những u cầu tính tốn khác nhau.
Bài tốn phân lớp đồng phục sinh viên
Hình 1.6. Các bước thực hiện bài tốn phân lớp đồng phục dùng mơ hình CNN
Đầu vào: tập ảnh chụp sinh viên đang mặc đồng phục.
Đầu ra: ảnh đồng phục thuộc về phân lớp của khoa nào.
Bài toán phân lớp đồng phục sinh viên thực hiện qua 3 bước:
Bước 1: Tổng hợp tập hình ảnh sinh viên mặc đồng phục.
Bước 2: Những hình ảnh trên được đưa vào hệ thống phân lớp bằng CNN để
tiến hành huấn luyện.
Bước 3: Kết quả huấn luyện của hệ thống phân lớp CNN xác định hình ảnh
thuộc về phân lớp ảnh của khoa nào.
Kết quả của hệ thống phân lớp CNN đã xây dựng sẽ cho kết quả với N lớp từ
1…N. N là số lớp hệ thống phân lớp CNN sẽ phân chia sau quá trình xử lý ảnh và
huấn luyện. Số N tùy thuộc chúng ta xác định ban đầu khi đưa N tập dữ liệu khác
biệt vào hệ thống phân lớp CNN. Ý nghĩa của N tập dữ liệu ở đây chính là số lượng
khoa chúng ta đưa vào để phân lớp. Giả sử tại Trường Đại học Sư phạm Thành phố
Hồ Chí Minh đang quản lý 22 khoa có đồng phục khác nhau thì số lượng tập dữ liệu
sẽ là N = 22.
7
Mục tiêu hướng đến của bài toán
Với sự hạn chế về lượng thời gian cũng và giới hạn của một luận văn, tác giả
không thực hiện việc phân lớp cho tất cả các loại đồng phục khoa như đã nêu ở trên
mà chỉ thử nghiệm trên một số khoa để tìm hiểu một mơ hình CNN phù hợp cho
việc phân lớp hình ảnh đồng phục sinh viên.
Phạm vi bài tốn:
- Bài toán áp dụng với đối tượng đầu vào là ảnh màu, cụ thể là ảnh chụp
sinh viên đang mặc áo đồng phục.
- Hình ảnh được lấy từ các thiết bị ghi hình như máy ảnh, điện thoại hay
thu thập từ mạng xã hội facebook.
- Bài toán thử nghiệm phân lớp ảnh đồng phục sinh viên được tổng hợp từ
4 khoa trực thuộc Trường Đại học Sư phạm Thành phố Hồ Chí Minh bao
gồm các khoa: Giáo dục Tiểu học, Giáo dục Mầm non, Giáo dục Đặc
biệt và Công nghệ Thơng tin.
u cầu bài tốn:
- Đề xuất mơ hình CNN để giải quyết việc phân lớp dữ liệu đầu vào là
hình ảnh đồng phục sinh viên.
- Phân tích, làm rõ mơ hình CNN đề đã xuất.
- Chỉnh sửa mơ hình CNN đã đề xuất trong luận văn sao cho kết quả phân
lớp đạt hiệu quả tốt.
- Đề xuất mơ hình CNN phù hợp với việc phân lớp ảnh đồng phục sinh
viên.
- Độ chính xác của việc phân lớp sau khi áp dụng thử nghiệm mơ hình
CNN ở mức chấp nhận được.
- Dữ liệu sau khi đưa vào mơ hình CNN huấn luyện có khả năng áp dụng
cho nhiều bài tốn khác.
Hướng tiếp cận và giải pháp cho bài tốn
Để có thể huấn luyện mơ hình phân lớp đồng phục sinh viên hiệu quả bước
đầu tiên là chuẩn bị bộ dữ liệu huấn luyện. Để đảm bảo độ chính xác của dữ liệu, tôi
8
đã liên hệ trực tiếp với Ban Chấp hành Đoàn Thanh niên, Hội Sinh viên của các
khoa để tổng hợp và xác nhận hình ảnh. Bên cạnh đó, qua hơn 8 năm học tập và
công tác tại Trường Đại học Sư phạm Thành phố Hồ Chí Minh, tơi được trực tiếp
tiếp xúc khá nhiều với sinh viên các khoa thông qua các hoạt động ngoại khóa, bản
thân tơi cũng có thể kiểm tra lại các hình ảnh đồng phục sinh viên các khoa được
cung cấp có chính xác hay khơng.
Sử dụng một số kỹ thuật để tiền xử lý và chuẩn hóa dữ liệu ảnh thu thập ban
đầu với mục đích tập trung vào vùng ảnh cần xử lý, loại bỏ bớt những ảnh quá nhỏ,
mờ, bị che phủ quá nhiều các chi tiết cần thấy để xác định phân lớp, ảnh có nhiều
chi tiết thừa, gây nhiễu cao ảnh hưởng đến kết quả huấn luyện và đưa hình ảnh về
cùng một chuẩn kích thước để đưa vào hệ thống phân lớp. Bên cạnh đó sử dụng một
số phép biến đổi cơ bản để tăng lượng dữ liệu đầu vào để phục vụ cho việc huấn
luyện.
Đối với việc lựa chọn mơ hình phân lớp hình ảnh, tơi tiến hành khảo sát các
phương pháp, mơ hình có liên quan đã được sử dụng trong việc giải quyết các bài
toán phân lớp hình ảnh. Thơng qua đó để có cơ sở đánh giá, so sánh các phương
pháp, mơ hình khác nhau để lựa chọn hướng tiếp cận thích hợp. Cuối cùng là lựa
chọn phương pháp, mơ hình có khả năng tính tốn giải quyết yêu cầu đặt ra và tiến
hành thực nghiệm.
Tiến hành cài đặt để thử nghiệm mơ hình đã đề xuất. Trong quá trình thực
nghiệm cần tinh chỉnh chất lượng ảnh đầu vào, các tham số của mơ hình huấn luyện
để nâng cao kết quả phân lớp. Nhận xét, đánh giá mơ hình dựa vào các tiêu chí cụ
thể như độ phân lớp chính xác sau khi huấn luyện, hiệu suất huấn luyện, hàm lỗi,
tốc độ huấn luyện...
Tóm lại, ở chương này ta đã cơ bản khái quát được bức tranh tổng thể về bài
toán phân lớp đồng phục sinh viên. Với những thành tựu khoa học hiện tại của
ngành khoa học máy tính mà cụ thể là lĩnh vực thị giác máy tính và máy học, người
ta đã có nghiên cứu ra những kỹ thuật để máy tính có thể nhận diện và tiến hành
phân lớp dựa trên hình ảnh. Bài toán cơ bản được đặt ra là phù hợp với khả năng xử
lý của hiện tại của máy tính với những kỹ thuật nhận diện và phân lớp. Trong những
9
phần tiếp theo ta sẽ tiến hành tìm hiểu sâu hơn về những kỹ thuật này và nghiên cứu
thử nghiệm, đề xuất kỹ thuật phù hợp để giải quyết bài toán được đặt ra.
10
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN
Trong chương này ta sẽ nghiên cứu sâu hơn về cấu trúc của một bài tốn phân
lớp hình ảnh. Trong các bài toán xử lý bằng thị giác máy tính trên hình ảnh, có 2
khái niệm cần phân biệt là phân cụm và phân lớp. Do đó ta phải tìm hiểu rõ khái
niệm nào là phù hợp với bài toán mà ta đã phát biểu. Từ việc xác định đúng khái
niệm, ta sẽ tìm hiểu và áp dụng những kỹ thuật phù hợp để xử lý vấn đề. Để tiến tới
việc thực nghiệm và để xuất mơ hình phù hợp ở phần sau, trước hết ta phải ta có
một cái nhìn tổng qt về những kỹ thuật, mơ hình xử lý ảnh cơ bản, tiêu biểu nhất
để học hỏi những lợi thế của từng kỹ thuật mang lại và những mặt hạn chế của nó.
Hệ thống phân lớp hình ảnh
2.1.1. Bài toán phân lớp
Bài toán phân lớp dữ liệu là một trong những nghiên cứu rộng rãi nhất trong
cộng đồng khai thác dữ liệu và máy học. Vấn đề này đã được nghiên cứu bởi các
nhà khoa học ở nhiều ngành trong nhiều thập kỷ. Dữ liệu của bài tốn phân lớp rất
đa dạng, có thể kể đến một số loại dữ liệu điển hình như số học, chữ viết, hình ảnh,
âm thanh, dữ liệu sinh học... Ứng dụng của bài toán phân lớp được sử dụng ở nhiều
lĩnh vực như phân tích thị trường tiêu dùng, chẩn đốn y khoa, giám sát hành vi,
phân tích dữ liệu đa phương tiện, phân tích dữ liệu sinh học, lọc và phân lớp tài liệu,
phân tích mạng xã hội.
Một bài tốn khác có nhiều điểm tương đồng và dễ gây nhầm lẫn với bài toán
phân lớp là bài toán phân cụm. Ý tưởng chung của hai bài toán thành là đưa từng dữ
liệu con từ tập dữ liệu lớn về các nhóm được xác định bằng các nhãn.
Kết quả của bài toán phân cụm (Clustering) là phân chia các dữ liệu về các
nhóm dựa trên những đặc trưng tương đồng của dữ liệu mà khơng quan tâm đến cấu
trúc của nhóm dữ liệu. Trong khi đó, bài tốn phân lớp (Classification) dựa trên nền
tảng của tập dữ liệu được huấn luyện, phân tích cấu trúc của nhóm dữ liệu để xác
định phân lớp của dữ liệu.
11
Hình 2.1. Mơ tả bài tốn phân lớp và bài toán phân cụm
Trong máy học, bài toán phân cụm sử dụng kiểu máy học không giám sát với
mục tiêu là để khai thác dữ liệu, mơ hình hóa cấu trúc nền tảng hoặc sự phân bố
trong dữ liệu để hiểu rõ hơn về nó. Đối lập với nó, bài tốn phân lớp được thực thi
bằng kiểu máy học có giám sát với mục đích xây dựng được các hàm ánh xạ một
cách tối ưu nhất để khi bạn có một dữ liệu đầu vào bất kỳ, bạn có thể dự đốn được
kết quả phân lớp của nó. Ta có thể hiểu một cách đơn giản là bài toán phân cụm
phân chia các dữ liệu có sẵn về từng nhóm cịn bài toán phân lớp dự đoán kết quả
phân lớp của dữ liệu đầu vào dựa trên những tập dữ liệu đã được huấn luyện trước.
Mục tiêu đặt ra của luận văn là xác định đồng phục sinh viên đang mặc trong
một tấm ảnh bất kỳ thuộc về khoa nào trùng khớp với ý tưởng của bài toán phân
lớp, cụ thể ở đây là phân lớp hình ảnh. Với sự phát triển không ngừng của khoa học
và sự quan tâm, nghiên cứu của các chuyên gia trong lĩnh vực thị giác máy tính, đã
có khá nhiều phương pháp được đề xuất với nhiều mức độ phức tạp khác nhau cho
bài toán phân lớp dữ liệu nói chung và phân lớp hình ảnh nói riêng. Ta có thể nhắc
tới một số phương pháp được sử dụng khá phổ biến như: K-Mean, KNN, SVM,
Neural Networks, CNN, các cải biến của CNN …
12
2.1.2. Các kỹ thuật phân lớp cơ bản
K-Means
Một trong những thuật toán phổ biến và đơn giản nhất cho bài tốn phân cụm
dữ liệu, K-Means [6], được cơng bố lần đầu tiên vào năm 1955. Mặc dù đã qua hơn
60 năm nhưng K-Means vẫn được tiếp tục nghiên cứu cải tiến và sử dụng rộng rãi
trong lĩnh vực máy học. Thuật tốn K-Means là một trong những thuật tốn học
khơng giám sát cơ bản và là một trong những tiền đề quan trọng để nghiên cứu, xây
dựng, cải tiến các thuật toán khác.
Ý
tưởng của thuật toán này là chia tập dữ liệu gồm N đối tượng thành K vùng
(K, N là số nguyên dương và K ≤ N) sao cho các vùng tách biệt nằm cách xa nhau
và các đối tượng thuộc cùng một vùng sẽ có khoảng cách gần nhau trong khi các đối
tượng khác vùng thì có khoảng cách xa nhau. Trên thực tế, khi xét N đối tượng, mỗi
đối tượng có m thuộc tính hay đặc trưng, ta tiến hành phân chia các đối tượng thành
K vùng dựa trên độ tương đồng của các thuộc tính hay đặc trưng thơng qua
việc áp dụng các phép tính tốn của thuật toán.
Các bước để thực hiện một thuật toán K-Means như sau:
Bước 1: Chọn ngẫu nhiên k phần tử đại diện cho K vùng dữ liệu, nó có thể
biết đến với các tên gọi khác như điểm đại diện, phần tử trung tâm...
Bước 2: Tính khoảng cách giữa các phần tử khác trong tập dữ liệu và phần
tử đại diện của từng vùng K, thường tính bằng khoảng cách Euclid.
Bước 3: Nhóm các phần tử vào vùng gần nhất. Nghĩa là một phần tử có
khoảng cách Euclid gần với phần tử đại diện của vùng nào nhất thì sẽ thuộc về
vùng đó.
Bước 4: Xác định phần tử đại diện mới của vùng. Lúc này phần tử đại diện
của một vùng được xác định bằng giá trị trung bình các phần tử khác có trong
vùng.
Bước 5: Thực hiện lại từ bước 2 đến bước 4 cho đến khi khơng cịn xuất
hiện sự thay đổi vùng của các phần tử thuộc tất cả các vùng. Nghĩa là tất cả
phần tử đều đã được phân về vùng thích hợp nhất với nó.
13
Hình 2.2. Thuật tốn K-Mean với 3 vùng dữ liệu
Ở
hình bên trái là 3 phần tử đại diện cho 3 vùng dữ liệu, phân vùng cũng được
chia theo các phần tử đại diện này. Sau nhiều phép tính tốn, cập nhật phần tử trung
tâm, gom nhóm các phân tử, cuối cùng ta có được phân vùng thích hợp nhất cho bộ
dữ liệu.
Các cơng thức sử dụng trong thuật tốn K-Means :
=
1
∑
(2.1)
d(x,
‖ = √( − ) + ( − ) + ⋯ + (
(2.1) Cơng thức tính phần tử đại diện.
| |
∈
) = ‖x −
1
1
2
2
2
2
)2 (2.2)
−
(2.2) Cơng thức tính khoảng cách Euclid.
là phần tử trung tâm của vùng
là các phần tử thuộc vùng K
| | là kích thước của vùng
(tổng số phần tử x có trong vùng
d(x, ) là khoảng cách giữa phần tử
)
đến phần tử đại diện
Thuật toán K-Mean là một thuật toán kinh điển, tương đối đơn giản, được
dùng phổ biến trong việc xây dựng trong thực tế, độ phức tạp tuyến tính. Tuy nhiên
K-Mean cũng có những yếu điểm sau:
-
Giá trị K vùng phải được cài đặt trước khi thực hiện thuật toán. Đối với
những trường hợp cần phân vùng dữ liệu nhưng chưa biết được số lượng vùng
cần phân chia thì thuật tốn này dường như khơng thể sử dụng được.
-
Phần tử đại diện ban đầu được chọn ngẫu nhiên sẽ ảnh hưởng lớn đến hiệu
năng của thuật tốn và kết quả đầu ra. Đơi khi phần tử đại diện ban đầu không
14
phù hợp dẫn đến tốc độ hội tụ chậm hoặc thậm chí đưa ra kết quả phân vùng
khơng chính xác.
-
Số lượng phần tử trong từng vùng cũng như cách phân bổ của các phần tử
cũng gây ảnh hưởng nhiều đến việc thuật tốn có đưa ra kết quả tốt hay khơng.
- Cũng vì những lý do trên mà thuật tốn này sẽ rất khó để đạt hiệu suất
cao
đối với tập dữ liệu có kích thước lớn và nhiều phân vùng.
Tuy nhiên tùy theo yêu cầu và mục đích đề ra của một số bài tốn thì phương
pháp này vẫn phù hợp, có một độ ổn định có thể chấp nhận được. Do đó tận ngày
nay, phương pháp này vẫn được áp dụng và thậm chí được nghiên cứu để đưa ra
những phương pháp cải tiến.
K - Nearest Neighbor
Nếu K-Means là một thuật tốn của phương pháp máy học khơng giám sát cơ
bản thì đối với phương pháp máy học có giám sát chúng ta có thuật tốn KNN [7].
Sở dĩ nó được gọi là thuật tốn học có giám sát bởi vì mục tiêu của nó cố gắng dự
đốn phân loại một đối tượng dựa trên sự phân loại đã biết của các điểm khác trước
đó. Do đó, khác với K-Means, KNN tiếp nhận dữ liệu đầu vào là một loạt các dữ
liệu đã được gắn nhãn, phân loại trước và thuật toán sẽ chúng để gắn nhãn cho
những dữ liệu mới.
Để gắn nhãn một đối tượng dữ liệu mới, nó tìm kiếm K đối tượng dữ liệu gần
nhất trong tập dữ liệu đã được gắn nhãn và huấn luyện (do đó thuật tốn này mới có
lên là K - Nearest Neighbor, nghĩa là K láng giềng gần). Nhãn của một đối tượng
mới sẽ do những đối tượng láng giềng gần nhất với nó bầu chọn, nhãn nào được hầu
hết số đông láng giềng bầu chọn sẽ được gắn cho đối tượng mới.
K là số lượng láng giềng được xét đến trong một kiểm tra hay bỏ phiếu để xác
định phân lớp. Do đó, K là một tham số nguyên dương được xác định trước khi thực
hiện thuật toán. Khoảng cách để xác định mức độ gần nhau của đối tượng thơng
thường cũng được tính bằng khoản Euclid.
Các bước để thực hiện một thuật toán K-Nearest Neighbor như sau:
Bước 1 : Xác định giá trị tham số K (số láng giềng gần nhất)
15
Bước 2 : Tính khoảng cách giữa đối tượng cần phân lớp với tất cả các đối
tượng trong tập dữ liệu đã được huấn luyện.
Bước 3 : Sắp xếp lại giá trị khoảng cách theo thứ tự xa gần và xác định K
láng giềng gần dựa trên những giá trị khoảng cách gần nhất.
Bước 4 : Kiểm tra phân lớp của các láng giềng gần này và gắn nhãn cho đối
tượng mới dựa trên đại đa số láng giềng ở cùng một lớp.
Bước 5 : Trả về phân lớp cho đối tượng.
Thuật tốn KNN có một điểm khác biệt với các mơ hình học có giám sát sẽ
nhắc đến ở những phần tiếp theo là nó khơng xây dựng một mơ hình dự đốn từ dữ
liệu sau khi huấn luyện để sử dụng ở các lần phân lớp tiếp theo. Mọi tính tốn của
KNN đều nằm ở giai đoạn kiểm tra, trong đó việc tính tốn lại khoảng cách của
từng đối tượng mới với các đối tượng đã có trong tập dữ liệu huấn luyện chiếm
nhiều thời gian. Đây là một nhược điểm của thuật tốn KNN.
Bên cạnh đó việc chọn giá trị K sao cho phù hợp cũng là một khó khăn. Do tập
dữ liệu huấn luyện cũng có những đối tượng mang giá trị nhiễu, nếu giá trị K quá
nhỏ và lại vướng phải những giá trị nhiễu này thì kết quả chắc chắn sẽ sai. Ngược
lại nếu chọn giá trị K quá lớn sẽ khó phân lớp chính xác đối với những đối tượng có
khoảng cách gần biên giữa hai vùng đối tượng (do khoảng cách của đối tượng này
cách đều các vùng nên số lượng đối tượng có sẵn có khoảng cách gần đối tượng mới
của từng vùng sẽ gần bằng nhau). Một số nhà nghiên cứu đã cải tiến vấn đề này
bằng cách đánh trọng số tăng dần đối với các đối tượng có khoảng cách càng gần.
Nếu gặp trường hợp số lượng bầu chọn giữa các vùng bằng hoặc gần bằng nhau thì
những giá trị trọng số này sẽ cho ra một kết quả phân lớp chính xác hơn.
Support Vector Machine
SVM là một thuật tốn thuộc phương pháp máy học có giám sát, nó có thể sử
dụng cho cả các bài tốn phân lớp lẫn đệ quy. Tuy nhiên nó được ứng dụng nhiều
hơn cho bài toán phân lớp. Thuật toán này dựa trên lý thuyết học thống kê, còn gọi
là lý thuyết học tính tốn, chiều VC (viết tắt của chiều Vapnik - Chervonenkis) do
hai nhà khoa học Vapnik (1999), Chervonenkis (1974) đề xuất, được biết đến như