1. Trang chủ
  2. » Luận Văn - Báo Cáo

HD3 trần ngọc tiến nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo

120 11 0

Đ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

Tiêu đề Nghiên Cứu, Thiết Kế, Chế Tạo Xe Tự Hành Sử Dụng Mạng Học Sâu Nhân Tạo
Tác giả Trần Thị Nhất, Dương Thanh Tùng, Nguyễn Xuân Tuyến
Người hướng dẫn TS. Trần Ngọc Tiến
Trường học Trường Đại Học Công Nghiệp Hà Nội
Chuyên ngành Cơ Điện Tử
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 120
Dung lượng 5,56 MB

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

Nội dung

Sau một thời gian học tập và nghiên cứu thị trường trong lĩnh vực xử lý ảnh và mạng nơ ron học sâu nhân tạo, chúng em quyết định chọn đề tài cho công trình nghiên cứu đồ án lần này là ng

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

- 

 -ĐỒ ÁN TỐT NGHIỆP

ĐỀ TÀI

NGHIÊN CỨU, THIẾT KẾ CHẾ TẠO XE TỰ HÀNH SỬ

DỤNG MẠNG HỌC SÂU NHÂN TẠO

Giáo viên hướng dẫn : TS TRẦN NGỌC TIẾN

Trang 5

MỤC LỤC 0

DANH MỤC HÌNH ẢNH 0

DANH MỤC BẢNG BIỂU 0

LỜI NÓI ĐẦU 1

CHƯƠNG 1 TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO TRONG GIAO THÔNG 2

1.1 Lịch sử nghiên cứu 2

1.1.1 Tình hình nghiên cứu trên thế giới 2

1.1.2 Tình hình nghiên cứu trong nước 3

1.1.3 Sơ lược về hệ thống xe tự hành sử dụng mạng học sâu nhân tạo 5

1.1.3.1 Thuật toán phân cụm 6

1.2 Nội dung nghiên cứu 11

1.3 Mục đích của đề tài 11

1.4 Phương pháp nghiên cứu 12

1.5 Đối tượng, phạm vi và giới hạn của đề tài 13

1.5.1 Đối tượng nghiên cứu 13

1.5.2 Phạm vi nghiên cứu: 13

1.5.3 Giới hạn đề tài: 13

CHƯƠNG 2 TỔNG QUAN VỀ NGHIÊN CỨU, THIẾT CHẾ TẠO XE TỰ HÀNH SỬ DỤNG MẠNG HỌC SÂU NHÂN TẠO 14

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

2.1.1 Khái niệm và thiết lập 14

2.1.1.1 Khái niệm về phát hiện làn đường 14

2.1.2 Tìm làn đường 15

2.1.3 Làn đường cong vênh 15

2.1.4 Tìm làn đường cong 16

2.1.5 Tối ưu hóa đường cong 19

2.2 Thuật toán CNN 21

2.2.1 Giới thiệu CNN 21

2.2.2 Các lớp cơ bản trong CNN 23

2.2.2.1 Convolution layer 23

2.2.2.2 Lớp phi tuyến tính (ReLU layer) 26

2.2.2.3 Pooding Layer 27

2.2.2.4 Full connected layer 28

2.2.2.5 Cross-entropy loss 29

Trang 6

2.3 Thuật toán YOLO 29

2.3.1 Giới thiệu về YOLO 29

2.3.2 Thuật toán YOLO 31

2.3.2.1 Phát hiện hợp nhất 33

2.3.2.2 Anchor box 38

2.3.2.3 Dự đoán hộp giới hạn 39

2.3.2.4 IOU 43

2.3.2.5 Non-Max Suppression(NMS) 45

2.3.2.6 Hàm loss 46

2.3.2.7 Classifycation loss 46

2.3.2.8 Localization loss 47

2.3.2.9 Confidence loss 48

2.3.2.10 Total loss 48

2.3.3 Ứng dụng của YOLO 50

2.4 Tính toán khoảng cách từ vật đến camera 52

2.4.1 Khai thác thư viện OpenCV để hỗ trợ quá trình xử lý ảnh 52

2.4.2 Tính khoảng cách từ Camera đến một đối tượng với OpenCV 54

2.5 Truyền tín hiệu 57

2.5.1 Arduino Nano giao tiếp với máy tính bằng giao tiếp serial 57

2.5.2 Sử dụng Module NRF24L01 - Thu phát sóng vô tuyến 2.4GHz với Arduino 57 CHƯƠNG 3 TÍNH TOÁN, THIẾT KẾ HỆ THỐNG HOÀN CHỈNH 60

3.1 Tính toán, thiết kế xe tự hành 60

3.1.1 Thiết kế phần khung và vỏ cho xe tự hành 60

3.2 Nguyên lý hoạt động và tính toán, thiết kế hệ thống điều khiển 61

3.2.1 Nguyên lý hoạt động của hệ thống 61

3.2.2 Thiết kế hệ thống điều khiển xe tự hành 62

3.2.3 Phân tích chân của hệ thống điều khiển và truyền nhận tín hiệu 63

3.2.1 Thiết lập sơ đồ tín hiệu giao tiếp với xe tự hành 66

3.2.2 Thiết lập chế độ làm việc cho các linh kiện 67

3.2.2.1 Arduino Nano 67

3.2.2.2 Camera 68

3.2.2.3 Module thu phát sóng NRF24L01 69

3.2.2.4 Pin sac litium 18650 3,7v 69

Trang 7

3.2.2.6 Bánh xe 72

3.2.2.7 Module điều khiển động cơ L298 73

3.3 Lập trình điều khiển hệ thống 74

3.3.1 Đào tạo YOLO trên Colab 74

3.3.2 Lập trình trên môi trường PyCharm 76

3.3.3 Code lập trình cho toàn hệ thống 77

CHƯƠNG 4 CHẾ TẠO, THỰC NGHIỆM VÀ ĐÁNH GIÁ HOẠT ĐỘNG CỦA XE TỰ HÀNH 78

4.1 Chế tạo xe tự hành 78

4.2 Các kết quả thực nghiệm 79

4.3 Đánh giá và thảo luận 85

KẾT LUẬN, KIẾN NGHỊ 89

1 Kết luận 89

2 Kiến nghị 90

TÀI LIỆU THAM KHẢO 91

PHỤ LỤC 0

Trang 8

Hình 1.1 Xe tự lái Google có thể đọc tín hiệu xin đường của xe đạp 2

Hình 1.2 Người dùng hoàn toàn có thể thư giãn khi VF31 vận hành dưới tốc độ 60km/h 4

Hình 1.3 Tháng 10/2017, chiếc xe ô tô thương mại đầu tiên tích hợp công nghệ xe tự hành do FPT nghiên cứu và phát triển đã thử nghiệm thành công trong khuôn viên của công ty 4

Hình 1.4 Qúa trình làm việc của hệ thống 5

Hình 1.5 Thuật toán phân cụm 6

Hình 1.6 Phân chia các mô hình học máy nông 8

Hình 1.7 Cấu trúc ANN đơn giản 8

Hình 1.8 Phân ngành của các mô hình học máy sâu 10

Hình 1.9 Cấu trúc mạng CNN 10

Hình 1.10 Cấu trúc RNN đơn giản 11

Hình 1.11 Sơ đồ máy học Extreme learning machine 11

Hình 2.1 Khái niệm về mô đun 14

Hình 2.2 Cung cấp phạm vi giá trị cần sử dụng để tìm làn đường 15

Hình 2.3 A imgThres B imgWarpPoints C imgWarp 16

Hình 2.4 Giá trị nhị phân của làn đường cong 17

Hình 2.5 Ba trường hợp mà phương pháp này nhận diện 17

Hình 2.6 Một số làn đặc biệt 18

Hình 2.7 Điều chỉnh đường tâm của làn đặc biệt 18

Hình 2.8 imgWarp imgHist 19

Hình 2.9 Giá trị trung bình của phần dưới cùng 20

Hình 2.10 Hiển thị trên máy tính 21

Hình 2.11 Tất cả các bước để xác định làn đường 21

Hình 2.12 Ảnh phân tích dữ liệu của chim 22

Hình 2.13 Mạng nơ ron học sâu phân tích xe ô tô 22

Hình 2.14 Lớp cơ bản trongCNN 23

Hình 2.15 Convolution layer 23

Hình 2.16Ma trận X khi thêm viên 0 bên ngoài 24

