TỔNG QUAN
Đặt vấn đề
Theo báo cáo chỉ số giao thông năm 2018 của TomTom, công ty công nghệ hàng đầu của Hà Lan, tình trạng tắc nghẽn giao thông đã gia tăng đáng kể trong thập kỷ qua, với 75% thành phố trong số 403 thành phố lớn thuộc 56 quốc gia ghi nhận mức độ tắc nghẽn cao hơn so với năm 2017.
Tại Việt Nam, ùn tắc giao thông diễn ra hàng ngày tại các thành phố lớn như Hà Nội, TP.HCM và Đà Nẵng, phản ánh sự phát triển kinh tế mạnh mẽ của quốc gia Tuy nhiên, vấn đề này gây thiệt hại nghiêm trọng về kinh tế và sức khỏe, đặc biệt tại TP.HCM Theo TS Vũ Thành Tự Anh, với dân số 13 triệu người và đóng góp 25% GDP toàn quốc, ùn tắc giao thông không chỉ ảnh hưởng đến TP.HCM mà còn tác động đến nền kinh tế cả nước Ước tính, chi phí kinh tế từ ùn tắc giao thông tại TP.HCM có thể chiếm tới 1-2% GDP, tương đương từ 600 triệu USD đến 1 tỷ USD mỗi năm, dẫn đến sự thất thoát lớn cho thành phố.
Để giải quyết vấn đề tắt nghẽn giao thông hiện nay, các giải pháp hạ tầng tuy hiệu quả nhưng tốn nhiều thời gian và chi phí Do đó, cần tập trung vào các công nghệ và kỹ thuật để xử lý tình trạng ùn tắc, chủ yếu do số lượng phương tiện gia tăng đột biến Việc theo dõi lưu lượng giao thông bằng quan sát trực tiếp là không khả thi vì tốn kém và không hiệu quả Giải pháp hiện tại là lắp đặt camera trên các tuyến đường để theo dõi từ xa Tuy nhiên, việc sử dụng camera chỉ để quan sát chưa khai thác hết tiềm năng của chúng Vì vậy, nhóm nghiên cứu đã chọn đề tài “Nhận diện phương tiện giao thông sử dụng bộ phát hiện Single Shot Multibox Detector” nhằm tối ưu hóa khả năng của hệ thống camera và góp phần giải quyết bài toán ùn tắc giao thông.
Tình hình nghiên cứu hiện nay
1.2.1 Tình hình nghiên cứu ngoài nước
Nhận diện phương tiện giao thông đã được triển khai hiệu quả trên toàn cầu, ứng dụng rộng rãi trong các lĩnh vực như xe tự hành, hệ thống giao thông thông minh và các ứng dụng cảnh báo tắc đường.
Trong lĩnh vực xe tự hành, Tesla nổi bật là một trong những công ty thành công nhất, với công nghệ sử dụng camera để thu thập hình ảnh và tự lái mà không cần người điều khiển Bên cạnh Tesla, các hãng xe khác như Audi và Mercedes cũng đang tích cực nghiên cứu và phát triển tính năng xe tự hành cho các mẫu xe tương lai của họ.
Mô hình giao thông thông minh không chỉ áp dụng cho xe tự hành mà còn giúp nhận diện và quản lý các phương tiện giao thông Nhật Bản là một trong những quốc gia tiên phong trong lĩnh vực này, sử dụng hệ thống camera để nhận dạng và xử lý thông tin về tình hình giao thông Hệ thống này thông báo cho người tham gia giao thông khi có ùn tắc, từ đó giúp giảm thiểu tình trạng kẹt xe và tạo điều kiện thuận lợi cho việc di chuyển.
Hệ sinh thái ứng dụng giao thông đang phát triển mạnh mẽ, bên cạnh xe tự hành và giao thông thông minh Các ứng dụng như Google Maps cung cấp thông tin về tình trạng kẹt xe trên các tuyến đường chính có mật độ lưu thông cao, trong khi MapQuest tự động tìm lộ trình thay thế khi xảy ra ùn tắc Ngoài ra, nhiều ứng dụng khác sử dụng công nghệ nhận diện phương tiện qua camera để phát hiện tình trạng ùn tắc giao thông hiệu quả.
Công nghệ nhận diện phương tiện giao thông đã đạt được thành công lớn và trở nên phổ biến trên toàn cầu, với nhiều ứng dụng trong các lĩnh vực khác nhau.
1.2.2 Tình hình nghiên cứu trong nước
Tại Việt Nam, hệ thống nhận diện phương tiện giao thông đã có từ lâu nhưng chưa được triển khai rộng rãi Tại Tp.HCM, mặc dù có nhiều camera được lắp đặt trên các tuyến đường, nhưng chúng chủ yếu chỉ phục vụ mục đích quan sát Người dân có thể theo dõi tình trạng giao thông qua ứng dụng Zalo hoặc trang web của sở giao thông vận tải Tp.HCM.
Hệ thống đếm và phân loại phương tiện giao thông của Viện Hàn lâm Khoa học và Công nghệ Việt Nam sử dụng công nghệ nhận dạng để phân tích lưu lượng giao thông từ video Tuy nhiên, chi phí triển khai vẫn còn cao, dẫn đến việc hệ thống chưa được áp dụng rộng rãi.
Việc nghiên cứu và phát triển mô hình nhận diện phương tiện giao thông với chi phí thấp là rất cần thiết trong bối cảnh hiện nay.
Mục đích và nội dung của đề tài
Với sự phát triển nhanh chóng của nền kinh tế, nhu cầu di chuyển ngày càng tăng, dẫn đến tình trạng kẹt xe ngày một nghiêm trọng Việc phát triển một ứng dụng thông báo tình trạng giao thông trên các tuyến đường là vô cùng cần thiết Để xây dựng ứng dụng này, cần có hệ thống nhận diện và xử lý thông tin chính xác về giao thông Ý tưởng thực hiện mô hình “nhận diện các phương tiện giao thông sử dụng bộ phát hiện Single Shot Multibox Detector” ra đời nhằm giải quyết vấn đề này Mô hình sẽ áp dụng kiến thức máy học và học sâu, cho phép nhận diện phương tiện giao thông trên các thiết bị có cấu hình thấp và đếm số lượng xe từ hình ảnh, video trong thời gian thực.
1.3.2 Nội dung của đề tài
Nhận diện đối tượng là một chủ đề thu hút sự quan tâm lớn từ cộng đồng, dẫn đến nhiều nghiên cứu và phát triển thuật toán liên quan Đặc biệt, việc nhận diện phương tiện giao thông thông qua học máy và học sâu đã trở thành một lĩnh vực nghiên cứu sôi nổi Sau khi phân tích các thuật toán hiện có, nhóm nghiên cứu đã quyết định chọn thuật toán Single Shot Multibox Detector để thực hiện đề tài của mình.
Nội dung thực hiện đề tài bao gồm:
• Quá trình dò tìm các vùng chứa các đối tượng.
• Nhận dạng các đối tượng từ kết quả dò tìm.
• Tính tổng các đối tượng nhận dạng được trong video.
Bố cục của luận văn
Bố cục của luận văn sẽ được chia thành các phần sau:
Chương 1: Đặt vấn đề, giới thiệu về tình hình nghiên cứu hiện nay.
Chương 2: Nền tảng cơ sở lý thuyết liên quan đến luận văn, bao gồm một số thuật ngữ chính, các bộ dữ liệu mà chúng ta sẽ dùng, cơ bản về mạng thần kinh tích chập, phân loại ảnh và nhận dạng đối tượng.
Chương 3: Trong chương này sẽ trình bày về bộ phát hiện “Single shot multibox detector”.
Chương 4: Thiết kế và xây dựng mô hình nhận diện phương tiện giao thông bằng bộ phát hiện Single Shot Multibox Detector.
Chương 5: Đánh giá kết quả, đưa ra các giải pháp phát triển và kết luận của luận án cũng được đưa ra ở chương này.
CƠ SỞ LÝ THUYẾT
Phân loại hình ảnh và phát hiện đối tượng
Phân loại hình ảnh là một nhiệm vụ quan trọng trong lĩnh vực thị giác máy tính và là một trong những vấn đề được nghiên cứu nhiều nhất trong học máy Chương trình phân loại sẽ xác định các nhãn hoặc lớp cho từng điểm dữ liệu, với mỗi nhãn thuộc về một tập hợp gồm C phần tử khác nhau Các phần tử trong tập hợp này được gọi là lớp và thường được đánh số để phân biệt.
1 đến C phần tử Để giải vấn đề này, ta thường phải xây dưng một hàm số f : ℝ d
{1, 2, , C} Khi y = f(x), mô hình gán cho một điểm dữ liệu được mô tả bởi véc-tơ đặc trưng x với một nhãn được xác định bởi số y [6]
Hình 2.1 Phân loại hình ảnh và phát hiện đối tượng
Phát hiện đối tượng là thuật ngữ chung dùng để mô tả một tập hợp các nhiệm
Đối tượng trong một hình ảnh được phân chia thành 6 lớp khác nhau Khi thực hiện phát hiện đối tượng, hệ thống sẽ tạo ra một khung hình bao quanh đối tượng cần quan tâm và gán nhãn cho chúng.
Huấn luyện dữ liệu và đánh giá hệ thống
Học sâu là một nhánh của máy học, sử dụng các thuật toán để trừu tượng hóa mô hình dữ liệu ở mức cao thông qua nhiều lớp xử lý phức tạp và biến đổi phi tuyến Quy trình làm việc với học sâu bao gồm hai giai đoạn chính: đào tạo và suy luận Trong giai đoạn đào tạo, mạng neural học hỏi từ dữ liệu, trong khi giai đoạn suy luận là lúc mạng neural đã được đào tạo triển khai vào môi trường sản phẩm để ứng dụng thực tế.
Đào tạo và suy luận cho hệ thống có nhiều mục đích khác nhau Thời gian huấn luyện mô hình ảnh hưởng đến độ chính xác và tốc độ suy luận, nhưng không phải lúc nào huấn luyện lâu cũng mang lại kết quả tốt nhất Kết quả suy luận phụ thuộc vào nhiều yếu tố, bao gồm độ chính xác của thuật toán, tính ổn định của hệ thống, cũng như chất lượng và độ phong phú của dữ liệu huấn luyện Để tăng tốc quá trình huấn luyện, có thể sử dụng nhiều bộ xử lý GPU song song, áp dụng các hàm kích hoạt nhằm tránh lỗi vanishing gradient, và áp dụng các kiến trúc mạng cải tiến cùng kỹ thuật học chuyển giao (transfer learning).
Mạng neural tích chập
Trong những năm gần đây, ngành Thị giác máy tính đã phát triển mạnh mẽ, với sự áp dụng công nghệ nhận diện khuôn mặt, ký tự và đối tượng trong các hệ thống lớn của Facebook, Google, và các hãng xe tự hành như Tesla Để đạt được điều này, một mô hình mới đã được phát triển từ các mô hình học sâu, mang lại nhiều cải tiến vượt trội so với mạng neural truyền thống ConvNet, một loại mạng nơ-ron tích chập, được cấu thành từ nhiều lớp kết hợp, cho phép xử lý ảnh hiệu quả hơn.
Mỗi lớp trong hệ thống có một API đơn giản, cho phép chuyển đổi một khối 3D đầu vào thành một khối 3D đầu ra, đồng thời cung cấp một số chức năng khác nhau, có thể đi kèm hoặc không với các tham số.
Dựa vào nguyên lý biến đổi thông tin, các nhà nghiên cứu đã áp dụng tích chập trong xử lý tín hiệu số để xử lý hình ảnh và video Tích chập có thể được hình dung như một cửa sổ trượt trên ma trận hình ảnh, trong đó mỗi giá trị của ma trận tương ứng với một điểm ảnh (pixel) Giá trị 0 đại diện cho điểm ảnh đen, trong khi giá trị 1 đại diện cho điểm ảnh trắng; đối với ảnh xám, giá trị sẽ nằm trong khoảng từ 0 đến 255.
Quá trình của sổ trượt là việc nhân kernel trượt với từng thành phần tương ứng trên ma trận ảnh đầu vào Hình 2.2 minh họa quá trình tích chập sử dụng kernel kích thước 3x3, trong đó kernel trượt qua các phần tử của ma trận bên trái, tạo ra một ma trận mới ở bên phải.
Tầng chập là thành phần cốt lõi của ConvNet, thực hiện các phép toán phức tạp trong mạng Tích chập, phổ biến trong thị giác máy tính, giúp trích xuất các đặc trưng chính của ảnh và truyền chúng vào các lớp tích chập Mỗi lớp tích chập gồm nhiều đơn vị, mỗi đơn vị thực hiện phép biến đổi tích chập từ lớp trước thông qua bộ lọc Độ phức tạp của đặc trưng phát hiện tăng theo độ sâu của lớp tích chập Các lớp tích chập đầu tiên sử dụng bộ lọc hình học để phát hiện các đặc trưng đơn giản như cạnh, trong khi các lớp sau phát hiện các đối tượng nhỏ như mắt, mũi, và lớp sâu nhất nhận diện các đối tượng hoàn chỉnh như chó, mèo, và ô tô.
Hình 2.3 Ví dụ minh họa các lớp của ConvNet[10]
Trong quá trình chuyển tiếp, mỗi bộ lọc tích hợp chiều dài và chiều rộng của dung lượng đầu vào, sau đó trượt bộ lọc để tạo ra vùng đặc trưng Việc tích chập ảnh đầu vào được thực hiện với kernel 3x3, stride 1 và padding 1.
Bước sải và bước đệm (Stride và padding)
Bước sải (stride) là khoảng cách giữa hai vị trí của nhân khi quét Khi stride = 1, nhân sẽ quét hai ô liền kề, trong khi với stride = 2, nhân sẽ quét ô đầu tiên và ô thứ ba, bỏ qua ô ở giữa Việc này giúp tránh lặp lại giá trị ở các ô đã được quét.
Khi chọn stride và kích thước của nhân lớn, kích thước vùng đặc trưng sẽ nhỏ hơn do nhân cần nằm hoàn toàn trong đầu vào Để giữ kích thước vùng đặc trưng không thay đổi, ta có thể sử dụng bước đệm Cụ thể, khi điều chỉnh padding = 1, ta thêm một ô bọc quanh các cạnh của đầu vào, và nếu muốn phần bọc dày hơn, cần tăng giá trị bước đệm.
Hàm kích hoạt ReLU (Rectified Linear Unit) ngày càng phổ biến nhờ tính đơn giản và hiệu quả tính toán của nó, với công thức f(z) = max(0, z) Đạo hàm của ReLU bằng 0 tại các điểm âm và bằng 1 tại các điểm dương, giúp cải thiện tốc độ huấn luyện cho các mạng thần kinh đa tầng và mạng sâu với nhiều tầng ẩn So với hàm tanh, ReLU chứng minh khả năng hội tụ nhanh hơn, mang lại lợi ích rõ rệt trong quá trình phát triển mô hình học sâu.
Hình 2.4 Ví dụ minh họa các lớp của ConvNet[10]
Lớp Pooling trong ConvNet giúp giảm kích thước đầu vào, tăng tốc độ tính toán và cải thiện hiệu suất phát hiện đặc trưng Hai phương pháp pooling phổ biến nhất là max pooling và average pooling.
Tầng ẩn được kết nối hoàn toàn với nhau được gọi là tầng kết nối đầy đủ (fully connected layer) Trong cấu trúc này, mỗi nút trong tầng ẩn liên kết với tất cả các nút ở các tầng trước đó Mô hình này được biết đến với tên gọi mạng nơ-ron kết nối đầy đủ (fully connected neural network - FCN).
2.3.2 Một số kiến trúc mạng ConvNet
CNN đã đạt được thành công lớn trong phân loại hình ảnh với LeNet do Y.LeCun đề xuất vào năm 1989 Tiếp theo, AlexNet đã giành chiến thắng tại thử thách ILSVRC năm 2012, với hiệu suất vượt trội (top 5 lỗi 16% so với 26% của á quân) Kể từ đó, nhiều kiến trúc mạng nổi bật khác đã được phát triển Phần này sẽ liệt kê một số kiến trúc mạng nổi tiếng liên quan đến nghiên cứu này.
Kiến trúc của mạng thần kinh này là một kiến trúc đơn giản với tỷ lệ lỗi 7.3%. VGGNet bao gồm hai phiên bản: VGG16 và VGG19.
Kiến trúc VGG16 là một mạng thần kinh với 16 tầng, không bao gồm tầng liên kết lớn nhất và tầng softmax Trong khi đó, VGG19 có cấu trúc tương tự nhưng sở hữu 19 tầng.
Nguyên tắc thiết kế chính của mạng VGG là tập trung vào độ sâu của các tầng, với cấu trúc bao gồm 2 hoặc 3 tầng chập, tiếp theo là một tầng liên kết lớn nhất 2D Sau tầng chập cuối cùng, một tầng làm phẳng được sử dụng để chuyển đổi ma trận 4 chiều thành ma trận 2 chiều Cuối cùng, mạng sẽ bao gồm các tầng Fully-connected và một tầng softmax Dữ liệu huấn luyện cho VGG được lấy từ ImageNet, với 1000 lớp, do đó, tầng Fully-connected cuối cùng sẽ tạo ra 1000 nút.
Vào năm 2014, Google đã giới thiệu mạng thần kinh GoogLeNet, phát triển bởi nhóm nghiên cứu của họ GoogLeNet cho thấy hiệu suất vượt trội so với mạng VGG, với tỷ lệ lỗi chỉ 6.7%, trong khi VGG có tỷ lệ lỗi lên đến 7.3%.
Các bộ dữ liệu
ImageNet là tập dữ liệu với 15 triệu bức ảnh đã được gán nhãn với khoảng
Kể từ năm 2010, cuộc thi Pascal Visual Object Challenge đã tổ chức một phần thi hàng năm mang tên ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) ILSVRC sử dụng một phần của tập dữ liệu ImageNet, bao gồm khoảng 1.2 triệu bức ảnh cho tập huấn luyện, 50.000 bức ảnh cho tập kiểm thử và 150.000 bức ảnh cho tập kiểm tra Mô hình yêu cầu hình ảnh đầu vào có kích thước cố định 256 x 256, trong khi các bức ảnh trong ImageNet có kích thước không đồng nhất Do đó, các bức ảnh được tiền xử lý bằng cách co giản về kích thước, với cạnh nhỏ hơn được điều chỉnh về 256 và cạnh còn lại được co giản theo tỉ lệ tương ứng, sau đó crop tại trung tâm để đạt kích thước 256 x 256.
256 Cuối cùng là tại mỗi giá trị RGB của một điểm ảnh, và trừ đi mean của tất cả các pixel trong tập huấn luyện[17].
Bộ dữ liệu CIRAR-10 là một tập hợp hình ảnh quan trọng được phát triển nhằm hỗ trợ việc huấn luyện trong lĩnh vực máy học và thị giác máy tính Đây là một trong những bộ dữ liệu phổ biến nhất trong nghiên cứu học máy, đóng vai trò quan trọng trong việc cải thiện các thuật toán và mô hình học sâu.
Bộ dữ liệu CIFAR-10 bao gồm 60.000 ảnh thuộc 10 lớp khác nhau, bao gồm máy bay, xe, chim, mèo, hươu, chó, ngựa, ếch, tàu và xe tải Mỗi ảnh trong bộ dữ liệu này được chuẩn hóa về kích thước 32x32 pixel, với mỗi lớp chứa 6.000 hình ảnh.
Bộ dữ liệu Stanford Dogs chứa hình ảnh của 120 giống chó từ khắp nơi trên thế giới, được xây dựng từ hình ảnh và chú thích của ImageNet nhằm phục vụ cho việc nhận diện hình ảnh Tổng cộng, bộ dữ liệu này bao gồm 20,580 hình ảnh của 120 loại chó khác nhau.
BỘ NHẬN DIỆN SINGLE SHOT MULTIBOX DETECTOR
Tìm hiểu về Single Shot Detector(SSD)
Bài báo của Tiến sĩ Girchick về R-CNN đã thu hút sự chú ý lớn trong lĩnh vực phát hiện đối tượng bằng học sâu Tuy nhiên, việc áp dụng R-CNN vào phát hiện đối tượng vẫn gặp một số hạn chế, bao gồm thời gian huấn luyện dài, điều này gây khó khăn cho các ứng dụng thời gian thực Thêm vào đó, hệ thống yêu cầu cấu hình cao, hạn chế khả năng ứng dụng trên các thiết bị nhúng có cấu hình thấp hoặc thiết bị di động như smartphone, Raspberry Pi, hay Nvidia Jetson Nano.
Vào năm 2015, bài báo nghiên cứu "SSD: Single Shot Multibox Detector" của tiến sĩ Wei Liu đã thu hút sự chú ý lớn Nghiên cứu này chứng minh rằng thuật toán SSD có khả năng phát hiện đối tượng trong thời gian thực và có thể hoạt động hiệu quả trên các phần cứng có cấu hình thấp.
Kiến trúc thuật toán Single Shot Detector
Kiến trúc mạng bộ phát hiện đối tượng bằng SSD bao gồm hai phần chính: lớp mạng cơ sở để trích xuất đặc tính từ hình ảnh và việc sử dụng bộ lọc tích chập để phát hiện đối tượng.
Bộ phát hiện SSD sử dụng kiến trúc VGGNET, cụ thể là VGG16, để tạo ra khối vùng đặc trưng 3 chiều ở giai đoạn đầu Tiếp theo, các tầng kiến trúc bổ sung được thêm vào mạng cơ sở nhằm thực hiện nhận diện vật thể Kiến trúc cụ thể của các tầng này được trình bày trong hình 3.1.
Tầng đầu tiên trong kiến trúc mạng SSD là tầng đầu vào, nơi tiếp nhận các bức ảnh có kích thước 300x300x3 cho mạng SSD300 và 500x500x3 cho mạng SSD500.
Tầng Conv5_3 là mạng cơ sở dựa trên kiến trúc VGG16, đã loại bỏ một số tầng kết nối đầy đủ ở cuối Giá trị đầu ra của tầng này là tầng Conv4_3 cùng với một vùng đặc trưng kích thước 38*38*512.
Hình 3.1 Sơ đồ mạng kiến trúc SSD[22]
Trong tầng Conv4_3, chúng ta có một vùng đặc trưng kích thước 38*38*512, nơi diễn ra hai biến đổi chính Đầu tiên, một tầng tích chập với kích thước nhân 3*3*1024 được sử dụng để tạo ra giá trị cho tầng tiếp theo, kết quả là Conv6 có kích thước 19*19*1024 Đồng thời, một bộ phân loại cũng được áp dụng dựa trên tầng lọc tích chập 3x3 để nhận diện vật thể trong vùng đặc trưng Quá trình này phức tạp vì nó cần phát hiện vật thể thông qua các hộp giới hạn và phân chia vùng đặc trưng 38*38*512 thành các ô lưới 38*38 Mỗi ô lưới tạo ra 4 hộp giới hạn mặc định với các tỷ lệ khung hình khác nhau, trong đó mỗi hộp cần tìm 5 tham số: một vector xác suất nhãn và 4 tham số offset để xác định vị trí hộp giới hạn Do đó, trên mỗi ô sẽ có tổng cộng 4*(n_classes + 4) giá trị cần dự báo, và tổng giá trị trả về sẽ là một tensor kích thước 38*38*4x(n_classes + 4).
5), trong trường hợp nền cũng có một nhãn thì tensor có kích thước 38*38*4x(n_classes+4) Với số lượng các hộp giới hạn được tạo ra là 38*38*4
Quá trình phân loại trên các vùng đặc trưng tương ứng với các tầng Conv7, Conv8_2, Conv9, Conv10, và Conv11_2 Hình ảnh của các tầng này phụ thuộc vào việc áp dụng tích chập ở tầng trước, với kích thước bộ nhân lọc luôn là 3x3 theo sơ đồ kiến trúc Mỗi ô trong vùng đặc trưng cần xác định từ 4 đến 6 hộp giới hạn mặc định, dẫn đến tổng số hộp giới hạn mặc định trả về là 8732 dự đoán khi sử dụng 6 tầng.
3.2.2 Quá trình dự đoán tích chập
Sau khi thu được các vùng đặc trưng từ mạng cơ sở, việc thêm các tầng tích chập sẽ giúp giảm kích thước của các vùng đặc trưng Điều này không chỉ giảm số lượng khung hình cần dự đoán mà còn cho phép nhận diện các vật thể ở nhiều kích thước khác nhau Các vùng đặc trưng lớn sẽ phát hiện tốt các vật thể nhỏ, trong khi các đặc trưng nhỏ lại hiệu quả hơn trong việc nhận diện các vật thể lớn.
Việc dự đoán đối tượng qua mạng tích chập phụ thuộc vào tầng đặc trưng được thêm vào trong quá trình trích xuất Tầng này tạo ra một tập hợp cố định các giá trị đầu ra y, hỗ trợ nhận diện đối tượng trong ảnh thông qua các tầng tích chập Kích thước đầu ra của từng loại đặc trưng sẽ phụ thuộc vào bộ nhân lọc (kernel filters) và được tính toán tương tự như các mạng neural khác.
3.2.3 Hộp mặc định và tỷ lệ hướng Ở phần này, SSD sẽ liên kết các hộp giới hạn mặc định được khởi tạo trên một vùng đặc trưng có kích thước m x n ở mỗi đơn vị hay khung hình (cell hoặc pixel) Các hộp này khá giống hộp cố định (anchor box) của Faster-RCNN, nhưng vì vị trí của mỗi đơn vị cố định nên các hộp này luôn cố định, như hình 3.2.2 thể hiện rõ cho ta thấy điều đó Tại mỗi đơn vị, SSD sẽ dự đoán độ lệch của các hộp giới hạn thông qua các chỉ số cho biết sự hiện diện trên mỗi lớp của hộp đó như là tâm (x,y) và kích thước của các hộp đó (chiều dài w, chiều rộng h) Cụ thể hơn, ta giả sử khởi tạo k hộp tại một vị trí,
SSD tính toán chỉ số c class và 4 độ lệch so với hộp mặc định ban đầu Với tọa độ (cx, cy), chiều dài (w) và chiều rộng (h), tổng đầu ra được xác định là (c).
+ 4) x k x m x n trên vùng đặc trưng kích thước m x n.
Hình 3.2 Các hộp mặc định và tỷ lệ hướng của
SSD 3.3 Mục tiêu đào tạo
Mục tiêu đào tạo của SSD là tìm ra được các hộp thật (ground truth) của các vật thể bao gồm các thông tin về lớp và hình dạng.
Mục tiêu đào tạo
Trong quá trình đào tạo, việc ánh xạ các hộp mặc định với tỷ lệ khác nhau so với hộp thật là rất quan trọng Để thực hiện điều này, chúng ta cần đo lường chỉ số IoU (Intersection of Union) hoặc chỉ số Jaccard overlap, dùng để đánh giá tỷ lệ diện tích giao nhau giữa hai vùng hình ảnh so với tổng diện tích của chúng, không tính phần giao nhau Các hộp mặc định sẽ được tính toán với bất kỳ hộp thật nào có ngưỡng lớn hơn 0.5 Công thức tính Jaccard overlap và chỉ số IoU sẽ được áp dụng để đạt được kết quả chính xác.
Hình 3.3 Minh họa Jaccard overlap
Mỗi đơn vị chỉ định một số lượng hộp giới hạn mặc định nhất định, nhằm giảm thiểu sự đa dạng của số lượng khung hình trong khi vẫn đảm bảo bao quát hầu hết các vật thể Các khung hình này cần được sắp xếp sao cho mỗi vùng bất kỳ đều có thể tìm thấy một hộp giới hạn gần nhất Để đạt được điều này, thuật toán K-mean clustering được áp dụng trên tỷ lệ hướng của từng ảnh thật, nhằm phân nhóm các khung hình tương đồng về hình dạng Tâm của các cụm (centroids) sẽ được sử dụng làm các giá trị tỷ lệ hướng đại diện cho việc tính toán hộp mặc định.
3.3.2 Đào tạo tìm ra vật thể
Việc dự báo các vật thể sẽ được thực hiện dựa trên tập hợp các khung hình đầu ra của mạng SSD Chỉ số đánh giá =0,1 được sử dụng để tính toán sự tương đồng giữa hộp giới hạn mặc định thứ i và hộp thật thứ j đối với nhãn thứ k Trong quá trình ánh xạ, có thể xảy ra tình trạng nhiều hộp giới hạn được ánh xạ vào cùng một hộp thật với cùng một nhãn dự báo, dẫn đến tổng ∑ lớn hơn 1.
Hàm loss function là tổng có trọng số của mất mát cục bộ (localization loss - loc) và mất tin cậy (confidence loss - conf):
Trong bài viết, N đại diện cho số lượng hộp mặc định so với hộp thật Hàm mất mát của SSD được cấu thành từ hai thành phần chính: mất cục bộ và mất tin cậy.
Mất cục bộ là hàm Smooth L1 dùng để đo lường sai số giữa tham số của hộp dự báo (p) và hộp thật (g) Để thực hiện, chúng ta cần hồi quy các tỷ lệ cho tọa độ trung tâm (x, y), kích thước hộp giới hạn mặc định (d), cùng với chiều dài h và chiều rộng w.
Mất cục bộ chỉ được xem xét tại các vị trí cần tính toán (i ∈ Posi ∈ Pos) giữa hộp giới hạn dự đoán và hộp giới hạn thật Nếu chỉ số IoU lớn hơn 0.5, vị trí đó được coi là cần tính, tức là hộp giới hạn dự đoán cần thiết Ngược lại, nếu IoU nhỏ hơn 0.5, vị trí đó không được tính.
21 hộp dự đoán đã được xóa khỏi hình ảnh Phần còn lại của công thức tính toán tổng khoảng cách giữa các hộp dự đoán và hộp thật dựa trên tọa độ tâm, chiều dài và chiều rộng.
Để xác định sai số một cách chính xác giữa các khung hình lớn và bé, cần chuẩn hóa các giá trị tọa độ tâm và kích thước Trong khung hình lớn, hộp dự đoán và hộp thực có thể rất khớp nhau, nhưng khoảng cách tâm lại lớn do kích thước khung hình Ngược lại, trong khung hình bé, sai số giữa tâm của hộp dự đoán và hộp thực có thể nhỏ hơn, nhưng điều này không đảm bảo rằng chúng khớp nhau gần gũi Để giải quyết vấn đề này, việc chuẩn hóa kích thước chiều dài, chiều rộng và tọa độ tâm là cần thiết, nhằm loại bỏ sự khác biệt giữa các khung hình lớn và bé.
Các tham số được xác định bằng cách đo lường sự chênh lệch khoảng cách giữa các tâm và mức độ thay đổi kích thước chiều dài, chiều rộng của các hộp thực tế so với các hộp mặc định Hình 3 minh họa quá trình tính toán các tham số này.
Hình 3.4 minh họa tính hộp dự đoán, trong đó các hộp thật được thể hiện bằng viền đen và hộp dự đoán bằng viền đỏ Kích thước dài và rộng của hộp giới hạn mặc định được ký hiệu lần lượt là ( , ℎ ) và tọa độ tâm là ( , ) Để chuyển đổi từ tâm của hộp giới hạn mặc định sang tâm của hộp thật, ta cần thực hiện phép dịch chuyển tuyến tính với các khoảng ( , ℎ ) Kích thước chiều dài và rộng sẽ được điều chỉnh so với hộp giới hạn mặc định với số lần ( ℎ , ) Bổ sung thêm khoảng cách tâm p và độ thay đổi chiều dài, chiều rộng của p.
Mất tin cậy là hàm mất mát được tính toán dựa trên sai số dự báo nhãn Đối với mỗi dự đoán vị trí, chúng ta xác định hàm mất mát theo chỉ số tin cậy của các nhãn tương ứng Đối với mỗi dự đoán tính dương, hàm mất mát được tính dựa trên chỉ số tin cậy của nhãn ‘0’, đại diện cho vùng không chứa vật thể.
Cụ thể hàm mất mát như bên dưới:
Trong quá trình xử lý SSD, hầu hết các hộp mặc định thường là mẫu âm tính, dẫn đến sự mất cân bằng giữa các ví dụ đào tạo tích cực và tiêu cực Để duy trì tỷ lệ âm và dương khoảng 3:1, khai thác cứng âm được áp dụng Phương pháp khai thác tiêu cực cứng sắp xếp các hộp mặc định theo mức độ tin cậy và chỉ chọn các hộp N cao nhất làm tiêu cực Cách tiếp cận này giúp tối ưu hóa nhanh hơn và đảm bảo quá trình đào tạo ổn định hơn.
Chọn kích thước và tỷ lệ cho hộp mặc định
Các hộp giới hạn mặc định được chọn dựa trên tỷ lệ hướng và kích thước SSD xác định tỷ lệ kích thước cho mỗi vùng đặc trưng trong tầng trích xuất Bắt đầu từ bên trái, Conv4_3 phát hiện các vật thể với nhiều kích thước khác nhau.
23 thước nhỏ nhất là = 0.2 (đôi khi là 0.1) và sau đó gia tăng tuyến tính để layer cuối cùng ở phía bên phải có scale là = 0.9 theo công thức:
Với k là số thứ tự của các tầng, chúng ta có thể tính chiều dài và chiều rộng của hộp mặc định bằng cách kết hợp giá trị kích thước thay đổi với tỷ lệ hướng Đối với các tầng có 6 dự báo, SSD sẽ tạo ra 5 hộp mặc định với các tỷ lệ hướng là: 1, 2, 3, 1/2, 1/3 Chiều dài và chiều rộng của các hộp này được tính theo công thức cụ thể.
Trong trường hợp tỷ lệ hướng là 1 thì ta sẽ thêm một hộp giới hạn mặc định thứ 6 với tỷ lệ kích thước được tính theo công thức:
XÂY DỰNG MÔ HÌNH NHẬN DIỆN PHƯƠNG TIỆN GIAO THÔNG
Giới thiệu và tóm tắt
4.1.1 Yêu cầu chung của mô hình
Mô hình nhận diện phương tiện giao thông được xây dựng nhằm tạo nền tảng cho ứng dụng thông báo kẹt xe trong tương lai, với các đặc tính cần thiết để đảm bảo hiệu quả hoạt động.
• Nhận diện được các phương tiện giao thông qua hình ảnh, video.
• Nhận diện được các phương tiện ở trong thời gian thực.
• Mô hình đảm bảo tốc độ xử lý nhận diện nhanh, ổn định và đạt độ chính xác 70%.
Mô hình nhận diện phương tiện giao thông bằng thuật toán Single Shot Multibox Detector cần đáp ứng các yêu cầu chung, bao gồm khả năng phát hiện chính xác và nhanh chóng các loại phương tiện, đồng thời đảm bảo tính hiệu quả trong việc xử lý dữ liệu hình ảnh.
• Xử lý được hình đầu vào.
• Hiển thị được số lượng các phương tiện nhận diện được.
Với những yêu cầu của hệ thống đã đề ra, nhóm tiến hành đưa ra các phương án xử lý như sau:
• Chuẩn bị bộ dữ liệu để nhận dạng đối tượng.
• Xây dựng quá trình tiền xử lý ảnh đầu vào.
• Dò tìm vùng chứa các đối tượng.
• Nhận diện các đối tượng
Sơ đồ tổng quan mô hình
Tiền xử lý đối tượng
Dò tìm vùng bao đối tượng
Hình 4.11 Tổng quan mô hình
Chuẩn bị dữ liệu: là quá trình chọn lọc, thu thập dữ liệu cho quá trình huấn luyện và kiểm thử đối tượng.
Tiền xử lý: đây là quá trình chuyển đổi hình ảnh màu, xử lý ảnh, lọc nhiễu hình ảnh để chuẩn bị cho quá trình tiếp theo.
Dò tìm vùng bao đối tượng: đây là tiến trình tìm vùng bao chứa đối tượng cần xử lý sau khi đã trải qua quá trình tiền xử lý.
Nhận dạng đối tượng: quá trình này sẽ tiến hành nhận diện đối tượng đã được tìm thấy từ hình ảnh hoặc video.
Kết quả: trả về kết quá của quá trình nhận dạng.
Chuẩn bị dữ liệu
Để tối ưu hóa quá trình huấn luyện trên bộ dữ liệu KITTI, việc lựa chọn bộ dữ liệu phù hợp là rất quan trọng Bộ dữ liệu Pascal VOC, vốn đã bao gồm các phương tiện giao thông, giúp việc đào tạo mạng gốc SSD diễn ra nhanh chóng KITTI, một bộ dữ liệu chuyên về giao thông đường bộ, được thiết kế cho huấn luyện trong máy học và thị giác máy tính, bao gồm 7481 hình ảnh huấn luyện, 7518 hình ảnh kiểm tra và 80256 đối tượng được dán nhãn Nhóm nghiên cứu đã chia bộ dữ liệu huấn luyện thành 7500 hình ảnh, trong đó 10% được sử dụng để kiểm thử và 90% để huấn luyện.
Tiền xử lý dữ liệu
Trước khi huấn luyện mô hình, việc tiền xử lý dữ liệu đóng vai trò quan trọng để tối ưu hóa dữ liệu đầu vào, từ đó nâng cao chất lượng kết quả đầu ra Đối với mô hình SSD300, việc điều chỉnh kích thước ảnh về 300x300 và giảm nhiễu là cần thiết Dữ liệu đã được chọn đã trải qua quá trình xử lý chuẩn cho các mô hình nhận diện vật thể, và Tensorflow cung cấp các API hữu ích để tiền xử lý ảnh cho bộ dữ liệu này, bao gồm triển khai dữ liệu và chuyển đổi từ dữ liệu thô.
Lọc ảnh Đưa ảnh về cũng kích thước
Hình 4.12 Lưu đồ quá trình tiền xử lý dữ liệu
4.5 Xây dựng mô hình
Việc xây dựng mô hình này tiêu tốn nhiều thời gian và tài nguyên, vì vậy nhóm đã tham khảo và sử dụng lại các trọng số đã được pre-train để tập trung vào việc đánh giá hiệu suất của mô hình trong thời gian thực.
Kiến trúc mạng mà nhóm đã dùng bao gồm:
• Mạng gốc theo dựa trên VGG16 đã loại bỏ các tầng kết nối đầy đủ ở cuối.
• Áp dụng các bộ lọc nhân chập có kích thước (3*3) để tính toán ra các vùng đặc trưng.
• Xác định đầu ra phân phối xác xuất theo các lớp tương ứng với mỗi hộp giới hạn mặc định.
Xác định các tham số đầu ra bao gồm tọa độ tâm, chiều dài và chiều rộng của các hộp mặc định cho mỗi đơn vị khung hình trong vùng đặc trưng từ ảnh đầu vào.
Dò tìm kích thước hộp giới hạn mặc định
Tìm khoảng cách của các điểm trung tâm
Tìm tọa độ các điểm
Tỷ lệ các hộp giới hạn mặc định trên các đơn vị
Hình 4.13 Quá trình dò tìm vùng bao đối tượng
Để dự báo các tham số cho các hộp giới hạn bao quanh vật thể, cần tính toán các hộp cố định làm cơ sở Giá trị của các hộp cố định chỉ hỗ trợ trong quá trình tính toán và không được đưa vào đầu ra như giá trị cần dự báo.
Huấn luyện và xây dựng mô hình thời gian thực
Để huấn luyện mô hình, nhóm đã duy trì các thông số kích thước từng phần và tỷ lệ học của mạng gốc Dưới đây là các thông số huấn luyện.
Để khởi tạo một mô hình, cần thiết lập các tham số đầu vào cơ bản của ảnh như chiều dài, chiều rộng, số kênh, số lượng nhãn và các giá trị của mỗi tầng nhận diện Sau đó, mô hình được thiết lập dựa trên các tham số này và tiến hành chạy mạng SSD trên khung đã thay đổi kích thước Thuật toán sẽ loại bỏ nhiều phát hiện của một chiếc xe và lấy trung bình các hộp được phát hiện, với ngưỡng cao 0,7 để tránh dương tính giả, trong khi ngưỡng tin cậy lý tưởng lên đến 0,9 Việc kiểm tra lại kiến trúc cũng rất quan trọng để đảm bảo độ chính xác Khi đưa vào một hình ảnh, thuật toán sẽ trả về các khung hình bao quanh vật thể kèm theo nhãn và xác suất của lớp mà vật thể có thể thuộc về Thuật toán này có khả năng dự báo nhiều vật thể với kích thước khác nhau.
Hình 4.15 Dự đoán các xe.
Để xây dựng hệ thống chạy thời gian thực, cần chú ý đến việc thay đổi khung hình khi có dữ liệu vào Nhóm đã nỗ lực nhận diện các phương tiện theo thứ tự và kích thước chiều sâu, giúp dự đoán kích thước và tốc độ chính xác hơn khi có hai phương tiện trùng nhau Các phương tiện không xuất hiện sau 10 khung hình sẽ bị loại bỏ, trong khi những phương tiện chỉ được nhận diện và hiển thị khi xuất hiện ít nhất 10 khung hình.
Đánh giá
Nhóm nghiên cứu đã triển khai kiểm tra mô hình nhận diện phương tiện giao thông thời gian thực trên laptop sử dụng GPU Nvidia Geforce GTX 965 Kết quả cho thấy tỷ lệ phát hiện phương tiện giao thông đạt chỉ số IoU trên 50%, trong khi tỷ lệ dương tính giả rất thấp khi mô hình được chạy.
Hình 4.7 Nhận dạng đối tượng trên hình ảnh
Hình 4.2 thể kiện kết quả kiểm tra trên ảnh được lấy từ bộ dữ liệu Pascal VOC có độ chính xác khoảng 90%.
Hình 4.3 cho thấy kết quả từ việc chạy video, cho thấy các hộp dự đoán phù hợp với phương tiện giao thông, hoạt động nhanh và đáp ứng tốt trong hệ thống thời gian thực Mặc dù đã tối ưu để nhận diện các xe trùng nhau, vẫn còn một số khung hình chưa nhận diện tốt khi hai xe vượt qua nhau.
Hình 4.8 Nhận dạng đối tượng qua video
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Sau quá trình nghiên cứu và phát triển đề tài “Nhận diện phương tiện giao thông sử dụng bộ phát hiện Single shot multibox detector”, đề tài đã hoàn thành với những ưu điểm và khuyết điểm rõ ràng Hầu hết các mục tiêu ban đầu đã được đạt được, bao gồm việc xây dựng lại thuật toán với độ chính xác tương đối và khả năng hoạt động trên các thiết bị cấu hình thấp Điều này mở ra nhiều cơ hội triển khai trên nhiều nền tảng khác nhau, mang lại ý nghĩa thực tiễn và tiềm năng phát triển rộng rãi.
Đề tài này yêu cầu kiến thức sâu rộng về phần cứng, phần mềm và xây dựng trung tâm xử lý dữ liệu, do đó nhóm chưa phát triển được ứng dụng di động hoặc web để tương tác với người dùng Hệ thống vẫn gặp phải một số sai sót do hình ảnh từ camera và độ chính xác trong nhận dạng chưa đạt yêu cầu.
Nhóm cũng tìm hiểu được một vài giải pháp để tối ưu:
• Sử dụng mạng gốc khác nhẹ hơn thay thế VGG16 như MobileNet.
• Nhận diện thêm các đặc trưng để phân loại rõ hơn.
• Sử dụng các thuật toán tối ưu khi chạy video thời gian thực.
• Sử dụng thuật toán khác như YOLO để cải thiện độ chính xác.
• Thay đổi phần cứng mạnh hơn để đáp ứng.
Hướng phát triển
Nâng cao và nghiên cứu thuật toán nhằm cải thiện độ chính xác trong phát hiện đối tượng, đồng thời tăng cường khả năng nhận diện đối tượng ngay cả trong điều kiện hình ảnh có nhiễu.
Xây dựng ứng dụng di động và web giúp người dùng cập nhật tình hình giao thông tại các khu vực Ứng dụng sẽ cung cấp gợi ý và lộ trình thay thế khi xảy ra tắc nghẽn giao thông, hỗ trợ người dùng di chuyển thuận lợi hơn.
Mở rộng khả năng phát hiện và nhận dạng đối tượng là rất quan trọng cho các hệ thống xe tự động lái Việc xây dựng ứng dụng tích hợp trên ô tô sẽ giúp cung cấp cảnh báo kịp thời về các tình huống va chạm hoặc tai nạn, nâng cao độ an toàn cho xe tự hành.