Tải bản đầy đủ (.pdf) (95 trang)

XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ MINI KẾT HỢP NHẬN DIỆN - Full 10 điểm

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 (3.65 MB, 95 trang )

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM

KHOA: TOÁN – TIN
----------

LÊ TRẦN KIM THẢO
XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ

MINI KẾT HỢP NHẬN DIỆN

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 05 năm 2022

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM

KHOA: TOÁN – TIN
----------

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Tên đề tài:
XÂY DỰNG PHẦN MỀM QUẢN LÝ SIÊU THỊ MINI KẾT HỢP
NHẬN DIỆN
Sinh viên thực hiện
LÊ TRẦN KIM THẢO
MSSV: 2118100132
CHUYÊN NGÀNH:CÔNG NGHỆ THÔNG TIN
KHÓA 2018 – 2022



Cán bộ hướng dẫn
ThS. Trần Thị Diệu Hiền

MSCB: ………

Quảng Nam, tháng 05 năm 2022

MỤC LỤC

1. Lý do chọn đề tài ........................................................................................................................ 1
2. Mục tiêu của đề tài ..................................................................................................................... 1
3. Đối tượng và phạm vi nghiên cứu ............................................................................................... 2
4. Phương pháp nghiên cứu ............................................................................................................ 2
5. Lịch sử nghiên cứu ..................................................................................................................... 2
6. Đóng góp của đề tài.................................................................................................................... 2
7. Cấu trúc đề tài ............................................................................................................................ 2
PHẦN 2. NỘI DUNG NGHIÊN CỨU ............................................................................................... 4
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ................................................................................................... 4
1.1. Gíơi thiệu ngôn ngữ lập trình C# và hệ quản trị cơ s̉ơ dữ liệu SQL Server................................... 4

1.1.1. Ngôn ngữ lập trình C# .................................................................................................... 4
1.1.1.1. Khái niệm ...................................................................................................................... 4
1.1.1.2. Mục tiêu c̉ua việc phát triển C# ...................................................................................... 4
1.1.1.3. Đặc trưng của ngơn ngữ lập trình C# .............................................................................. 5
1.1.1.4. Ưu điểm của ngơn ngữ lập trình C# ................................................................................ 5
1.1.1.5. Ứng dụng của ngơn ngữ lập trình C# .............................................................................. 6
1.1.1.6. Quá trình dịch của C#..................................................................................................... 7

1.1.2. Hệ quản trị cơ s̉ơ dữ liệu SQL Server .............................................................................. 8

1.1.2.1. Khái niệm ...................................................................................................................... 8
1.1.2.2. Các tính năng của sqlserver ............................................................................................ 8

1.2. Tổng quan về nhận diện khuôn mặt............................................................................................. 9
1.2.1. Giới thiệu về nhận diện khuôn mặt .................................................................................. 9
1.2.2. Các bước của q trình nhận diện khn mặt .................................................................10
1.2.3. Những khó khăn trong bài tốn nhận diện khuôn mặt .....................................................10
1.2.4. Một số lĩnh vực ứng dụng ..............................................................................................11
1.2.5. Một số thư viện hỗ trợ nhận diện khuôn mặt trong ngôn ngữ lập trình C# .......................12

1.3. Mã hóa thơng tin .......................................................................................................................14
1.2.1. Giới thiệu về mã hóa thơng tin .......................................................................................14
1.2.2. Mã hóa bí mật................................................................................................................15

CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ................................................................16
2.1. Khảo sát hệ thống ......................................................................................................................16

2.1.1. Mô tả hiện trạng của hệ thống hiện tại............................................................................16
2.1.1.1. Giới thiệu hệ thống hiện tại ...........................................................................................16
2.1.1.2. Ưu điểm và khuyết điểm ...............................................................................................16

2.1.2. Hướng phát triển của hệ thống mới ................................................................................17
2.1.3. Lập kế hoạch khảo sát....................................................................................................17

2.1.3.1. Khảo sát sơ bộ...............................................................................................................17
2.1.3.2. Khảo sát chi tiết ............................................................................................................18
2.1.3.3. Lập báo cáo kết quả thu được ........................................................................................22
2.1.4. Mơ tả bài tốn................................................................................................................23
2.1.5. Yêu cầu chức năng.........................................................................................................24
2.1.6. Mơ hình Ri ....................................................................................................................25

2.1.7. Đặc tính từng người dùng ..............................................................................................28
2.1.8. Yêu cầu phi chức năng...................................................................................................28
2.2. Phân tích hệ thống .....................................................................................................................28
2.2.1. Phân tích chức năng .......................................................................................................28
2.2.1.1. Actor.............................................................................................................................28
2.2.1.2. Usecase.........................................................................................................................30
2.2.1.3. Object và class ..............................................................................................................35
2.2.1.4. Sơ đồ tuần tự.................................................................................................................38
2.2.1.5. Sơ đồ cộng tác...............................................................................................................41
2.2.1.6. Sơ đồ trạng thái .............................................................................................................43
2.2.1.7. Sơ đồ hoạt động ............................................................................................................47
2.2.2. Phân tích dữ liệu ............................................................................................................50

