Thuật toán tìm người và khuôn mặt trên ảnh tĩnh

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và ứng dụng deep learning phát hiện người xâm nhập (Trang 74)

5. Cấu trúc luận văn

4.2.1. Thuật toán tìm người và khuôn mặt trên ảnh tĩnh

- Sơ đồ tổng quát:

73

Sơ đồ 4.2 Sơ đồ tổng quát tìm người và khuôn mặt trên ảnh tĩnh

- Chú thích bằng lời: Thuật toán tìm người và khuôn mặt trên ảnh tĩnh được thực hiện qua các bước chính sau:

+ Bước 1: Hình đầu vào.

+ Bước 2: Tìm kiếm người sử dụng YOLOv3.

+ Bước 3: Kiểm tra nếu phát hiện người thực hiện bước 4, ngược lại thì kết thúc. + Bước 4: Tìm khuôn mặt sử dụng Viola Jones.

+ Bước 5: Kiểm tra nếu phát hiện khuôn mặtchuyển bước 6, ngược lại thì kết thúc.

+ Bước 6: Lưu khuôn mặt vào CSDLvà kết thúc.

74

- Sơ đồ tìm kiếmngười(bước 2 của sơ đồ tổng quát):

Sơ đồ 4.3 Sơ đồ tìm kiếmngười

75

- Chú thích bằng lời: Thuật toán tìm người trên ảnh tĩnhđược thực hiện qua các bước chính sau:

+ Bước 1: Ảnh đầu vào (input image).

+ Bước 2: Chia ảnh thành các blob màu (mảng các blob).

+ Bước 3: Nhận diện đối tượng bằng mạng YOLOv3 (mảng kết quả của mạng

Yolov3: outs).

+ Bước 4: Kiểm tra còn kết quả trả về (out in outs), nếu còn chuyển bước 5, ngược lại thì chuyển bước 11.

+ Bước 5: Kiểm tra còn đối tượng (detection in out), nếu còn chuyển bước 6, ngược lại thì quay lại bước 4.

+ Bước 6: Xác định đối tượng và độ chắc chắn (confidence).

+ Bước 7: Kiểm tra đối tượng là người, nếu đúng chuyển bước 8, ngược lại thì quay lại bước 5.

+ Bước 8: Kiểm tra độ chắc chắn hơn 50% (confidence > 0.5), nếu đúng chuyển bước 9, ngược lại thì quay lại bước 5.

+ Bước 9: Xác định vị trí đối tượng.

+ Bước 10: Thêm vị trí và độ chắc chắn vào mảng boxes, confidences sau đó lặp lại bước 5.

+ Bước 11: Xác định vị trí chính xác của các đối tượng (Non Maximal

Suppression).

+ Bước 12: Kiểm tra còn vị trí tìm thấy, nếu còn chuyển bước 13, ngược lại thì kết thúc.

+ Bước 13: Vẽ khung hình bao quanh.

76

- Sơ đồ tìm khuôn mặt(bước 4 của sơ đồ tổng quát):

Sơ đồ 4.4 Sơ đồ tìm khuôn mặt

- Chú thích bằng lời:Thuật toán trích xuấtkhuôn mặt trên ảnh tĩnh được thực hiện

qua các bước chính sau:

+ Bước 1: Hình đầu vào.

+ Bước 2: Chuyển hình sang gray.

77

+ Bước 3: Tìm khuôn mặt sử dụng Viola Jones.

+ Bước 4: Kiểm tra nếu phát hiện khuôn mặtchuyển sang bước 5, ngược lại thì kết

thúc.

+ Bước 5: Xác định vị trí, vẽ khung hình bao quanh.

+ Bước 6: Cắt khuôn mặt.

+ Bước 7: Lưu CSDL.

78

4.2.2. Thuật toán tìm người và khuôn mặt trên video 4.2.2.1 Mô hình thuật toán 4.2.2.1 Mô hình thuật toán

Sơ đồ 4.5 Sơ đồ tìm người và khuôn mặt trên video

4.2.2.2 Chú thích bằng lời

Thuật toán tìm người và khuôn mặt trên video được thực hiện qua các bước chính

sau:

+ Bước 1: Video đầu vào (input video).

79

+ Bước 2: Lấy khung hình từ video (frame).

