Tải bản đầy đủ (.doc) (65 trang)

BÁO CÁO ĐỒ ÁN CƠ SỞ 5 Đề tài :ỨNG DỤNG HỖ TRỢ CHĂM SÓC KHÁCH HÀNG SỬ DỤNG OPENCV. TS. Nguyễn Văn Lợi

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

Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

ĐẠI HỌC ĐÀ NẴNG
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG
VIỆT-HÀN
KHOA KHOA HỌC MÁY TÍNH

BÁO CÁO ĐỒ ÁN CƠ SỞ 5
Đề tài :

ỨNG DỤNG HỖ TRỢ CHĂM SÓC KHÁCH HÀNG SỬ
DỤNG OPENCV

Giáo viên hướng dẫn TS. Nguyễn Văn Lợi
Sinh viên thực hiện
Nguyễn Gia Thuần – 18it040
Ngô Đức Huy – 18it016

Đà nẵng, Ngày.... Tháng.....năm 2021

GVHD: Nguyễn Văn Lợi

Trang 0

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5


Ứng dụng chăm sóc khách hàng

LỜI CẢM ƠN
Trước tiên, em xin phép bày tỏ lòng biết ơn chân thành và sâu sắc nhất tới Tiến sĩ
Nguyễn Văn Lợi đã tận tình chỉ bảo, hướng dẫn, động viên và giúp đỡ em trong suốt
quá trình thực hiện đề tài. Em xin gửi lời cảm ơn sâu sắc tới quý thầy cô giáo trong
Khoa khoa học máy tính của trường Đại học Cơng nghệ thơng tin và truyền thông
Việt-Hàn – Đại học Đà Nẵng đã truyền đạt kiến thức quý báu cho em trong suốt quá
trình thực hiện đồ án.
Chúng em xin chân thành cảm ơn!

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

GVHD: Nguyễn Văn Lợi

Trang 1

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................

................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................

GVHD: Nguyễn Văn Lợi


Trang 2

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

MỤC LỤC
Chương 1 : GIỚI THIỆU BÀI TOÁN........................................................................0
1.1. Giới thiệu bài tốn...........................................................................................0
1.2. Vai trị và ý nghĩa bài tốn...............................................................................0
1.3. Tìm hiểu một số hệ thống tương tự..................................................................1
Chương 2: NHẬN DIỆN KHN MẶT TRONG OPENCV..................................2
2.1. Giới thiệu về OpenCV.....................................................................................2
2.2. Cơng nghệ và ngôn ngữ sử dụng.....................................................................2
2.2.1. Ngôn ngữ Python...................................................................................2
2.2.2. Thư viện PyQt5.....................................................................................2
2.2.3. Thư viện Pandas....................................................................................2
2.2.4. Thư viện PIL.........................................................................................2
2.2.5. Thư viện NumPy...................................................................................2
2.2.6. Cơ sở dữ liệu SQL Server......................................................................2
2.3. Thuật toán nhận diện khuôn mặt......................................................................6
2.3.1. EigenFaces Face Recognizer...............................................................18
2.3.2. FisherFaces Face Recognizer..............................................................18
2.4. Quy trình sử dụng khn mặt sử dụng OpenCV............................................18
2.4.1. Thu thập và tách mặt người trong ảnh.................................................18
2.4.2. Tiền xử lý............................................................................................18

2.4.1. Trính chọn đặc tính..............................................................................18
2.4.2. Phân loại, nhận dạng...........................................................................18
Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG.................................................27
3.1. Tổng quan về hệ thống..................................................................................27
3.2. Tầng giao diện người dùng............................................................................27
3.2.1. Tổng quan tầng giao diện....................................................................18
3.2.2. Các module phía client........................................................................18
3.3. Tầng cơ sở dữ liệu.........................................................................................27
3.3.1. Tổng quan tầng cơ sở dữ liệu..............................................................18
3.3.2. Các module tầng cơ sở dữ liệu............................................................18

GVHD: Nguyễn Văn Lợi

Trang 3

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

3.4. Server............................................................................................................27
3.5. Tầng cơ sở dữ liệu.........................................................................................27
3.5.1. Bảng Customer....................................................................................18
3.5.2. Bảng Employee...................................................................................18
3.5.3. Bảng Item............................................................................................18
3.5.4. Bảng Invoice_detail.............................................................................18
3.5.5. Bảng Invoice_header...........................................................................18
Chương 4: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG...............................................34

4.1. Cách thức cài đặt hệ thống............................................................................27
4.1.1. Pycharm Community Edition..............................................................18
4.1.2. SQL Server Management Studio.........................................................18
4.1.3. Python 3.6.4........................................................................................18
4.1.4. OpenCV 3.4.1......................................................................................18
4.1.5. Cài đặt các thư viện liên quan đến chương trình hỗ trợ Python và
OpenCV........................................................................................................18
4.2. Demo một số hình ảnh từ hệ thống................................................................27
4.2.1. Màn hình Config Customer.................................................................18
4.2.2. Màn hình Config Employee................................................................18
4.2.3. Màn hình Config Item.........................................................................18
4.2.4. Màn hình hiển thị giới thiệu về sản phẩm............................................18
4.2.5. Màn hình tổng quan.............................................................................18
4.3. Kết quả kiểm thử một số chức năng...............................................................28
4.3. Sử dụng chương trình.........................................................................................28
4.4. Đánh giá chương trình.......................................................................................33
Chương 5: KẾT LUẬN..............................................................................................39
TÀI LIỆU THAM KHẢO.........................................................................................40

GVHD: Nguyễn Văn Lợi

Trang 4

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng


DANH SÁCH HÌNH VẼ
Hình 0. 1 Nhận diện cơ thể con người thơng qua các thuật tốn...........................4
Hình 1. 1: Nhận diện khuôn mặt con người sử dụng OpenCV khi nhìn thẳng
6
Hình 1. 2: Nhận diện khn mặt con người sử dụng OpenCV khi theo các hướng
khác nhau..............................................................................................................7
Hình 1. 3: Mơ tả hệ thống Workforce Attendance.................................................9
Hình 2. 1: Kiến trúc và sự phát triển của OpenCV..............................................14
Hình 2. 2: Một số module trong OpenCV...........................................................15
Hình 2. 3: Thành phần chính của khn mặt(Principal Components).................19
Hình 2. 4: Hình ảnh mơ tả thuật tốn Fisher Faces..............................................20
Hình 2. 5: Tỉ lệ nhận dạng khi sử dụng thuật tốn Eigenfaces và Fisherfaces.....23
Hình 2. 6: Mơ tả giải thuật LBP..........................................................................24
Hình 2. 7: Hình ảnh sử dụng thuật tốn LBP.......................................................25
Hình 2. 8: Quy trình nhận diện trong OpenCV...................................................26
Hình 2. 9: Hình ảnh huấn luyện sau khi tách khn mặt ra khỏi ảnh..................26
Hình 2. 10: Quy trình tiền xử lý ảnh....................................................................27
Hình 2. 11: Hình ảnh ví dụ giải thuật PCA..........................................................28
Hình 2. 12: Hình ảnh nhận diện khách hàng với độ chính xác cao......................29
Hình 3. 1: Sơ đồ khối tổng quan hệ thống........................................................31
Hình 3. 2: Tổng quan tầng giao diện...................................................................33
Hình 3. 3: Biểu đồ tuần tự mơ đun khách hàng...................................................34
Hình 3. 4: Biểu đồ tuần tự mơ đun nhân viên......................................................37
Hình 3. 5: Biểu đồ tuần tự mơ đun hàng hóa.......................................................39
Hình 3. 6: Biểu đồ tuần tự mơ đun hóa đơn........................................................41
Hình 3. 7: Sơ đồ khối tầng cơ sở dữ liệu.............................................................44
Hình 3. 8: Các thư mục chứa dữ liệu...................................................................45
Hình 3. 9: Tổng quan tầng Server.......................................................................45
GVHD: Nguyễn Văn Lợi


Trang 5

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

Hình 3. 10: Hình ảnh thư mục chứa các tệp dữ liệu .txt......................................47
Hình 3. 11: Lược đồ EER Hệ thống....................................................................48
Hình 3. 12: Hình ảnh thơng tin bảng customer....................................................48
Hình 3. 13: Hình ảnh thơng tin bảng Employee..................................................49
Hình 3. 14: Hình ảnh thơng tin bảng Item...........................................................50
Hình 3. 15: Hình ảnh thơng tin bảng Invoice_detail............................................50
Hình 3. 16: Hình ảnh thơng tin bảng Invoice_header..........................................51
Hình 4. 1: Địa chỉ tải về Pycharm.......................................................................52
Hình 4. 2: Hình ảnh giao diện Pycharm..............................................................53
Hình 4. 3: Địa chỉ tải về SQL Server...................................................................54
Hình 4. 4: Hình ảnh giao diện SQL Server..........................................................55
Hình 4. 5: Địa chỉ tải về Python.........................................................................55
Hình 4. 6: Địa chỉ tải về OpenCV.......................................................................56
Hình 4. 7: Màn hình Config Customer................................................................57
Hình 4. 8: Màn hình Config Employee...............................................................58
Hình 4. 9: Màn hình Config Item........................................................................59
Hình 4. 10: Màn hình Config Invoice.................................................................60
Hình 4. 11: Màn hình giới thiệu sản phẩm..........................................................61
Hình 4. 12: Màn hình tổng quan..........................................................................61
Hình 4. 13: Nhận dạng theo khoảng cách Euclide...............................................63
Hình 4. 14: Kết quả nhận dạng đúng, trường hợp “dễ nhận dạng”......................64

Hình 4. 15: Kêt quả nhận dạng đúng, trường hợp: “khó nhận dạng”..................64
Hình 4. 16: Một số trường hợp nhận sai hoàn toàn:............................................65

GVHD: Nguyễn Văn Lợi

Trang 6

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

LỜI MỞ ĐẦU
Từ trước đến nay, vấn đề nhận diện thông tin con người luôn là một trong
những vấn đề rất được quan tâm. Trên thực tế, việc truy xuất thơng tin hình ảnh, quản
lý dấu vân tay hay các sinh trắc học trên cơ thể con người ngày càng quan trọng. Trong
thời gian có rất nhiều vấn đề liên quan đến nhận diện con người, chẳng hạn như những
trường hợp tìm bắt trộm cắp, khủng bố qua camera chụp được hay như là qua các dấu
vân tay tìm dữ liệu người có liên quan, giám sát an ninh, quân sự, giám sát sức
khỏe[1]. Trong lĩnh vực y tế, nhận diện thông tin bệnh nhân qua các thiết bị từ xa là
lựa chọn tối ưu nhất đối với việc giám sát, theo dõi sức khỏe bệnh nhân từ xa mà
không bị giới hạn bởi khoảng cách hay thời gian. Chính vì vậy, khơng ít chính phủ
cũng như các doanh nghiệp đã dành rất nhiều thời gian và công sức cho việc tìm hiểu,
xây dựng các hệ thống, và xây dựng dữ liệu cho các hệ thống của mình.
Trong vấn đề nhận dạng sinh trắc học con người, hiện nay có khá là nhiều
phương pháp để nhận dạng: nhận dạng vân tay, nhận dạng bàn tay, nhận dạng vân mắt,
… Các phương pháp trên đã qua một thời gian dài phát triển nên đã đạt được những
thành công nhất định, và độ chính xác ngày càng được tăng lên một cách nhanh chóng.

Tuy nhiên các phương pháp trên vẫn cịn gặp phải một số hạn chế như sau:
Các hệ thống trên đòi hỏi người sử dụng phải tiếp xúc trực tiếp với hệ thống, người đó
ý thức được rằng mình đang được nhận dạng.
Nhận dạng dựa vào vân tay, bàn tay, vân mắt,… không phải là cách tự nhiên mà
con người sử dụng để nhận biết.
Các hệ thống vân mắt, vân tay,… khơng phải bao giờ chúng ta cũng có thể lấy
được mẫu, số liệu từ đối tượng.
Chính vì thế, một trong những bài toán đang rất được quan tâm hiện nay đó là
nghiên cứu nhận dạng con người qua khn mặt. Mặt dù độ chính xác chưa được cao
như các phương pháp đã kể trên(ví dụ nhân dạng qua vân tay, vân mắt), nhưng lại đang
được rất quan tâm hiện nay của các nhà khoa học vì một số lý do sau:
Giám sát các đối tượng một cách kín đáo.
Các thuật toán khá phức tạp, nhưng được hỗ trợ một cách nhanh chóng bởi các
hệ máy tính có tốc độ xử lý cao.

