1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô

57 7 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 đề Xây Dựng Mô Hình Hệ Thống Cảnh Báo Tai Nạn Cho Ô Tô
Tác giả Bùi Quang Sơn
Người hướng dẫn PGS.GVCC.TS Nguyễn Minh Tâm
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành KT Điều Khiển Và Tự Động Hóa
Thể loại luận văn thạc sĩ
Năm xuất bản 2019
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 57
Dung lượng 4,33 MB

Cấu trúc

  • 1.pdf (p.1)

  • 2.pdf (p.2-56)

  • 4 BIA SAU A4.pdf (p.57)

Nội dung

TỔNG QUAN

Giới thiệu

Cuộc cách mạng 4.0 đang diễn ra mạnh mẽ với sự phát triển vượt bậc của khoa học công nghệ, trong đó tự động hóa hệ thống là lĩnh vực then chốt Mục tiêu của các hệ thống này là giảm thiểu công việc cho con người, giúp họ trở nên nhàn rỗi hơn Ngành công nghiệp ô tô không đứng ngoài xu thế này, đang đẩy mạnh nghiên cứu và phát triển xe tự hành cùng các hệ thống thông minh nhằm nâng cao sự an toàn và tiện lợi cho người lái Các hãng ô tô lớn trên thế giới đang tập trung vào việc tích hợp những công nghệ tiên tiến này vào sản phẩm của mình.

Hệ thống Cảnh báo chệch làn đường (Lane Departure Warning - LDW) sử dụng camera tích hợp trên xe để theo dõi các vạch kẻ làn đường khi xe di chuyển với tốc độ nhất định Khi xe rời khỏi làn mà không bật tín hiệu xi-nhan, hệ thống sẽ kích hoạt cảnh báo âm thanh, hình ảnh hoặc rung để cảnh báo người lái.

Hình 1.1: Hệ thống cảnh báo chệch làn đường LDW

Hệ thống kiểm soát hành trình chủ động (Adaptive Cruise Control - ACC) là công nghệ tiên tiến sử dụng radar hoặc camera để theo dõi và phát hiện các phương tiện phía trước Hệ thống này tự động điều chỉnh tốc độ xe nhằm đảm bảo khoảng cách an toàn, giúp người lái giảm bớt căng thẳng khi di chuyển trên đường.

Hệ thống kiểm soát hành trình thích ứng (ACC) cho phép người lái thiết lập tốc độ tối đa, và xe sẽ tự động duy trì tốc độ đó Tuy nhiên, ACC còn có khả năng giảm tốc độ tự động khi phát hiện phương tiện phía trước, mang lại sự an toàn và tiện lợi hơn so với hệ thống kiểm soát hành trình thông thường.

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

Cảnh báo va chạm trước (FCW) là tính năng hỗ trợ người lái cơ bản trên ôtô, giúp nhận diện và cảnh báo khi có nguy cơ va chạm xảy ra Hệ thống này chỉ cung cấp cảnh báo mà không can thiệp để giảm thiểu va chạm Phương thức cảnh báo khác nhau giữa các mẫu xe và hãng xe, nhưng thường sử dụng âm thanh, tín hiệu ánh sáng trên cụm đồng hồ, hiển thị qua màn hình HUD, hoặc thông qua rung ghế và vô-lăng.

Hình 1.3: Hệ thống cảnh báo va chạm trước FCW

Bắt kịp với xu thế, tháng 4 năm 2017, tại hội thảo “Tương lai công nghệ ô tô và robot trong cuộc cách mạng công nghiệp 4.0” ở nước ta, FPT Software cũng giới

3 thiệu mô hình thử nghiệm xe tự lái do công ty tự nghiên cứu phát triển từ tháng 8 năm

Vào năm 2016, các chuyên gia đã giới thiệu giải pháp công nghệ hỗ trợ lái xe nâng cao (ADAS - Advanced Driver Assistance Systems) bao gồm các tính năng như nhận diện làn đường, camera cảm biến 360 độ, phát hiện vật cản, tín hiệu đèn giao thông, biển báo giao thông và bảng giám sát điều khiển thân vỏ ô tô Đến tháng 10 năm 2017, chiếc ô tô tự lái đầu tiên do FPT phát triển đã được thử nghiệm với tốc độ vượt quá 20 km/h, có khả năng tự điều khiển, tránh xe ngược chiều, chướng ngại vật và thực hiện các cú đánh lái khi vào khúc cua.

Các thiết bị thông minh hiện nay chủ yếu được trang bị trên các phương tiện hạng sang, và nếu có thương mại thì giá thành rất cao Do đó, chúng tôi đã phát triển một mô hình hỗ trợ cảnh báo tai nạn cho ô tô, nhằm giúp người điều khiển giảm thiểu rủi ro khi tham gia giao thông Mô hình này sẽ giám sát làn đường và cảnh báo về vật cản phía trước thông qua một camera Tín hiệu cảnh báo có thể là thông báo âm thanh, đèn báo hiệu hoặc bộ báo rung Để đạt được điều này, việc xử lý hình ảnh từ camera để phát hiện làn đường và nhận diện chính xác đối tượng phía trước trong thời gian thực là rất cần thiết.

