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

Nghiên cứu thiết kế chế tạo xe tự hành

82 34 2

Đ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
Tác giả Nguyễn Hoàng Anh, Nguyễn Hoàng Thiện, Đỗ Đăng Khoa
Người hướng dẫn Th.S Phạm Quốc Phương
Trường học Trường Đại học Công Nghệ TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Điện - Điện Tử
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 82
Dung lượng 2,75 MB

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

Cấu trúc

  • Chương 1 GIỚI THIỆU (10)
    • 1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (10)
    • 1.2. TÌNH HÌNH NGHIÊN CỨU (10)
    • 1.3. MỤC ĐÍCH NGHIÊN CỨU (11)
    • 1.4. NHIỆM VỤ NGHIÊN CỨU (12)
    • 1.5. PHƯƠNG PHÁP NGHIÊN CỨU (12)
    • 1.6. CÁC KẾT QUẢ ĐẠT ĐƯỢC CỦA ĐỀ TÀI (12)
    • 1.7. KẾT CẤU CỦA ĐỀ TÀI (13)
  • Chương 2 TỔNG QUAN GIẢI PHÁP (14)
    • 2.1. SƠ LƯỢC VỀ KIT RASPBERRY VÀ CAMERA PI (14)
      • 2.1.1 Raspberry là gì? (14)
      • 2.1.2. Ứng dụng của Raspberry Pi (15)
      • 2.1.3 Cấu trúc phần cứng Raspberry Pi 4 (17)
      • 2.1.4. Giới thiệu về camera Pi (20)
      • 2.1.5. Các hệ điều hành (21)
    • 2.2. TÌM HIỂU VỀ HỆ ĐIỀU HÀNH RASPBIAN (24)
      • 2.2.1. Lịch sử phát triển (25)
      • 2.2.2. Hướng dẫn cài đặt hệ điều hành Raspbian cho Raspberri Pi 4 (25)
    • 2.3. TÌM HIỂU VỀ NGÔN NGỮ PYTHON (27)
      • 2.3.1. Lịch sự phát triển (27)
      • 2.3.2. Phiên bản (28)
      • 2.3.3. Một số điểm khác biện giữa phiên bản 3x và 2x (28)
      • 2.3.4. Đặc điểm của Python (30)
  • Chương 3 PHƯƠNG PHÁP GIẢI QUYẾT (31)
    • 3.1. SƠ LƯỢC VỀ XỬ LÝ ẢNH (31)
      • 3.1.1 Tìm hiểu về xử lý ảnh (31)
      • 3.1.2. Các bước cơ bản xử lý ảnh (38)
      • 3.1.3. Ứng dụng nhận diện làn đường cho xe tự hành (41)
    • 3.2. TÌM HIỂU VỀ THƯ VIỆN OPENCV (47)
  • Chương 4. QUY TRÌNH THIẾT KẾ (51)
    • 4.1. CÁC YÊU CẦU KỸ THUẬT KHI THIẾT KẾ MÔ HÌNH (51)
      • 4.1.1. Yêu cầu kỹ thuật (51)
      • 4.1.2. Yêu cầu kinh tế (51)
    • 4.2. KẾT NỐI CÁC THIẾT BỊ NGOẠI VI CHO HỆ THỐNG MÁY TÍNH NHÚNG RASPBERRY (51)
      • 4.2.1. Sơ đồ kết nối và khởi động Raspberry (51)
      • 4.2.2. Cài đặt gói thư viện OpenCV và các gói thư viện bổ trợ (53)
  • Chương 5 THI CÔNG, MÔ PHỎNG (62)
    • 5.1 THIẾT KẾ MÔ HÌNH VÀ LẬP TRÌNH HỆ THỐNG (62)
      • 5.1.1. Thiết kế mô hình (62)
      • 5.1.2. Lập trình cho hệ thống (63)
    • 5.2. MỘT SỐ HÌNH ẢNH TRONG QUÁ TRÌNH THI CÔNG (77)
  • Chương 6 ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN (78)
    • 6.1. ĐÁNH GIÁ KẾT QUẢ (78)
    • 6.2. KẾT LUẬN (78)
      • 6.2.1. Kết quả đạt được (79)
      • 6.2.2 Điểm mới của đề tài (79)
      • 6.2.3. Những mặt hạn chế (79)
    • 6.3. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI NGHIÊN CỨU (80)
  • TÀI LIỆU THAM KHẢO (81)

Nội dung

GIỚI THIỆU

TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Công nghệ xử lý ảnh hiện nay đó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 Mục tiêu chính của lĩnh vực này là cung cấp chức năng thông minh và an toàn hơn cho người lái xe thông qua công nghệ thông tin và điện tử Trong các điều kiện đường xá cụ thể, khả năng nhận biết và phát hiện biển báo, làn đường và đèn giao thông rất quan trọng, đóng vai trò thiết yếu trong sự hoạt động của hệ thống ADAS.