Hình 2.17 stride=1, padding=1 25

Hình 2.18 stride=2, padding=1 25

Hình 2.19 Bản đồ kích hoạt của lớp tích chập cuối cùng 26

Hình 2.20 Đồ thị mô tả hàm ReLU 26

Trang 9

Hình 2.22 Max pooling layer với size=(3,3), stride=1, padding=0 27

Hình 2.23 Sau khi Pooding layer (2*2) 28

Hình 2.24 Ví dụ về pooding layer 28

Hình 2.25 Pooled feature Map chuyển sang Flattering 29

Hình 2.26 Ví dụ về phát hiện vật thể của YOLO 30

Hình 2.27 Tổng quan về thuật toán YOLO 31

Hình 2.28 Hệ thống phát hiện YOLO 32

Hình 2.29 Mô hình 35

Hình 2.30 Kiến trúc 36

Hình 2.31 Ví dụ về Anchor box 39

Hình 2.32 Trường hợp 2 anchor box bị trùng tâm 39

Hình 2.33 Công thức ước lượng hộp giới hạn từ anchor box [2 0 ] 40

Hình 2.34 Dự đoán hộp giới hạn 41

Hình 2.35 Ví dụ về lưới 3×3 42

Hình 2.36 Ô thứ nhất trong ví dụ lưới 3×3 42

Hình 2.37 Là một ô khác trong ví dụ về lưới 3×3 43

Hình 2.38 Công thức tính IOU 44

Hình 2.39 Ví dụ về IOU 44

Hình 2.40 Tính chỉ số IOU 44

Hình 2.41 Ví dụ trước và sau khi sử dụng NMS 45

Hình 2.42 Hiệu suất của từng phiên bản YOLO 49

Hình 2.43 Yolo phát hiện phương tiện 50

Hình 2.44 Yolo phát hiện động vật 51

Hình 2.45 Yolo phát hiện con người 51

Hình 2.46 Yolo phát hiện các đối tượng 51

Hình 2.47 Các module chính trong thư viện OpenCV 53

Hình 2.48 Không gian màu HSV 54

Hình 2.49 Khoảng cách từ camera đến một đối tượng 55

Hình 2.50 Khai báo biến số 56

Hình 2.51 Tính toán khoảng cách 56

Hình 2.52 Arduino nano 57

Hình 2.53 Module NRF24L01 58

Hình 2.54 Sơ đồ chân module NRF24L01 58

Trang 10

Hình 3.2 Lưu đồ thuật toán của hệ thống 62

Hình 3.3 Module truyền dữ liệu của arduino và NRF24L01+ 62

Hình 3.4 Module nhận dữ liệu của motor, L298 và NRF24L01+ 63

Hình 3.5 Arduino Nano 63

Hình 3.6 Module NRF24L01 64

Hình 3.7 Module L298 65

Hình 3.8 Sơ đồ tín hiệu giao tiếp với mobie robot 66

Hình 3.9 Arduino Nano 68

Hình 3.10 Module NRF24L01 69

Hình 3.11 Pin sạc litium 18650 3,7v 70

Hình 3.12 Mạch sạc bảo vệ mạch 11.1V Li-ion BMS 7A 70

Hình 3.13 Động cơ DC Servo giảm tốc XD-25GA370 71

Hình 3.14 Bánh xe lớn 72

Hình 3.15 Bánh xe dẫn hướng 73

Hình 3.16.Module điều khiển động cơ L298 73

Hình 3.17 Hình ảnh cần gán nhãn 75

Hình 3.18 Hình ảnh được gán nhãn thủ công bằng tay 75

Hình 4.1 Bản vẽ thiết kế 78

Hình 4.2 Xe tự hành chế tạo hoàn chỉnh 78

Hình 4.3 Xe nhận diện làn đường 79

Hình 4.4 Yolo V3 tiny nhận diện đèn tín hiệu xanh, độ chính xác 0.9 79

Hình 4.5 Kết quả trả về khi gặp tín hiệu đèn xanh trên Terminal của Pycharm 80

Hình 4.6 Hình ảnh thu được qua camera khi gặp tín hiệu đèn xanh 80

Hình 4.7 Yolo V3 tiny nhận diện đèn tín hiệu đỏ, độ chính xác 0.9 80

Hình 4.8 Kết quả trả về khi gặp tín hiệu đèn đỏ trên Terminal của Pycharm 80

Hình 4.9 Hình ảnh thu được qua camera khi gặp tín hiệu đèn xanh 81

Hình 4.10 Yolo V3 tiny nhận diện đèn tín hiệu xanh và có người đi đường, độ chính xác 0.8 81

Hình 4.11 Kết quả trả về khi gặp tín hiệu đèn xanh và có người đi đường trên Terminal của Pycharm 81

Hình 4.12 Hình ảnh thu được qua camera khi gặp tín hiệu đèn xanh 82

Hình 4.13 Yolo V3 tiny nhận diện đèn tín hiệu đỏ và có người đi đường, độ chính xác 0.9 82

Hình 4.14 Kết quả trả về khi gặp tín hiệu đèn xanh trên Terminal của Pycharm 82

Trang 11

Hình 4.16 Yolo V3 tiny nhận diện biển STOP, độ chính xác 0.9 83

Hình 4.17 Kết quả trả về khi gặp biển STOP trên Terminal của Pycharm 83

Hình 4.18 Hình ảnh thu được qua camera khi gặp biển STOP 84

Hình 4.19 Yolo V3 tiny nhận diện biển báo tốc độ 20, độ chính xác 0.9 84

Hình 4.20 Kết quả trả về khi gặp biển báo tốc độ 20 trên Terminal của Pycharm 84

Hình 4.21 Hình ảnh thu được qua camera khi gặp tín hiệu đèn xanh 84

Hình 4.22 Yolo V3 tiny nhận diện biển báo tốc độ 60, độ chính xác 0.9 85

Hình 4.23 Kết quả trả về khi gặp tín hiệu đèn xanh trên Terminal của Pycharm 85

Hình 4.24 Ảnh thu được qua camera khi gặp tín hiệu đèn xanh 85

Hình 4.25 Dữ liệu thể hiện độ tin cậy của hệ thống nhận diện với tốc độ 0.5m/s 86

Hình 4.26 Dữ liệu thể hiện độ tin cậy của hệ thống nhận diện với tốc độ 0.2m/s 86

Hình 4.27 Biểu đồ xung điều khiển hai động cơ dựa theo độ lệch tâm 87

Hình 4.28 Biểu đồ độ lệch tâm theo điều kiện ánh sáng 87

Trang 12

Bảng 2.1 Thông số module NRF24L01 58

Trang 13

LỜI NÓI ĐẦU

Hiện nay, cuộc cách mạng công nghiệp 4.0 đang diễn ra hết sức mạnh mẽ với

sự bùng nổ của khoa học công nghệ Trí tuệ nhân tạo (tiếng anh là Artificial Intelligence (AI)) còn được gọi là trí thông minh nhân tạo, là một lĩnh vực của khoa học máy tính, tập trung vào việc tạo ra những cỗ máy thông minh, có thể hoạt động và phản ứng như con người Vì những ý nghĩa to lớn đó nên việc được học tập trong ngành cơ điện tử là một điều tự hào đối với mỗi sinh viên chúng em, đặc biệt hơn khi được học tại trường Đại học Công nghiệp Hà Nội – một trong những ngôi trường kỹ thuật có chất lượng giảng dạy tốt nhất trong lĩnh vực cơ khí

Trong những năm qua, công nghệ xe tự lái trong nước đã có những tín hiệu phát triển tích cực và ngày càng phù hợp với ngành giao thông thế hệ mới Việt Nam đang từng bước gia nhập thị trường xe tự lái để đón đầu cuộc cách mạng 4.0 và chinh phục

“cơn lốc” phát triển công nghệ ô tô thế giới Hiện đã có rất nhiều tập đoàn sản xuất xe hơi và công nghệ lớn trên thế giới đã tham gia vào cuộc chạy đua phát triển xe hơi công nghệ tự lái thông minh mà không cần đến bàn tay can thiệp của con người, trong

đó có những tên tuổi nổi bật như Tesla, Daimler, Google,…

Đồ án tốt nghiệp là một phần hết sức quan trọng và không thể thiếu đối với mỗi sinh viên chúng em Đồ án này giúp chúng em đúc kết và tích lũy thêm những kiến thức cần thiết trước khi ra trường Sau một thời gian học tập và nghiên cứu thị trường trong lĩnh vực xử lý ảnh và mạng nơ ron học sâu nhân tạo, chúng em quyết định chọn

