Giao diện của hệ điều hành Raspbian

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo xe tự hành (Trang 53)

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. Bản thân Raspbian có dung lượng khoảng 5,4 Gbyte. Vì vậy cần phải tạo một số dung lượng trên thẻ của bạn bằng cách xóa các chương trình bạn sử dụng. Đây là cách đơn giản và an toàn nhất để thực hiện việc này là sử dụng menu chính để xóa các ứng dụng chính:

46

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:

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

Phần mềm OpenCV sử dụng các thư viện phần mềm của bên thứ ba. Vì vậy cần phải cài đặt trước các thư viện bổ trợ cho OpenCV. Sư dụng Terminal để tải lần lượt các gói thư viện sau:

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

Sau khi cài tất cả các thư viện bổ trợ trên ta có thể tiến hành tải xuống OpenCV. OpenCV gồm có 2 gói là Opencv và Opencv – contrib. Để tiến hành tải và giải nén hai gói này ta mở Terminal và gõ lần lượt các dòng lệnh sau:

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

Sau khi tải nén hai thư mục chứa thư viện có tên khá dài rất khó sử dụng và dễ xảy ra lỗi. Vì vậy ta phải đổi tên hai thu mục này bằng cách mở Terminal và gõ lần lượt các dòng lệnh sau:

Bước 7: Tạo môi trường

Đây là bước rất quan trọng. Việc tạo môi trường để Python nhận và sử dụng được các thư viện. Để tiến hành tạo môi trường ta gõ các dòng lệnh sau trong Terminal:

49

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

50 Bước 8: Mở rộng khơng gian hốn đổi của bộ nhớ

Việc sử dụng bình thường thì khơng gian hốn đổi mặc định là 100MB là đủ. Tuy nhiên việc tạo mơi trường ban đầu là khá lớn vì vậy việc bổ sung khơng gian bộ nhớ là rất quan trọng nhằm tránh hiện tượng đơ máy. Để thực hiện việc này ta vào Terminal và thực hiện các dòng lệnh sau:

51

Sau khi gõ dòng lệnh trên Terminal hiển thị như hình bên dưới. ta tiến hành đổi khơng gian bộ nhớ hốn đổi mặc định 100MB thành 2048MB. Sau khi hoàn thành việc đổi khơng gian bộ nhớ hốn đổi. Ta lưu và đóng lại bằng cách nhấn <Ctrl +X> => Y=> 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.

52

Bước 10: cài đặt tất cả các gói đã tạo vào cơ sở sử liệu của hệ thông, tiến hành cập nhật

hệ tổng , thay đổi khơng gian hốn đổi bộ nhớ về mặc định và kiểm tra. Để thực hiện các công việc trên ta vào Terminal lần lượt gõ các dòng lệnh sau:

54 Chương 5

THI CƠNG, MƠ PHỎNG 5.1 THIẾT KẾ MƠ HÌNH VÀ LẬP TRÌNH HỆ THỐNG 5.1.1. Thiết kế mơ hình

❖ Sơ đồ khối mơ hình

Hình 5. 1: Sơ đồ khối mơ hình Chức năng của các khối trong mơ hình:

- Khối thu nhận ảnh: Mơ hình sử dụng Camer Pi v1.3 để thu nhận video đầu vào.

- Khối xử lý và điều khiển: Sử dụng board Raspberry Pi4 để lập trình xử lý ảnh

đầu vào và xuất tín hiệu để điều khiển khối chấp hành. Ngơn ngữ lập trình là ngơn ngữ Python.

- Khối chấp hành: là mạch L298N được kết nối với các chận IO của Raspberry để

điều khiển 2 động cơ gồm 1 động cơ lái và động cơ ga.

55

Hình 5.2: Sơ đồ kết nối mơ hình 5.1.2. Lập trình cho hệ thống 5.1.2. Lập trình cho hệ thống

56

57

Ảnh được thu nhận từ Camera rồi được xử lý hình ảnh nhằm nâng cao chất lượng của ảnh đầu vào, sau đó được tách biên để dễ dàng cho việc nhận dạng nhằm cùng cấp dữ liệu cho việc phát hiện làn đường, sau cùng là đưa ra tín hiệu điều khiển và xuất kết quả.