Xe tự hành đang ngày càng trở nên quan trọng và có tính ứng dụng cao 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 để phát triển một ứng dụng thiết kế cho 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 với mục tiêu cải thiện 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 việc cho phép những đổi mới này được áp dụng rộng rãi.

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ế, mặc dù vẫn cần theo dõi Xe hoạt động bằng điện, có khả năng di chuyển 100 km mỗi ngày với vận tốc trung bình 20 km/h, và thời gian sạc đầy pin là 7 tiếng.

Mặc dù nhiều người vẫn băn khoăn về độ 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 nghiên cứu này là ứng dụng công nghệ thông tin để phát triển xe tự hành, có khả năng nhận diện và di chuyển tự động theo làn đường Nghiên cứu này sẽ tạo nền tảng cho sự phát triển của công nghệ giao thông thông minh trong tương lai.

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 để nhận diện 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 Điều này cho phép xuất tín hiệu điều khiển cho xe tự lái một cách chính xác.

PHƯƠNG PHÁP NGHIÊN CỨU

Để tiến hành nghiên cứu hiệu quả, cần thu thập các tài liệu liên quan đến đề tài, bao gồm các bài 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 liên quan Việc tìm kiếm và tổng hợp những tài liệu này sẽ giúp cung cấp nền tảng vững chắc cho quá trình nghiên cứu.

- 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 và giảm thiểu rủi ro 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áy tính mini kích thước bằng thẻ tín dụng, được phát triển bởi Raspberry Pi Foundation tại Anh Mục tiêu ban đầu của nó 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à 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 phiên bản phân phối duy nhất tại Đài Loan, có thể nhận diện bởi màu đỏ và không có dấu FCC/CE, mặc dù phần cứng vẫn giống nhau giữa các nhà sản xuất.

Raspberry Pi được phát triển dựa trên hệ thống vi mạch BCM2835 của Broadcom, bao gồm vi xử lý ARM1176JZF-S 700 MHz và GPU VideoCore IV Ban đầu, nó được trang bị 256 MB RAM, sau đó được nâng cấp lên 512 MB ở các model B và B+ Board này hỗ trợ socket Secure Digital (SD) cho model A và B, hoặc MicroSD cho model A+ và B+, dùng để khởi động và lưu trữ dữ liệu.

Vào năm 2014, Raspberry Pi Foundation đã giới thiệu Mô-đun Compute, bao gồm một vi xử lý BCM2835 với 512 MB RAM và một chip flash eMMC, được thiết kế để sử dụng trong các hệ thống nhúng.

Tổ chức này cung cấp Debian và Arch Linux ARM cho người dùng tải về, đồng thời cung cấp các công cụ hỗ trợ cho Python, ngôn ngữ lập trình chính, cùng với việc hỗ trợ 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 have 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 dòng máy tính Raspberry Pi, đã được ra mắt với cấu hình model B Board 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 Mặc dù có những cải tiến về hiệu suất, Raspberry Pi 2 vẫn giữ giá $35 như model B trước đó, trong khi model A+ có giá $20 vẫn được bán.

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 Các phiên bản Raspberry Pi 3 đã tích hợp sẵn tính năng Wifi, Bluetooth và cổng Ethernet, đáp ứng tốt nhất nhu cầu của người dùng.

Bạn có thể sử dụng một gói robot chuyên dụng cho máy Pi, được trang bị 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 Hơn nữa, việc kết hợp này còn cho phép bạn thêm tính năng AirPrint, giúp 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

Chỉ với một module máy ảnh và Raspberry Pi, bạn có thể dễ dàng tạo video stop motion, một xu hướng đang thịnh hành trên mạng xã hội Bằng cách kết hợp với một script khác, bạn còn 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 phụ thuộc vào sự sáng tạo của bạn.

Raspberry Pi mang lại nhiều giá trị cho game thủ và những người đam mê trò chơi, vì nó có thể trở thành một chiếc máy chơi game gọn nhẹ và mạnh mẽ Không chỉ dừng lại ở việc chơi các trò đơn giản, Raspberry Pi với hệ điều hành Raspbian còn có khả năng hoạt động như một máy chủ game, đáp ứng nhu cầu sử dụng đa dạng của người dùng.

❖ Hệ thống an ninh, giám sát mạng

Với việc sử dụng module camera như Raspberry Pi Camera hoặc webcam USB, bạn có thể tạo ra một hệ thống an ninh chuyển động để phát hiện những kẻ đột nhập vào nhà Hệ thống này sẽ cần thẻ nhớ dung lượng cao để lưu trữ dữ liệu hình ảnh.

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 bạn 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 bằng cách sử dụng thiết bị như Raspberry Pi Với giải pháp này, TV có thể phát các phương tiện từ USB hoặc flash, phát trực tuyến từ Netflix, YouTube và các trang web tương tự, đồng thời cung cấp điều khiển từ xa 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 khả năng hỗ trợ PVR thông qua 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, một hệ điều hành được phát triển độc lập bởi Mike Thompson và Peter Green, đã hoàn thành bản dựng đầu tiên vào tháng 6 năm 2012 và vẫn đang được cập nhật liên tục Hệ điều hành này được tối ưu hóa cho các CPU ARM hiệu suất thấp, phù hợp với dòng Raspberry Pi.

