Xem mẫu
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
MỘT GIẢI PHÁP THÔNG MINH XỬ LÝ ĐÓNG MỞ CỔNG BẰNG
NHẬN DIỆN KHUÔN MẶT
Nguyễn Anh Tuấn1
1
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
*
Tác giả liên hệ: Email: natuan@vku.udn.vn
Tóm tắt. Việc đảm bảo thời gian đi học đầy đủ của sinh viên cũng như đi làm đúng
giờ có phép tắc kỷ cương của cán bộ, nhân viên là vấn đề cần thiết hiện nay. Điểm
danh, chấm công là một công việc thực tế rất hay được thực hiện trong các trường học,
cơ quan, xí nghiệp. Điểm danh để kiểm tra sinh viên có đến lớp học đầy đủ không,
điểm danh để chấm công lao động tại các cơ quan, xí nghiệp. Tuy nhiên phương pháp
điểm danh được đánh giá tốt hơn, dễ áp dụng hơn mà hiệu quả lại cao hơn, ít gây
phiền hà, giảm chi phí, ít gây phiền hà cho người khác đó là hệ thống điểm danh tự
động dựa vào nhận dạng khuôn mặt. Bài báo đã đề xuất một giải pháp mở cổng dựa
trên cơ sở kỹ thuật máy học để nhận diện khuôn mặt.
Từ khóa: machine learning, Xử lý hoạt động đóng mở cổng, nhận diện khuôn mặt,
ứng dụng IOT
1. ĐẶT VẤN ĐỀ
Tại mỗi lối vào của các tòa nhà, trường học, khu công nghiệp, cổng xưởng, nhà
máy, cơ quan nhà nước,… ngày nay được trang bị cổng kiểm soát an ninh để nâng cao
an ninh. Việc chấm công, điểm danh để kiểm tra sinh viên có đến lớp học đầy đủ
không, điểm danh để chấm công lao động tại các cơ quan, xí nghiệp giúp tăng cường
kỷ cương học tập và lao động. Hiện lại có nhiều giải pháp để giải quyết vấn đề này.
Tuy nhiên những phương pháp này còn khá nhiều bất cập. Nếu điểm danh bằng cách
đọc tên thì tốn rất nhiều thời gian, không chính xác vì có thể người này điểm danh thay
cho người kia; còn nếu điểm danh bằng cách quét vân tay thì có thể lây bệnh truyền
nhiễm, rất bất tiện cho nhân viên hay nếu điểm danh bằng quẹt thẻ thì có thể xảy ra
tình trạng người này quẹt thẻ giúp người khác.
Hệ thống điểm danh bằng mặt người thực hiện rút trích tự động khuôn mặt người
trong ảnh thu được từ camera (webcam) và xác định danh tính của đối tượng trong hệ
thống dựa vào nội dung của ảnh khuôn mặt rút trích được. Nhận dạng tự động khuôn
mặt có thể ứng dụng nhiều trong thực tiễn như camera giám sát, hệ thống chấm công,
chú thích ảnh tự động, lưu trữ thông tin khuôn mặt ở các máy ATM, tìm kiếm và xác
minh tội phạm. Hệ thống điểm danh thực hiện nhận dạng khuôn mặt người qua 2 bước
chính: định vị khuôn mặt trong ảnh thu được từ camera và định danh đối tượng từ ảnh
khuôn mặt.
-333-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
- Tuy nhiên, hiện nay ở Việt Nam các hệ thống này chưa thực sự phát triển mạnh,
chủ yếu là các sản phẩm của nước ngoài với giá thành rất đắt đỏ.
2. CÁC NGHIÊN CỨU LIÊN QUAN
Trước khi tiến hành phân tích hệ thống, tác giả đã tìm hiểu một số nghiên cứu,
phần mềm, và giải pháp điểm danh hiện có trên thị trường hiện nay và rút ra kết luận
trong bảng phân tích dưới đây.
Các phần mềm nêu trên đều được đánh giá là những phần mềm chấm công tốt
nhất hiện nay, nhưng còn một vài điểm hạn chế như giá thành lắp đặt và mua thiết bị
hỗ trợ phần mềm khá cao, chưa đáp ứng nhu cầu của từng công ty doang nghiệp mong
muốn, chi phí mua bản quyền sử dụng bảo đảm tính an toàn cũng không hề nhỏ đối
với những tổ chức vừa và nhỏ.
Bởi những nhu cầu đặt ra như trên tác giả mong muốn tìm ra một giải pháp có
thể thay thế cũng như giảm bớt chi phí cho các tổ chức hoặc doanh nghiệp nhỏ đó là
xử lý hoạt động ra vào của con người bằng nhận diện khuôn mặt và hình ảnh từ đó áp
dụng trong các lĩnh vực điểm danh chấm công. Ở đây tác giả sử dụng ngôn ngữ lập
trình JavaFX làm cốt lõi bởi vì nó là một mã nguồn mở, có một thư viện lớn bao gồm
các lớp và các giao diện dược viết bằng mã Java, có thể sử dụng JavaFX để thiết kế
giao diện đồ hoạ (GUI), có thể tuỳ biến giao diện thêm sinh động bằng cách sử dụng
CSS, hỗ trợ đồ hoạ 2D và 3D cũng như âm thanh và video. Chi phí sử dụng cho sản
phẩm khá thấp mà vẫn đem lại hiệu quả cao phù hợp với tính chất công việc đề ra, bên
cạnh đó thư viện được tác giả sử dụng là JavaCV, đây là thư viện nằm trong gói thư
viện OpenCV thường được sử dụng bởi các nhà nghiên cứu trong lĩnh vực computer
vision. Thuật toán dùng đễ nhận diện ở đây là Local Binary Pattern with Haar Cascade
Classifier.
Bảng 1: Bảng so sánh các phần mềm chấm công phổ biến
Phần mềm
Ưu điểm Nhược điểm
chấm công
Áp dụng công xưởng DN Với nền tảng dữ liệu lớn nên phần mềm
sản xuất từ lớn đến nhỏ, với yêu cầu máy tính cấu hình khá cao, và giá
nhiều hệ thống ca kíp, làm bán cao hơn các phần mềm khác tại Việt
HARD [1] việc ca đêm, đổi ca liên tục Nam.
theo tiêu chuẩn hệ thống Giao diện hơi phức tạp và khó sử dụng
tính công chuẩn mực công
nghiệp sản xuất châu Âu.
Nhẹ, dễ sử dụng, phù hợp Chỉ tính được giờ công ca trong 1 ngày,
tính công cho doanh nghiệp không tính được ca đêm, không xác nhận
FTA [2] nhỏ. được nghỉ để ra bảng tính công đầy đủ
tính lương tháng.
Giá thành khá cao, cần có thiết bị đi
-334-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
cùng.
Dễ sử dụng, phù hợp tính Chỉ tính được giờ công ca trong 1 ngày,
công cho doanh nghiệp nhỏ. không tính được ca đêm, không xác nhận
MITACO được nghỉ để ra bảng tính công đầy đủ
[3] tính lương tháng.
Là phần mềm miễn phí những được cài
đặt kèm bởi những thiết bị quét khá đắt.
Ra đời sớm, miễn phí cho Gặp khá nhiều lỗi vặt trong quá trình sử
nhiều doanh nghiệp sử dụng dụng. Giao diện không được thân thiện
WISE EYE kèm theo máy chấm công. với người dùng.
[4] Phần mềm chỉ có thể dùng offline.
Chỉ tính công trong ngày, không tính
được cụ thể ca đêm, tăng ca, nghỉ lễ,...
3. MÔ HÌNH BÀI TOÁN
- Việc xử lý hoạt động đóng mở cổng bằng nhận diện khuôn mặt và hình ảnh phải đảm
bảo được tính chính xác cao, cơ sở dữ liệu minh bạch dễ quản lý, hệ thống hoạt động
ổn định ít gặp lỗi.
Hình 1: Biểu đồ Usecase mô tả hoạt động đóng mở cổng bằng nhận khuôn mặt [5]
-335-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
Bằng việc sử dụng hình ảnh của nhân viên, sinh viên làm dữ liệu cho mỗi cá nhân dữ
liệu sẽ được xử lý thêm, sửa, xoá, quản lý bằng máy tính quá trình này đồng thời xảy
ra cùng thời điểm đảm bảo khi nhận diện đúng thì cổng sẽ mở cho người cần xác minh
sau khi đi qua một cảm biến siêu âm thiết bị này sẽ gửi phản hồi lại với máy chủ từ đó
việc đóng cổng sẽ được thực hiện ngay để tiếp tục cho lần nhận diện tiếp theo.
- Đầu tiên nhân viên, học sinh cần phải thêm hình ảnh vào thông tin của mình đễ hệ
thống có thêm nhận diện, thông tin bao gồm 10 “hoặc nhiều hơn” hình ảnh khuôn mặt
được chụp từ chính camera của hệ thống, các hình ảnh này được lưu tại folder faces
trên máy tính.
Hình 2: Dữ liệu sẵn phục vụ nhận diện
Bảng 2: Bảng lưu cơ sở dữ liệu thông tin nhận diện
ID int(11)
CODE int(10)
MaSV varchar(30)
MaNV varchar(30)
Bảng 2: Bảng lưu cơ sở dữ liệu thông tin của sinh viên
ID int(11)
MaSV varchar(30)
MaNV varchar(30)
ImageEncode Varchar(55)
timeAttendance Timestamp
* Để phần mền nhận được kết quả tốt nhất thì bạn cần ít nhất là 10 record thông tin
của SV, NV. Nếu lớn hơn 10 thì hệ thống sẽ hoạt động tốt hơn nữa.
-336-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
- Ứng dụng việc nhận diện đó vào mở cổng. Hằng ngày các sinh viên, nhân viên sẽ
cần phải đi qua cửa thông minh. Cửa này được tác giả thiết kế sử dụng các kiến thức
đã học được từ môn vi điều khiển. Các bộ phận được sử dụng ở đây là 1 board mạch
arduino Mega 2560, 1 ultrasonic sensor HC- SR04 “cảm biến siêu âm”, 1 RC Servo
SG90 “thể hiện chức năng mở cửa”. - Ở đây tác giả sử cảm biến siêu âm HC- SR04
với các chân GND, Echo, Trigger, VCC nối lần lượt với các chân GND, A0, A1, 5V
của arduino Mega 2560. Sau đó nối ba chân của RC Servo SG90 gồm Brown, Red,
Yellow lần lượt với ba chân GND, Vin, Pin 9. Sau đó nạp code từ JavaFX vào arduino
Mega 2560.
Tiếp theo là thông tin của sinh viên, nhân viên bao gồm unique code (mã khuôn mặt
của SV, NV, mã này là duy nhất đễ có thể nhận diện được khuôn mặt của SV, NV), 2
trường tiếp theo cần lưu đó là MaSV nếu là sinh viên hoặc MaNV nếu là nhân viên.
Các thông tin trên được lưu vào trong database ghosteye với tên bảng là face_bio,
database sử dụng là Mysql. Vậy là ta đã hoàn tất được công việc thêm thông tin cũng
như hình ảnh của SV, NV.
Hình 3: Bảng mạch của hệ thống đóng mở cổng bằng phương pháp xử lý và nhận diện
khuôn mặt trên Proteus.
-Lần đầu tiên sinh viên, nhân viên đến và đứng trước camera được bố trí ngay tại cửa,
camera sẽ tiếp nhận các khung hình và gữi nó đến phần mềm nhận diện.
-337-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
Hình 5: Giao diện của phần mềm nhận diện khuôn mặt
Phần mền này sẽ thực hiện nhận diện các khung hình được gửi đến và tìm kiếm trong
cơ sở dữ liệu các khuôn mặt được lưu trước đó, nếu trùng khớp, màn hình nhận diện sẽ
hiển thì mã sinh viên hoặc nhân viên và thực hiện thêm mã nhân viên hoặc sinh viên
và ngày giờ điểm danh (timestamp) kèm theo ảnh khuôn mặt của user ngày hôm đó và
encoding sang dạng base64 lợi ích từ việc lưu trữ dữ liệu được mã hóa Base64 là dữ
liệu thường được lấy ra từ cơ sở dữ liệu và được truyền qua giao thức yêu cầu mã hóa
đó - trong trường hợp đó, lưu trữ biểu diễn được mã hóa Base64 sẽ tiết kiệm được thực
hiện thao tác mã hóa trên dữ liệu thô khác trên mỗi lần tìm nạp. Và cuối cùng là mã
cửa điểm danh, tất cả các thông tin trên được lưu vào bảng attendance.
Hình 6: Dữ liệu được lưu vào cơ sở dữ liệu & hình ảnh dưới dạng base 64
-338-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
Ngay sau đó phần mềm sẽ gữi tín hiệu đến board Mega 2560. Tại đây khi tiếp nhận
được tín hiệu, thì RC Servo SG90 sẽ quay một góc 90 độ đễ thể hiện việc mở cửa,
nhiệm vụ của cảm biến siêu âm HC- SR04 lúc này sẽ là nhận tín hiệu và kiểm tra nếu
còn người đứng trước đó thì sẽ không là gì nhưng nếu cách xa hơn 15 cm mà không
còn vật thể nào thể sẽ gọi con micro servo quay về lại 0 độ để thực hiện hành động
đóng cửa. Và có thể thực hiện qua việc kiểm tra thông tin ra vào của mỗi người.
Hình 7: Gửi dữ liệu đến cổng trong Java [6]
- Các lần tiếp theo nhân viên chỉ cần nhận diện khuôn mặt và đi qua cửa, bởi vì việc
điểm danh chỉ ra 1 lần duy nhất trong ngày
Hình 8: Hoạt động đóng mở cổng bằng Arduino
-339-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
Hình 9: Thông tin đã được xác nhận
* Ngoài ra trường hợp máy không nhận diên được tác giả sẽ thêm một nút bấm để giúp
người bảo vệ mở cổng bằng cách thủ công.
4. THỰC NGHIỆM
Tác giả đã thực hiện thử nghiệm vào lúc 7h30 ngày 20/9/2020. Bằng cách dùng phần
mềm thử nghiệm. Các sinh viên lần lượt đưa hình ảnh của mình vào máy mỗi người tối
đa 10 khung hình ở nhiều góc độ để máy dễ dàng xác minh để lưu trữ.
Hình 10: Hình ảnh được chụp và lưu về database
Hình 11: Cảm biến siêu âm Ultrasonic HC-SR04
Cảm biến siêu âm Ultrasonic HC-SR04 được sử dụng để nhận biết khoảng cách từ vật
thể đến cảm biến nhờ sóng siêu âm, cảm biến có thời gian phản hồi nhanh, độ chính
-340-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
xác cao, phù hợp cho các ứng dụng phát hiện vật cản, đo khoảng cách bằng sóng siêu
âm. Từ đó giúp cho việc đóng mở cổng thực hiện chính xác hơn.
Hình 12: Mô hình mô phỏng đóng mở cổng (barrier)
Sau khi hoàn thành thử nghiệm, tác giả đã tổng kết được độ chính xác của ứng dụng
bằng nhận diện khuôn mặt là 90%.
Bảng 4: Thống kê danh sách sau khi thử nghiệm
Tuy nhiên vì kiến thức còn nhiều hạn chế chưa nắm bắt được nguyên lý hoạt động, nên
chúng tôi vẫn chưa thể giải quyết vấn đề nhận diện biển số xe một cách hiệu quả nhất,
vẫn còn vướng mắc, thử nghiệm đã xảy ra lỗi chưa thể hoạt động được vì vậy chúng
tôi cần thời gian tìm hiểu và xây dựng mô hình hoàn chỉnh trước khi đưa ra thử
nghiệm.
-341-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải
4. KẾT LUẬN
Bài báo tập trung vào việc xử lý hoạt động đóng mở cổng (cửa) bằng nhận diện
khuôn mặt và hình ảnh. Qua hai tháng làm đồ án kết hợp cùng với môn Vi điều khiển
và tham khảo một số kiến thức đã học chúng tôi đã hoàn thành được những vấn đề cốt
yếu của bài toán mà mình đề ra. Phát biểu và mô tả được nghiệp vụ bài toán. Biểu diễn
các nghiệp vụ bài toán bằng các sơ đồ tiến trình nghiệp vụ. Phân tích thiết kế bài toán
một cách đầy đủ, theo đúng quy trình được học bằng hướng cấu trúc. Thiết kế cơ sở dữ
liệu đầy đủ phục vụ cho việc lưu trữ. Thiết kế được các giao diện cập nhật dữ liệu và
truy xuất dữ liệu nếu cần. Phần mềm sử dụng giao diện đơn giản. Nhận diện khá rõ
ràng, độ chính xác cao. Chi phí giá thành sản phẩm thấp so với mặt bằng chung của thị
trường. Hệ thống đã được cài đặt thử nghiệm với một số dữ liệu cho ra được kết quả
đáp ứng với yêu cầu đề ra: Thêm dữ liệu của mỗi người, nhận diện chính xác và thao
tác đóng mở khi nhận diện hoạt động ổn định. Do thời gian nghiên cứu còn ngắn nên
phần mềm còn nhiều thiếu sót, một số báo cáo chưa hoàn chỉnh. Khả năng nhận diện
tương đối chính xác, nhưng vẫn còn xảy ra lỗi nếu tuỳ vào nhiều điều kiện.
TÀI LIỆU THAM KHẢO
[1] Công ty công nghệ Hoa Sơn (2018), phần mềm chấm công HARD,
https://www.phanmemchamcong.net/gioi-thieu.html.
[2] FTA phần mềm chấm công miễn phí tốt nhất hiện nay, https://fitime.info.
[3] Công ty TNHH thương mại điện Thiên Long, phần mềm chấm công MITACO
5v2, http://mitapro.net.
[4] Công ty TNHH giải pháp FingerTAS, phần mềm chấm công WISE EY,
https://wiseeye.info.
[5] Võ Trung Hùng (10-2016), Bài giảng Phân tích & Thiết kế hệ thống, Khoa Công
nghệ thông tin & Truyền thông – Đại học Đà Nẵng.
[6] OpenCVExoVisix,https://github.com/MeAnupSarkar/ExoVisix
-342-
nguon tai.lieu . vn