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 2

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

Nội dung

GIỚI THIỆU

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

Ngày 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 chính 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 diện và phát hiện biển báo, làn đường và đèn giao thông trở nên cực kỳ quan trọng, đóng vai trò thiết yếu trong sự hoạt động hiệu quả của hệ thống ADAS.

Trong bài viết này, chúng tôi sẽ khám phá tầm quan trọng và ứng dụng của xe tự hành Chúng tôi sẽ tập trung vào việc sử dụng ngôn ngữ Python và thư viện OpenCV để phát triển ứng dụng thiết kế xe tự hành, đặc biệt là thông qua việc nhận diện biên ả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 với sự tài trợ của 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 Đến 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 đã khởi động cuộc đua phát triển xe điện bằng cách cho ra mắt những mẫu xe mới Các quốc gia cũng đang xem xét việc cho phép sử dụng các phương tiện này trên 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ế, mặc dù người lái vẫn phải chú ý Xe chạy 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ề tính an toàn của những chiếc xe này, các nhà nghiên cứu và 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 đích của đề tài 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 Điều này tạo ra tiền đề cho sự phát triển 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

Nghiên cứu cho thấy việc lập trình để nhận diện hình ảnh từ Camera hoặc Video có thể sử 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, 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 như các công trình nghiên cứu và dự án có liên quan đến chủ đề 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 lưu thô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 chỉ có một board mạch, 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 đích ban đầu của nó là thúc đẩy giảng dạy khoa học máy tính cơ bản trong 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, những 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 duy nhất tại Đài Loan, dễ nhận biết với màu đỏ và không có dấu FCC/CE, nhưng 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, 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 đó nâng cấp lên 512 MB ở các model B và B+ Board có socket Secure Digital (SD) cho model A và B, hoặc MicroSD cho model A+ và B+ để sử dụng làm thiết bị khởi động và bộ lưu trữ.

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

Tổ chức này cung cấp phiên bản Debian và Arch Linux ARM cho người dùng tải về, đồng thời hỗ trợ các công cụ lập trình với Python như ngôn ngữ chính, bao gồm cả hỗ trợ cho 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 distributed 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 Board máy tính này trang bị SoC Broadcom BCM2836, với CPU ARM Cortex-A7 4 lõi và GPU VideoCore IV dual-core, cùng 1 GB bộ nhớ RAM Thông số kỹ thuật của Raspberry Pi 2 tương tự như model B+ trước đó, nhưng vẫn giữ nguyên mức giá $35, trong khi model A+ có giá $20 vẫn tiếp tục đượ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ị phù hợp Ngoài ra, để hoạt động như một máy tính, bạn cũng cần có bàn phím và chuột Các phiên bản Raspberry Pi 3 đã được trang bị 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 một gói robot chuyên dụng cho máy Pi, được cung cấp năng lượng bằng 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ể biến những chiếc máy in cũ kỹ thành máy in 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, với sự kết hợp này, bạn còn có thể 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 rất thịnh hành trên mạng xã hội hiện nay Hơn nữa, nếu kết hợp với một script khác, bạn còn có khả năng tạo ra 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 qua đường, đám mây trên bầu trời hoặc sự thay đổi của thời tiết, tất cả phụ 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, mang đến khả năng trở thành máy chơi game gọn nhẹ nhưng mạnh mẽ Không chỉ dừng lại ở việc chơi các trò chơi đơn giản, Raspberry Pi kết hợp với hệ điều hành Raspbian còn có thể được sử dụng như một máy chủ game, đáp ứng nhiều mục đích sử dụng khác nhau.

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

Với việc sử dụng module camera Raspberry Pi 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 để giám sát những kẻ đột nhập vào nhà Hệ thống này sẽ sử dụng thẻ nhớ dung lượng lớn để lưu trữ dữ liệu ghi hì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 người dùng theo dõi thời gian thực và xem hình ảnh từ 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, stream 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, hỗ trợ PVR 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 cung cấp làm hệ điều hành chính cho các máy tính bảng đơn Raspberry Pi.

