Bài báo cáo môn Xử lý ảnh đề tài "STC04: Face-based authentication" | Học viện Công nghệ Bưu chính Viễn thông
Bài báo cáo môn Xử lý ảnh đề tài "STC04: Face-based authentication" của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!
Môn: Xử lý ảnh (TEL1589)
Trường: Học viện Công Nghệ Bưu Chính Viễn Thông
Thông tin:
Tác giả:
Preview text:
lOMoARcPSD|36086670
Chương I: Giới thiệu đề tài lOMoARcPSD|36086670
1. Mục đích và ý nghĩa của việc Face-based Authentication
- Bảo mật tăng cường: Face-based Authentication ược triển khai ể cung cấp
một phương pháp xác thực mạnh mẽ và ộc áo.Đối với các hệ thống quan
trọng, như ngân hàng, dữ liệu y tế, hay hệ thống quản lý doanh nghiệp, việc
sử dụng khuôn mặt làm phương tiện xác thực giúp tăng cường bảo mật và giảm rủi ro gian lận.
- Tiện Lợi và Trải Nghiệm Người Dùng Tốt: Tạo ra một trải nghiệm xác thực
thuận tiện và nhanh chóng cho người dùng.Sử dụng khuôn mặt ể xác thực
không òi hỏi người dùng phải nhớ mật khẩu hoặc mang theo các thiết bị xác
thực bổ sung, tăng cường sự tiện lợi và giảm thời gian ăng nhập.
- Chống Gian Lận và Bảo Vệ Dữ Liệu Cá Nhân: Ngăn chặn các hình thức
gian lận và ảm bảo an ninh dữ liệu cá nhân.Khả năng mạo danh khuôn mặt là
rất thấp, giúp giảm khả năng xâm phạt hệ thống và bảo vệ thông tin cá nhân của người dùng.
- Ứng Dụng Đa Dạng: Tích hợp vào nhiều lĩnh vực và ứng dụng khác
nhau.Face-based Authentication có thể ược sử dụng trong nhiều ngữ cảnh
khác nhau, từ iện thoại di ộng và máy tính cá nhân ến các hệ thống an ninh và quản lý truy cập.
2. Lý do chọn phương pháp Face-based Authentication
- Độ Tin Cậy Cao: Khuôn mặt là một ặc iểm duy nhất và khó mạo danh. Sự ộc
áo của mỗi khuôn mặt giúp tăng cường ộ tin cậy trong quá trình xác thực.
- Không Yêu Cầu Thiết Bị Phức Tạp: So với việc triển khai các thiết bị xác
thực phức tạp, như token hoặc thẻ thông tin, việc sử dụng khuôn mặt không òi
hỏi phải mang theo thiết bị hay nhớ mật khẩu.
- Trải Nghiệm Người Dùng Tốt: Xác thực dựa trên khuôn mặt mang lại trải
nghiệm thuận tiện và tự nhiên cho người dùng, không yêu cầu họ thực hiện
các bước phức tạp ể ăng nhập. lOMoARcPSD|36086670
- Ứng Dụng Rộng Rãi: Phương pháp này có thể ược tích hợp linh hoạt vào
nhiều ứng dụng, từ các hệ thống máy tính ến ứng dụng di ộng và dịch vụ trực
tuyến, tạo nên một giải pháp a dạng cho nhiều ngữ cảnh sử dụng.
Chương II: Kiến trúc hệ thống
1. Giới thiệu các thư viện sử dụng trong bài
- OpenCV: OpenCV, hay Open Source Computer Vision, là một thư viện mã nguồn
mở hàng ầu trong lĩnh vực thị giác máy tính và xử lý ảnh. Chức năng chính của
OpenCV bao gồm việc cung cấp các công cụ và thuật toán mạnh mẽ ể xử lý và
phân tích hình ảnh, từ các thao tác cơ bản như chuyển ổi màu sắc, làm mịn, ến
những ứng dụng phức tạp như nhận diện ối tượng và xác ịnh vị trí trong không
gian 3D. Với khả năng xử lý ảnh, OpenCV không chỉ giúp iều chỉnh chất lượng
hình ảnh mà còn hỗ trợ trong việc nhận diện và theo dõi ối tượng. Cụ thể, nó cung
cấp các thuật toán nhận diện khuôn mặt, ối tượng, và giúp xác ịnh vị trí của chúng
trong không gian ba chiều. Điều này làm cho OpenCV trở thành một công cụ quan
trọng trong lĩnh vực thị giác máy tính, nơi nó có ứng dụng rộng rãi từ công nghiệp
ến nghiên cứu và phát triển ứng dụng thông minh.
- face_recognition: Thư viện face_recognition là một công cụ mạnh mẽ trong lĩnh
vực thị giác máy tính, tập trung vào việc nhận diện và xử lý khuôn mặt trong ảnh.
Chức năng chính của thư viện này bao gồm việc nhận diện vị trí khuôn mặt, mã
hóa thông tin về khuôn mặt, và so sánh khuôn mặt dựa trên các ặc trưng duy nhất.
Thư viện face_recognition cho phép dễ dàng tích hợp các tính năng nhận diện
khuôn mặt vào các ứng dụng và dự án. Trong môi trường công nghiệp, nó có thể
ược sử dụng trong các hệ thống an ninh ể nhận diện khuôn mặt và kiểm soát truy
cập. Trong ứng dụng di ộng và máy tính cá nhân, thư viện này có thể ược tích hợp
ể tăng cường tính bảo mật, ví dụ như xác minh người dùng thông qua nhận diện
khuôn mặt. Một ứng dụng khác của face_recognition là trong việc quản lý album
ảnh, giúp tự ộng nhận diện và gán nhãn cho các khuôn mặt trong ảnh. Với việc ơn
giản hóa quá trình nhận diện khuôn mặt và cung cấp các tính năng mã hóa mạnh
mẽ, thư viện face_recognition trở thành một công cụ quan trọng cho các nhà phát
triển và nghiên cứu trong lĩnh vực thị giác máy tính và xử lý ảnh.
- Flask: Flask là một framework web siêu nhẹ ược viết bằng Python, tập trung vào
việc tạo ra môi trường phát triển ứng dụng web ơn giản và nhanh chóng. Với thiết lOMoARcPSD|36086670
kế ơn giản và linh hoạt, Flask giúp người phát triển tập trung vào logic ứng dụng
mà không phải ối mặt với sự phức tạp không cần thiết. Thư viện này ược sử dụng
phổ biến trong việc xây dựng ứng dụng web từ nhỏ ến trung bình, ặc biệt là trong
các dự án òi hỏi tích hợp nhanh chóng và linh hoạt. Flask có khả năng tích hợp dễ
dàng với các công cụ và thư viện khác, làm cho quá trình phát triển ứng dụng web trở nên thuận tiện.
2. Phương pháp xác thực sử dụng trong hệ thống
- Nhận diện khuôn mặt: Đầu tiên, thư viện face_recognition ược sử dụng ể
nhận diện khuôn mặt trong ảnh. Thư viện cung cấp các hàm xác ịnh vị trí của
khuôn mặt trong ảnh dưới dạng hình chữ nhật (bounding box). Sau ó sử dụng
thư viện ể mã hóa khuôn mặt từ vị trí ã xác ịnh thành một vector số học. Mỗi
vector này ại diện cho một khuôn mặt.
- So Sánh Độ Tương Đồng: khi nhận ược ảnh ta sẽ xác thực khuôn mặt nằm
trong ảnh bằng thư viện face_recognition sau ó ta mã hóa khuôn mặt từ vị trí
ã xác ịnh , cuối cùng ta so sánh ộ tương ồng giữa vector mã hóa của ảnh kiểm
tra và danh sách vector ã biết .
- Ngưỡng Quyết Định: Độ tương ồng ược o bằng khoảng cách Euclidean giữa
vector mã hóa của ảnh kiểm tra và danh sách các vector mã hóa ã biết.Nếu
khoảng cách nằm dưới một ngưỡng quyết ịnh , hệ thống quyết ịnh rằng ây là cùng một người.
3. Cấu trúc hệ thống
- Import các thư viện: lOMoARcPSD|36086670
+ cv2: Thư viện OpenCV ể xử lý ảnh.
+ face_recognition: Thư viện sử dụng các thuật toán nhận diện khuôn mặt.
+ os: Để thao tác với hệ thống tệp và thư mục.
+ Flask: Framework web ể xây dựng API.
+ datetime: Để làm việc với thời gian.
+ numpy: Thư viện xử lý mảng số.
+ base64: Để mã hóa và giải mã dữ liệu base64.
+ PIL: Thư viện xử lý ảnh.
+ BytesIO: Để ọc dữ liệu ảnh từ bytes.
+ flask_cors: Để xử lý Cross-Origin Resource Sharing (CORS).
- Khởi tạo biến và
ọc dữ liệu từ thư mục ảnh: lOMoARcPSD|36086670
+ path: Đường dẫn ến thư mục chứa ảnh.
+ image: Danh sách các ảnh ọc từ thư mục.
+ classNames: Danh sách tên các lớp ảnh (tên file ảnh mà không có phần mở rộng).
+ myList: Danh sách tên các file ảnh trong thư mục.
- Mã hóa ảnh và tạo danh sách mã hóa ã biết (encodeKnow):
+ Sử dụng face_recognition ể xác ịnh vị trí khuôn mặt và mã hóa khuôn
mặt từ danh sách ảnh ã ọc. - Hàm check: lOMoARcPSD|36086670
+ Nhận một ảnh ể kiểm tra và so sánh với danh sách mã hóa ã biết.
+ Nếu khoảng cách giữa ảnh kiểm tra và danh sách mã hóa dưới một
ngưỡng (0.7) thì trả về tên của người ó; ngược lại trả về "false". - Hàm saveData:
+ Lưu dữ liệu (tên và thời gian) vào tệp "checkauth.txt". -
Hàm read_data_from_file:
+ Đọc dữ liệu từ tệp "checkauth.txt" và trả về danh sách các dòng. -
Khởi tạo ứng dụng Flask và cấu hình CORS:
+ Flask(__name__): Tạo một ối tượng Flask. lOMoARcPSD|36086670
+ CORS(app): Cấu hình CORS ể cho phép truy cập tài nguyên từ các
nguồn khác nhau. - API endpoints:
+ /api/post_string: Endpoint nhận ảnh từ client dưới dạng base64, kiểm tra
và trả về kết quả (tên và thời gian).
+ /get_data: Endpoint ể lấy dữ liệu ã lưu từ tệp "checkauth.txt". - Chạy ứng dụng: lOMoARcPSD|36086670
+ app.run(port=5000): Khởi chạy ứng dụng Flask trên cổng 5000.
4. Mô tả chi tiết hệ thống
- Giao diện chính của hệ thống, khi vào trang chủ hệ thống camera sẽ luôn ược hiển
thị ể người dùng có thể căn chỉnh chính xác khuôn mặt của mình ể xác thực.
- Khi bấm vào ‘Check in’ ảnh ở bên camera sẽ ược chụp lại và hiển thị ở ‘IMAGE CHECKIN’ lOMoARcPSD|36086670
- Đợi vài giây ể hệ thống kiểm tra và xác thực khuôn mặt nếu người dùng có trong dữ
liệu của hệ thống, hệ thống sẽ hiển thị tên người dùng và dòng chữ check in thành
công kèm theo ó là ngày giờ người dùng check in.
- Nếu người dùng không có trong dữ liệu hệ thống thì sẽ hiển thị dòng chữ ‘check in that bai’. lOMoARcPSD|36086670
- Ta cũng có thể xem lịch sử check in bằng cách bấm vào ‘History’
Chương III: Kết luận và hướng phát triển 1. Kết luận
- Hệ thống Face-based Authentication mà bạn xây dựng sử dụng các công
nghệ như OpenCV và thư viện face_recognition ể triển khai một quy
trình xác thực dựa trên khuôn mặt. Với Flask, hệ thống ã ược tích hợp
thành một API ơn giản, giúp giao tiếp linh hoạt với các ứng dụng khác.
- Ưu iểm lớn của hệ thống là sự ơn giản trong triển khai và tích hợp, cũng
như khả năng sử dụng các công nghệ xác thực mạnh mẽ dựa trên khuôn lOMoARcPSD|36086670
mặt. Quy trình xác thực ã ược triển khai hiệu quả, và hệ thống cung cấp
thông tin ầy ủ về thời gian xác thực và kết quả.
2. Hướng phát triển
- Bảo mật và Tối Ưu Hóa: Nâng cao mức ộ bảo mật bằng cách tích hợp
các biện pháp bảo vệ như mã hóa dữ liệu truyền tải.Tối ưu hóa mã nguồn
ể cải thiện hiệu suất và áp ứng nhanh chóng hơn.
- Giao Diện Người Dùng: Xây dựng một giao diện người dùng ồ họa
hoặc ứng dụng di ộng ể tăng cường trải nghiệm người dùng.
- Mở Rộng Chức Năng: Đưa ra sự linh hoạt trong việc thêm các chức
năng mới như xác thực hai yếu tố hoặc tích hợp với các dịch vụ xác thực bên ngoài.
DANH MỤC TÀI LIỆU THAM KHẢO: [1]
https://pypi.org/project/opencv-python/ [2]
https://docs.opencv.org/3.4/d6/d00/tutorial_py_root.html [3]
https://docs.opencv.org/4.x/da/d60/tutorial_face_main.html [4]
https://pypi.org/project/face-recognition/
Document Outline
- 1. Mục đích và ý nghĩa của việc Face-based Authent
- 2. Lý do chọn phương pháp Face-based Authenticatio
- 1. Giới thiệu các thư viện sử dụng trong bài
- 2. Phương pháp xác thực sử dụng trong hệ thống
- 3. Cấu trúc hệ thống
- 4. Mô tả chi tiết hệ thống
- 1. Kết luận
- 2. Hướng phát triển