2.2.2.1. Sơ đồ E – R...................................................................................................................50
2.2.2.2. Sơ đồ dữ liệu quan hệ ....................................................................................................51
CHƯƠNG 3: THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG .......................................................................52
3.1. Thiết kế hệ thống.......................................................................................................................52
3.1.1. Thiết kế cơ sở dữ liệu.....................................................................................................52
3.1.2. Thiết kế chức năng.........................................................................................................60
3.1.3. Thiết kế giao diện ..........................................................................................................62
3.2. Cài đặt hệ thống ........................................................................................................................64
3.2.1. Một số đoạn code quan trọng .........................................................................................64
3.2.2. Một số giao diện của phần mềm .....................................................................................67
PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ ............................................................................................85
PHẦN 4. TÀI LIỆU THAM KHẢO..................................................................................................86

DANH MỤC HÌNH ẢNH

Hình 2.1. Biểu mẫu hóa đơn nhập .....................................................................................................21
Hình 2.2. Biểu mẫu hóa đơn xuất ......................................................................................................22

Hình 2.3. Sơ đồ usecase tổng qt .....................................................................................................30
Hình 2.4. Sơ đồ class ........................................................................................................................37
Hình 2.5. Sơ đồ tuần tự usecase Đăng nhập .......................................................................................38
Hình 2.6. Sơ đồ tuần tự usecase Thêm sản phẩm ...............................................................................38
Hình 2.7. Sơ đồ tuần tự usecase Tìm kiếm kho ..................................................................................39
Hình 2.8. Sơ đồ tuần tự usecase Cập nhập thơng tin nhân viên...........................................................39
Hình 2.9. Sơ đồ tuần tự usecase Xóa nhà cung cấp ............................................................................40
Hình 2.10. Sơ đồ tuần tự usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm.........................40
Hình 2.11. Sơ đồ cộng tác usecase Đăng nhập ...................................................................................41
Hình 2.12. Sơ đồ cộng tác usecase Thêm sản phẩm ...........................................................................41
Hình 2.13. Sơ đồ cộng tác usecase Tìm kiếm kho ..............................................................................42
Hình 2.14. Sơ đồ cộng tác usecase Cập nhập thơng tin nhân viên.......................................................42
Hình 2.15. Sơ đồ cộng tác usecase Xóa nhà cung cấp ........................................................................42
Hình 2.16. Sơ đồ cộng tác usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm.......................43
Hình 2.17. Sơ đồ trạng thái class Loại hàng.......................................................................................43
Hình 2.18. Sơ đồ trạng thái class Mặt hàng........................................................................................43
Hình 2.19. Sơ đồ trạng thái class Người dùng....................................................................................44
Hình 2.20. Sơ đồ trạng thái class Nhân viên ......................................................................................44
Hình 2.21. Sơ đồ trạng thái class Lương ............................................................................................44
Hình 2.22. Sơ đồ trạng thái class Phiếu xuất ......................................................................................45
Hình 2.23. Sơ đồ trạng thái class Chi tiết phiếu xuất..........................................................................45
Hình 2.24. Sơ đồ trạng thái class Phiếu nhập .....................................................................................45
Hình 2.25. Sơ đồ trạng thái class Chi tiết phiếu nhập .........................................................................46
Hình 2.26. Sơ đồ trạng thái class Loại khách hàng.............................................................................46
Hình 2.27. Sơ đồ trạng thái class Kho................................................................................................46
Hình 2.28. Sơ đồ hoạt động usecase Đăng nhập.................................................................................47
Hình 2.29. Sơ đồ hoạt động usecase Thêm sản phẩm.........................................................................47
Hình 2.30. Sơ đồ hoạt động usecase Tìm kiếm kho............................................................................48
Hình 2.31. Sơ đồ hoạt động usecase Cập nhập thông tin nhân viên ....................................................48
Hình 2.32. Sơ đồ hoạt động usecase Xóa nhà cung cấp......................................................................49

Hình 2.33. Sơ đồ hoạt động usecase Thống kê số dư và số lượng tiêu thụ của sản phẩm ....................49
Hình 2.34. Sơ đồ E – R .....................................................................................................................50
Hình 2.35. Sơ đồ dữ liệu quan hệ ......................................................................................................51
Hình 3.1. Mối quan hệ giữa các bảng ................................................................................................59
Hình 3.2. Giao diện hộp thoại............................................................................................................62
Hình 3.3. Giao diện nhập dữ liệu dạng điền dữ liệu ...........................................................................63
Hình 3.4. Giao diện nhập dữ liệu dạng câu hỏi (đóng) .......................................................................63
Hình 3.5. Giao diện nhập dữ liệu kết hợp 2 dạng ...............................................................................63
Hình 3.6. Giao diện báo cáo ..............................................................................................................64
Hình 3.7. Code mã hóa bí mật trong C#.............................................................................................64
Hình 3.8. Code phát hiện khn mặt trong C# ...................................................................................65
Hình 3.9. Code nhận diện khn mặt trong C# ..................................................................................66
Hình 3.10. Code nhận diện khn mặt trong C# ................................................................................66
Hình 3.11. Giao diện form đăng nhập................................................................................................67
Hình 3.12. Giao diện form đăng nhập bằng khn mặt ......................................................................68
Hình 3.13. Giao diện form hệ thống quản lý sản phẩm.......................................................................69
Hình 3.14. Giao diện form hệ thống báo cáo thống kê .......................................................................70
Hình 3.15. Giao diện form hệ thống quản lý hóa đơn nhập ................................................................71
Hình 3.16. Giao diện form chi tiết hóa đơn nhập hàng .......................................................................71
Hình 3.17. Giao diện form hệ thống quản lý hóa đơn xuất .................................................................72
Hình 3.18. Giao diện form chi tiết xuất hàng .....................................................................................73
Hình 3.19. Giao diện form thêm sản phẩm ........................................................................................73

