Chương 1 TỔNG QUAN 1.1 Giới thiệu Hiện nay, xe tự hành đang là một xu hướng đặc biệt được quan tâm trong ngành công nghiệp ô-tô. Trong đó, hệ thống trợ lái nâng cao (ADAS) là một mảng đang được tập trung phát triển. Trong mảng ADAS, hiện tại các hệ thống được tập trung phát triển bao gồm: - Cảnh báo chệch làn đường (LDW): sử dụng camera lắp đặt trên xe để phát hiện vạch kẻ làn đường trên các tốc độ nhất định. Nếu xe rẽ khỏi làn mà không có tín hiệu xi-nhan, cảnh báo âm thanh, cảnh báo hình hoặc cảnh báo rung sẽ được kích hoạt.1: Mô hình hệ thống cảnh báo chệch làn đường - Kiểm soát hành trình chủ động (ACC): sử dụng radar hoặc camera lắp đặt trên xe để phát hiện vị trí và tốc độ theo phương tiện phía trước.
Từ đó tự động điều chỉnh tốc độ của xe nhằm giữ an toàn. 13 Luan van Hình 1.2: Mô hình hệ thống kiểm soát hành trình chủ động - Cảnh báo va chạm trước (FCW): sử dụng cảm biến lắp đặt trên xe để nhận biết vật cản, cảnh báo người lái khi va chạm sắp xảy ra qua âm thanh, tín hiệu ánh sáng trên cụm đồng hồ, cảnh báo qua màn hình HUD, hoặc rung ghế và vô-lăng.3: Mô hình hệ thống cảnh báo va chạm trước Trong những năm gần đây, với những kết quả vượt trội mà phương pháp Deep Learning thể hiện trong việc xử lý tác vụ cụ thể thông qua lượng dữ liệu được cung cấp, việc nhận dạng đối tượng trong các hệ thống của mảng ADAS nghiêng về xu hướng áp dụng Deep Learning vào việc rút trích đặc trưng, phân lớp nhận dạng đối tượng, nhằm tăng độ chính xác và tốc độ xử lý: : 14 Luan van “Road Vehicle Detection and Classification based on Deep Neural Network” [31] của Zhaojin Zhang, sử dụng Deep Neural Network (DNN) có độ chính xác cao hơn những phương pháp trước đó, nhưng tốc độ xử lý còn chậm. Trong “R3-Net: A Deep Network for Multi-oriented Vehicle Detection in Aerial Images and Videos” của Qingpeng Li [32], đã sử dụng một phương pháp mới R3-Net của Neural Network (bao gồm CNN, R-RPN, R-DN kết hợp) để nhận dạng phương tiện. Tuy có thể theo dõi thêm nhiều thông tin của phương tiện như quỹ đạo nhầm nâng cao hiệu suất trong phát hiện xe đa hướng nhưng thuật toán khá phức tạp và chi phí cao.
Trong “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications” [1], nhóm tác giả đã trình bày một mạng CNN cho mục đích nhận diện vật thể, ưu điểm của mạng mới là có thể nhúng trong những thiết bị di động có cấu hình phần cứng thấp. Tại Việt Nam, FPT Software nghiên cứu phát triển xe tự lái từ tháng 8 năm 2016. Xe thử nghiệm được chạy thử vào tháng 10 năm 2017 với tốc độ 20 km/h, có khả năng tự điều khiển đi thẳng, tránh xe ngược chiều, chướng ngại vật và đánh lái chuyển hướng theo các khúc cua. Tuy nhiên, những hệ thống áp dụng Deep Learning yêu cầu phần cứng có cấu hình mạnh và giá thành thương mại cao, khả năng áp dụng đại trà tại Việt Nam là rất thấp.
Do đó, triển khai được những hệ thống trên với phần cứng có cấu hình thấp, giá thành rẻ là một bài toán phải xử lý nếu muốn làm chủ công nghệ Deep Learning tại những nước đang phát triển nói chung và Việt Nam nói riêng. Dựa trên xu hướng nghiên cứu trong lĩnh vực ADAS hiện tại, những thông số khả quan của mạng MobileNets tại [1], học viên chọn phương pháp Deep Learning sử dụng mạng MobileNets cho việc nhận dạng phương tiện giao thông trên những thiết bị có cấu hình phần cứng thấp.2 Mục tiêu của đề tài Mục tiêu của đề tài là xây dựng một chương trình phần mềm áp dụng Deep Learning cho những thiết bị cấu hình phần cứng thấp, có thể nhận biết phương tiện di chuyển trên 15 Luan van đường cao tốc, nhằm cảnh báo lái xe khi khoảng cách giữa xe và phương tiện phía trước quá gần, có nguy cơ xảy ra va chạm.3 Phương pháp của đề tài Đề tài được thực hiện thử nghiệm với tập dữ liệu lấy từ phương tiện di chuyển trên đường cao tốc, đối tượng phát hiện là ô-tô, xe tải và xe khách. chưa thực hiện với đường quốc lộ, tỉnh lộ và các phương tiện tham gia giao thông khác như xe máy, người đi bộ… Đề tài sử dụng thư viện OpenCV cho quá trình tiền xử lý hình ảnh thu được từ camera. Quá trình nhận diện phương tiện giao thông sử dụng mạng CNN, cụ thể là mạng MobileNet-SSD được làm gọn trọng số nhằm tăng tốc xử lý, giúp hệ thống có thể chạy trên những máy tính có cấu hình yếu.
Hệ thống sẽ ước lượng khoảng cách từ camera đến phương tiện giao thông được nhận diện qua tính toán các phép chiếu trên trục tọa độ. Với giá trị khoảng cách thu được, hệ thống dự đoán vị trí của phương tiện giao thông với camera và đưa ra tín hiệu cảnh báo đến người lái.4 Bố cục Luận văn tài có bố cục cụ thể như sau: Chương 1: Tổng quan Giới thiệu các hướng nghiên cứu hiện tại trong và ngoài nước. Mục tiêu và phương pháp của đề tài. Chương 2: Lý thuyết hiệu chỉnh camera Cơ sở lý thuyết trong quá trình hiệu chỉnh camera cho việc tính toán khoảng cách từ ảnh.
Chương 3: Lý thuyết nhận dạng vật thể Cơ sở lý thuyết trong quá trình nhận dạng vật thể. Chương 4: Kết quả thực nghiệm 16 Luan van Quá trình xây dựng hệ thống và kết quả đạt được. Chương 5: Kết luận và hướng phát triển Kết luận ưu, nhược điểm và hướng phát triển của hệ thống. 17 Luan van Chương 2 LÝ THUYẾT HIỆU CHỈNH CAMERA 2.1 Mô hình pinhole camera Về mặt hình học, mô hình Pinhole camera bao gồm một mặt phẳng ảnh I (Image Plan) và một tâm điểm nằm trên mặt phẳng tiêu cự (Pinhole plane) [22].1 mô tả mô hình pinhole camera: Hình 2.1: Mô hình Pinhole camera [22] Tuy nhiên, với mô hình như trên hình 2.1, ảnh của vật bị đảo ngược.
Để dễ dàng cho quá trình tính toán, tiến hành đổi vị trí hai mặt phẳng Image plane và Pinhole plane.2 thể hiện hệ tọa độ camera sau khi hoán đổi vị trí hai mặt phẳng. Trong đó O được gọi là tâm chiếu, đường thẳng qua O vuông góc với hai mặt phẳng Image plane và Pinhole plane được gọi là trục quang (Optical axis). Trục quang cắt mặt Pinhole plane tại c được gọi là Principal point. Trong hệ tọa độ camera trong hình 2.2, mọi điểm ảnh q trên mặt phẳng ảnh I được tạo thành bởi điểm ảnh trên vật thể Q qua O sẽ thẳng hàng với O và Q.
18 Luan van Hình 2.2: Hệ tọa độ camera [22] 2.2 Thông số camera Thông số camera bao gồm các thông số nội (intrinsics) và các thông số ngoại (extrinsics): 2.2 Thông số nội Gọi O(X, Y, Z) là hệ tọa độ camera, c(x, y) là hệ tọa độ của các điểm ảnh trên mặt phẳng ảnh.1) = = X Y Z Trong thực tế, c không bao giờ trùng với tâm ảnh mà có vị trí so với tọa độ gốc quy ước là [cx cy]. Do đó, một điểm Q = [X Y Z]T ở tọa độ thực khi được chiếu lên mặt phẳng ảnh sẽ có tọa độ pixel là [x y]T.3) y = fy ( ) + cy Z 19 Luan van Tiêu cự có hai giá trị khác nhau theo hai phương theo hai phương. Nguyên nhân là với một camera thông thường, ảnh luôn là hình chữ nhật chứ không phải hình vuông tuyệt đối. Với sx, sy là số pixel trên một đơn vị dài milimet, F là chiều dài tiêu cự thực tế theo mimimet, thì fx = Fsx, fy = Fsy.
Các thông số fx, cx, fy, cy được gọi là các thông số nội. Các thông số này được biểu diễn trong ma trận thông số nội M. Khi đó, tọa độ điểm ảnh q với tọa độ điểm thực có mối liên hệ như sau: q = MQ (2.4) x fx 0 cx X Với q = y , M = 0 fy c y , Q = Y w 0 0 1 Z 2. Thông số ngoại Một vật thể trong không gian thường được biểu diễn bởi một hệ tọa độ bất kỳ -không phải hệ tọa độ camera.
Do đó, để tính toán được trên các hệ tọa độ này, cách đơn giản nhất là chuyển nó về hệ tọa độ camera. Giả sử rằng một điểm bất kỳ có tọa độ Pw trong hệ tọa độ W (thế giới thực) và có tọa độ Po trong hệ tọa độ camera. Khi đó Pw có thể chuyển về Po bằng một phép quay và một phép tịnh tiến.5) Ma trận R và vector T mô tả hướng, vị trí tương đối giữa hệ tọa độ thực và hệ tọa độ camera. Ma trận R chứa 3 phép quay và vector T chứa 1 phép tịnh tiến theo vector T.
Những thông số chứa trong R và T được gọi là những thông số ngoại của camera. 20 Luan van Hình 2.3: Minh họa phép chuyển tọa độ thực sang tọa độ ảnh [22] 2.3 Biến dạng thấu kính Biến dạng thấu kính xuất hiện do hạn chế không thể tránh khỏi trong quá trình sản xuất các thấu kính. Có hai biến dạng chính đó là biến dạng xuyên tâm (gây ra do hình dáng của lens kính) và biến dạng tiếp tuyến (do quá trình lắp đặt hệ thống bên trong camera).1 Biến dạng xuyên tâm Xảy ra do các thấu kính của camera thực tế thường gây ra các biến dạng ở rìa của ảnh. Điều này thường dẫn đến hệ quả gây ra hiện tượng “barrel” hoặc “pincushion” (hình 2.4 cho gợi ý tại sao biến dạng xuyên tâm xảy ra.4: Biến dạng xuyên tâm [22] 21 Luan van Hình 2.5: Biến dạng xuyên tâm barrel và pincushion Những tia sáng càng xa trung tâm thấu kính càng bị bẻ cong hơn so với những tia đi qua gần tâm.
Độ biến dạng bằng 0 ở tâm chiếu và tăng dần khi ra dần phía ngoài.7) Trong đó: r2= x2 + y2 Thông thường chỉ sử dụng hai hệ số đầu tiên k1 và k2. Với một số loại camera có độ biến dạng lớn sẽ sử dụng hệ số k3.2 Biến dạng tiếp tuyến Xảy ra do lỗi quá trình sản xuất làm cho thấu kính không định vị song song hoàn toàn so với mặt phẳng ảnh.5 thể hiện lỗi biến dạng tiếp tuyến. 22 Luan van Hình 2.6: Biến dạng tiếp tuyến [22] Biến dạng tiếp tuyến được mô tả theo phương trình sau: xcorrected = x + [2 p1 y + p2 (r 2 + 2x2 )] (2.9) Trong đó: r2= x2 + y2 Vậy có tất cả 5 hệ số cần để mô tả biến dạng thấu kính. Năm hệ số này được lưu trong một vector 5*1 khi tính toán [k1 k2 p1 p2 k3].