1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning

90 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Tác giả Trương Văn Việt, Trần Thảo Nguyên
Người hướng dẫn ThS. Phạm Minh Quân
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật Máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 90
Dung lượng 54,73 MB

Cấu trúc

  • 2.5.8. Kiến trúc SSD - Single Shot MultiBox Detector (43)
  • 2.5.9. MobileNetV3 SSD w.esccscssssssssssssessesssecsssssssccsssusessssseseessiscesssneseessnes 43 Chuong3. TIỀN HANH THUC NGHIEM .....sssccssssssssscssseescsssseecesssiescesssessessies 52 3.1. _ Sơ đồ hệ thongecceccceccccsssseescssssescssssessssssesccsssssescssssseecsssnecesssuneeesssunscesssesse 52 3.1.1. Sơ đồ phần cứng.........................................-----c-¿©222++seccvrererrrkerrrrrrrvee 52 3.1.2. Sơ đồ phần mềm.................................------:-2++++2E++++ttEEEEetttrrxerrrrrrrree 53 3.2. Cài đặt hệ thống........................................----2222 2 2vcrrttEEEErrrrrrrrrrrrrrrrrrrerrrrer 54 3.3... Thiết lập hệ thống và lắp đặt.........................----:¿222++zetetrkxerrrrrrkrrerrrkerrer 54 .."ắ...Ă (48)
  • 3.6. Training mOdelL..................................- ôk1 HH 66 3.7... Thực nghiệm từng ImOdel..........................---¿- ¿+ + x+k+x£vEvxeEexserveereerrksererkeererl 67 3.7.1. Đối với model xác định biển báo giao thông (71)
  • Hinh 2.12 Anh Semantic segmentation trên một đoạn đường [12] (0)

Nội dung

Từ thực trạng đó đề tàixây dựng chương trình điều khiển xe tự hành ngày càng được nhiều sự quan tâm vàphát triển, các đề xuất về giải pháp được không ngừng phát triển, tiêu biểu là các c

Kiến trúc SSD - Single Shot MultiBox Detector

Các thuật toán thuộc nhóm region proposal tuy cho kết quả có độ chính xác cao, nhưng chúng có một nhược điểm rất lớn là thời gian huấn luyện và đưa quyết định rất chậm Faster R-CNN có tốc độ xử lý khoảng 7 FPS trên tập dữ liệu

PASCAL VOC 2007 Thuật toán Single shot detection chạy khá nhanh, nhưng độ chính xác của nó không cao lắm (không bằng region proposal) Thuật toán có vấn đề về việc nhận dạng các đối tượng có kích thước nhỏ.

Cũng giống như hầu hết các kiến trúc object detection khác, đầu vào của SSD là tọa độ bounding box của vật thê (hay còn gọi là offsets của bounding box) và nhãn của vật thể chứa trong bounding box Điểm đặc biệt làm nên tốc độ của

SSD model là mô hình sử dụng một mạng neural duy nhất Cách tiếp cận của nó dựa trên việc nhận diện vật thé trong các features map (là một output shape 3D của một mang deep CNN sau khi bỏ các fully connected layers cuối) có độ phân giải khác nhau Mô hình sẽ tạo ra một lưới các ô vuông gọi là grid cells trên các feature map, mỗi ô được gọi là một cell và từ tâm của mỗi cell xác định một tập hợp các boxes mặc định (default boxes) dé dự đoán khung hình có khả năng bao quanh vật thé Tai thời điểm dự báo, mạng neural sẽ trả về 2 giá trị đó là: phân phối xác suất nhãn của vật thê chứa trong bounding box và một tọa độ gọi là offsets của bounding box Quá trình huấn luyện cũng là quá trình tinh chỉnh xác suất nhãn và bounding box về đúng với các giá trị ground truth input của mô hình (gồm nhãn và offsets bounding box).

Thêm nữa, network được kết hợp bởi rất nhiều các feature map với những độ phân giải khác nhau giúp phát hiện được những vật thé đa dạng các kích thước và hình dạng Trái với mô hình fast R-CNN, SSD bỏ qua bước tao mặt na region proposal network dé đề xuất vùng vật thé Thay vào đó tat cả quá trình phát hiện vật thể và phân loại vật thê được thực hiện trong cùng | mang Bản thân tên của mô hình - Single Shot MultiBox Detector cũng nói lên được rằng mô hình sử dụng nhiều khung hình box với tỷ lệ scales khác nhau nhằm nhận diện vùng vật thể và phân loại vật thé, giảm thiêu được bước tao region proposal network so với fast R-