+ Bước 3: Kiểm tra nếu còn khung hình chuyển bước 4, ngược lại thì kết thúc.

+ Bước 4: Tìm kiếm người sử dụng YOLOv3.

+ Bước 5: Kiểm tra nếu phát hiện người thực hiện bước 6, ngược lại thì quay lại bước 2.

+ Bước 6: Tìm khuôn mặt sử dụng Viola Jones.

+ Bước 7: Kiểm tra nếu phát hiện khuôn mặt chuyển bước 8, ngược lại quay lại bước 2.

+ Bước 8: Lưu khuôn mặt vào CSDLsau đó lặplại bước 2.

4.3. Kết quả thực nghiệm

Như đã nêu tại mục 4.1, trong luận văn này chỉ dừng lại ở mức tìm người trong video bằng YOLOv3 và trích xuất khuôn mặt bằng Viola-Jones khi tìm thấy người. Do cấu hình máy tính cá nhân thực hiện đề tài có nhiều hạn chế nên mô hình chưa chạy được thời gian thực. Quá trình xử lý các video trích xuất từ Camera tại Văn phòng Sở KH&CN thu được kết quả như sau:

- Camera đặt tại nhà xe lúc gần 10 sáng: Camera đặt tại nhà xe có chất lượng kém, vị trí camera ở trên cao cho hình ảnh xa, ánh sáng yếu nên thuật toán áp dụng chỉ phát hiện được có người đang di chuyển, không trích xuất được khuôn mặt của đối tượng (hình 4.4).

80

Hình 4.1 Phát hiện người tại Camera đặt ở nhà xe

- Camera đặt tại cửa sau lúc 14h chiều: Camera đặt tại khư vực cửa sau có chất lượng tốt hơn Camera đặt ở nhà xe tuy nhiên vị trí camera ở trên cao cho hình ảnhvừa

xa vừa có góc nghiên lớnnên thuật toán áp dụng chỉ phát hiện được có người đang di chuyển, không trích xuất được khuôn mặt của đối tượng (hình 4.5).

81

82

Hình 4.2 Phát hiện người tại Camera đặt ở cửa sau

83

- Tại sảnh cửa chính lúc 11h sáng: Camera đặt tại sảnh cửa chính có chất lượng kém công nghệ cũ không có chế độ chống ngược sáng và ánh sáng bên trong văn phòng yếu nên thuật toán áp dụng chỉ phát hiện được có người đang di chuyển, lễ tân làm việc mà không trích xuất được khuôn mặt của đối tượng (hình 4.6).

Hình 4.3 Phát hiện người tại Camera đặt ở sảnh cửa chính

84

- Tại bộ phận văn thư lúc 16h20’ chiều: Camera đặt tại bộ phận văn thư có chất lượng tốt hơn camera đặt tại sảnh cửa chính tuy nhiên thời gian buổi chiều lúc 16h20’ và ánh sáng bên trong khu vực văn thư yếu nên thuật toán áp dụng chỉ phát hiện được có người đang di chuyển, làm việc (phát hiện nhiều người), không trích xuất được khuôn mặt của đối tượng (hình 4.7).

85

Hình 4.4 Phát hiện người tại Camera đặt tạibộ phận văn thư

- Tại hành lang lầu 3 lúc 11h trưa: Camera đặt tạihành lang lầu 3 có chất lượng

tốt, ánh sáng đảm bảo và vị trí đặt camera cho hình ảnh gần, rõ nét nên thuật toán áp

dụng phát hiện được có người đang di chuyển và trích xuất được khuôn mặt của đối tượng (hình 4.8).

86

Hình 4.5 Phát hiện người tại Camera đặt tạihành lang lầu 3

87

- Tại hành lang lầu 2 lúc 15h chiều:Camera đặt tại tại hành lang lầu 2 có chất lượng tốt, ánh sáng đảm bảo và vị trí đặt camera cho hình ảnh gần, rõ nét nên thuật toán áp dụng phát hiện được có người đang di chuyển và trích xuất được khuôn mặt của đối tượng (hình 4.9).

Hình 4.6 Phát hiện người tại Camera đặt tạihành lang lầu 2

88

4.4. Đánh giá kết quả

