Theo dõi làn đường (tracking) bằng cách sử dụng Kalman filter

Một phần của tài liệu Ứng dụng tri tuệ nhân tạo để phát triển hệ thống nhận diện và theo dõi làn đường cho xe tự lái đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 67)

4.5.1. Giới thiệu Kalman filter

Kalman filter là tập hợp các phương trinh toán học mô tả các phương pháp tính toán truy hồi hiệu quả cho phép ước đoán trạng thái của một quá trình (process) sao cho trung bình phương sai của độ lệch (giữa giá trị thực và giá trị ược đoán) là nhỏ nhất. Kalman filter rất hiệu quả trong việc ước đoán các trạng thái trong quá khứ, hiện tại và tương lai thậm chí ngay cả khi tính chính xác của hệ thống mô phỏng không được khẳng định.

Hình 4.20 Hoạt động của Kalman filter

Hình trên mô hình hóa hoạt động của mạch lọc Kalman. Chúng ta có tín hiệu đó được, chúng ta có mô hình của tín hiệu đo được (đòi hỏi tuyến tính) và sau đó là áp dụng

60 vào trong hệ thống phương trình của mạch lọc để ước lượng trạng thái quan tâm. Thực ra tín hiệu đó là không khó, phương trình đã có sẵn, cái chúng ra cần chính là mô hình hóa hệ thống. Để có thể ứng dụng một cách hiệu quả mạch lọc Kalman thì chúng ta phải mô hình hóa được một cách tuyến tính sự thay đổi của trạng thái cần ước lượng (estimate) hoặc dự đoán (predict).

Hình 4.21 Mô hình không gian trạng thái của Kalman filter

4.5.2. Các phương trình của Kalman filter:

Quá trình dự đoán:

Kalman filter dựa vào trạng thái ước lượng điều chỉnh xˆk k| - là ước lượng của xk

để ước lượng trạng thái xˆk1|k - là ước lượng dự đoán của xk1cho phép đo zk1

Trạng thái dự đoán:

1| |

ˆk k k k kˆ k k

x  F xG u [4.4]

Hiệp phương sai ước lượng dự đoán:

1| |

T k k k k k k k

P F P FQ [4.5]

Đo lường dự đoán:

1| 1ˆ 1|

ˆk k k k k

z  Hx  [4.6]

Quá trình điều chỉnh

61

1 1 1ˆ 1|

k k k k k

r   z  Hx  [4.7]

Hiệp phương sai độ lệch:

1 1 1| 1 1 T k Hk Pk kHk k S      R  [4.8] Hệ số Kalman: 1 1 1| 1 1 T k k k k k K  PHS [4.9]

Trạng thái ước lượng điều chỉnh:

1| 1 1| 1 1

ˆk k ˆk k k k

x   x  Kr  [4.10]

Hiệp phương sai ước lượng điều chỉnh:

1| 1 ( 1 1) 1|

k k k k k k

P   I KHP [4.11]

62

4.5.3. Ứng dụng Kalman fileter để tracking

Ý tưởng thực hiện tracking với Kalman filter

Kalman có 2 trường hợp, không ước lượng được trạng thái trong nhiều frame liên tục (fail nhiều), không ước lượng được trạng thái liên tục nhưng trong ít frame (fail ít). Số lượng frame bị fail nhiều hay ít do chúng ta quy ước.

- Nếu fail nhiều thì sẽ thuật là đường không có lane, bộ dự đoán của Kalman sẽ chờ đến khi nào bắt được lane sẽ cập nhật vào bộ dự đoán của Kalman.

- Nếu fail ít thì sẽ xảy ra 2 trường hợp:

+ Nếu điểm mới cho sai số nhỏ thì sẽ cập nhật điểm mới đó vào bộ dự đoán của Kalman.

+ Nếu điểm mới cho sai số lớn thì sẽ giữ nguyên bộ dự đoán của Kalman.

- Để biết được fram sau sai số ít hay nhiều ta dự vào khoảng cách (bằng cách lấy vị trí điểm đó của fram thứ n+1 trừ cho vị trí điểm đó của fram thư n).