Raspbian đã chuyển sang sử dụng môi trường máy tính để bàn PIXEL, dựa trên X – Window Environment, 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 giao diện mới cùng một số thay đổi khác Phân phối này đi kèm với chương trình máy tính đại số Mathematica, phiên bản 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 hệ điều hành Unix, nhưng đã mở rộng sang nhiều nền tảng khác như MS-DOS, macOS, OS/2, Windows, Linux và các hệ điều hành khác trong họ Unix theo thời gian.

Python là 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 học lập trình Ngôn ngữ này cho phép lập trình viên viết mã 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 rắn thần trong thần thoại Hy Lạp, mà là do Rossum, người sáng lập, là fan của một chương trình hài nổi tiếng vào cuối những năm 1970.

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 mơ hồ đối với các đối số kiểu số, vì nó 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 đề về việc trả về kết quả phân chia hợp lý cho các đối số kiểu float hoặc phức đã được giải quyết, mang lại một trải nghiệm tốt hơn cho người dùng.

- 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 3x, hàm XRANGE() đã bị loại bỏ và thay thế bằng hàm RANGE() Hàm RANGE() trong phiên bản 3x được cải tiến với cơ chế 'lazy evaluation', giúp giải phóng bộ nhớ mà trước đây được sử dụng bởi hàm XRANGE() trong phiên bản 2x.

- 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 đó nếu kết quả là 0.5 ở các chữ số có nghĩa cuối cùng, số thập phân 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 đối với tính di động của mã, phương pháp này được coi là cách làm tròn tốt hơn so với phương pháp 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ẽ phát sinh ngoại lệ TypeError khi các toán hạng không có thứ tự tự nhiên Điều này có nghĩa là các biểu thức như 1 < "hay 0 > Không" sẽ không còn hợp lệ, và ví dụ như "Không < Không" sẽ gây ra TypeError thay vì trả về giá trị Sai.

Python là một ngôn ngữ lập trình mạnh mẽ, hướng đối tượng và bậc cao, nổi bật với tính đơn giản và dễ học Là ngôn ngữ thông dịch, Python cho phép thực thi mã lệnh ngay lập tức mà không cần biên dịch, mang lại sự tiện lợi trong việc phát triển Khi sử dụng Python, người dùng có thể làm việc với giao diện dòng lệnh tương tự như Unix, cho phép chạy từng dòng mã một cách trực tiếp.

Python là ngôn ngữ lập trình được ưa chuộng bởi các nhà lập trình web nhờ vào nhiều ưu điểm nổi bật Với cú pháp đơn giản và dễ hiểu, Python giúp người mới bắt đầu nhanh chóng nắm bắt kiến thức lập trình Hơn nữa, nó có một cộng đồng lớn và nhiều thư viện phong phú, hỗ trợ cho việc phát triển ứng dụng web hiệu quả.

- Đơn giản: Cú pháp đơn giẩn giúp cho người lập trình dễ dàng học và tìm hiểu

- Tốc độ: Python có tốc độ xử lý nhanh hơn so với ngôn ngữ PHP

- Tương tác: Chế độ tương tác cho phép người lập trình thử nghiệm tương tác sửa lỗi của các đoạn mã

Thư viện Python được đánh giá cao với tiêu chuẩn chất lượng vượt trội, cung cấp giao diện cho hầu hết các hệ quản trị cơ sở dữ liệu (CSDL) thương mại lớn nhờ vào khối lượng dữ liệu phong phú.

- Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng lớn hiện nay

Python cung cấp tính năng mở rộng, cho phép lập trình viên tùy chỉnh và thêm các công cụ, từ đó tối đa hóa hiệu quả công việc.

- Có trên tất cả các nên tảng hệ điều hành tư UNIX, MS – DOS, Mac OS, Windows, Linux và các OS khác thuốc họ Unix

Python là một ngôn ngữ lập trình mạnh mẽ, tương thích tốt với Unix, phần cứng và phần mềm của bên thứ ba, cùng với một kho thư viện phong phú lên tới 400 triệu người dùng Với tốc độ xử lý nhanh chóng, Python có khả năng phát triển từ những script nhỏ gọn cho đến các phần mềm lớn như Blender 3D.

PHƯƠNG PHÁP GIẢI QUYẾT

SƠ LƯỢC VỀ XỬ LÝ ẢNH

3.1.1 Tìm hiểu về xử lý ảnh