Các nghiên cứu gần đây cho thấy việc nhận dạng đối tượng chủ yếu tập trung vào độ chính xác và tốc độ xử lý nhanh thông qua việc áp dụng Deep Learning kết hợp với các thuật toán Một trong những phương pháp hiệu quả là rút trích đặc trưng Haar-like kết hợp với thuật toán AdaBoost của Viola-Jones, mang lại kết quả xuất sắc về nhận dạng và tốc độ xử lý Do đó, học viên đã chọn phương pháp này để nhận dạng xe ô tô trong mô hình, đồng thời kết hợp với việc phát hiện làn đường và dự báo khoảng cách từ hình ảnh camera đơn tới đối tượng.

4 dạng Các vấn đề này chính là một trong các bài toán của thiết bị thông minh cho xe ô tô hay xa hơn nữa là xe tự hành.

Mục tiêu của đề tài

Mô hình cảnh báo tai nạn ô tô được thiết kế nhằm phát hiện làn đường và giám sát các đối tượng cản trở, như ô tô có thể gây nguy hiểm trong quá trình tham gia giao thông Hệ thống sẽ cung cấp tín hiệu cảnh báo cho người điều khiển phương tiện thông qua các phương tiện như màn hình hiển thị, đèn báo, âm thanh hoặc rung.

Sau khi hoàn thành đề tài sẽ xây dựng được mô hình cảnh báo tai nạn cho ô tô và có thể áp dụng để thử nghiệm trên thực tế.

Phương pháp của đề tài

- Lập trình bằng Python kết hợp OpenCV trên Raspberry Pi + 01 Camera

Sử dụng thuật toán nhận dạng và xử lý ảnh, hệ thống có khả năng phát hiện xe ô tô tham gia giao thông và xác định làn đường Từ đó, nó sẽ cảnh báo người điều khiển phương tiện về thông tin liên quan đến làn đường và vị trí của xe phía trước, giúp nâng cao an toàn khi tham gia giao thông.

Phạm vi của đề tài

Đề tài thử nghiệm được thực hiện trên cao tốc chỉ phát hiện ôtô, chưa áp dụng cho đường quốc lộ, tỉnh lộ và các phương tiện giao thông khác như xe máy, người đi bộ Hạn chế về cơ sở dữ liệu và số lượng dữ liệu huấn luyện đã ảnh hưởng đến độ chính xác của hệ thống Việc sử dụng camera đơn để ước lượng khoảng cách đến đối tượng chỉ mang tính chất ước lượng, trong khi chất lượng camera chưa đạt yêu cầu dẫn đến sai sót trong nhận dạng.

Bố cục của đề tài

Đề tài có bố cục cụ thể như sau:

Chương 2: Lý thuyết để xây dựng mô hình cảnh báo tai nạn cho ôtô

Chương 3: Thực hiện và kết quả đạt được

Chương 4: Kết luận và hướng phát triển

LÝ THUYẾT XÂY DỰNG MÔ HÌNH HỆ THỐNG CẢNH BÁO TAI NẠN CHO ÔTÔ

Lý thuyết nhận dạng đối tượng

2.1.1 Phương pháp dựa trên màu sắc

Phương pháp xác định biển báo giao thông dựa vào việc nhận diện màu sắc đặc trưng, với năm màu chính là xanh, đỏ, vàng, trắng và đen Kỹ thuật này sử dụng các phương pháp phân ngưỡng đơn giản hoặc phân ngưỡng ảnh cao cấp để tìm kiếm vùng ảnh chứa màu sắc của biển báo.

Phương pháp này gặp khuyết điểm lớn do màu sắc thường không đáng tin cậy, phụ thuộc vào thời điểm trong ngày, điều kiện thời tiết và bóng râm Không gian màu RGB (Đỏ – Xanh lá – Xanh dương) rất nhạy cảm với ánh sáng, vì vậy nhiều nhà nghiên cứu đã chuyển sang sử dụng các không gian màu khác như HSV (Sắc thái – Độ bão hòa – Giá trị) và Lab (Độ sáng – kênh a chứa giá trị từ Xanh lá tới Đỏ – kênh b chứa giá trị từ Xanh dương tới Vàng) để phân ngưỡng màu sắc.

In the study "Color-Based Road Detection in Urban Traffic Scenes" by Y He, H Wang, and B Zhang, a color vision system is proposed for lane detection in traffic scenarios Additionally, Hsu-Yung Cheng's research titled "Lane Detection with Moving Vehicle in Traffic Scenes" employs color features to identify lane markings while utilizing size, shape, and motion to eliminate erroneous road areas.

2.1.2 Phương pháp dựa trên hình dạng

Nhiều nghiên cứu đã chỉ ra rằng việc phát hiện biển báo giao thông dựa trên hình dạng mang lại kết quả khả quan Phương pháp phổ biến nhất trong lĩnh vực này là phép biến đổi Hough, một kỹ thuật hiệu quả để xác định các hình dạng ngẫu nhiên.

Kỹ thuật sử dụng cạnh của ảnh để xác định tâm của đối tượng đã được phát triển trong lịch sử thị giác máy tính Mỗi điểm ảnh trên biên có khả năng trở thành tâm của đối tượng, và phương pháp này đã được mở rộng với nhiều biến thể khác nhau.