Hình 3.20. Giao diện form tạo hóa đơn nhập .....................................................................................74
Hình 3.21. Giao diện form tạo hóa đơn xuất ......................................................................................74
Hình 3.22. Giao diện form cập nhập sản phẩm ..................................................................................75
Hình 3.23. Giao diện form cập nhập hóa đơn nhập ............................................................................75
Hình 3.24. Giao diện form cập nhập hóa đơn xuất .............................................................................76
Hình 3.25. Giao diện form đổi mật khẩu............................................................................................76
Hình 3.26. Giao diện form nhập file excel .........................................................................................77

Hình 3.27. Giao diện form in hóa đơn nhập .......................................................................................77
Hình 3.28. Giao diện form in hóa đơn xuất........................................................................................77
Hình 3.29. Giao diện form thống kê lượng tiền ra vào dạng biểu đồ...................................................78
Hình 3.30. Giao diện form thống kê lượng tiền ra vào dạng bảng.......................................................78
Hình 3.31. Giao diện form thống kê số dư và số lượng tiêu thụ vào dạng biểu đồ...............................79
Hình 3.32. Giao diện form thống kê số dư và số lượng tiêu thụ vào dạng bảng ..................................79
Hình 3.33. Giao diện form thống kê lương nhân viên ........................................................................80
Hình 3.34. Giao diện form thống kê sản phẩm theo nhà cung cấp ......................................................80
Hình 3.35. Giao diện form thống kê lợi nhuận vào dạng biểu đồ........................................................81
Hình 3.36. Giao diện form thống kê lợi nhuận vào dạng bảng............................................................81
Hình 3.37. Giao diện form thống kê sản phẩm bán chạy vào dạng biểu đồ .........................................82
Hình 3.38. Giao diện form thống kê sản phẩm bán chạy vào dạng bảng .............................................82
Hình 3.39. Giao diện form thống kê hóa đơn nhập cịn nợ .................................................................83
Hình 3.40. Giao diện form thống kê hóa đơn xuất cịn nợ ..................................................................83
Hình 3.41. Giao diện form thống kê hóa đơn nhập cịn chưa đến kho.................................................84

LỜI CẢM ƠN

Trong suốt thời gian 4 năm học tập và rèn luyện tại Trường Đại học Quảng
Nam cho đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của q Thầy
Cơ và bạn bè. Với lịng biết ơn sâu sắc và chân thành nhất, em xin gửi đến q
Thầy Cơ ở Khoa Tốn Tin – Ngành Cơng nghệ thông tin đã cùng với tri thức và
tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt
thời gian học tập tại trường.

Và đặc biệt, trong năm học cuối này, em vinh dự được nằm trong top 20 sinh
viên làm khóa luận tốt nghiệp. Và đề tài của em là“Xây dựng phần mềm Quản
lý siêu thị MiNi kết hợp nhận diện”. Em xin chân thành cảm ơn Thạc sĩ Trần Thị
Diệu Hiền đã tận tâm hướng dẫn em qua từng buổi học trên lớp cũng như những
buổi nói chuyện, thảo luận về lĩnh vực sáng tạo trong nghiên cứu khoa học.


Em cũng xin bày tỏ lòng biết ơn đến ban lãnh đạo của Trường Đại học Quảng
Nam và các Khoa Phòng ban chức năng đã trực tiếp và gián tiếp giúp đỡ em trong
suốt quá trình học tập và nghiên cứu đề tài này.

Không thể không nhắc tới sự chỉ đạo của Ban lãnh đạo Công ty Cổ phần
Dịch vụ xử lý số FPT nhờ có sự giúp đỡ nhiệt tình của các anh chị ở các phòng
ban, đã tạo điều kiện thuận lợi nhất cho em trong suốt thời gian thực tập tại Công
ty.

Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh
viên, bài báo cáo này không thể tránh được những thiếu sót. Em rất mong nhận
được sự chỉ bảo, đóng góp ý kiến của các q thầy cơ để em có điều kiện bổ sung,
nâng cao ý thức của mình, phục vụ tốt hơn công tác thực tế sau này.

Em xin chân thành cảm ơn!
Sinh viên

Lê Trần Kim Thảo

PHẦN 1. MỞ ĐẦU

1. Lý do chọn đề tài

Những năm gần đây các cuộc cách mạng khoa học công nghệ đang diễn ra
một cách sơi động chưa từng thấy trên tồn thế giới, nó đã thúc đẩy lồi người
nhanh chóng bước sang một kỷ nguyên mới. Đó là một kỷ nguyên của nền văn
minh dựa trên cơ sở cơng nghiệp trí tuệ nhân tạo. Mở đầu cho cuộc cách mạng
khoa học và công nghệ thông tin hiện nay đã và đang xâm nhập vào mọi lĩnh vực
hoạt động của xã hội lồi người nó mang lại nhiều lợi ích cao cũng như những lợi