❖ Giới thiệu về xử lý ảnh

Xử lý ảnh đã trở thành một lĩnh vực quan trọng, được ứng dụng rộng rãi từ các hoạt động hàng ngày đến việc tối ưu hóa sản xuất Nó không chỉ mang lại lợi ích cho cá nhân và gia đình mà còn có vai trò trong các lĩnh vực như Chính trị, Y tế và Giáo dục Xử lý tín hiệu là một môn học thuộc kỹ thuật điện tử và viễn thông, liên quan đến nghiên cứu và xử lý tín hiệu kỹ thuật số cũng như analog Môn học này giải quyết các vấn đề về lưu trữ, bộ lọc và các hoạt động khác liên quan đến tín hiệu, bao gồm truyền dẫn âm thanh, giọng nói, hình ảnh và nhiều loại tín hiệu khác.

Trong lĩnh vực xử lý tín hiệu, xử lý ảnh là một phương pháp quan trọng, trong đó đầu vào và đầu ra đều là hình ảnh Xử lý ảnh được chia thành hai loại: xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số Để tạo ra một bức ảnh số, quá trình bắt đầu bằng việc chụp ảnh từ máy ảnh, sử dụng ánh sáng mặt trời làm nguồn năng lượng Các cảm biến thu nhận ánh sáng phản xạ từ đối tượng, tạo ra tín hiệu điện áp liên tục Để chuyển đổi tín hiệu này thành hình ảnh kỹ thuật số, cần thực hiện quá trình lấy mẫu và lượng tử hóa, dẫn đến kết quả cuối cùng là một hình ảnh kỹ thuật số.

❖ Một số khái niệm cơ bản trong xử lý ảnh: Điểm ảnh (Picture Element)

Điểm ảnh, hay pixel, là đơn vị cơ bản tạo nên một bức ảnh kỹ thuật số, với địa chỉ được xác định bởi tọa độ (x,y) Một bức ảnh kỹ thuật số có thể được tạo ra từ việc chụp ảnh hoặc thông qua các phương pháp đồ họa khác, bao gồm hàng triệu pixel riêng lẻ Số lượng pixel trong bức ảnh càng nhiều thì độ chi tiết càng cao, với 1 triệu pixel tương đương 1 megapixel.

Hình ảnh được cấu thành từ một tập hợp hữu hạn các điểm ảnh với mức xám phù hợp, giúp mô tả ảnh gần giống với thực tế Độ phân giải của ảnh được xác định bởi số lượng điểm ảnh, với ảnh có độ phân giải cao thể hiện rõ nét các đặc điểm, làm cho hình ảnh trở nên sống động và sắc nét hơn Hình ảnh là tín hiệu hai chiều, được mô tả bởi hàm toán học f(x, y), trong đó x và y là tọa độ ngang và dọc, và các giá trị f(x, y) tại mỗi điểm cung cấp thông tin về các điểm ảnh tại vị trí đó.

Mức xám của điểm ảnh thể hiện cường độ sáng và được gán một giá trị cụ thể Các mức ảnh xám phổ biến bao gồm 16, 32, 64, 128 và 256 Trong số đó, mức sử dụng thông dụng nhất là

265, tức là dùng 1byte để biểu diễn mức xám Trong đó:

- Ảnh nhị phân: Là ảnh có 2 mức trắng và đen, chỉ có 2 giá trị 0 và 1 và chỉ sử dụng 1bit dữ liệu trên 1 điểm ảnh

- Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau

Ảnh màu là sự kết hợp của ba màu cơ bản, tạo nên một thế giới màu sắc sinh động Để mô tả mức độ màu sắc, người ta thường sử dụng 3 byte, cho phép tạo ra khoảng 16,7 triệu sắc thái khác nhau.

Quan hệ giữa các điểm ảnh:

Lân cận điểm ảnh, được ví như hàng xóm của điểm ảnh, bao gồm hai loại cơ bản: lân cận 4 và lân cận 8.

Hình 3.1: Lân cận 4 và lân cận 8

Tập N4(p) bao gồm 4 điểm ảnh lân cận theo cột và hàng với tọa độ (x+1, y), (x-1, y), (x, y+1), và (x, y-1) Trong khi đó, tập ND(p) chứa 4 điểm ảnh lân cận theo đường chéo với tọa độ (x+1, y+1), (x+1, y-1), (x-1, y+1), và (x-1, y-1) Tập 8 điểm ảnh lân cận 8 là sự kết hợp của hai tập N4(p) và ND(p).

Liên kết ảnh là mối liên kết giữa các điểm ảnh gần nhau, được phân thành ba loại: liên kết 4, liên kết 8 và liên kết m (liên kết hỗn hợp) Trong ảnh đa mức xám, ta có thể xác định V chứa nhiều giá trị, với V = {tập con} Đối với điểm p có tọa độ (x, y), các liên kết này đóng vai trò quan trọng trong việc phân tích và xử lý ảnh.

