Áp dụng thuật toán YOLOv5 trong nhận dạng hư hỏng đường bộ để quản lý chi phí duy tu bảo dưỡng

MỤC LỤC

DANH SÁCH HÌNH ẢNH

Minh họa cho việc nạp dữ liệu đầu vào truth bounding box cho đối tượng là loại hư hỏng mặt đường……….49. Sơ đố huấn luyện của Yolov5 để phát hiện các đối tượng là hư hỏng đường bộ……….

TẦNG GIAO THÔNG

Các nghiên cứu trong và ngoài nước về phương pháp nhận biết hư hỏng mặt đường

2018 Nhận diện, phân loại hư hỏng đường bằng việc sử dụng mạng lưới thần kinh sâu với hình ảnh điện thoại thông minh.

Các nghiên cứu trong và ngoài nước ứng dụng Yolov5

2021 Phương pháp phát hiện mục tiêu theo thời gian thực của Apple dành cho rô- bốt chọn dựa trên YOLOv5 được cải tiến.

Phân tích các nghiên cứu và ưu nhược điểm của các nghiên cứu về nhận biết hư hỏng mặt đường

Khả năng phát hiện vết nứt vẫn sai do nhiều thứ, bao gồm cả việc thiếu ánh sáng và kết cấu không đồng nhất của cốt liệu mặt. Nhưng chỉ phát hiện một loại hư hỏng và có tỷ lệ lỗi cao trong điều kiện thiếu ánh sáng, biến. Tốc độ phát hiện chậm nên khi phương tiện duy chuyển nhanh hơn đặt biệt là trên các cao tốc thì các vị trí hư hỏng đã không được phát hiện.

Hạn chế là tương đối ít trong số những hình ảnh này chứa các ví dụ về ổ gà, tự nhiên cản trở hiệu suất của các mô hình đã phát triển trong việc phát hiện ổ gà và cuối cùng là ảnh hưởng đến đánh giá chung về khả năng ứng dụng thực tiễn.

Phân tích các nghiên cứu và ưu nhược điểm của các nghiên cứu ứng dụng Yolov5

InvolutionBottle neck, SE để giảm số lượng tham số cũng như phép tính và cải thiện độ nhạy của tính năng kênh. Mô hình cho ra một sản phẩm nhận diện công nhân có đội mũ bảo hộ hay không để tạo ra một công cụ cho người quản lý để giám sát cũng như giảm thiểu số vụ tai nạn không đáng có. Để nhận diện người công nhân có đội mũ hay không thì phải thông qua camera để nhận diện, dẫn đến không thể kiểm soát tốt được công nhân ở những nơi khuất tầm nhìn hoặc không có camera.

Cải tiến nhẹ BottleneckCSP để làm giảm số lượng tham số trong module, thay đổi kích thước của các anchor box cho phù hợp để xác định được khoảng cách các quả táo ở xa nhằm xác định tốt mục tiêu hái cho robot hái táo. Tuy nhiên, thuật toán được đề xuất trong nghiên cứu được thiết kế chỉ để nhận dạng trái cây vào ban ngày nên đây là một hạn chế của nghiên cứu. Tuy nhiên, nhìn chung có một số lượng lớn cây táo xanh được trồng trong cùng một vườn táo, nhưng thuật toán đề xuất trong bài báo không thể.

Cách nhận biết này chỉ để nhận dạng khẩu trang, nên vài trường hợp khách hàng dùng tay che một phần mặt thì sẽ không nhận dạng thành công. Nghiên cứu cần cải thiện tình trạng không thể nhận ra mặt nạ che bằng tay hoặc các vật che chắn khác, giúp mọi người vào trung tâm mua sắm thuận tiện hơn trong môi trường đặc biệt và hệ thống nhận dạng sẽ thông minh hơn.

CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU NHẬN DIỆN ĐỐI TƯỢNG

  • Convolution Neutral Network (CNN) .1 Tìm hiểu về CNN
    • Các mô hình phát hiện đối tượng

      Các mạng neural nhân tạo có thể có cấu trúc đơn giản với một vài tầng hoặc có thể là mạng nơ-ron sâu (deep neural networks - DNN) với nhiều tầng ẩn, giúp chúng có khả năng học và biểu diễn các đặc trưng phức tạp từ dữ liệu. Tính chập là một phép toán rất quan trọng nhằm biến đổi thông tin đầu vào thông qua phép tính chập và một Kernel để trả về một đầu ra được giữ lại những đặc trưng chính và loại bỏ đi những đặc trưng mà bộ lọc không quan tâm. Hàm Kích Hoạt: Thường thì sau tầng kết nối đầy đủ sẽ áp dụng một hàm kích hoạt như ReLU, sigmoid, hoặc tang để đưa ra đầu ra phi tuyến tính từ các giá trị tổ hợp tuyến tính từ các nơ-ron ở tầng trước đó.

      Quy trình hoạt động của Faster R-CNN (Faster Region-based Convolutional Neural Network) bao gồm hai mô-đun chính: Mạng đề xuất khu vực (RPN) và R-CNN (Region- based Convolutional Neural Network).  R-CNN (Region-based Convolutional Neural Network): R-CNN là một mạng nơ- ron tích chập sử dụng để phân loại và chính xác dự đoán vị trí của các đối tượng trong từng khu vực ứng viên đã được đề xuất bởi RPN.  Bước 3: Tạo ra các đề xuất (proposals): Dựa trên dự báo bounding box và xác suất, các đề xuất đối tượng được tạo ra bằng cách kết hợp các bounding box dự báo từ các ô lưới và thực hiện non-maximum suppression để loại bỏ các bounding box trùng lắp.

      Các kiến trúc cơ bản của deep learning bao gồm: MobileNet, Inception, ResNet và Inception ResNet, cả bốn 04 kiến trúc này rất hiệu quả trong nhiều nhiệm vụ trong deep learning, bao gồm nhận diện đối tượng, phân loại ảnh và phân đoạn ảnh. Trong MobileNet, khái niệm được giới thiệu về tích chập có thể phân tách theo chiều sâu, phân tích tích chập tiêu chuẩn thành tích chập theo chiều sõu và tớch chập 1 ì 1, được sử dụng để xõy dựng mạng nơ-ron sõu, trọng lượng nhẹ. Kiến trúc Inception (hay còn được gọi là GoogLeNet) tập trung vào việc xây dựng các module Inception, trong đó các bước tích chập với các kích thước khác nhau được thực hiện song song và kết hợp thông tin từ các kích thước khác nhau của feature map.

      Kiến trúc Inception-Resnet chính xác hơn so với các mô hình tiên tiến nhất trước đây vì nó báo cáo độ chính xác của việc xác thực trên tiêu chuẩn phân loại dựa trên một phần cắt hình ảnh.

      Hình 3.3: Mô hình neural nhân tạo
      Hình 3.3: Mô hình neural nhân tạo

      MÔ HÌNH NHẬN DIỆN YOLOV5

      • Cách hoạt động của mô hình Yolo
        • Những cải tiến của mô hình phát hiện Yolov5

          Hàm loss funtion mục đích để tối ưu mô hình của mình sao cho tốt nhất hoặc dùng để đánh giá độ tốt của mô hình, 𝑦̂ càng gần y thì càng tốt, có nghĩa là kết quả dự đoán của mô hình càng gần giá trị thực tế thì mô hình đó càng tốt. Neck: Neck (cổ) là phần giữa của mô hình và có nhiệm vụ kết hợp các đặc trưng từ các lớp trước đó để tạo ra các đặc trưng chung, giúp cải thiện khả năng nhận diện và localize các đối tượng. Phương pháp sẽ tập hợp 4 hình ảnh khác nhau, những hình ảnh này sẽ chọn ngẫu nhiên từ tập dữ liệu và ta sẽ kết hợp 4 hình ảnh này thành 1 Mosaic, sau đây là các bước tạo thành 1 Mosaic.

          Lúc này Backbone sẽ thu được các feature map và sau đó kết hợp các đối tượng này thông qua mạng kết hợp Neck để tạo ra feature map P3, P4, P5 (trong YOLOv5, các kích thước được thể hiện với kích thước 80x80, 40x40 và 20x20) để phát hiện các đối tượng nhỏ, vừa và lớn. YOLOv5 cải tiến CSPResBlock của YOLOv4 thành C3 module (hình 17) với việc bỏ đi một lớp convolution việc bỏ 1 lớp này giúp cho mô hình nhẹ hơn nên việc YOLOv5 giảm tính toán nhưng hiệu suất lại được tăng lên. SPPF: YOLOv5 áp dụng module giống với module SPP [5] nhưng nhanh hơn, với tên gọi là SPPF (SPP-Fast), SPPF được đặt ở cuối Backbone giúp cải thiện hiệu suất feature extration (trích xuất đặc trưng), thay vì sử dụng MaxPooling song song (hình34) ở phiên bản mới YOLO sử dụng MaxPooling tuần tự (hình 33) và kernal size sẽ thay đổi từ (1x1,3x3,9x9 và 13x13) sang 5x5 cho mỗi lần MaxPooling và stride = 1.

          Ở phiên bản YOLOv5 neck được kết hợp giữa PAN [6] và FPN[7], với FPN sẽ đưa thông tin từ layer trên xuống layer dưới (C3, C4 và C5) nhưng ở FPN không thể đưa thông tin layer từ dưới lên trên. Cách tính TP, TN, FP, FN sẽ sử dụng một thông số tên là IoU(Intersection over union) là tỉ lệ diện tích trùng lặp của 2 bounding box trên diện tích hợp của 2 boungding box.

          Hình 4.2: DarkNet53 của YOLOv3 và CSPDarkNet53 của YOLOv5.
          Hình 4.2: DarkNet53 của YOLOv3 và CSPDarkNet53 của YOLOv5.

          ỨNG DỤNG MÔ HÌNH YOLOV5 ĐỂ NHẬN DIỆN HƯ HỎNG MẶT ĐƯỜNG

          • Quy trình huấn luyện đối tượng của YOLO V5

            Tương tự quá trình huấn luyện máy học để tự động nhận diện đối tượng trong mô hình dựa trên nển tảng khác. Mô hình huấn luyện Yolov5 trong nghiên cứu cũng được xây dựng dựa theo sơ đồ trình tự các bướt trình tự quy trình từ khi tiếp nhận dữ liệu đầu vào đến quá trình máy học và hoàn thiện mô hình để phát hiện đối tượng là các hư hỏng mặt đường trên tập Test. Để thực hiện quá trình gán nhãn và huấn luyện, ta cần chuẩn bị tập dữ liệu khoảng 450 ảnh về các hư hỏng trên mặt đường, với mỗi hình sẽ có 1 file gán nhãn đi kèm.

            Chỉnh sửa name trong file data thành pothole, để khi nhận diện sẽ hiện tên của vật thể mong muốn. Lúc này ta sẽ thấy nc =80 tương ứng với 80 đối tượng ở model mẫu, bước tiếp theo ta sẽ thay đổi nc để phù hợp. Tạo một file custom_yolov5s trong file models với nc sẽ đọc giá trị của num_classes =1 và giữ lại anchor, backbone và head.

            Lấy dữ liệu ở file data.yaml (trong file data có đường dẫn đến file train) và sử dụng model đã được chỉnh sửa custom_yolov5s.yaml. Đầu tiên ta sẽ tải model YOLOv5 về, sửa đổi dòng 215 trong file detect từ yolov5.pt thành best.pt để detect đối tượng ở lần train tốt nhất.

            Hình 5.1: Sơ đồ huấn luyện của Yolo V5 để phát hiện đối tượng là các hư hỏng  đường bộ
            Hình 5.1: Sơ đồ huấn luyện của Yolo V5 để phát hiện đối tượng là các hư hỏng đường bộ