nhuận khổng lồ và cùng với nó là sự giải quyết về cơng việc ngày càng nhanh
chóng, mang lại hiệu quả kinh tế cao. Đời sống con người ngày càng phát triển,
dẫn đến nhu cầu mua sắm và buôn bán của người dân ngày càng được nâng cao.
Công việc quản lý của các chủ cửa hàng càng gặp nhiều khó khăn và phức tạp.
Việc đưa ra các ứng dụng công nghệ thông tin đã giúp giảm tải công việc quản lý
bằng thủ công của con người là điều rất cần thiết để giải quyết vấn đề trên.

Là một chủ cửa hàng hay một người quản lý, chúng ta mong chờ đó là lợi
nhuận, thương hiệu và sự phát triển hiện đại hóa lĩnh vực quản lý của cửa hàng.
Mục đích cơ bản của việc xây dựng hệ thống quản lý cửa hàng nhằm phục vụ cho
việc mua bán của cửa hàng, cung cấp những thông tin đầy đủ, chính xác, nhanh
chóng cho cửa hàng, cho khách hàng, và đáp ứng được các yêu cầu của người tiêu
dùng.

Tuy nhiên, đa phần các phần mềm quản lý chưa được kết hợp nhận diện
khung mặt để truy cấp phần mềm, chưa có phân tán dữ liệu và chưa có kết hợp
mã hóa thơng tin qua khóa bí mật. Qua nghiên cứu và quan sát nhiều cửa hàng,
siêu thị MiNi nên em đã chọn đề tài: “Xây dựng phần mềm Quản lý siêu thị MiNi
kết hợp nhận diện” dành cho các cửa hàng, siêu thị MiNi vừa và nhỏ.

2. Mục tiêu của đề tài
 Hiểu rõ về quá trình nhận diện khn mặt
 Phân tích, thiết kế và xây dựng được hệ thống quản lý Siêu Thị MiNi
 Kết hợp được nhận diện khuôn mặt vào trong phần mềm

1

3. Đối tượng và phạm vi nghiên cứu
 Phân tích hệ thống thơng tin theo hướng đối tượng
 Xây dựng phần mềm quản lý Siêu Thị MiNi có kết hợp nhận diện


4. Phương pháp nghiên cứu
 Khảo sát
 Phỏng vấn
 Phân tích hệ thống thơng tin theo hướng đối tượng

5. Lịch sử nghiên cứu

Trước đây, đã có rất nhiều đề tài nghiên cứu về vấn đề này, chẳng hạn:

 Báo cáo thực tập tốt nghiệp với đề tài Quản lý bán hàng siêu thị của Nguyễn
Đức Hồ ngành Tin Học Ứng Dụng, Viện Đại Học Mở Hà Nội

 Báo cáo phân tích thiết kế hệ thống thông tin với đề tài Quản lý bán hàng
trong siêu thị của Trần Thanh Hoa và Đậu Văn Thắng, Trường Đại Học Bách
Khoa Hà Nội

 Báo cáo mơn học phân tích và thiết kế hướng đối tượng bằng UML với đề
tài Phân tích thiết kế chương trình việc mua bán hàng ở siêu thị của nhóm 08,
Trường Đại Học Cần Thơ năm 2008 – 2009

Tuy nhiên, tất cả các đề tài đó chỉ dừng ở việc phân tích và thiết kế hệ thống
theo hướng đối tượng chưa có kết hợp nhận diện khn mặt

6. Đóng góp của đề tài

Đề tài có thể giúp cho các bạn đọc hiểu rõ hơn về nhận diện khuôn mặt và
kết hợp vào trong phần mềm quản lý và có thể ứng dụng trong thực tế.

7. Cấu trúc đề tài


PHẦN 1. MỞ ĐẦU
PHẦN 2. NỘI DUNG NGHIÊN CỨU

Chương 1: Cơ sở lý thuyết
Chương 2: Khảo sát và phân tích hệ thống
Chương 3: Thiết kế và cài đặt hệ thống

2

PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ
PHẦN 4. TÀI LIỆU THAM KHẢO
PHẦN 5. PHỤ LỤC

3

PHẦN 2. NỘI DUNG NGHIÊN CỨU
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1.Gíơi thiệu ngôn ngữ lập trình C# và hệ quản trị cơ s̉ơ dữ liệu SQL
Server
1.1.1. Ngôn ngữ lập trình C#
1.1.1.1.Kh́ai niệm

C# Là một trong những ngơn ngữ lập trình theo hướng đối tượng được phát
triển và ra mắt do Anders Hejlsberg phát triển vào năm 2001. Ngôn ngữ này được
đầu tư bởi Microsoft và còn được xem như đối thủ “nặng ký” của Java. C# có sự
kết hợp chặt chẽ cùng với .NET Framework nhằm hỗ trợ cho việc tạo ra các ứng
dụng Windows Forms hoặc WPF được trở nên dễ dàng và nhanh chóng hơn.


Cho tới hiện nay thì C# đang là một trong những ngơn ngữ được đông đảo
người dùng ưu tiên sử dụng và dần trở thành ngơn ngữ lập trình phổ biến nhất trên
thế giới.
1.1.1.2.Mục tiêu của việc ph́at triển C#

Tiêu chuẩn ECMA liệt kê các mục tiêu của việc thiết kế ngôn ngữ C#:
 Ngôn ngữ được dự định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng
đến nhiều mục đích sử dụng, và là một ngơn ngữ lập trình hướng đối tượng.
 Ngôn ngữ và việc triển khai đáp ứng các nguyên tắc của ngành kỹ thuật phần
mềm như kiểm tra chặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các
trường hợp sử dụng các biến chưa có dữ liệu, và tự động thu gom rác. Tính mạnh
mẽ, sự bền bỉ, và năng suất của việc lập trình là rất quan trọng đối với ngôn ngữ
này.
 Ngôn ngữ sẽ được sử dụng để phát triển các thành phần của phần mềm theo
hướng thích hợp cho việc triển khai trong các mơi trường phân tán.
 Khả năng di chuyển (portability) là rất quan trọng, đặc biệt là đối với những
lập trình viên đã quen với C và C++.
 Hỗ trợ quốc tế hóa (i18n).

4

 Ngôn ngữ sẽ được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai
hệ thống: hosted và nhúng, từ các phần mềm quy mơ lớn, đến các phần mềm chỉ
có các chức năng đơn giản.

 Mặc dù các ứng dụng C# có tính kinh tế đối với các u cầu về bộ nhớ và
chế độ xử lý, ngôn ngữ này không cạnh tranh trực tiếp về hiệu năng và kích thước
đối với ngơn ngữ C hoặc assembly.
1.1.1.3.Đặc trưng của ngơn ngữ lập trình C#


 Tính đơn giản: C# là một trong những loại ngôn ngữ được xây dựng dựa trên
nền tảng của C++ và Java. Nhờ vậy, mà chúng hầu như đều có cấu trúc chương
trình khá giống nhau. Mặc dù C# là ngôn ngữ “sinh sau đẻ muộn” nhưng nhờ có
nhiều cải tiến mới nên rất phù hợp với mọi đối tượng lập trình viên. Một số cải
tiến của nó đó chính là cấu trúc được rút gọn sao cho dễ nhớ và đơn giản hơn.

 C# là ngôn ngữ dễ sử dụng và có tính hiện đại cao.
 Ngơn ngữ lập trình C# được các chun gia nhận xét là loại ngơn ngữ thuần
hướng các tố tượng. Nó bao gồm các tính như: Trừu tượng, đa hình, kế thừa và
đóng gói.
 So với những loại ngơn ngữ lập trình khác thì C# sử dụng lượng từ khóa ít
hơn rất nhiều. Nhờ đặc điểm này mà các lập trình viên đều thuận tiện hơn rất nhiều
cho việc xây dựng lên các đối tượng dành riêng cho mình.
1.1.1.4.Ưu điểm của ngơn ngữ lập trình C#

C# được đánh giá là ngôn ngữ lập trình có tính linh hoạt và nhiều ưu điểm
nổi bật, cụ thể như sau:

 Quy mô của chương trình: C# thường được sử dụng để viết trên các hệ thống
vi điều khiển có kích cỡ 8bit. Ngồi ra, nó cịn được sử dụng trong các hệ thống
trên 64bit hoặc hệ thống siêu máy tính.

 C# là ngơn ngữ có hiệu suất cao, có thể chạy mượt trên mọi hệ thống giới
hạn về dung lượng. Bởi vì ngay từ những ngày đầu thì C# đã được thiết kế cho
mục đích thay thế cho ASM trong những hệ thống có bộ nhớ hạn chế.

5

 C# có khả năng thực hiện các thuật toán giúp hỗ trợ rất nhiều kiểu dữ liệu
khác nhau cũng như việc chuyển đổi sẽ trở nên dễ dàng hơn. Ngơn ngữ lập trình

C# cịn có khả năng cung cấp thư viện chuẩn với hàm có chức năng và cơng cụ
tốn học.

 C# là ngôn ngữ sở hữu cú pháp rất sát với những suy nghĩ logic, nhờ vậy mà
việc viết code sẽ được đơn giản hóa và nhanh chóng hơn.

 C# là loại ngơn ngữ lập trình rất an tồn và nó khơng cho phép việc chuyển
đổi kiểu dữ liệu để có thể giảm tránh được những vấn đề sai lệch xảy ra.

 Trong C# sẽ cho kết quả trả về thuộc các hàm đa phần đều là một object. Các
lỗi lập trình phổ biến như: gõ nhầm tên, viết sai cấu trúc… đều sẽ được hệ thống
cảnh báo luôn mà không cần phải chờ đến lúc chạy.

 C# thường được đi cùng với Visual Studio và bộ đôi này được sử dụng rất
nhiều cho việc xây dựng Winform, WPF, website bằng MVC.NET. Hiện nay, nó
ngày càng trở nên phổ biến trong việc xây dựng nền tảng cho các ứng dụng di
động.

Hiện nay, việc học C# sẽ trở nên dễ dàng hơn bởi cộng đồng C# đang rất
phát triển và rộng mở. Chính vì vậy, các nhà phát triển cũng như lập trình viên
ngơn ngữ C# có thể hỗ trợ, giúp đỡ cùng nhau phát triển kỹ năng và kinh nghiệm
về C#.

