Tải bản đầy đủ - 0 (trang)
Chương 4 CHƯƠNG TRÌNH ĐIỀU KHIỂN

Chương 4 CHƯƠNG TRÌNH ĐIỀU KHIỂN

Tải bản đầy đủ - 0trang

Mô hình cụ thể:

MATLAB

Thu nhận ảnh

(Webcam )



Tiền xử lý và phân đoạn ảnh

Biểu diễn và mô tả ảnh

Nhận dạng và giải thích

Xuất tín hiệu điều khiển

(Chuẩn RS232)

Hình 4.2: Mơ hình cụ thể.

4.2. Chọn và thiết lập camera.

Đây là bước rất quan trong bởi nó có ảnh hưởng rất lớn đến độ chính xác

trong q trình xử lý đối với các đề tài ứng dụng xử lý ảnh. Bước này đề cập đến

việc thiết lập vị trí ghi hình. Độ phân giải của camera, tốc độ ghi hình.

Camera được sử dụng trong đề tài này là Logitech webcam 905. Có các

thơng số:

 Độ phân giải: 2MP (up to 8MP).

 Kích thước khung hình tối đa là: 1600x1200 pixels, ảnh RGB.

 Giao tiếp máy tính: USB.

Khí gắn thiết bị vào máy tính, kiểm tra các thông số của webcam thông qua

cú pháp:

>> imaqhwinfo('winvideo',2)

ans =

DefaultFormat: 'RGB24_640x480'

DeviceFileSupported: 0

DeviceName: 'Logitech Webcam 905'



62



DeviceID: 2

VideoInputConstructor: 'videoinput('winvideo', 2)'

VideoDeviceConstructor: 'imaq.VideoDevice('winvideo', 2)'

SupportedFormats: {1x46 cell}



Trong các thơng số trên thì thơng số DefaultFormat có thể thay đổi được.

Kích thước khung hình thu thập từ thiết bị này nằm trong khoảng từ 160x90 cho

đến 1600x1200.

Luận văn này chọn thông số mặc định là ‘RGB24_640x480’. Tốc độ ghi

hình là 30fps.

4.3. Mơ hình đường và phạm vi quan sát.

Trong bài toán xác định làn đường, việc xác định mơ hình đường có ảnh

hưởng rất lớn đến độ chính xác của việc xử lý. Chọn mơ hình đường phụ thuộc

phần lớn vào việc sử dụng phương pháp nhận dạng.

Trong đề tài này chỉ tập trung vào tìm hiểu hướng tiếp cận dựa trên tín hiệu

hình ảnh và màu sắc. Nên việc chọn mơ hình đường thẳng hay đường cong không

được được đề cập nhiều. Các đặc trưng được chú ý ở đây là các đặc trưng về cạnh,

về màu sắc của dấu phân cách, về vân đường. Tuy nhiên, để nâng cao việc thực thi

của chương trình, người thực hiện đề tài đã chọn mơ hình đường là đường có độ

cong nằm ở ngưỡng giới hạn.

Phạm vi quan sát được chọn là từ 5 mét đến 30 mét phía trước xe.

4.4. Tiến trình xử lí ảnh.

4.4.1. Xác định dấu phân cách làn đường.

4.4.1.1. Thu thập hình ảnh từ webcam .

Sử dụng hàm imaq.VideoDevice để thu tập hình ảnh từ webcam với cú

pháp :

>> hVideoSrc = imaq.VideoDevice('winvideo',2,'RGB24_640x480', ...

'ROI', [140 240 360 240], ...

'ReturnedColorSpace', 'rgb');



Trong đó vùng quan tâm ROI , với ý nghĩa như Hình 4.3.



63



Hình 4.3: Vùng quan tâm.

Sau đó, dùng lệnh step(hVideoSrc) để trích xuất từng khung hình rồi

tạo vòng lặp xử lý.



Hình 4.4: Ảnh được trích xuất

Code chương trình: Phụ Lục A.

4.4.1.2. Biến đởi ảnh và lọc ảnh.

Nội dung có ý nghĩa để xác định dấu phân cách làn đường trong ảnh là các

vạch kẻ đường. Nên chỉ quan tâm tới phần hình ảnh của vạch kẻ đường. Trên hình



64



4.4, vùng có ý nghĩa chính là phần dưới của khung hình. Vì vậy, cần hạn chế lại

vùng quan sát như hình 4.5



Hình 4.5: Hình giới hạn quan sát.

Dùng hàm vision.ColorSpaceConverter chuyển ảnh RGB sang ảnh

cường độ như hình 4.6.



Dùng



hàm



Hình 4.6: Ảnh cường độ.

vision.ImageFilter để



lọc



ảnh







hàm



vision.Autothresholder để chuyển ảnh xám đã lọc sang ảnh nhị phân như

hình 4.7.



Hình 4.7: Ảnh nhị phân

Code chương trình: Phụ Lục A.

4.4.1.3. Thực hiện biến đổi Hough.

Dùng phương pháp biến đổi Hough xác định đường thẳng trong ảnh bằng

hàm



vision.HoughTransform







vision.HoughLines. Với cú pháp:

hHough = vision.HoughTransform( ...



65



vision.LocalMaximaFinder,



'ThetaRhoOutputPort', true, ...

'OutputDataType', 'single');