Raspbian, được phát triển bởi Mike Thompson và Peter Green, ra mắt lần đầu vào tháng 6 năm 2012 như một dự án độc lập Hệ điều hành này hiện vẫn đang được cải tiến liên tụ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 đã cập nhật môi trường máy tính để bàn chính của mình sang PIXEL, sử dụng X-Window Environment, Lightweight Phiên bản mới này bao gồm LXDE được sửa đổi và trình quản lý cửa sổ Openbox với chủ đề mới cùng một số thay đổi khác Hệ điều hành đi kèm với Mathematica, một chương trình máy tính đại số, 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 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à 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ã 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 trong thần thoại Hy Lạp, mà thực chất là tên gọi xuất phát từ sự yêu thích của Guido van Rossum đối với một sê-ri chương trình hài nổi tiếng vào cuối thập niên 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ó một ý nghĩa đặc biệt khi áp dụng cho các đối số kiểu số: 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 xấp xỉ hợp lý khi các đối số là kiểu float hoặc phức đã được giải quyết.

- 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à được 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 hàm xrange() (trong phiên bản 2x) đã 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 cho 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ẽ phát sinh lỗi TypeError khi các toán hạng không có thứ tự tự nhiên có ý nghĩa Ví dụ, các biểu thức như 1 < "abc" hoặc 0 > len không còn hợp lệ, và việc so sánh None < None sẽ gây ra lỗi TypeError thay vì trả về giá trị False.

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 chạy mã lệnh ngay lập tức mà không cần biên dịch, mang lại sự linh hoạt cho người lập trình Khi thực thi lệnh Python, người dùng sẽ làm việc trong một giao diện dòng lệnh tương tự như Unix, cho phép chạy từng dòng code một cách trực tiếp.

Python là một ngôn ngữ lập trình được các nhà lập trình web yêu thích nhờ vào nhiều ưu điểm nổi bật, khiến nó trở thành lựa chọn hàng đầu cho những người mới bắt đầu.

- Đơ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 đạt tiêu chuẩn cao với khối cơ sở dữ liệu lớn, cung cấp giao diện cho tất cả các hệ quản trị cơ sở dữ liệu thương mại lớn.

- 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 ưu 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à 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, với một kho thư viện khổng lồ phục vụ cho 400 triệu người dùng Nhờ vào 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 những 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 trong nhiều lĩnh vực như chính trị, y tế và giáo dục, không chỉ phục vụ cho cá nhân và gia đình Nó liên quan đến xử lý tín hiệu, một môn học trong kỹ thuật điện tử và viễn thông, tập trung vào nghiên cứu và xử lý tín hiệu kỹ thuật số và analog Các vấn đề được giải quyết bao gồm lưu trữ, bộ lọc và các hoạt động khác liên quan đến truyền dẫn tín hiệu, âm thanh, giọng nói và hình ảnh.

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 dữ liệ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 là đơn vị cơ bản để tạo nên một bức ảnh kỹ thuật số, với địa chỉ của nó được xác định bằng 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 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 càng nhiều thì độ chi tiết của bức ảnh càng cao, trong đó một triệu pixel tương đương với 1 megapixel.

Ảnh là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp, mô tả gần giống như ảnh thậ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 thực và sắc nét hơn Một hình ảnh được coi là tín hiệu hai chiều, được xác định bởi hàm toán học f(x, y), trong đó x và y là tọa độ ngang và dọc Các giá trị của f(x, y) tại mỗi điểm cung cấp giá trị điểm ảnh (pixel) cho hình ảnh đó.

Mức xám của điểm ảnh biểu thị cường độ sáng và được gán bằng 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 đó, 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 phong phú Để mô tả mức độ màu sắc, người ta thường sử dụng 3 byte, cho phép hiển thị khoảng 16,7 triệu màu khác nhau.

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

Lân cận điểm ảnh, hay còn gọi là 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 Lân cận 4 chỉ các điểm ảnh nằm ngay cạnh nhau theo chiều ngang và dọc, trong khi lân cận 8 bao gồm cả các điểm ảnh chéo.

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) bao gồm 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ự hợp nhất của hai tập N4(p) và ND(p).