Liên kết 4: Hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 4 của nhau nếu q thuộc về tập N4(p)

Liên kết 8: Hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 8 của nhau nếu q thuộc về tập N8(p)

Hai điểm ảnh p và q thuộc tập V được gọi là Liên kết M nếu thỏa mãn một trong hai điều kiện: điểm q nằm trong tập N4(p) hoặc trong tập ND(p), đồng thời giao của hai tập N4(p) và N4(q) không chứa điểm ảnh nào có giá trị thuộc V.

Lọc nhiễu là quá trình loại bỏ nhiễu trong ảnh thu nhận được Các toán tử không gian trong kỹ thuật tăng cường ảnh được phân loại theo chức năng như làm mịn nhiễu và nổi biên Để thực hiện làm mịn nhiễu hoặc tách nhiễu, có thể sử dụng các bộ lọc tuyến tính như lọc trung bình và lọc thông thấp, hoặc các bộ lọc phi tuyến như lọc trung vị, giả trung vị và lọc đồng hình.

Nhiễu thường tương ứng với tần số cao, vì vậy để lọc nhiễu, người ta thường sử dụng bộ lọc thông thấp hoặc áp dụng tổ hợp tuyến tính để san bằng tín hiệu Để làm nổi bật các cạnh, các bộ lọc thông cao và lọc Laplace được sử dụng Phương pháp lọc nhiễu có thể được chia thành hai loại chính: lọc tuyến tính và lọc phi tuyến.

Làm trơn nhiễu trong xử lý ảnh là một bước quan trọng để cải thiện chất lượng hình ảnh, vì nhiều loại nhiễu có thể xuất hiện trong quá trình chụp Các phương pháp lọc cơ bản như lọc trung bình và lọc thông thấp được sử dụng để loại bỏ nhiễu Cụ thể, với lọc trung bình, mỗi điểm ảnh sẽ được thay thế bằng giá trị trung bình trọng số của các điểm ảnh lân cận, giúp làm mịn hình ảnh và giảm thiểu nhiễu hiệu quả.

Lọc phi tuyến là một phương pháp hiệu quả trong kỹ thuật tăng cường ảnh, với các bộ lọc cơ bản như lọc trung vị và lọc giả trung vị Lọc trung vị thay thế điểm ảnh đầu vào bằng giá trị trung vị của các điểm ảnh lân cận, trong khi lọc giả trung vị sử dụng trung bình cộng của giá trị lớn nhất và nhỏ nhất để cải thiện chất lượng hình ảnh.

Lọc trung vị là một kỹ thuật xử lý ảnh, yêu cầu các giá trị điểm ảnh trong cửa sổ được sắp xếp theo thứ tự tăng hoặc giảm so với giá trị trung vị Kích thước của cửa sổ thường được chọn là số lẻ để đảm bảo có đủ điểm ảnh cho việc tính toán chính xác.

TÌM HIỂU VỀ THƯ VIỆN OPENCV

❖ Giới thiệu về thư viện OpenCV

OpenCV (Open Computer Vision library) do Intel phát triển được giới thiệu năm

Thư viện OpenCV, được phát triển từ năm 1999 và hoàn thiện phiên bản 1.0 vào năm 2006, bao gồm khoảng 500 hàm được viết bằng ngôn ngữ lập trình C Thư viện này tương thích với nhiều hệ điều hành như Windows, Linux và Mac OS, đóng vai trò quan trọng trong việc xác lập chuẩn giao tiếp, dữ liệu và thuật toán cho lĩnh vực xử lý ảnh và thị giác máy tính.

CV và tạo điều kiện cho mọi người tham gia nghiên cứu và phát triển ứng dụng

Trước khi OpenCV ra đời, lĩnh vực xử lý ảnh thiếu một công cụ chuẩn mực, khiến cho các đoạn mã do các nhà nghiên cứu tự phát triển thường không đồng nhất và không ổn định Các bộ công cụ thương mại như Matlab, Simulink, và Halcon có giá thành cao, chỉ phù hợp với các công ty phát triển ứng dụng lớn Hơn nữa, nhiều giải pháp đi kèm với phần cứng thường là mã nguồn đóng, được thiết kế riêng cho từng thiết bị, gây khó khăn trong việc mở rộng ứng dụng.

❖ OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử lý ảnh số vì các ưu điểm sau:

OpenCV là một công cụ mạnh mẽ được phát triển bởi Intel, nhằm tối ưu hóa các ứng dụng xử lý và phân tích ảnh Thư viện này sở hữu cấu trúc dữ liệu hợp lý, giúp tạo ra giao diện dễ sử dụng cho người lập trình.

40 diện, truy xuất thiết bị phần cứng được tích hợp sẵn, OpenCV thích hợp để phát triển nhanh ứng dụng