Thu nhận hình ảnh: là quá trình mà hệ thống chụp ảnh từ Camera được định

khung hình sẵn và lưu vào bộ nhớ hệ thống và đem đi xử lý ngay sau đó.

Tiền xử lý và tách biên: là quá trình bao gồm các bước chuyển đổi ảnh xám, lọc

nhiễu, nâng cao chất lượng ảnh để thuận tiện cho qua trình nhận dạng ảnh. Tách biên và quá trình Là q trình xác định đường biên sau đó loại bỏ những dữ liệu không cần thiết.

Phát hiện làn đường: Để nhận diện được làn đường ta phải dùng phương pháp

biến đổi Hough để xác định các đường thẳng trong ảnh. Các đường thẳng ở đây chính là đường phân cách làn đường. Từ đó tính tốn xác định đường phân cách trái, phải.

Nguyên tắc để xác định đường phân cách làn đường trái, phải và sự lệch tâm đường: Đường lân cách làn đường trái , phải được xác định dựa vào giao điểm của nó với đường bao phia dưới cùng của ảnh. Chương trình sẽ tính tốn khoảng cách từ tâm của khung hình tới đường phân cách làn đường.

Xuất tín hiệu điều khiển: Nếu làn đường thẳng và xe đi đúng trong làn đường,

chương trình xuất tín hiệu điều khiển tới chân cho phép (ENA) và 2 chân điều khiển động cơ ga (IN1 và IN2) của mạch cầu H (L298N) cho phép xe di chuyển thẳng.

Khi tâm của làn đường bị lệch, chương trình sẽ xuất thêm tin hiệu để điều khiển các chân (ENB) và 2 chân điều khiển động cơ lái (IN3 và IN4) của mạch cầu H.

58

❖ Tiền xử lý và tách biên

59

Sau khi thu được ảnh ta tiếp tục xử lý chất lượng hình ảnh đầu vào để cho quá trình nhận dạng ảnh được tốt nhất, bao gồm việc chuyển đổi ảnh xám và lọc nhiễu để có chất lượng ảnh tốt hơn. Sau tiền xử lí ta tiến hành tách biên.

Chuyển đổi ảnh xám là quá trình chuyển đổi hình ảnh dưới dạng RGB (Red- Green-Blue) sang ảnh xám. Điều này có nghĩa là có ba ma trận xám tương ứng cho màu Red, Green, Blue, vơng việc là tìm cách tổng hợp ba ma trận này về thành một ma trận duy nhất đó là ma trận xám.

60

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

để lọc mức xám có chênh lệch q lớn so với mức xám trung bình của tồn ảnh.

61

Hình 5.8: Ảnh xám trước và sau khi lọc nhiễu

Xác định đường biên: Ảnh được lọc mịn được đem đi xác định biên tạo ra các

đường biên có giá trị là là một trong giá trị nhị phân của hình. Ở bước này ta xác đinh đường biên bằng các tìm điểm A ở giữa hai điểm lân cận C và B ta xác định đó có phải giái trị cực đại không tức là giá trị rất lớn so với các điểm lân cận. nếu nó đúng thì ta có thể có thể xác định tạm thời đó là một phần của đường biên.

62

Hình 5.10: Ảnh được xử lý lấy cạnh sau khi lọc nhiễu

Tách biên: Là q trình lọai bỏ các dữ liệu khơng phải là biên được xác định từ

63

Hình 5.11: Chương trình cắt lấy vùng ROI

❖ Nhận diện làn đường và xuất tín hiệu điều khiển

Hình 5.12: Lưu đồ nhận diện làn đường và xuất tín hiệu điều khiển

Phát hiện làn đường: Sau khi tách biên nếu trong ảnh có 2 đường biên song song

64

Xác định tọa độ 2 đường biên và đường tâm của làn đường: đường thẳng được

cấu thành từ 2 điểm. Cần xác định được tọa độ của 2 điểm đó để xác định chính xác làn đường. Đường tâm của làn đường là đường thẳng nằm song song và cách đều 2 đường biên. Việc xác định đường tâm nhằm hổ trợ bước tiếp theo là xác định góc lái.

