Xác định biên

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 45 - 48)

38

Cạnh A nằm trên giá trị maxVal, do đó được coi là đường biên. Mặc dù cạnh C là dưới maxVal, nhưng nó được kết nối với cạnh A, do đó cũng được coi đường biên hợp lệ và chúng ta có được đường cong đầy đủ đó. Nhưng cạnh B, mặc dù nó ở trên minVal và nằm trong cùng một vùng với cạnh của C, nó khơng được kết nối với bất kỳ đường biên nào trên giá trị maxval nên khơng phải cạnh cạnh do đó nó bị loại bỏ.

Lấp đầy biên: Là q trình lấp đầy các đường biên kín, khơng bị gián đoạn hay

đứt khúc, để tạo ra được ảnh nhị phân có giá trị 0 và 1. Mức 1 là giá trị của hình dạng lấp đầy biên, và bên ngồn biên được coi là giá trị 0.

❖ Nhận diệ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. Từ đó xuất tín hiệu điều khiển nếu xảy ra các trường hợp sau:

- Đường phân cách bên phải giao với đường bao dưới cùng của ảnh (lệch phải). Xuất tín hiệu điều khiển rẽ trái.

- Đường phân cách bên trái giao với đường bao phía dưới cùng của ảnh (lệch trái). Xuất tín hiệu điều khiển rẽ trái.

- Khơng có Đường phân cách nào giao với đường bao dưới cùng của ảnh. Không xuất tin hiệu rẽ.

39

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 (L298N) để điều khiển xe đánh lái và tiếp tục di chuyển.

3.2. 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 1999 và hoàn thiện thành phiên bản 1.0 năm 2006. Thư viện OpenCV – gồm khoảng 500 hàm – được viết bằng ngơn ngữ lập trình C và tương thích với các hệ điều hành Windows, Linux, Mac OS,… đóng vai trị xác lập chuẩn giao tiếp, dữ liệu, thuật toán cho lĩnh vực 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 OpenCV khơng có một cơng cụ chuẩn nào cho lĩnh vực xử lý ảnh. Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thông nhất và không ổn định. Các bộ công cụ thương mại như Matlab, Simulink, Halcon,… lại có giá cao chỉ thích hợp cho các cơng ty phát triển các ứng dụng lớn. Ngồi ra cịn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mã đóng và được thiết kế riêng cho từng thiết bị, rất 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à công cụ chuyên dụng: Được Intel phát triển theo hướng tối ưu hóa cho các ứng dụng xử lý và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao

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à công cụ mã nguồn mở: Không chỉ là cơng cụ miễn phí (với BSD license), việc được xây dựng trên mã nguồn mở giúp OpenCV trở thành cơng cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mơ hình, thuật tốn.

OpenCV đã được sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV đã thu hút được một lượng lớn người dùng, trong đó có các cơng ty lớn như Microsoft, IBM, Sony, Siemens, Google và các nhóm nghiên cứu ở Standford, MIT, CMU, Cambridge,… Nhiều forum hỗ trợ và cộng đồng người dùng đã được thành lập, tạo nên kênh thông tin rộng lớn hữu ích cho việc tham khảo tra cứu.

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 45 - 48)

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

(84 trang)