Professional Documents
Culture Documents
ĐỒ ÁN ………
LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn các thầy, cô giáo, đội ngũ giảng viên khoa
Điện – Điện tử và các cán bộ, nhân viên của trường Đại học Giao thông Vận tải đã
tạo điều kiện tốt nhất cho em trong suốt quá trình học tập tại trường.
Em xin cảm ơn các anh, các bạn thuộc bộ phận Xử lý Ảnh trong công ty cổ phần
AIMeSoft đã giúp đỡ em trong quá trình thực tập và làm đồ án tốt nghiệp.
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến Thạc sĩ Nguyễn Thúy Bình đã tận
tình hướng dẫn giúp đỡ em chỉnh sửa, giám sát và kiểm tra quá trình hoàn thành đồ
án tốt nghiệp.
Mặc dù đã có nhiều cố gắng, song do sự hạn hẹp về thời gian, điều kiện nghiên cứu,
đồ án không tránh khỏi những thiếu sót. Em rất mong nhận được những nhận xét,
đóng góp ý kiến của thầy, cô và các bạn để đồ án tốt nghiệp của em được hoàn thiện
hơn.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
MỞ ĐẦU
Hệ thống camera giám sát ngày nay đã trở nên phổ biến và đang được sử dụng
rộng rãi trong nhiều lĩnh vực với nhiều mục đích hỗ trợ khác nhau. Nhưng
camera chỉ có khả năng lưu trữ dữ liệu hình ảnh hoặc video và chúng ta cần thêm
nhân lực để giám sát hoặc xử lý thông tin. Phương pháp này đã dần trở nên
không hiệu quả, tốn kém chi phí, thời gian và phụ thuộc nhiều vào yếu tố con
người, khó khăn trong việc tìm kiếm dữ liệu. Cùng thuộc vấn đề này là việc điểm
danh hay chấm công, ở trong các trường học hiện nay chủ yếu vẫn điểm danh
theo phương pháp thủ công rất mất thời gian và công sức. Cải tiến hơn một chút,
ở các công ty, trụ sở sử dụng phương pháp sinh trắc bằng vân tay, tuy nhiên việc
này gây một số bất tiện cho người sử dụng, ví dụ như khi họ phải sử dụng tay để
cầm nắm một món đồ, hoặc khi không may ngón tay họ bị thương hoặc dính bẩn
sẽ ảnh hưởng tới việc nhận dạng vân tay.
Với mong muốn cải thiện những nhược điểm của các hệ thống trước kia, trong đề
tài đồ án này em xin phép được nghiên cứu, xây dựng và mô phỏng hệ thống
điểm danh sử dụng Học Sâu và Trí tuệ nhân tạo.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Sản phẩm được em hoàn thành cho báo cáo đồ án tốt nghiệp lần này có bao
gồm phần giao diện người dùng đã được em thiết kế và kết hợp với phần nhận
diện khuôn mặt để cho ra một sản phẩm mô phỏng hoàn chỉnh. Vậy nên trong
chương này em trình bày về các thức hoạt động của giao diện người dùng này.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
MỤC LỤC
Lời cảm ơn
Mở đầu
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG NHẬN DIỆN KHUÔN MẶT..........1
1.1. Tổng quan sinh trắc học..................................................................................1
1.2. Bài toàn nhận diện khuôn mặt.........................................................................1
1.2.1. Nhận dạng dựa trên các đặc trưng khuôn mặt...........................................4
1.2.2 Nhận dạng dựa trên xét toàn bộ khuôn mặt................................................4
1.3. Những khó khăn và thách thức trong bài toán nhận diện khuôn mặt...............5
1.4. Ứng dụng của bài toán nhận diện khuôn mặt..................................................5
1.5. Hệ thống camera giám sát...............................................................................7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT BÀI TOÁN NHẬN DIỆN KHUÔN MẶT.......9
2.1. Giới thiệu về OpenCV.....................................................................................9
2.1.1. Tổng quan về OpenCV.............................................................................9
2.1.2. Các tính năng............................................................................................9
2.1.3. Cấu trúc OpenCV....................................................................................10
2.2. Phát hiện khuôn mặt......................................................................................11
2.2.1. HaarCascade...........................................................................................11
2.2.1.1. Đặc trưng Haar................................................................................11
2.2.1.2. Adaboost.........................................................................................14
2.2.2. Single Shot MultiBox Detector (SSD)....................................................15
2.2.2.1. Những đặc điểm chính của SSD.....................................................15
2.2.2.2. MultiBox Detector..........................................................................16
2.2.2.3. Cấu trúc mạng SSD.........................................................................17
2.2.2.4. Hàm mất mát (Loss Function)........................................................18
2.2.2.5. MultiBox Prior và IoU....................................................................19
2.2.2.6. So sánh SSD với HaarCascade.......................................................21
2.2.3. Mạng Neural ResNet...............................................................................22
2.2.3.1. Tại sao lại xuất hiện mạng ResNet..................................................22
2.2.3.2. Kiến trúc mạng ResNet...................................................................24
2.2.3.3. Xây dựng mạng ResNet-50.............................................................26
2.3. Theo vết khuôn mặt theo trình tự video.........................................................27
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Chương 2:
Chương 3:
Chương 4
Hình 4.1: Mô phỏng nhận diện khuôn mặt và xuất thông tin lên màn hình.............52
Hình 4.2: Mô phỏng quá trình check in...................................................................53
Hình 4.3: Mô phỏng quá trình check out.................................................................53
Hình 4.4: Lưu trữ thông tin điểm danh....................................................................54
Hình 4.5: Chụp ảnh hoặc chọn file ảnh từ bên ngoài vào hệ thống.........................54
Hình 4.6: Mô phỏng danh sách người dùng............................................................55
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
1
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Nhận dạng khuôn mặt (Face Recognition) là một phương pháp sinh trắc để xác
định hoặc xác minh một cá nhân nào đó bằng cách so sánh dữ liệu hình ảnh chụp
được trực tiếp hoặc hình ảnh kỹ thuật số với bản ghi được lưu trữ cho người đó.
Nó được xem là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như
nhận dạng vân tay – Fingerprint Recognition, hay nhận dạng mống mắt – Iris
Recognition). Xét về nguyên tắc chung nhận dạng khuôn mặt có sự tương đồng
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
2
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt
nằm ở bước trích chọn đặc trưng (feature extraction) ở mỗi lĩnh vực. Trong khi
nhận dạng vân tay và nhận dạng mống mắt đã đạt tới độ chín, tức là đã có thể áp
dụng trên thực tế một cách rộng rãi thì nhận dạng khuôn mặt người vẫn còn
nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người. So
với nhận dạng vân tay và mống mắt, nhận dạng khuôn mặt có nguồn dữ liệu
phong phú hơn (chúng ta có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip
nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát
hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con
người đòi hỏi có sự hợp tác trong môi trường có kiểm soát).
Các hệ thống nhận dạng khuôn mặt đầu tiên thường được áp dụng cho các mục
đích an ninh như kiểm soát an ninh tại tòa nhà, sân bay, máy ATM, tra cứu thông
tin tội phạm, phát hiện tội phạm ở nơi công cộng… và ngày càng được ứng dụng
rộng rãi trong cuộc sống.
Bên cạnh những thành công đã được ghi nhận thì nhận dạng khuôn mặt cũng gặp
nhiều khó khăn do tác động từ các yếu tố bên ngoài như ánh sáng, hướng
nghiêng, kích thước ảnh, diện mạo, biểu hiện cảm xúc của khuôn mặt hay ảnh
hưởng của tham số môi trường.
Để xây dựng một hệ thống nhận dạng khuôn mặt có đầu vào của hệ thống là một
hình ảnh kỹ thuật số hay một khung hình video từ một nguồn video. Đầu ra là
xác định hoặc xác minh người ở trong bức hình hoặc trong video đó là ai. Hướng
tới mục tiêu này chúng ta thường chia thủ tục nhận dạng khuôn mặt gồm ba
bước: Phát hiện khuôn mặt, trích rút đặc trưng và nhận dạng khuôn mặt
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
3
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Phát hiện khuôn mặt (Face Detection): Chức năng chính của bước này là
phát hiện ra khuôn mặt xem nó có xuất hiện ở trong một bức hình hay một
đoạn video hay không? Tỉ lệ phát hiện ra khuôn mặt phụ thuộc nhiều vào
điều kiện về độ sáng, hướng khuôn mặt, biểu hiện cảm xúc trên khuôn mặt
hay các yếu tố môi trường khác. Để hệ thống nhận dạng hoạt động đạt
hiệu quả cao thì hình ảnh khuôn mặt sau khi được phát hiện cần chuẩn hóa
về kích thước, ánh sáng.
Trích chọn đặc trưng (Feature Extraction): Sau khi phát hiện ra khuôn mặt
trong bức ảnh, chúng ta tiến hành trích chọn những đặc trưng của khuôn
mặt. Bước này trích xuất ra một vector đặc trưng đại diện cho một khuôn
mặt. Mục đích của bộ mô tả là có khả năng phân biệt giữa những khuôn
mặt khác nhau.
Nhận dạng khuôn mặt (Face Recognition): Với hình ảnh đầu vào sau khi
phát hiện ra khuôn mặt, trích rút các đặc trưng của khuôn mặt và đem so
sánh các đặc trưng này với cơ sở dữ liệu khuôn mặt.
Bài toán nhận dạng khuôn mặt được ứng dụng nhiều trong các lĩnh vực đời sống
đặc biệt ở những lĩnh vực công nghệ cao, yêu cầu về an ninh, bảo mật. Do đó để
hệ thống nhận dạng khuôn mặt hoạt động mạnh mẽ với tốc độ và độ tin cậy thì có
rất nhiều các phương pháp về nhận dạng khuôn mặt được đưa ra. Các phương
pháp có thể được phân loại theo các tiêu chí khác nhau như nhận dạng với dữ liệu
ảnh đầu vào là ảnh tĩnh 2D (Elastic Bunch Graph, Active Appearance Model).
Phương pháp này là phổ biến nhất và tương lai sẽ là 3D (3D Morphable Model).
Tuy nhiên trên thực tế người ta hay chia phương pháp nhận dạng khuôn mặt ra
thành 2 loại:
Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Feature
Base Face Recognition)
Nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance Based Face
Recognition)
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
4
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
1.2.1. Nhận dạng dựa trên các đặc trưng khuôn mặt
Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc
trưng hình học của các chi tiết trên khuôn mặt như vị trí, diện tích, khoảng
cách của mắt, mũi, miệng, ….và mỗi quan hệ giữa chúng ví dụ như khoảng
cách giữa hai mắt.
Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để
nhận biết khuôn mặt. Hơn nữa với việc xác định đặc tính và các mối quan hệ,
phương pháp này cho kết quả tốt trong các điều kiện không có kiểm soát.
Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác
định mối quan hệ giữa các đặc tính, đòi hỏi các thuật toán phức tạp và phương
pháp này sẽ hoạt động không hiệu quả khi kích thước hình ảnh nhỏ vì rất khó
phân biệt được các đặc tính.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
5
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
của khuôn mặt, một số phần bị che, hoặc hướng ánh sáng cũng ảnh hưởng đến
bài toán phát hiện khuôn mặt
1.3. Những khó khăn và thách thức trong bài toán nhận diện khuôn mặt
Bài toàn nhận diện mặt người đã được nghiên cứu từ những năm 70, người đầu
tiên là Kanade. Tuy nhiên đây là một bài toán khó nên những nghiên cứu hiện tại
vẫn chưa đạt được những kết quả mong muốn. Có thể kể đến những thách thức
sau:
Tư thế, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc
chụp giữa camera và khuôn mặt. Chẳng hạn như chụp thẳng, chụp chéo
bên trái 45 độ, hay chéo bên phải 45 độ, chup từ trên xuống, chup từ dưới
lên,…. Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt,
mũi, miệng có thể bị khuất một phần hoặc khuất hết.
Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng
như ria mép, râu hàm, mắt kính… có thể xuất hiện hoặc không. Vấn đề
này làm cho bài toán càng trở nên khó hơn nhiều.
Cảm xúc biểu hiện trên khuôn mặt: Cảm xúc có thể làm ảnh hưởng đáng
kể lên các thông số của khuôn mặt. Chẳng hạn cùng một khuôn mặt một
người nhưng sẽ rất khác khi họ cười hoặc sợ hãi.
Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác,
khuôn mặt khác.
Hướng của ảnh: Các ảnh của khuôn mặt có thể biến đổi rất nhiều với các
góc quay khác nhau của trục camera. Chẳng hạn chụp với trục máy ảnh
nghiêng làm cho khuôn mặt bị nghiêng so với trục của ảnh
Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về:
chiếu sang, tính chất camera (máy ảnh kỹ thuật số, máy ảnh hồng ngoại,
…) ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt.
1.4. Ứng dụng của bài toán nhận diện khuôn mặt
Ứng dụng của bài toán nhận diện khuôn mặt có rất nhiều và đã được triển khai
tương đối hiệu quả trong thực tế. Có thể kể đến một số ứng dụng điển hình sau:
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
6
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
7
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
định danh người đó là ai để chấm công, điểm danh mà không cần phải làm
thêm một tác vụ gì khác.
Hệ thống camera giám sát có thể được thực hiện thủ công, bán tự động, hoặc
hoàn toàn tự động. Trong các hệ thống giám sát video thủ công truyền thống, các
luồng video được quan sát bởi các giám sát viên trong thời gian thực, cho phép
họ can thiệp nhanh chóng nếu có một sự kiện quan tâm được phát hiện. Việc xử
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
8
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
lý trực tiếp của tất cả các luồng video là rất khó khăn do số lượng camera được
triển khai nhiều cùng với một lượng lớn dữ liệu thu nhận từ chúng.
Chính vì vậy, vấn đề giám sát tự động là nhiệm vụ hàng đầu trong hệ thống giám
sát bằng camera nhằm hỗ trợ tối đa con người trong việc điều khiển, giám sát,
giảm thiểu các sai sót không đáng có, đồng thời qua đó cũng giải phóng sức lao
động của các giám sát viên.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
9
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
10
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Methods for creating and analyzing binary (two-valued) images: Ảnh nhị
phận thường được sử dụng trong các hệ thống kiểm tra quét phát hiện các
khuyết tật hoặc trong các bộ đếm. Ảnh nhị phân cũng thuận tiện khi định vị
vị trí đối tượng để nắm bắt.
Methods for computing 3D information: Các chức năng này rất hữu ích để
lập bản đồ và nội địa hóa hoặc với nhiều góc nhìn từ một máy ảnh.
Math rotines for image processing, computer vision, and image
interpretation: OpenCV bao gồm các thuật toán toán học thường được sử
dụng trong đại số tuyến tính, thống kê, và hình học tính toán.
Graphics: Các interface này cho phép viết văn bản và vẽ trên hình ảnh.
Ngoài ra các chức năng này rất hữu ích cho việc ghi nhãn và đánh dấu. Ví
dụ nếu chúng ta viết một chương trình phát hiện đối tượng, nõ rất hữu ích
để gán nhãn hình ảnh với kích cỡ và vị trí của họ.
GUI methods: OpenCV bao gồm các interface, window riêng của nó.
Trong khi đây là những hạn chế so với những gì có thể được thực hiện trên
các nền tảng khác, họ cung cấp một cách đơn giản và đa nền tảng API để
hiển thị hình ảnh, chấp nhận đầu vào người dùng là chuột hoặc bàn phím,
và thực hiện kiểm soát thanh trượt.
Data Structures and algorithms: Với các interface chúng ta có thể thực
hiện hiệu quả hơn các việc như: tìm kiếm, lưu, và thao tác các danh sách
lớn, bộ sưu tập, đồ thị,…
Data persistence: Cung cấp giao diện thuận tiện để lưu trữ các loại dữ liệu
vào ổ lưu trữ và lấy chúng sau này.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
11
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
CVAUX chưa mã thử nghiệm và thực nghiệm, các giao diện đơn giản
nhất để nhận dạng khuôn mặt nằm trong module này
ML chứa Machine Learning interfaces
Các chức năng còn lại được chứa trong HighGUI và CVCAM. Cả hai
đều nằm trong thư mục “otherlibs”. Nó chứa các cửa sổ đa nền tảng, đa
chức năng
CVCAM chứa các giao diện để truy cập video thông qua DirectX trên
nền tảng Windows 32-bit. Tuy nhiên, HighGUI cũng chứa các giao diện
video.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
12
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
hoặc đặc trưng nằm gọn trong trung tâm một vùng
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
13
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
mũi bởi nó sẽ sáng màu hơn so với hai bên cánh mũi. Bộ lọc Haar sẽ chỉ nhìn
vào một vùng cụ thể trong cửa sổ trượt để tìm các đặc trưng của khuôn mặt
Bằng mắt thường chúng ta có thể nhận biết được bộ lọc đã tìm đúng cạnh hay
chưa, nhưng với máy tính chúng ta phải tính các giá trị của đặc trưng Haar là
sự chênh lệch giữa tổng các pixel vùng đen và vùng trắng như công thức:
f(x) = Tổngvùngđen(các mức xám của pixel) – Tổngvùngtrắng(các mức xám của pixel)
Viola và Joines đã đưa ra một phương pháp giúp tính tổng các giá trị mức xám
của một vùng bất kỳ nào đó trên ảnh, sử dụng ảnh tích phân, là một mảng hai
chiều có kích thước bằng kích thước ảnh cần tính đặc trưng Haar, mỗi phần tử
của mảng này là tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của
nó.
Sau khi tính được Intergral Image, việc tính tổng các giá trị mức xám của một
vùng bất kỳ trên ảnh được thực hiện đơn giản như sau:
Giả sử chúng ta cần tính tổng giá trị mức xám của vùng D như hình dưới:
D = A + B + C + D – (A+B) – (A+C) + A
Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự
như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị
tại điểm P1. Vậy ta có thể viết lại biểu thức tính D ở trên như sau:
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
14
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
2.2.1.2. Adaboost
AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận
boosting được Freund và Schapire đưa ra vào năm 1995. Adaboost cũng hoạt
động trên nguyên tắc kết hợp tuyến tính các weak classifiers để hình thành một
trong các strong classifiers.
Tuy nhiên, các bộ lọc Haar kể cả sau Adaboost vẫn chỉ bắt được những đặc
trưng rất cơ bản, và để nhận ra một khuôn mặt chúng ta cần khoảng 6000 các
đặc trưng như vậy. Sau đó chúng ta cần có một cách để kiểm tra xem cửa sổ đó
có chứa mắt hay không mà vẫn phải xử lý đủ nhanh cho cả 6000 đặc trưng: câu
trả lời là Cascade of Classifiers.
Việc Cascade of Classifiers đó được thiết kế như sau: trong 6000+ đặc trưng
đó, chia chúng ra thành rất nhiều bước. Trong đó, mỗi lần cửa sổ trượt qua một
vùng bước ảnh, từng bước một sẽ được xử lý: nếu bước 1 nhận đó là mặt, chúng
ta chuyển qua bước 2; và nếu không thì chúng ta bỏ qua vùng đó và trượt cửa sổ
đi chỗ khác. Nếu một vùng pass toàn bộ các bước test mặt đó thì cửa sổ đó có
chứa mặt người.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
15
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Các vùng không chứa mặt sẽ bị vứt vào hộp đỏ kia và không bao giờ được nhớ
tới nữa, và các vùng có mặt sẽ được đưa vào hộp xanh để xử lý tiếp.
Chúng ta có thể chia kết quả ra làm 4 loại:
Trong đó, nếu dự đoán đúng rồi thì không cần bàn cãi, nhưng nếu chúng ta dự
đoán sai một bước sẽ có thể không qua các bước còn lại. Vì vậy, trong quá trình
train, mô hình sẽ lựa chọn các classifier tốt nhất với độ tự tin hợp lý để ưu tiên
việc false negative không được phép tồn tại — vì nếu chúng ta gặp false
positive, các bước sau sẽ loại ví dụ đó cho chúng ta sau. Trong mô hình nhận
mặt người, bước đầu tiên đúng có 2 bộ lọc trên, với tỉ lệ false negative rất gần
0, và tỉ lệ false positive là 40%. Sau đó các cửa sổ nằm trong ô xanh sẽ được trả
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
16
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
về là các ô chứa mặt: nếu có các ô đè lên nhau cùng chứa một mặt, các tọa độ
các góc sẽ được cộng vào lấy trung bình.
Ý tưởng chính của SSD đến từ việc sử dụng các bounding box, bằng việc khởi
tạo sẵn các box tại mỗi vị trí trên ảnh, SSD sẽ tính toán và đánh giá thông tin
tại mỗi vị trí xem vị trí đó có vật thể hay không, nếu có thì là vật thể nào, và
dựa trên kết quả các vị trí gần nhau, SSD sẽ tính toán được box phù hợp nhất
bao trọn vật thể.
Ngoài ra, bằng việc tính toán bounding box trên các feature map khác nhau, tại
mỗi tầng feature map, một box sẽ ôm trọn một phần hình ảnh với các kích
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
17
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
thước khác nhau. Như trên ví dụ trên, con mèo và con chó có thể được phát
hiện ở 2 tầng feature map khác nhau, 2 kích thước và tỉ lệ khác nhau. Thay vì
sử dụng 1 box và thay đổi kích thước box cho phù hợp với vật thể, thì SSD sử
dụng nhiều box trên nhiều tầng, từ đó tổng hợp ra vị trí và kích thước box kết
quả.
Sau khi đi qua một số lớp tích chập để trích chọn đặc trưng, chúng ta nhận
được một lớp đặc trưng có kích thước m× n (số lượng các vị trí) với p kênh, ví
dụ 8 × 8 hoặc 4 × 4 như trên hình. Sau đó một lớp tích chập khác có bộ lọc 3 ×3
sẽ được áp dụng vào m× n × p lớp đặc trưng này.
Ở mỗi vị trí, tức là theo như hình trên sẽ là ở mỗi ô vuông nhỏ, chúng ta sẽ có
được k bounding boxes, k bounding boxes này có kích thước và tỉ lệ khung
hình khác nhau. Ví dụ, bounding box của con người thường là hình chữ nhật
đứng, trong khi đó bounding box của chiếc xe hơi thường là hình chữ nhật nằm
ngang. Ở mỗi bounding box, chúng ta sẽ có 5 tham số được dự đoán gồm 1 giá
trị độ chính xác (conf) và 4 giá trị (cx, cy, w, h) liên quan đến hình dạng và vị
trí của bounding box. Cuối cùng chúng ta có (1 + 4) x k x m x n outputs.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
18
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Để tăng khả năng chính xác, các layer của feature map khác nhau cũng đều qua
một lớp convolution nhỏ có kernel 3 x 3 như hình ở trên:
Như hình trên, tại layer conv4_3 có kích thước là 38 x 38 x 512, một
conv 3 x 3 được áp dụng vào. Ở layer này, chúng ta tạo ra 4 bounding
boxes và mỗi bounding box chúng ta có (classes + 4) outputs. Tổng
cộng, chúng ta sẽ có 38 x 38 x 4 x (c + 4) outputs, trong đó c bao gồm
cả số class và "background". Giả sử chúng ta có 20 object classes cộng
với background class, chúng ta sẽ có 38 x 38 x 4 x (21 + 4) = 144,400.
Và số bounding boxes ta thu được là 38 x 38 x 4 = 5776
Tương tự, chúng ta áp dụng cách trên với các feature map khác, tuy
nhiên mối feature map chúng ta sẽ tạo ra số các bounding boxes khác
nhau cho mỗi location.
Conv7: 19 x 19 x 6 = 2166 boxes (6 bounding boxes tạo ra trên mỗi
location)
Conv8_2: 10 x 10 x 6 = 600 boxes (6 bounding boxes tạo ra trên mỗi
location)
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
19
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Tổng cộng, chúng ta có 8732 boxes. Chính vì số lượng boxes nhiều như vậy,
mà thuật toán SSD vẫn còn chậm hơn so với YOLO, YOLO chỉ xác định số
bounding box ở layer cuối có kích thước 7 x 7, và tại mỗi location, YOLO xác
đinh 2 bounding box, vậy sẽ có 7 x 7 x 2 = 98 boxes.
Loss Function được chia làm hai phần: confidence (L_conf) và location
(L_loc)
Confidence: thành phần này tính toán tỉ lệ rơi vào class mà bounding
box được tính toán. Độ đo cross-entropy được sử dụng để đo thành phần
này.
Location: Thành phần này ước lượng sự sai lêch thực tế của bounding
box so với tập dữ liệu mẫu. L2-Norm được sử dụng ở đây.
N ❑
^gcxj = ¿¿ - cx
di )/d wi ^gcyj = ¿¿ - cy
di )/d hi
w h
gj gj
^gwj = log( d w ) ^ghj = log( d h ¿
i i
Hàm mất mát Location sử dụng smooth L1 được sử dụng giữa predicted box
(li) và ground-truth box (g), các tham số bao gồm tọa độ tâm (cx,cy), width (w)
và height (h)
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
20
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Smooth L1 có thể được giải thích là sự kết hợp giữa L1-loss và L2-loss, nó là
L1-loss khi giá trị tuyệt đối của đối số lớn, là L2-loss khi giá trị tuyệt đối của
đối số gần bằng 0, có công thức như sau:
{
| x|if |x|> α
L1;smooth = 1 2
x if |x|< α
|α|
Tham số α thường được đặt bằng 1, cạnh x2 để làm cho nó liên tục
p
N exp (c i )
Lconf(x,c) = - ∑ x log(c^ ) - i ∈¬¿∑
p
ij
p
i
log ¿ ¿ ¿
¿ ) where p
c^ =
i
∑ exp ( c ip)
i ∈Pos
p
Hàm mất mát Confidence là một hàm mất mát softmax đối với nhiều classes
(c), xijp = {1,0}, là một chỉ báo để nối default box thứ i với ground truth box
thứ j của category p.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
21
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Kiến trúc của Multibox bao gồm 11 priors với mỗi feature map cell (8x8, 6x6,
4x4, 3x3, 2x2) và chỉ 1 prior với 1x1 feature map dẫn đến tổng cộng có 1420
priors với mỗi hình ảnh, do đó cho phép bao phủ hoàn toàn một bức ảnh đầu
vào trên những tỉ lệ khác nhau, khiến việc nhận diện những đối tượng ở các
kích thước khác nhau trở nên dễ dàng.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
22
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
neural để huấn luyện cho máy tính học được các đặc trưng khuôn mặt nên nó có
khả năng nắm bắt được vị trí khuôn mặt ở những vị trí cường độ sáng và góc
nghiêng mà HaarCascade phát hiện kém hơn. Mặt khác, do SSD sử dụng đến
mô hình mạng neural nên tốn tài nguyên nhiều hơn so với HaarCascade dẫn đến
tốc độ xử lý có thể chậm hơn HaarCascade.
Hình 2.8: So sánh giữa hai phương pháp phát hiện mặt
Chúng ta có thể thấy SSD (khung màu đỏ) phát hiện được hầu hết các khuôn
mặt trong khi HaarCascade bỏ sót khá nhiều. Tùy theo yêu cầu của bài toán cần
độ chính xác cao trong việc xác định vị trí khuôn mặt, hay muốn cải thiện tốc
độ xử lý của hệ thống mà chúng ta có thể chọn một trong hai phương pháp để
xác định tọa độ khuôn mặt trên một bức ảnh.
Trong đề tài đồ án này em đã sử dụng phương pháp xác định vị trí khuôn mặt là
SSD để cải thiện độ chính xác, làm đầu vào cho các bước tiếp theo.
3.57%. Không những thế nó còn đứng vị trí đầu tiên trong cuộc thi ILSVRC and
COCO 2015 với ImageNet Detection, ImageNet localization, Coco detection và
Coco segmentation.Hiện tại thì có rất nhiều biến thể của kiến trúc ResNet với số
lớp khác nhau như ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-
152,...Với tên là ResNet theo sau là một số chỉ kiến trúc ResNet với số lớp nhất
định.
Tại sao gọi là residual network? Liệu nó có “dư thừa” như tên gọi của mình?
Nhờ khả năng biểu diễn mạnh mẽ của ResNet, hiệu suất của nhiều ứng dụng thị
giác máy, không chỉ các ứng dụng phân loại hình ảnh được tăng cường. Một số
ví dụ có thể kể đến là các ứng dụng phát hiện đồ vật và nhận dạng khuôn mặt.
Vanishing Gradient
Trước hết thì thuật toán lan truyền ngược (Backpropagation Algorithm) là một
kỹ thuật thường được sử dụng trong quá trình huấn luyện. Ý tưởng chung của
thuật toán là sẽ đi từ lớp đầu ra (output layer) trở về lớp đầu vào (input layer)
và tính toán gradient của cost function tương ứng cho từng tham số (weight)
của mạng. Gradient Descent sau đó được sử dụng để cập nhật các tham số đó.
Toàn bộ quá trình trên sẽ được lặp đi lặp lại cho tới khi các tham số của mạng
được hội tụ. Thông thường chúng ta sẽ có một siêu tham số (số Epochs – số
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
24
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
lần huấn luyện và trọng số (weight) được cập nhật định nghĩa cho số lượng
vòng lặp của quá trình này. Nếu số lượng vòng lặp quá nhỏ thì ta có thể gặp
phải trường hợp mạng không cho ra kết quả tốt và ngược lại thời gian huấn
luyện sẽ lâu nếu số lượng vòng lặp quá lớn, chưa kể còn có thể gặp phải hiện
tượng over fitting, tức là hệ thống đã thu được các tham số hội tụ nhưng vẫn
chưa dừng quá trình huấn luyện.
Tuy nhiên, trong thực tế Gradients thường sẽ có giá trị nhỏ dần khi đi xuống
các layer thấp hơn. Dẫn đến kết quả là các cập nhật thực hiện bởi Gradients
Descent không làm thay đổi nhiều weights của các layer đó và làm chúng
không thể hội tụ và mạng sẽ không thu được kết quả tốt. Hiện tượng như vậy
gọi là Vanishing Gradients. Mạng ResNet ra đời để giải quyết vấn đề đó
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
25
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Giải pháp mà ResNet đưa ra là sử dụng kết nối “tắt” đồng nhất để xuyên qua
một hay nhiều lớp. Một khối như vậy được gọi là Residual Block, như hình
dưới:
ResNet gần như tương tự với các mạng gồm có các lớp tích chập (convolution),
lớp tổng hợp đặc trưng (pooling), hàm kích thích (activation) và lớp fully-
connected. Ảnh trên hiển thị khối dư được sử dụng trong mạng, một mũi tên
cong xuất phát từ đầu và kết thúc tại cuối khối dư. Với H(x) là giá trị dự đoán,
F(x) là giá trị thật (nhãn), chúng ta muốn H(x) bằng hoặc xấp xỉ F(x). Từ x có
được F(x) bằng:
X -> weight1 -> ReLU -> weight2
Và H(x) có được bằng: F(x) + x -> ReLU
Việc xếp chồng các lớp sẽ không làm giảm hiệu suất mạng. Chúng ta có thể
đơn giản xếp chồng các ánh xạ đồng nhất lên mạng hiện tại và hiệu quả của
kiến trúc không thay đổi. Hơn nữa, với kiến trúc này, các lớp ở phía trên có
được thông tin trực tiếp hơn từ các lớp dưới nên sẽ điều chỉnh trọng số hiệu
quả hơn.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
26
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Hình 1. VGG-19 là một mô hình CNN sử dụng kernel 3x3 trên toàn bộ
mạng, VGG-19 cũng đã giành được ILSVRC năm 2014.
Hình 2. ResNet sử dụng các kết nối tắt ( kết nối trực tiếp đầu vào của
lớp (n) với (n+x) được hiển thị dạng mũi tên cong. Qua mô hình nó
chứng minh được có thể cải thiện hiệu suất trong quá trình training
model khi mô hình có hơn 20 lớp.
tính toán thông qua hai lớp ẩn (hidden). Việc xếp chồng các lớp sẽ
không làm giảm hiệu suất mạng. Với kiến trúc này các lớp phía trên có
được thông tin trực tiếp hơn từ các lớp dưới nên sẽ điều chỉnh trọng số
hiệu quả hơn.
"ID BLOCK" trong hình trên là viết tắt của từ Identity block và ID BLOCK x3
nghĩa là có 3 khối Identity block chồng lên nhau. Nội dung hình trên như sau :
Zero-padding : Input với (3,3)
Stage 1 : Tích chập (Conv1) với 64 filters với shape(7,7), sử dụng stride
(2,2). BatchNorm, MaxPooling (3,3).
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
28
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
The Flatten.
Thực tế, ResNet không phải là kiến trúc đầu tiên sử dụng các kết nối tắt,
Highway Network là một ví dụ. Trong thử nghiệm cho thấy Highway Network
hoạt động không tốt hơn ResNet. Giải pháp ResNet đưa ra đơn giản hơn và tập
trung vào cải thiện thông tin thông qua độ dốc của mạng. Sau ResNet hàng loạt
biến thể của kiến trúc này được giới thiệu. Thực nghiệm cho thấy những kiến trúc
này có thể được huấn luyện mạng nơ ron với độ sâu hàng nghìn lớp và nó nhanh
chóng trở thành kiến trúc phổ biến nhất trong Computer Vision.
Để theo vết khuôn mặt chúng ta sử dụng cách so sánh vị trí của khuôn mặt trong 2
frame liên tiếp nhau. Nếu một phát hiện trong thời điểm t quá gần với một trạng
thái đã có tại thời điểm t-1 thì nó sẽ được xem là trùng với đối tượng đó. Một cách
gần đúng, ta giả định những phát hiện này xuất phát từ đối tượng đã có từ thời
điểm t-1 trước đó. Có một khoảng cách được gọi là delta khi một khuôn mặt được
so sánh trong 2 frame liên tiếp mà gần nhau nhất thì được coi là cùng khuôn mặt.
Nếu khoảng cách này vượt qua giá trị delta thì nó là hai khuôn mặt khác nhau.
Ngoài ra do lo sợ sự xuất hiện của hai khuôn mặt liên tiếp nhưng của của người
khác nhau, ta tính thêm một thông số nữa là tỉ lệ khuôn mặt nếu vị trí gần nhau rồi
và tỉ lệ khuôn mặt trước và sau nằm trong khoảng 85-100%.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
29
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Như vậy có thể thấy land mark đã loại bỏ những phần thông tin không cần thiết
và giữ lại những thông tin chính. Khi đó mỗi khuôn mặt sẽ được nén thành một
véc tơ n chiều. Thông thường là 68 chiều.
Sử dụng đầu vào là land mark, áp dụng các thuật toán cổ điển như SVM, k-
NN, Naive Bayes, Random Forest, MLP, … để phân loại khuôn mặt cho một
người.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
31
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Nhận diện khuôn mặt của iphone là nhận diện 3D. Bạn sẽ phải quay tròn khuôn
mặt của mình khi xác thực nó để thuật toán học các góc độ khác nhau.
Phương pháp kết hợp có thể sử dụng nhiều thông tin từ đồng thời land mark
face, nhận diện 3D, nhận diện cảm biến da và mang lại độ chính xác cao hơn vì
nó nhận diện tốt được trong các trường hợp khuôn mặt có các biểu cảm như
cau mày, chớp mắt, co dãn khi cười, nói và ít nhạy cảm với chiếu sáng.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
32
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Learning similarity có thể trả ra nhiều hơn một ảnh là cùng loại với ảnh đầu
vào tùy theo ngưỡng threshold.
Ngoài ra phương pháp này không bị phụ thuộc vào số lượng classes. Do đó
không cần phải huấn luyện lại khi xuất hiện class mới.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
33
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Điểm mấu chốt là cần xây dựng được một model encoding đủ tốt để chiếu các
bức ảnh lên một không gian eucledean n chiều. Sau đó sử dụng khoảng cách để
quyết định nhãn của chúng.
Như vậy learning similarity có ưu điểm hơn so với one-shot learning khi không
phải huấn luyện lại model khi mà vẫn tìm ra được ảnh tương đồng.
Vậy làm thế nào để học được biểu diễn của ảnh trong không gian euledean n
chiều? Kiến trúc siam network sẽ giúp chúng ta thực hiện điều này một cách dễ
dàng.
Để xác định khoảng cách giữa hai vector y và z, người ta thưởng áp dụng một
hàm số lên vector hiệu x = y – z. Một hàm số được dùng để đo các vector cần
một vài tính chất đặc biệt.
Một hàm số f() ánh xạ từ một điểm x từ không gian n chiều sang tập số thực
một chiều được gọi là norm nếu nó thõa mãn ba điều kiện sau:
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
34
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Điều kiện thứ nhất dễ hiểu vì khoảng cách không thể là một số âm. Hơn nữa
khoảng cách giữa hai điểm y và z bằng 0 nếu và chỉ nếu hai điểm trùng nhau,
tức x=y–z=0
Điều kiện thứ hai có thể được lý giải như sau, nếu ba điểm y,v và z thẳng hàng,
hơn nữa v-y = α(v-z) thì khoảng cách giữa v và y sẽ gấp |α| khoảng cách giữa v
và z
Điều kiện thứ ba chính là bất đẳng thức tam giác nếu ta coi x1 = w−y , x2 =
z−w với w là một điểm bất kỳ trong cùng không gian
Nhận thấy rằng khoảng cách Euclid chính là một norm, thường gọi là norm 2:
Với p là một số không nhỏ hơn 1 bất kỳ, hàm số sau đây:
được chứng minh đã thỏa mãn ba điều kiện trên, và được gọi là norm p.
Nhận thấy rằng khi p dần về 0 thì biểu thức trên trở thành số các phần tử
khác 0 của x. Hàm số (2) khi p=0 được gọi là giả chuẩn (pseudo-norm) 0. Nó
không phải là norm vì nó không thỏa mãn điều kiện 2 và 3 của norm. Giả-
chuẩn này, thường được ký hiệu là ||x||0, khá quan trọng trong Machine
Learning vì trong nhiều bài toán, chúng ta cần có ràng buộc “sparse”, tức số
lượng thành phần “active” của x là nhỏ.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
35
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
là tổng tuyệt đối của từng phần tử của x. Norm 1 thường được dùng như
xấp xỉ của norm 0 trong các bài toán có ràng buộc “sparse”. Dưới đây là
một ví dụ so sánh norm 1 và norm 2 trong không gian hai chiều:
Norm 2 (màu xanh) chính là đường thằng “chim bay” nối giữa hai vector
x và y. Khoảng cách norm 1 giữa hai điểm này (màu đỏ) có thể diễn giải
như là đường đi từ x tới y trong một thành phố mà đường phố tạo thành
hình bàn cờ. Chúng ta chỉ có cách đi dọc theo cạnh của bàn cờ mà không
được đi thẳng.
Khi p dần đến vô cùng, ta có norm p chính là trị tuyệt đối của phần tử lớn
nhất của vector đó
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
36
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
37
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Khi x1, x2 là cùng một người ¿|f ( x1 ) −f ( x 2 )|¿2 phải là một giá trị nhỏ
2
Khi x1, x2 là hai người khác nhau ¿|f ( x1 ) −f ( x 2 )|¿2 phải là một giá trị lớn
2
Khi sử dụng Siam Network chúng ta sẽ không cần phải lo lắng về vấn đề kích
thước đầu ra bị thay đổi vì mạng đã được loại bỏ lớp cuối.
Mục tiêu chính của Siam Network là tìm ra biểu diễn của ảnh trong không gian
n chiều nên không nhất thiết phải lựa chọn hàm mất mát là hàm binary cross
entropy như các bài toán phân loại nhị phân. Thực tế lựa chọn hàm mất mát là
binary cross entropy vẫn tìm được biểu diễn tốt cho ảnh. Ngoài ra còn một số
biến thể khác của hàm mất mát như sử dụng Norm chuẩn L2 đã chuẩn hóa theo
2
¿∨f ( x 1)−f (x 2 )∨¿2
dạng: hoặc sử dụng Norm chuẩn L1.
¿∨f ( x 1 )+ f ( x 2 )∨¿2
Việc lựa chọn hàm mất mát sẽ có tác động lớn tới độ chính xác của biểu diễn
ảnh. Vậy nên trong phạm vi đồ án này, em xin phép được trình bày về hàm
triplet loss có hiệu quả cao đối với việc biểu diễn vector cho mặt.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
38
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Sử dụng loss function là hàm triplot loss có khả năng học được đồng
thời sự giống nhau giữa 2 bức ảnh cùng nhóm và phân biệt các bức ảnh
không cùng nhóm. Do đó hiệu quả hơn rất nhiều so với các phương
pháp trước đây.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
39
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
người với ảnh gốc. Em xin phép được ký hiệu ảnh gốc là A, ảnh đúng là P, ảnh
sai là N
Mục tiêu của hàm mất mát là tối thiểu khoảng cách giữa hai ảnh khi chúng là
Sai, và tối đa khoảng cách khi chúng là Đúng. Tức là chúng ta sẽ chọn bộ ba
ảnh:
Ảnh Gốc và ảnh Đúng khác nhau nhất có thể để khoảng cách d(A,P)
lớn. Có thể lựa chọn ảnh lúc nhỏ với ảnh hiện tại để thuật toán khó học
hơn. Nhưng nếu học được thì mô hình sẽ “thông minh” hơn
Ảnh Gốc và ảnh Sai giống nhau nhất có thể để khoảng cách d(A,N) nhỏ.
Có thể lựa chọn ảnh của anh, chị, em, bố…gần giống với người trong
ảnh Gốc.
Triplet loss function luôn lấy ba bức ảnh làm đầu vào, và trong mọi trường hợp
của bộ ba bức ảnh đó ta đều mong muốn d ( A , P)< d ( A , N)
Để làm cho khoảng cách vế trái và vế phải lớn hơn, chúng ta sẽ cộng thêm vào
vế trái một hệ số α không âm rất nhỏ, khi đó kỳ vọng của chúng ta sẽ trở thành:
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
40
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
d ( A , P)+α ≤ d(A ,N )
2 2
→∨¿ f ( A)−f ( P)∨¿ 2+ α ≤ ¿∨f ( A)−f (N )∨¿2
2 2
→∨¿ f ( A)−f ( P)∨¿ 2−¿∨f ( A)−f ( N )∨¿ 2+ α ≤ 0
i=0
Như vậy khi áp dụng Triple loss vào các mô hình convolutional neural network
achúng ta có thể tạo ra các biểu diễn véc tơ tốt nhất cho mỗi một bức ảnh.
Những biểu diễn véc tơ này sẽ phân biệt tốt các ảnh Negative rất giống ảnh
Positive. Và đồng thời các bức ảnh thuộc cùng một nhãn sẽ trở nên gần nhau
hơn trong không gian chiếu euclidean.
Một chú ý quan trọng là khi huấn luyện mô hình Siam Network với Triplet
function chúng ta phải luôn xác định trước cặp ảnh (A,P) thuộc về cùng một
người, ảnh Sai sẽ được chọn ngẫu nhiên từ các ảnh thuộc các nhãn còn lại. Do
đó cần thu thập ít nhất mỗi người hai bức ảnh để có được dữ liệu huấn luyện.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
41
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Nếu lựa chọn ba ảnh đầu vào một cách ngẫu nhiên có thể khiến cho hàm mất
mát đúng dễ dàng vì trong các ảnh ngẫu nhiên thì khả năng hay ảnh thuộc cùng
một người là khó hơn. Hầu hết các trường hợp đều sẽ thỏa mãn cho hàm mất
mát bé hơn 0 và không gây ảnh ảnh hưởng gì tới giá trị của hàm mất mát do
giá trị của nó sẽ được đặt bằng 0. Như vậy việc học các bức ảnh Sai quá khác
biệt so với ảnh Gốc sẽ không có nhiều ý nghĩa.
Để mô hình khó học hơn và đồng thời cũng giúp mô hình phân biệt chuẩn xác
hơn mức độ giống nhau và khác nhau giữa các khuôn mặt, chúng ta cần lựa
chọn đầu vào theo bộ ba khó học (hard triplets)
Ý tưởng đưa ra là chúng ta sẽ tìm bộ ba ảnh sao cho bất đẳng thức hàm mất
mát trên gần đạt được đẳng thức nhất. Tức là d(A,P) lớn nhất và d(A,N) nhỏ
nhất. Hay nói cách khác, với mỗi ảnh Gốc ta cần xác định:
Hard Positive: Bức ảnh Positive có khoảng cách xa nhất với Anchor
tương ứng với nghiệm:
argmax P (d ( Ai , Pi))
i
Hard Negative: Bức ảnh Negative có khoảng cách gần nhất với Anchor
tương ứng với nghiệm:
argmin N ( d (A i , N j))
j
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
42
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
VGGFace2: Bộ dữ liệu gồm khoảng 3 triệu ảnh được thu thập từ gần 9
nghìn người
Ngoài ra còn có một số bộ dữ liệu khác:
Các bộ dữ liệu từ Trung Quốc cũng khá tốt. Những dữ liệu này được
Baidu công bố để hỗ trợ các nhà nghiên cứu
Các bộ dữ liệu từ Google, Facebook, flickr và các phòng thí nghiệm
Hiện nay dữ liệu khuôn mặt cho người Việt thì mới chỉ có trong cuộc thi
“nhận diện người nổi tiếng – aivivn”.
Như vậy, thuật toán Facenet trong nhận diện khuôn mặt đã cải thiện được đồng
thời độ chính xác và tốc độ nhờ áp dụng kích thước đầu ra thấp và hàm mất mát
triplet loss hiệu quả. Mấu chốt để xây dựng một mô hình Facenet tốt đó là lựa
chọn đầu vào sao cho chúng là bộ ba ảnh khó học.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
43
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Điều kiện ánh sáng tốt, khoảng cách giữa khuôn mặt với camera không
quá gần
3.1.2. Cơ sở dữ liệu
Để thuận tiện cho việc quản lý dữ liệu người dùng, em đã sử dụng mysql để tạo
ra cơ sở dữ liệu lưu trữ các thông tin cần thiết với mỗi người dùng. Mysql là hệ
quản trị cơ sỏ dữ liệu mã nguồn mở phổ biến nhất thế giới và được các nhà phát
triển ưa chuộng vì mysql là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có
tính khả chuyển, hoạt động trên nhiều hệ điều hành, cung cấp một hệ thống lớn
các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, mysql rất thích hợp
cho các ứng dụng có truy cập cơ sở dữ liệu trên internet.
Trong đồ án lần này, em đã sử dụng mysql để xây dựng một cơ sở dữ liệu với
hai Tables để lưu trữ hai kiểu thông tin người dùng.
Thứ nhất là Table của các admin chương trình này, chỉ có các admin mới được
quyền đăng nhập và sử dụng giao diện người dùng này. Ý tưởng của em là
những admin này chính là các thầy cô đang giảng dạy trong nhà trường hoặc
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
45
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
những cán bộ có thẩm quyền kiểm tra mới được phép đăng nhập và theo dõi.
Giảng viên đăng nhập để tiến hành điểm danh và tra cứu thông tin. Các cán bộ
có thẩm quyền có thể truy cập và kiểm tra giám sát cũng như trích xuất thông tin
điểm danh của sinh viên. Dữ liệu được tổ chức gồm 6 trường:
Admin: Tên của giảng viên hoặc cán bộ có thẩm quyền
Account: Tên đăng nhập
Password: Mật khẩu đăng nhập
Position: Chức vụ hoặc bộ môn trực thuộc
PhoneNumber: Số điện thoại
Email: Địa chỉ mail
Thứ hai là Table người dùng đã đăng ký thông tin. Dữ liệu trong Table này được
tổ chức gồm 8 trường:
STT: Số thứ tự
UserName: Tên người dùng
ID: Mã sinh viên hoặc số chứng minh nhân dân
Unit: Đối với đối tượng ở đồ án là sinh viên thì trường này sẽ là tên lớp
chuyên ngành của mỗi sinh viên
DateOfBirth: Ngày tháng năm sinh, viết theo dạng YYYY-MM-DD
Email: Địa chỉ mail người dùng
PhotoPath: Đường dẫn tới bức ảnh mà người dùng muốn dùng làm ảnh
đại diện
DisplayName: Tên hiển thị
Cơ sở dữ liệu hình ảnh mã hóa được lấy từ ảnh khuôn mặt của người dùng. Hệ
thống sau khi phát hiện được khuôn mặt sẽ so sánh với cơ sở dữ liệu này để quản
lý nhận diện, check in, hiển thị.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
46
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Bắt đầu mở webcam, từng khung hình sẽ được “bắt” để tiến hành xử lý. Với mỗi
khung hình, bước đầu tiên chính là tiền xử lý để đưa khung hình đó về dạng ảnh
blob, làm đầu vào cho mô hình Face Detection. Load mô hình Face Detection
với đầu vào là ảnh đã tiền xử lý, mô hình Face Detection này được xây dựng dựa
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
47
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
trên mô hình mạng ResNet và thuật toán SSD để xác định trên khung hình có
khuôn mặt nào không và vị trí của khuôn mặt đó ở đâu. Nếu không phát hiện
được bất kỳ khuôn mặt nào trên khung hình hiện tại thì sẽ xuất khung hình đó ra
màn hình mà không cần xử lý gì thêm. Và ngược lại, nếu đã xác định được các
vị trí có khuôn mặt trong khung hình, chúng ta sẽ tiến hành vẽ box đánh dấu
khuôn mặt đó trên khung hình đồng thời sử dụng chính tọa độ đó để trích xuất
vùng ảnh đó làm đầu vào mô hình Face Recognition. Mô hình Face Recognition
sử dụng mô hình mạng Siam Network với hàm mất mát là Triplet loss với đầu
vào là vùng ảnh sẽ cho ra đầu ra là một vector đặc trưng 128 chiều. Sau khi đã
trích chọn được đặc trưng cả vùng có chứa khuôn mặt, hệ thống sẽ sử dụng
Norm chuẩn L2 để tính khoảng cách giữa đặc trưng vừa mã hóa với đặc trưng
được lưu trong cơ sở dữ liệu nhân diện. Nếu khoảng cách tính được cao hơn một
ngưỡng khoảng cách đã đặt trước thì sẽ hiển thị lên màn hình đánh dấu box vừa
xử lý được là None. Nếu khoảng cách đó thấp hơn ngưỡng thì chúng ta lấy thông
tin từ cơ sở dữ liệu người dùng và xuất ra màn hình các thông tin theo yêu cầu
thiết kế. Tiếp tục với các khung hình tiếp theo được đưa vào hệ thống, việc vẽ
box cho khuôn mặt phát hiện được cũng giúp cho việc theo vết đối tượng được
thuận tiện hơn.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
48
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Tại màn hình chính này sẽ bao gồm ba nút bấm là ShowCam, Sign Up và Statistic.
Khi bấm Statistic, xuất hiện danh sách thống kế điểm danh của các sinh viên. Ở
đây chỉ phép xem chứ không có bất kỳ chỉnh sửa nào vào danh sách, người dùng
có thể xem thống kê điểm danh của một cá nhân hoặc toàn bộ lớp, có thể xem toàn
bộ thời gian được lưu hoặc chỉ một khoảng thời gian mà người dùng mong muốn
lựa chọn. Khi bấm vào nút ShowCam, webcam sẽ được bật và chức năng nhận
diện khuôn mặt được khởi động đồng thời các khung hình sau khi đã được xử lý
sẽ được hiển thị trở lại màn hình theo thời gian thực một cách liên tục tạo thành
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
49
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
một luồng stream, các thông tin của đối tượng nhận diện được sẽ hiển thị ở phía
bên phải. Màn hình hiển thị sẽ xuất khung hình bao gồm luồng stream mà webcam
bắt được cùng với box khuôn mặt đã vẽ và tên hiển thị ở phía trên, giao diện này
cũng bao gồm cả mục ngày tháng và thời gian để phục vụ cho việc điểm danh và
check in, check out. Khi đã mở webcam và tiến dành nhận diện thành công các đối
tượng có trong khung hình, nút check in và check out mới được phép sử dụng,
nháy đúp vào một trong hai nút bấm đó, thông tin gồm tên, thời gian và trạng thái
(check in hay check out) sẽ được trích xuất và lưu lại dưới dạng file csv. File csv
này sẽ được sử dụng khi bấm Statistic.
Còn đối với nút bấm Sign Up, một giao diện khác sẽ được gọi để phục vụ cho các
thao tác liên quan tới vấn đề đăng ký người dùng, ở đây tức là các sinh viên, kèm
với đó là thêm các bức ảnh vào cơ sở dữ liệu hình ảnh nhận diện
Tại giao diện này có bốn nút bấm. Hai nút bấm Capture và UploadFile phục vụ
cho việc lấy dữ liệu ảnh để thêm vào cơ sở dữ liệu ảnh nhận diện. Khi bấm vào
nút bấm Capture, đầu tiên hệ thống sẽ yêu cầu bạn chọn vị trí lưu file ảnh
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
50
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Chúng ta sẽ chọn vị trí lưu và đặt tên file lưu đó trùng với tên hiển thị mà người
dùng muốn hệ thống hiển thị ra màn hình khi nó nhận diện được họ. Ở trong hệ
thống này em có làm riêng một file ảnh dùng để lưu các dữ liệu này. Sau khi chọn
xong, chúng ta ngồi ngay ngắn trước webcam để hệ thống tự động chụp, cố gắng
cử động đầu để hệ thống có thể chụp được càng nhiều góc độ khuôn mặt càng tốt,
hiện tại vì điều kiện máy tính không đủ khỏe nên em chỉ chụp mỗi người 10 bức
ảnh để làm dữ liệu. Với nút UploadFile, khi bấm vào hệ thống sẽ để chúng ta truy
xuất đến đường dẫn mà chứa file ảnh mà chúng ta muốn sử dùng làm dữ liệu ảnh
nhận diện. Các bức ảnh trong file này sẽ được đưa về lưu vào cơ sở dữ liệu ảnh
nhận diện để tiện cho việc quản lý và huấn luyện.
Tác dụng của nút bấm ConfirmSignup là để xác nhận đã xong việc đăng ký một
người dùng mới và quay trở lại giao diện màn hình hiển thị chính, lúc đó coi nhu
chúng ta đã đăng ký xong và nếu bấm ShowCam hệ thống sẽ nhận diện và trích
xuất thông tin ra màn hình.
Nút bấm List sẽ cho người dùng truy cập vào danh sách người dùng, tức là danh
sách sinh viên đã được đăng ký điểm danh. Được quyền thêm, sửa, xóa thông tin
sinh viên ngay trên giao diện như sau:
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
51
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Các thông tin của tất cả các sinh viên đã đăng ký thông tin trong cơ sở dữ liệu
người dùng đều sẽ được hiển thị trên đây. Khi bấm con trỏ chuột vào bất kỳ người
nào, hình đại diện của người đó sẽ được hiện lên để dễ dàng nhận biết các sinh
viên với nhau. Ba nút bấm AddDB, AlterDB, Delete chính là ba nút thêm, sửa, và
xóa. Khi nút AddDB hoặc nút AlterDB được bấm, giao diện hiện lên sẽ tương tự
nhau
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
52
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Tuy nhiên, với nút AddDB các mục để điền thông tin sẽ trống hoàn toàn và chúng
ta sẽ điền đủ các mục được yêu cầu, còn AlterDB thì các muc thông tin đêu được
trích từ thông tin người dùng mà chúng ta đã chọn trước khi bấm AlterDB, việc
của chúng ta là sửa tại mục thông tin nào bị sai. Ở đây có mục Photo, mục này
chúng ta phải điền đường dẫn của bức ảnh đại diện mà chúng ta mong muốn,
đường dẫn này sẽ được lưu vào cơ sở dữ liệu người dùng và sẽ được trích xuất trở
lại khi chúng ta kích vào người dùng ở giao diện List, để điền chúng ta có thể thực
hiện nhập thủ công từ bàn phím hoặc sử dụng nút Browser để lựa chọn đường dẫn
chứa ảnh mà ta muốn. Sau khi đã hoàn thành, ấn nút Add đối với giao diện
AddDB hoặc nút Alter đối với giao diện AlterDB và chúng ta sẽ quay trở lại giao
diện List đồng thời dữ liệu sẽ được sửa ở trên danh sách hiển thị cũng như trong
cơ sở dữ liệu người dùng. Hoặc nếu chúng ta không muốn thêm hoặc sửa nữa, nút
Cancel cũng sẽ có tác dụng tương tự. Nút bấm Delete sẽ xóa dữ liệu ngay trên
danh sách cũng như xóa luôn trong cơ sở dữ liệu người dùng, chúng ta chỉ việc
kích chuột vào sinh viên muốn xóa thông tin và nhấn nút Delete.
Sau khi đã hoàn thành những công việc mong muốn với danh sách dữ liệu người
dùng, chúng ta sẽ bấm nút Back để quay trở lại giao diện SignupDB và tiếp tục
với những thao tác khác.
Em đã trình bày xong về hệ thống giao diện người dùng mà em đã xây dựng với
mục đích phục vụ điểm danh. Với bộ khung là giao diện này, em đã đưa phần
nhận diện khuôn mặt vào để nó trở thành hệ thống mô phỏng điểm danh sử dụng
Học Sâu và Trí tuê nhân tạo, cụ thể ở đồ án này là bài toán nhận diện khuôn mặt.
Sau khi hoàn thành hệ thống, em đã thử nghiệm và có một số kết quả cũng như là
nhận xét và định hướng phát triển, em xin trình bày ở chương sau.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
53
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Thực nghiệm đánh giá kết quả sản phẩm của quá trình nhận diện và điểm danh
thông qua webcam của máy tính laptop Dell Vostro 5568 Core i7, tốc độ xử lý
2.5GHz – 3.2GHz, RAM 8GB, hệ điều hành Ubuntu 20.04 sử dụng ngôn ngữ lập
trình Python và các framework Học Sâu.
Hiện tại em đang thử nghiệm với các đối tượng xung quanh em như bạn bè, thầy cô,
các anh chị đồng nghiệp. Em đã thu thập dữ liệu ảnh khuôn mặt mỗi người 10 ảnh
làm ảnh Gốc. Ảnh có thể được chụp trực tiếp bằng máy ảnh điện thoại hoặc bất kỳ
thiết bị chụp ảnh nào, em sẽ lấy file ảnh và lưu vào cơ sở dữ liệu ảnh nhận diện mà
em đã xây dựng. Ảnh cũng có thể được lấy bằng cách chạy chương trình mô phỏng
hệ thống điểm danh mà em đã làm và sử dụng webcam máy tính để chụp ảnh đồng
thời lưu các ảnh đó vào cơ sở dữ liệu ảnh nhận diện. Thử nghiệm sẽ được thực hiện
theo đúng quy trình của một hệ thống điểm danh cơ bản bao gồm đăng nhập, đăng
ký thông tin, lấy dữ liệu khuôn mặt, trích đặc trưng và nhận diện, check in, check
out và lưu trữ để làm dữ liệu cho việc điểm danh.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
54
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Hình 4.1: Mô phỏng nhận diện khuôn mặt và xuất thông tin lên màn hình
Nhấn nút CheckIN, trạng thái sẽ được chuyển thành Checking In và xuất hiện
một tin nhắn xác nhận việc check in
Và khi nhấn nút CheckOUT cũng có tin nhắn xác nhận, đồng thời trạng thái
được chuyển thành Checking Out
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
55
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Thông tin check in và check out sẽ được lưu dưới định dạng file csv, có bà
trường cơ bản là tên người được check in-check out, thời điểm check in-check
out bao gồm ngày giờ đầy đủ, trạng thái check in hay check out
Trong giao diện SignUp, hai nút chức năng Capture và UploadFile sẽ được hiển
thị như sau, đi kèm với đó là thông báo đã lưu thành công ảnh vào cơ sở dữ liệu
ảnh nhận diện
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
56
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Hình 4.5: Chụp ảnh hoặc chọn file ảnh từ bên ngoài vào hệ thống
Với giao diện thông kê cơ sở dữ liệu danh sách người dùng, hệ thống sẽ hiển thị
tất cả thông tin và hình ảnh để dễ dàng nhận biết đó là thông tin của người nào
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
57
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Bên cạnh những kết quả đã đạt được thì vẫn còn tồn tại khá nhiều hạn chế.
Chưa xây dựng được hệ thống camera phục vụ cho quá trình chụp ảnh đối
tượng làm dữ liệu ảnh nhận diện. Hiện tại em chỉ làm được với một camera
là webcam của máy tính laptop.
Giao diện người dùng vẫn chưa thật sự thuận tiện cho người dùng, vẫn chưa
hẳn là có thể để người dùng hoàn toàn sử dụng hệ thống.
Do vấn đề thời gian và cấu hình máy tính không đáp ứng yêu cầu nên dữ
liệu dùng để huấn luyện cho việc phát hiện và nhận diện còn chưa đủ để hệ
thống có thể cho ra dự đoán với độ chính xác cao.
Do vấn đề về điều kiện thiết bị mà em sử dụng nên tốc độ xử lý mỗi khung
hình còn khá chậm, hình ảnh được hiển thị còn bị giật, lag gây cảm giác hơi
khó chịu.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
58
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
dụng server để thực hiện việc huấn luyện và lưu trữ mô hình, tham số của
mạng neural.
Nghiên cứu và áp dụng bài toán nhận diện khuôn mặt trên một hệ thống
camera gồm nhiều camera tạo thành, xử lý đồng thời các tín hiệu mà các
camera gửi về.
Ứng dụng hệ thống trên các thiết bị mini PC như Raspberry Pi, Jetson Nano,
… kết hợp với cụm camera tạo thành một hệ thống có thể đưa vào lắp đặt
trong thực tế.
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57
59
Đồ án tốt nghiệp GVHD: ThS. Nguyễn Thúy Bình
Tiếng Việt:
[1] https://nerophung.github.io/2019/06/15/ssd-single-shot-detector
[2] https://machinelearningcoban.com/math
[3] https://viblo.asia/p/haar-cascade-la-gi-luan-ve-mot-ky-thuat-chuyen-dung-de-
nhan-biet-cac-khuon-mat-trong-anh-E375zamdlGW
Tiếng Anh:
[1] Wei Liu , Dragomir Anguelov , Dumitru Erhan , Christian Szegedy , Scott Reed
, Cheng-Yang Fu , Alexander C Berg. SSD: Single Shot MultiBox Detector. 2016
[2] https://github.com/weiliu89/caffe/tree/ssd .
[3] https://cv-tricks.com/keras/understand-implement-resnets
[4] https://www.tensorflow.org/addons/tutorials/losses_triplet?fbclid=IwAR2JGGd
hNuhoMUSTBuID0RBHuIAm3H8qCF9MqSbMClDNF6kYs_K96MnW0bQ
[5] Florian Schroff, Dmitry Kalenichenko, James Philbin . FaceNet: A Unified
Embedding for Face Recognition and Clustering. 2015
SVTH: Lưu Trọng Hiếu Lớp: Kỹ thuật Điện tử và Tin học Công nghiệp K57