Nghiên cứu của Loy và Barnes được công nhận là một phương pháp hiệu quả trong việc nhận diện biển báo giao thông Họ đã đề xuất một bộ phát hiện đa giác đều tổng quát, chuyên dụng cho việc phát hiện biển báo giao thông, dựa trên phép biến đổi đối xứng xuyên tâm nhanh, tương tự như biến đổi Hough Tuy nhiên, nhược điểm lớn nhất của phương pháp này là cần biết trước bán kính của đa giác, điều này không dễ thực hiện Mặc dù có thể khắc phục bằng cách thử nghiệm với nhiều bán kính khác nhau, nhưng điều này sẽ tiêu tốn nhiều thời gian xử lý.

Nghiên cứu của Paulo và Correia [8] tập trung vào việc xác định hình dạng đặc trưng thông qua bộ phát hiện góc, giả định vị trí của đa giác đều dựa vào mối liên hệ giữa các góc Họ đã xác định biển báo tam giác và tứ giác bằng cách sử dụng bộ phát hiện góc Haaris để nhận diện vùng đặc trưng, sau đó tìm kiếm các góc còn lại trong sáu khu vực kiểm soát đã được định nghĩa trước Hình dạng được xác định dựa trên hình ảnh của vùng kiểm soát nơi các góc được phát hiện.

Gavrila [9] áp dụng biến đổi khoảng cách dựa trên mẫu phù hợp để xác định hình dạng Ý tưởng chính là tìm kiếm hình dạng đặc trưng bằng cách so sánh với một mẫu phù hợp, chẳng hạn như tam giác đều, thông qua ảnh DTs (Distance Transforms) Để xác định mẫu phù hợp tối ưu, các phép biến đổi cơ bản như xoay, tỉ lệ và dời được sử dụng.

2.1.3 Thuật toán Support Vector Machine (SVM)

Thuật toán Support Vector Machine (SVM) là một phương pháp phân lớp dựa trên lý thuyết thống kê do Vapnik và Alexei Chervonenkis phát triển vào năm 1960 SVM được ứng dụng rộng rãi trong các lĩnh vực như nhận dạng chữ viết tay, nhận dạng khuôn mặt và phân loại tài liệu.

Thuật toán SVM (Support Vector Machine) nổi bật trong việc phân loại dữ liệu sinh học, với khả năng phân loại tương đương hoặc tốt hơn so với các phương pháp khác Ý tưởng chính của SVM là xây dựng một mô hình để xác định xem một đối tượng thuộc về nhóm nào trong hai nhóm cần phân loại SVM biểu diễn các điểm dữ liệu trong không gian và tìm ra ranh giới giữa hai nhóm sao cho khoảng cách từ các điểm dữ liệu đến ranh giới là lớn nhất Bằng cách xem xét một bài toán đơn giản với hai lớp dữ liệu mẫu đã được huấn luyện, phương pháp này có thể mở rộng cho nhiều trường hợp phức tạp hơn, ngay cả khi dữ liệu không thể phân tách rõ ràng Với tập hợp các vector đặc trưng của bộ huấn luyện, SVM nhằm xây dựng mặt siêu phẳng để phân loại chính xác các mẫu dữ liệu theo phương trình đã được thiết lập.

Trong đó w là vector trọng số, w0 là độ dịch

Phương trình (2.1) cho phép xác định mặt siêu phẳng, như mô tả trong hình 2.1 Trong trường hợp này, mặt siêu phẳng được thể hiện bằng đường thẳng đậm đen liền nét, phân chia hai phân lớp tuyến tính Mặt siêu phẳng đóng vai trò quan trọng trong việc tách biệt hai phân lớp một cách hiệu quả.

Trong thực tế, có thể tồn tại nhiều mặt siêu phẳng, trong đó hai mặt siêu phẳng được xác định là h1 và h2 Vấn đề đặt ra là lựa chọn mặt siêu phẳng nào sẽ được sử dụng làm ranh giới để phân tách hai lớp dữ liệu.

Trong hình 2.1, thuật toán SVM xác định mặt siêu phẳng để tách phân lớp dựa trên khoảng cách cực đại giữa hai mẫu dữ liệu đã được huấn luyện Mặt siêu phẳng này được chọn làm ranh giới phân tách hai bộ phân lớp, và khoảng cách cực đại này được gọi là lề, hay còn gọi là mặt siêu phẳng lề tối đa.

Hình 2.1: Tách hai phân lớp tuyến tính với một mặt siêu phẳng Độ lớn của lề (margin) được cho như sau:

Từ phương trình (2.2) khi thay đổi w và w 0 hướng và khoảng cách từ gốc tọa độ tới mặt siêu phẳng Bộ phân loại SVM được định nghĩa như sau:

Nếu f x     1 thì x thuộc về phân lớp đang cần quan tâm, và ngược lại nếu

  1 f x   thì x thuộc về lớp khác

Phương pháp máy học SVM sử dụng các mặt siêu phẳng dựa trên các tham số w và w0, với mục tiêu là ước lượng hai giá trị này để tối đa hóa lề Lề lớn hơn sẽ dẫn đến mặt siêu phẳng phân lớp hiệu quả hơn Hình 2.2 chỉ ra rằng khi lề nhỏ, khả năng xảy ra lỗi trong kết quả phân loại sẽ tăng lên.

Hình 2.2: Tách hai phân lớp tuyến tính với hai mặt siêu phẳng