CNN nên tăng tốc độ xử lý lên nhiều lần mà tốc độ xử lý vẫn đảm bảo Bên dưới là bảng so sánh tốc độ running của các mô hình object detection.

Kỹ thuật bounding box được sử dụng trong SSD được lấy ý tưởng từ Szegedy, một phương pháp sử dụng nhiều bounding box phù hợp với mọi đối tượng lớn nhỏ. Dưới đây là kiến trúc của multi-scale convolution prediction được sử dụng trong SSD.

Hàm lỗi của MultiBox là sự kết hợp của 2 thành phần tương ứng với 2 chức năng của SSD:

Confidence Loss: thành phần này tính toán tỉ lệ rơi vào class mà bounding box được tính toán Độ đo cross-entropy được sử dụng đề đo thành phần này.

Location Loss: Thành phan này ước lượng sự sai lệch thực tế của bounding box so với tập dữ liệu mẫu L2-Norm được sử dụng ở đây.

Ham loss được xây dựng với 2 thành phan trên có công thức như sau: multibox_loss = confidence_ loss + alpha * location_loss

Giá tri alpha giúp cân bằng được sự ảnh hưởng của location loss Cũng như nhiều mô hình mạng trong deep learning, mục tiêu là tìm những giá trị tham số có thé tối thiểu được hàm Loss tốt nhất, theo đó đưa ra được những dự đoán cảng gần VỚI dữ liệu mẫu.

Logic xoay quanh việc tạo ra bounding box thực sự khá phức tạp Trong

MultiBox, một khái niệm được sử dụng là priors (hay thuật ngữ anchors trong

Faster-R-CNN), là những bounding box được tính toán trước với kích thước có định tuân theo phân phối gần với phân phối của bounding box mẫu Trong thực tế, những priors này được lựa chọn khi tỉ lệ Intersection/Union (IoU) lớn hơn ngưỡng 0.5.

Như mô tả trong hình dưới dây, giá trị IoU tại 0.5 vẫn chưa đủ tốt nhưng nó sẽ là một điểm bắt đầu tương đối ồn cho thuật cho giải thuật bounding box regression

(chính là việc học tham số của mạng) điều này thực sự sẽ tiết kiệm thời gian và đem lại kêt quả tot hon rat nhiêu so với việc bat dau tại một vi trí ngẫu nhiên.

Do đó MultiBox bắt đầu với priors như một prediction khởi tạo với mục đích hồi quy gần hơn với bounding box thực sự.

Ground-truth bounđing box | esses predicted bounding box

Hình 2.19 Sơ đồ giải thích về IoU [17].

Kiến trúc của Multibox bao gồm 11 priors với mỗi feature map cell (8x8, 6x6, 4x4, 3x3, 2x2) và chỉ 1 prior với 1x1 feature map dẫn đến tổng cộng có 1420 priors với mỗi hình anh, do đó cho phép bao phủ hoàn toàn một bức ảnh đầu vào trên những tỉ lệ khác nhau, khiến việc nhận diện những đối tượng ở các kích thước khác nhau trở nên dễ dàng [17].

Không giống với MultiBox, mỗi feature map cell sé được gắn với một tập các bounding box mặc định với số chiều và tỉ lệ khác nhau Các Priors này được lựa chọn băng tay Phương pháp này cho phép SSD tạo được bounding box cho bắt kì kiểu đầu vào nào mà không yêu cầu một phase pre-trained nào cho việc tạo ra priors Ví dụ, giả sử ta có 2 điểm là (x1, y1) và (x2, y2) với mỗi tập b bounding box mặc định cho mỗi feature map cell và c classes cho việc phân loại Với một feature map có kích thước f = m x n, SSD sẽ tính ra f x b x (4+c) giá tri cho feature map này Hình dưới đây minh họa cho ý tưởng cua Fixed Priors

(a) Image with GT boxes (b) 8 x 8 feature map (c) 4 x 4 feature map

Hình 2.20 Cách thức phan chia feature map [18].

SSD dựa trên một tiến trình lan truyền thuận của một kiến trúc chuẩn (chăng hạn VGG16) dé tạo ra một khối feature map output gồm 3 chiều ở giai đoạn sớm.