1.1.1.5.Ứng dụng của ngơn ngữ lập trình C#
 Phát triển web backend (ASP.NET MVC, ASP.NET core, Web API,Graph

API,gPRC, Blazor sevver,Uno platform, Mono)
 Phát triển web front end (Blazor WebAssembly,Uno platform)
 Phát triển desktop app (Winform, WPF, UWP,WinUI, Mono, Uno,


MAUI,Blazor desktop...)
 Phát triển game 2D, 3D đa nền tảng (Game engine:Unity, Monogame,

Godot, Stride, CryEngine, NeoAxis..)
 Phát triển thực tế ảo (VR), thực tế tăng cường(AR), thực tế hỗn hợp (MR)

(HoloLens,Unity,CryEngine, Oculus quest..)

6

 Phát triển ứng dụng đồ họa 2D,3D đa nền tảng (2D: SkiaSharp,
ImageSharp...; 3D: OpenTK, SharpDX, SharpVulkan, Vulkan.NET, Veldrid,
Silk.NET..)

 Phát triển mobile app, IOS native, Android native (Xamarin,MAUI,Uno
platform)

 Phát triển đám mây (Azure,AWS,Google Cloud...)
 Học máy và trí tuệ nhân tạo (ML.Net, TensorFlow, csiSharp..)
 Data science, bigdata (csiSharp, Apache Spark)
 Blockchain (NEO, Stratis)
 Microservices and containers
 Internet of thing (IoT,5G)
 Hệ thống nhúng (Raspberry pi, PLC)
1.1.1.6.Quá trình dịch của C#

Người ta thường gọi C# là ngôn ngữ biên dịch bởi khi được build thì nó là
trình biên dịch, trình này sẽ thực hiện chuyển đạn C# thành một trong những ngôn
ngữ trung gian. C# được gọi là Microsoft Intermediate Language (MSIL) và được
lưu dưới dạng một file theo thiên hướng thực thi (exe).


Nếu như chạy file thực thi thì .NET Framework sẽ được gọi là Just In Time
Compiler để thực hiện chuyển MSIL code trở thành ngôn ngữ của máy rồi thực
hiện chương trình. Loại ngơn ngữ trung gian này thường giống với các loại ngơn
ngữ máy nên bạn có thể dịch nó ra rất nhanh.

Q trình thực hiện biên dịch của ngơn ngữ C#:
 Bứơc 1: Thực hiện Click chuột phải vào project chọn build. Visual Studio sẽ
thực hiện gọi trình biên dịch. Tiếp đó, mã C# sẽ được chuyển đổi để trở thành một
loại ngôn ngữ trung gian Microsoft Intermediate Language (MSIL). Sau khi
chương trình này kết thúc thì việc đóng gói thành file exe sẽ được thực hiện.
 Bước 2: Click chuột phải vào project, chọn Open folder in file explorer.
 Bước 3: Vào thư mục bin/debug, lúc này chương trình của bạn đã được
chuyển thành dạng .exe. và file exe này có ch́ưa mã MSIL.

7

 Bứơc 4: Tiến hành viết nội dung cho chương trình, thơng tin như sau: using

System; using System.Collections.Generic; using System.Linq; using

System.Text; namespace DuAn { class Program { static void Main(string[]

args) { /* Nội dung bạn cần viết */ Console.WriteLine(“Xin chào”);

Console.ReadKey(); } } } Thực hiện chạy file .exe vào lúc này thì MSLI đã

được chuyển hướng trở thành ngơn ngữ máy. Vì vậy, thơng qua Just In Time

Compiler thì máy tính sẽ hiểu được các dòng lệnh mà bạn đã viết rồi xuất ra kết


quả như màn hình hiển thị.

1.1.2. Hệ quản trị cơ sở dữ liệu SQL Server
1.1.2.1.Khái niệm

SQL Server (viết tắt của cụm từ Structured Query Language) là một hệ thống

quản lý cơ sở dữ liệu quan hệ (Relational Database Management System, viết tắt

là RDBMS). SQL Server có khả năng hỗ trợ một số lượng lớn các quy trình xử lý

giao dịch, ứng dụng doanh nghiệp và ứng dụng phân tích trong các công ty hoạt

động trong lĩnh vực IT.

Cũng giống như các hệ thống quản lý cơ sở dữ liệu qua hệ khác, SQL Server

được xây dựng trên lớp SQL – là ngơn ngữ lập trình tiêu chuẩn hố được quản trị

viên cơ sở dữ liệu (DBAs) và các chuyên gia IT sử dụng để quản lý cơ sở dữ liệu

và truy vấn các dữ liệu nằm bên trong.

1.1.2.2.Các tính năng của sqlserver

 Tính năng doanh nghiệp chuyên biệt

Microsoft hiện nay đã ra mắt thêm các tính năng quản lý dữ liệu đa dạng


dành cho doanh nghiệp và các công cụ phân tích SQL Server. Đi cùng với các

dịch vụ Machine Learning được tích hợp lần đầu tiên trong phiên bản SQL Server

2016, các dịch vụ phân tích dữ liệu, cơng cụ phân tích dữ liệu, các ứng dụng trực

quan hố dữ liệu và các dịch vụ SQL Server Reporting nhằm hỗ trợ và phân phối

các báo cáo BI.

 Tính năng quản lý

Về phương diện quản trị, Microsoft SQL Server gồm các dịch vụ tích hợp

SQL Server, dịch vụ SQL Server Data Quality và dịch vụ SQL Server Master. Hai

8

