GIỚI THIỆU
TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Hiện nay, công nghệ xử lý ảnh đóng vai trò quan trọng trong nhiều lĩnh vực như kinh tế, tài chính, giải trí, du lịch và giao thông vận tải.
Nó được coi là xu hướng công nghệ thế giới và nhiều người cho rằng đó là cuộc cách mạng công nghiệp 4.0
Nghiên cứu về khả năng tự hành cho hệ thống trợ lý lái xe tiên tiến (ADAS) đang thu hút sự chú ý lớn, với mục tiêu cung cấp chức năng thông minh và an toàn hơn cho người lái Việc sử dụng công nghệ thông tin và điện tử là rất quan trọng, đặc biệt trong điều kiện đường xá đặc thù, nơi khả năng nhận biết và phát hiện biển báo, làn đường và đèn giao thông đóng vai trò then chốt đối với hiệu suất của hệ thống ADAS.
Chúng tôi nhận thấy tầm quan trọng và ứng dụng của xe tự hành trong thực tiễn Do đó, trong đồ án này, chúng tôi sẽ nghiên cứu ngôn ngữ lập trình Python, thư viện OpenCV, và các đặc trưng nhận diện biên ảnh nhằm phát triển ứng dụng thiết kế xe tự hành.
TÌNH HÌNH NGHIÊN CỨU
Xe tự lái lần đầu tiên xuất hiện vào năm 1939, được tài trợ bởi General Motors tại hội chợ xe ô tô thế giới, chủ yếu phục vụ cho nghiên cứu khoa học Tuy nhiên, từ năm 2011, nghiên cứu về xe tự hành đã chuyển hướng nhằm nâng cao chất lượng cuộc sống con người.
Một số hãng xe lớn như General Motors, Audi, Volvo và BMW đang tích cực phát triển và ra mắt các mẫu xe mới Các quốc gia cũng đang xem xét khả năng cho phép các dòng xe này tham gia thị trường.
3 việc thực nghiệm xe tự lái trên đường phố của mình Vào tháng 10/2017, lần đầu tiên Singapore đã cho chạy thử loại xe này
Tại Việt Nam, nhóm nghiên cứu thuộc Tập đoàn Phenikaa đã phát triển xe tự hành cấp độ 4, cho phép xe gần như tự lái hoàn toàn mà không cần sự can thiệp của tài xế, tuy nhiên vẫn cần người lái chú ý Xe chạy bằng điện, có khả năng di chuyển 100 km mỗi ngày với tốc độ trung bình 20 km/h, và thời gian sạc đầy pin là 7 tiếng.
Nhiều người vẫn băn khoăn về mức độ an toàn của các loại xe này, nhưng các nhà nghiên cứu chế tạo khẳng định rằng chúng hoạt động rất hiệu quả.
Hình 1.1: Mẫu xe tự hành thông minh đầu tiên ở Việt Nam
MỤC ĐÍCH NGHIÊN CỨU
Mục tiêu của đề tài là ứng dụng công nghệ thông tin để nghiên cứu và phát triển xe tự hành, có khả năng nhận diện và tự di chuyển theo làn đường Điều này sẽ tạo ra nền tảng cho sự phát triển của công nghệ giao thông thông minh.
4 mặt của các phương tiện tự lái trên đường cao tốc hay những đoạn đường tắc nhằm giảm bớt gánh nặng đặt lên người điều khiển xe.
NHIỆM VỤ NGHIÊN CỨU
Nghiên cứu tìm hiểu về:
- Thư viện đồ họa OpenCV
- Lập trình xuất tín hiệu điều khiển cho các chân IO của Raspberry
Dựa trên các nghiên cứu, việc lập trình để xử lý hình ảnh từ Camera hoặc Video có thể áp dụng đặc trưng nhận diện biên ảnh nhằm xác định làn đường, từ đó xuất tín hiệu điều khiển cho xe tự lái.
PHƯƠNG PHÁP NGHIÊN CỨU
Để nghiên cứu một đề tài hiệu quả, việc thu thập tài liệu liên quan là rất quan trọng Bạn cần tìm kiếm các tài liệu, báo cáo khoa học, tạp chí chuyên ngành, công trình nghiên cứu và các dự án có liên quan đến đề tài của mình.
- Nghiên cứu các cơ sơ lý thuyết liên quan đến đề tài Đọc và tìm hiểu các thông tin cần thiết làm cơ sở lý thuyết cho đề tài
- Phương pháp khảo sát thực tiễn
- Phương pháp tính toán, phân tích, so sánh đánh giá kết quả đạt được
CÁC KẾT QUẢ ĐẠT ĐƯỢC CỦA ĐỀ TÀI
- Xây dựng được mô hình, mô phỏng xe tự hành
- Cải tiến, đánh giá, phát triển xe tự hành
- Ứng dụng xử lý ảnh thay thế cho các cảm biến (dò line,…) dễ xảy ra nhiễu, hoạt động không thực sự chính xác
Ứng dụng này được triển khai trong giao thông tại Việt Nam nhằm nâng cao an toàn khi lưu thông trên đường, đồng thời giảm thiểu nguy cơ xảy ra tai nạn giao thông không mong muốn.
KẾT CẤU CỦA ĐỀ TÀI
Để thực hiện nghiên cứu, thiết kế, chế tạo xe tự hành, đề tài được chia làm 6 chương
- Chương 1 Giới thiệu: Tổng quan về xe tự hành
- Chương 2 Tổng quan về mô hình xe tự hành
- Chương 3 Phương pháp giải quyết
- Chương 4 Quy trình thiết kế sản phẩm xe tự hành
- Chương 5 Thi công, mô phỏng
- Chương 6 Đánh giá kết quả, kết luận về mô hình xe tự hành
TỔNG QUAN GIẢI PHÁP
SƠ LƯỢC VỀ KIT RASPBERRY VÀ CAMERA PI
Raspberry Pi là một máy tính nhỏ gọn, chỉ bằng kích thước thẻ tín dụng, được phát triển bởi Raspberry Pi Foundation tại Anh Mục đích chính của Raspberry Pi là thúc đẩy giảng dạy khoa học máy tính cơ bản trong các trường học và hỗ trợ các nước đang phát triển.
Raspberry Pi gốc và Raspberry Pi gốc 2 được sản xuất với nhiều cấu hình khác nhau thông qua các thỏa thuận cấp phép với Newark element14, RS Components và Egoman, các công ty này cung cấp Raspberry Pi trực tuyến Đặc biệt, Egoman sản xuất một phiên bản độc quyền tại Đài Loan, dễ dàng nhận diện nhờ màu đỏ và không có dấu FCC/CE Tuy nhiên, phần cứng của tất cả các nhà sản xuất đều giống nhau.
Raspberry Pi được xây dựng trên hệ thống vi mạch BCM2835 của Broadcom, với vi xử lý ARM1176JZF-S 700 MHz và GPU VideoCore IV Ban đầu, thiết bị được trang bị 256 MB RAM, sau đó được nâng cấp lên 512 MB ở các mẫu B và B+ Raspberry Pi cũng có khe cắm Secure Digital (SD) cho các mẫu A và B, hoặc MicroSD cho các mẫu A+ và B+, dùng làm thiết bị khởi động và bộ nhớ lưu trữ.
Năm 2014, Raspberry Pi Foundation giới thiệu Mô-đun Compute, tích hợp vi xử lý BCM2835 với 512 MB RAM và chip flash eMMC, nhằm phục vụ cho các hệ thống nhúng.
Tổ chức này cung cấp các phiên bản Debian và Arch Linux ARM cho người dùng tải về, đồng thời hỗ trợ ngôn ngữ lập trình Python như ngôn ngữ chính và BBC BASIC.
(thông qua RISC OS image hoặc Brandy Basic clone cho Linux), C, C++, Java, Perl và Ruby
As of June 8, 2015, approximately 5 to 6 million Raspberry Pi units had been sold, making it the fastest-selling personal computer in the UK It ranks as the second most delivered device after the Amstrad PCW, which sold 8 million units.
Vào tháng 2 năm 2015, Raspberry Pi 2, thế hệ tiếp theo của Raspberry Pi, đã được ra mắt với cấu hình model B Bo mạch này trang bị SoC Broadcom BCM2836, bao gồm CPU ARM Cortex-A7 4 lõi và GPU VideoCore IV dual-core, cùng với 1 GB RAM Raspberry Pi 2 giữ nguyên giá 35 USD, trong khi model A+ vẫn được bán với giá 20 USD.
Hầu hết các mạch Pi được sản xuất tại một nhà máy Sony tại Pencoed, Wales, một số được sản xuất tại Trung Quốc hoặc Nhật Bản
2.1.2 Ứng dụng của Raspberry Pi
❖ Raspnerry Pi có thể được dùng như máy tính để bàn
Để sử dụng Raspberry Pi, bạn cần chuẩn bị thẻ microSD, nguồn điện, cáp HDMI và màn hình hiển thị Ngoài ra, để hoạt động như một máy tính, bạn cũng cần bàn phím và chuột Phiên bản Raspberry Pi 3 đã được trang bị sẵn tính năng Wifi, Bluetooth và cổng Ethernet, đáp ứng tốt nhu cầu của người dùng.
Bạn có thể sử dụng gói robot chuyên dụng cho máy Pi, đi kèm với pin, để giao tiếp và điều khiển robot Ngoài ra, bạn cũng có thể tự thiết kế và xây dựng robot từ các thành phần riêng lẻ.
8 phần đã có Với robot thì ta chỉ có thể chọn Pi Zero W bởi nó có tính năng kết nối không dây lí tưởng cho các robot nhẹ
❖ Các ứng dụng cho máy in
Bạn có thể kết nối máy in cũ của mình không dây bằng cách sử dụng Raspberry Pi và một số phần mềm máy chủ in cơ bản Thêm vào đó, việc kết hợp này còn cho phép bạn thêm tính năng AirPrint, giúp máy in hỗ trợ nhiều thiết bị khác như máy tính bảng và smartphone.
❖ Các tiện ích với camera
Với một module máy ảnh chuyên dụng kết hợp cùng Raspberry Pi, bạn có thể dễ dàng tạo ra các video stop motion, một xu hướng đang thịnh hành trên mạng xã hội hiện nay Bên cạnh đó, nếu kết hợp với một script khác, bạn cũng có thể sản xuất các video time lapse Người dùng có thể quay bất kỳ đối tượng nào như hoa trong vườn, trái cây trong bát, người đi ngang đường, đám mây trên bầu trời hoặc sự thay đổi của thời tiết, tất cả đều tùy thuộc vào sự sáng tạo của bạn.
Raspberry Pi là một thiết bị lý tưởng cho game thủ và những người đam mê trò chơi, nhờ vào kích thước gọn nhẹ và hiệu suất mạnh mẽ Nó không chỉ đơn thuần là một máy chơi game cho các trò đơn giản mà còn có khả năng hoạt động như một máy chủ game khi sử dụng hệ điều hành Raspbian.
❖ Hệ thống an ninh, giám sát mạng
Sử dụng module camera từ Raspberry Pi Camera hoặc webcam USB, bạn có thể tạo ra một hệ thống an ninh phát hiện chuyển động để theo dõi những người xâm nhập vào nhà Hệ thống này cần thẻ nhớ dung lượng cao để lưu trữ hình ảnh và video ghi lại.
9 thể lưu trữ mọi cảnh quay từ thiết bị Thậm chí ta cũng có thể thiết lập để hệ thống an ninh gửi cảnh báo qua email
Raspberry Pi đóng vai trò quan trọng trong việc phát triển các giải pháp giám sát mạng, cho phép người dùng theo dõi thời gian thực và xem hình ảnh của các thiết bị kết nối trong mạng.
Hoàn toàn có thể biến những chiếc TV cũ thành smart TV thông minh Với khả năng phát các phương tiện từ thiết bị lưu trữ USB hoặc flash, người dùng có thể dễ dàng truy cập vào các dịch vụ phát trực tuyến như Netflix, YouTube và nhiều trang web tương tự Ngoài ra, smart TV còn cung cấp thông tin về tin tức và thời tiết, cùng với tính năng hỗ trợ PVR, tất cả đều có thể được quản lý thông qua Raspberry Pi nhờ vào thẻ USB TV.
TÌM HIỂU VỀ HỆ ĐIỀU HÀNH RASPBIAN
Raspbian là hệ điều hành dựa trên Debian dành cho Raspberry Pi, với các phiên bản như Raspbian Stretch và Raspbian Jessie Kể từ năm 2015, Raspbian đã được Raspberry Pi Foundation chính thức công nhận là hệ điều hành chính cho dòng máy tính bảng đơn Raspberry Pi.
Raspbian, được phát triển bởi Mike Thompson và Peter Green, là một hệ điều hành độc lập ra mắt lần đầu vào tháng 6 năm 2012 Hệ điều hành này vẫn đang được phát triển tích cực và được tối ưu hóa cho các CPU ARM hiệu suất thấp của dòng Raspberry Pi.
Raspbian đã chuyển sang sử dụng môi trường máy tính để bàn PIXEL, được xác nhận là X – Window Environment, Lightweight kể từ bản cập nhật mới nhất Môi trường này bao gồm LXDE được tùy chỉnh và trình quản lý cửa sổ Openbox với chủ đề mới cùng một số thay đổi khác Phân phối này đi kèm với phiên bản của chương trình máy tính đại số Mathematica, trò chơi Minecraft Pi và một phiên bản nhẹ của trình duyệt Chromium.
2.2.2 Hướng dẫn cài đặt hệ điều hành Raspbian cho Raspberri Pi 4
- Phần mềm Format thẻ nhớ (SDFormatter)
- Phần mềm ghi file chưa hệ điều hành vào thẻ (Win32DiskImager)
Bước 1: Format thẻ nhớ, cắm thẻ vào máy tính sau đó sử dụng SDFormatter để tiến hành format thẻ nhớ
Bước 2: Cài hệ điều hành vào thẻ nhớ: giải nén file zip chứa hệ điều hành ta được một file img
Sử dụng Win32DiskImager để cài hệ điều hành Raspbian vào Raspberry hoặc có thể copy và dán vào thẻ nhớ
TÌM HIỂU VỀ NGÔN NGỮ PYTHON
- Ngôn ngữ Python được Guido van Rossum tạo ra và được phát hành đầu tiên vào tháng 2 năm 1991
- Python khá giống Perl, Ruby, Scheme, Smalltalk và Tcl
- Python được phát triển trong một dự án mã mở do một tổ chức phi lợi nhuận Python Software Foundation quản lý
Python được phát triển ban đầu cho nền tảng Unix, nhưng đã mở rộng sang nhiều hệ điều hành khác như MS-DOS, MAC OS, OS/2, Windows, Linux và các hệ điều hành thuộc họ Unix.
Python là một ngôn ngữ lập trình bậc cao với cú pháp rõ ràng và dễ hiểu, rất phù hợp cho người mới bắt đầu Ngôn ngữ này cho phép lập trình viên viết mã một cách hiệu quả với số lần gõ phím tối thiểu.
- Python cũng là một trong những ngôn ngữ phổ biến nhất trên thế giới
Python không được đặt theo tên của rắn thần Python trong thần thoại Hy Lạp, mà được lấy cảm hứng từ một chương trình hài nổi tiếng cuối những năm 1970 mà Rossum yêu thích.
20 tên “Python” được lấy từ tên một phần trong seri đó “Monty Python’s Flying Cirus”
Phiên bản Ngày phát hành
Python 1.0 (Bản phát hành chuẩn đầu tiên) 01/1994
Python 1.6 (Phiên bản 1.x cuối cùng) 05/09/2000
Python 2.0 (Giới thiệu list comprehension) 16/10/2000
Python 2.7 (Phiên bản 2.x cuối cùng) 03/07/2010
Python 3.0 (Loại bỏ cấu trúc và mô – đun trùng lặp) 03/12/2008
Python 3.3 (Các tính năng cú pháp và các thư viện mới) 29/09/2012
Python 3.5 (Hỗ trợ cho các byte và bytearray) 13/09/2015
Python 3.6 (Cải tiến đáng kể trong thư viện tiêu chuẩn) 23/12/2016
Python 3.7 (Cải tiến mô hình dữ liệu Python) 27/06/2018
Python 3.8 (Được bổ sung nhiều tính năng mới) 14/10/2019
Python 3.9 (Loại bỏ hết các tính năng dùng tương thích ngược ở 2.x)
Bảng 2 1: Các phiên bản của Python 2.3.3 Một số điểm khác biện giữa phiên bản 3x và 2x
Sự khác biệt ỏ hàm PRINT
- Ở 2x print ‘a’, ‘b’ dễ gây hiểu lầm với kiểu dữ liệu Tuple khi ta truyền nhiều đối số vào parantheses
- Ở phiên bản 3x hàm print dùng ()
Trong Python 2x, toán tử chia (/) có ý nghĩa đặc biệt khi làm việc với các đối số kiểu số; nó sẽ trả về giá trị sàn của kết quả phép chia nếu các đối số là kiểu int hoặc long.
Trong phiên bản 3x, vấn đề trả về kết quả phân chia không chính xác khi các đối số là kiểu float hoặc phức đã được giải quyết, mang lại một kết quả xấp xỉ hợp lý hơn.
- Python 2x có các kiểu str() thuộc kiểu ASCII, riêng biệt unicode(), nhưng không có kiểu byte
- Python 3x có các chuỗi Unicode(uft-8) và 2 lớp byte và bytearrays
Loại bỏ hàm XRANGE() ở phiên bản 3x
- Việc sử dụng xrange() rất phổ biến trong Python 2x đẻ tạo một đối tượng có thể lặp lại
Trong Python 3.x, hàm XRANGE() đã bị loại bỏ và được thay thế bằng hàm RANGE() Hàm RANGE() trong phiên bản 3.x được cải tiến với cơ chế 'lazy evaluation', giúp giải phóng bộ nhớ mà hàm XRANGE() (trong phiên bản 2.x) đã chiếm dụng.
- Trong Python 3x yêu cầu sử dụng từ khóa as để xử lý ngoại lệ
Python 3 đã áp dụng phương pháp làm tròn số thập phân mới, trong đó khi kết quả là 0.5 ở chữ số có nghĩa cuối cùng, số sẽ được làm tròn đến số chẵn gần nhất.
Mặc dù có một số bất tiện liên quan đến tính di động của mã, phương pháp làm tròn mới được xem là ưu việt hơn so với cách làm tròn cũ, vì nó giúp tránh thiên vị đối với các số lượng lớn.
- Python 3.0 đã đơn giản hóa các quy tắc của toán tử so sánh:
Các toán tử so sánh thứ tự như (=) sẽ gây ra lỗi TypeError khi các toán hạng không có thứ tự tự nhiên có ý nghĩa Vì vậy, các biểu thức như 1 < "abc", 0 > None, hoặc len([])