Tiến trình thực hiện

Đầu tiên ta cần xác định được 2 lane chính là lane trái và lane phải. Đặc điểm của 2 lane này là nằm gần nhất với đường thẳng đứng chia đôi khung hình (y=256).

63

Hình 4.23 Ảnh thể hiện 2 lane chính màu xanh

Sau khi xác định được 2 lane chính chọn điểm VashingPoint (Trung bình cộng của 2 điểm cuối cùng nằm trên 2 lane chính).

64

Hình 4.24 Chấm anh dương đậm được gọi là VashingPoint

Tiếp theo ta tính sai số dựa vào thay đổi khoảng cách của điểm VashingPoint phía trên và độ thay đổi diện tích tạo thành giữa những điểm mới và điểm dự đoán của bộ Kalman. Nếu những sai số trên nằm trong vùng cho phép bộ dự đoán Kalman sẽ cập nhật những điểm mới đó, còn nằm ngoài vùng cho phép thì bộ dự đoán của Kalman sẽ giữ nguyên.

65

66

Chương 5. THỰC NGHIỆM VÀ KẾT QUẢ THỰC NGHIỆM 5.1. Chuẩn bị

Gắn camera GoPro Hero 5 Black vào xe như hình 5.1 để ghi video hành trình xe chạy.

Video được ghi lại từ camera GoPro Hero 5 Black sẽ được đem về máy chủ đặt tại Phòng thí nghiệm điều khiển tự động trên ô tô và tiến hành xử lý.

Hình 5.1 Cài đặt camera GoPro Hero 5 Black trên xe

5.2. Địa điểm thực nghiệm

Các đoạn đường xung quanh khu quân sự làng Đại học quốc gia thành phố Hồ Chí Minh.

67

Hình 5.2 Địa điểm thực nghiệm

5.3. Kết quả thực nghiệm

Kết quả thực nghiệm được lưu trên trang web:

https://drive.google.com/open?id=1N8cMYqmhlxAGES2g_H3vbRnSUNPRy_76 Các ảnh kết quả thực nghiệm được chụp lại từ video được lưu trong bộ hình 5.3

68

70

Hình 5.3 Kết quả thực nghiệm

Nhận xét:

- Thuật toán bắt tốt ở một số làn đường thẳng và đường cong.

- Quá trình theo dõi làn đường thực hiện ở đường thẳng thì rất tốt nhưng đường cong còn rất nhiều hạn chế.

72

Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1. Kết luận

Các hệ thống sử dụng giải thuật học sâu mặc dù đạt hiệu suất cao nhưng đòi hỏi dữ liệu huấn luyện khá lớn, bên cạnh đó các hệ thống này chỉ thường hoạt động tốt trên các bối cảnh và môi trường đã được huấn luyện. Do đó khi chuyển sang một môi trường mới, các hệ thống này thường phải được huấn luyện lại hoặc tinh chỉnh (fine-tuning) dựa trên dữ liệu thu thập ở môi trường mới. Tuy nhiên với giới hạn về thời gian thực hiện đề tài và phần cứng hiện có, việc thu thập dữ liệu mới và huấn luyện lại hệ thống là điều bất khả thi. Do đó trong đề tài này, chúng em đề xuất một giải pháp mới kết hợp tính ưu việt của giải thuật học sâu và tính tuỳ biến của các phương pháp xử lý ảnh và xử lý tín hiệu truyền thống cho việc phát triển hệ thống nhận diện lane đường ở Việt Nam. Tuy kết quả đạt được vẫn còn bị nhiễu ở một số trường hợp, nhưng về cơ bản hệ thống đã đạt được mục tiêu đề ra. Bên cạnh đó, vì áp dụng học sâu nhưng phần cứng bị hạn chế nên tốc độ xử lý chưa cao. Ban đầu thời gian để xử lý 1 khung hình lên đến 0.25s, nhưng sau quá trình cải tiến, tốc độ xử lý đã được tăng lên còn 0.16s/khung hình, tuy đã cãi thiện được tốc độ xử lý nhưng hệ thống vẫn chưa đủ đáp ứng xử lý theo thời gian thực. Để tăng tốc độ xử lý (lên đến 50fps), tác giả trong bài viết [3] khuyến nghị nên sử dụng card đồ họa GTX-1070.