Nếu tập dữ liệu huấn luyện là khả tách tuyến tính thì ta có các ràng buộc sau:

Mặt siêu phẳng hỗ trợ có phương trình w x T i + w 0 = 1, trong đó w và w 0 là các tham số cần tìm để xây dựng mặt siêu phẳng lề tối ưu Để xác định giá trị của w và w 0, cần giải bài toán tối ưu toàn phương, như được minh họa trong hình 2.3.

Hình 2.3: Ví dụ minh họa về độ lớn của lề

Với các ràng buộc sau: i 0

Trong đó các hệ số Lagrange  i ,i1, 2, ,N là các biến số cần phải tối ưu hóa Vector w sẽ được tính từ các nghiệm của bài toán toàn phương như sau:

N i i i w   i   y x (2.9) Để xác định được độ dịch w 0 ta chọn x i sao cho  i 0, sau đó sử dụng điều kiện Karush-Kuhn-Tucker như sau:

Với  i 0là những mẫu nằm gần mặt siêu phẳng nhất và được gọi là các vector hỗ trợ

Lý thuyết phát hiện làn đường

Phát hiện làn đường là một thành phần quan trọng trong hệ thống hỗ trợ lái xe, thường được tích hợp vào các hệ thống điều khiển thông minh Công nghệ này giúp cảnh báo người lái khi có nguy cơ chuyển làn không an toàn và đóng vai trò quan trọng trong việc mô hình hóa hệ thống giao thông.

Có 3 kỹ thuật hay được sử dụng bên trong việc xử lý này là:

- Kĩ thuật phát hiện cạnh đặc trưng

- Kĩ thuật chuyển đổi khoảng cách

Các bước trong phát hiện làn đường bao gồm:

- Xử lý hình ảnh ở cấp độ thấp: Xử lý hình ảnh đầu vào, chuyển đổi thành hình ảnh đã xử lý để phát hiện hệ thống

- Phát hiện biên của làn đường

- Hậu xử lý cho hệ thống dựa trên làn đường sau khi phát hiện

Trong báo cáo này, người thực hiện sử dụng phương pháp kỹ thuật mắt chim để phát hiện làn đường

2.2.2 Kỹ thuật phân ngưỡng ảnh

Khi xử lý ảnh từ không gian màu như RGB, CMYK, HSL/HSV hoặc ảnh xám, việc tiếp nhận một lượng lớn thông tin có thể gây khó khăn cho việc xây dựng thuật toán và làm giảm tốc độ xử lý Để khắc phục vấn đề này, thuật toán phân ngưỡng được sử dụng để chuyển đổi ảnh đầu vào thành không gian ảnh nhị phân với chỉ hai màu đen và trắng, giúp đơn giản hóa quá trình xử lý.

- Phân ngưỡng ảnh đơn giản

- Phân ngưỡng ảnh tối ưu

Báo cáo này trình bày việc áp dụng phương pháp phân ngưỡng ảnh đơn giản để chuyển đổi hình ảnh màu sang ảnh nhị phân, qua đó nâng cao hiệu suất xử lý.

* Phương pháp Phân ngưỡng ảnh đơn giản

Giả sử ta có một ảnh xám đầu vào input_image với kích thước m x n và đầu ra là ảnh nhị phân output_image

Thuật toán được biểu diễn bởi công thức sau:

- Ưu điểm của thuật toán này là đơn giản dễ lập trình

- Nhược điểm là khó chọn ngưỡng thích nghi với nhiều loại ảnh trong các điều kiện ánh sáng khác nhau

2.2.3 Kỹ thuật ảnh mắt chim

Kỹ thuật này đặc trưng bởi khả năng chuyển đổi hình ảnh từ tầm nhìn xa thành hình ảnh nhìn từ trên xuống Có hai phương pháp chính để tạo dựng hình ảnh trong kỹ thuật này.

- Uốn cong tầm nhìn của ảnh (Warp perspective mapping –WPM)

- Đảo tầm nhìn của hình ảnh (Inverse perspective mapping – IPM)

2.2.3.1 Uốn cong tầm nhìn của ảnh (WPM)

Bốn điểm ảnh từ hình ảnh đầu vào được sử dụng để tiền xử lý cho ảnh đầu ra mong muốn Khi xem xét ma trận uốn cong hình ảnh, các điểm ảnh đầu vào PI sẽ được chuyển đổi thành PW thông qua phép nhân với hệ số ma trận uốn cong A.

Hình (a) là hình ảnh đầu vào, trong khi (b) và (c) là hình ảnh mắt chim sử dụng WPM dựa trên các khoảng cách khác nhau Bốn điểm màu vàng được thiết lập qua hiệu chuẩn, với hướng lái xe được chỉ định bởi mũi tên Kỹ thuật này cho phép chọn bốn điểm ảnh khác nhau để điều chỉnh độ cong của hình ảnh sau khi xử lý, đồng thời không phụ thuộc nhiều vào các thông số của camera, giúp phát hiện dễ dàng các làn đường không liên tục hoặc hỗ trợ hệ thống điều hướng Tuy nhiên, nhược điểm của kỹ thuật này là vị trí của làn đường sau khi xử lý không rõ ràng, và để khắc phục, có thể áp dụng kỹ thuật đảo hình ảnh.

2.2.3.2 Đảo tầm nhìn của hình ảnh (IPM)