GVHD: Nguyễn Văn Lợi

Trang 7

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

Với các dữ liệu từ camera số(hình ảnh, video), chúng ta có thể dễ dàng lấy được
thơng tin về đối tượng mà không cần tiếp xúc thực tế.
Một trong những bài toán nhận dạng con người được quan tâm nhất hiện nay đó
là nhận dạng qua khn mặt. Vì nhận dạng qua khuôn mặt là cách mà con người sử

dụng để phân biệt nhau. Bên cạnh đó, ngày nay việc thu thập, xử lý thông tin qua ảnh
để nhận biết đối tượng đang được quan tâm và ứng dụng rộng rãi, Với phương pháp
này, chúng ta có thể thu nhận được nhiều thông tin từ đối tượng mà lại không cần tác
động nhiều đến đối tượng nghiên cứu. Với sự phát triển của khoa học máy tính, bài
tốn nhận dạng mặt người từ ảnh số đang có được mơi trường phát triển hết sức thuận
lợi.

Hình 0. 1 Nhận diện cơ thể con người thơng qua các thuật tốn
Trong đề tài này, tôi tập trung nghiên cứu về nhận diện khn mặt và xác nhận
danh tính của con người tại cửa hàng.
Bài tốn đặt ra là có thể nhận diện được khách hàng với các thông tin như: tên
tuổi, nơi sống, số chứng minh thư nhân dân (CMTND) và lịch sử mua hàng. Dữ liệu sẽ
được tổng hợp và gửi về bộ phận xử quản lý và có sự phục vụ tốt nhất cho khách hàng.
Trong bài toán này, các yếu tố như độ chính xác của dữ liệu, thời gian trễ, tần suất gửi
dữ liệu tới người quản lý. Bằng các phần mềm trợ giúp, cũng như dữ liệu tìm hiểu, hệ
thống nhận diện khn mặt người cịn ảnh hưởng bởi khá nhiều yếu tố:
-

Độ tin cậy của dữ liệu.

-

Số lượng ảnh được huấn luyện (training).

-

Khả năng xử lý dữ liệu lớn.

GVHD: Nguyễn Văn Lợi


Trang 8

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

-

Ứng dụng chăm sóc khách hàng

Mức độ ảnh hưởng của độ sáng.
Qua đó có thể đưa ra các đánh giá cũng như các thuật tốn tốt hơn cho việc truy

xuất và nhận diện khn mặt khách hàng. Để có thể xử lý được bài toán trên, đồ án đề
xuất hướng tiếp cận là sử dụng các kỹ thuật xử lý ảnh số. Các ảnh số được thu thập
bằng camera và xử lý thông qua máy tính PC. Đây là một hệ thống nhận dạng trực
tiếp, nên sẽ yêu cầu độ chính xác cao và thời gian xử lý nhanh. Bài toán nhận dạng mặt
người là sự kết hợp của hai bài toán:
-

Bài toán xác định mặt người trong camera được trích xuất (Face Detection).

-

Bài toán nhận dạng mặt người (Face Recognition).

Bài toán xác định mặt người là bài tốn mang tính quyết định tới độ chính xác của hệ
thống. Khn mặt được xác định với chất lượng cao sẽ mang lại được kết quả cao
trong việc nhận dạng chính xác khách hàng. Trong khn khổ thời gian cho phép, đồ

án đã hoàn thiện và xử lý được một số vấn đề về xử lý ảnh, và nhận diện khn mặt.
Đi kèm theo đó, đồ án tìm hiểu về thu thập ảnh, các phương pháp tách mặt người, nhận
dạng mặt người.
Đồ án được trình bày trong 4 chương và các phụ lục kèm theo. Nội dung cụ thể
như sau:
Chương 1: Giới thiệu bài toán: Giới thiệu bài tốn sẽ giải quyết. Vai trị của
bài tốn được đặt ra. Tìm hiểu một số hệ thống tương tự, phân tích ưu và nhược điểm
của hệ thống này. Ý tưởng sẽ giải quyết và sự khác biệt với các hệ thống đã có.
Chương 2: Nhận diện khn mặt trong OpenCV: Giới thiệu về OpenCV.
Quy trình nhận diện khn mặt sử dụng OpenCV. Một số thuật toán phổ biến dùng
trong nhận diện khuôn mặt, ưu điểm và nhược điểm. Thuật toán sẽ được sử dụng trong
hệ thống.
Chương 3: Phân tích, thiết kế ứng dụng: Tổng quan về hệ thống, vẽ hình,
mơ tả các chức năng và sự tương tác giữa các module chính. Các chức năng phía máy
khách và máy chủ, vẽ hình, cách thức phát triển các module và sự tương tác giữa các
module. Mô tả cơ sở dữ liệu (CSDL) theo mơ hình thực thể liên kết.
Chương 4: Cài đặt và kiểm thử ứng dụng: Cách thức cài đặt hệ thống, demo
một số hình ảnh của ứng dụng và kết quả kiểm thử một số chức năng.

GVHD: Nguyễn Văn Lợi

Trang 9

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng


Chương 1: GIỚI THIỆU BÀI TOÁN
1.1 Giới thiệu về bài toán
Hiện nay, vấn để kiểm soát anh ninh đang là một trong những vấn đề rất được
quan tâm. Bài tốn nhận dạng vì vậy được quan tâm rất nhiều. Một trong nhiều ứng
dụng cụ thể liên quan tới xử lý thơng tin qua hình ảnh là nhận diện khn mặt khách
hàng thông qua camera. Việc phát hiện và truy xuất được dữ liệu của các khách hàng
một cách tự động giúp giảm thiểu thời gian thống kê, tính tốn của con người. Hệ
thống nhận diện khuôn mặt là một hệ thống có khả năng phân tích hình ảnh, phát hiện
khách hàng và trích xuất thơng tin lịch sử mua hàng của khách hàng một cách nhanh
chóng.
Chương này của đồ án sẽ giới thiệu bài tốn nhận diện khn mặt, lên ý tưởng
thực hiện và nêu ra ý nghĩa thực tiễn của bài tốn. Đồ án thực hiện tìm hiểu và xây
dựng hệ thống nhận diện khuôn mặt dựa trên thư viện mã nguồn mở OpenCV 1. Một số
yếu tốt ảnh hưởng đến kết quả nhận dạng đó là:
-