65

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 Xác định góc lái: góc lái được xác định là góc mà do 2 đường tâm tạo thành. Xác định góc lái: góc lái được xác định là góc mà do 2 đường tâm tạo thành.

Việc xác định góc lái nhằm điều khiển động cơ lái ln di chuyển trong làn đường hay nói cách khác là di chuyển giữa 2 đường biên.

66

67

Hình 5.15: Chương trình tính độ lệch của góc lái so với 900

Xuất tín hiệu điều khiển: Sau khi xác định được 2 đường biên tạo nên làn đường

và góc lái. Việc cuối cùng là xuất tín hiệu ra các chân IO được kết nối với mạch cầu H nhằm điều khiển 2 động cơ ga và lái chạy theo đúng làn đường được phát hiện.

68

69

70

5.2. MỘT SỐ HÌNH ẢNH TRONG Q TRÌNH THI CƠNG

Hình 5.18: Hình ảnh kết nối các thiết bị ngoại vi cho Raspberry thực tế

71

72 Chương 6:

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

Mục tiêu ban đâu của đề tài “Xe tự hành theo làn đường ứng dụng xử lí ảnh trên board Raspberry” là xe có thể tự di chuyển theo đúng làn đường được xác định. Dựa trên ngôn ngữ Python với thư viện chính là OpenCV và được thực hiện trên Kit Raspberry. Sau quá trình nghiên cứu và thực hiện đề tài, Nhóm đã rút ra được nhiều vấn đề khác nhau, từ việc sử dụng phần mềm, các phương pháp giải thuật, sử dụng phần cứng. Trong đó, gồm các vấn đề sau: Đối với phần cứng, biết sử dụng Kit Raspberry, cài đặt hệ điều hành cho Raspberry, biết sử dụng Camera Pi. Đối với phần mềm, biết cách lập trình cơ bản trên Python cùng với thư viện OpenCV, và các giải thuật liên quan đến đề tài.

6.1. ĐÁNH GIÁ KẾT QUẢ

Để có kết quá khách quan nhất, nhóm đã cho thử nghiệm mơ phỏng nhiều lần nhằm đánh giá khả năng nhận diện làn đường, mức độ ổn định và độ chính xác của mơ hình. Để đánh giá một cách khách quan hơn, tiến hành cho mơ hình hoạt động 10 lần, các làn đường được thay đổi ngẫu nhiên như: đường thẳng, đường cong,

Bảng kết quả: Lần 1 2 3 4 5 6 7 8 9 10 Độ chính xác (%) 100 100 80 90 100 100 90 100 100 80 Bảng 6. 1: Bảng kết quả thực nghiệm 10 lần 6.2. KẾT LUẬN

Qua q trình thực hiện đề tài, nhóm đã biết sử dụng Rasberry các chức năng cơ bản chiếc máy tính nhúng, như việc tạo file mới, tạo project mới, tìm hiểu Python trên

73

Raspberry, cách chạy chương trình Python,… Đánh giá máy tính nhúng Raspberry một cách khách quan, máy tính được thiết kế nhỏ gọn, thuận tiện cho các mơ hình khơng thích sự cồng kềnh, đáp ứng đủ các chức năng cơ bản như một chiếc máy tính bình thường, tốc độ xử lý tạm ổn cho các dự án nhỏ, hệ thống chạy ổn đinh, nhưng các dự án lớn cần cấu hình máy cao thì Raspberry chưa đáp ứng được nhu cầu. Đối với Model Camera Raspberry Pi có độ phân giải khơng q cao nhưng ngược lại nó có giá thành rẻ, cùng với chất lượng ảnh phù hợp với việc xử lý ảnh.

Sau khi qua thời gian tìm hiểu phương pháp nhận dạng, thuật tốn này nhóm mất nhiều tuần để hồn thành.Q trình thực hiện đề tài đã giúp chúng em thu được kết quả tốt, bổ sung nhiều phần kiến thức chưa hiểu rõ trong quá trình học tập và hiểu rõ quá trình thiết kế, thực hiện 1 ý tưởng kỹ thuật đơn giản. Môn học đã cho sinh viên chúng em mơi trường làm việc thân thiện, sáng tạo, kích thích sự tìm tịi về cơng nghệ hiện đại.

6.2.1. Kết quả đạt được

Sau khi tổng hợp các kết quả đạt được và đem so sánh với những yêu cầu và mục tiêu thiết kế cho thấy sản phẩm thiết kế đáp ứng tương đối tốt, chính xác. Có khả năng thi cơng mơ hình hoạt đổng tốt. các thiết bị sử dụng nhỏ gọn, dễ dàng lắp đặt, có tính kinh tế, thuận tiện cho việc học tập nhưng cũng có thể phát triển thực tế.

6.2.2 Điểm mới của đề tài

- Thiết kế đơn giản, rẻ tiền, dễ dàng lắp ráp và sử dụng mang lại hiệu quả tương đối cao.

- Ứng dụng được vào giao thông thực tế ở Việt Nam nhằm giúp việc lưu thơng trên đường an tồn hơn, giảm rủi ro tai nạn giao thông không mong muốn.

- Ứng dụng xử lý ánh thay 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.

74 6.2.3. Những mặt hạn chế

Ngồi những kết quả đạt được thì vẫn cịn những hạn chế sau.

- Do kinh nghiệm còn hạn chế, nên quá trinh triển khai đồ án mất nhiều thời gian.

- Chưa sử dụng cơng nghệ tối ưu nhất trong q trình thực hiện.

- Việc thực hiện xe tự hành thực tế phần lớn qua test mô phỏng, được phục vụ trong giáo dục, chưa áp dụng vào đời sống.

6.3. HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI NGHIÊN CỨU

Từ những mặt hạn chế của đề tài, để đề tài hoạt động tốt hơn và có thể áp dụng vào thực tế sau này nhóm đã đề ra những hướng phát triển như sau:

- Sử dụng thiết bị chuyên dụng và cấu hình mạnh hơn nhằm giúp cho mơ hình có thể áp dụng vào thực tế hoạt động chính xác hơn.

75

TÀI LIỆU THAM KHẢO

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

2. Nguyễn Quang Hoan, “Xử lý ảnh”, Học Viện Bưu Chính Viên Thơng, 2006

3. Richard Blum, Christine Bresnahan, “Python Programming for Raspberry Pi”, 2014 Shawn Wallace, Matt Richardson, “Getting Started with Raspberry Pi”, 2012

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

5. Doxygen, “OpenCV-Python Tutorials”, https://docs.opencv.org/, 2020

6. Facebook, “Cộng động OpenCV và xử lý ảnh Việt Nam”,

76

PHỤC LỤC

THÔNG TIN, SỐ LIỆU KHẢO SÁT VỀ XE TỰ HÀNH

1. Chỉ 16% số người được hỏi “rất có khả năng” đi xe tự hành, trong khi 28% số người được hỏi khẳng định rằng họ “hồn tồn khơng có khả năng”. (Morning Consult) 2. 22% người được hỏi tin rằng xe tự lái an tồn hơn so với người bình thường lái xe,

trong khi 35% trong số họ tin rằng xe tự lái kém an toàn hơn so với người lái xe bình thường. (Morning Consult)

3. 51% cơng dân Hoa Kỳ quan tâm đến luật để đảm bảo xe tự lái được an tồn. (Hiệp

hội ơ tơ Hoa Kỳ )

4. 49% công dân Hoa Kỳ muốn biết họ sẽ dễ bị tin tặc tấn công như thế nào. (Hiệp hội

ô tô Hoa Kỳ)

5. 72% người trưởng thành ở Mỹ sẽ cảm thấy an toàn hơn khi ngồi trên xe tự lái nếu họ

có khả năng kiểm sốt nếu có sự cố. (Hiệp hội ơ tơ Hoa Kỳ)

6. 57% cơng dân Mỹ nói rằng họ muốn hiểu rõ ai sẽ là người chịu trách nhiệm pháp lý

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo xe tự hành (Trang 53)

Tải bản đầy đủ (PDF)

(84 trang)