Sử dụng một số video trích xuất từ camera sau khi thực hiện tìm người bằng thuật toán YOLOv3 và tìm khuôn mặt bằng kỹ thuật Viola-Jones cho kết quả chính như sau:

- Đối với thuật toán tìm người bằng YOLOv3:

+ Trong điều kiện ánh sáng bình thường và người chuyển động (đi lại, ngó nghiêng, ngồi xuống đứng lên) cho kết quả phát hiện người với độ chính xác lên tới 99% trở lên và cùng một thời điểm có thể phát hiện nhiều người.

+ Chất lượng video không tốt, điều kiện thời tiết trời mưa, buổi tối hệ thống cho kết quả phát hiện người với độ chính xác trên 80%.

+ Trong trường hợp người đứng yên một chỗ mà khuất một số bộ phận do vật cản, khoảng cách quá xa camera thì độ chính xác khi phát hiện người đạt tỷ lệ trên 50%.

- Đối với kỹ thuật tìm khuôn mặt bằng Viola-Jones:

+ Khi điều kiện ánh sáng tốt, người đối diện với camera thì cho kết quả với độ chính xác trên 80% cắt được nhiều khuôn mặt của nhiều người tìm thấy trong một thời điểm.

+ Chất lượng video không tốt, điều kiện thời tiết trời mưa, buổi tối, người đứng góc nghiêng so với camera hệ thống cho kết quả phát hiện người với độ chính xác trên 50%.

+ Trong trường hợp người đứng khoảng cách quá xa, quay lưng với camera thì hệ thống không phát hiện ra khuôn mặt.

4.5. Kết luận và hướng phát triển

- Trong khuôn khổ đề tài này tác giả đã cố gắng phát huy hết năng lực bản thân, tìm hiểu, nghiên cứu tài liệu, thu thập dữ liệu với sự hướng dẫn của Giảng viên TS. Phan Ngọc Hoàng, thầy cô giáo thuộc Khoa Công nghệ thông tin, Viện Đào tạo Quốc tế và Sau Đại học Trường Đại học Bà Rịa-Vũng Tàu cùng sự giúp đỡ của các bạn học viên lớp MIT18K1 để hoàn thành cơ bản các nội dung đề ra tại Đề cương luận văn, đảm bảo chất lượng và đúng thời gian quy định.

89

- Tuy nhiên do một số lý do khách quan, chủ quan nên luận văn này chỉ dừng lại ở mức tìm người trong video bằng YOLOv3 và trích xuất khuôn mặt bằng Viola-Jones khi tìm thấy người. Ngoài ra còn một số hạn chế, cụ thể: Với hệ thống Camera của Sở KH&CN được trang bị từ năm 2012 đến nay đã cũ, xuống cấp, chất lượng một số video không tốt nên khả năng tìm người và phát hiện khuôn mặt thấp, trong một số trường hợp cho kết quả với độ chính xác chưa cao, do trình độ năng lực của bản thân còn nhiều hạn chế, điều kiện máy móc trang thiết bị phục vụ nghiên cứu và thử nghiệm chưa đảm bảo với thời gian nghiên cứu chưa nhiều nên tác giả chưa tìm hiểu, khám phá và phát huy hết tính năng ưu việt của thuật toán YOLOv3 cũng như kỹ thuật Viola-Jones, đồng thời chưa hoàn thiện được hệ thống để có thể chạy theo thời gian thực và tự động cảnh báo khi phát hiện người và khuôn mặt.

- Hướng phát triển của đề tài: Để áp dụng được kết quả đề tài này vào thực tế cần gọt giũa một số mã nguồn chương trình đảm bảo tối ưu, bổ sung các chức năng phù hợp hệ thống để nhận dạng khuôn mặt phát hiện người quen, người lạ. Có thể nâng cấp thuật toán lên YOLOv4 hoặc YOLOv5 để tăng tốc độ nhận dạng và cho kết quả tốt hơn. Đầu tư camera công nghệ mới hiện nay cho hình ảnh chất lượng cao, rõ nét trong điều kiện thời tiết xấu hoặc ban đêm, trang bị máy móc để có thể train với dữ liệu lớn, đặc biệt là trang bị máy chủ cấu hình cao có card GPU mạnh để có thể chạy thời gian thực. Ngoài ra cần hoàn thiện quy trình xử lý để xuất dữ liệu ra các thiết bị ngoại vi phục vụ việc cảnh báo tự động đến người có trách nhiệm xử lý theo các kịch bản cảnh báo được thiết lập các ngưỡng, mốc thời gian theo quy định. Xây dựng quy chế vận hành hệ thống đảm bảo phát huy tối đa hiệu quả khi đưa vào áp dụng thực tế tại các cơ quan, đơn vị.