Ánh sáng: Ảnh kỹ thuật số biểu diễn cường độ sáng của đối tượng, do đó khi ánh

sáng thay đổi, thơng tin về đối tượng sẽ bị ảnh hưởng [15].
Cự ly của đối tượng so với camera: khoảng cách đối tượng so với camera sẽ
xác định số pixel ảnh quy định nên khuôn mặt [15].
Cảm xúc biểu cảm trên khuôn mặt: các nét biểu cảm cảm xúc trên khuôn mặt
gây ra nhiễu, việc loại nhiễu này vẫn chưa có phương pháp hiệu quả [15].
Tư thế đứng của đối tượng (nghiêng, xoay,…): tư thế của đối tượng sẽ xác
định thông tin của đối tượng đó. Việc tư thế thay đổi quá lớn sẽ làm thay phần lớn
thông tin về đối tượng, dẫn đến kết quả nhận dạng sai [15].
Trang phục của đối tượng: Kết quả nhận dạng có thể bị ảnh hưởng lớn nếu như
đối tượng có các trang phục khác biệt so với mẫu như đeo kính, đội mũ,… [15].

1


GVHD: Nguyễn Văn Lợi

Trang 10

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

Hình 1. 1: Nhận diện khn mặt con người sử dụng OpenCV khi nhìn thẳng

Hình 1. 2: Nhận diện khuôn mặt con người sử dụng OpenCV khi theo các hướng khác
nhau
Bài toán đặt ra như sau:
Tự động xác nhận những khách hàng đã đến cửa hàng dựa trên sự huấn lun
dữ liệu hình ảnh đã có sẵn(training) dựa trên thư viện OpenCV và hệ thống có thể tìm
kiếm thơng tin, dữ liệu khách hàng. Từ đó cửa hàng sẽ phân công các nhân viên liên
quan đến để hỗ trợ khách hàng một cách nhanh chóng và chính xác. Hệ thống có thể

GVHD: Nguyễn Văn Lợi

Trang 11

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5


Ứng dụng chăm sóc khách hàng

hoạt động với số lượng lớn khách hàng từ 10 người trở lên đến cùng lúc, độ chính xác
tương đối cao và an toàn.
Yêu cầu của ảnh đầu vào:
-

Video hình ảnh khách hàng vào cửa hàng được lấy từ Camera kỹ thuật số, có

chứa hoặc khơng chứa đối tượng, được truyền về PC để lưu trữ, xử lý và phân tích.
u cầu đối với video hình ảnh:
 Nền khơng đổi, ánh sáng tương đối ổn định, camera được đặt cố định.
 Người cần nhận dạng đứng cách camera không quá xa (~1m), tư thế tương


đối thẳng và ngay ngắn.
Người cần nhận dạng khơng nên để tóc phủ mắt, khơng đeo kính (Yêu cầu
này được đặt ra khi hệ thống sử dụng phương pháp tìm mắt để định vị
khn mặt).

u cầu đầu ra:
-

Nếu ảnh không chứa đối tượng, hoặc là người chưa có trong cơ sở dữ liệu

(CSDL) (tương ứng với hệ số phần trăm chính xác) thì kết quả sẽ trả ra là không nhận
ra được người dùng.
Nếu ảnh chứa đối tượng và người đó có trong cơ sở dữ liệu, hệ thống đưa ra màn
hình hình ảnh và thông tin, dữ liệu mua sắm của người dùng.

Thời gian thực hiện:
Hệ thống này đang được dự kiến triển khai với các hệ thống cảnh báo tại các cửa
ra vào, trong đó khách hàng ra vào sẽ được chụp ảnh tại các cửa và so sánh với các ảnh
đã có trong cơ sở dữ liệu để đưa ra các cảnh báo cần thiết. Với yêu cầu này, khi lượng
người ra vào khơng lớn thì ta có thể cho phép q trình thu thập và nhận dạng diện ra
trong khoảng thời gian tối đa <=3s. Và trong hướng phát triển của đồ án, chúng tôi sẽ
nâng cao tốc độ xử lý và xử lý các thông báo, dữ liệu cho khách hàng một cách cụ thể
và chi tiết nhất.

1.2 Vai trò và ý nghĩa bài tốn
Hệ thống nhận diện khn mặt khách hàng có nhiều đóng góp quan trong việc
giải quyết các bài toán về quản lý nhân viên, khách hàng và hàng hóa trong cửa hàng.
GVHD: Nguyễn Văn Lợi

Trang 12

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

Đồng thời, nếu kết hợp được với hệ thống nhận dạng vân tay thì có thể xây dựng thành
các hệ thống có ứng dụng thực tiễn trong đời sống con người như: Hệ thống xác nhận
danh tính tại các ngân hàng, hệ thống điểm danh tại các công ty… Các hệ thống như
thế đã và đang được phát triển, ứng dụng ngày càng phổ biến ở Việt Nam và trên thế
giới.
Việc xây dựng một hệ thống nhận khuôn mặt với độ chính xác cao mang lại
những ý nghĩa sâu sắc. Có thể kể đến là:

-

Nhận dạng người A có phải là tội phạm truy nã hay không? Giúp cơ quan an ninh