Sau khi hoàn thành đồ án này, chúng em đã tích góp được rất nhiều kiến thức bổ ích về học sâu, xử lý ảnh kết hợp ngôn ngữ lập trình python trên nền tảng hệ điều hành ubuntu. Chúng em tin chắc rằng, những kiến thức tích lũy được qua đồ án này sẽ là những kiến thức quý báu làm hành trang hỗ trợ chúng em trên con đường phát triển sự nghiệp sau này.

6.2. Hướng phát triển

Để tăng hiệu suất của hệ thống nhận diện lane làm cho nó phù hợp với môi trường Việt Nam, việc phát triển các giải thuật học chuyển đổi (transfer learning) là điều cần thiết. Các giải thuật này sẽ giúp cho các hệ thống học sâu thích nghi tốt hơn khi được áp dụng ở môi trường mới, và cải thiện hiệu suất nhận diện. Sau khi cải tiến việc nhận diện lane, chúng ta có thể phát triển hệ thống này lên thành cảnh báo cho tài xế khi lệch lane,

73 có thể ứng dụng cho hệ thống lane keeping trên xe tự lái. Bên cạnh đó, chúng ta còn có thể phát triển thêm cho AI biết cách nhận biết vật thể (Object detection) để từ đó xe của chúng ta có thể nhận diện vật cản, các vật trong vùng nguy hiểm để cảnh báo cho tài xế hoặc tác động trực tiếp vào xe để giúp xe chủ động tránh các trường hợp nguy hiểm, nó còn có thể được áp dụng cho hệ thống cảnh báo điểm mù, hệ thống Adaptive Cruise Control,… và với việc ứng dụng AI, sau khi được train nhiều lần thì việc sử dụng cho tình trạng giao thông phức tạp như ở Việt Nam chúng ta chắc chắn sẽ không còn là một vấn đề nan giải.

74

DANH MỤC TÀI LIỆU THAM KHẢO

[1] https://github.com/amusi/awesome-lane-detection [2] https://github.com/georgesung/advanced_lane_detection [3] https://github.com/MaybeShewill-CV/lanenet-lane-detection [4] https://github.com/XingangPan/SCNN [5] https://github.com/davidawad/Lane-Detection [6] https://github.com/yang1688899/CarND-Advanced-Lane-Lines [7] https://github.com/SeokjuLee/VPGNet

[8] https://github.com/mvirgo/MLND-Capstone:Lane Detection with Deep Learning

[9] https://machinelearningcoban.com/2016/12/28/linearregression/

[10] https://github.com/galenballew/SDC-Lane-and-Vehicle-Detection-Tracking

[11] https://github.com/shawshany/Advance_LaneFinding

[12] https://opencv-python-tutroals.readthedocs.io

[13] PGS.TS Nguyễn Quang Hoan, Giáo trình xử lý ảnh, Học viện bưu chính viễn thông

[14] https://vnexpress.net/so-hoa/nhung-ung-dung-cua-ai-trong-cuoc-song-3772257.html [15] https://tech.vccloud.vn/ubuntu-la-gi-co-nen-su-dung-ubuntu-khong- 20180908094633985.htm [16] https://o7planning.org/vi/11385/gioi-thieu-ve-python [17] https://nttuan8.com/huong-dan-cai-dat-anaconda/ [18] https://vi.wikipedia.org/wiki/CUDA [19] https://developer.nvidia.com/cudnn [20] https://drive.google.com/open?id=1N8cMYqmhlxAGES2g_H3vbRnSUNPRy_76

75

PHỤ LỤC

Cài đặt hệ điều hành Ubuntu 16.04

Chuẩn bị:

- SB dùng để boot tốt nhất là trên 4gb

- Phần mềm tạo usb boot ( SB installer, netbootin,…). Ở đây nhóm chúng em sẽ hướng dẫn sử dụng phần mềm USB installer