OpenCV là một công cụ mã nguồn mở miễn phí, được cấp phép theo giấy phép BSD, cho phép người dùng tự do thay đổi và mở rộng các mô hình và thuật toán Điều này làm cho OpenCV trở thành lựa chọn lý tưởng cho nghiên cứu và phát triển trong lĩnh vực thị giác máy tính.

OpenCV đã trở thành công cụ phổ biến từ năm 1999, thu hút đông đảo người dùng, bao gồm các công ty lớn như Microsoft, IBM, Sony, Siemens, Google, cùng với các nhóm nghiên cứu tại các trường đại học danh tiếng như Stanford, MIT, CMU và Cambridge Nhiều diễn đàn hỗ trợ và cộng đồng người dùng đã được hình thành, tạo ra nguồn thông tin phong phú và hữu ích cho việc tham khảo.

Hình 3.6: Sơ đồ khối tổ chức thư viên OpenCV

Tổ chức thư viện OpenCV khá đơn giản bao gòm 4 module chính và 2 module mở rộng:

CXCORE định nghĩa các kiểu dữ liệu cơ sở như cấu trúc dữ liệu cho ảnh, điểm và hình chữ nhật trong tệp cxtypes.h Nó cũng bao gồm đại số tuyến tính, phương pháp thống kê, cùng với các chức năng để duy trì và điều khiển chuỗi Ngoài ra, CXCORE cung cấp một số chức năng đồ họa để vẽ trên ảnh.

- CV chứa các thuật toán về xử lý ảnh và định dạng kích cỡ camera Các chức năng hình họa máy tính cũng được đặt ở đây

CVAUX, theo tài liệu của OpenCV, bao gồm các mã cũ và thử nghiệm, nhưng lại cung cấp giao diện đơn giản cho nhận diện ảnh Mã nguồn trong module này được tối ưu hóa cho việc nhận diện khuôn mặt và được ứng dụng rộng rãi trong lĩnh vực này.

- HIGHGUI và CVCAM được đặt trong cùng thu mục là “otherlibs”

+ HIGHGUI chứa các giao diện vào ra cơ bản, nó cũng chứa các khả năng của sổ mở rộng và vào ra video

+ CVCAM chứa các giao diện cho video truy cập qua DirectX trên nên Windows

❖ Các chức năng của thu viện OpenCV

Các chức năng của OpenCV tập trung vào thu thập ảnh, xử lý ảnh và các thuật toán phân tích dữ liệu ảnh, bao gồm:

- Truy xuất ảnh và video: Đọc ảnh số từ camera, từ file, ghi ảnh và video

- Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: Ma trận, vector, chuỗi, xâu và cây

- Xử lý ảnh căn bản: Các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh đổi màu, phóng to thu nhỏ và hiệu chỉnh Histograms

Xử lý cấu trúc trong không gian 3D bao gồm việc tìm viền, nhận diện chuyển động và thực hiện các thay đổi cần thiết Quá trình này còn liên quan đến việc đối chiếu với các bản mẫu và xấp xỉ các đơn vị hình học cơ bản như mặt phẳng, đa giác, ellipse và đường thẳng.

- Phân tích dữ liệu ảnh: Nhận dạng thực thể, theo dõi các chi tiết và phân tích chuyển động

Tạo giao diện đơn giản bằng cách hiển thị hình ảnh và cho phép thao tác bằng bàn phím, chuột cùng với thanh trượt để chỉnh sửa thông số Nếu cần, có thể tự tạo thêm các phím điều khiển thông qua thao tác chuột hoặc tích hợp các thư viện giao diện như wxWidgets để nâng cao trải nghiệm người dùng.

- Chức năng vẽ, chú thích lên ảnh

QUY TRÌNH THIẾT KẾ

CÁC YÊU CẦU KỸ THUẬT KHI THIẾT KẾ MÔ HÌNH

Trong chương 2, chúng ta đã khám phá lý thuyết về cấu trúc phần cứng Raspberry, nguyên lý hoạt động và kiến thức cơ bản về xử lý ảnh Dựa trên những nền tảng lý thuyết này, nhóm chúng tôi đã phát triển ý tưởng cho đề tài “Xe tự hành theo làn đường ứng dụng xử lý ảnh trên Raspberry”.

- Mô hình phải nhỏ gọn, đẹp, bền trong quá trình sử dụng

- Mô hình phải hoạt động phải có tính ổn định

- Vận hành đơn giản, bảo dưởng hay sửa chữa dễ dàng

- Có tính linh động và khả năng ứng dụng thực tế cao

- Đơn giản thiết kế để hạ giá thành

- Sử dụng các thiết bị, linh kiện thông dụng, giá thành thấp

- Mô hình có tính thẩm mỹ, kết cấu chắc chắn, bền với thời gian

- Với những chi tiết phụ không quan trọng có thể tận dụng vật tư sẵn có để giảm chi phí