hLocalMaxFind = vision.LocalMaximaFinder( ...

'MaximumNumLocalMaxima', ExpLaneNum, ...

'NeighborhoodSize', [301 81], ...

'Threshold', 1, ...

'HoughMatrixInput', true, ...

'IndexDataType', 'uint16');

hHoughLines1 = vision.HoughLines('SineComputation', 'Trigonometric

function');



Code chương trình: Phụ Lục A.

4.4.2. Xác định dấu phân cách trái – phải và chèn đánh dấu làn đường.

Dấu phâ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 phía dưới cùng của ảnh. Chương trình sẽ tính tốn khoảng cách các

từ tâm của khung ảnh tới các dấu phân cách làn đường. Từ đó xuất tín hiệu cảnh báo

nếu một trong các trường hợp sau xảy ra:

-



Dấu phân cách làn đường phía bên phải khung hình giao với đường bao phía



-



dưới cùng của khung hình. Sẽ cho tín hiệu lệch phải.

Dấu phân cách làn đường phía bên trái khung hình giao với đường bao phía



-



dưới cùng của khung hình. Sẽ cho tín hiệu lệch trái.

Khơng có dấu phân cách nào giao với đường bao phía dưới của khung hình.

Sẽ cho tín hiệu đúng làn.



Code của chương trình: Phụ Lục C.

4.4.3. Xuất tín hiệu.

Nếu đi đúng làn đường, chương trình sẽ gửi một tín hiệu kiểu String ‘Center’

tới chân TXD của cổng COM.

Khi lệch tim đường, chương trình sẽ gửi một tín hiệu kiểu String ‘Left’ nếu

lệch trái, ‘Right’ nếu lệch phải tới chân TXD của cổng COM.

Trong phần giao diện, tín hiệu được thể hiện bằng hình ảnh trong khung

Lane, và hiển thị dạng chuổi trong vùng Receiver (RX) nếu chân RX và TX được

nối tắt.



66



Trong quá trình lập trình, người thực hiện đã dùng phần mềm Proteus 8

Professional và Configure Virtual Serial Port Driver để mô phỏng và kiểm tra tín

hiệu xuất ra của cổng COM.



Hình 4.8: Chương trình mơ phỏng Proteus.



Hình 4.9: Chương trình tạo Virtual Serial Port Driver.



67



4.5. Lập trình giao diện.



Hình 4.10: Giao diện người dùng.

4.5.1. Các nút điểu khiển.

4.5.1.1. Nút Start Webcam.

Nút này cho phép người dùng ghi lại hành trình và quan sát hình ảnh thật của

làn đường phía trước xe.

Code lập trình: Phụ Lục D.

4.5.1.2. Nút Detection & Tracking.

Bắt đầu tiến trình xử lý. Hiển thị ảnh kết quả xử lý lên khung Display.

Code lập trình: Phụ Lục E.

4.5.1.3. Nút Stop.

Ngắt q trình xử lý, đồng thời xố các kết quả đã hiển thị trên giao diện.

Code lập trình: Phụ Lúc F.

4.5.1.4. Nút Exit.

Thốt chương trình. Đóng giao diện.

Code lập trình: Phụ Lục G.

4.5.1.5. Nút Connect.

Kết nối cổng COM.



68



Code lập trình: Phụ Lục H.

4.5.1.6. Nút send

Dùng để thử tín hiệu cơng COM khi nhập dữ liệu vào ô số (1) trong hình



(1)



Hình 4.11: Giao diện.

Code lập trình: Phụ Lục I.



69



Chương 5



THỰC NGHIỆM VÀ ĐÁNH GIÁ

5.1. Dữ liệu thực nghiệm.

5.1.1. Địa điểm thực nghiệm.

Toàn bộ dữ liệu thực nghiệm của đề tài được thực hiện trên nhiều đoạn

đường, nhưng cho kết quả tốt nhất là khi thực nghiệm trên các đoạn đường vắng xe

(Đường Phạm Văn Đồng, Quận Thủ Đức, Thành phố Hồ Chí Minh).

5.1.2. Về tốc độ xử lí.

Chương trình thực thi của đề tài này được thử nghiệm trên máy tính có cấu

hình như sau:

Bộ vi xử lý:



Intel Core 2 Duo CPU T5800 @ 2.00GHz



RAM :



2.00 GB



HDD :



120 GB



Hệ điều hành :



Windows 8.1 Pro (32 bit)



Ngơn ngữ lập trình được sử dụng là Matlab với các bộ cơng cụ chính là

Computer Vision System, Image Acquistion System và Image Processing System.

Độ phân giải của camera ghi hình là 640x480, tốc độ ghi là 30fps.

5.1.3. Thời gian thử nghiệm.



Ban ngày

Ban đêm

Trời mưa



Thời lượng

10 phút

10 phút

5 phút



70



Ghi chú

Hình ảnh rõ nét



5.2. Các hình ảnh chạy thử nghiệm chương trình.



Hình 5.1: Vị trí khi đi đúng làn đường



Hình 5.2: Lệch trái.



71



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chương 4 CHƯƠNG TRÌNH ĐIỀU KHIỂN

Tải bản đầy đủ ngay(0 tr)

×