quản lý tốt con người. Công việc nhận dạng có thể ở trong mơi trường bình thường
cũng như trong bóng tối (sử dụng camera hồng ngoại) [10].
Hệ thống quan sát, theo dõi và bảo vệ. Các hệ thống camera sẽ xác định đâu là
con người và theo dõi con người đó xem họ có vi phạm gì khơng, ví dụ xâm phạm khu
vực khơng được vào [11] ….
Lưu trữ (rút tiền ATM, để biết ai rút tiền vào thời điểm đó), hiện nay có tình trạng
những người bị người khác lấy mất thẻ ATM hay mất mã số PIN và những người ăn
cắp này đi rút tiền, hoặc những người chủ thẻ đi rút tiền nhưng lại báo cho ngân hàng
là mất thẻ và mất tiền. Các ngân hàng có nhu cầu khi có giao dịch tiền sẽ kiểm tra hay
lưu trữ khuôn mặt người rút tiền để sau đó đối chứng và xử lý [12].
1.3 Tìm hiểu một số hệ thống tương tự
Phần này của đồ án sẽ đi tìm hiểu hệ thống nhận dạng khn mặt để điểm danh,
chấm công nhân viên tại các trung tâm, phịng ban của cơng ty. Hệ thống này đã được
triển khai và ứng dụng trong thực tế.
Đầu tiên, đồ án sẽ đi tìm hiểu giải pháp cơng nghệ nhận diện nhân viên, chấm cơng tại
các phịng ban… gọi là Workforce Attendance do tập đoàn FPT nghiên cứu và triển
khai [16]. Đây là một giải pháp hoàn hảo cho các doanh nghiệp muốn quản lý và giám
sát các nhân viên, thời gian nghỉ, thời gian đi làm.
Nguyên tắc hoạt động
Xác nhận là con người:



Camera hỗ trợ chụp hình và ghi hình các góc cạnh của nhân viên.
Phần mềm Workforce Attendance sẽ giúp đào tạo lại dữ liệu nhân viên


GVHD: Nguyễn Văn Lợi

Trang 13

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

Xác nhận danh tính nhân viên:



Camera hỗ trợ chụp hình và ghi hình lại quá trình xác nhận thời gian đi làm.
Phần mềm Workforce Attendance giúp đếm chính xác thời gian đi làm và xác

nhận đó là nhân viên nào.
Mơ tả hệ thống

Hình 1. 3: Mơ tả hệ thống Workforce Attendance
Chức năng chính
-

Đếm chính xác số lượng nhân viên ra vào.
Quản lý hệ thống Camera từ xa, quản lý tập trung không giới hạn số lượng

camera.
Báo cáo tổng hợp điểm danh nhân viên vào/ra theo thời gian ngày/ tháng/ năm.

Quản lý thời gian vào/ra của từng nhân viên.
Chụp hình, quay clip tại thời điểm các nhân viên vào/ra để làm bằng chứng.
Ưu điểm của hệ thống
-

Giải pháp Đếm nhân viên hồn tồn tự động.
Chụp hình camera tự động.
Ghi hình và xem lại theo từng sự kiện.

GVHD: Nguyễn Văn Lợi

Trang 14

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

-

Ứng dụng chăm sóc khách hàng

Q trình nhận diện khn mặt được thực hiện trên máy chủ của công ty, và phần

mềm vẫn hỗ trợ hoạt động offline khi có sự cố về mạng. Dữ liệu luôn được đồng bộ
tập trung về máy chủ để lưu trữ và backup [15].
Trong khuôn khổ thời gian cho phép, dựa trên những tìm hiểu về các hệ thống đã
có sẵn trước đó, đồ án đã xây dựng một hệ thống nhận diện khuôn mặt khách hàng. Hệ
thống này ở mức cơ bản và còn hạn chế về tốc độ xử lý và độ chính xác ảnh trong
nhận diện. Trong phần tiếp theo, nội dung đồ án sẽ tóm tắt ý tưởng xây dựng hệ thống

này.
Các hệ thống trên đây đều có khả năng nhận diện khn mặt, nhưng ở môi
trường ánh sáng và huấn luyện (training) ảnh không quá nhiều. Ảnh được dùng trong
hệ thống Workforce Attendance cũng là ảnh màu, thế nên sẽ xử lý kém hơn trong
trường hợp thiếu ánh sáng (Ảnh kỹ thuật số biểu diễn cường độ sáng của đối tượng, do
đó khi ánh sáng thay đổi, thông tin về đối tượng sẽ bị ảnh hưởng).
Đề tài nghiên cứu một hướng tiếp cận khác trong nhận diện khuôn mặt người:
nhận diện và thống kê khách hàng dựa trên kỹ thuật LBP(Local Binary Patterns) [19].
Kỹ thuật này sẽ chụp ảnh khách hàng lại, và chuyển về dạng ảnh trắng đen, sau đó sẽ
tích hợp và chuyển thành các đoạn mã dựa trên khuôn mặt khách hàng. Chính vì thế,
dù chụp trong điều kiện thiếu sáng, hệ thống vẫn có thể nhận diện khách hàng một
cách chính xác hơn.
Vì thời gian có hạn, nên hệ thống còn nhiều hạn chế, cụ thể là chưa làm được
ứng dụng trên mobile để có thể truyền thơng tin đến nhân viên một cách nhanh nhất,
giao diện còn chưa được tối ưu, chưa tự gửi email cảm ơn khách hàng sau mỗi lần đến
mua sắp tại cửa hàng.
Tóm tắt:
Trong chương 1 này, chúng tôi đã giới thiệu sơ qua về tổng quan hệ thống, vai
trò, ý nghĩa đến thực tế, phân tích ưu, nhược điểm của một số hệ thống tương tự, và ý
tưởng sẽ giải quyết trong đề tài.
Trong chương tới, chúng tôi sẽ giới thiệu tổng quan về OpenCV, về q trình
nhận diện khn mặt trong OpenCV như thế nào, và về ưu nhược điểm của OpenCV.

GVHD: Nguyễn Văn Lợi

Trang 15

SVTH: N.G.Thuần vs N.Đ.Huy



Báo cáo đồ án cơ sở 5

GVHD: Nguyễn Văn Lợi

Ứng dụng chăm sóc khách hàng

Trang 16

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