đề tài cho công trình nghiên cứu đồ án lần này là nghiên cứu, thiết kế chế tạo xe tự hành sử dụng mạng học sâu nhân tạo Chúng em nghĩ rằng đây là một đề tài hay và ý nghĩa, hi vọng qua đề tài này chúng em sẽ học được nhiều kinh nghiệm hơn trong phát triển xe robot tự hành nhằm giảm thiểu tai nạn giao thông và bảo vệ môi trường, tiến tới tự động hóa sâu vào trong đời sống con người

Qua đây, chúng em cũng xin được gửi lời cảm ơn sâu sắc đến thầy Trần Ngọc Tiến và các thầy cô trong khoa, bạn bè đã giúp đỡ và nhiệt tình hướng dẫn đề tài này cho chúng em

Hà Nội, ngày 06 tháng 05 năm 2022

Trang 14

CHƯƠNG 1 TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO TRONG

GIAO THÔNG

1.1 Lịch sử nghiên cứu

1.1.1 Tình hình nghiên cứu trên thế giới

Trong vài năm trở lại đây, xe tự hành đang phát triển một cách nhanh chóng Hàng loạt nhà sản xuất ô tô và công ty công nghệ lớn đều đã tham gia nghiên cứu tính năng tự hành, với hàng chục tỷ USD tiền đầu tư Theo định nghĩa truyền thống, xe tự hành là loại ô tô có khả năng hoạt động mà không cần sự điều khiển hay can thiệp của con người Có khả năng phát hiện chướng ngại vật, phân biệt các vật thể khác nhau cũng như xác định tuyến đường tốt nhất cho mỗi hành trình

Chiếc xe được coi xe tự hành đã ra đời bởi Francis Houdina người đứng sau khái niệm đã sử dụng thuật ngữ “a radio-controlled car” (một chiếc xe điều khiển bằng radio) Chiếc xe điều khiển vô tuyến RCA Tuy nhiên nó đã không được thành công như mong đợi Toyota đã giới thiệu Prius hybrid vào năm 2003 Chiếc xe trở nên phổ biến cho bãi đỗ xe tự động nơi tất cả các cảm biến và camera hoạt động tốt Xu hướng sau đó được tiếp nối bởi BMW cũng như cách này hệ thống đỗ xe tự động Hiện nay, Google là một trong những tập đoàn đi đầu trong lĩnh vực xe hơi tự lái, với mong muốn đem tới cuộc sống thuận tiện và dễ dàng hơn cho con người trong tương lai Tuy nhiên, bên cạnh những thành tựu đã đạt được, rất nhiều người cũng đặt ra câu hỏi về

sự an toàn của những chiếc xe thế hệ mới này

Hình 1.1 Xe tự lái Google có thể đọc tín hiệu xin đường của xe đạp

Trong năm 2005, BMW (Bayerische Motoren Werke AG) đã cho ra đời những phiên bản tự hành chạy trên đường thử Năm 2008, GM (General Motors Corporation) công bố khởi đầu những nghiên cứu xe không người lái cho tới năm 2015 và lăn bánh

Trang 15

trên đường năm 2018 Hai năm sau đó, phiên bản tự hành Audi TTS đã đạt tới tốc độ gần với xe đua trên đường lái tới đỉnh núi Pikes Pick, Hoa Kỳ

Không nằm ngoài xu hướng đó, VW hiện nay đang thử nghiệm hệ thống điều khiển tự động tạm thời (TAP) cho phép xe tự lái với tốc độ lên tới 128 km/giờ trên đường cao tốc Nhà máy ô tô tự động đầu tiên của Trung Quốc kết hợp với Đại học Công nghệ Quốc phòng Quốc gia đã thử nghiệm mẫu xe không người lái Hongqi HQ3 trên quãng đường 280 km, với vận tốc 88 km/giờ trong điều kiện đường cao tốc tấp nập

Những tháng đầu năm 2012, Google đã thử nghiệm phiên bản tự hành của mẫu

xe Toyota Prius trên những con đường bang California Mới đây, Cadillac ra mắt hệ thống bán tự động có tên gọi “Super Cruise” với hứa hẹn sẽ sớm đưa vào sản xuất

1.1.2 Tình hình nghiên cứu trong nước

Kỷ nguyên của xe tự hành đã mở ra với cuộc chạy đua không ngừng nghỉ của các nhà sản xuất xe hàng đầu trên thế giới Tại Việt Nam, VinFast đang là đơn vị tiên phong trong sản xuất xe tự hành với dòng xe điện SUV thông minh là VF31 và VF33 Những dòng xe này ngay từ khi công bố đã nhận được hiệu ứng tích cực từ truyền thông quốc tế cũng như cộng đồng đam mê xe ô tô trong nước

Xe tự hành VF31 và VF33 đều sử dụng công nghệ trí tuệ nhân tạo với hệ thống

tự hành cấp độ 2 và 3 Xe điện tự hành VinFast sở hữu tới 30 tính năng thông minh được chia làm 7 nhóm đó là:

➢ Hệ thống thông minh hỗ trợ lái xe an toàn

➢ Hệ thống hỗ trợ kiểm soát làn thích ứng

➢ Hệ thống chủ động kiểm soát hành trình

➢ Hệ thống thông báo va chạm đa điểm

➢ Hệ thống kiểm soát va chạm toàn diện

➢ Hệ thống tự động đỗ xe thông minh

➢ Hệ thống kiểm soát kỹ thuật lái xe

Trang 16

Hình 1.2 Người dùng hoàn toàn có thể thư giãn khi VF31 vận hành dưới tốc độ

Hình 1.3 Tháng 10/2017, chiếc xe ô tô thương mại đầu tiên tích hợp công nghệ xe tự hành do FPT nghiên cứu và phát triển đã thử nghiệm thành công trong khuôn viên của

công ty

Trang 17

Đáng chú ý, từ giữa năm ngoái, những ứng dụng công nghệ mới nhất về xử lý hình ảnh, trí tuệ nhân tạo, học sâu đã được FPT đưa vào thử nghiệm trên xe ô tô mô hình Tháng 10/2017, chiếc xe ô tô thương mại đầu tiên tích hợp công nghệ xe tự hành

do FPT nghiên cứu và phát triển đã thử nghiệm thành công trong khuôn viên của công

ty Kết quả thử nghiệm cho thấy, tốc độ trung bình của xe là 20km/h và chạy đường trường có thể 40km/h

Một số công ty trong nước cũng đang đầu tư rất mạnh vào công nghệ xe ô tô tự hành và đã đạt được những thành tựu nhất định Đây cũng là bước thúc đẩy sự phát triển của thị trường ô tô Việt Nam, nâng tầm giá trị và sự cạnh tranh của xe ô tô tự hành Việt Nam trên thị trường thế giới

1.1.3 Sơ lược về hệ thống xe tự hành sử dụng mạng học sâu nhân tạo

Trong báo cáo này, chúng em trình bày xây dựng hệ thống xe tự hành gắn camera thực hiện điều hướng tự động trong môi trường có vạch kẻ đường và biển báo giao thông dựa trên công nghệ học sâu Hệ thống này là được cấu thành dựa trên hai

kỹ thuật: Tăng cường dữ liệu, xử lý ảnh và mạng nơ-ron tích hợp (CNN)

Hình 1.4 Qúa trình làm việc của hệ thống Phát hiện, theo dõi và phân loại các đối tượng trong làn đường là một nhiệm vụ rất quan trọng Giải pháp nhằm cải thiện tại những nơi giao thông có đông người qua lại Các phương pháp và thuật toán khác nhau của thị giác máy tính được sử dụng để phân tích thông tin trực quan trong hình ảnh và video [2]

Trang 18

1.1.3.1 Thuật toán phân cụm

Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các phương pháp học không có giám sát trong học máy Có rất nhiều định nghĩa khác nhau

về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân cụm dữ liệu là quá trình nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng cùng cụm là tương đồng Phân cụm là một kỹ thuật phổ biến để phân tích số liệu thông tin, các hệ trợ giúp quyết định, các thuật toán nhận dạng mẫu và phân loại mẫu Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu Các thuật toán phân cụm đều sinh ra các cụm, tuy nhiên không có tiêu chí nào là được xem là tốt nhất, điều này phụ thuộc vào mục đích của phân cụm [14]