Liên kết ảnh là mối liên hệ giữa các điểm ảnh gần nhau, được phân loại 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, tập hợp V có thể chứa nhiều giá trị khác nhau, ví dụ như V = {tập con} Đối với điểm ảnh p có tọa độ (x, y), việc xác định các liên kết này rất quan trọng trong 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: q thuộc tập N4(p) hoặc q thuộc tập ND(p), và 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 cần thiết để loại bỏ nhiễu trong ảnh thu nhận Các toán tử không gian trong kỹ thuật tăng cường ảnh được phân nhóm theo chức năng như làm trơn nhiễu và nổi biên Để thực hiện làm trơn nhiễu hoặc tách nhiễu, người ta 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.

Bản chất của nhiễu thường liên quan đến tần số cao, và lý thuyết lọc cho thấy bộ lọc chỉ cho phép tín hiệu ở một tần số nhất định đi qua Để loại bỏ 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 để thực hiện lọc trung bình Ngược lại, để 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à cần thiết để cải thiện chất lượng hình ảnh, vì trong quá trình chụp ảnh có thể xuất hiện nhiều loại nhiễu Các phương pháp lọc cơ bản bao gồm lọc trung bình và lọc thông thấp Cụ thể, với lọc trung bình, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận, giúp giảm thiểu nhiễu hiệu quả.

Lọc phi tuyến là một phương pháp phổ biến trong kỹ thuật tăng cường ảnh, với các bộ lọc 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 xung quanh, 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, trong đó giá trị các điểm ảnh trong một 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 sao cho số lượng điểm ảnh là lẻ, nhằm đảm bảo tính chính xác trong việc xác định giá trị trung vị.

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 lập trình bằng ngôn ngữ 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 thiết 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.

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 có OpenCV, lĩnh vực xử lý ảnh thiếu một công cụ chuẩn mực, dẫn đến việc các đoạn code do các nhà nghiên cứu tự viết 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ủ yếu phục vụ cho 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 thiết bị phần cứng lại là mã nguồn đóng và được thiết kế riêng, gây khó khăn cho 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ụ chuyên dụng đượ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 có cấu trúc dữ liệu hợp lý, giúp tạo ra giao diện thân thiện và hiệu quả cho người dùng.

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 phát hành dưới giấy phép BSD, cho phép người dùng nghiên cứu và phát triển Với khả năng tùy chỉnh và mở rộng các mô hình cũng như thuật toán, OpenCV là lựa chọn lý tưởng cho các dự án nghiên cứu và ứng dụng thực tiễn.

Kể từ năm 1999, OpenCV đã trở thành một công cụ phổ biến, thu hút sự quan tâm của nhiều người dùng, bao gồm các tập đoàn lớn như Microsoft, IBM, Sony, Siemens, Google và các nhóm nghiên cứu tại Stanford, MIT, CMU, Cambridge Sự phát triển này đã dẫn đến việc hình thành nhiều diễn đàn hỗ trợ và cộng đồng người dùng, tạo ra một 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 cung cấp các định nghĩa cho kiểu dữ liệu cơ sở, bao gồm cấu trúc dữ liệu cho ảnh, điểm và hình chữ nhật trong tệp cxtypes.h Ngoài ra, CXCORE còn tích hợp đạ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 Một số chức năng đồ họa để vẽ trên ảnh cũng được bao gồm trong CXCORE.