CHƯƠNG 2. NHẬN DIỆN KHUÔN MẶT TRONG OPENCV
Trong chương này, chúng tôi sẽ giới thiệu tổng quan về OpenCV, các quy trình
nhận diện gương mặt có sử dụng OpenCV và một số thuật toán được áp dụng vào
trong việc nhận diện khuôn mặt.
2.1 Giới thiệu về OpenCV
Thị giác máy tính (Computer Vision) là một lĩnh vực bao gồm các phương pháp
thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh và, nói chung là
dữ liệu đa chiều từ thế giới thực để cho ra các thơng tin số hoặc biểu tượng, ví dụ trong
các dạng quyết định. Việc phát triển lĩnh vực này có bối cảnh từ việc sao chép các khả
năng thị giác con người bởi sự nhận diện và hiểu biết một hình ảnh mang tính điện tử.
Sự nhận diện hình ảnh có thể xem là việc giải quyết vấn đề của các biểu tượng thơng
tin từ dữ liệu hình ảnh qua cách dùng các mơ hình được xây dựng với sự giúp đỡ của
các ngành lý thuyết học, thống kê, vật lý và hình học.
Thị giác máy tính cũng được mô tả là sự tổng thể của một dải rộng các q trình
tự động và tích hợp và các thể hiện cho các nhận thức thị giác. Nếu như bằng cặp mắt

của mình, con người có thể thu nhận hình ảnh từ môi trường xung quanh, biết được
màu sắc của vật, hình dáng của vật và vơ số thơng tin khác để có những phản ứng,
hành động trong mơi trường sống thì thị giác máy tính cũng vậy, chỉ có điều cặp mắt
của máy tính giờ đây được thay bằng những thiết bị điện tử khác như camera, sensor
hồng ngoại chẳng hạn... Bằng hệ thống cảm biến này, máy sẽ thu thập thế giới đa chiều
và lưu trữ những gì thu tập được dưới dạng ảnh số. Những ảnh này sau đó được xử lý,
phân tích và trích chọn ra những thơng tin cần thiết giúp máy hiểu được nó đang nhìn
thấy gì, cần phải làm gì.
OpenCV (OpenSource Computer Vision) là một thư viện mã nguồn mở. Dự án
về OpenCV được khởi động từ những năm 1999, đến năm 2000 nó được giới thiệu
trong một hội nghị của IEEE về các vấn đề trong thị giác máy và nhận dạng, tuy nhiên
bản OpenCV 1.0 mãi tới tận năm 2006 mới chính thức được cơng bố và năm 2008 bản
1.1 pre-release) mới được ra đời. OpenCV có khả năng nhúng vào trong các chương
trình có khả năng nhận diện hình ảnh của máy tính .Nó bao gồm khả năng tiên tiến
như phát hiện khuôn mặt, theo dõi khuôn mặt, nhận diện khn mặt….. Ngồi ra, nó
cung cấp rất nhiều các thuật tốn xử lý ảnh thơng qua các hàm API. OpenCV là sản

GVHD: Nguyễn Văn Lợi

Trang 17

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

phẩm đã được cấp phép BSD, chính vì thế nên OpenCV giúp các doanh nghiệp có dễ
dàng sử dụng và sửa đổi mã. OpenCV được thiết kế cho hiệu quả tính tốn và tập trung

mạnh mẽ vào các ứng dụng thời gian thực(real-time). OpenCV được phát triển nhờ
vào tính năng xử lý nhiều lõi của hệ thống. Thư viện OpenCV cung cấp cho người
dùng các cấu trúc dữ liệu, đối tượng và hàm bằng cách khai báo nguyên mẫu
(prototype) của chúng trong các tập tin thư viện C/C++ và định nghĩa chi tiết trong các
tập tin mã nguồn [20].

Hình 2. 1: Kiến trúc và sự phát triển của OpenCV
Tháng 10 năm 2009, bản OpenCV thế hệ thứ hai ra đời thường gọi là phiên bản
2.x), phiên bản này có giao diện của C++ (khác với phiên bản rước có giao diện của C)
và có khá nhiều điểm khác biệt so với phiện bản thứ nhất. Thư viện OpenCV ban đầu
được sự hỗ trợ từ Intel, sau đó được hỗ trợ bở Willow Garage , một phịng thí nghiệm
chun nghiên cứu về công nghệ robot. Cho đến nay, OpenCV vẫn là thư viện mở,
được phát triển bởi nguồn quỹ không lợi nhuận (none -profit foundation) và được sự
hư ởng ứng rất lớn của cộng đồng [20]. Được viết bằng tối ưu hóa C/C++, thư viện có
thể tận dụng lợi thế của xử lý đa lõi. Hiện nay, OpenCV được sử dụng trên khắp thế
giới với cộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu
lần. OpenCV hỗ trợ đa nền tảng. Nó hỗ trợ cả Windows và Linux, và gần đây hơn là
MacOSX. Phạm vi sử dụng mở rộng từ nghệ thuật tương tác, cho đến lĩnh vực khai
thác mỏ, bản đồ trên web hoặc công nghệ robot.

GVHD: Nguyễn Văn Lợi

Trang 18

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng


OpenCV bao gồm nhiều module khác nhau, mỗi module có các chức năng riêng
biệt và bổ sung cho nhau, sau đây là một số module chính hay được sử dụng [21]:
Core: cung cấp cho người dùng cấu trúc dữ liệu cơ sở và các tính năng, trong khi
thành phần "Imgproc" có tính năng xử lý hình ảnh, bao gồm lọc ảnh (cả tuyến tính và
phi tuyến tính), cũng như các tuỳ chọn chỉnh sửa ảnh khác (thay đổi kích thước, biến
dạng...) và chuyển đổi không gian màu.
Highgui: Đây là một module cho phép tương tác với người dùng trên UI (User
Interface) như hiển thị hình ảnh, video capturing.
Calib3d: bao gồm nhiều thuật tốn hình học đa chiều (multiple-view), cung cấp
một số tính năng chẳng hạn như hiệu chỉnh camera hoặc xây dựng lại đồ hoạ 3D.
Features2d: Module tìm các đặc trưng (feature) của hình ảnh. Trong module có
kế thừa các thuật tốn rút trích đặc trưng như PCA…
Video: Module phân tích video gồm ước lượng chuyển động, theo dõi đối tượng,
phương pháp tách cảnh nền , và các thuật toán theo dõi đối tượng (object tracking).
Objdetect: Module cho việc phát hiện các đối tượng như khuôn mặt, đôi mắt,
cốc, người, xe hơi, … trong hình ảnh.
GPU: Tăng tốc độ CUDA (Compute Unified Device Architecture - Kiến trúc
thiết bị tính tốn hợp nhất).
Imgproc: Module các chức năng xử lý hình ảnh.

Hình 2. 2: Một số module trong OpenCV