MobileNetV3 SSD w.esccscssssssssssssessesssecsssssssccsssusessssseseessiscesssneseessnes 43 Chuong3 TIỀN HANH THUC NGHIEM .sssccssssssssscssseescsssseecesssiescesssessessies 52 3.1 _ Sơ đồ hệ thongecceccceccccsssseescssssescssssessssssesccsssssescssssseecsssnecesssuneeesssunscesssesse 52 3.1.1 Sơ đồ phần cứng . -c-¿©222++seccvrererrrkerrrrrrrvee 52 3.1.2 Sơ đồ phần mềm . :-2++++2E++++ttEEEEetttrrxerrrrrrrree 53 3.2 Cài đặt hệ thống 2222 2 2vcrrttEEEErrrrrrrrrrrrrrrrrrrerrrrer 54 3.3 Thiết lập hệ thống và lắp đặt . :¿222++zetetrkxerrrrrrkrrerrrkerrer 54 "ắ Ă

Sự phát triển về mặt học thuật của thị giác máy tính đã tạo ra rất nhiều các models khác nhau với độ chính xác được đo lường trên bộ dữ liệu ImageNet ngày càng được cải thiện Tuy nhiên không phải toàn bộ trong số chúng đều có thể sử dụng được trên các thiết bị gặp hạn chế về tài nguyên tính toán Đề phát triển được những ứng dụng AI trên các thiết bị như mobile, IoT thì chúng ta cần hiểu về tài nguyên của những thiết bị này dé lựa chọn model phù hợp cho chúng Những mô hình ưa chuộng được sử dụng thường là những model có số lượng tính toán ít và độ chính xác cao MobileNet là một trong những lớp mô hình như vậy

MobileNet là một mô hình được nhóm kỹ sư Google phát triển qua các phiên bản và mô hình mới nhất hiện nay là MobileNetV3 với nhiều cải tiến về hiệu năng và độ chính xác ở mô hình này thì được chia thành 2 mô hình mang tên là

MobileNetV3 Small và MobileNetV3 Large. Đây là một trong những mô hình được dùng dé làm basenet cho SSD tốt nhất Mang lại hiệu quả về tốc độ và độ chính cao, phù hợp với bài toán mà chúng tôi đề ra.

2.5.9.2 Kién trúc mang Như đã nói ở phần kiến trúc SSD thì MobileNet SSD sử dụng mạng cơ sở là

MobileNet dé trích xuất feature map Dưới đây là kiến trúc mạng MobileNet SSD với đầu vào có kích thước là 300x300.

MobileNet = through the lastDSC module Classifier: = conv3x3x(4x(classes+4))

Image DSC-3x3x1024 convixix256 conv1ixixi28 conv1x1x128 convixix128 conv1x1x1024 DSC-3x3x512 DSC-3x3x256 DSC-3x3x256 conv3x3x256

Hình 2.24 Câu trúc mạng SSD MobileNet [19].

2.5.9.3 Các thay đổi của MobileNetV3

Chúng ta nhận định răng độ sâu là một trong những nguyên nhân chính dẫn tới sự gia tăng số lượng tham số của mô hình Tích chập tách biệt chiều sâu sẽ tìm cách loại bỏ sự phụ thuộc vào độ sâu khi tích chập mà vẫn tạo ra được một output shape có kích thước tương đương so với tích chập thông thường nhưng thời gian tính toán lại ít hơn Cụ thể quá trình sẽ được chia thành hai bước tuần tự: e Tich chập chiều sâu (Depthwise Convolution): Chúng ta sẽ chia khối input tensor3D thành những lát cắt ma trận theo độ sâu Thực hiện tích chập trên từng lát cắt như hình minh họa bên đưới.

Hình 2.25 Tích chập chiều sâu [20].

Mỗi một channel sẽ áp dụng một bộ lọc khác nhau và hoàn toàn không chia sẻ tham số Điều này có ba tác dụng chính cho mô hình: o Nhận diện đặc trưng: Quá trình hoc và nhận diện đặc trưng sẽ được tách biệt theo từng bộ lọc Nếu đặc trưng trên các channels là khác xa nhau thì sử dụng các bộ lọc riêng cho channel sẽ chuyên biệt hơn trong việc phát hiện các đặc trưng Chang hạn như dau vào là ba kênh RGB thì mỗi kênh áp dụng một bộ lọc khác nhau chuyên biệt. o_ Giảm thiêu khối lượng tính toán: Dé tạo ra một điểm pixel trên output thì tích chập thông thường cần sử dụng k x kx c phép tinh trong khi tích chập chiều sâu tách biệt chỉ cần k x k phép tính. o_ Giảm thiếu số lượng tham số: Ở tích chập chiều sâu cần sử dụng c x k k tham số Số lượng này ít hơn gap c’ lần so với tích chập chiều sâu thông thường.