Hình 1.5 Thuật toán phân cụm

Phân cụm dữ liệu truyền thống bao gồm hai mô hình lớn: phân cụm có giám sát

và phân cụm không có giám sát Phân cụm bán giám sát là sự kết hợp giữa phân cụm giám sát và phân cụm không có giám sát, trong đó sử dụng một số thông tin bổ trợ cho trước trong quá trình phân cụm [14]

Ngoài cách phân chia các phương pháp phân cụm như trên, các phương pháp phân cụm còn được chia thành hai loại: phân cụm rõ và phân cụm mờ Trong phân cụm rõ, với mỗi điểm dữ liệu thuộc vào chính xác một cụm Trong phân cụm mờ, các điểm dữ liệu có thể thuộc vào nhiều hơn một cụm tương ứng giá trị (độ thuộc) đi kèm

Phân cụm mờ là một trong những kỹ thuật phân cụm được nhiều nhà khoa học quan tâm nghiên cứu và được ứng dụng trong nhiều lĩnh vực nhận dạng, xử lý ảnh, xử

Trang 19

lý thông tin Các thuật toán phân cụm mờ rất đa dạng nhờ FCM (Fuzzy C Means), εFCM (insensitive Fuzzy C-means), FPCM (Fuzzy Possibilistic Cmeans), [14]

Phân cụm bán giám sát mờ là một mô hình tương đối mới, đâylà một mở rộng của phân cụm mờ bằng cách sử dụng các thông tin biết trước đểgiám sát và hướng dẫn quá trình phân cụm, từ đó làm tăng chất lượng của cụm [14]

Các thông tin biết trước hay còn gọi là các thông tin bổ trợ nhằm mục đích hướng dẫn, giám sát và điều khiển quá trình phân cụm Các thông tin bổ trợ có thể được xây dựng dựa trên các ràng buộc Must-link và Cannot-link, hoặc các nhãn đi cùng các mẫu hay độ thuộc được xác định trước Với phương pháp gán nhãn đi cùng mẫu đòi hỏi một phần mẫu nhất định trong không gian mẫu có các nhãn đi kèm, các mẫu còn lại không có nhãn Các thuật toán phân cụm bán giám sát mờ phải kể đến nhờ eSFCM, SSSFC (Semi-Supervised Standard Fuzzy Clustering), mạng nơron tự tổ chức GSOM, GFMM, [14]

Pedrycz và Waletzky đã chỉ r rằng thường đối với các ứng dụng trong thế giới thực đòi hỏi nhiều cách thức trung gian của việc tìm kiếm cấu trúc trong bộ dữ liệu, hiệu quả của nó có thể được tăng cường đáng kể bằng cách sử dụng các thông tin biết trước thậm chí một tỷ lệ phần trăm nhỏ của các mẫu được dán nhãn cũng cải thiện đáng kể các kết quả của phân cụm [14]

Việc lựa chọn phương pháp phân cụm là bước quan trọng trong việc giải quyết vấn đề phân cụm Lựa chọn mô hình phân cụm phụ thuộc rất nhiều vào thuộc tính dữ liệu đầu vào và mục đích phân cụm, hoặc đặt mức độ ưu tiên giữa chất lượng của cụm hay thời gian thực hiện [14]

Phân cụm dữ liệu đã được áp dụng trong các lĩnh vực khác nhau như phân đoạn ảnh, nhận dạng đối tượng, ký tự và các chuyên ngành cổ điển như tâm lý học, kinh doanh Một số ứng dụng cơ bản của phân cụm dữ liệu bao gồm: Giao thông, Thương mại, Sinh học, Phân tích dữ liệu không gian, Quy hoạch đô thị, Khai phá Web, Y tế

Dưới đây là hai mô hình chính hay được sử dụng gồm: Shallow machine learning và Deep machine learnig

Học máy nông (Shallow machine learning):

Trang 20

Các thuật toán học máy nông (SML) bao gồm các thuật toán ML truyền thống

và đơn giản Các thuật toán này thường bao gồm một vài, nhiều lần, một lớp ẩn Các thuật toán SML không thể trích xuất các tính năng từ đầu vào và các tính năng cần được xác định trước Đào tạo mô hình chỉ có thể được thực hiện sau khi trích xuất đối tượng địa lý

Hình 1.6 Phân chia các mô hình học máy nông

Mạng thần kinh nhân tạo (Artifical neural network): Mạng nơ-ron nhân tạo (ANN) được phát triển, mô phỏng chức năng của não người để giải quyết các vấn đề phi tuyến tính khác nhau Nó là một mô hình toán học hoặc tính toán bậc nhất bao gồm một tập hợp các bộ xử lý hoặc tế bào thần kinh được kết nối với nhau Do dễ thực hiện

và khả năng dự báo hiệu quả, ANN đã trở nên phổ biến trong lĩnh vực nghiên cứu dự báo tắc nghẽn giao thông

Hình 1.7 Cấu trúc ANN đơn giản

Mô hình hồi quy (Regression model): Hồi quy là một thuật toán ML được giám

sát thống kê Nó mô hình hóa giá trị đầu ra được đánh số thực dự đoán dựa trên biến số đầu vào độc lập Các mô hình hồi quy có thể được chia nhỏ hơn theo số lượng biến đầu vào Mô hình hồi quy đơn giản nhất là hồi quy tuyến tính với một đặc điểm đầu vào Khi số đối tượng tăng lên, mô hình hồi quy bội số được tạo ra

Trang 21

Cây quyết định (Decision tree): Cây quyết định là một mô hình dự đoán kết quả

đầu ra dựa trên một số biến đầu vào Có hai loại cây: cây phân loại và cây hồi quy Khi hai cây này hợp nhất, một cây mới có tên là cây phân loại và cây hồi quy (CART) sẽ tạo ra Cây quyết định sử dụng các tính năng được trích xuất từ toàn bộ tập dữ liệu Rừng ngẫu nhiên là một thuật toán phân loại ML có giám sát là giá trị trung bình của nhiều kết quả cây quyết định Các tính năng được sử dụng ngẫu nhiên trong khi phát triển cây quyết định Nó sử dụng một lượng lớn các cây quyết định CART Các cây quyết định bỏ phiếu cho lớp dự đoán trong một mô hình rừng ngẫu nhiên

Máy vector hỗ trợ (Support vector machine): Máy vectơ hỗ trợ (SVM) là một

phương pháp học máy thống kê Ý tưởng chính của mô hình này là ánh xạ dữ liệu phi tuyến tới một không gian tuyến tính có chiều cao hơn, nơi dữ liệu có thể được phân loại tuyến tính bằng siêu phẳng Do đó, nó có thể rất hữu ích trong việc xác định mô hình luồng giao thông để dự đoán tắc nghẽn giao thông

Học máy sâu (Deep machine learning):

Trong vài thập kỷ qua, Deep Learning đã được chứng minh là một công cụ rất mạnh vì khả năng xử lý một lượng lớn dữ liệu Sở thích sử dụng các lớp ẩn đã vượt qua các kỹ thuật truyền thống, đặc biệt là trong nhận dạng mẫu Một trong những mạng thần kinh sâu phổ biến nhất là mạng thần kinh kết hợp

Các thuật toán DML bao gồm một số lớp ẩn để xử lý các vấn đề phi tuyến Ưu điểm đáng kể nhất của các thuật toán này là chúng có thể trích xuất các tính năng từ dữ liệu đầu vào mà không cần biết trước Không giống như SML, trích xuất tính năng và đào tạo mô hình được thực hiện cùng nhau trong các thuật toán này DML có thể chuyển đổi dữ liệu lưu lượng lớn liên tục và phức tạp với thời gian thu thập giới hạn thành các mẫu hoặc vectơ đặc trưng Từ vài năm gần đây, DML đã trở nên phổ biến trong các nghiên cứu dự đoán tắc nghẽn giao thông

Trang 22

Hình 1.8 Phân ngành của các mô hình học máy sâu

Convolutional neural network [6]: Mạng nơron tích chập (CNN) là một thuật

toán DML thường được áp dụng trong kỹ thuật lưu lượng Do hiệu suất tuyệt vời của CNN trong xử lý hình ảnh, đồng thời áp dụng trong dự đoán lưu lượng, dữ liệu lưu lượng được chuyển đổi thành ma trận 2-D để xử lý Có năm phần chính của cấu trúc CNN trong giao thông vận tải: lớp đầu vào, lớp tích chập, lớp tổng hợp, lớp kết nối đầy đủ và lớp đầu ra Cả lớp chập và lớp gộp đều trích xuất các tính năng quan trọng