KẾT NỐI CÁC THIẾT BỊ NGOẠI VI CHO HỆ THỐNG MÁY TÍNH NHÚNG RASPBERRY

4.2.1 Sơ đồ kết nối và khởi động Raspberry

Hình 4.1: Sơ đồ kết nối các thiết bị ngoại vi cho Raspberry

Hệ thống được kết nối dựa trên phần cứng sẵn có từ nhà sản xuất, do đó không bao gồm thiết kế mạch in hay sơ đồ nguyên lý chi tiết.

Sau khi hoàn tất cài đặt Raspbian, Raspberry Pi sẽ khởi động lần đầu tiên Màn hình lệnh (prompt) sẽ xuất hiện và yêu cầu người dùng đăng nhập bằng tên và mật khẩu.

Tiến đến sẽ đến được giao diện của hệ điều hành Rasbian

Hình 4 2: Giao diện của hệ điều hành Raspbian 4.2.2 Cài đặt gói thư viện OpenCV và các gói thư viện bổ trợ

Bước 1: Cập nhật cho Raspberry

Khởi động Terminal và gõ hai dòng lệnh sau để tiến hành cập nhật cho hệ thống:

Bước 2: Tiến hành xóa các ứng dụng không cần thiết để giải phóng dung lượng cho thẻ nhớ

Gói thư viện OpenCV đầy đủ có kích thước khoảng 5,5 Gbyte, trong khi Raspbian chỉ chiếm khoảng 5,4 Gbyte Để tạo thêm dung lượng trên thẻ SD, bạn cần xóa một số chương trình không sử dụng Cách đơn giản và an toàn nhất để thực hiện điều này là sử dụng menu chính để gỡ bỏ các ứng dụng không cần thiết.

Cách thứ hai là dùng Terminal và gõ hai lện sau:

Bước 3: Kiểm tra phiên bản

Trước khi tiến hành cài thư viện cần phải kiểm tra phiên bản hiện tại của hệ điều hành Để kiểm tra hệ điều hành tiến hành như sau:

Bước 4: Cài các gói thư viện bổ trợ cho OpenCV

Phần mềm OpenCV yêu cầu cài đặt các thư viện bổ trợ từ bên thứ ba Để sử dụng OpenCV, bạn cần tải và cài đặt lần lượt các gói thư viện cần thiết thông qua Terminal.

Bước 5: Tải OpenCV và tiến hành giải nén

Sau khi cài đặt các thư viện bổ trợ, bạn có thể tiến hành tải xuống OpenCV, bao gồm hai gói: Opencv và Opencv – contrib Để tải và giải nén hai gói này, hãy mở Terminal và nhập lần lượt các lệnh sau:

Bước 6: Đổi tên hai thư mục

Sau khi tải và nén hai thư mục chứa thư viện có tên dài, việc sử dụng chúng trở nên khó khăn và dễ gây lỗi Để khắc phục, bạn cần đổi tên hai thư mục này bằng cách mở Terminal và nhập lần lượt các lệnh sau:

Bước 7: Tạo môi trường là một bước quan trọng để Python có thể nhận và sử dụng các thư viện Để tạo môi trường, bạn cần gõ các dòng lệnh sau trong Terminal.

Sau khi tạo môi trường, cần kiểm tra xem việc này có thành công hay không Nếu thành công, chúng ta sẽ nhận được các thông số như hình bên dưới.

Bước 8: Mở rộng không gian hoán đổi của bộ nhớ

Việc sử dụng không gian hoán đổi mặc định 100MB thường là đủ, nhưng khi tạo môi trường ban đầu có thể cần nhiều bộ nhớ hơn Do đó, việc bổ sung không gian bộ nhớ là cần thiết để tránh hiện tượng đơ máy Để thực hiện điều này, bạn cần vào Terminal và nhập các dòng lệnh thích hợp.

Sau khi nhập lệnh trên Terminal, chúng ta sẽ thay đổi không gian bộ nhớ hoán đổi mặc định từ 100MB thành 2048MB Sau khi hoàn tất việc điều chỉnh, hãy lưu và đóng lại bằng cách nhấn , sau đó chọn Y và nhấn Enter.

Bước 9: Tiến hành xây dựng môi trường Để tiến hành xây dựng môi trường cho Python, ta mở Termnal và tiến hành thực hiện các dòng lệnh sau:

Sau khi thực hiện các lệnh trên việc tạo môi trường sẽ được tiến hành đến khi 100% sẽ thành công

Bước 10: Cài đặt tất cả các gói đã tạo vào cơ sở dữ liệu của hệ thống, cập nhật hệ tổng, thay đổi không gian hoán đổi bộ nhớ về mặc định và kiểm tra Để thực hiện các công việc này, bạn mở Terminal và lần lượt gõ các dòng lệnh sau.

THI CÔNG, MÔ PHỎNG