Kết quả sau tích chập được concatenate lại theo độ sâu Như vay output thu được là một khối tensor3D có kích thước h’x w’ xc. e Tích chập điểm (Pointwise Convolution): Có tác dụng thay đôi độ sâu của output bước trên từ c sang c’ Chúng ta sẽ áp dụng c’ bộ lọc

45 kích thước 7 x 7 x c Như vậy kích thước width và height không thay đổi mà chỉ độ sâu thay đồi.

Kết quả sau cùng chúng ta thu được là một output có kích thước h’x w’x c’.

Số lượng tham số cần áp dụng ở trường hop này là c x c.

Inverted Residual Block và Squeeze And Excitation Blocks Ở MobileNetV1 nhóm kỹ sư Google giới thiệu về tích chập chiều sâu dé giảm số lượng tham số Theo sau đó MobileNetV2 nhóm kĩ sư Google đã giới thiệu về Inverted Residual Blocks để tăng hiệu năng Ở phiên bản MobileNetV3 thì họ thêm Squeeze and Excitation (SE) vào block Residual dé tạo thành một kiến trúc có độ chính xác cao hơn Chúng ta cùng phân tích hình minh họa bên dưới đề thấy sự khác biệt giữa kiến trúc Residual của mạng ResNet thông thường và SE-ResNet (áp dụng thêm Squeeze and Excitation).

SE-ResNet áp dụng thêm một nhánh global pooling có tác dụng ghi nhận bối cảnh của toàn bộ layer trước đó Kết quả sau cùng ở nhánh này ta thu được một véc tơ global context được dùng để scale đầu vào X.

Tương tự như vậy SE được tích hợp vào kiến trúc của một residual block trong MobileNetV3 như trong hình 2.27.

Tai layer thứ 3 có một nhánh Squeeze and Excitation có kích thước (width x height) bằng 1 x 1 có tác dụng tổng hợp vector global context Nhánh này lần lượt đi qua các biến đổi FC -> ReLU -> FC -> hard sigmoid (FC là fully connected layer) Cuối cùng được nhân trực tiếp vào nhánh input dé scale input theo vector

47 global context Các kiến trúc còn lại hoàn toàn giữ nguyên như MobileNetV2

Có hai sự thay đổi dé cải thiện mô hình đó là loại bỏ lớp (layer removal) và phi tuyến tính swith (swish non-linearity). e Loại bỏ lớp ; ; ; ;

Dưới day là một sự thay đôi chu yêu là ở lớp dau tiên và lớp cuôi cùng dưới đây là những điều chỉnh mà bài báo đã thực hiện.

48 o Ở khối cuối, lớp mở rộng có kích thước 7 x 7 lay từ Inverted

Residual Unit của MobileNetV2 chuyền sang pooling layer Có nghĩa là lớp 7 x J hoạt động trên feature map có kích thước J x

1 thay vì 7 x 7 làm tăng hiệu năng tính toán về mặt tính toán và độ trễ. o_ Lớp mở rộng cần rất nhiều tính toán nhưng bây giờ nó được di chuyền sau pooling layer Loại bỏ projection layer và filterling layer khỏi bottleneck layer trước đó.

Hinh 2.30 So sanh giai doan cuối [16]. o Sử dụng 16 bộ lọc trong lớp 3 x 3 thay vi 32 nhưng vẫn giữ lai độ chính xác. e Phi tuyén tinh (Non-Linearity)

Phi tuyên tinh swish được định nghĩa theo công thức sau: swish x = x.ỉ(%)

Ham sigmoid tôn kém về mặt tính toán vi vay ma ho đã sửa đôi lại nó và gọi nó là hard swish hay h-swish, được biểu diễn bởi công thức sau:

Dưới đây là biêu đồ phi tuyến tính

49 sigmoid vs h-sigmoid swish vs h-swish

Hinh 2.31 Sigmoid va phi tuyén tinh swish va h-swish [16].

H-swish không khác nhiều so với swish về mặt đường cong mặc dù nó ít tốn kém hơn về mặt tính toán.

Dưới đây là bảng so sánh với các mô hình khác.

= MnasNet-A oe MnasNet-small ụ MobileNetV2 g MobileNetV3

Multiply Add, Millions uw o a Oo o

Hình 2.32 Độ chính xác giữa các mô hình so với MobileNetV3 [16].

MobileNetV3 đạt được độ chính xác tốt nhất với thời gian training sớm hon các mô hình khác So với MnasNet thì số lượng tham số và thời gian thực hiện cũng thấp hơn.