Độ sâu của hai lớp này khác nhau trong các nghiên cứu khác nhau Phần lớn các nghiên cứu đã chuyển đổi dữ liệu lưu lượng truy cập thành hình ảnh của ma trận 2-D

Hình 1.9 Cấu trúc mạng CNN

Mạng thần kinh tái diễn (Recurrent Neural Network): Mạng nơ-ron tái diễn

(RNN) được sử dụng rộng rãi trong việc xử lý dữ liệu lưu lượng tuần tự bằng cách xem xét ảnh hưởng của hàng xóm liên quan Bộ nhớ ngắn hạn dài (LSTM) là một nhánh của RNN Trong lớp ẩn của LSTM, có một khối bộ nhớ bao gồm bốn lớp NN,

có chức năng lưu trữ và điều chỉnh luồng thông tin Trong những năm gần đây, với các

hệ thống thu thập dữ liệu khác nhau với khoảng thời gian kéo dài, LSTM đã trở nên phổ biến

Máy học cực đoan (Extreme learning machine): Trong những năm gần đây, một

thuật toán học tập mới được gọi là máy học cực đoan (ELM) được đề xuất để đào tạo mạng nơ-ron chuyển tiếp cấp một lớp (SLFN) Trong ELM, trọng số đầu vào và độ lệch ẩn được chỉ định ngẫu nhiên thay vì được điều chỉnh toàn bộ Do đó, việc đào tạo ELM diễn ra nhanh chóng

Trang 23

Hình 1.10 Cấu trúc RNN đơn giản

Hình 1.11 Sơ đồ máy học Extreme learning machine

1.2 Nội dung nghiên cứu

Nghiên cứu, thiết kế chế tạo xe tự hành sử dụng mạng học sâu nhân tạo

Nghiên cứu về đào tạo nhận dạng trên CNN và ứng dụng xử lý ảnh vào phân tích làn đường cho xe tự hành

Xe tự hành có gắn camera thực hiện nhiệm vụ điều hướng tự động trong môi trường có vạch kẻ đường và phát hiện các loại biển báo giao thông

Đánh giá sai số sự nhận diện của xe so với thực tế để có hướng đi và cải thiện

hệ thống ưu việt hơn

Nâng cao năng lực, khả năng tìm tòi sáng tạo và kinh nghiệm của nhóm đồ án tốt nghiệp về thiết kế, lựa chọn thiết bị công nghệ

1.3 Mục đích của đề tài

Nghiên cứu cơ sở để thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo Đề tài đưa ra sẽ phát triển theo tính ứng dụng thực tế, dựa trên việc nghiên cứu và tìm tòi cơ sở lý thuyết Đề tài cũng đã vận dụng các kiến thức khoa học về tâm lý học

Trang 24

để thu hút, tạo đam mê trong học tập của sinh viên, phát huy tính chủ động trong học tập và nghiên cứu của sinh viên

Xe tự hành có khả năng phát hiện và tránh chướng ngại vật, phân biệt các vật thể như làn đường, biển báo, con người

Theo số liệu thực tế cho thấy 90 – 95% các vụ đâm xe ô tô xảy ra là do sự bất cẩn và mất tập trung của con người Vì vậy xe tự hành giúp giảm thiểu tai nạn do các

vụ tai nạn xe hàng năm và bảo vệ môi trường

Giúp tiết kiệm hàng trăm triệu đến hàng tỉ USD chi phí sửa chữa ô tô

Xe tự hành giúp những người không có khả năng lái xe, người tàn tật hay người già di chuyển dễ dàng, chủ động và thuận tiện hơn

1.4 Phương pháp nghiên cứu

Phương pháp nguyên cứu lý thuyết

- Tham khảo một số bài báo cáo của một số học giả nước ngoài tại một số hội nghị khoa học quốc tế

- Dựa trên sự hướng dẫn của thầy cô, các học phần đã học (kỹ thuật điện

tử kỹ thuật vi xử lý, cơ sở hệ thống tự động, cảm biến và hệ thống …) và tham khảo trên internet

- Sử dụng một số phần mềm lập trình, mô phỏng để hỗ trợ như: Pycharm, OpenCV, NX 12, Matlab, MPLAB IDE, Arduino IDE, Proteus…

- Tính toán để xe tự hành thực hiện nhiệm vụ điều hướng tự động trong môi trường có vạch kẻ đường và biển báo giao thông

Phương pháp nguyên cứu thực nghiệm:

- Thực hiện hoàn thành từng giai đoạn của hệ thống

- Tính toán, thiết kế và thử nghiệm hệ thống

- Thiết kế mô hình thực tế và mô phỏng hệ thống trên phần mềm Pycharm

và trên thực tế

Trang 25

1.5 Đối tượng, phạm vi và giới hạn của đề tài

1.5.1 Đối tượng nghiên cứu

Việc sử dụng mạng nơ ron sâu học nhân tạo vào xe tự hành có ý nghĩa rất lớn trong việc giải quyết việc tắc nghẽn giao thông và bảo vệ môi trường trong tương lai,

mở một hướng đi mới trong công cuộc khai thác các ứng dụng công nghệ tiên tiến để phục vụ con người Nhằm mục đích tối ưu hiệu suất khi sử dụng xe tự hành ở Việt Nam hiệu quả và mở ra một tương lai để phát triển loại mô hình này, đây chính là động lực để nhóm em tìm hiểu và có thêm nhiều hiểu biết hơn và cách thiết kế, xây dựng mô hình

Mô hình sẽ đạt được các yêu cầu sau:

- Thiết kế hệ thống ứng dụng mạng nơ ron sâu học nhân tạo và xử lý ảnh

- Đáp ứng các điều kiện cần để hệ thống chạy trơn tru

- Tiến hành thực nghiệm trên video trên mạng và thực tế

1.5.2 Phạm vi nghiên cứu:

- Dựa trên cơ sở lý thuyết để thiết lập hệ thống

- Nghiên cứu, thiết kế chế tạo xe tự hành sử dụng mạng học sâu nhân tạo quét vật thể tĩnh (đèn tín hiệu giao thông, biển báo tốc độ…) và vật thể động (con người, phương tiện xe cộ…) trên làn đường, tiến hành chạy thẳng, rẽ trái, rẽ phải làn đường

- Tổng quan về hệ thống và tìm hiểu thêm các mô hình đã được nghiên cứu trên thế giới

1.5.3 Giới hạn đề tài:

- Hệ thống có độ chính xác, nhanh nhạy và tối ưu nhất có thể

- Hệ thống có thể chạy thành công ở các tuyến đường trên hệ thống mô phỏng trực tiếp

- Ứng dụng xử lý ảnh vào phân tích làn đường cho xe tự hành

Trang 26

CHƯƠNG 2 TỔNG QUAN VỀ NGHIÊN CỨU, THIẾT CHẾ TẠO XE TỰ HÀNH SỬ DỤNG MẠNG HỌC SÂU NHÂN

TẠO

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

2.1.1 Khái niệm và thiết lập

Trong loạt bài này, nghiên cứu học cách tạo xe tự lái sử dụng máy tính có thể đi theo một con đường bằng cách sử dụng thuật toán phát hiện làn đường đơn giản Trước tiên, sử dụng phát hiện làn đường và sau đó tìm thấy đường biên cong của làn đường Sau đó, sẽ gửi các lệnh đến động cơ dựa trên đường cong này

2.1.1.1 Khái niệm về phát hiện làn đường

Ý tưởng là tìm ra làn đường bằng cách sử dụng phát hiện màu hoặc dò cạnh và sau đó lấy đường cong bằng cách sử dụng tổng các pixel theo hướng y (biểu đồ) Chia nhiệm vụ thành 5 bước khác nhau Điều này bao gồm ngưỡng, cong vênh, biểu đồ, trung bình và hiển thị Và tạo một mô-đun để phát hiện làn đường Bằng cách này, không cần phải đặt tất cả hàm trong chương trình chính thay vào đó chúng tôi có thể

có các tệp python riêng biệt mà mỗi tệp thực hiện các tác vụ riêng biệt của chúng Vì vậy, đối với dự án này, chúng ta sẽ có một chương trình chính phát hiện làn đường và gửi tín hiệu xử lý tới arduino kết nối với máy tính

