NhanDienBienBaoGiaoThongYOLOv5.docx

25 16 0
NhanDienBienBaoGiaoThongYOLOv5.docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CHƯƠNG 1. GIỚI THIỆU3 1.1 Giới thiệu3 1.2 Mục tiêu của đề tài3 1.3 Giới hạn đề tài3 1.4 Phương pháp nghiên cứu4 1.5 Bố cục đề tài4 CHƯƠNG 2: MÔ HÌNH YOLOV5 CHO BÀI TOÁN NHẬN DIỆN BIỂN BÁO5 2.1 Thuật toán Yolov55 2.2 Cấu trúc nhận diện vật thể của YOLOv55 2.3 Đặc điểm của YOLOv5 với các phiên bản trước của YOLO7 2.3.1 Loại bỏ Grid Sensitivity7 2.3.2. Xử lý data9 2.3.3. EMA Weight11 2.3.4. Loss scaling11 2.3.5. Anchor Box12 2.3.6. Tổng kết12 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG NHẬN DIỆN13 3.1 Chuẩn bị folder training data13 3.2 Thiết lập môi trường để huấn luyện và nhận dạng biển báo giao thông15 CHƯƠNG 4: KẾT QUẢ18 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN21 5.1 Kết luận21 5.1.1 Ưu điểm21 5.1.2 Nhược điểm21 5.2 Hướng phát triển21 TÀI LIỆU THAM KHẢO23   CHƯƠNG 1. GIỚI THIỆU 1.1 Giới thiệu Trong thời đại công nghệ 4.0, thời đại của internet of things, tất cả mọi thứ đều đc điều khiển thông qua công nghệ tự hành ( tức là tiếp nhận thông tin, xử lý và đưa ra quyết định nhờ vào trí tuệ nhân tạo được đào tạo chính xác với tỉ lệ sai sót thấp nhất có thể. Chúng ta đã từng nghe về xe ô tô tự hành và có thể hoàn toàn tin tưởng vào chiếc xe có thể di chuyển. Nhưng để đạt được mức độ chính xác và an toàn các phương tiện cần phải hiểu và tuân thủ quy tắc giao thông. Trong thời điểm phát triển của AI và công nghệ, nhiều nhà nghiên cứu của các công ty lớn như Tesla, Uber, Toyota, ... đang nghiên cứu về xe tự hành, tự lái. Để đạt được độ chính xác trong công nghệ này thì các phương tiện phải giải thích được các biển báo giao thông và đưa ra quyết định sao cho phù hợp. Vậy biết được làm thế nào xe có thể nhận diện được biển báo giao thông và ứng dụng trí tuệ nhân tạo như thế nào thì thông quá project này chúng ta sẽ tìm hiểu một mô hình có tên YOLOv5 cho bài toán phân loại vật thể, cụ thể là được ứng dụng vào đề tài “Phân loại biển báo giao thông”.

1 | Page CHƯƠNG GIỚI THIỆU 1.1 Giới thiệu Trong thời đại công nghệ 4.0, thời đại internet of things, tất thứ đc điều khiển thông qua công nghệ tự hành ( tức tiếp nhận thông tin, xử lý đưa định nhờ vào trí tuệ nhân tạo đào tạo xác với tỉ lệ sai sót thấp Chúng ta nghe xe ô tô tự hành hồn tồn tin tưởng vào xe di chuyển Nhưng để đạt mức độ xác an tồn phương tiện cần phải hiểu tuân thủ quy tắc giao thông Trong thời điểm phát triển AI công nghệ, nhiều nhà nghiên cứu công ty lớn Tesla, Uber, Toyota, nghiên cứu xe tự hành, tự lái Để đạt độ xác cơng nghệ phương tiện phải giải thích biển báo giao thông đưa định cho phù hợp Vậy biết làm xe nhận diện biển báo giao thơng ứng dụng trí tuệ nhân tạo thơng q project tìm hiểu mơ hình có tên YOLOv5 cho tốn phân loại vật thể, cụ thể ứng dụng vào đề tài “Phân loại biển báo giao thông” 1.2 Mục tiêu đề tài - Tìm hiểu Deep Learning ứng dụng - Hiểu rõ sở lý thuyết, kiến trúc mơ hình YOLO cho toán nhận diện vật thể - Sử dụng thư viện hỗ trợ, môi trường ảo để thực thi mô hình 1.3 Giới hạn đề tài Trong đề tài nhận biết loại biển báo khác Hệ thống dừng lại việc nghiên cứu, chưa thể áp dụng thị trường | Page 1.4 Phương pháp nghiên cứu - Thu thập tài liệu, tham khảo ứng dụng liên quan có trước - Dựa kiến thức học cách huấn luyên mô ̣ t m ̣ ạng nơ-ron - Đọc thêm tài liêu v ̣ tra cứu mạng - Tham khảo ý kiến thực theo hướng dẫn giảng viên 1.5 Bố cục đề tài - Chương 1: Tổng quan Ở chương này, trình bày mục tiêu, giới hạn đề tài, phương pháp nghiên cứu, bố cục đặt vấn đề - Chương 2: Mơ hình Yolov5 cho toán nhận diện biển báo Ở chương này, trình bày hình thành phát triển Yolo thuật toán Yolov5 - Chương 3: Thiết kế hệ thống Ở chương này, trình bày sơ đồ hoạt động, thiết kế phần mềm, chức hoạt động phần mềm - Chương 4: Kết thực Ở chương này, trình bày kết đạt sau thiết kế thi công - Chương 5: Kết luận hướng phát triển Ở chương tổng kết lại, trình bày ưu điểm, khuyết điểm trình nghiên cứu hướng phát triển đề tài | Page - Tài liệu tham khảo | Page CHƯƠNG 2: MƠ HÌNH YOLOV5 CHO BÀI TỐN NHẬN DIỆN BIỂN BÁO 2.1 Thuật toán Yolov5 YOLOv5 phần mở rộng tự nhiên YOLOv3 PyTorch Glenn Jocher Kho lưu trữ YOLOv3 PyTorch điểm đến phổ biến cho nhà phát triển để chuyển trọng số YOLOv3 Darknet sang PyTorch sau chuyển sang sản xuất Những cải tiến ban đầu gọi YOLOv4 việc phát hành gần YOLOv4 khuôn khổ Darknet, để tránh xung đột phiên bản, đổi tên thành YOLOv5 Thuật toán YOLOv5 thừa kế phương pháp YOLO, nhiên YOLOv5 áp dụng số thuật toán phát vật thể nhanh, tối ưu hóa phép tốn thực song song giúp tăng tốc độ nhận diện giảm thời gian huấn luyện cách tối ưu 2.2 Cấu trúc nhận diện vật thể YOLOv5 Cấu trúc nhận diện vật thể YOLOv5 thường có phần thể hình 2-1 | Page Hình 2-1 Cấu trúc nhận diện vật thể YOLOv5 - Backbone: Backbone mơ hình pre-train mơ hình học chuyển (transfer learning) khác để học đặc trưng vị trí vật thể Các mơ hình học chuyển thường VGG16, ResNet50, Ở YOLOv5 sử dụng C3 module cải tiến từ CSPResBlock YOLOv4 với chi tiết hình 2-2 C3 module lớp Convolution so với CSPResBlock Hình 2-1 Sự khác biệt CSPResBlock YOLOv4 (trên) C3 Module (dưới) | Page - Head: Phần head sử dụng để tăng khả phân biệt đặc trưng để dự đoán class bounding-box Ở phần head áp dụng tầng tầng: o Tầng 1: Dense Prediction, dự đoán tồn hình với mơ hình RPN, YOLO, SSD, o Tầng 2: Sparse Prediction dự đoán với mảng dự đốn có vật thể với mơ hình R-CNN series, - Neck: Ở phần Backbone Head, thường có thêm phần Neck Neck thường dùng để làm giàu thông tin cách kết hợp thơng tin q trình bottom-up q trình topdown (do có số thơng tin q nhỏ qua trình bottom-up bị mát nên trình top-down khơng tái tạo lại được) YOLOv5 áp dụng module giống với SPP YOLOv4, nhanh gấp đơi SPP – Fast (SPPF) Kiến trúc SPPF thể hình 2-3 Thay sử dụng MaxPooling song song SPP, SPPF YOLOv5 sử dụng MaxPooling Hơn nữa, kernel size MaxPooling SPPF tồn thay [5, 9, 13][5,9,13] SPP YOLOv4 | Page Hình 2-3 Kiến trúc module SPPF 2.3 Đặc điểm YOLOv5 với phiên trước YOLO 2.3.1 Loại bỏ Grid Sensitivity Trong YOLOv3, Bounding Box tính theo cơng thức Hình 2-4 | Page Hình 2-4 Cơng thức tính Bounding Box YOLOv3 Với trường hợp b x =c x b x =c x +1 giá trị t x , tính chất sigmoid, phải có giá trị âm giá trị dương lớn Để giải vấn đề này, YOLOv4, chúng nhân σ ( t x ) với hệ số > 1.0 Cụ thể, công thức Bounding Box trở thành: Tuy nhiên sang đến YOLOv5 lại sử dụng công thức khác để giải Grid Sensitivity sau: | Page 2.3.2 Xử lý data Các kỹ thuật Data Augmentation áp dụng YOLOv5 bao gồm: - Mosaic Augmentation: Là kỹ thuật ghép hình ảnh lại với nhau, thường ảnh Với ảnh chứa bounding box Từ đó, model học nhiều loại background khác việc ghép ảnh lại - Copy-paste Augmentation: kỹ thuật chép thể đối tượng từ hình ảnh dán chúng vào hình ảnh khác Nó gần giống với Mixup CutMix chép xác pixel tương ứng với mổ đối tượng trái ngược với tất các pixel giới hạn đối tượng bounding box 10 | P a g e - Random Affine transform: phương pháp ánh xạ tuyến tính bảo toàn điểm, đường thẳng mặt phẳng Tập hợp đường thẳng song song song song sau phép biến đổi affine Kỹ thuật biến đổi affine thường sử dụng để sửa biến dạng biến dạng hình học xảy với góc máy ảnh khơng lý tưởng Ở ta dùng để tăng cường liệu chúng sửa cách ngẫu nhiên - MixUp Augmentation: kĩ thuật Augmentation thành cơng Classification Ý tưởng MixUp tốn Classification trộn lẫn pixel thơng qua nội suy ảnh Cùng lúc đó, one-hot label ảnh biến đổi tương đương theo tỉ lệ trộn lẫn 11 | P a g e 2.3.3 EMA Weight Thông thường, training, ta cập weight model trình backward pass Tuy nhiên, EMA, ta tạo model y hệt với model sử dụng training, cách cập nhật weight tuân theo công thức Exponential Moving Average (EMA): θ’←βθ’+(1−β)θ 2.3.4 Loss scaling YOLOv5 có sử dụng đầu từ PAN Neck, để phát objects scale khác Tuy nhiên, Glenn Jocher nhận thấy ảnh hưởng object scale đến Objectness Loss khác nhau, đó, cơng thức Objectness Loss thay đổi sau: 2.3.5 Anchor Box Anchor Box YOLOv5 nhận thay đổi lớn Đầu tiên sử dụng Auto Anchor, kĩ thuật áp dụng giải thuật di truyền (GA) vào Anchor Box 12 | P a g e sau bước k-means để Anchor Box hoạt động tốt với custom dataset người dùng, khơng cịn hoạt động tốt COCO Thứ hai offset tâm object để lựa chọn nhiều Anchor Box cho object Ý tưởng thể hình dưới: 2.3.6 Tổng kết Kiến trúc YOLOv4 nâng cấp lên YOLOv5 tóm tắt sau: - Backbone: CSPResidualBlock > C3 module - Neck: SPP + PAN > SPPF + PAN - Head: Giữ nguyên từ YOLOv3 Các thay đổi khác YOLOv5 bao gồm: - Data Augmentation: Mosaic Augmentation, Copy-paste Augmentation, - MixUp Augmentation Loss function: Thêm hệ số scale cho Objectness Loss Anchor Box: Auto Anchor sử dụng GA Loại bỏ Grid Sensitivity công thức khác EMA Weight 13 | P a g e CHƯƠNG 3: THIẾT KẾ HỆ THỐNG NHẬN DIỆN Các bước chuẩn bị để huấn luyện YOLOv5 Custom Dataset: - Chuẩn bị Dataset - Cài đặt phần phụ thuộc cần thiết YOLOv5 - Tải xuống liệu Custom YOLOv5 Object Detection - Xác định cấu hình kiến trúc mơ hình YOLOv5 - Huấn luyện a custom YOLOv5 Detector - Đánh giá hiệu suất YOLOv5 - Trực quan hóa liệu huấn luyện YOLOv5 - Chạy YOLOv5 Inference hình ảnh thử nghiệm - Xuất trọng số YOLOv5 lưu để suy luận kết 3.1 Chuẩn bị folder training data Ta tải dataset xuống theo link sau: https://github.com/makerhanoi/viadatasets Đây dataset gán nhãn không cần gán nhãn thủ công cho ảnh 14 | P a g e Hình 3-3 Biển báo tập images Hình 3-4 Các tệp Text Document folder labels 15 | P a g e File txt có format sau : - Mỗi hàng đối tượng - Mỗi hàng có format: class x_center y_center width height - Toạ độ box normalized (từ 0-1) theo format xywh - Class 3.2 Thiết lập môi trường để huấn luyện nhận dạng biển báo giao thông Ở đề tài ta sử dụng Google Colab Đây môi trường làm việc Giới thiệu sơ qua Colaboratory hay gọi Google Colab, sản phẩm từ Google Research, cho phép thực thi Python tảng đám mây, đặc biệt phù hợp với Data analysis, machine learning giáo dục Colab không cần yêu cầu cài đặt hay cấu hình máy tính, thứ chạy thơng qua trình duyệt, bạn sử dụng tài nguyên máy tính từ CPU tốc độ cao GPUs TPUs cung cấp cho bạn Sử dụng Google Colab có lợi ích ưu việt như: sẵn sàng chạy Python thiết bị có kết nối Internet mà khơng cần cài đặt, chia sẻ làm việc nhóm dễ dàng, sử dụng miễn phí GPU cho dự án AI Sau chuẩn bị dataset xong, ta vào Google Colab, kết nối chạy dòng lệnh sau 16 | P a g e Dòng lệnh giúp ta kết nối liệu Google Drive bạn kết nối cách nhấn vào biểu tượng khoanh tròn ảnh Bước ta chạy dòng lệnh sau Dòng lệnh giúp ta clone YOLOv5 Google Drive Ở dòng code ta chạy dòng code để cài đặt thư viện cần thiết cho mơ hình Bước ta tải dataset ta chuẩn bị trước lên Google Drive sau ta vào theo đường dẫn yolov5/data/coco128.yaml Ở file ta chỉnh sửa tên nhãn, lớp địa train, val lưu lại train: /content/drive/MyDrive/BTLDL/coco128 val: /content/drive/MyDrive/BTLDL/coco128 17 | P a g e # number of classes nc: # class names names: [ 'stop', 'left', 'right', 'straight', 'no_left', 'no_right' ] 3.3 Training Tiếp theo để xác định cấu hình kiến trúc mơ hình YOLOv5 ta viết tệp cấu hình mơ hình cho custom object detector Chọn base model (mơ hình sở) nhỏ nhất, nhanh YOLOv5 YOLOv5 đề xuất 11 versions theo hình 3-5 Hình 3-5 Các version YOLOv5 18 | P a g e Với data coco128.yaml file, ta sẵn sàng để huấn luyện, để bắt đầu huấn luyện, ta chạy the training command theo tùy chọn sau: - img: xác định kích thước hình ảnh đầu vào - batch: số ảnh để load vào (16-32) lần - epochs: số lần học - data: đặt đường dẫn đến tệp yaml - cfg: định cấu hình mơ hình - weights: định đường dẫn tùy chỉnh đến weights - name: tên kết - nosave: lưu điểm kiểm tra cuối - cache: hình ảnh nhớ cache để train nhanh Tiến hành huấn luyện nhận dạng biển báo giao thông YOLOv5 python /content/drive/MyDrive/BTLDL/yolov5/train.py -img 416 batch 16 epochs 30 data /content/drive/My Drive/BTLDL/yolov5/data/coco128.yaml weights yolov5s pt Hình 3-6 Quá trình huấn luyện YOLOv5 CHƯƠNG 4: KẾT QUẢ Nhận diện biển báo giao thông qua 10 files ảnh folder test_image 19 | P a g e Sau upload ảnh test lên Google Drive ta vào Google Colab để bắt trình nhận diện lưu kết dự đoán YOLOv5 ! python /content/drive/MyDrive/BTLDL/yolov5/detect.py weight /content/drive/MyDrive/BTLDL/yolov5/runs/train /exp10/weights/best.pt source test_image \ img 416 conf 0.25 iou 0.5 Hình 4-1 thể YOLOv5 nhận dạng labels biển báo video Hình 4-1 Nhận dạng label biển báo 10 file ảnh Sau kết lưu lại ta vào đường dẫn yolov5→runs→dectect hình 4-2 để xem kết nhận diện 20 | P a g e

Ngày đăng: 07/01/2023, 15:03

Tài liệu cùng người dùng

Tài liệu liên quan