- File ISO Ubuntu 16.04: http://releases.Ubuntu.com/16.04/

Yêu cầu cấu hình tối thiểu:

- 2 GHz dual core processor - 2 GiB RAM

- 25 GB không gian ổ đĩa cứng

- VGA có khả năng phân giải màn hình 1024×768 - Cổng USB, máy tính hỗ trợ boot từ USB

Tiến hành cài đặt:

77

Bước 2: Khởi động máy tính từ USB boot

Hầu hết các máy tính sẽ tự khởi động từ USB. Chỉ cần kết nối USB và bật nguồn máy tính hoặc khởi động lại. Bạn sẽ thấy cùng một cửa sổ chào mừng, nhắc bạn chọn ngôn ngữ của bạn và cài đặt hoặc dùng thử Ubuntu Desktop.

Nếu máy tính của bạn không tự động khởi động từ USB, hãy thử giữ F12 hoặc phím ESC, F2, F10 khi máy tính của bạn khởi động lần đầu tiên. Với hầu hết các máy, điều này sẽ cho phép bạn chọn thiết bị USB từ menu khởi động hệ thống. Nếu không bạn có thể tham khảo phím tắt Boot option của một số dòng máy tại đây: https://blogtinhoc.vn/tong-hop-phim-tat-vao-boot-option-va-bios-cua-may-tinh.html

Bước 3: Sau khi chọn khởi động máy tình bằng SB boot, chương trình sẽ hiển

thị bảng menu các option sử dụng, ta sẽ chọn “Install buntu” để tiến hành cài đặt hoặc chọn “Try buntu without installing” để trải nghiệm buntu trước khi quyết định cài đặt hay không.

78

Bước 4: Tới phần “Select a language” Bạn chọn ngôn ngữ mà bạn muốn

Bước 5: Sau khi chọn ngôn ngữ, bạn sẽ được hỏi về các bản cập nhật và phần

79 Chúng tôi khuyên bạn nên bật cả Download updates và Install third-party software.

Luôn kết nối với internet để bạn có thể nhận được các bản cập nhật mới nhất trong khi cài đặt Ubuntu.

Nếu bạn không kết nối với internet, bạn sẽ được yêu cầu chọn một mạng không dây, nếu có. Chúng tôi khuyên bạn nên kết nối trong khi cài đặt để chúng tôi có thể đảm bảo máy của bạn được cập nhật.

Bước 6: Sử dụng các hộp kiểm để chọn xem bạn có muốn xóa hệ điều hành hiện

tại và thay thế bằng Ubuntu hoặc cài đặt Ubuntu cùng với hệ điều hành khác hoặc nếu bạn là người dùng nâng cao hãy chọn tùy chọn “Something else”.

Ở đây, chúng tôi chọn xóa hệ điều hành hiện tại và thay thế bằng Ubuntu

Sau khi định cấu hình bộ nhớ, hãy nhấp vào nút “Cài đặt ngay”. Một khung nhỏ sẽ xuất hiện với tổng quan về các tùy chọn lưu trữ bạn đã chọn, với cơ hội quay lại nếu chi tiết không chính xác.

80

81

Bước 8: Chọn kiểu bàn phím

Bước 9: Thiết lập thông tin đăng nhập

Nhập tên của bạn và trình cài đặt sẽ tự động đề xuất tên máy tính và tên người dùng. Nó có thể dễ dàng được thay đổi nếu bạn thích. Tên máy tính là cách máy tính của bạn sẽ xuất hiện trên mạng, trong khi tên người dùng của bạn sẽ là tên đăng nhập và tài khoản của bạn.

Tiếp theo, nhập mật khẩu mạnh. Trình cài đặt sẽ cho bạn biết nếu nó quá yếu. Bạn cũng có thể chọn bật tự động đăng nhập và mã hóa thư mục gốc. Nếu bạn có nhiều dữ liệu quan trọng, bạn nên tắt tính năng đăng nhập tự động và bật mã hóa. Điều này sẽ ngăn mọi người truy cập các tệp cá nhân của bạn nếu máy bị mất hoặc bị đánh cắp.

