
SCIENCE - TECHNOLOGY Số 12.2022 ● Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC
65
NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG PHÁT HIỆN ĐÁM ĐÔNG HỖ TRỢ CẢNH BÁO NGUY CƠ LÂY NHIỄM VIRUS CORONA
RESEARCH AND CONSTRUCTION CLOSE DETECTING SYSTEM SUPPORTED WARNING RISK OF CORONA VIRUS Nguyễn Minh Trường1,*, Đường Ngọc Khanh1, Cù Việt Hưng1, Quách Phương Thảo2, Nguyễn Lan Anh3 TÓM TẮT Trong bài báo này, chúng tôi đã xây d
ựng một ứng dụng phát hiện đám
đông, xác định trạng thái của model và phát hiện đối tượng theo th
ời gian thực
một cách nhanh chóng. Sau quá trình sàng lọc tất cả các mô hình truy
ền thống
và mô hình học sâu, chúng tôi xác định xác định bằng mô h
ình YOLOv5. YOLOv5
cho thấy hiệu suất tốt trong phát hiện vật thể trong thời gian thực. Từ khóa: Thuật toán; phát hiện đối tượng; Yolo; Covid-19. ABSTRACT
In this paper, we have built a crowd detection application, which
determines the state of the model and detects the object in real time quickly.
After sifting through all traditional models and deep learn
ing models, we
identify them using the YOLOv5 model. YOLOv5 shows good performance in real-time object detection. Keywords: Algorithm; object detection; Yolo; Covid-19. 1Lớp CNTT 03-K14, Khoa CNTT, Trường Đại học Công nghiệp Hà Nội 2Lớp CNTT01- K13, Khoa CNTT, Trường Đại học Công nghiệp Hà Nội 3Khoa CNTT, Trường Đại học Công nghiệp Hà Nội *Email: nminhtruongtk@gmail.com CHỮ VIẾT TẮT CNN YOLO R-CNN RPN CSP PANet SSD FPN BiFPN CBL SPP CUDA GPU Convolutional Neural Network (Mạng nơ-ron tích chập) You Only Look One Region Based Convolutional Neural Network Region Proposal Network Cross Stage Partial Networks Path Aggregation Network Single Shot MultiBox Detector Feature Pyramid Networks Bi-directional Feature Pyramid Network Convolutional + Batch normalization + Leaky Spatial Pyramid Pooling Compute Unified Device Architecture Graphics Processing Unit 1. GIỚI THIỆU Để theo dõi cách thực thi giãn cách xã hội, một số phương pháp sử dụng công nghệ đã ra đời và phát triển, ví dụ việc sử dụng thiết bị đeo được, ứng dụng được tải xuống tự nguyện, phân tích mức sử dụng wi-fi và công nghệ xử lý hình ảnh. Trong bài báo này nhóm nghiên cứu tìm kiếm các giải pháp dựa trên hình ảnh. Có nhiều lợi ích khác nhau khi sử dụng giải pháp dựa trên hình ảnh. Trước hết, nó không yêu cầu phần cứng bổ sung bên cạnh máy ảnh, vốn rất sẵn có vì máy ảnh điện thoại di động và máy ảnh an ninh phổ biến trong thế giới hiện đại. Thứ hai, thông tin bổ sung bên cạnh theo dõi vị trí có sẵn trong hình ảnh. Các đặc điểm cá nhân, có thể được sử dụng để nhận dạng một người và trang phục trên khuôn mặt có thể được sử dụng để xác định xem họ có đeo khẩu trang hay không. Tuy nhiên, cũng có những thách thức trong việc sử dụng cách tiếp cận dựa trên hình ảnh. Trước hết, các đối tượng quan tâm (con người) sẽ cần được xác định và bản địa hóa từ hình ảnh, đây không phải là một nhiệm vụ tầm thường vì kỹ thuật tính năng thường không khái quát hóa loại nhiệm vụ này, do đó, một cách tiếp cận dựa trên học tập sẽ phải được sử dụng cho một nhiệm vụ như vậy, chẳng hạn như R-CNN, YOLO… Thách thức thứ hai là đo khoảng cách giữa các cá thể được phát hiện từ hình ảnh, điều này rất khó vì hình ảnh có thể bị soi, bị méo và không có bất kỳ tham chiếu nào để liên kết số lượng pixel với số liệu khoảng cách. Chúng tôi thảo luận về các phương pháp tiếp cận khác nhau trên cơ sở kỹ thuật chúng tôi cảm thấy thích hợp nhất để giải quyết vấn đề phát hiện khoảng cách xã hội. 2. CÁC NGHIÊN CỨU LIÊN QUAN Hệ thống phát hiện đám đông đã và đang được phát triển bởi nhiều nhóm nghiên cứu từ nhiều nước trên thế giới bởi lợi ích mà nó mang lại trong việc giảm thiểu sự lây lan của virus corona. Đã có rất nhiều bài toán được ứng dụng trong hệ thống này, tuy nhiên hầu hết đều phát triển dựa trên bài toán cơ bản là Phát hiện vật thể (Object Detection). Cho tới thời điểm hiện tại, các thuật toán phát hiện vật thể vẫn là một trong những thuật toán quan trọng nhất trong phân ngành thị giác máy tính (Computer Vision) bởi

CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC ● Số 12.2022
66
KHOA H
ỌC
nó là tiền đề để giải quyết rất nhiều bài toán thực tế khác nhau. Các thuật toán phát hiện vật thể thường được chia thành 2 nhóm chính là one-stage object detection và two-stage object detection Two-stage object detection: nhóm các thuật toán (R-CNN [1], Fast-RCNN [2], Faster-RCNN [3], vv) chia việc phát hiện vật thể ra làm hai bước. Ở bước một, mô hình sẽ xử lý ảnh và trích xuất ra các vùng có khả năng chứa vật thể từ bức ảnh. Ví dụ, với Faster-RCNN [3] thì trong bước 1 (stage-1), mô hình sẽ đưa ra 1 sub-network gọi là RPN (Region Proposal Network) với nhiệm vụ trích xuất các vùng trên ảnh có khả năng chứa đối tượng dựa vào các anchor. Sau khi đã thu được các vùng đặc trưng từ RPN, mô hình Faster-RCNN sẽ thực hiện tiếp bước 2 là phân loại đối tượng và xác định vị trí. One-stage object detection: là các thuật toán (SSD [4], YOLO [5]) không có phần trích chọn các vùng đặc trưng như RPN của Faster-RCNN. Các mô hình thuộc nhóm one-stage object detection này coi việc định vị đối tượng (object localization) như một bài toán hồi quy (regression problem) với 4 tọa độ offset, ví dụ như x, y, w, h và cũng dựa trên các pre-define box gọi là anchor để làm việc đó. Bằng việc chỉ chạy một thuật toán một lần duy nhất, các thuật toán thuộc nhóm này thường đạt tốc độ nhanh hơn tuy nhiên độ chính xác của mô hình thường kém hơn so với các thuật toán two-stage object detection. Mặc dù vậy, việc các thiết bị di động đang ngày càng trở nên phổ biến đã thúc đẩy các nhà nghiên cứu đi sâu tìm hiểu và cải thiện các thuật toán phát hiện vật thể thuộc nhóm one-stage object detection để từ đó ứng dụng vào các bài toán thực tế có thể chạy được trên các thiết bị có phần cứng cơ bản. Trong bài báo này, chúng tôi sẽ sử dụng thuật toán YOLOv5 [6] cho bài toán nhận diện người. Thuật toán YOLOv5 [6] là phiên bản cải tiến thứ năm của họ các thuật toán phát hiện vật thể YOLO, được giới thiệu ngay sau khi phát hành YOLOv4 bằng cách sử dụng khung Pytorch. Trong nghiên cứu nay, nhằm đảm bảo yêu cầu ứng dụng có thể triển khai trên các thiết bị phần cứng đơn giản, chúng tôi lựa chọn mô hình YOLOv5s. 3. PHƯƠNG PHÁP VÀ TƯ LIỆU Bài báo sẽ trình bày chi tiết việc xây dựng các mô hình cơ sở cho các bài toán con trong hệ thống. YOLO là thuật toán object detection nên mục tiêu của mô hình không chỉ là dự báo nhãn cho vật thể như các bài toán classification mà nó còn xác định location của vật thể. Do đó YOLO có thể phát hiện được nhiều vật thể có nhãn khác nhau trong một bức ảnh thay vì chỉ phân loại duy nhất một nhãn cho một bức ảnh. Một trong những ưu điểm mà YOLO đem lại đã là chỉ sử dụng thông tin toàn bộ bức ảnh một lần và dự đoán toàn bộ object box chứa các đối tượng, mô hình được xây dựng theo kiểu end-to-end nên được huấn luyện hoàn toàn bằng gradient descent. 3.1. Kiến trúc mạng YOLOv5 Hình 1. Cấu trúc mạng Yolov5 Kiến trúc mạng của YOLOv5 bao gồm ba phần: (1) Phần xương sống: CSP Backbone (2) Phần cổ: PANet (3) Phần đầu: Lớp YOLO Dữ liệu đầu tiên được đưa vào CSP Backbone để trích xuất tính năng, sau đó được cung cấp cho PANet để kết hợp tính năng. Cuối cùng, Yolo Layer đưa ra kết quả phát hiện (lớp, điểm số, vị trí, kích thước). CSP Backbone: Mô hình Backbone chủ yếu được sử dụng để trích xuất các tính năng quan trọng từ hình ảnh đầu vào đã cho. Trong YOLOv5, CSP (Cross Stage Partial Networks) được sử dụng làm xương sống để trích xuất các tính năng giàu thông tin từ hình ảnh đầu vào. CSPNet đã cho thấy sự cải thiện đáng kể về thời gian xử lý với các mạng sâu hơn. Cả YOLOv4 và YOLOv5 đều triển khai CSP Bottleneck để xây dựng các image features. CSP giải quyết các vấn đề về gradient trùng lặp trong các backbone ConvNet lớn hơn khác dẫn đến ít tham số hơn và ít FLOPS hơn để có tầm quan trọng tương đương. Điều này cực kỳ quan trọng đối với họ YOLO, nơi tốc độ suy luận và kích thước mô hình nhỏ là quan trọng hàng đầu. PA-Net Neck: Phần cổ mô hình chủ yếu được sử dụng để tạo ra các kim tự tháp đặc trưng. Các kim tự tháp đặc trưng giúp các mô hình khái quát tốt về tỷ lệ đối tượng. Nó giúp xác định cùng một đối tượng với các kích thước và tỷ lệ khác nhau. Các kim tự tháp đặc trưng rất hữu ích và giúp các mô hình hoạt động tốt trên các dữ liệu không nhìn thấy được. Có những mô hình khác sử dụng các loại kỹ thuật kim tự tháp tính năng khác nhau như FPN, BiFPN, PANet,... Lớp YOLO: Phần đầu mô hình chủ yếu được sử dụng để thực hiện phần phát hiện cuối cùng. Nó áp dụng các hộp neo trên các tính năng và tạo ra các vectơ đầu ra cuối cùng với lớp xác suất, điểm đối tượng và hộp giới hạn. Phần đầu mô hình YOLOv5 cũng tương tự như các phiên bản YOLOv3 và v4 trước đó.