ĐÁNH GIÁ KẾT QUẢ, KẾT LUẬN

Ngày đăng: 31/08/2023, 08:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Thanh Hải, “Giáo Trình Xử lý ảnh”, Nhà xuất bản Đại Học Quốc Gia, Thành phố Hồ Chí Minh, 2014 Sách, tạp chí
Tiêu đề: Giáo Trình Xử lý ảnh
Tác giả: Nguyễn Thanh Hải
Nhà XB: Nhà xuất bản Đại Học Quốc Gia
Năm: 2014
2. Nguyễn Quang Hoan, “Xử lý ảnh”, Học Viện Bưu Chính Viên Thông, 2006 Sách, tạp chí
Tiêu đề: Xử lý ảnh
Tác giả: Nguyễn Quang Hoan
Nhà XB: Học Viện Bưu Chính Viên Thông
Năm: 2006
3. Richard Blum, Christine Bresnahan, “Python Programming for Raspberry Pi”, 2014 Shawn Wallace, Matt Richardson, “Getting Started with Raspberry Pi”, 2012 Sách, tạp chí
Tiêu đề: Python Programming for Raspberry Pi
Tác giả: Richard Blum, Christine Bresnahan
Năm: 2014
4. Trần Công Dũng, Đinh Công Phong, “Ứng dụng xử lý ảnh trong phân loại chất lượng gạo”, Đồ Án Tốt Nghiệp Đại Học, Trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh, 2016 Sách, tạp chí
Tiêu đề: Ứng dụng xử lý ảnh trong phân loại chất lượng gạo
Tác giả: Trần Công Dũng, Đinh Công Phong
Nhà XB: Trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh
Năm: 2016
5. Doxygen, “OpenCV-Python Tutorials”, https://docs.opencv.org/, 2020 Sách, tạp chí
Tiêu đề: OpenCV-Python Tutorials
Tác giả: Doxygen
Năm: 2020
6. Facebook, “Cộng động OpenCV và xử lý ảnh Việt Nam”, https://www.facebook.com/congdongopencv, 2020 Link

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Mẫu xe tự hành thông minh đầu tiên ở Việt Nam - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 1.1 Mẫu xe tự hành thông minh đầu tiên ở Việt Nam (Trang 11)
Hình 2. 2: Sơ đồ các chân GPIO của Raspberry Pi 4 Module B - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 2. 2: Sơ đồ các chân GPIO của Raspberry Pi 4 Module B (Trang 19)
Hình 2. 3: Camera PI v1.3 - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 2. 3: Camera PI v1.3 (Trang 20)
Hình 3.1: Lân cận 4 và lân cận 8 - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 3.1 Lân cận 4 và lân cận 8 (Trang 33)
Hình 3.2 : Sơ đồ khối các bước cơ bản xử lý ảnh - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 3.2 Sơ đồ khối các bước cơ bản xử lý ảnh (Trang 39)
Hình 3.6: Sơ đồ khối tổ chức thư viên OpenCV - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 3.6 Sơ đồ khối tổ chức thư viên OpenCV (Trang 48)
Hình 4.1: Sơ đồ kết nối các thiết bị ngoại vi cho Raspberry - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 4.1 Sơ đồ kết nối các thiết bị ngoại vi cho Raspberry (Trang 52)
Hình 4. 2: Giao diện của hệ điều hành Raspbian  4.2.2. Cài đặt gói thư viện OpenCV và các gói thư viện bổ trợ - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 4. 2: Giao diện của hệ điều hành Raspbian 4.2.2. Cài đặt gói thư viện OpenCV và các gói thư viện bổ trợ (Trang 53)
Hình 5.2: Sơ đồ kết nối mô hình  5.1.2. Lập trình cho hệ thống - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5.2 Sơ đồ kết nối mô hình 5.1.2. Lập trình cho hệ thống (Trang 63)
Hình 5.9 Chương trình phát hiện cạnh Canny - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5.9 Chương trình phát hiện cạnh Canny (Trang 69)
Hình 5.11: Chương trình cắt lấy vùng ROI - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5.11 Chương trình cắt lấy vùng ROI (Trang 71)
Hình 5.13: Chương trình xác định 2 đường phân cách trái phải của làn đường - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5.13 Chương trình xác định 2 đường phân cách trái phải của làn đường (Trang 72)
Hình 5.14: Chương trình xác định góc lái - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5.14 Chương trình xác định góc lái (Trang 73)
Hình 5.19: Ảnh làn đường tại đoạn đường thẳng - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5.19 Ảnh làn đường tại đoạn đường thẳng (Trang 77)
Hình 5. 18: Ảnh thực tế làn đường tại đoạn đường thẳng - Nghiên cứu thiết kế chế tạo xe tự hành
Hình 5. 18: Ảnh thực tế làn đường tại đoạn đường thẳng (Trang 77)

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

TÀI LIỆU LIÊN QUAN

w