Hình 2.1 Khái niệm về mô đun Nhập thư viện:

Chương trình sẽ chạy trên Pycharm Bằng cách này, quá trình viết mã dễ dàng hơn nhiều

Trang 27

Nhập thư viện opencv cùng với numpy Utlis.py là tệp chương trình con chứa các hàm chức năng của chúng tôi để giữ cho chương trình chính gọn gàng

2.1.2 Tìm làn đường

Đầu tiên, tạo một hàm getLaneCurve và sau đó áp dụng giá trị ngưỡng cho hình ảnh

BƯỚC 1 – Xác định giá trị ngưỡng

Bây giờ, ý tưởng ở đây là tìm ra làn đường bằng cách sử dụng Color hoặc Edge Detection Trong trường hợp này, sử dụng giấy trắng A4 làm làn đường, do đó, chỉ cần

sử dụng tính năng phát hiện màu để tìm làn đường Sau đó, viết hàm Thresholding trong tệp Utlis.py

Ở đây, chuyển đổi hình ảnh sang không gian màu HSV và sau đó áp dụng một dải màu cần tìm Màu này có thể được tìm thấy bằng cách sử dụng tập lệnh bộ chọn màu

Hình 2.2 Cung cấp phạm vi giá trị cần sử dụng để tìm làn đường

2.1.3 Làn đường cong vênh

Mục đích của chương trình là biết khúc cua trên con đường ngay phía trước xe chứ không phải ở phía trước quá xa Vì vậy, đơn giản là cắt hình ảnh ra, nhưng điều này là chưa đủ vì muốn nhìn con đường như thể chúng ta đang quan sát từ trên xuống Đây được gọi là chế độ xem birdeye và nó rất quan trọng vì nó sẽ cho phép chúng ta

dễ dàng tìm thấy đường cong Để làm cong hình ảnh, chúng ta cần xác định các điểm ban đầu Những điểm này chúng tôi có thể xác định bằng tay Vì vậy, để làm cho quá trình này dễ dàng hơn, việc sử dụng các thanh theo dõi để thử nghiệm với các giá trị khác nhau Ý tưởng là để có được một hình chữ nhật khi đường thẳng

Trang 28

Tạo hai chức năng cho thanh theo dõi Một cái khởi tạo thanh theo dõi và cái thứ hai nhận giá trị hiện tại từ chúng

Bây giờ chúng ta có thể gọi hàm khởi tạo ở đầu mã và thanh valTrackbar trong vòng lặp while ngay trước khi làm cong hình ảnh Vì cả hai hàm đều được viết trong tệp utlis nên ta sẽ viết ‘utlis.’ trước khi gọi chúng

Bây giờ viết hàm cong vênh cho phép chúng ta có được chế độ xem birdeye bằng cách sử dụng bốn điểm mà vừa điều chỉnh

Ở đây sẽ nhận được ma trận chuyển đổi dựa trên các điểm đầu vào và sau đó làm cong hình ảnh bằng cách sử dụng chức năng ‘warpPrespective’ Vì cần áp dụng

ma trận nghịch đảo và thêm chức năng này vào hàm của mình Để nghịch đảo, chỉ cần

ma trận nghịch đảo mà có thể tìm thấy bằng cách chuyển pts1 và pts2

Bây giờ gọi hàm để lấy phối cảnh dọc

Hình ảnh dưới đây cho thấy rõ các điểm để làm cho quá trình điều chỉnh dễ dàng hơn Vì vậy, để hiển thị các điểm của chúng ta sẽ sử dụng hàm "circle"

Hình 2.3 A imgThres B imgWarpPoints C imgWarp 2.1.4 Tìm làn đường cong

Bây giờ đến phần quan trọng nhất, tìm đường cong trên con đường Để làm điều này, chúng ta sử dụng tổng các pixel Giả sử rằng hình ảnh bị cong vênh bây giờ

là các giá trị nhị phân, tức là nó có pixel đen hoặc trắng, tính tổng các giá trị pixel theo hướng y

Trang 29

Hình 2.4 Giá trị nhị phân của làn đường cong Hình trên cho thấy tất cả các pixel màu trắng với giá trị 255 và tất cả màu đen với 0 Bây giờ nếu chúng ta tính tổng các pixel trong cột đầu tiên, nó sẽ là 255 + 255 +

255 + 255 + 255 = 1275 Áp dụng phương pháp này cho từng cột Trong hình ảnh gốc như trên, có chiều rộng là 480 pixel Do đó có 480 giá trị Sau khi tổng kết, có thể xem

có bao nhiêu giá trị nằm trên một ngưỡng nhất định, giả sử là 1000 ở mỗi bên của đường màu đỏ trung tâm Trong ví dụ trên chúng ta có 8 cột bên trái và 3 cột bên phải Điều này cho chúng ta biết rằng đường cong hướng về bên trái

Hình 2.5 Ba trường hợp mà phương pháp này nhận diện Các hình ảnh trên cho thấy 3 trường hợp mà các phương pháp này sẽ hoạt động

Có thể thấy rõ rằng khi đường cong ở bên phải số lượng pixel ở bên phải nhiều hơn bên trái và ngược lại Và với đường thẳng, số lượng pixel xấp xỉ nhau ở cả hai bên

Trang 30

Nhưng sẽ có một số trường hợp không áp dụng được Vấn đề được biểu diễn ở dưới

Hình 2.6 Một số làn đặc biệt

Ở đây, mặc dù không có đường cong vì có nhiều pixel hơn ở một bên, thuật toán sẽ xuất ra đường cong trái hoặc phải Vì vậy, để giải quyết vấn đề này thì sẽ phải điều chỉnh đường tâm

Hình 2.7 Điều chỉnh đường tâm của làn đặc biệt Chỉ cần tìm tâm của cơ sở sẽ cung cấp đường trung tâm và sau đó so sánh các pixel ở cả hai bên

Việc này có thể được tính toán bằng một phương pháp Bằng cách tổng hợp các pixel này, sau đó thu được một biểu đồ Do đó gọi hàm này là ‘getHistogram’ Giả sử đang thực hiện bước thứ hai trong đó phải tính tổng tất cả các pixel và sau đó sẽ quay lại bước một để tìm tâm của cơ sở

Đầu tiên khai báo hàm sẽ lấy image làm đối số đầu vào Sau đó tính tổng tất cả các pixel theo hướng y

Ở đây histValues là 480 giá trị chứa tổng của mỗi cột

Trang 31

Bây giờ một số pixel trong hình ảnh có thể chỉ là nhiễu Vì vậy, việc sử dụng chúng trong tính toán là không hay Do đó, đặt giá trị ngưỡng sẽ là giá trị tối thiểu cần thiết cho bất kỳ cột nào để đủ điều kiện là một phần của đường dẫn và không bị nhiễu Đặt một giá trị được mã hóa cứng dựa trên dữ liệu trực tiếp Vì vậy, tìm giá trị tổng lớn nhất và nhân tỷ lệ phần trăm do người dùng xác định với nó để tạo ra giá trị ngưỡng

Bây giờ chỉ cần thêm tất cả số lượng pixel ở mỗi bên và tìm hướng trái phải hoặc hướng thẳng Nếu đường cong là đúng, phải xác định rằng biết bao nhiêu là đúng

Để có được giá trị của độ cong, việc tìm các chỉ số của tất cả các cột có giá trị lớn hơn ngưỡng và sau đó sẽ tính trung bình các chỉ số của mình Điều này có nghĩa là nếu chỉ

số pixel bắt đầu từ 30 và kết thúc ở 300, trung bình sẽ là (300-30) / 2 +30 = 165

Giá trị cơ sở bây giờ là điểm cơ sở trung bình của hình ảnh thu thập được Vẽ thêm điểm cơ sở này để hình dung rõ hơn

Hình 2.8 imgWarp imgHist

Ở đây có thể thấy biểu đồ của hình ảnh bị cong vênh ở bên phải Chấm màu vàng là giá trị trung bình nghiêng về phía bên tay trái Giá trị trung bình nhận được là

227

2.1.5 Tối ưu hóa đường cong

Bây giờ trừ giá trị này ra khỏi tâm để lấy giá trị đường cong Nếu giả sử tâm là

240 thì giá trị đường cong là 227-240 = -13 Ở đây dấu trừ cho biết đường cong hướng

