Đồ án tốt nghiệp loại xuất sắc của sinh viên cơ điện tử trường đại học bách khoa hà nội năm 2021Nội dung: Tổng quan về đề tài bao gồm : đặt vấn đề, mục tiêu và nhiệm vụ, tầm quan trọngcủa đề tài, tổng quan về xe tự lái hiện nay Tổng quan về xử lý ảnh và thuật toán sử dụng trong đề tài Kết quả thực nghiệm của mô hình
TỔNG QUAN VỀ XỬ LÝ ẢNH
Xử lý ảnh và các vấn đề của xử lý ảnh
Xử lý ảnh là một lĩnh vực khoa học và công nghệ đang phát triển nhanh chóng, thu hút sự quan tâm của nhiều trung tâm nghiên cứu và ứng dụng Ngành này, mặc dù còn mới mẻ so với các lĩnh vực khoa học khác, đang thúc đẩy sự phát triển của các máy tính chuyên dụng.
Xử lý ảnh là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác
Con người nhận thức thông tin chủ yếu qua các giác quan, trong đó thị giác là quan trọng nhất Gần đây, sự tiến bộ trong phần cứng máy tính đã thúc đẩy mạnh mẽ sự phát triển của công nghệ xử lý ảnh và đồ họa, mở ra nhiều ứng dụng thiết thực trong đời sống hàng ngày.
Xử lý ảnh và đồ họa là yếu tố then chốt trong tương tác giữa con người và máy móc Quá trình này bao gồm các thao tác trên ảnh đầu vào nhằm đạt được kết quả mong muốn Hình 2.1 minh họa rõ ràng quy trình xử lý ảnh.
Hình 2.1 : Quá trình xử lý ảnh [3]
Sơ đồ này bao gồm các thành phần sau :
Ảnh có thể thu nhận từ camera màu hoặc đen trắng, thường là ảnh tương tự từ camera ống chuẩn CCIR với tần số 1/25, cho ra 25 dòng mỗi ảnh Ngoài ra, cũng có loại camera đã số hóa như CCD.
Change Coupled Device (CCD) là một loại photodiot có khả năng tạo ra cường độ sáng tại từng điểm ảnh Camera thường sử dụng công nghệ quét dòng, cho phép tạo ra hình ảnh dưới dạng hai chiều Chất lượng hình ảnh thu nhận được phụ thuộc vào thiết bị thu và các yếu tố môi trường như ánh sáng và phong cảnh.
Sau khi thu nhận, ảnh có thể gặp tình trạng nhiễu và độ tương phản thấp, vì vậy cần sử dụng bộ tiền xử lý để cải thiện chất lượng Bộ tiền xử lý có chức năng chính là lọc nhiễu và nâng cao độ tương phản, giúp làm cho ảnh trở nên rõ nét và sắc sảo hơn.
Phân vùng ảnh là quá trình tách một bức ảnh thành các vùng thành phần, giúp cho việc phân tích và nhận dạng hình ảnh trở nên hiệu quả hơn Ví dụ, trong việc nhận dạng chữ hoặc mã vạch trên phong bì thư để phân loại bưu phẩm, cần phải chia nhỏ các câu, chữ trong địa chỉ hoặc tên người thành các từ, chữ, và số riêng biệt Đây là một bước phức tạp và dễ gây lỗi, ảnh hưởng đến độ chính xác của quá trình nhận dạng Kết quả của việc nhận dạng hình ảnh phụ thuộc rất lớn vào công đoạn phân vùng này.
Đầu ra ảnh sau phân đoạn bao gồm các điểm ảnh của vùng ảnh đã phân đoạn cùng với mã liên kết các vùng lân cận, cần được chuyển đổi thành định dạng phù hợp cho xử lý máy tính Trích chọn đặc trưng (Feature Selection) là quá trình lựa chọn các tính chất để thể hiện ảnh, giúp tách biệt các đặc tính của ảnh thành thông tin định lượng, từ đó phân biệt các lớp đối tượng khác nhau Ví dụ, trong nhận dạng ký tự trên phong bì thư, việc mô tả các đặc trưng của từng ký tự là cần thiết để phân biệt ký tự này với ký tự khác.
- Nhận dạng và nội suy :
Nhận dạng ảnh là quá trình xác định và phân loại hình ảnh bằng cách so sánh với mẫu chuẩn đã được học Quá trình này liên quan đến việc nội suy và phán đoán dựa trên nhận diện Theo lý thuyết nhận dạng, các mô hình toán học về ảnh được chia thành hai loại chính: nhận dạng theo tham số và nhận dạng theo cấu trúc.
Trang 16 nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người
Ảnh là một đối tượng phức tạp với nhiều yếu tố như đường nét, độ sáng tối và dung lượng điểm ảnh, cùng với môi trường thu ảnh đa dạng dẫn đến hiện tượng nhiễu Trong quá trình xử lý và phân tích ảnh, việc đơn giản hóa các phương pháp toán học không chỉ giúp thuận tiện mà còn hướng đến việc mô phỏng quy trình tiếp nhận và xử lý ảnh của con người Hiện nay, nhiều bước trong xử lý ảnh đã áp dụng các phương pháp trí tuệ nhân tạo, nhờ đó mà các cơ sở tri thức được phát huy hiệu quả.
Quá trình sử dụng ảnh số có thể không cần thực hiện đầy đủ tất cả các bước, tùy thuộc vào đặc điểm ứng dụng Sau khi số hóa, ảnh sẽ được nén và lưu trữ để truyền cho các hệ thống khác hoặc để xử lý tiếp theo Đôi khi, nếu ảnh đã đạt chất lượng yêu cầu, có thể bỏ qua công đoạn nâng cao chất lượng và chuyển thẳng đến khâu phân đoạn hoặc trích chọn đặc trưng Hình 2.2 minh họa rõ ràng các nhánh song song trong quá trình nâng cao chất lượng ảnh, bao gồm việc tăng độ sáng, độ tương phản, lọc nhiễu và khôi phục ảnh để sửa chữa các méo mó.
Hình 2.2 : Sơ đồ phân tích và xử lý ảnh và lưu đồ thông tin giữa các khối
2.1.2 Các vấn đề cơ bản trong xử lý ảnh
Một ảnh có thể được định nghĩa là hàm hai chiều f(x, y), trong đó x và y là tọa độ không gian trên mặt phẳng Biên độ của f tại bất kỳ cặp tọa độ (x, y) nào được gọi là cường độ hoặc mức độ màu xám của hình ảnh tại điểm đó Điểm ảnh được coi là dấu hiệu hay cường độ sáng tại một tọa độ trong không gian của đối tượng, và ảnh là tập hợp các điểm ảnh.
Là số các giá trị có thể có của các điểm ảnh của ảnh
Độ phân giải là chỉ số thể hiện mức độ chi tiết tối thiểu trong hình ảnh, được đo bằng số điểm ảnh trên một đơn vị khoảng cách.
Nguyên lý hoạt động của một camera lỗ kim (pinhole ) :
Ánh sáng di chuyển theo đường thẳng, do đó khi bề mặt của biển báo phản chiếu ánh sáng mặt trời, nó sẽ phát ra nhiều chùm sáng tán xạ từ một điểm Nếu đặt một chiếc hộp có lỗ nhỏ bên cạnh biển báo, ánh sáng sẽ bị chặn lại, chỉ cho phép một chùm sáng duy nhất lọt qua lỗ như hình 2.3.
Hình 2.3 : Ánh sáng được truyền từ điểm trên của biển báo qua lỗ theo đường thẳng
- Tương tự phần gốc của biển báo cũng truyền qua lỗ theo đường thẳng như hình 2.4
Hình 2.4 : Ánh sáng được truyền từ gốc của biển báo qua lỗ theo đường thẳng
Phát hiện đối tượng
Con người có khả năng phát hiện và nhận dạng các vật thể trong bức ảnh một cách dễ dàng Hệ thống thị giác của con người hoạt động nhanh chóng và chính xác, cho phép thực hiện các tác vụ phức tạp như nhận dạng nhiều vật thể cùng lúc, ngay cả khi có vật cản.
Các mô hình hiện nay cho phép xác định xác suất có vật thể trong bức ảnh một cách dễ dàng Thuật toán xác định vị trí cung cấp tọa độ của vật thể cùng với các mối liên quan Trong lĩnh vực thị giác máy tính, phương pháp phổ biến nhất để xác định vị trí của vật thể là sử dụng hình chữ nhật với tọa độ đã tìm được, gọi là bounding box, để thể hiện vị trí đối tượng trong ảnh Hình 2.9 minh họa cách xác định một bounding box.
Một bounding box được xác định :
- bx,by : tọa độ của tâm bounding box
- bw,bh : chiều rộng , chiều cao của bounding box
- (x1,y1) : tọa độ trên bên trái
- (x2,y2) : tọa độ dưới bên phải
Hình 2.9 : Xác định một bounding box
2.2.2 Phương pháp xây dựng bộ phát hiện đối tượng
Phương pháp xây dựng bộ phát hiện đối tượng là bước quan trọng đầu tiên trong việc phát triển bộ phân loại nhằm phân loại chính xác các ảnh đã được cắt ghép Mô hình này được đào tạo trên một tập dữ liệu chứa những ảnh đã được cắt và giữ lại đối tượng, giúp dự đoán khả năng xuất hiện của đối tượng trong ảnh.
Mô hình phân loại ảnh có thể được sử dụng để phát hiện đối tượng trong ảnh thông qua kỹ thuật cửa sổ trượt, cắt các phần của bức ảnh với kích thước đồng nhất Các cửa sổ trượt sẽ được đưa vào mô hình phân loại để xác định sự hiện diện của đối tượng Sau khi hoàn thành việc quét toàn bộ ảnh, kích thước của cửa sổ trượt sẽ được điều chỉnh và quá trình này sẽ được lặp lại để tối ưu hóa bộ phân loại Tuy nhiên, phương pháp này ít được áp dụng do yêu cầu tính toán cao và cần một bộ xử lý mạnh mẽ.
Trang 23 Áp dụng phương pháp tính toán tích chập cho cửa sổ trượt để tăng thời gian phát hiện đối tượng Sơ đồ của một mạng tích chập đơn giản như hình dưới đây :
Hình 2.10 : Sơ đồ của một mạng tích chập
Các lớp được kết nối với nhau sẽ được chuyển đổi thành một lớp tích chập, nhờ vào sự hỗ trợ của lớp tích chập một chiều Kích thước cuối cùng của lớp này sẽ là (1, 1), trong đó chiều cao tương ứng với số lượng bộ lọc.
Phương pháp tích chập với cửa sổ trượt cho phép xử lý ảnh hiệu quả, với đầu ra ban đầu là 16x16x3 Khi áp dụng sliding window, ảnh được cắt thành 14x14x3 qua bốn lần tích chập Tuy nhiên, một cách tiếp cận khác là cho toàn bộ ảnh đi qua trực tiếp, dẫn đến kích thước đầu ra là 2x2x4 Mỗi ô trong ma trận đầu ra này biểu thị kết quả cắt và giá trị phân loại của bức ảnh, tương tự như phương pháp sliding window.
- Thuật toán này làm giảm thời gian phát hiện đối tượng nhưng nó khiến cho vị trí bounding box không được quá chính xác
2.2.3 Đánh giá độ chính xác bộ phát hiện đối tượng
IoU, hay Intersection over Union, là chỉ số quan trọng dùng để đánh giá độ chính xác của các thuật toán phát hiện đối tượng (object detector) trên tập dữ liệu cụ thể Chỉ số này cho phép đánh giá hiệu suất của các thuật toán dự đoán bounding box, giúp xác định mức độ chính xác trong việc phát hiện đối tượng Để áp dụng IoU trong việc đánh giá một object detector, cần tuân thủ một số bước nhất định.
Ground-truth bounding box là các hộp giới hạn chính xác cho đối tượng, thường được xác định bằng cách khoanh vùng và đánh nhãn thủ công trong tập kiểm tra Trong hình 2.11, ground-truth bounding box được thể hiện bằng màu xanh.
- Những dự đoán bounding box được model sinh ra trong qua trình training Trong hình 2.11 dự đoán bounding box được biểu diễn màu đỏ
Hình 2.11 : Màu xanh là bounding box đúng và màu đỏ là bounding box dự đoán
Hình 2.12 : Công thức tính độ chính xác IoU
The formula for calculating the Intersection over Union (IoU) is illustrated in Figure 2.12 In this context, the Area of Overlap refers to the intersection area between the predicted bounding box and the ground-truth bounding box, while the Area of Union represents the combined area of both boxes The bounding boxes are manually labeled within the training and test sets A prediction is considered good if the IoU value exceeds 0.5.
2.2.4 Tìm hiểu về mạng CNN (Convolution neural network)
Hình 2.13 : Cấu tạo của một nơron
Mạng nơron nhân tạo (ANN) là mô hình xử lý thông tin dựa trên cách thức hoạt động của hệ neuron sinh học, bao gồm nhiều neuron kết nối qua các trọng số liên kết Mạng này hoạt động như một thể thống nhất để giải quyết các vấn đề cụ thể như nhận dạng mẫu và phân loại dữ liệu Quá trình học trong ANN liên quan đến việc điều chỉnh trọng số liên kết giữa các neuron thông qua tập mẫu huấn luyện Các thành phần cơ bản của một neuron được mô tả trong hình 2.13.
- Input : Là các tín hiệu đầu vào của neuron , các tín hiệu thường được đưa vào dưới dạng một vector n chiều
Trọng số (Weight) là tập hợp các giá trị liên kết với tín hiệu đầu vào, đóng vai trò quan trọng trong việc kiểm soát tín hiệu giữa hai neuron Nói cách khác, trọng số quyết định mức độ ảnh hưởng của tín hiệu đầu vào đến quá trình xử lý thông tin trong mạng nơ-ron.
Trang 26 đối với đầu ra Các trọng số liên kết này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên trục trong quá trình training
Bias trong mạng nơ-ron là một độ lệch được thêm vào mỗi lớp, đơn giản là lưu trữ giá trị 1 Điều này cho phép hàm kích hoạt (activation function) có thể được di chuyển hoặc “dịch” sang trái hoặc phải trên biểu đồ, giúp cải thiện khả năng học của mô hình.
- Sum : Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó
Hàm kích hoạt (activation function) được sử dụng để giới hạn phạm vi đầu ra của mỗi neuron, nhận đầu vào từ kết quả của hàm tổng và bias Tùy thuộc vào từng bài toán, độ sâu của mạng, output mong muốn và dữ liệu, chúng ta sẽ chọn các hàm kích hoạt khác nhau Không thể khẳng định hàm nào tốt hơn mà không xem xét các điều kiện cụ thể.
Một số hàm activation thường được sử dụng :
Thuật toán Yolov3
YOLO, viết tắt của "You Only Look Once", là một thuật toán trong phát hiện vật thể cho phép nhận diện chỉ sau một lần nhìn Mặc dù YOLOv3 không phải là thuật toán chính xác nhất, nhưng nó nổi bật với tốc độ nhanh nhất trong các mô hình phát hiện vật thể, đạt gần như thời gian thực mà vẫn giữ được độ chính xác tương đối so với các mô hình hàng đầu Khác với các bài toán phân loại chỉ dự đoán nhãn cho vật thể, YOLOv3 còn xác định vị trí của nhiều vật thể khác nhau trong một bức ảnh Ví dụ, thuật toán YOLOv3 có thể phát hiện các lớp như xe tải, biển báo giao thông và ô tô trong cùng một hình ảnh.
Thuật toán Yolo sử dụng kiến trúc mạng Darknet Architecture làm base network để trích xuất đặc trưng Kết quả đầu ra từ base network sẽ được đưa vào các Extra layers nhằm dự đoán nhãn và tọa độ bounding box của các vật thể.
Hình 2.30 : Sơ đồ kiến trúc mạng Yolo trong mô hình
Darknet-53 bao gồm 53 lớp chập (convolutional layers) và 5 lớp gộp tối đa (pooling layers), với các lớp chuẩn hóa hàng loạt (Batch normalization - BN layer) và dropout được thêm vào sau mỗi lớp chập nhằm ngăn ngừa tình trạng quá mức (overfitting) Đặc biệt, Darknet-53 sử dụng năm khối dư (residual blocks) để tăng độ sâu của mạng và giảm thiểu hiện tượng biến mất gradient.
Khi đưa các bức ảnh vào mô hình, chúng sẽ được điều chỉnh kích thước để phù hợp với hình dạng đầu vào của mô hình Sau đó, các bức ảnh này sẽ được gom lại thành một lô (batch) để tiến hành huấn luyện.
Cấu trúc mạng Yolov3 được cải tiến với tính năng tổng hợp, tăng số lượng bản đồ tính năng và tiết kiệm tính toán, từ đó cải thiện tốc độ Hai đơn vị dư (Conv-Residual unit) được thêm vào mạng phát hiện để nâng cao khả năng thể hiện của các tính năng hình ảnh Cuối cùng, bản đồ tính năng nhỏ tại scale1 sẽ được Up Sampling để đạt kích thước đồng nhất với các bản đồ tính năng khác.
Trang 40 map – scale2, và tương tự cho scale3 Lấy mẫu trên được sử dụng để kết hợp các đối tượng cấp cao với các đối tượng địa lý cấp thấp và thu được ba bộ bản đồ đối tượng dự đoán với các tỷ lệ khác nhau
Hình 2.31 : Các layer trong mạng darknet – 53 [7]
Mỗi đầu vào sẽ được thiết kế với các lớp (layers) phù hợp với hình dạng của nó Qua quá trình đi qua các lớp convolutional, kích thước đầu vào giảm dần theo cấp số nhân là 2, dẫn đến việc tạo ra một feature map có kích thước nhỏ hơn để dự đoán các vật thể trên từng ô của feature map Cụ thể, lớp 13 x 13 đảm nhiệm việc phát hiện các vật thể lớn.
52 x 52 phát hiện các vật thể nhỏ hơn, với lớp 26 x 26 phát hiện các vật thể trung bình Kích thước của feature map sẽ phụ thuộc vào đầu vào
Hình 2.32 Một output của cell 1x1 trên feature map có kích thước 13x13
Output của mô hình YOLOv3 là một véc tơ sẽ bao gồm các thành phần:
+ 𝑝 0 là xác suất dự báo vật thể xuất hiện trong bounding box
+ (𝑡 𝑥 , 𝑡 𝑦 , 𝑡 𝑤 , 𝑡 ℎ ) giúp xác định bounding box Trong đó 𝑡 𝑥 , 𝑡 𝑦 là tọa độ tâm và 𝑡 𝑤 , 𝑡 ℎ là kích thước rộng, dài của bounding box
+ (𝑝 1 , 𝑝 2 , , 𝑝 𝑐 ) la vector phân phối xác suất dự báo của các classes
Ví dụ như hình 2.32, hình ảnh gốc là một feature map kích thước 13x13 Trên mỗi một cell của feature map sẻ trả về 5 giá trị bao gồm 𝑝 0 , (𝑡 𝑥 , 𝑡 𝑦 , 𝑡 𝑤 , 𝑡 ℎ ) cộng với 𝑝 𝑐
Khi mô hình có 6 lớp và kích thước đầu vào là 416, kích thước mỗi ô sẽ được tính là 1x1x3x(5+6) = 33 Do đó, trong file cấu hình (cfg), cần thay đổi kích thước kernel thành 33 thay vì 255, con số mặc định được lập trình viên thiết lập cho mô hình 80 lớp, dẫn đến kích thước kernel là 1x1x3x(5+80) = 255.
Trong mô hình YOLOv3, trên một feature map hình vuông S x S, số lượng anchor box được tạo ra là S x S x 3, dẫn đến tổng số anchor boxes trên một bức ảnh là (13 × 13 + 26 × 26 + 52 × 52) × 3 = 10,647 Số lượng lớn này làm cho quá trình huấn luyện mô hình trở nên chậm chạp, vì cần dự báo đồng thời nhãn và bounding box cho 10,647 bounding boxes Để xác định bounding box cho vật thể, YOLO sử dụng các anchor box đã được xác định trước, giúp ước lượng chính xác vị trí vật thể Thuật toán regression bounding box sau đó sẽ tinh chỉnh các anchor box này để tạo ra bounding box dự đoán cho vật thể.
Trong một mô hình Yolov3 :
Trong quá trình huấn luyện, mỗi vật thể trong hình ảnh được phân bố vào một anchor box Khi có từ hai anchor boxes trở lên bao quanh một vật thể, anchor box có chỉ số IoU cao nhất với ground truth bounding box sẽ được chọn Đồng thời, mỗi vật thể cũng được phân bố vào một cell trên feature map, dựa trên vị trí điểm chính giữa của vật thể, từ đó xác định các anchor boxes bao quanh hình ảnh.
Như vậy khi xác định một vật thể ta sẽ cần xác định 2 thành phần gắn liền với nó là (cell, anchor box)
Hình 2.33 : Xác định Anchor box cho một vật thể
Từ Cell i, chúng ta xác định ba anchor boxes viền xanh, như thể hiện trong hình 2.33 Tất cả ba anchor boxes này đều giao nhau với bounding box của vật thể Tuy nhiên, chỉ có anchor box với đường viền dày nhất màu xanh được chọn làm anchor box cho vật thể, vì nó có chỉ số IoU cao nhất so với ground truth bounding box.
Hàm loss function là một giá trị không âm phản ánh sự chênh lệch giữa giá trị dự đoán 𝑦 ^ và giá trị thực y Nó hoạt động như một hình thức phạt cho model mỗi khi có dự đoán sai, với mức phạt tương ứng với độ nghiêm trọng của sai sót Trong YOLOv3, hàm loss function được chia thành hai phần: L_loc (localization loss) để đo lường sai số của bounding box và L_cls (confidence loss) để đo lường sai số trong phân phối xác suất của các lớp.
+ 𝟙 𝑖 obj là Hàm chỉ báo có giá trị 0,1 nhằm xác định xem cell i có chứa vật thể hay không Bằng 1 nếu chứa vật thể và 0 nếu không chứa
+ 𝟙 𝑖𝑗 obj là Cho biết bounding box thứ j của cell i có phải là bouding box của vật thể được dự đoán hay không? Với anchor boxes (B) bằng 2
+ 𝐶 𝑖𝑗 là Điểm tin cậy của cell i
+ 𝐶 ^ 𝑖𝑗 là Điểm tự tin dự đoán
+ 𝒞 là tập hơp tất cả các lớp
+ 𝑝 𝑖 (𝑐) là Xác suất có điều kiện, có hay không cell i có chứa một đối tượng của lớp c∈ 𝒞
+ 𝑝 ^ 𝑖 (𝑐) Xác suất có điều kiện dự đoán
+ 𝐿 loc là hàm mất mát của bounding box dự báo so với thực tế
Hàm mất mát 𝐿 cls là một thành phần quan trọng trong việc đánh giá phân phối xác suất Nó bao gồm hai phần: phần đầu tiên đo lường mức độ chính xác của dự đoán về sự hiện diện của vật thể trong ô, trong khi phần thứ hai tính toán mức độ mất mát của phân phối xác suất khi vật thể thực sự có mặt trong ô đó.
+ 𝜆 coord điều chỉnh phạt loss function trong trường hợp dự đoán sai bounding box, trong yolov3 thông số này để mặc định là 5.0
+ 𝜆 noobj giảm nhẹ hàm loss function trong trường hợp cell không chứa vật thể, trong yolo v3 thì hệ số này mặc định là 0.5
2.3.5 Bounding box Để dự báo bounding box cho một vật thể chúng ta dựa trên một phép biến đổi từ anchor box và cell , YOLOv3 dự đoán bounding box sao cho nó sẽ không lệch khỏi vị trí trung tâm quá nhiều Nếu bounding box dự đoán có thể đặt vào bất kỳ phần nào của hình ảnh, như trong mạng regional proposal network, việc huấn luyện mô hình có thể trở nên không ổn định
Khi chọn một anchor box với kích thước (𝑝 𝑤 , 𝑝 ℎ ) tại một ô trên feature map, với góc trên cùng bên trái tại (𝑐 𝑥 , 𝑐 𝑦 ), mô hình sẽ dự đoán 4 tham số (𝑡 𝑥 , 𝑡 𝑦 , 𝑡 𝑤 , 𝑡 ℎ ) Trong đó, hai tham số đầu tiên đại diện cho độ lệch (offset) so với góc trên cùng bên trái của ô, trong khi hai tham số sau biểu thị tỷ lệ so với anchor box Các tham số này sẽ được sử dụng để xác định bounding box dự đoán có tâm (𝑏 𝑥 , 𝑏 𝑦 ) và kích thước (bw, bh) thông qua hàm sigmoid và hàm exponential, như được trình bày trong công thức ở hình 2.34.
KẾT QUẢ THỰC NGHIỆM
Mô hình đề tài thực tế
Hình 3.1 : Mô hình đề tài trên thực tế
Bài viết trình bày một hình ảnh tổng hợp gồm bốn phần để minh họa rõ ràng các bước thực hiện đề tài Hình ảnh ở góc trên bên trái thể hiện đầu vào của mô hình, trong khi hình ở góc trên bên phải hiển thị kết quả từ thuật toán YOLO trong việc phân loại và phát hiện đối tượng, cụ thể là biển báo và phương tiện giao thông Hình ở góc dưới bên trái cho thấy kết quả của quá trình phát hiện đường bằng cách sử dụng bộ lọc màu sắc để nhận diện vạch đường trắng Cuối cùng, hình ở góc dưới bên phải là sự kết hợp của cả hai quá trình phát hiện làn đường và phát hiện phương tiện cùng với biển báo giao thông phía trước.
4.1.1 Quá trình phát hiện phương tiện và biển báo giao thông
Sử dụng thuật toán Yolo v3 cho việc phát hiện phương tiện giao thông và biển báo báo giao thông trong ảnh
- Bộ dữ liệu bao gồm : 1000 bức ảnh chứa 6 nhãn ( Car , limit speed 60km/h, limit speed 80km/h, limit speed 100km/h, limit speed 120km/h, No U-turn ) được thu thập trên internet
Hình 3.2 :1000 ảnh dữ liệu được lưu trong cùng 1 folder
- Sử dụng công cụ labelImg để gán nhãn cho dữ liệu và upload lên googledrive
Trước tiên chọn nơi chứa ảnh , và nơi để lưu nhãn như hình dưới
Hình 3.3 : Chọn đường dẫn ảnh và lưu nhãn
Để tối ưu hóa quy trình gán nhãn ảnh, hãy chọn định dạng lưu là YOLO và bật tính năng autosave Gán một nhãn mặc định cho toàn bộ ảnh sẽ giúp giảm thiểu nhầm lẫn khi quay lại gán nhãn thứ hai Sử dụng các phím tắt như W để vẽ, D để chuyển sang ảnh tiếp theo, và A để quay lại ảnh trước đó sẽ hỗ trợ hiệu quả trong quá trình làm việc Hình 3.4 dưới đây minh họa chi tiết cách gán nhãn cho ảnh.
Hình 3.4 : Công cụ gán nhãn lableImg
Kết thúc quá trình gán nhãn sẽ tạo ra file nhãn tạo file txt chứ thông tin của nhãn
- Sử dụng Google colab để training dữ liệu đã upload trong googledrive
- Thực hiện training 10000 vòng lặp trong 6h với batch size = 1 , learning rate 0,0001, ghi lại model sau mỗi 1000 vòng lặp
- Thay đổi file yolov3.cfg theo model như hình dưới :
Hình 3.5 : Thay đổi trong file yolov3.cfg
- Sử dụng cờ -map để có thể hiển thị biểu đồ trong quá trình training
Kết thúc quá trình traing ta thu được các file : “yolov3_training_last.weights”,
“yolov3_testing.cfg” và biểu đồ như hình dưới
Hình 3.6 : Kết quả hàm loss và mAP (mean average precision- độ chính xác trung bình) trong quá trình training, độ chính xác đạt được 95% và loss = 0.2
4.1.2 Quá trình phát hiện làn đường
- Sử dụng thư viện opencv để input ảnh đầu vào :
Hình 3.7 : Ảnh đầu vào quá trình phát hiện làn đường
- Áp dụng một phép biến đổi phối cảnh để chỉnh sửa hình ảnh ("birds-eye view"):
Hình 3.8 : Áp dụng phép biến đổi phối cảnh
- Sử dụng các chuyển đổi màu sắc hay các bộ lọc màu trắng để tạo hình ảnh nhị phân có ngưỡng :
Hình 3.9 : Kết quả sau khi áp dụng các bộ chuyển đổi màu sắc
- Sử dụng biểu đồ histogram xác định vùng chứa điểm ảnh màu trắng :
- Sử dung thuật toán cửa sổ trượt để tìm chính xác vị trí của các điểm ảnh màu trắng trên đường cong :
Hình 3.11 : Sử dụng thuật toán cửa sổ trượt để phát hiện làn đường
- Xác định phương trình đường cong của làn đường như hình sau :
Hình 3.12 : Xác định phương trình đường cong của làn đường
- Chuyển đổi phối cảnh các làn đường đã phát hiện trở lại hình ảnh ban đầu
Hình 3.13 : Hình ảnh sau khi chuyển đổi lại như ban đầu
Kết hợp thuật toán Yolo với thuật toán phát hiện làn đường giúp tính toán khoảng cách tương đối với xe phía trước Ví dụ, nếu làn đường được chuẩn hóa khoảng 3m, ta có thể xác định số pixel của làn đường trong vùng màu đỏ và số pixel từ xe khác đến vị trí xe đang di chuyển, từ đó tính toán khoảng cách tương đối so với xe phía trước.
Hình 3.14 : Tính khoảng cách xe phía trước
Đánh giá chức năng của đề tài
- Nhận dạng biển báo và phương tiện giao thông Dưới đây là một số hình ảnh nhận diện thực tế biển báo và phương tiện từ đề tài
Hình 3.16 : Nhận diện biển báo giao thông
Hình 3.17 : Nhận dạng được phương tiện giao thông và biển báo giao thông
Nhận diện biển báo và phương tiện giao thông nhanh chóng có thể giúp cảnh báo người lái xe thiếu tập trung hoặc hỗ trợ xe tự lái Tuy nhiên, trong một số trường hợp, việc nhận diện ô tô và biển báo ở khoảng cách xa gặp khó khăn, và các bounding box có thể không chính xác với vật thể Nguyên nhân chính là do quá trình gán nhãn không chính xác, bỏ sót nhiều vật thể nhỏ, cùng với việc thiết lập ngưỡng quá cao trong lập trình, dẫn đến việc loại bỏ những trường hợp có ngưỡng thấp mặc dù thực tế vẫn chính xác.
Hệ thống phát hiện vạch đường có độ chính xác cao, giúp cảnh báo người điều khiển và cung cấp tín hiệu cho xe tự lái giữ an toàn trong làn đường Nó được lập trình để giúp xe căn giữa làn và phát hiện các làn trái phải Tuy nhiên, vẫn tồn tại một số vấn đề nhiễu do việc sử dụng thuật toán với bộ lọc màu trắng, dẫn đến khó khăn khi phát hiện vạch đường trên nền xe màu trắng Giải pháp được đề xuất là kết hợp phát hiện phương tiện giao thông để loại bỏ vùng có xe màu trắng, nâng cao hiệu quả phát hiện.
Trang 55 trắng , kết quả nhận diện làn đường khá chính xác Hình dưới cho thấy sự kết hợp của nhận diện phương tiện giao thông và nhận diện làn đường
Hình 3.18 : Nhận dạng phương tiện và làn đường giao thông
Đóng góp của đề tài
Xe tự lái là một chủ đề hấp dẫn và hiện đại, hứa hẹn sẽ phát triển mạnh mẽ trong tương lai khi công nghệ ngày càng tiến bộ Đây là nền tảng quan trọng cho việc nghiên cứu và phát triển xe tự lái, mở ra nhiều cơ hội mới trong ngành giao thông.
- Có ý nghĩa thực tiễn trong hoạt động giảng dạy của thầy cô , đáp ứng tính nhân văn cũng như cảm hướng cho thế hệ sinh viên
- Cơ hội để sinh viên học hỏi cải thiện kĩ năng trong học tập , phá bỏ giới hạn bản thân để ngày càng phát triển hơn nữa
- Tích lũy kinh nghiệm thực tế khi xây dựng một hệ thống máy học
- Góp phần nhỏ vào công cuộc phát triển xe tự lái trong tương lai
Phương hướng phát triển trong tương lai
Gia tăng dữ liệu về biển báo giao thông và phương tiện giao thông là cần thiết để phát triển phần mềm có khả năng gán nhãn chính xác và tự động, từ đó cải thiện khả năng nhận diện hiệu quả hơn.
- Có thể tích hợp nhiều thuật toán giúp cảnh báo khoảng cách an toàn
Xây dựng hệ thống học sâu cho phép nhận diện làn đường mà không cần sử dụng các bộ lọc, từ đó nâng cao khả năng nhận diện đường trong nhiều điều kiện ánh sáng và nhiễu khác nhau.
- Tích hợp hệ thống GPS để tăng khả năng nhận diện chính xác làn đường
- Tích hợp cảnh báo âm thanh giúp người lái có thể phản ứng nhanh hơn các vấn đề