2.2 Cơng nghệ và ngôn ngữ sử dụng
2.2.1. Python
Python là một ngôn ngữ lập trình hướng đối tượng rất thơng dụng dùng để viết
các tiện ích hệ thống và các đoạn mã trên Internet. Nó cũng được sử dụng như ngơn

GVHD: Nguyễn Văn Lợi


Trang 19

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

ngữ kết dính đóng vai trị tích hợp C và C++. Được tạo ra bởi Guido van Rossum tại
Amsterdam năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ
nhớ tự động. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận
Python Software Foundation quản lý. Phiên bản mới nhất của Python hiện tại (thời
điểm viết bài) là bản 3.4.x.
Python là ngơn ngữ có hình thức khá đơn giản và rõ ràng, do đó tạo nên sự dễ
dàng tiếp cận cho những lập trình viên mới bắt đầu. Ban đầu, Python được phát triển
để chạy trên nền Unix. Nhưng rồi theo thời gian, nó đã phát triển sang mọi hệ điều
hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc
họ Unix.
Ưu điểm:
-

Đơn giản: Cú pháp đơn giản giúp cho người lập trình dễ dàng đọc và tìm hiểu.

-

Tốc độ: Python có tốc độ xử lý nhanh hơn so với ngôn ngữ PHP.

-


Tương tác: Chế độ tương tác cho phép người lập trình thử nghiệm tương

tác sửa lỗi của các đoạn mã.
-

Chất lượng: Thư viện có tiêu chuẩn cao, Python có khối cơ sở dữ liệu khá lớn

nhằm cung cấp giao diện cho tất cả các CSDL thương mại lớn.
-

Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng lớn

hiện nay.
-

Mở rộng: Với tính năng này, Python cho phép người lập trình có thể thêm hoặc

tùy chỉnh các cơng cụ nhằm tối đa hiệu quả có thể đạt được trong công việc.
-

GUI Programming: Giúp cho việc thực hiện ảnh minh hoạ di động một cách tự

nhiên và sống động.
Nhược điểm:
Tất cả chúng ta đều biết khơng có một sản phẩm nào là hồn hảo tuyệt đối 100%,
nó ln ln tồn tại những nhược điểm và Python cũng không ngoại lệ. Mặc dù là một
ngơn ngữ được giới lập trình u thích nhưng nó vẫn có những mặt hạn chế nhất định
như sau:

GVHD: Nguyễn Văn Lợi


Trang 20

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

-

Ứng dụng chăm sóc khách hàng

Python khơng có các thuộc tính như: protected, private hay public, khơng có

vịng lặp do...while và switch...case.
-

Python mặc dù nhanh hơn so với PHP, nhưng lại không nhanh hơn so với C++,

Java.
2.2.2 PyQt5
Một bộ công cụ GUI cho Python dung để phát triển GUI cho các script Python.
2.2.3 Pandas
Pandas là một trong những thư viện được dùng rộng rãi cùng Python. Pandas
cung cấp nhiều đối tượng và phương thức cho các cấu trúc dữ liệu. Pandas là thư viện
không thể thiếu cho chúng ta trong suốt quá trình xử lý dữ liệu (data mining): từ
chuyển đổi hay ánh xạ dữ liệu thô sang dạng dữ liệu mà chúng ta mong muốn, nhằm
có thể phân tích dễ dàng hơn.
2.2.4 PIL
PIL thiết lập chất lượng được sử dụng để xây dựng sự lượng tử hóa table. Trong

libjpeg chất lượng số "quy mô" các giá trị table mẫu (từ đặc điểm kỹ thuật JPEG phần
K.1). Trong librairies khác đó là khác nhau bàn gán cho phẩm chất khác nhau (ví dụ:
Photoshop, các máy ảnh kỹ thuật số).
Vì vậy, trong những người khác điều kiện, chất lượng tương đương với bảng sự
lượng tử hóa, do đó, nó là phức tạp hơn sau đó chỉ cần một số. Nếu bạn muốn lưu thay
đổi hình ảnh của bạn với cùng một "chất lượng", bạn chỉ cần sử dụng cùng một bảng
sự lượng tử hóa. May mắn thay, sự lượng tử hóa table là embeded trong mỗi JPEG.
Thật khơng may, nó khơng phải là khơng thể chỉ định một table sự lượng tử hóa khi
tiết kiệm trong PIL. cjpeg, một tiện ích dịng command đi kèm với libjpeg, có thể làm
điều đó.
2.2.5 NumPy
Numpy (viết tắt của Nummerical Python) là một thư viện không thể thiếu khi
chúng ta xây dựng các ứng dụng máy học trên Python. Numpy là một package chủ yếu
cho việc tính tốn khoa học trên Python. Vì Numpy hỗ trợ mạnh mẽ việc tính tốn với

GVHD: Nguyễn Văn Lợi

Trang 21

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

matrix, vector và các các hàm đại số tuyến tính cơ bản nên nó được sử dụng nhiều trong
việc implement các thuật toán Machine Learning.
Trong numpy, chiều của mảng gọi là axes; trong khi số chiều gọi là rank. Thư
viện chính trong numpy là các đối tượng mảng (array). Mảng (array) tương tự như list