Chú ý: Nếu bạn bật mã hóa thư mục chính và bạn quên mật khẩu, bạn sẽ không thể truy xuất bất kỳ dữ liệu cá nhân nào được lưu trữ trong thư mục chính của mình.

82

Bước 10: Tiến hành cài đặt

Trình cài đặt sẽ hoàn thành ở chế độ nền trong khi cửa sổ cài đặt hướng dẫn bạn một chút về mức độ tuyệt vời của Ubuntu. Tùy thuộc vào tốc độ của máy và kết nối mạng của bạn, quá trình cài đặt sẽ chỉ mất vài phút.

83

Bước 11: Hoàn thành quá trình cài đặt

Sau khi mọi thứ đã được cài đặt và cấu hình, một cửa sổ nhỏ sẽ xuất hiện yêu cầu bạn khởi động lại máy tính của bạn. Nhấp vào “Khởi động lại” và rút SB khỏi máy tính khi được nhắc.

84

Bước 12: Đặng nhập và sử dụng

Cài đặt Anaconda

Bước 1: Truy xuất phiên bản mới nhất của Anaconda

Từ trình duyệt web, hãy chuyển đến trang tải xuống Anaconda thông qua đường dẫn sau: https://www.anaconda.com/distribution/

Tìm phiên bản Linux mới nhất và sao chép tập lệnh bash của trình cài đặt.

Bước 2: Tải xuống tập lệnh Anaconda Bash

Đăng nhập vào máy chủ buntu 16.04 của bạn với tư cách người dùng không phải root, chuyển vào /tmp thư mục và sử dụng curl để tải xuống liên kết bạn đã sao chép từ trang web Anaconda:

cd /tmp

Sử dụng curl để tải xuống liên kết mà bạn đã sao chép từ trang web Anaconda:

85

Bước 3: Xác minh tính toàn vẹn dữ liệu của trình cài đặt

Đảm bảo tính toàn vẹn của trình cài đặt với xác minh băm mật mã thông qua tổng kiểm tra SHA-256:

sha256sum Anaconda3-5.2.0-Linux-x86_64.sh Output:

09f53738b0cd3bb96f5b1bac488e5528df9906be2480fe61df40e0e0d19e3d48 Anaconda3-5.2.0-Linux-x86_64.sh

Bước 4: Chạy tập lệnh Anaconda

bash Anaconda3-5.2.0-Linux-x86_64.sh

Bạn sẽ nhận được kết quả sau để xem lại thỏa thuận cấp phép bằng cách nhấn ENTER cho đến khi bạn đạt đến kết thúc.

Output:

Welcome to Anaconda3 5.2.0

In order to continue the installation process, please review the license agreement.

Please, press ENTER to continue

>>> ...

Do you approve the license terms? [yes|no]

Khi bạn đến cuối giấy phép, hãy nhập yes miễn là bạn đồng ý với giấy phép để hoàn tất cài đặt.

Bước 5: Hoàn tất quá trình cài đặt

Khi bạn đồng ý với giấy phép, bạn sẽ được nhắc chọn vị trí cài đặt. Bạn có thể nhấn ENTER để chấp nhận vị trí mặc định hoặc chỉ định một vị trí khác.

86 Output:

Anaconda3 will now be installed into this location: /home/sammy/anaconda3 - Press ENTER to confirm the location

- Press CTRL-C to abort the installation - Or specify a different location below [/home/sammy/anaconda3] >>>

Tại thời điểm này, tiến trình cài đặt sẽ tiến hành. Lưu ý rằng quá trình cài đặt mất một thời gian.

Bước 6: Chọn tùy chọn

Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả sau:

Output:

Installation finished.

Do you wish the installer to prepend the Anaconda3 install location to PATH in your /home/sammy/.bashrc ? [yes|no]

Một phần của tài liệu Ứng dụng tri tuệ nhân tạo để phát triển hệ thống nhận diện và theo dõi làn đường cho xe tự lái đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 67)

Tải bản đầy đủ (PDF)

(103 trang)