90

TÀI LIỆU THAM KHẢO

Tài liệu tiếng việt:

[1] TS. Phan Ngọc Hoàng, Slide Computer Vision Advanced, 2019. [2] TS. Bùi Thu Trang, Slide Machine Learning, 2019.

[3] Vũ Hữu Tiệp, Machine Learning cơ bản, 2017.

[4] TS. Đỗ Năng Toàn, TS. Phạm Việt Bình, Giáo trình Xử lý ảnh, Đại học Thái Nguyên, năm 2007.

[5] PGS.TS Nguyễn Quang Hoan, Xử lý ảnh, Học viện bưu chính viễn thông, năm 2006.

[6] Lê Thị Lệ Duyên, Mạng Nơ-ron tích chập và ứng dụng giải bài toán nhận dạng hành động trong một đoạn video, 2017.

[7] Trần Trung Kiên, Hệ thống nhận dạng gương mặt trong video giám sát, Đại học Lạc Hồng, 2013.

[8] Trương Công Lợi, Nhận dạng khuôn mặt sử dụng phương pháp biến đổi Eigenfaces và mạng nơ-ron, Đại học Đà Nẵng, 2013.

[9] Nguyễn Trường Tân, “Ứng dụng mạng nơ-ron để phân loại khuôn mặt”, Đại học Đà Nẵng, 2013.

[10] Nguyễn Văn Hùng, Nguyễn Văn Xuất, Lê Mạnh Cường. “Một phương pháp phát hiện đối tượng ứng dụng trong hệ thống tự động bám mục tiêu”, Viện Vũ khí, Học viện Kỹ thuật Quân sự, Bộ Quốc phòng, 2015.

[11] Nguyễn Thị Thủy, “Phương pháp nhận dạng khuôn mặt người và ứng dụng trong quản lý nhân sự”, Đại học Công nghệ - Đại học Quốc gia Hà Nội, 2018.

[12] Tống Văn Ngọc, “Nhận dạng và phát hiện hành động người dùng thị giác máy tính”, Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh, 2018.

91

[13] Đỗ Văn Dương, Nghiên cứu phương pháp nhận dạng tự động một số đối tượng và xây dựng cơ sở dữ liệu 3D bằng dữ liệu ảnh thu nhận từ thiết bị bay không người lái, 2018.

[14] Hoàng Kiếm, Nguyễn Hồng Sơn, Đào Minh Sơn, "Ứng dụng mạng nơron nhân tạo trong hệ thống xử lý biểu mẫu tự động", 2001.

[15] Nguyễn Tiến Đạt, “Ảnh số và điểm ảnh”, [Online]: viblo.asia/p/tuan-1-gioi-

thieu-xu-ly-anh-yMnKMdEQ57P

[16] Banghn, “Nhận dạng mặt người – Các hướng tiếp cận”, [Online]:

https://bloghnb.wordpress.com/tag/cac-huong-tiep-can-nhan-dang, 2010.

[17] Phạm Anh Phương, Ngô Quốc Tạo, Lương Chi Mai, "Trích chọn đặc trưng wavelet Haar kết hợp với SVM cho việc nhận dạng chữ viết tay tiếng Việt", 2008.

[18] Nguyễn Thanh Tuấn, "Deep Learning cơ bản", 2019.

[19] Phạm Đình Khánh, “YOLO You Only Look Once”, [Online]: phamdinhkhanh.github.io/2020/03/09/DarknetAlgorithm.html#7-d%E1%BB%B1- b%C3%A1o-bounding-box.

[20] Phạm Duy Tùng, “Tìm hiểu single shot object detectors”, [Online]: phamduytung.com/blog/2018-12-06-what-do-we-learn-from-single-shot-object

detection, 2018.