Kỹ thuật này được áp dụng dựa trên cách nhìn nhận hình ảnh theo các trục trong không gian thực tế, cụ thể là trên các mặt phẳng xz và yn Hình 2.12 minh họa rõ ràng điều này, với mặt phẳng xz ở bên trái và mặt phẳng yn ở bên phải trong không gian W.

Kỹ thuật này yêu cầu kiểm tra nghiêm ngặt các thông số của camera đầu vào, nhằm đảm bảo rằng quá trình chuyển đổi hình ảnh đạt chất lượng cao hơn so với kỹ thuật uốn cong.

Viewpoint: vị trí camera trong hệ tọa độ thế giới C = (l, h, d)

- Viewing direction: trục quang được xác định bởi hai góc:

* γ0: góc được hình thành bởi phép chiếu của trục quang trên mặt phẳng xz (như trong hình 2.13 bên trái)

* θ0: góc được hình thành bởi trục η và trục y [như trong hình 2.13 bên phải]

- Aperture (Khẩu độ): khẩu độ góc máy ảnh là 2αu theo hàng và 2αv theo cột Tọa độ (u0, v0) là tâm điểm của máy ảnh,

- n x m là độ phân giải của máy ảnh

Theo phương pháp toán học, IPM có thể được mô hình hóa như một phép chiếu từ một không gian 3D Euclide W, chứa các phần tử  x y z , ,   3 thành một không

28 gian con phẳng 2D của , được biểu hiễn bởi I, với các thành phần  u, v   2 Ánh xạ từ I sang W được tính như sau:

Còn ánh xạ từ W sáng I thì có thể được tính như sau:

Với (a) là hình ảnh đầu vào gốc, (b) là hình ảnh thu được sau khi thực hiện

WPM và (c) là hình ảnh thu được sau khi thực hiện IPM Nhìn chung, hình ảnh do