bộ công cụ dành riêng cho quản trị viên cơ sở dữ liệu và lập trình viên (SQL
Server Data Tools) sử dụng trong việc phát triển hệ thống cơ sở dữ liệu cho SQL
Server Management Studio, thực hiện nhiệm vụ triển khai, giám sát và quản lý
các cơ sở dữ liệu.
1.2.Tổng quan về nhận diện khuôn mặt
1.2.1. Giới thiệu về nhận diện khuôn mặt

Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của
ngành thị giác máy tính (Computer Vision), và cũng được xem là một lĩnh vực
nghiên cứu của ngành Sinh trắc học (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 mặt có sự tương đồng 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) của mỗi lĩnh vực.

Trong khi nhận dạng vân tay và 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 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 mặt có nguồn dữ liệu phong phú hơn (bạn
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 số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 sốt).

Hiện nay các phương pháp nhận dạng mặt được chia thành nhiều hướng theo
các tiêu chí khác nhau: nhận dạng với dữ liệu đầu vào là ảnh tĩnh 2D (still image
based FR) là phổ biến nhất, tuy nhiên tương lai có lẽ sẽ là 3D FR (vì việc bố trí
nhiều camera 2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn),
cũng có thể chia thành 2 hướng là: làm với dữ liệu ảnh và làm với dữ liệu video.
Trên thực tế người ta hay chia các phương pháp nhận dạng mặt ra làm 3 loại:
phương pháp tiếp cận toàn cục (global, như Eigenfaces – PCA, Fisherfaces –
LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (local feature based,
như LBP, Gabor wavelets) và phương pháp lai (hybrid, là sự kết hợp của hai

9

phương pháp toàn cục và local feature). Phương pháp dựa trên các đặc điểm cục
bộ đã được chứng minh là ưu việt hơn khi làm việc trong các điều kiện khơng có
kiểm sốt và có thể nói rằng lịch sử phát triển của nhận dạng mặt (A never ending
story) là sự phát triển của các phương pháp trích chọn đặc trưng (feature
extractrion methods) được sử dụng trong các hệ thống dựa trên feature based. Các
ứng dụng cụ thể của nhận dạng mặt dựa trên 2 mơ hình nhận dạng: identification

(xác định danh tính, bài tốn 1 – N), và verification (xác thực danh tính, bài tốn
1 – 1). Trong bài tốn identification, ta cần xác định danh tính của ảnh kiểm tra,
cịn trong bài tốn verification ta cần xác định 2 ảnh có cùng thuộc về một người
hay khơng.
1.2.2. Các bước của q trình nhận diện khn mặt

Trong quy trình xử lý và đưa ra kết quả của việc nhận diện khn mặt cần
có nhiều bước, nhưng các bước cơ bản có thể có như sau:

 Bước 1: Phát hiện khuôn mặt (Face detection), tức là phát hiện khuôn mặt
trong ảnh, video và cắt lấy phần mặt để thực hiện nhận diện (face cropping)

 Bước 2: Tiền xử lý ảnh (preprocessing) bao gồm các bước căn chỉnh ảnh
(face image alignment) và chuẩn hóa ánh sáng (illumination normalization).

 Bước 3: Trích chọn đặc trưng (feature extraction), ở bước này một phương
pháp trích chọn đặc trưng nào đó (Mẫu nhị phân cục bộ - Local Binary Pattern –
LBP, Gabor wavelets,…) sẽ được sử dụng với ảnh mặt để trích xuất các thơng tin
đặc trưng cho khn mặt

 Bước 4: Nhận diện (recognition), tức là xác định danh tính (identity) hay
nhãn (label) của ảnh – đó là ai.
1.2.3. Những khó khăn trong bài tốn nhận diện khn mặt

Bài tốn nhận diện khn mặt là bài tốn đã được nghiên cứu từ những năm
70. Tuy nhiên, đây là một bài tố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. Chính vì thế, vấn đề này vẫn đang được
nhiều nhóm trên thế giới quan tâm nghiên cứu. Khó khăn của bài tốn nhận diện
khn mặt có thể kể đến như sau:


10

 Tư thế chụp, góc chụp: Ảnh chụp khn mặt có thể thay đổi rất nhiều bởi vì
góc chụp giữa camera và khn mặt. Chẳng hạn như: chụp thẳng, chụp chéo bên
trái 45o hay chụp chéo bên phải 45o, chụp từ trên xuống, chụp từ dưới lên, v.v…
Với các tư thế khác nhau, các thành phần trên khn mặt như mắt, mũi, miệng có
thể bị khuất một phần hoặc thậm chí 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ư: râu mép, râu hàm, mắt kính, v.v… có thể xuất hiện hoặc khơng. Vấn đề này
làm cho bài tốn càng trở nên khó hơn rất nhiều.

 Sự biểu cảm của khuôn mặt: Biểu cảm của khn mặt con người 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 khn
mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi, v.v…

 Sự che khuất: Khn mặt có thể bị che khuất bởi các đối tượng khác hoặc
các khuôn mặt khác.

 Hướng của ảnh (pose variations): Các ảnh khn 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
sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất
lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt.

 Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian cịn là một
vấn đề khó khăn, ngay cả đối với khả năng nhận dạng của con người.


 Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt được
test bởi các nhà nghiên cứu còn khá nhỏ (vài trăm tới vài chục nghìn ảnh mặt),
tuy nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL ảnh mặt của cảnh sát
của một đất nước có thể chứa từ hàng triệu tới hơn 1 tỉ ảnh…
1.2.4. Một số lĩnh vực ứng dụng

Bài toán nhận diện khn mặt có thể áp dụng rộng rãi trong nhiều ứng dụng
thực tế khác nhau. Đó chính là lý do mà bài tốn này hấp dẫn rất nhiều nhóm

11

nghiên cứu trong thời gian dài. Các ứng dụng liên quan đến nhận diện khn mặt
có thể kể như:

 Hệ thống phát hiện tội phạm: camera được đặt tại một số điểm công cộng
như: siêu thị, nhà sách, trạm xe buýt, sân bay,v.v... Khi phát hiện được sự xuất
hiện của các đối tượng là tội phạm, hệ thống sẽ gởi thông điệp về cho trung tâm
xử lý.

 Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào của từng
nhân viên và chấm công.

 Hệ thống giao tiếp người máy: thay thế việc tương tác giữa người và máy
theo những cách truyền thống như: bàn phím, chuột,v.v...Thay vào đó là sử dụng
các giao tiếp trực quan: biểu cảm khuôn mặt, dấu hiệu, cử chỉ bằng tay (visual
input, visual interaction).

 Hệ thống tìm kiếm thơng tin trên ảnh, video dựa trên nội dung (chỉ mục theo
người). Chẳng hạn như: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video
tin tức khá lớn cần tìm kiếm nhanh những đoạn video nào có G. Bush hoặc Bin

Laden.

 Các hệ thống bảo mật dựa trên thông tin trắc sinh học: mặt người, vân
tay,v.v... thay vì xác nhận mật khẩu, khóa,v.v...
1.2.5. Một số thư viện hỗ trợ nhận diện khuôn mặt trong ngôn ngữ lập trình
C#

 OpenCV

OpenCV viết tắt của Open Source Computer Vision được xem là một trong
những thư viện mã nguồn mở hàng đầu cho việc xử lý ảnh theo thời gian thực.

OpenCV (Thư viện hình ảnh máy tính nguồn mở) là thư viện phần mềm máy
tính học tập và máy tính nguồn mở. OpenCV được xây dựng để cung cấp một cơ
sở hạ tầng chung cho các ứng dụng thị giác máy tính và để đẩy nhanh việc sử
dụng nhận thức máy trong các sản phẩm thương mại. Là một sản phẩm được cấp
phép BSD, OpenCV giúp các doanh nghiệp dễ dàng sử dụng và sửa đổi.

12

Thư viện có hơn 2500 thuật tốn được tối ưu hóa, bao gồm một tập hợp tồn
diện các thuật tốn máy học và tầm nhìn máy tính tiên tiến và hiện đại. Các thuật
tốn này có thể được sử dụng để phát hiện và nhận diện khuôn mặt, xác định đối
tượng, phân loại hành động của con người trong video, theo dõi chuyển động của
camera, theo dõi đối tượng chuyển động, trích xuất mơ hình 3D của đối tượng,
tạo ra các đám mây điểm 3D từ camera stereo, ghép ảnh lại với nhau để tạo ra độ
phân giải cao hình ảnh của tồn cảnh, tìm hình ảnh tương tự từ cơ sở dữ liệu hình
ảnh, xóa mắt đỏ khỏi hình ảnh được chụp bằng flash, theo dõi chuyển động của
mắt, nhận diện phong cảnh và thiết lập điểm đánh dấu để che phủ nó bằng thực tế
mở rộng, v.v. Thư viện được sử dụng rộng rãi trong các cơng ty, các nhóm nghiên

cứu và các cơ quan chính phủ.

Cùng với các cơng ty có uy tín như Google, Yahoo, Microsoft, Intel, IBM,
Sony, Honda, Toyota sử dụng thư viện, có nhiều cơng ty khởi nghiệp như Applied
Minds, VideoSurf và Zeitera, sử dụng rộng rãi OpenCV. Các ứng dụng được triển
khai của OpenCV mở rộng phạm vi từ khâu hình ảnh đường phố, phát hiện xâm
nhập trong video giám sát ở Israel, giám sát thiết bị mỏ ở Trung Quốc, giúp robot
điều hướng và nhận đồ vật tại Willow Garage, phát hiện tai nạn chết đuối ở châu
Âu. Tây Ban Nha và New York, kiểm tra đường băng cho các mảnh vỡ ở Thổ Nhĩ
Kỳ, kiểm tra nhãn trên các sản phẩm tại các nhà máy trên khắp thế giới để phát
hiện khn mặt nhanh chóng ở Nhật Bản.

Nó có giao diện C++, Python, Java và MATLAB và hỗ trợ Windows, Linux,
Android và Mac OS. OpenCV dựa chủ yếu vào các ứng dụng thị giác thời gian
thực và tận dụng các hướng dẫn MMX và SSE khi có sẵn. Một giao diện CUDA
và OpenCL đầy đủ tính năng đang được tích cực phát triển ngay bây giờ. Có hơn
500 thuật tốn và khoảng 10 lần so với nhiều chức năng soạn hoặc hỗ trợ các thuật
tốn đó. OpenCV được viết tự nhiên trong C++ và có một giao diện templated
hoạt động liền mạch với các container STL.

13


×