[21] FPT Software – AI phát hiện người xâm nhập, codelearn.io/sharing/ai-phat- hien-nguoi-xam-nhap-p2, 2020.

[22] Hải Hà, “Tìm hiểu về phương pháp nhận diện khuôn mặt của Violas & John”, [Online]: viblo.asia/p/tim-hieu-ve-phuong-phap-nhan-dien-khuon-mat-cua-violas-john -ByEZkNVyKQ0.

Tài liệu tiếng anh:

[23]. Ming-Hsuan Yang., David J. Kriegman., Narendra Ahuja, “Detecting Faces in Images: A Survey, IEEE Transaction on Pattern Analysis and Machine Intelligence”, 2002.

92

[24] Prabhu, “Understanding of Convolutional Neural Network (CNN) - Deep

Learning” [Online]. Available: medium.com/@RaghavPrabhu/understanding-of-con volutional-neural-network-cnn-deep-learning-99760835f148, 2018.

[25] Joseph Chet Redmon, “YOLO: Real-Time Object Detection”, [Online].

Available: https://pjreddie.com/darknet/yolo/

[26] Adit Deshpande, “A Beginner's Guide To Understanding Convolutional

Neural Networks” [Online]. Available: https://adeshpande3.github.io/adeshpande3. github.io/A-Beginner's-Guide-To-Understanding-Convolutional-Neural-Networks, 2016.

[27] Ayoosh Kathuria, “What’s new in YOLO v3”, [Online]. Available:

https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b, 2018.

[28] Jonathan Hui. “Real-time Object Detection with YOLO, YOLOv2 and now

YOLOv3”. [Online]. Available: https://medium.com/@jonathan_hui/real-time-object- detection-with-yoloyolov2-28b1b93e2088, 2018.

[29] P. Viola, M. Jones, “Rapid object detection using a boosted cascade of simple

features”, Proceedings of the 2001 IEEE Computer Society Conference on Computer

Vision and Pattern Recognition, 2001.

93

PHỤ LỤC I

1. Code và chú thích một số kết quảtìm người và khuôn mặt trên ảnh tĩnh

- Khởi tạo môi trường:

- Định nghĩa các hàm cần dùng:

+ Hàm lấy đầu ra:

+ Hàm vẽ khung bao quanh đối tượng tìm thấy

- Đọc dữ liệu các lớp đã train của YOLOv3: Ở phần này tiến hành đọc dữ liệu đã được train từ trước của YOLOv3 từ file yolov3.txt vào biến classes để dùng và load mạng yolo đã huấn luyện vào lớp net.

- Nạp hình ảnh vàođồng thời thu nhỏ ảnh giúp xử lý nhanh hơn.

94

- Chia hình thành những blob nhỏ và đưa blob trích ra vào cho mạng yolo nhận diện.

- Khởi tạo các mảng: lưu thông tin id, độ tin cậy của lớp, khung giới hạn đầu ra của mạng và thiết lập giá trị ngưỡng cho độ tin cậy (ngưỡng cho phép nhận diện với độ chắc chắn kết quả là 50% trở lên).

- Quét và thực hiện gán nhãn cho các lớp: Thực hiện quét qua tất cả các khung giới hạn và kết quả trả ra thì chỉ giữ những khung có độ tin cậy cao sau đó gán nhãn cho layer có số điểm cao nhất.

- Vẽ khung quanh ngườiđược tìm thấy: Khi tìm thấy người trong ảnh thì tiến hành vẽ khung hình chữ nhật bao quanh.

95

Hình 4.7 Kết quả tìm người trong ảnh tĩnh

- Chuyển ảnh sang chế độ ảnh xám

- Tìm khuôn mặt: Dùng thuật toán Viola-Jones để tìm khuôn mặt

96

Hình 4.8 Kết quả tìm khuôn mặt trong ảnh

- Cắt khuôn mặt được phát hiện

Hình 4.9 Show khuôn mặt được cắt

2. Code và chú thích mốt số kết quảtìm người và khuôn mặt trên video

- Tương tự như xử lý trên ảnh tĩnh, bước đầu cũng định nghĩa hàm lấy đầu ra (video), hàm vẽ khung bao quanh đối tượng.

+ Hàm lấy đầu ra:

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và ứng dụng deep learning phát hiện người xâm nhập (Trang 74)