- 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 được OpenCV mô tả là một module chứa mã cũ và thử nghiệm, với các 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 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 Quá trình này còn liên quan đến việc đối chiếu bản mẫu và xấp xỉ các đơn vị hình học cơ sở 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 một giao diện đơn giản bằng cách hiển thị hình ảnh và sử dụng các thao tác từ bàn phím, chuột, cũng như thanh trượt để điều chỉnh 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 tính nă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 đã nghiên cứu 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 kiến thức nền tảng 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 sử dụng phần cứng có sẵn 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 và hiển thị màn hình lệnh (prompt) yêu cầu người dùng đăng nhập Tên đăng nhập và mật khẩu mặc định được sử dụng để truy cập hệ thống là:

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 đủ chiếm khoảng 5,5 Gbyte trên thẻ SD, trong khi Raspbian chỉ có dung lượng khoảng 5,4 Gbyte Để tạo thêm dung lượng trên thẻ, 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 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 trước khi sử dụng Để thực hiện điều này, bạn cần sử dụng Terminal để tải các gói thư viện cần thiết theo thứ tự.

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 cần thiết, bạn có thể 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ễ xảy ra lỗi Để khắc phục, chúng ta 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 quá trình này có thành công hay không Nếu thành công, bạn 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ớ

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

Sau khi thực hiện 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 thay đổi, 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, 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
Nhà XB: Nhà xuất bản Đại Học Quốc Gia
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
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”, 2014 Shawn Wallace, Matt Richardson, “Getting Started with Raspberry Pi
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
5. Doxygen, “OpenCV-Python Tutorials”, https://docs.opencv.org/, 2020 Sách, tạp chí
Tiêu đề: OpenCV-Python Tutorials
6. Facebook, “Cộng động OpenCV và xử lý ảnh Việt Nam”, https://www.facebook.com/congdongopencv, 2020 Sách, tạp chí
Tiêu đề: Cộng động OpenCV và xử lý ảnh Việt Nam

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 2
Hình 1.1 Mẫu xe tự hành thông minh đầu tiên ở Việt Nam (Trang 15)
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 2
Hình 2. 2: Sơ đồ các chân GPIO của Raspberry Pi 4 Module B (Trang 23)
Hình 2. 3: Camera PI v1.3 - Nghiên cứu thiết kế chế tạo xe tự hành 2
Hình 2. 3: Camera PI v1.3 (Trang 24)
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 2
Hình 3.1 Lân cận 4 và lân cận 8 (Trang 37)
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 2
Hình 3.2 Sơ đồ khối các bước cơ bản xử lý ảnh (Trang 43)
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 2
Hình 3.6 Sơ đồ khối tổ chức thư viên OpenCV (Trang 52)
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 2
Hình 4.1 Sơ đồ kết nối các thiết bị ngoại vi cho Raspberry (Trang 56)
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 2
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 57)
Hình 5.7: Chương trình lọc nhiểu Blur - Nghiên cứu thiết kế chế tạo xe tự hành 2
Hình 5.7 Chương trình lọc nhiểu Blur (Trang 72)
Hình 5.6: Ảnh trước và sau khi chuyển đổi ảnh xám  Lọc nhiễu là quá trình loại bỏ nhiễu trong hình, ở đâu sử dụng bộ lọc trung bình - Nghiên cứu thiết kế chế tạo xe tự hành 2
Hình 5.6 Ảnh trước và sau khi chuyển đổi ảnh xám Lọc nhiễu là quá trình loại bỏ nhiễu trong hình, ở đâu sử dụng bộ lọc trung bình (Trang 72)
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 2
Hình 5.9 Chương trình phát hiện cạnh Canny (Trang 73)
Hình 5.10: Ảnh được xử lý lấy cạnh sau khi lọc nhiễu  Tách biên: Là quá trình lọai bỏ các dữ liệu không phải là biên được xác định từ - Nghiên cứu thiết kế chế tạo xe tự hành 2
Hình 5.10 Ảnh được xử lý lấy cạnh sau khi lọc nhiễu Tách biên: Là quá trình lọai bỏ các dữ liệu không phải là biên được xác định từ (Trang 74)
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 2
Hình 5.11 Chương trình cắt lấy vùng ROI (Trang 75)
Hình 5. 19: Ả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 2
Hình 5. 19: Ảnh thực tế làn đường tại đoạn đường thẳng (Trang 82)
Hình 5.18: Hình ảnh kết nối các thiết bị ngoại vi cho Raspberry thực tế - Nghiên cứu thiết kế chế tạo xe tự hành 2
Hình 5.18 Hình ảnh kết nối các thiết bị ngoại vi cho Raspberry thực tế (Trang 82)

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

w