SCIENCE - TECHNOLOGY Số 12.2022 ● Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC
67
Hình 2. Mô hình chi tiết mạng YOLOv5 Backbone network là một mạng nơ-ron tích chập, nó trích xuất các feature maps có kích thước khác nhau từ hình ảnh đầu vào bằng đa tích chập và pooling. Như trong hình 1, có bốn lớp feature maps được tạo ra trong backbone network. Kích thước của chúng là: 152 × 152 điểm ảnh, 76 × 76 điểm ảnh, 38 × 38 điểm ảnh và 19 × 19 điểm ảnh. Với các feature maps có kích thước khác nhau, neck network kết hợp các feature maps của các kích thước khác nhau để thu được nhiều thông tin theo ngữ cảnh hơn và giảm thất thoát thông tin. Trong quá trình hợp nhất, cấu trúc feature pyramid (kim tự tháp đặc trưng) của FPN và PAN được sử dụng. Cấu trúc FPN truyền tải các đặc điểm ngữ nghĩa mạnh mẽ từ các feature maps trên cùng vào các feature maps thấp hơn. Đồng thời, cấu trúc PAN truyền tải các localization features mạnh mẽ từ các feature maps thấp hơn vào các feature maps cao hơn. Hai cấu trúc cùng tăng cường khả năng kết hợp feature của neck network. Đặc biệt, có thể thấy rằng có ba lớp hợp nhất đối tượng tạo ra ba tỷ lệ feature maps mới với các kích thước 76 × 76 × 255, 38 × 38 × 255 và 19 × 19 × 255, trong đó 255 cho biết số kênh. Kích thước của feature maps càng nhỏ thì diện tích hình ảnh mà mỗi đơn vị lưới trong feature maps tương ứng càng lớn. Điều này cho thấy rằng nó phù hợp để phát hiện các đối tượng lớn từ bản đồ đối tượng 19 × 19 × 255, trong khi feature maps 76 × 76 × 255 thích hợp để phát hiện các đối tượng nhỏ. Từ các feature maps này, phần mạng đầu ra thực hiện việc phát hiện và phân loại đối tượng. Trong kiến trúc, module trọng tâm sẽ cắt các hình ảnh và nối chúng với nhau, mục đích của nó là trích xuất các tính năng tốt hơn trong quá trình lấy mẫu xuống. Module CBL bao gồm các module tích chập, chuẩn hóa và chức năng kích hoạt LeakyReLU. Rõ ràng, có hai loại CSP (cross-stage partial network) trong YOLOv5. Một được sử dụng trong backbone network và một cái khác được sử dụng ở neck. Với cross-layer connectivity để kết nối các lớp trước và sau của mạng, mạng CSP nhằm mục đích cải thiện tốc độ suy luận trong khi duy trì độ chính xác bằng cách giảm kích thước mô hình. Hai loại mạng CSP có sự khác biệt nhỏ về cấu trúc. Mạng CSP trong backbone bao gồm một hoặc nhiều đơn vị còn lại, trong khi mạng CSP ở neck thay thế các đơn vị còn lại bằng các module CBL. Hơn nữa, module SPP có nghĩa là module SPP thực hiện việc maximum pooling với kernel khác nhau và kết hợp các tính năng thông qua việc nối chúng lại với nhau. Việc tổng hợp bắt chước hệ thống thị giác của con người bằng cách thực hiện các thao tác giảm kích thước (lấy mẫu xuống) để biểu diễn các đặc điểm hình ảnh ở mức độ trừu tượng cao hơn. Nó chủ yếu là nén feature maps đầu vào. Một mặt, nó làm cho feature maps nhỏ hơn và đơn giản hóa độ phức tạp tính toán của mạng; ngoài ra, nó thực hiện nén tính năng và trích xuất các tính năng chính. Module Concat có nghĩa là hoạt động nối tensor. 3.2. Tăng cường dữ liệu trong YOLOv5 Với mỗi lô đào tạo, YOLOv5 chuyển dữ liệu đào tạo qua bộ tải dữ liệu, giúp tăng cường dữ liệu trực tuyến. Trình tải dữ liệu thực hiện ba loại tăng cường: điều chỉnh tỷ lệ, điều chỉnh không gian màu và tăng khảm. Điều mới lạ nhất trong số này là tăng dữ liệu khảm, kết hợp bốn hình ảnh thành bốn ô theo tỷ lệ ngẫu nhiên. Trình tải dữ liệu khảm có nguồn gốc từ YOLOv3 PyTorch và bây giờ là repo YOLOv5. Tính năng tăng cường khảm đặc biệt hữu ích cho điểm chuẩn phát hiện đối tượng COCO phổ biến, giúp mô hình học cách giải quyết "vấn đề đối tượng nhỏ" biết rõ - nơi các đối tượng nhỏ không được phát hiện chính xác như các đối tượng lớn hơn. 3.3. Pytorch framework Khác với những phiên bản tiền nhiệm, YOLOv5 được phát triển dựa trên PyTorch thay vì DarkNet. Đây là một điểm cộng không nhỏ cho YOLOv5 vì PyTorch phổ biến hơn rất nhiều. Pytorch là package sử dụng các thư viện của CUDA và C/C++ hỗ trợ các tính toán trên GPU nhằm gia tăng tốc độ xử lý của mô hình. 2 mục tiêu chủ đạo của package này hướng tới là: ● Thay thế kiến trúc của numpy để tính toán được trên GPU. ● Deep learning platform cung cấp các xử lý tốc độ và linh hoạt. 3.4. Phương pháp triển khai Chúng tôi áp dụng YOLOv5 cho việc nhận diện một đối tượng duy nhất là người. Từ đó, đưa ra tính toán về mặt khoảng cách. Việc tính được khoảng cách chính xác chỉ dựa vào hình ảnh là điều hết sức khó khăn, nên chúng tôi đề ra một giải pháp đó là sử dụng hẳng số tùy chỉnh về mặt khoảng cách dựa trên khung hình ảnh đầu ra, để tiến hành xử lí đối tượng đó có phải làm đám đông hay không. Dựa trên dữ liệu đầu ra của bounding box (có dạng xyxy) là một mảng chứa các giá trị x, y trên trục tọa độ của bounding box, sau đó tính giá trị điểm trung tâm của bounding box. Sau khi đã xác định được tâm của bounding box thì chúng tôi sử dụng thêm các thư viện cần thiết để thiếp lập kẻ nối giữa 2 đối tượng thể hiện sự nguy cơ lây lan cao hay thấp hoặc là không có nguy cơ.