ở Python với điều kiện là mọi phần tử trong array phải có cùng kiểu dữ liệu. Array có
thể thao tác với số lượng lớn dữ liệu số, thường là float hay int, và hiệu quả hơn trên
danh sách rất nhiều. Lớp thường dùng trong numpy là ndarray (n-dimentional array).
2.2.6 SQL Server
SQL Server là một hệ quản trị CSDL quan hệ(Relational Database Management
System) sử dụng câu lệnh SQL(Transact-SQL) để trao đổi dữ liệu giữa máy client và
máy cài SQL Server. Một RDBMS bao gồm các CSDL(databases), database engine và
các ứng dụng dùng để quản lý dữ liệu và các bộ phân khác trong RDBMS[15].
SQL Server được tối ưu để có thể chạy trên mơi trường CSDL rất lớn lên đến
Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn người dùng. SQL Server có thể
kết hợp ăn ý với các server khác như Microsoft Internet Information Server(IIS), ECommerce Server, Proxy Server.
Lý do chọn SQL Server cho hệ thống: do cấu trúc dữ liệu và cơng thức tính tốn
phức tạp, SQL Server cùng ngơn ngữ SQL có thể đáp ứng được yêu cầu về hiệu suất
tính tốn. Ngồi ra SQL Server cung cấp nhiều giải pháp tạo và hiển thị báo cáo từ
những dữ liệu đã được tính tốn, điển hình là SQL Server Reporting Service (SSRS) –
công cụ chuyên biệt cho việc tạo báo cáo dữ liệu. Bên cạnh đó SQL Server phù hợp
cho việc quản trị dữ liệu cho doanh nghiệp cỡ vừa và nhỏ.
2.3 Thuật tốn dùng trong nhận diện khn mặt
Kể từ phiên bản OpenCV 2.4, hiện nay OpenCV đã được hỗ trợ với lớp
FaceRecognizer để có thể nhận diện khn mặt, vì vậy chúng ta có thể bắt đầu sử dụng
các thuật tốn để có thể nhận diện khn mặt. Các thí nghiệm trong [4] đã chỉ ra rằng
ngay cả trẻ từ một đến ba ngày tuổi cũng có thể phân biệt được các gương mặt mà
chúng đã tiếp xúc. Vì vậy, làm thế nào để có thể huấn luyện được cho một máy tính
làm những điều như vậy? Các tính năng bên trong (mắt, mũi, miệng) hoặc các tính
năng bên ngồi (đầu, chân tóc) có được sử dụng để nhận dạng khuôn mặt thành công
không? Làm cách nào để phân tích hình ảnh và bộ não mã hóa nó như thế nào? Một số
GVHD: Nguyễn Văn Lợi

Trang 22


SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

nghiên cứu của David Hubel và Torsten Wiesel [2] đã chỉ rằng bộ não của chúng ta có
các tế bào thần kinh chuyên biệt có thể phân biệt các đặc điểm cụ thể của một địa
điểm, chẳng hạn như đường kẻ, cạnh, góc hoặc chuyển động. Vì chúng ta không thấy
thế giới như những mảnh phân tán, vỏ não thị giác của chúng ta bằng cách nào đó phải
kết hợp các nguồn thông tin khác nhau thành các mẫu hữu ích. Nhận diện khn mặt
tự động là việc trích xuất các đặc điểm cụ thể từ một hình ảnh, đưa chúng vào một đại
diện hữu ích và thực hiện một số loại phân loại trên chúng.
Nhận dạng khuôn mặt dựa trên các đặc điểm hình học của khn mặt có lẽ là cách
tiếp cận trực quan nhất để nhận diện khuôn mặt. Một trong những hệ thống nhận dạng
khuôn mặt tự động đầu tiên được mô tả trong [5]: các điểm đánh dấu (vị trí của mắt,
tai, mũi, ...) được sử dụng để xây dựng một vector đặc trưng (khoảng cách giữa các
điểm, góc giữa chúng, ...). Q trình nhận diện khn mặt được thực hiện bằng cách
tính tốn khoảng cách euclide giữa các vector đặc trưng của một đầu dị và hình ảnh
tham chiếu. Cách làm như vậy sẽ ít ảnh hưởng bởi sự thay đổi ánh sáng, nhưng có một
nhược điểm lớn: việc tìm và đánh dấu chính xác các điểm đánh dấu là khá phức tạp,
ngay cả với các thuật toán hiện đại ngày nay. Một số cơng trình mới nhất về nhận diện
khn mặt hình học được thực hiện trong [6].
Hiện nay, một số thuật tốn nhận diện khn mặt đã được hỗ trợ và hồn thiện có
thể kể đến như:
- Eigenfaces.
- Fisherfaces.
- Local Binary Patterns Histograms.
2.3.1 EigenFaces Face Recognizer

Thuật tốn này xem xét khơng phải tất cả các bộ phận của mặt đều quan trọng và
hữu ích như nhau. Khi bạn nhìn vào một trong những người cần nhận diện, bạn nhận
ra anh ta bằng các đặc điểm khác biệt như mắt, mũi, má, trán và cách chúng thay đổi
đối với những người khác nhau. Vì vậy, bạn nên tập trung vào các sự thay đổi của
khn mặt. Ví dụ, từ mắt đến mũi có một sự thay đổi đáng kể và giống như trường hợp
từ mũi đến miệng. Khi bạn nhìn vào nhiều khn mặt bạn so sánh chúng bằng cách
nhìn vào các phần của khn mặt bởi vì những phần này là những thành phần hữu ích
nhất và quan trọng nhất của khuôn mặt. Sự thay đổi sẽ giúp bạn phân biệt khuôn mặt

GVHD: Nguyễn Văn Lợi

Trang 23

SVTH: N.G.Thuần vs N.Đ.Huy


Báo cáo đồ án cơ sở 5

Ứng dụng chăm sóc khách hàng

này với mặt khác. Đây chính là cách mà thuật tốn EigenFaces Face Recognizer sẽ
hoạt động đối với cơng việc nhận dạng.
Nhận diện khuôn mặt của EigenFaces Face Recognizer xác định các hình ảnh
được đào tạo của những người đã có cơ sở dữ liệu và cố gắng trích xuất các thành
phần quan trọng và hữu ích (các thành phần bắt kịp sự khác biệt / thay đổi tối đa) và
loại bỏ phần còn lại của các thành phần. Bằng cách này nó khơng chỉ trích ra các thành
phần quan trọng từ dữ liệu đào tạo mà còn tiết kiệm bộ nhớ bằng cách loại bỏ các
thành phần ít quan trọng hơn. Những thành phần quan trọng sẽ được trích xuất được
gọi là các thành phần chính. Dưới đây là một hình ảnh hiển thị các thành phần chính
trích ra từ một danh sách các khn mặt.


Hình 2. 3: Thành phần chính của khn mặt(Principal Components)
Mơ tả thuật tốn [17]:
Gọi

là một vector ngẫu nhiên với các phần tử

.

1. Tính trung bình :

2. Tính tốn ma trận hiệp phương sai S:

3. Tính tốn các giá trị riêng

GVHD: Nguyễn Văn Lợi

và các giá trị riêng

Trang 24

của :

SVTH: N.G.Thuần vs N.Đ.Huy


×