| mAP | Latency (ms) | Params (M) MAdds (B)

Hình 2.33 SSDLite với backbone khác nhau trên tap dữ liệu COCO [16].

Dưới đây là hình so sánh hiệu năng của MobileNetV3 theo như bài báo mô hình MobileNetV3-Large các tốc độ nhanh hơn 25% so với MobileNetV2 có cùng độ chính xác trên tập COCO.

Small mobile models, 20-40ms CPU latenc

Chương 3 TIỀN HÀNH THỰC NGHIỆM

Hệ thống sử dụng một camera góc rộng dé lay hình ảnh cung cấp cho kit Jetson nano xử lý Sau khi kit Jetson nano đã xử lý hình ảnh, thông số điều khiển sẽ được truyền đến board Arduino Mega 2560 bằng kết nối I2C dé thực thi Hai encoder của động cơ được kết nối với board Arduino Mega 2560 dé diéu chinh PID, tinh hiéu diéu khién hai động cơ sẽ được truyền đến mạch cầu HXY 160D mạch cầu sẽ băm xung và điều khiển hai động cơ thông qua việc cấp nguồn cho hai động cơ Servo 6221MG được kết nối với board Arduino Mega 2560 dé nhận tín hiệu điều khiển Servo va kit Jetson nano sẽ nhận nguồn từ mạch biến áp da năng YH11060D Mạch nguồn YH11060D nhận nguồn từ Pin SHANG YI 2200mAh Mạch cầu HXY160D nhận nguồn từ Pin SHANG YI 4200 mAh.

Phiên biển báo khiển xe

True-> Xử lý biên Xác định báo góc lái

Hình 3.2 Luồng xử lý của phần mềm.

3.2 Cài đặt hệ thống e OpenCV: © © e Torch: ©

OpenCV là mã nguồn mở hang đầu về xử lý anh và thị giác máy tính. Được viết bằng C++ nên tốc độ tính toán rất nhanh đồng thời cũng hỗ trợ Interface cho python nên rất thuận tiện trong việc sử dụng.

Hỗ trợ rất nhiều tính năng tiện dụng như cắt ảnh, xoay ảnh, convert ảnh, đọc và ghi anh,

Framework được hỗ trợ và phát triển bởi Facebook, Google, Twitter Framework có tính năng linh hoạt, dé đọc, tốc độ nhanh và phù hợp cho nghiên cứu.

Tuy nhiên hiện tại đã lỗi thời và ngưng phát trién. e Tensorflow: le) ©

Framework được hỗ trợ và phát triển bởi Google.

Framework có tính năng linh hoạt, dễ đọc, tốc độ nhanh và phù hợp cho nghiên cứu.

Framework được Google hỗ trợ và phát trién không ngừng.

Chuyền đổi mô hình sang TensorRT nhanh chóng.

Thiết lập hệ thống và lắp đặt Các thành phân của hệ thống gồm: e NVIDIA Jetson Nano Development Kit

Training mOdelL - ôk1 HH 66 3.7 Thực nghiệm từng ImOdel -¿- ¿+ + x+k+x£vEvxeEexserveereerrksererkeererl 67 3.7.1 Đối với model xác định biển báo giao thông

Từ dữ liệu đầu vào là hình ảnh, thông qua các bộ filter dit liệu sẽ được bóc tách các đặc điểm đặc trưng của đối tượng Khi có được các điểm đặc trưng thì dữ liệu sẽ thông qua một fully connected neural network dé phan biệt được đối các đặc điểm nhận được là của đối tượng nào Các bộ filter ban đầu đều không chứa bất cứ giá trị nào, thông qua việc training, các thông số của các bộ filter được cập nhật liên tục dé tao có thé loc ra cac dac điểm nồi bật nhất của đối tượng Lớp fully connected cũng cần phải cập nhật thông số để phân biệt được các đối tượng có những đặc trưng nôi bật nào dé tiến hành phân biệt. Độ chính xác của quá trình training phụ thuộc rất lớn vào dữ liệu training, càng nhiều mẫu thì model được training càng thông minh Nhưng đổi lại thì tài nguyên phân cứng và thời gian training sẽ tăng lên khi có nhiêu mâu.

Chúng tôi sử dụng một dịch vụ online là google colab với cau hình gồm công nghệ CUDA 10.1, GPU Tesla P100 với 15G ram, RAM 12G, ROM 225G để tiến hành training, mỗi epoch tốn khoản 8 phút training cho tập datasets 56,000 dit liệu biển báo giao thông, 3 phút cho tap datasets 2,700 mau dữ liệu lan đường, 30 giây cho tập dữ liệu góc lái cho tập dữ liệu 21,000 mẫu.