về phía bên trái và giá trị 13 cho biết cường độ của đường cong Như đã thảo luận trước đó, phương pháp này không chính xác vì phần giữa có thể thay đổi

Trang 32

Vì vậy, để tìm chính giữa có thể chỉ cần sử dụng chức năng vừa tạo, nhưng lần này thay vì hình ảnh hoàn chỉnh, áp dụng kỹ thuật biểu đồ chỉ trên 1/4 phần dưới cùng của hình ảnh Điều này là do quan tâm đến mức trung bình của cơ sở, vì vậy không muốn tính trung bình các pixel trên 1/4 hình ảnh Để đạt được điều này, thêm một đối

số đầu vào của vùng và dựa trên giá trị đầu vào của nó, và lấy trung bình toàn bộ hình ảnh hay một phần của nó

Vì vậy, nếu vùng là 1, toàn bộ hình ảnh sẽ là trung bình và nếu vùng là 4 thì ở phần thứ 4 ở dưới cùng sẽ được tính trung bình Hình ảnh dưới đây cho thấy giá trị trung bình của phần dưới cùng

Hình 2.9 Giá trị trung bình của phần dưới cùng Bây giờ giá trị trung bình chúng ta nhận được là 278 Điều này có nghĩa là trung tâm thực tế của hình ảnh là 278 thay vì 240 Bây giờ có thể trừ giá trị trung bình

mà đã nhận được trước đó từ điểm giữa này vậy 227 278 = 51 Trước đó giá trị là

-13 và bây giờ nhận được -51 Nhìn vào hình ảnh cong vênh, có thể biết rằng cường độ của đường cong là cao, do đó điều này khẳng định rằng phương pháp thứ hai cho kết quả tốt hơn

BƯỚC 6 - Tính trung bình

Khi có giá trị đường cong, thêm nó vào một danh sách để có thể tính trung bình giá trị này Tính trung bình sẽ cho phép chuyển động trơn tru và sẽ tránh được bất kỳ chuyển động mạnh nào

BƯỚC 7 - Hiển thị

Trang 33

Bây giờ chúng ta có thể thêm các tùy chọn để hiển thị kết quả cuối cùng Chúng tôi sẽ thêm một đối số đầu vào vào hàm ‘getLaneCurve’ chính của chúng tôi để chúng tôi có thể linh hoạt bật và tắt nó

Hình 2.10 Hiển thị trên máy tính

Trang 34

Hình 2.12 Ảnh phân tích dữ liệu của chim

Hệ thống AI, được biết đến với tên gọi AlexNet (được đặt theo tên người tạo chính của nó, Alex Krizhevsky), đã giành chiến thắng trong cuộc thi thị giác máy tính ImageNet năm 2012 với độ chính xác 85% đáng kinh ngạc Người về nhì chỉ đạt 74 phần trăm khiêm tốn trong bài kiểm tra

CNN lần đầu tiên được phát triển và sử dụng vào khoảng những năm 1980 Điều mà CNN có thể làm được nhiều nhất vào thời điểm đó là nhận dạng các chữ số viết tay Nó chủ yếu được sử dụng trong các lĩnh vực bưu chính để đọc mã zip, mã pin, v.v Điều quan trọng cần nhớ đối với bất kỳ mô hình học sâu nào là nó đòi hỏi một lượng lớn dữ liệu để đào tạo và cũng đòi hỏi nhiều tài nguyên máy tính Đây là một nhược điểm lớn đối với CNN vào thời kỳ đó và do đó CNN chỉ giới hạn trong lĩnh vực bưu chính và nó không thể bước vào thế giới máy học

CNN là tên viết tắt của từ Convolutional Neural Network (hay còn gọi là CNNs_mang nơ ron tích chập) Đây là một trong những mô hình Deep Learning vô cùng tiên tiến CNN sẽ cho phép bạn xây dựng các hệ thống thông minh với độ chính xác vô cùng cao Tên "mạng nơ-ron tích chập" chỉ ra rằng mạng sử dụng một phép toán học được gọi là tích chập CNN được dùng trong trong nhiều bài toán như nhân dạng ảnh, phân tích video

Hình 2.13 Mạng nơ ron học sâu phân tích xe ô tô

Trang 35

Trong học sâu, mạng ron tích tụ (CNN /ConvNet) là một lớp của mạng ron sâu, được áp dụng phổ biến nhất để phân tích hình ảnh trực quan Bây giờ khi chúng ta nghĩ về mạng nơ-ron, chúng ta nghĩ đến phép nhân ma trận nhưng đó không phải là trường hợp của ConvNet Nó sử dụng một kỹ thuật đặc biệt gọi là Convolution Bây giờ trong toán học, tích chập là một phép toán trên hai hàm tạo ra một hàm thứ ba biểu thị cách hình dạng của một hàm được sửa đổi bởi hàm kia

nơ-2.2.2 Các lớp cơ bản trong CNN

Trong mô hình CNN thường có 4 lớp cơ bản: lớp tích chập (Convolutional Layer), lớp phi tuyến tính, lớp gộp (Pooding Layer), lớp kết nối đầy đủ (Full Connected Layer) Các layer liên kết được với nhau thông qua cơ chế convolution, Layer tiếp theo là kết quả convolution từ layer trước đó

Hình 2.14 Lớp cơ bản trongCNN

2.2.2.1 Convolution layer

Tích chập là lớp đầu tiên để trích xuất các đặc trưng từ hình ảnh đầu vào Xem xét 1 ma trận X kích thước 5*5 có giá trị pixel là 0 và 1 Ma trận bộ lọc W kích thước 3*3 như hình bên dưới

Hình 2.15 Convolution layer

Trang 36

Với mỗi phần tử xij trong ma trận X lấy ra một ma trận có kích thước của ma trận bộ lọc W có phần tử xij làm trung tâm gọi là ma trận A Rồi dịch chuyển bộ lọc lần lượt theo chiều từ trái sang phải, từ trên xuống dưới, sau đó tính tổng các phần tử của phép nhân ma trận ta được ma trận kết quả Y

Sau khi thao tác tích chập, kích thước hình ảnh ban đầu nhỏ lại, như ta thấy trên

ví dụ là 5*5 xuống còn 3*3 do khi tính thì sẽ bỏ qua các phần tử ở viền ngoài vì không thể tìm được ma trận A trong X

Nếu ma trận X m*n nhân chập với ma trận bộc lọc W k*k thì kích thước của

ma trận sẽ là (m-k+1) * (n-k+1)

Padding:

Như trên với mỗi lần tính toán thì kích thước ma trận Y đều nhỏ hơn X Tuy nhiên ta muốn ma trận Y thu được có kích thước bằng ma trận X bằng cách thêm giá trị 0 ở viền ngoài ma trận X

Hình 2.16Ma trận X khi thêm viên 0 bên ngoài Như vậy với padding = 1, ma trận kết quả Y sẽ bằng với ma trận X ban đầu

Stride:

Như ở trên ta thực hiện tuần tự các phần tử trong ma trận X, thu được ma trận Y cùng kích thước ma trận X, ta gọi là stride=1

Trang 37

Hình 2.17 stride=1, padding=1 Tuy nhiên với k=2, sẽ bắt đầu từ vị trí x11 sau đó nhảy 2 bước theo chiều ngang

và dọc cho đến hết ma trận X

Hình 2.18 stride=2, padding=1 Kích thước của ma trận Y lại là 3*3 đã giảm đi so với ma trận X

Với ma trận X kích thước m*n và ma trận bộ lọc kích thước k*k, stride = s, padding = p, ta được ma trận Y kích thước [{(m + 2 - + 1) /} + 1] ∗ [{(+ 2 - + 1) /} + 1]

Mạng nơ-ron chuyển đổi bao gồm nhiều lớp nơ-ron nhân tạo Các nơron nhân tạo, một sự bắt chước thô sơ của các đối tác sinh học của chúng, là các hàm toán học tính toán tổng trọng số của nhiều đầu vào và đầu ra một giá trị kích hoạt Khi bạn nhập hình ảnh vào ConvNet, mỗi lớp tạo ra một số hàm kích hoạt được chuyển cho lớp tiếp theo

Trang 38

Lớp đầu tiên thường trích xuất các tính năng cơ bản như các cạnh ngang hoặc chéo Đầu ra này được chuyển sang lớp tiếp theo để phát hiện các đặc điểm phức tạp hơn như các góc hoặc các cạnh tổ hợp Khi chúng tôi tiến sâu hơn vào mạng, nó có thể xác định các đặc điểm phức tạp hơn như vật thể, khuôn mặt…