CÔNG NGHỆ Tập san SINH VIÊN NGHIÊN CỨU KHOA HỌC ● Số 12.2022
68
KHOA H
ỌC
4. THỰC NGHIỆM Cơ sở dữ liệu Hiện nay có rất nhiều bộ dữ liệu về huấn luyện các tác vụ khác nhau liên quan đến đối tượng là con người. Đối với bài toán nhận diện khuôn mặt có thể kể đến các bộ CoCo, Iris,… Việc sử dụng các bộ dataset có sẵn chắc chắn không đáp ứng đủ nhu cầu về mặt dữ liệu, nên chúng ta sẽ phải dùng thêm các dữ liệu từ bên ngoài. Việc gán nhãn này có thể rất tốn thời gian và công sức vì việc gán nhãn hoàn toàn được làm bằng thủ công. Hình 3. Hình ảnh sau khi gán nhãn thủ công Huấn luyện Mô hình đều được huấn luyện trên Google Colab kết hợp với phần mềm Weights & Bias để có thể tạo ra mô hình phù hợp với dữ liệu. Mô hình huấn luyện trên một tập dữ liệu chuẩn bị sẵn cái file train, test, validation riêng. Thay đôi chu kỳ sau mỗi lần train để kiểm tra độ fit của mô hình. Đánh giá trên tập thực nghiệm Việc train mô hình với chỉ 1 đối tượng đôi khi có thể làm giảm độ chính xác của mô hình, sau khi nhiều lần train và tìm ra bản tối ưu nhất thì mô hình cảnh báo đám đông đạt độ chính xác 70,65% khi chạy trên tập dữ liệu thử nghiệm và đạt 30 fps khi chạy trên thời gian thực. Đây mới là mô hình thử nghiệm vẫn còn cần cải thiện thêm. Dự kiến độ chính xác sẽ tăng từ 8 - 15%. Triển khai hệ thống Sau khi đã hoàn thiện việc huấn luyện và thử nghiệm các mô hình của các bài toán con, chúng tôi sẽ thực hiện triển khai chạy hoàn chỉnh trên windows. Các phần cứng cần có sẽ là một bộ CPU cơ bản (2 - 4 nhân), GPU có khả năng xử lý tính toán và một camera HD. Camera sẽ nhận vào hình ảnh trực tiếp của người dùng, sau đó sẽ đưa qua các bước tiền xử lý (chuẩn hóa kênh màu, chuẩn hóa kích thước) rồi đưa vào mô hình nhận diện mô hình sẽ phân tích và đưa kết quả lên màn hình. Từ tọa độ bouding box sau khi mô hình dự đoán, hệ thống sẽ vẽ 1 đường line với độ dài là một hằng số cho sẵn. Khi khoảng cách giữa 2 người từ 200 đến 250 thì hệ thống sẽ hiển thị low risk, ngược lại nếu nhỏ hơn 200 sẽ hiển thị high risk. Hình 4. Kết quả sau khi mô hình 5. KẾT LUẬN Bài báo đã đưa ra một phương pháp sử dụng mạng Yolov5 để xây dựng thành một hệ thống cảnh báo đám đông áp dụng các kiến thức về trí tuệ nhân tạo và học sâu. Đây sẽ là cơ sở để các nghiên cứu về phát hiện đối tượng nói riêng và AI nói chung có thể được phát triển trong tương lai với những cải tiến về độ chính xác và tốc độ. TÀI LIỆU THAM KHẢO [1]. R. Girshick, J. Donahue, T. Darrell, J. Malik, U. Berkeley. Rich feature hierarchies for accurate object detection and semantic segmentation Tech report (v5), https://arxiv.org/pdf/1311.2524.pdf. [2]. R. Girshick and Microsoft Research. Fast R-CNN. https://arxiv.org/pdf/1504.08083.pdf. [3]. S. Ren, K. He, R. Girshick, J. Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Network. https://arxiv.org/pdf/1506.01497.pdf [4]. W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C. Fu, A.C. Berg. SSD: Single Shot MultiBox Detector. https://arxiv.org/pdf/1512.02325.pdf. [5]. J. Redmon, S. Divvala, R. Girshick, A. Farhadi. You only look once: Unified, Real-Time Object Detection. https://arxiv.org/pdf/1506.02640.pdf. [6]. YOLOv5. Yolov5. https://github.com/ultralytics/yolov5.