NVIDIA-SMI 4680.27.04 Driver Version: 418.67 CUDA Version: 10.1

GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr ECC Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M.

9 Tesla P100-PCIE Off | 09900990:90:04.0 OFF | 9 N/A 33C P9 25M / 250W | 9MiB / 16289MiB | 9% Default

Foo 2-2 2-2-2222 2-2-2 2-2 2-2 2-2 oo 22-2 oo 2-22 ooo TT +

GPU GI cI PID Type Process name GPU Memory

Hình 3.20 Thông tin câu hình google colab.

Sau khi đã training các model hoàn tat (loss không thể giảm được nữa), chúng tôi tiến hành thực nghiệm riêng lẻ từng model và tiễn hành cải thiện dữ liệu cho từng model.

3.7.1 Đối với model xác định bién báo giao thông

Dữ liệu đầu vào của model là một ảnh màu RGB kích thước là 300x168 pixel được cung cap bởi camera Dữ liệu đầu ra của model là một danh sách dạng [[x1,y1.x2,y2].[x1,y1.x2.y2] ] (thong tin vị trí đối tượng), [id, id, ] (id từng đối tượng), [%,%, ](d6 chắc chăn).

Chúng tôi tiến hành kiểm thử trên tập dữ liệu đã dùng dé training thì độ chính xác đạt trên 80% đến 99% đối với tat cả các đối tượng được training, nhưng khi kiểm thử với dữ liệu biển báo không nằm trong danh sách nhận được nhận diện thì model vẫn nhận diện đó là một trong các biển báo được training Chung tôi đã nghiên cứu và tìm được giải pháp giải quyết van đề trên bang cách tiền hành tăng thêm một tập dữ liệu “negative” nghĩa là không xác định vào datasets, tổng số lượng mẫu hiện tại là hơn 110,000 mẫu.

468 count: 3212 Acc: 94.52054794526548% tf_g count: 3784 Acc: 86.83932346723044% tf_r count: 2992 Acc: 79.24465248641712% tf_y count: 2944 Acc: 95.3125%

Hình 3.21 Kết qua thực nghiệm bién báo khi chưa cải thiện datasets.

3.7.2 Đối với model xác định làn đường

Dữ liệu đầu vào của model là một ảnh màu RGB kích thước là 128x64 pIxel được cung cấp bởi camera (đã qua công đoạn resize) Dữ liệu đầu ra của model là một anh grayscale với giá trị màu từ 0 đến 255.

Sau khi training thì model nhận diện được làn đường với độ chính xác cao

(trên 83.5%) khi thử nghiệm trên 2711 mẫu dữ liệu đã dùng dé huấn luyện bằng cách so sánh từng pixel của dữ liệu mong muốn và đữ liệu thu được từ model. Ảnh gốc

Hình 3.22 Dữ liệu thử nghiệm trong tap datasets

Do độ phong phú của dữ liệu thấp, điều kiện môi trường chênh lệch không nhiều, dẫn đến mô hình chỉ chạy tốt tại một thời điểm nhất định ở khoảng 180 đến 250 (Lux), khi chạy trong môi trường có độ sáng khoảng 500 Lux thì độ chính xác của mô hình giảm mạnh, khi thử nghiệm cho ra độ chính xác rất thấp (45.019%) Từ kết quả trên chúng tôi quyết định lược bỏ mô hình nay trong đề tài. ice

Dữ liệu Dữ liệu mong muốn thu được

Hình 3.23 Ảnh thử nghiệm trên dữ liệu ngoài datasets

3.7.3 Model xác định góc lái

Dữ liệu đầu vào của model là một ảnh màu RGB kích thước là 128x64 pIxel được cung cấp bởi camera (đã qua công đoạn resize) Dữ liệu đầu ra của model là một số thực có giá trị từ 0 đến 1, để quy đổi ra góc lái thì chứng tối tiến hành nhân kết quả với 80 (do chúng tôi có 80 góc lái) và cộng với 60 (góc nhỏ nhất của hệ thống là 60).

Sao khi đã training cho ra kết quả là xe có thé hoàn thành liên tục trên 7 vòng của bản đồ mô hình, mô hình này không cần cải thiện thêm do đã đạt được yêu cầu ban đâu dé ra.

3.8 Thực nghiệm chung các model

