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

pdf 10 trang Gia Huy 17/05/2022 2700
Bạn đang xem tài liệu "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", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfmot_giai_phap_thong_minh_xu_ly_dong_mo_cong_bang_nhan_dien_k.pdf

Nội dung text: 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

  1. 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-
  2. 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-
  3. 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-
  4. 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-
  5. 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-
  6. 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-
  7. 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-
  8. 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-
  9. 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-
  10. 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, [2] FTA phần mềm chấm công miễn phí tốt nhất hiện nay, [3] Công ty TNHH thương mại điện Thiên Long, phần mềm chấm công MITACO 5v2, [4] Công ty TNHH giải pháp FingerTAS, phần mềm chấm công WISE EY, [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, -342-