WPM tạo ra dường như bị mờ hơn và IPM thì hình ảnh làn đường rõ ràng hơn (hình

Hình 2.14: Hình ảnh từ kỹ thuật mắt chim sử dụng WPM và IPM

THỰC HIỆN VÀ KẾT QUẢ ĐẠT ĐƯỢC

Các công cụ hỗ trợ

3.1.1.1 Sự ra đời của Raspberry

Vào năm 2006, Eben Upton và các đồng nghiệp tại phòng thí nghiệm máy tính đại học Cambridge nhận thấy sự giảm sút về trình độ đầu vào của các tân sinh viên Trong những năm 90, sinh viên ngành khoa học máy tính thường có kinh nghiệm lập trình đáng kể, nhưng đến những năm 2000, ngay cả những sinh viên xuất sắc nhất cũng chỉ nắm vững kiến thức cơ bản về lập trình web.

Trẻ em ngày nay tương tác với máy tính theo cách khác biệt so với thế hệ trước, một phần do yêu cầu học các chứng chỉ như Word và Excel Sự suy giảm của kỷ nguyên dot-com cùng với sự bùng nổ của video game và game PC đã thay thế những công cụ lập trình như Amigas, BBC Micros 63 và Spectrum ZX mà thế hệ trước sử dụng Điều này dẫn đến việc nhiều bậc phụ huynh cấm con cái tiếp cận máy tính, mặc dù trẻ em có thể tham gia vào các hoạt động hữu ích hơn như học lập trình.

Eben Upton và các đồng nghiệp đã quyết định tạo ra những chiếc máy tính mini, giá rẻ và lập trình được để khuyến khích trẻ em học lập trình Họ dự kiến sẽ phát tặng những thiết bị này cho học sinh đam mê khoa học máy tính vào ngày khai giảng của Đại học Cambridge, sau đó sẽ theo dõi sự tiến bộ của các em Ý tưởng này đã dẫn đến sự ra đời của Raspberry Pi vào năm 2006 Năm 2008, Eben Upton gia nhập Broadcom với vai trò thiết kế chip, điều này đã tạo điều kiện thuận lợi cho việc phát triển Raspberry Pi nhờ vào việc sử dụng các linh kiện và chip điện tử hiệu suất cao với chi phí thấp.

Eben Upton cùng các cộng sự đã quyết định chọn hệ điều hành Linux cho Raspberry Pi nhờ vào yêu cầu cấu hình thấp, tính "nguồn mở" và khả năng lập trình cao hơn so với Windows Nhờ những nỗ lực không ngừng, Raspberry Pi Model B, phiên bản hoàn thiện, đã chính thức ra mắt thị trường vào năm 2011.

Nguồn gốc tên gọi Raspberry Pi xuất phát từ truyền thống của phòng thí nghiệm máy tính tại đại học Cambridge, nơi thường đặt tên cho các sản phẩm của mình bằng tên các loại trái cây.

“Raspberry” nghĩa là “quả dâu” còn “Pi” là ám chỉ “python” ngôn ngữ lập trình chính thức của Raspberry Pi

Bảng 3.1: Bảng thông số cấu hình của Raspberry Pi B+

SoC Broadcom BCM2835 (CPU, GPU, DSP, SDRAM, and single

USB port) CPU 700 MHz ARM1176JZF-S core (ARM11 family)

GPU Broadcom VideoCore IV, OpenGL ES 2.0, MPEG-2 and VC-1

(with license), 1080p30 h.264/MPEG-4 AVC high-profile decoder and encoder

Memory 512 MB (shared with GPU) as of 15 October 2012

USB 2.0 ports 4 (via integrated USB hub)

Video outputs Composite RCA (PAL and NTSC), HDMI (rev 1.3 & 1.4), raw

LCD Panels via DSI14 HDMI resolutions from 640×350 to 1920×1200 plus various PAL and NTSC standards

Audio outputs 3.5 mm jack, HDMI

Onboard storage SD / MMC / SDIO card slot

10/100 Ethernet (RJ45) via USB hub

8 × GPIO, UART, I²C bus, SPI bus with two chip selects, +3.3

Power source 5 volt via MicroUSB or GPIO header

Size 85.60 mm × 53.98 mm (3.370 in × 2.125 in)

Debian GNU/Linux, Raspbian OS, Fedora, Arch Linux ARM, RISC OS, FreeBSD, Plan 9

OpenCV viết tắt của từ Open Source Computer Vision Library:

- OpenCV là một thư viện mã nguồn mở phục vụ cho việc nghiên cứu hay phát triển về thị giác máy tính

- OpenCV tối ưu hóa và xử lý ứng dụng trong thời gian thực

- OpenCV giúp cho việc xây dựng các ứng dụng xử lý ảnh, thị giác máy tính… một cách nhanh hơn

- OpenCV có hơn 500 hàm khác nhau, được chia làm nhiều phần phục vụ các công việc như: xử lý ảnh, an ninh, camera quan sát, nhận diện, robot…

Thư viện OpenCV, được phát triển bằng ngôn ngữ C và C++, có khả năng chạy trên các hệ điều hành như Linux, Windows và MacOSX OpenCV được tối ưu hóa để cải thiện hiệu suất tính toán và hỗ trợ các ứng dụng thời gian thực Hệ thống của OpenCV rất đơn giản và dễ sử dụng, giúp người dùng nhanh chóng phát triển các ứng dụng trong lĩnh vực thị giác máy, bao gồm các hệ thống kiểm tra trong nhà máy, y học, bảo mật và robot học Thư viện này cung cấp các hàm xử lý ảnh cơ bản cũng như các chức năng nâng cao như dò tìm, theo dõi và nhận dạng khuôn mặt.

OpenCV, được giới thiệu vào tháng 1/1999, đã trở thành một công cụ quan trọng trong nhiều ứng dụng và nghiên cứu, bao gồm hàng không, y học với chức năng giảm nhiễu, phân tích đối tượng, an ninh, hệ thống dò tìm, theo dõi tự động và bảo mật Ngoài ra, OpenCV còn được áp dụng trong nhận dạng âm thanh và đóng vai trò then chốt trong các robot sử dụng thị giác như Stanford và Asimo.

Cấu trúc của OpenCV được chia làm 5 phần chính, 4 trong số đó được chia ra như trong hình 3.1

Hình 3.1: Cấu trúc của OpenCV

- CV (computer vision) là thành phần chứa những xử lý ảnh cơ sở và thuật toán thị giác máy tính mức cao

- MLL (machine learning library) là thư viện machine learning, cái này bao gồm rất nhiều lớp thống kê và gộp công cụ xử lý

- HighGUI chứa các thủ tục vào ra và các hàm dùng cho việc lưu trữ và tải ảnh video

- CXCore chứa cấu trúc và nội dung dữ liệu cơ sở

Python là một ngôn ngữ lập trình phổ biến, được sử dụng để phát triển nhiều loại ứng dụng phần mềm như chương trình desktop, server và ứng dụng web Nó cũng là ngôn ngữ ưa chuộng trong lĩnh vực khoa học dữ liệu và trí tuệ nhân tạo, bao gồm machine learning Python được thiết kế với cấu trúc rõ ràng, dễ hiểu, phù hợp cho người mới bắt đầu học lập trình Được phát triển bởi Guido van Rossum và ra mắt lần đầu vào năm 1991, Python chịu ảnh hưởng từ các ngôn ngữ như ABC, Haskell, Java, Lisp, Icon và Perl Là một ngôn ngữ thông dịch, đa nền tảng, Python nổi bật với việc không sử dụng dấu chấm phẩy hay ngoặc để kết thúc câu lệnh, mà thay vào đó, nó sử dụng dấu lùi đầu dòng để xác định các lệnh.

Hiện tại Python có hai dòng phiên bản là dòng 2.x và 3.x Đặc điểm nổi bật của Python:

Python là một ngôn ngữ lập trình dễ học nhờ vào cú pháp đơn giản và rõ ràng, với số lượng từ khóa hạn chế Điều này khiến Python trở thành lựa chọn lý tưởng cho những người mới bắt đầu học lập trình.

- Python là ngôn ngữ dễ hiểu: Mã lệnh (source code hay đơn giản là code) viết bằng ngôn ngữ Python dễ đọc và dễ hiểu

- Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình

Python có tính tương thích cao, cho phép các chương trình viết bằng ngôn ngữ này hoạt động trên nhiều hệ điều hành khác nhau, bao gồm Windows, Mac OSX và Linux.

Cascade training GUI là một ứng dụng được thiết kế nhằm đơn giản hóa và cải thiện trải nghiệm huấn luyện dữ liệu bằng phương pháp rút trích đặc trưng Haar-like theo mô hình cascade Chương trình này có giao diện người dùng trực quan và thân thiện, giúp người dùng dễ dàng thực hiện các thao tác cần thiết.

Để tiến hành huấn luyện trong chương trình Cascade Trainer GUI, người dùng cần chuẩn bị hai bộ ảnh dữ liệu, hay còn gọi là dataset, như minh họa trong hình 3.3.

- n (negatvie): tập dữ liệu ảnh không chứa hình ảnh đối tượng huấn luyện

- p (positive): tập dữ liệu ảnh có chứa hình ảnh đối tượng huấn luyện

Sau khi hoàn thành quá trình huấn luyện, chương trình sẽ tạo ra một tệp tin có tên cascade.xml cho mô hình Người dùng có thể kiểm tra kết quả huấn luyện của mô hình trực tiếp thông qua phần mềm.

Lưu đồ thực hiện

Hình 3.4: Lưu đồ thực hiện

Hình ảnh thiết bị được gắn lên xe hơi để kiểm tra thực tế

Sau khi hoàn tất lắp ráp, thiết bị được gắn lên xe và định vị để kiểm tra hoạt động thực tế, trong đó có việc làm chân đế để thuận tiện cho việc cân chỉnh.

Hình 3.5: Thiết bị được gắn thực tế

Các bước thực hiện theo lưu đồ hình 3.4 và kết quả của từng bước trong lưu đồ được thể hiện cụ thể như sau:

Bước 1: Tiền xử lý các frame ảnh đầu vào, resize về kích thước frame về 480x320

Hình 3.6: Hình ảnh đầu vào

Bước 2: Nhận dạng đối tượng (xe ô tô) và cảnh báo

Hình 3.7: Kết quả nhận dạng đối tượng(xe ôtô) và ước lượng khoảng cách

Hình 3.8: Thiết lập vùng cảnh báo

Hình 3.9: Kết quả nhận dạng đối tượng và đưa ra cảnh báo

Bước 3: Chuyển đổi hình ảnh thành hình ảnh mắt chim

- Xử lý hình ảnh và chuyển thành ảnh nhị phân

Hình 3.10: Hình ảnh gốc và hình ảnh nhị phân

- Xác định vùng ROI và tạo hình ảnh mắt chim

Hình 3.11: Hình mắt chim của vùng ROI Bước 4: Xác định làn đường

Hình 3.12: Dùng cửa sổ trượt để xác định làn đường

Bước 5: Vẽ vùng làn đường

Kết quả thực tế trên các loại đường

Hình 3.14: Kết quả thử nghiệm trên loại đường thứ nhất

Hình 3.15: Kết quả thử nghiệm trên cao tốc liên khương

Hình 3.16: Kết quả thử nghiệm trên đường trường

Hình 3.17: Kết quả thử nghiệm trên đường khác nhau

Hình 3.18: Một số hình ảnh phát hiện làn đường và nhận dạng chưa chính xác

Đánh giá kết quả thực hiện

Để đánh giá hiệu quả của việc phát hiện làn đường và nhận dạng xe ô tô, mô hình học viên đã so sánh số lượng xe được nhận dạng bằng mắt thường với số lượng xe được nhận dạng qua phần mềm Ba thông số đánh giá kết quả được tính toán dựa trên các biểu thức đã được đề cập.

- TP: là số lượng trích xuất thực

- FP là số lượng trích xuất bị sai

- FN là số lượng trích xuất bị bỏ qua

- Accuracy: là tỷ lệ nhân dạng đúng so với thực tế

- Completeness: là tỷ lệ được nhận dạng chính xác

- Quality: là độ chính xác tổng thể của mô hình Đường Accuracy Completenes Quality

Bảng 3.2: Bảng đánh giá kết quả nhận dạng đối tượng là xe ô tô Đường Accuracy Completenes Quality

Bảng 3.3: Bảng đánh giá kết quả phát hiện làn đường

Ngày đăng: 10/01/2022, 16:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Paul Viola, Michael Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features”, Accepted Conference on Computer Vision and Pattern Recognition, 2001 Sách, tạp chí
Tiêu đề: Rapid Object Detection using a Boosted Cascade of Simple Features
[2] Mohammad Mahdi Moghimi, Maryam Nayeri, Majid Pourahmadi, Mohammad Kazem Moghimi “ Moving vehicile deteciton using AdaBoost and Haar – like feature in surveillance videos ”, 2011 Sách, tạp chí
Tiêu đề: Moving vehicile deteciton using AdaBoost and Haar – like feature in surveillance videos
[3] Phillip Ian Wilson, Dr. John Fernandez “Facial feature detection using Haar classifiers”, 2006 Sách, tạp chí
Tiêu đề: Facial feature detection using Haar classifiers
[4] Sri Kaushik Pavani, David Delgado, Alejandro F.Frangi “Haar – like features with optimal weighted rectangle for rapid object detection”, 2010 Sách, tạp chí
Tiêu đề: Haar – like features with optimal weighted rectangle for rapid object detection
[5] Yinghua He, Hong Wang, and Bo Zhang, “Color-Based Road Detection in Urban Traffic Scenes”, IEEE, 2004 Sách, tạp chí
Tiêu đề: Color-Based Road Detection in Urban Traffic Scenes
[6] Hsu-Yung Cheng, Bor-Shenn Jeng, Pei-Ting Tseng, and Kuo-Chin Fan, “Lane Detection With Moving Vehicles in the Traffic Scenes”, IEEE, 2006 Sách, tạp chí
Tiêu đề: Lane Detection With Moving Vehicles in the Traffic Scenes
[7] G. Loy, Nick Barnes, “Fast shape-based road sign detection for a driver assistance system”, IEEE/RSJ International Confrence on Intelligent Robots and System, pp.70-75, 2004 Sách, tạp chí
Tiêu đề: Fast shape-based road sign detection for a driver assistance system
[8] Carlos Filipe Paulo, Paulo Lobato Correia, “Traffic Sign Recognition Based on Pictogram Contours”, IEEE, 2008 Sách, tạp chí
Tiêu đề: Traffic Sign Recognition Based on Pictogram Contours
[9] D. Gavrila, “Traffic sign recognition revisited”, DAGM-Symposium, pp. 86 –93, 1999 Sách, tạp chí
Tiêu đề: Traffic sign recognition revisited
[10] Javad Sadri, Ching Y.Suen, Tien D.Bui, “ApplicationofSupport VectorMachinesfor RecognitionofHandwritten Arabic/Persian Digits”, MVIP, 2003 Sách, tạp chí
Tiêu đề: ApplicationofSupport VectorMachinesfor RecognitionofHandwritten Arabic/Persian Digits
[11] Yongzheng Xu, Guizhen Yu, Yunpeng Wang, Xinkai Wu, and Yalong Ma, “A Hybrid Vehicle Detection Method Based on Viola-Jones and HOG + SVM from UAV Images”, Sensors, 2016 Sách, tạp chí
Tiêu đề: A Hybrid Vehicle Detection Method Based on Viola-Jones and HOG + SVM from UAV Images
[12] Nguyễn Thụy Tô Hoài Nghi, “Phát hiện làn đường và các đối tượng tham gia giao thông cho hệ thống trợ lái”, ĐH SPKT Tp.HCM, 2018 Sách, tạp chí
Tiêu đề: Phát hiện làn đường và các đối tượng tham gia giao thông cho hệ thống trợ lái

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Hệ thống cảnh báo chệch làn đường LDW - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 1.1 Hệ thống cảnh báo chệch làn đường LDW (Trang 15)
Hình 1.2: Hệ thống kiểm soát hành trình chủ động ACC - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 1.2 Hệ thống kiểm soát hành trình chủ động ACC (Trang 16)
Hình 1.3: Hệ thống cảnh báo va chạm trước FCW - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 1.3 Hệ thống cảnh báo va chạm trước FCW (Trang 16)
Hình 2.2: Tách hai phân lớp tuyến tính với hai mặt siêu phẳng - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.2 Tách hai phân lớp tuyến tính với hai mặt siêu phẳng (Trang 22)
Hình 2.3: Ví dụ minh họa về độ lớn của lề - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.3 Ví dụ minh họa về độ lớn của lề (Trang 23)
Hình 2.4: Minh họa các mẫu được gọi là Support Vector  2.1.4 Trích xuất đặc trưng bằng Histogram of gradient (HOG) - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.4 Minh họa các mẫu được gọi là Support Vector 2.1.4 Trích xuất đặc trưng bằng Histogram of gradient (HOG) (Trang 24)
Hình 2.6: Các bước trích xuất đặc trừng HOG [11] - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.6 Các bước trích xuất đặc trừng HOG [11] (Trang 26)
Hình 2.7: Dữ liệu được biểu diễn ở không gian khác - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.7 Dữ liệu được biểu diễn ở không gian khác (Trang 28)
Hình 2.11: Hệ thống xác định vị trí đối tượng  2.1.9 So sánh ưu điểm và nhược điểm của các phương pháp nhận dạng - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.11 Hệ thống xác định vị trí đối tượng 2.1.9 So sánh ưu điểm và nhược điểm của các phương pháp nhận dạng (Trang 37)
Bảng 2.2: So sánh các ưu điểm và nhược điểm của một số phương pháp nhận dạng - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Bảng 2.2 So sánh các ưu điểm và nhược điểm của một số phương pháp nhận dạng (Trang 37)
Hình 2.14: Hình ảnh từ kỹ thuật mắt chim sử dụng WPM và IPM. - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 2.14 Hình ảnh từ kỹ thuật mắt chim sử dụng WPM và IPM (Trang 42)
Bảng 3.1: Bảng thông số cấu hình của Raspberry Pi B+ - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Bảng 3.1 Bảng thông số cấu hình của Raspberry Pi B+ (Trang 44)
Hình 3.1: Cấu trúc của OpenCV - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 3.1 Cấu trúc của OpenCV (Trang 46)
Hình 3.2: Giao diện chương trình Cascade Trainger GUI - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 3.2 Giao diện chương trình Cascade Trainger GUI (Trang 47)
Hình 3.3: Hình ảnh tập dữ liệu p và n của mô hình  3.2 Lưu đồ thực hiện - Xây dựng mô hình hệ thống cảnh báo tai nạn cho ô tô
Hình 3.3 Hình ảnh tập dữ liệu p và n của mô hình 3.2 Lưu đồ thực hiện (Trang 48)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w