Do đã lược bỏ model nhận diện làn đường nên chỉ còn hai model là “xác định góc lái” và “xác định biển báo giao thông” Chúng tôi tiến hành phối hợp hai model lại với nhau, model nhận diện biển báo giao thông khá lớn (trên 13M) nên thời gian xử lý khá dài (khoảng 0.001 giây) 14 FPS, model xác định góc lái xe kích thước nhỏ

(trên 2.7M) nên thời gian xử lý nhanh (30 FPS) trên kit Jetson Nano Cả hai model đều chiếm tài nguyên GPU rất lớn (hơn 90% tài nguyên), bộ nhớ RAM khả dụng chỉ năm ở mức 200-400M/4G Hệ thống không thể chạy đồng loạt hai model do giới hạn phần cứng nên phải chạy tuần tự Chúng tôi nhận thấy việc xác định biển báo giao thông là không cần thiết phải chạy với tốc độ 14 FPS do tốc độ xe khá chậm (khoảng 1-2.5 Km/h) nên model xác định biển báo chỉ cần chạy với tốc độ 3-5FPS dé nhường tài nguyên cho model xác định góc lái Với việc giới hạn tốc độ của mô hình xác định biển báo ở mức 5 FPS thì tốc độ hệ thống nằm ở mức 18-21 FPS.

Thực nghiệm ở phần này chúng tôi đặt ra mục tiêu và đã đạt được mục tiêu là hoàn thành liên tục trên 7 vòng bản đồ mô hình và có thể tuân thủ ba loại biển giao thông là biển “STOP” (Khi không còn phát hiện biển báo STOP thì xe sẽ dừng sau 3 giây), biển báo “Giới hạn 40km/h” (khi phát hiện bién này thì xe sẽ giảm tốc độ xuống còn 2/3), biển báo “Hủy giới hạn tốc độ 40km/h” (khi phát hiện và đến khi không còn phát hiện biển này thì xe sẽ chạy với tốc độ bình thường sau 3 giây).

Chương 4 KET QUA THUC NGHIỆM

4.1 Kết quả việc xác định góc lái xe

Khi chạy thực nghiệm riêng biệt mô hình xác định góc lái (Không kèm mô hình xác định tín hiệu giao thông) thì tốc độ xử lý lên đến trên 30 FPS đối với xe có bộ xử lý là Jetson Nano, xe chạy được trong môi trường ánh sáng chói vào thời điểm 12 giờ trưa trên bản đồ có làn đường bóng, hiện tượng chói sáng cao, khó xác định góc lái xe, xe có thé hoàn thành liên tục, trên 7 vòng bản đồ mô hình, tốc độ xe khá chậm, khoản 1 đến 3 (km/h) Đối với xe có bộ xử lý là Raspberry Pi 4, tốc độ xử lý trên 13FPS, xe chạy trong môi trường ánh sáng tốt vào 7 giờ sáng đến 9 giờ sáng và 4 giờ chiều đến 6 giờ chiều, xe chạy với tốc độ khá nhanh (khoảng 2 đến 3 km/h), xe có thé hoàn thành liên tục trên ba vòng của bản đồ mô hình.

Bảng 4.1 Kết quả xử lý góc lái.

Tôc độ Độ chính xác

Jetson Nano 30 FPS Hoàn thành 7 vòng liên tục map mô hình trong điều kiện chói sáng vào 12 giờ 51 phút trưa.

Raspberry PI 4 | 14 FPS Hoàn thành 3 vòng liên tục map mô hình trong điều kiện ánh sáng đều, dịu nhẹ vào 4 giờ chiêu hoặc 7 giờ sáng.

4.2 Kết quả nhận diện biến báo

Sau khi đã tiễn hành cải thiện dữ liệu thì model đã có thé hạn ché lại lỗi nhận diện các biển báo không năm trong danh sách, đồng thời cũng tăng độ chính xác khi nhận diện các biển báo đã được training trên tập dữ liệu đã được thu thập.

Ngày đăng: 02/10/2024, 03:14

HÌNH ẢNH LIÊN QUAN