Dựa trên bản đồ kích hoạt của lớp tích chập cuối cùng, lớp phân loại xuất ra một tập hợp các điểm tin cậy (giá trị từ 0 đến 1) xác định khả năng hình ảnh thuộc về một "lớp" Ví dụ: nếu bạn có ConvNet phát hiện mèo, chó và ngựa, đầu ra của lớp cuối cùng là khả năng hình ảnh đầu vào chứa bất kỳ động vật nào trong số đó

Hình 2.19 Bản đồ kích hoạt của lớp tích chập cuối cùng

2.2.2.2 Lớp phi tuyến tính (ReLU layer)

ReLU viết tắt của Rectified Linear Uni, đảm bảo tính phi tuyến của mô hình huấn luyện sau khi thực hiện một loạt các phép tính toán tuyến tính qua các lớp tích chập Với đầu ra là: ƒ (x) = argmax(0, x)

Hình 2.20 Đồ thị mô tả hàm ReLU

Trang 39

Hình 2.21 Hàm ReLU công thức 𝜃(𝑥) = max⁡(0, 𝑥) Hàm ReLU sẽ trả về giá trị dương hoặc 0 nếu đó là giá trị âm, giúp tăng tỉ lệ nhận diện

2.2.2.3 Pooding Layer

Pooling layer thường được dùng giữa các convolutional layer, để giảm kích thước dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng Việc giảm kích thước dữ liệu giúp giảm các phép tính toán trong model

Gọi pooling size kích thước K*K Input của pooling layer có kích thước H*W Với mỗi ma trận, trên vùng kích thước K*K trên ma trận ta tìm maximum hoặc average của dữ liệu rồi viết vào ma trận kết quả

Hình 2.22 Max pooling layer với size=(3,3), stride=1, padding=0

Nhưng hầu hết khi dùng pooling layer thì sẽ dùng size = (2,2), stride = 2, padding = 0 Khi đó output width và height của dữ liệu giảm đi một nửa

Trang 40

Hình 2.23 Sau khi Pooding layer (2*2)

Có 2 loại pooling layer phổ biến là: max pooling và average pooling

Hình 2.24 Ví dụ về pooding layer

2.2.2.4 Full connected layer

Sau khi ảnh được truyền qua nhiều convolutional layer và pooling layer thì model đã học được tương đối các đặc điểm của ảnh (ví dụ mắt, mũi, khung mặt ) thì output của layer cuối cùng, kích thước H*D sẽ chuyển về 1 vector kích thước (H*W, 1)

Ngày đăng: 11/06/2022, 17:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Hicham, B., Ahmed, A., & Mohammed, Vehicle Type Classification Using Convolutional Neural Network., Fez, Morocco: IEEE, 2018 Khác
[2] Aleksandr Mezhenin, Vladimir Polyakov, Vera Izvozchikova, Development and Testing of a Pedestrian Traffic Monitoring, St. Petersburg: University Orenburg State University Khác
[3] Wang, H.; Roa, A.C.; Basavanhally, A.N.; Gilmore, H.L.; Shih, N.; Feldman, M.; Tomaszewski, J.; Gonzalez, F.;, A. Mitosis detection in breast cancer pathology images by combining handcrafted and, J. Med. Imaging, 2014, 1 Khác
[4] Chen, K.; Loy, C.C.; Gong, S.; Xiang, T. Feature mining for localised crowd counting, Surrey, UK: In Proceedings of the BMVC, 3–7 September 2012 Khác
[5] Wu, X.; Liang, G.; Lee, K.K.; Xu, Y. Crowd density estimation using texture analysis and learning, Kunming, China: In Proceedings of the 2006 IEEE International Conference on Robotics and Biomimetics, 17–20 December 2006 Khác
[6] Duygulu, P.; Barnard, K.; de Freitas, J.F.; Forsyth, D.A. Object recognition as machine translation: Learning a lexicon for a fixed image vocabulary, Copenhagen, Denmark: In Proceedings of the European Conference on Computer Vision, 28–31 May 2002 Khác
[7] Abbott, F.T.; Johnson, A.H.; Prior, S.D.; Steiner, D.D. Integrated Biological Warfare Technology Platform (IBWTP). Intelligent Software Supporting Situation Awareness, Response, and Operations, 2007: Technical Report;Quantum Leap Innovations Inc.: Newark, USA Khác
[8] Sam, D.B.; Sajjan, N.N.; Maurya, H.; Babu, R.V. Almost Unsupervised Learning for Dense Crowd Counting, USA: In Proceedings of the Thirty-Third AAAI Conference on Artificial Intelligence, Honolulu, HI, 27 January–1 February 2019 Khác
[9] Naveed Ilyas, Ahsan Shahzad 2 and Kiseon Kim, Convolutional-Neural Network- Based Image Crowd Convolutional-Neural Network-Based Image Crowd Counting: Review, Categorization, Analysis, and Performance Evaluation, 19 December 2019 Khác
[10] Zhan, B.; Monekosso, D.N.; Remagnino, P.; Velastin, S.A.; Xu, Xu, L.Q. Crowd analysis: A survey, Mach. Vis.Appl, 2008 Khác
[11] Zitouni, M.S.; Bhaskar, H.; Dias, J.; Al-Mualla, M.E. Advances and trends in visual crowd analysis: A systematic survey and evaluation of crowd modelling techniques, Neurocomputing, 2006 Khác
[12] Ryan, D.; Denman, S.; Sridharan, S.; Fookes, C. An evaluation of crowd counting methods, features and regression models, Comput. Vis. Image Underst, 2015 Khác
[13] Sindagi, V.A.; Patel, V.M, A survey of recent advances in cnn-based single image crowd counting and density estimation, Pattern Recognit. Lett, 2018 Khác

HÌNH ẢNH LIÊN QUAN

1.1.1. Tình hình nghiên cứu trên thế giới - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
1.1.1. Tình hình nghiên cứu trên thế giới (Trang 14)
Hình 1.5 Thuật toán phân cụm. - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 1.5 Thuật toán phân cụm (Trang 18)
Hình 1.8 Phân ngành của các mô hình học máy sâu - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 1.8 Phân ngành của các mô hình học máy sâu (Trang 22)
Hình 2.1 Khái niệm về mô đun Nhập thư viện: - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.1 Khái niệm về mô đun Nhập thư viện: (Trang 26)
Đầu tiên, tạo một hàm getLaneCurve và sau đó áp dụng giá trị ngưỡng cho hình ảnh. - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
u tiên, tạo một hàm getLaneCurve và sau đó áp dụng giá trị ngưỡng cho hình ảnh (Trang 27)
Hình 2.4 Giá trị nhị phân của làn đường cong - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.4 Giá trị nhị phân của làn đường cong (Trang 29)
Hình 2.13 Mạng nơron học sâu phân tích xe ô tô - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.13 Mạng nơron học sâu phân tích xe ô tô (Trang 34)
Hình 2.18 stride=2, padding=1 - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.18 stride=2, padding=1 (Trang 37)
Hình 2.17 stride=1, padding=1 - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.17 stride=1, padding=1 (Trang 37)
Hình 2.23 Sau khi Pooding layer (2*2) - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.23 Sau khi Pooding layer (2*2) (Trang 40)
Hình 2.27 Tổng quan về thuật toán YOLO 2.3.2.Thuật toán YOLO - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.27 Tổng quan về thuật toán YOLO 2.3.2.Thuật toán YOLO (Trang 43)
Hình 2.28 Hệ thống phát hiện YOLO. - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.28 Hệ thống phát hiện YOLO (Trang 44)
Hình 2.30 Kiến trúc. - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.30 Kiến trúc (Trang 48)
Mỗi một vật thể trong hình ảnh huấn luyện được phân bố về một cell trên feature map mà chứa điểm mid point của vật thể - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
i một vật thể trong hình ảnh huấn luyện được phân bố về một cell trên feature map mà chứa điểm mid point của vật thể (Trang 51)
Hình 2.35 Ví dụ về lưới 3×3 - HD3 trần ngọc tiến  nghiên cứu, thiết kế, chế tạo xe tự hành sử dụng mạng học sâu nhân tạo
Hình 2.35 Ví dụ về lưới 3×3 (Trang 54)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm