1. Trang chủ
  2. » Thể loại khác

BÁO CÁO ĐỒ ÁNĐỀ TÀI: XÂY DỰNG MÔ HÌNH XE TỰ HÀNH ỨNG DỤNG CÔNG NGHỆ DEEP LEARNING

50 449 1

Đ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

Định dạng
Số trang 50
Dung lượng 5,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bao gồm các phương pháp như: phát hiện làn đường theo thời gianthực để điều hướng tự động, … Hiện tại, xe tự hành không chỉ dừng lại ở việcđánh lái, tăng tốc hay phanh trong một số trườn

Trang 1

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VIỆT - HÀN

BÁO CÁO ĐỒ ÁN

ĐỀ TÀI: XÂY DỰNG MÔ HÌNH XE TỰ HÀNH ỨNG

DỤNG CÔNG NGHỆ DEEP LEARNING

Giảng viên hướng dẫn: ThS Nguyễn Anh Tuấn

Sinh viên thực hiện:

2 Hồ Nguyễn Hoàng Vy 17CE062

Đà Nẵng, tháng 12 năm 2020

Trang 2

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

VIỆT - HÀN

BÁO CÁO ĐỒ ÁN

ĐỀ TÀI: XÂY DỰNG MÔ HÌNH XE TỰ HÀNH ỨNG

DỤNG CÔNG NGHỆ DEEP LEARNING

Giảng viên hướng dẫn: ThS Nguyễn Anh Tuấn

Sinh viên thực hiện:

1 Nguyễn Thị Ngà 17CE029

2 Hồ Nguyễn Hoàng Vy 17CE062

Đà Nẵng, tháng 12 năm 2020

Trang 3

MỞ ĐẦU

Trong thế giới hiện đại, máy học (Machine Learning) đang đóng vai trò quan trọng hơn bao giờ hết trong nhiều lĩnh vực khác nhau như: di truyền học, thị giác máy tính, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên, robot, dự đoán thị trường chứng khoán, v.v… Máy học cũng hiện hữu rất nhiều trong đời sống hằng ngày như: Facebook sử dụng máy học để đề xuất kết bạn hay Google sử dụng máy học làm nền tảng cho công cụ tìm kiếm của họ.

Trong ngành công nghiệp ô tô cũng như giới học thuật đã tiến hành rất nhiều nghiên cứu liên quan đến xe tự lái Xe tự lái là một chủ đề rất thú vị, nó có tiềm năng mang lại nhiều lợi ích cho xã hội như: giảm tai nạn giao thông, giảm ùn tắc giao thông, v.v… Theo báo cáo từ NHTSA, hơn 90% các vụ va chạm ô tô xảy ra do lỗi của người lái xe Và những thương vong trên có thể giảm thiểu tối đa bằng cách triển khai các tính năng tự động trong ô tô Do đó, xe tự hành trở thành một phương tiện có khả năng giúp con người tránh được những thương vong đáng tiếc và hiện đang được phát triển bởi nhiều công ty Với mong muốn tìm hiểu và phát triển công nghệ mới này, nhóm chúng tôi thực hiện nghiên cứu đề tài “Xây dựng mô hình xe tự hành ứng dụng công nghệ Deep Learning” Trong đồ án này, chúng tôi ứng máy học để xây dựng một mô hình xe tự lái cơ bản Cụ thể hơn, chúng tôi xây dựng mô hình xe có thể dự đoán góc lái để giúp xe bám theo làn đường dựa vào hình ảnh được chụp từ camera gắn trên xe Ngoài ra, mô hình xe này còn có thể nhận dạng được biển báo giao thông.

Trang 4

LỜI CẢM ƠN

Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ vàhướng dẫn rất tận tình của các thầy cô thuộc Đại Học Công Nghệ Thông Tin VàTruyền Thông Việt Hàn – Đại Học Đà Nẵng Em xin cảm ơn các thầy cô thuộc

bộ môn chuyên ngành đã cung cấp cho chúng em các thông tin, kiến thức vôcùng quý báu và cần thiết trong suốt thời gian quá để em có thể thực hiện vàhoàn thành đồ án của mình Đặc biệt em xin chân thành cảm ơn thầy NguyễnAnh Tuấn, người đã trực tiếp hướng dẫn chúng em trong thời gian thực hiện đồ

án này

Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đãủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúngtôi trong quá trình nghiên cứu và thực hiện đề tài

Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên

đề tài không tránh khỏi những sai sót Em rất mong nhận được sự thông cảm củaquý thầy cô và mong đón nhận những góp ý của thầy cô và các bạn

Em xin chân thành cảm ơn!

Trang 5

NHẬN XÉT

(Của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Đà Nẵng, ngày … tháng … năm 20

Giảng viên hướng dẫn

ThS Nguyễn Anh Tuấn

Trang 6

MỤC LỤC

MỞ ĐẦU 1

LỜI CẢM ƠN 2

NHẬN XÉT 3

MỤC LỤC 4

DANH MỤC VIẾT TẮT 6

CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG XE TỰ HÀNH SỬ DỤNG CÔNG NGHỆ DEEP LEARNING 1

1.1 Tổng quan về xe tự hành 1

1.2 Nội dung đề tài 2

1.3 Mục tiêu đề tài 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA XE TỰ HÀNH 3

2.1 Giới thiệu về xe tự hành 3

2.2 Tổng quan về trí tuệ nhân tạo 4

2.2.1 Trí tuệ nhân tạo – Artificial Intelligence (AI) 4

2.2.2 Machine Learning (ML) 4

2.2.3 Deep Learning (DL) 5

2.2.4 Lý thuyết cơ bản về hình ảnh 7

2.2.5 Convolutional Neural Network (CNN) 7

2.2.6 OpenCV 9

2.2.7 TensorFlow 10

2.2.8 Keras 11

2.3 Xây dựng thuật toán 12

2.3.1 Thuật toán phát hiện làn đường 12

2.3.2 Thuật toán ước lượng độ cong của làn đường 16

2.3.3 Tính toán góc lái và lần vết làn đường cho xe tự hành 17

Chương 3: XÂY DỰNG MÔ HÌNH XE TỰ HÀNH 19

3.1 Phân tích yêu cầu 19

3.2 Môi trường triển khai 19

3.3 Phần cứng 19

3.3.1 Raspberry Pi 19

Trang 7

3.4 Nguyên tắc hoạt động 29

3.4.1 Hoạt động chung 29

3.4.2 Quy trình 29

3.5 Kết quả thử nghiệm và đánh giá 33

KẾT LUẬN 36

1 Kết quả đạt được 36

2 Hạn chế 36

3 Hướng Phát triển 36

TÀI LIỆU THAM KHẢO 38

Trang 8

DANH MỤC HÌNH ẢNH

Hình 2.1 Công nghệ ô tô tự hành 3

Hình 2.2 Convolutional Neural Network (CNN) 7

Hình 2.3 Feature Map 8

Hình 2.4 Quá trình Pooling 9

Hình 2.5 Open CV 10

Hình 2.6 Tensorflow 11

Hình 2.7 Thư viện Keras 12

Hình 2.8 Lưu đồ giải thuật phát hiện làn đường 13

Hình 2.9 Mô hình ước lượng đường cong làn đường 16

Hình 2.10 Minh họa vị trí xe trong làn đường 18

Hình 3.1 Cấu tạo của Raspberry Pi 20

Hình 3.2 Kích hoạt VNC Viewer trên Raspberry Pi 23

Hình 3.3 Kích hoạt VNC Viewer trên Raspberry Pi 23

Hình 3.4 Dùng Putty trong máy tính trỏ về Raspberry Pi 25

Hình 3.5 Kiểm tra xem Pi đã kết nối với mạng dây hoặc Wifi 25

Hình 3.6 Nhập IP của Raspberry Pi 26

Hình 3.7 Điền tên đăng nhập và pass của Pi 26

Hình 3.8 Sơ đồ nối mạch 30

Hinh 3.10 Trainning 31

Hình 3.9 Convolutional Network (CNN) 32

Hình 3.10 Quá trình huấn luyện 33

Hình 3.12 Thực thi 34

Hình 3.11 Mô hình xe đã hoàn thiện 35

Hình 3.12 Ảnh được thu lại từ Raspberry 35

Hình 3.13 Kết quả của mô hình 36

Hình 3.14 Keyboard điều khiển xe 37

Trang 9

DANH MỤC BẢNG

Bảng 3.1 So sánh giữa Raspberry với Arduino 20 Bảng 3.2 Danh mục các thiết bị 26

Trang 10

DANH MỤC SƠ ĐỒ

Sơ đồ 2.1 Hoạt động của Deep Learning 6

Sơ đồ 2.2 Lưu đồ giải thuật phát hiện làn đường 13

Sơ đồ 3.1 Thu thập dữ liệu 30

Sơ đồ 3.2 Training 30

Sơ đồ 3.3 Thực thi 32

Trang 12

Trước đây, đã có nhiều nghiên cứu về điều hướng cho xe tự hành đã đượcthực hiện Bao gồm các phương pháp như: phát hiện làn đường theo thời gianthực để điều hướng tự động, … Hiện tại, xe tự hành không chỉ dừng lại ở việcđánh lái, tăng tốc hay phanh trong một số trường hợp nhất định, nó còn có thểtránh né vật cản, xác định các vật thể chuyển động trên đường để có thể hoàntoàn thay thế người lái xe, giúp cho họ có thể thoải mái hơn trên những tuyếnđường cao tốc, giảm rủi ro tai nạn giao thông Nhờ vào sự phát triển của Học tậpsâu – Deep Learning đã giúp cho việc tạo ra những chiếc xe tự hành khả thi hơnbao giờ hết.

Đã có một số đề xuất về phương pháp để dự đoán và điều hướng cho xe tựhành là sử dụng các thuật toán Computer vision truyền thống (Szeliski, 2010) đểtách biên và dò theo làn đường, từ đó tính toán các góc lái Cách làm trên chỉ cóthể làm tốt trong một số điều kiện nhất định, đầy đủ ánh sáng Trong một sốtrường hợp như làn đường bị mờ, đứt quãng sẽ dẫn đến tính toán sai góc, gâynguy hiểm cho người và phương tiện

Nhận thấy những bất cập của phương pháp nêu trên, chúng tôi đề xuấtmột phương pháp sử dụng công nghệ Deep Learning, cụ thể là mạng neuron tíchchập (Convolutional Neural Network) để dự đoán góc lái (Anon., 9-12 June2019)

Trong đề tài này, chúng tôi sẽ xây dựng một mô hình cơ bản của một xe tự hành

sử dụng Deep Learning Xe có thể hoạt động ở cả hai chế độ: điều khiển bằngtay và chế độ tự lái Dữ liệu để huấn luyện cho mạng CNN sẽ được thu thập quamột camera gắn trên xe, đồng thời xe cũng sử dụng camera này để làm ảnh đầuvào cho mạng CNN dự đoán góc lái (Anon., 9-12 June 2019)

Để có cái nhìn rõ hơn về xe tự hành cũng như lý do tại sao lại nói xe tựhành chính là xu hướng của tương lai thì dựa vào những thông tin sau:

- Trong các trường hợp gây tai nạn giao thông hiện nay thì 90 ~ 95% những

vụ xảy ra tai nạn là do lỗi của sự bất cẩn của con người Chính vì thế, khi

xe tự hành được rộng rãi theo như các nhà khoa học tính toán thì công

Trang 13

nghệ này sẽ giúp giảm được hơn 1 triệu người tử vong hằng năm vì tainạn giao thông

- Việc xe tự hành phát triển cũng đồng nghĩa với đó là giúp tiết kiệm hàngtrăm cho đến hàng tỷ USD (chi phí người dùng phải bỏ ra để sửa ô tô)

- Giúp những người không có khả năng lái xe, người tàn tật và người già dichuyển dễ dàng (như tìm hiểu về xe tự hành ở bên trên thì các bạn cũngthấy đây là một loại xe điều khiển không cần tới con người)

Xe tự hành có thể được định nghĩa là một chiếc xe đã được tự động hóabằng cách sử dụng một số loại phương pháp thuật toán Nó có thể lái xe đến bất

cứ đâu hoặc thực hiện các nhiệm vụ (liên quan đến việc lái xe) mà không có sựcan thiệp của con người Với việc sử dụng phương pháp nhân bản hành vi (làmột phương pháp bắt chước hành vi của con người với sự trợ giúp của máymóc) để học các mẫu trong dữ liệu bằng cách quan sát hành vi của con người tạibất kỳ thời điểm nào và sau đó sao chép nó khi được yêu cầu giúp cho hệ thống

tự hành xử lý chính xác trong các tình huống khác nhau

1.2 Nội dung đề tài

- Xây dựng hệ thống phát hiện làn đường (Realtime) Dữ liệu sau khi thuthập gửi đến một mạng nơ-ron sâu để xử lý và dự đoán góc lái xác địnhlàn đường

- Xây dựng hệ thống phát hiện, nhận dạng, xử lý khi gặp biển báo với DeepLearning

1.3 Mục tiêu đề tài

Mục tiêu chính của đề tài là thiết kế xe tự hành dựa trên phần cứng làRaspberry pi và Pi Camera sử dụng Opencv và Neural network để phát hiện lànđường

Mô hình xe tự hành được huấn luyện bởi một lượng lớn dữ liệu thu thậptrong quá trình điều khiển xe bằng tay Kết quả dự đoán dựa trên dữ liệu được

xử lý bởi Neural Network Kết quả này giúp xác định, phát hiện làn đường.Vớiviệc nhận diện biển báo giao thông với tensorflow, một lượng lớn dữ liệu hìnhảnh về các loại biển báo giao thông sẽ được sử dụng cho quá trình training vớiDeep Learning

Trang 14

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CỦA XE TỰ HÀNH

2.1 Giới thiệu về xe tự hành

Ôtô tự hành được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau trongthực tế và đóng vai trò quan trọng trong môi trường giao thông có nguy cơ tainạn cao như đường đồi dốc, trơn trợt hay các hệ thống giao thông thông minh.Điều khiển chuyển động tự động thông minh của xe có thể giúp hạn chế tai nạncũng như ùn tắt giao thông Ôtô hay robot tự hành là lĩnh vực nghiên cứu thú vị

và nhiều thách thức trong lĩnh vực trí tuệ nhân tạo và điều khiển học Về nguyêntắc, một hệ thống xe tự hành đơn giản sẽ bao gồm hai thành phần chính: Bộphận tiền xử lý và Bộ phận điều khiển Hầu hết các nghiên cứu gần đây đều sửdụng camera để nhận dạng làn đường Bộ phận điều khiển sẽ điều khiển ôtô hayrobot tự hành chuyển động dọc theo giới hạn làn đường của mình và có thể tránhcác vật cản trên đường nếu cần Có nhiều phương pháp có thể được áp dụng đểxây dựng hệ thống điều khiển Tiếp cận phổ biến nhất là hệ điều khiển mờ dựatrên fuzzy logic hoặc hệ thống lai kết hợp giữa mạng neural và logic mờ Các hệthống này thường là cồng kềnh tốn nhiều bộ nhớ và thời gian xử lý Trongnghiên cứu này, chúng tôi đề xuất một giải thuật đơn giản cùng mô hình tínhtoán thích nghi dựa trên các kỹ thuật xử lý ảnh nhằm giúp ôtô tự hành có thể dichuyển và điều khiển lái để chỉ trong giới hạn làn đường của mình tùy theo độcong của làn đường Mục đích chính là tìm một phương pháp hiệu quả, đơn giảnnhưng phát hiện chính xác làn đường, đồng thời giảm thời gian và chi phí tínhtoán cho hệ thống điều khiển ôtô tự hành di chuyển chính xác theo làn đườngquy định Đầu tiên, chúng tôi sử dụng khái niệm vectơ làn đường dựa trên lýthuyết Non-uniform B-Spline (NUBS) để xây dựng các đường giới hạn cho lànđường trái và phải Tiếp theo, chúng tôi ước lượng độ cong của các làn đườngtrái và phải một cách riêng biệt Cuối cùng, dựa trên thông tin về giới hạn và độcong của làn đường, chúng tôi tính toán góc lái để sử dụng cho giải thuật điềukhiển lái

Hình 2.1 Công nghệ ô tô tự hành

Trang 15

Kết quả của quá trình xử lý ảnh sẽ cung cấp thông tin cần thiết và ướclượng độ cong của làn đường nhằm giúp ôtô tự hành di chuyển trong giới hạnlàn đường quy định và xác định được hướng di chuyển chính xác cho xe từ vị tríhiện tại trên làn đường

2.2 Tổng quan về trí tuệ nhân tạo

2.2.1 Trí tuệ nhân tạo – Artificial Intelligence (AI)

Trong khoa học máy tính, trí tuệ nhân tạo hay AI (Artificial Intelligence),đôi khi được gọi là trí thông minh nhân tạo, là trí thông minh được thể hiện bằngmáy móc, trái ngược với trí thông minh tự nhiên của con người Thông thường,thuật ngữ "trí tuệ nhân tạo" thường được sử dụng để mô tả các máy móc (hoặcmáy tính) có khả năng bắt chước các chức năng "nhận thức" mà con ngườithường phải liên kết với tâm trí, như "học tập" và "giải quyết vấn đề"

Khi máy móc ngày càng tăng khả năng, các nhiệm vụ được coi là cần "tríthông minh" thường bị loại bỏ khỏi định nghĩa về AI, một hiện tượng được gọi

là hiệu ứng AI Một câu châm ngôn trong Định lý của Tesler nói rằng "AI là bất

cứ điều gì chưa được thực hiện" Ví dụ, nhận dạng ký tự quang học thường bịloại trừ khỏi những thứ được coi là AI, đã trở thành một công nghệ thôngthường Khả năng máy hiện đại thường được phân loại như AI bao gồm thànhcông hiểu lời nói của con người, cạnh tranh ở mức cao nhất trong trò chơi chiếnlược (chẳng hạn như cờ vua và Go), xe hoạt động độc lập, định tuyến thôngminh trong mạng phân phối nội dung, và mô phỏng quân sự

Trí tuệ nhân tạo có thể được phân thành ba loại hệ thống khác nhau: trí tuệnhân tạo phân tích, lấy cảm hứng từ con người và nhân tạo AI phân tích chỉ cócác đặc điểm phù hợp với trí tuệ nhận thức; tạo ra một đại diện nhận thức về thếgiới và sử dụng học tập dựa trên kinh nghiệm trong quá khứ để thông báo cácquyết định trong tương lai AI lấy cảm hứng từ con người có các yếu tố từ trí tuệnhận thức và cảm xúc; hiểu cảm xúc của con người, ngoài các yếu tố nhận thức

và xem xét chúng trong việc ra quyết định AI nhân cách hóa cho thấy các đặcđiểm của tất cả các loại năng lực (nghĩa là trí tuệ nhận thức, cảm xúc và xã hội),

có khả năng tự ý thức và tự nhận thức được trong các tương tác

2.2.2 Machine Learning (ML)

Machine learning là gì? Machine learning là một lĩnh vực con của Trí tuệnhân tạo(Artificial Intelligence) sử dụng các thuật toán cho phép máy tính có thểhọc từ dữ liệu để thực hiện các công việc thay vì được lập trình một cách rõ

Trang 16

ràng Khả năng học tập là một yếu tố then chốt của trí thông minh Nếu mangkhái niệm này sang machine learning, có vẻ đây là một bước tiến lớn làm chomáy móc thông minh hơn Trên thực tế, hiện nay Machine learning đang là lĩnhvực cho thấy sự tiến bộ trong tiến trình của Trí tuệ nhân tạo Nó đang là một chủ

đề nóng và có khả năng làm cho máy móc trở nên thông minh hơn MachineLearning là một bộ các thuật toán phân tích và học hỏi từ dữ liệu, từ đó áp dụngnhững gì học được để đưa ra quyết định Machine Learning đòi hỏi chuyên môn

về miền, chuyên gia vận hành, và chỉ có thể thực hiện các nhiệm vụ đã được xâydựng sẵn, không hơn không kém

2.2.3 Deep Learning (DL)

Hiện đang là xu hướng trong machine learning dựa trên các mô hình mạng

nơ ron nhân tạo (Artificial Neural Networks) Mạng nơ ron có cách tiếp cận kếtnối và sử dụng ý tưởng theo cách bộ não con người làm việc Chúng bao gồm sốlượng lớn các nơ ron liên kết với nhau; được tổ chức thành các lớp(layers) Họcsâu liên tục được phát triển với các cấu trúc mới sâu hơn Nó không chỉ cố gắnghọc mà còn xây dựng các cấu trúc biểu diễn các đặc trưng quan trọng một cách

tự động

Deep Learning là một nhánh của Machine Learning, có khả năng và tínhlinh hoạt vượt trội hơn Machine Learning Nhờ có nhiều lớp thần kinh nhân tạohơn Machine Learning, Deep Learning sẽ có khả năng tự học và nhận diện nhiềuvấn đề có cấp độ phức tạp hơn nhiều Deep Learning cho phép máy tính tự độnghiểu, xử lý và học từ dữ liệu để thực thi nhiệm vụ được giao, cũng như cáchđánh giá giúp tăng tính hiệu quả

Deep Learning cho phép máy móc học nhanh chóng, cặn kẽ và áp dụngchính xác hơn ngay cả khi sử dụng bộ dữ liệu khổng lồ và phức tạp Càng họcnhiều, các thuật toán Deep Learning càng thực hiện được nhiều nhiệm vụ DeepLearning không chia vấn đề thành các phần nhỏ và giải quyết chúng, mà giảiquyết vấn đề từ đầu đến cuối

Đối với xe tự lái: Deep Learning là công nghệ cốt lõi đưa xe tự lái vào môitrường thực tế Hệ thống tự lái được cung cấp một triệu bộ dữ liệu để xây dựng

mô hình, huấn luyện máy móc và kiểm tra kết quả trong một môi trường antoàn Các thuật toán Deep Learning được kiểm tra và triển khai định kỳ để đảmbảo an toàn và tiếp xúc với nhiều kịch bản khác nhau Dữ liệu từ máy ảnh, cảmbiến, bản đồ giúp tạo ra các mô hình nhỏ gọn và tiên tiến, giúp điều hướng giaothông, xác định đường đi, biển báo, tuyến đường dành cho người đi bộ và cácyếu tố trong thời gian thực như lưu lượng giao thông và tắc đường

Trang 17

Hoạt động của Deep Learning

- Trước tiên, ta cần xác định vấn đề để có giải pháp phù hợp cũng như xemxét tính khả thi của Deep Learning đối với bài toán

- Thứ hai, ta cần xác định dữ liệu liên quan tương ứng với vấn đề và có sựchuẩn bị thích hợp

- Thứ ba, lựa chọn thuật toán Deep Learning phù hợp

- Thứ tư, sử dụng thuật toán để đào tạo tập dữ liệu

- Thứ năm, thử nghiệm trên bộ dữ liệu

Sơ đồ 2.1 Hoạt động của Deep Learning

Hiểu vấn đề và kiểm tra tính khả thi cho Dêp Learning

Xác định dữ liệu có liên quan và

chuẩn bị nó

Lựa chọn thuật toán Dearning

Đào tạo thuật toán

Kiểm tra hiệu suất mô hình

Trang 18

Nhận dạng ký tự(Optical Character Recognition), là một thuật toán chuyển

dữ liệu trên giấy tờ, văn bản thành dữ liệu số hóa Thuật toán phải học cách nhậnbiết ảnh chụp của một ký tự là ký tự nào

Ô tô tự lái(Self-driving cars), một phần cơ chế sử dụng ở đây là xử lý ảnh.Một thuật toán machine learning giúp phát hiện các mép đường, biển báo haycác chướng ngại vật bằng cách xem xét từng khung hình video từ camera

2.2.5 Convolutional Neural Network (CNN)

Convolutional Neural Networks (CNN) là một trong những mô hình deeplearning phổ biến nhất và có ảnh hưởng nhiều nhất trong cộng đồng ComputerVision CNN được dùng trong trong nhiều bài toán như nhận dạng ảnh, phântích video, ảnh MRI, hoặc cho bài các bài của lĩnh vực xử lý ngôn ngữ tự nhiên,

và hầu hết đều giải quyết tốt các bài toán này

CNN là một kiến trúc mạng neuron rất thích hợp cho các bài toán mà dữliệu là ảnh hoặc video Có hai loại layer chính trong CNN: Convolutional layer

và Pooling layer

Hình 2.2 Convolutional Neural Network (CNN)

Trang 19

- Convolutional layer

Convolution layer là lớp quan trọng nhất và cũng là lớp đầu tiên của môhình CNN Lớp này có chức năng chính là phát hiện các đặc trưng có tính khônggian hiệu quả Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộfilters, và receptive field, feature map Convolution layer nhận đầu vào là một

ma trận 3 chiều và một bộ filters cần phải học Bộ filters này sẽ trượt qua từng vịtrí trên bức ảnh để tính tích chập (convolution) giữa bộ filter và phần tương ứngtrên bức ảnh Phần tương ứng này trên bức ảnh gọi là receptive field, tức là vùng

mà một neuron có thể nhìn thấy để đưa ra quyết định, và mà trận cho ra bởi quátrình này được gọi là feature map Để hình dung, các bạn có thể tưởng tượng, bộfilters giống như các tháp canh trong nhà tù quét lần lượt qua không gian xungquanh để tìm kiếm tên tù nhân bỏ trốn Khi phát hiện tên tù nhân bỏ trốn, thìchuông báo động sẽ reo lên, giống như các bộ filters tìm kiếm được đặc trưngnhất định thì tích chập đó sẽ cho giá trị lớn

Với ví dụ ở bên dưới, dữ liệu đầu vào ở là ma trận có kích thước 8x8x1,một bộ filter có kích thước 2x2x1, feature map có kích thước 7x7x1 Mỗi giá trị

ở feature map được tính bằng tổng của tích các phần tử tương ứng của bộ filter2x2x1 với receptive field trên ảnh Và để tính tất cả các giá trị cho feature map,các bạn cần trượt filter từ trái sáng phải, từ trên xuống dưới Do đó, có thể thấyrằng phép convolution bảo toàn thứ tự không gian của các điểm ảnh Ví dụ điểmgóc trái của dữ liệu đầu vào sẽ tương ứng với bên một điểm bên góc trái củafeature map

Hình 2.3 Feature Map

Trang 20

ReLU cũng có một số vấn đề tiềm ẩn như không có đạo hàm tại điểm 0, giá trịcủa hàm ReLU có thể lớn đến vô cùng và nếu chúng ta không khởi tạo trọng sốcẩn thận, hoặc khởi tạo learning rate quá lớn thì những neuron ở tầng này sẽ rơivào trạng thái chết, tức là luôn có giá trị < 0.

- Pooling layer

Sau hàm kích hoạt, thông thường chúng ta sử dụng tầng pooling Một sốloại pooling layer phổ biến như là max-pooling, average pooling, với chức năngchính là giảm chiều của tầng trước đó Với một pooling có kích thước 2x2, cácbạn cần phải trượt filter 2x2 này trên những vùng ảnh có kích thước tương tự rồisau đó tính max, hay average cho vùng ảnh đó

Hình 2.4 Quá trình Pooling

Keras hiện tại đang hỗ trợ nhiều loại pooling layers khác nhau như: maxpooling, average pooling, global average pooling,… Để sử dụng ta cũng làmtương tự như với convolutional layers.

2.2.6 OpenCV

OpenCV (Open Source Computer Vision Library) là một thư viện các chứcnăng lập trình chủ yếu nhắm vào tầm nhìn máy tính thời gian thực OpenCV hỗtrợ nhiều ngôn ngữ lập trình như C ++, Python, Java,… và có sẵn trên các nền

Trang 21

tảng khác nhau bao gồm Windows, Linux, Mac OS, Android và iOS Các giaodiện cho các hoạt động GPU tốc độ cao dựa trên CUDA và OpenCL cũng đangđược phát triển tích cực.

So với các ngôn ngữ như C / C ++, Python chậm hơn Điều đó nói rằng,Python có thể dễ dàng được mở rộng với C / C ++, cho phép chúng ta viết mãchuyên sâu tính toán trong C / C ++ và tạo các trình bao bọc Python có thể được

sử dụng làm mô-đun Python Điều này mang lại cho chúng ta hai lợi thế: thứnhất, mã nhanh như mã C / C ++ gốc (vì đây là mã C ++ thực tế hoạt động ở chế

độ nền) và thứ hai, mã dễ dàng hơn trong Python so với C / C ++ Python là một trình bao bọc Python để thực hiện OpenCV C ++ ban đầu

OpenCV-OpenCV-Python sử dụng Numpy, một thư viện được tối ưu hóa cao chocác hoạt động số với cú pháp kiểu MATLAB Tất cả các cấu trúc mảng OpenCVđược chuyển đổi sang và từ các mảng Numpy Điều này cũng giúp tích hợp dễdàng hơn với các thư viện khác sử dụng Numpy như SciPy và Matplotlib

Trang 22

TensorFlow là đa nền tảng Nó chạy trên hầu hết mọi thứ: GPU và CPU,bao gồm cả nền tảng di động và nhúng, và các đơn vị xử lý tenor (TPU), là phầncứng chuyên dụng để thực hiện phép toán tenor Chúng chưa có sẵn rộng rãi,nhưng gần đây chúng tôi đã đưa ra một chương trình alpha.

Hình 2.6 Tensorflow

Công cụ thực thi phân tán TensorFlow trừu tượng hóa nhiều thiết bị được

hỗ trợ và cung cấp lõi hiệu năng cao được triển khai trong C ++ cho nền tảngTensorFlow

Trên đó là các mặt trận Python và C ++ (còn nhiều thứ nữa) Các lớp APIcung cấp một giao diện đơn giản cho các lớp thường được sử dụng trong các môhình học tập sâu Trên hết là các API cấp cao hơn, bao gồm Keras (nhiều hơntrên trang web Keras.io) và API ước tính, giúp việc đào tạo và đánh giá các môhình phân tán dễ dàng hơn

Và cuối cùng, một số mô hình thường được sử dụng đã sẵn sàng để sửdụng, với nhiều hơn nữa

2.2.8 Keras

Keras là một thư viện mạng nơ-ron mã nguồn mở được viết bằng Python

Nó có khả năng chạy trên đầu trang của TensorFlow, Microsoft CognitiveToolkit, R, Theano hoặc StripeML Được thiết kế để cho phép thử nghiệmnhanh với các mạng thần kinh sâu, nó tập trung vào việc thân thiện với ngườidùng, mô-đun và mở rộng Keras là một high-level API của Tensorflow, được

Trang 23

phát triển nhằm giúp người dùng có thể dễ dàng xây dựng và huấn luyện các môhình Deep learning Một vài lý do nên sử dụng Keras:

- Ưu tiên trải nghiệm của người lập trình

- Được sử dụng rộng rãi trong doanh nghiệp và cộng đồng nghiên cứu

- Giúp dễ dàng biến các thiết kế thành sản phẩm

- Hỗ trợ huấn luyện trên nhiều GPU phân tán

- Hỗ trợ đa backend engines và không giới hạn bạn vào một hệ sinh thái

Hình 2.7 Thư viện Keras

2.3 Xây dựng thuật toán

2.3.1 Thuật toán phát hiện làn đường

Các thuật toán xử lý ảnh cho phát hiện làn đường có thể được phân chiathành ba nhóm chính: Dựa trên phân vùng (region-based), dựa trên phân tích đặctrưng (feature-based) và dựa trên mô hình toán học hóa làn đường (model-based) Hầu hết các nghiên cứu đều đi theo hướng tiếp thứ ba này, sử dụng môhình toán học để mô hình hóa làn đường Mục đích của phương pháp tiếp cậnnày là cố gắng làm cho phù hợp giữa ảnh làn đường được quan sát với mô hìnhgiả thuyết được xây dựng Kỹ thuật này dựa trên giả thuyết rằng làn đường là sựkết hợp của các phần có dạng đường thẳng, đường cong parabol hoặc đườngcong dạng Bsnack (Bảo, 21/10/2013) Giải thuật cho phương pháp phát hiện lànđường của chúng tôi được trình bày như trong sơ đồ sau Đây là một hướng tiếpcận dựa trên sự mở rộng của mô hình hóa làn đường

Đầu tiên, các điểm ảnh thuộc đường biên ảnh giới hạn làn đường sẽ đượcphát hiện nhờ thuật toán phát hiện đường biên Canny Thuật toán rút xương ảnh

Trang 24

sẽ được áp dụng vào ảnh phát hiện cạnh để được ảnh đường biên có độ dày 1điểm ảnh Tiếp đến, ảnh đường biên sau khi rút xương sẽ được dùng để rút tríchcác điểm điều khiển (control points) Phép nội suy NBUS được sử dụng để xâydựng đường cong đại diện cho làn đường trái và phải một cách riêng biệt.

Sơ đồ 2.2 Lưu đồ giải thuật phát hiện làn đường

- Mô hình hóa làn đường bằng đường cong B-Spline (Heidi Loose; Uwe

Franke, 19-22 Sept 2010)

Đường cong NUBS ký hiệu là C Có thể được biển diễn bằng tập hợp

n  1  điểm điều khiển  P P P0, , , 1 2 Pn Điểm P x yii, i thuộc đườngcong C được tính theo công thức (1)

Phát hiện đường biên ảnh

Xây dựng đường biên có độ dày 1 điểm ảnh

Xây dựng các đường giới hạn mô tả làn đườngRút trích đặc trưng của đường biên Ảnh đầu vào

Trang 25

t , j  0 i m  Khi khoảng cách giữa các điểm nút là bằng nhau ta gọi đường

cong là đường cong B-Spline không đồng nhất Càng nhiểu điểm điều khiển vàđiểm nút được xác định thì đường cong B-Spine được biểu diễn bằng đa thứcbậc càng cao và sẽ mô tả đường cong càng chính xác

- Rút trích đặc trưng đường biên

Hình 2.8 Mô hình vectơ làn đường cho bài toán phát hiện làn đường

Đầu tiên, chúng tôi xét 2 đường quét ngang trong ảnh bản đồ làn đường đạtđược từ ảnh phát hiện đường biên và định nghĩa các điểm điều khiển là A B1, 1,cho làn đường bên trái; Ar Br cho làn đường bên phải Xây dựng các vectơ lànđường l  1   A Bl l

cho làn đường bên trái, r1  A Br r

 

cho làn đường bên phải.Tiếp theo, chúng tôi ước lượng góc biểu diễn độ cong của đường biên biểu diễnlàn đường sử dụng công thức:

Ngày đăng: 20/04/2021, 22:18

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w