Bảng 2.2 Tóm tắt ưu nhược điểm các giải thuật [16]..........................---------¿-5¿©5sz=5+ 37 Bảng 4.1 Kết quả xử lý góc lái....................---¿-  2: +2+E+2E+£Ekt2EEE2EE2211221 2112112212112 - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Bảng 2.2 Tóm tắt ưu nhược điểm các giải thuật [16]..........................---------¿-5¿©5sz=5+ 37 Bảng 4.1 Kết quả xử lý góc lái....................---¿- 2: +2+E+2E+£Ekt2EEE2EE2211221 2112112212112 (Trang 11)
Hình 1.1 Sự khác nhau giữa các khái niệm trong trí tuệ nhân tạo [5]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 1.1 Sự khác nhau giữa các khái niệm trong trí tuệ nhân tạo [5] (Trang 17)
Hình 2.1 Biéu đồ sự thay đổi của các tham số PID [6]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.1 Biéu đồ sự thay đổi của các tham số PID [6] (Trang 22)
Hình 2.3 Mô phỏng góc lái vi sai [8]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.3 Mô phỏng góc lái vi sai [8] (Trang 25)
Hình 2.4 Mô hình xe sao khi quy đổi dé tính toán. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.4 Mô hình xe sao khi quy đổi dé tính toán (Trang 26)
Hình 2.6 Vi dụ về một bài toán dùng deep learning [9]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.6 Vi dụ về một bài toán dùng deep learning [9] (Trang 29)
Hình 2.7 So đồ các mối liên hệ giữa các tác vụ trong computer vision [10]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.7 So đồ các mối liên hệ giữa các tác vụ trong computer vision [10] (Trang 31)
Hình 2.12 Ảnh Semantic segmentation trên một đoạn đường [12]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.12 Ảnh Semantic segmentation trên một đoạn đường [12] (Trang 35)
Hình 2.14 Quá trình dé tạo ra một Feature Map [14]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.14 Quá trình dé tạo ra một Feature Map [14] (Trang 37)
Hình 2.16 Đồ thị hàm ReLU [15]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.16 Đồ thị hàm ReLU [15] (Trang 39)
Hình 2.17 Cau trúc của CNN [27]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.17 Cau trúc của CNN [27] (Trang 40)
Hình 2.18 Độ chính xác va tốc độ giữa các mô hình trên tập dữ liệu COCO [16]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.18 Độ chính xác va tốc độ giữa các mô hình trên tập dữ liệu COCO [16] (Trang 42)
Hình 2.19 Sơ đồ giải thích về IoU [17]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.19 Sơ đồ giải thích về IoU [17] (Trang 45)
Hình 2.21 Kiến trúc SSD với basenet là VGG16 [18]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.21 Kiến trúc SSD với basenet là VGG16 [18] (Trang 47)
Hình 2.24 Câu trúc mạng SSD MobileNet [19]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.24 Câu trúc mạng SSD MobileNet [19] (Trang 49)
Hình 2.25 Tích chập chiều sâu [20]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.25 Tích chập chiều sâu [20] (Trang 50)
Hình 2.26 Tích chập điểm [20]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.26 Tích chập điểm [20] (Trang 51)
Hình 2.28 MobilenetV2 block [16]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.28 MobilenetV2 block [16] (Trang 53)
Hình 2.32 Độ chính xác giữa các mô hình so với MobileNetV3 [16]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 2.32 Độ chính xác giữa các mô hình so với MobileNetV3 [16] (Trang 55)
Hình MobileNetV3-Large các tốc độ nhanh hơn 25% so với MobileNetV2 có cùng - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
nh MobileNetV3-Large các tốc độ nhanh hơn 25% so với MobileNetV2 có cùng (Trang 56)
Hình 3.4 Arduino mega 2560 [22]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 3.4 Arduino mega 2560 [22] (Trang 61)
Hình 3.9 Pin Shangyi 2S 4200mAh. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 3.9 Pin Shangyi 2S 4200mAh (Trang 63)
Hình 3.13 Luồng dif liệu giải thuật PID. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 3.13 Luồng dif liệu giải thuật PID (Trang 66)
Hình 3.14 Kết quả thuật toán PID xây dựng được. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 3.14 Kết quả thuật toán PID xây dựng được (Trang 66)
Hình 3.20 Thông tin câu hình google colab. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 3.20 Thông tin câu hình google colab (Trang 71)
Hình 3.23 Ảnh thử nghiệm trên dữ liệu ngoài datasets - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 3.23 Ảnh thử nghiệm trên dữ liệu ngoài datasets (Trang 73)
Bảng 4.1 Kết quả xử lý góc lái. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Bảng 4.1 Kết quả xử lý góc lái (Trang 75)
Hình 4.3 Ví dụ về xác định làn đường [26]. - Khóa luận tốt nghiệp Kỹ thuật máy tính: Xây dựng chương trình điều khiển xe tự hành ứng dụng deep learning
Hình 4.3 Ví dụ về xác định làn đường [26] (Trang 81)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w