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

Mô hình xe thông minh

52 640 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

Định dạng
Số trang 52
Dung lượng 856,6 KB

Nội dung

MATLAB cung cấp cho người sửdụng các phương thức để thực hiện các mô phỏng trên máy tính, ngoài raMATLAB còn có thể giao tiếp với Vi Xử Lý, PLC,...cùng với các thiết bị phàncứng để thực

Trang 1

TÓM TẮT NỘI DUNG ĐÒ ÁN

1 NỘI DUNG

> Dùng Matlab nhận dạng trạng thái đèn giao thông là màu gì Đổ nhận biết được màu sắc của đèn giao thông càn trải qua 2 bước:

Bước 1: Tách biên dạng hình tròn của đèn giao thông

Bước 2: Nhận dạng màu sắc của đèn giao thông trong biên hìnhtròn đó

> Từ Matlab xuất tín hiệu ra Vi Xử Lý (thông qua cổng COM) để điều khiển xe

s Xuất được tín hiệu từ Matlab ra cổng COM để điều khiển Vi Xử Lý

rồi từ Vi Xử Lý điều khiển xe (đèn xanh xe chạy, đèn đỏ xe dừng)

3 HAN CHẾ

Xe chạy được khoảng cách không xa chỉ khoảng 4m

Trang 1

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Ngày tháng năm

Giáo viên hướng dẫn

Ký tên

Trang 3

NHẬN XÉT CỦA HỘI ĐỒNG GIÁM KHẢO

Ngày tháng năm

Hội đồng

Ký tên

Trang 4

LỜI CẢM ƠN

Chúng em xin chân thành cảm ơn tất cả các thày cô trường Đại Học CôngNghiệp TP Hồ Chí Minh đã dạy dỗ, chỉ bảo chúng em trong suốt thời gian qua.Chúng em xin chân thành cảm ơn thầy Trần Văn Trinh đã tận tình hướngdẫn chúng em trong thời gian làm Đồ Án 2B

Chúng tôi xin cảm ơn tất cả bạn bè đã giúp đỡ và cùng chúng tôi nghiêncứu học tập

Nhóm sinh viên thực hiện:

Lê Văn Hoan Nguyễn Thành Luân

Trang 5

MỤC LỤC

1.1.1

Trang 6

Đồ Án 2B Mô Hình Xe Thông Minh

Trang 6

Trang 8

LỜI MỞ ĐẦU

Hiện nay đất nước ta đang chuyển mình theo sự phát triển chung của thếgiới bằng việc Việt Nam đã gia nhập tổ chức kinh tế thế giới WTO Đây là mộtbước ngoặt quan trọng nhằm thúc đẩy nền kinh tế nước ta phát triển sánh vai vớicác cường quốc năm châu.Với tốc độ phát triển như hiện nay chúng ta không chỉcàn một lượng lao động khổng lồ mà còn đòi hỏi có trình độ, chất lượng taynghề, kỹ thuật lao động và thiết bị sản xuất Mức độ phát triển của khoa học kỹthuật ngày càng cao thì vấn đề tự động hoá ngày càng được chú trọng

Những năm gần đây MATLAB và các Toolbox kèm theo đã trở thành công

cụ không thể thiếu của các cán bộ nghiên cứu giảng dạy, sinh viên đại học, caohọc và nghiên cứu sinh thuộc các ngành khoa học kỹ thuật nước ta Điều này cóđược là do MATLAB cung cấp một công cụ tính toán và lập trình bậc cao dễ sửdụng hiệu quả và thân thiện với người dùng MATLAB cung cấp cho người sửdụng các phương thức để thực hiện các mô phỏng trên máy tính, ngoài raMATLAB còn có thể giao tiếp với Vi Xử Lý, PLC, cùng với các thiết bị phàncứng để thực hiện các ứng dụng vào thực tế Vì vậy trong phạm vi hiểu biết của

mình, chúng em đã tìm hiểu và thực hiện đề tài “Mô hình xe thông minh” Đây

là sự kết họp giữa MATLAB và Vi Xử Lý để điều khiển xe không người lái (xethông minh)

Trong quá trình thực hiện Đồ Án 2B cùng với sự nỗ lực của bản thân và ápdụng những kiến thức được trang bị ở trường, chúng em đã có nhiều cố gắng đểthực hiện tốt Đồ Án Tuy nhiên do kiến thức và khả năng còn có hạn nên khótránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và đónggóp ý kiến của các thày cô trong hội đồng giám khảo để Đồ Án của chúng emđược hoàn chỉnh hơn Xin chân thành cảm ơn

TP Hồ Chí Minh, ngày 03 tháng 11 năm 2010

Nhóm sinh viên thực hiện:

Lê Văn Hoan Nguyễn Thành Luân

Trang 8

Trang 10

CHƯƠNG I

THUÂT TOÁN TÁCH BIÊN VÀ NHÂN DANG

MAU

1 GIỚI THIỆU VỀ CẤC Bộ TÁCH BIÊN

1.1 Cơ sở của vỉêc tách bỉên

Biên là tập hợp những pỉxel (nằm trên đường hiên giới giữa 2 vùng) liên kết với nhau Một biên lý tưởng có cácthuộc tính của mô hình ở hình 1.1

Hình 1.1: Mô hình biên ỉỷ tưởng

Tuy nhiên trong thực tế các yếu tố như là chất lượng của hệ thống thu nhện hình ảnh, tốc độ lấy mẫu, điều kiệnchiếu sáng của mỗi bức ảnh, ảnh hưởng đến chất lượng của hình ảnh Vì vậy kết quả là biên gỉếng với một đoạn dốc đượcthể hiện trong hình 1.2

Trang 10

Trang 11

Hình 1.2: Mô hình biên trong thực tế

Vì vậy chúng ta không bao giờ có một đường biên mảnh (có độ dày một pixel) Thay vào đó, một điểm biên bâygiờ là một điểm bất kì chứa trong đoạn dốc và biên là tập hợp những điểm liên thông Độ dày của đường biên được xácđịnh bởi chiều dài của đoạn dốc, khi biên biến đổi từ đầu đến cuối mức xám

Hình 1.3: Mô hình miêu tả độ dày của biên H ÌNH 1.4 CHO THẤY ĐẠO HÀM BẬC 1 CỦA BIÊN

Gray-k vtl Ịirọfdc

MÍ 1 hnn/imial !inc ihrtmiỉhí lhtf iiTi.iịíc

Trang 11

Trang 12

Hình 1.4: Mô hình miêu tả đạo hàm bậc 1 của biên

Từ hình vẽ ta thấy đạo hầm bậc 1 có giá trị 1 tại nơi biên được tách và gỉá trị 0 tại nod biên không được tách Vìvậy độ lớn của đạo hàm bậc 1 có thể được sử dụng để phát hiện ra dấư hiệu của một biên tại một điểm trong hình (nghĩa làxác định điểm đó có nằm trên dốc không)

1.2 Bộ tách bỉên Sobel

Bộ tách biên Sobel sử dụng mặt lạ Sobel để tính các đạo hàm bậc nhất Gx và Gy, nói cách khác đạo hàm tại điểmtâm trong một lân cận được tính theo bộ tách Sữbel

g=[<! +(Ệ 2 =ị[ị, +2% +z 9 )-(z i +2zj +Zj)f +fe +2z6+z 9 )-(z ì +2z„ +z7)f}1/2

Khi đó vị trí (x,y) là pixel biên nếu g > T, trong đó T là một ngưỡng được chỉ định

Ví dụ: bw = edge (f, ‘sober, 10); % T = 10 imshow(bw);

Trang 12

Trang 14

[g, t] = edge (f, ‘sober, T, dừ) Trong đó:

1 1 0 1 1 1

Ta tínhđược: |Gxi| = |3 -4| = 1; |Gyi| = |3 -2| = 1

Mặt lạ Sobel: ỊGtíl = 2; \Gyz\ = 12 Khi

A =

Trang 15

♦ Tách biên là phương pháp gián đoạn các giá trị cường độ Sự giánđoạn được tính bằng cách sử dụng đạo hàm bậc nhất Đạo hàm bậc nhất lựa chọntrong xử lý ảnh là gradient (độ doc) Gradient của hàm 2-D f(x,y) được địnhnghĩa dưới dạng vector

Biên độ của vector này:

Trang 16

đôi lớn nhât là: a(x,y) = tan

♦ Điểm biên được xác định tăng lên đến các đỉnh trong gradient biên

độ ảnh Sau thuật toán tìm đỉnh của các đỉnh này và đặt giá trị 0 vào tất cả cácpixel không nằm trên đỉnh Các pixel đỉnh được đặt bằng hai ngưỡng TI và T2.Các pixel đỉnh lớn hơn T2 được gọi là các pixel biên “mạnh” Các pixel đỉnh nằmgiữa TI và T2 được gọi là các pixel biên “yếu”

♦ Cuối cùng thuật toán thực hiện biên kết nối bằng cách kết họp cácpixel “yếu” với các pixel mạnh

Cú pháp của bộ tách biên Canny là:

[g, t] = edge (f, ‘canny’, T, sigma)Trong đó: f là ảnh đưa vào để tách biên T là một vector, T =

[TI T2] sigma là độ lệch chuẩn có giá trị mặc định là 1 g là ảnh sau khi tách biên

1.4 Bô tách biên Prewitt

Bộ tách biên Prewitt sử dụng mặt nạ Prewitt như hình bên dưới xấp xỉ phương pháp số theo đạo hàm bậc nhất Gx, Gy

Trang 17

Bộ tách biên Roberts sử dụng mặt nạ Roberts như hình bên dưới xấp xỉ

phương pháp số theo đạo hàm bậc nhất G x , Gy.

Cú pháp gọi hàm:

[g, t] = edge (f, ‘roberts’, T, dir)Tham số này đồng nhất với tham số Sobel Bộ tách Roberts là một trongnhững bộ tách biên xưa nhất trong xử lý ảnh số và cũng là bộ tách biên đơn giảnnhất

1.6 Bệ tách biên Laplace của hàm Gauss (LoG)

Trang 18

Với những lý do rõ ràng, hàm này gọi là toán tử Laplace của hàm Gauss(LoG) Vì đạo hảm bậc hai là toán tử tuyến tính chập với một hàm

ảnh v 2 h(r) giống như chập với hàm tron và sau đó tính kết quả của toán tửLaplace Đây là chìa khoá khái niệm cơ bản của bộ tách LoG Chúng ta chập ảnhbằng V2Ă(r) biết nó có hai tác động: làm mịn (giảm nhiễu) và nó tính toán toán tửLaplace, làm cong một biên ảnh kép, định vị các biên sau đó tìm các điểm giaozero giữa các biên kép Cú pháp tồng quát là:

[g , t ] = edge(f, Tog\ T, sigma)Trong đó: sigma là độ lệch chuẩn, giá trị mặc định của sigma là 2, cáctham số còn lại giống phần trước Những biên không lớn hom T ta bò qua Neu Tkhông được cho hoặc rỗng, edge chọn giá trị một cách tự động

2 PHƯƠNG PHÁP NHẬN DẠNG MÀU

Là phương pháp diễn giải các đặc tính và tác động của màu trong ngữcảnh nhất định Không có mô hình màu nào là đầy đủ cho mọi khía cạnh củamàu, người ta sử dụng các mô hỉnh màu khác nhau để mô tả các tính chất đượcnhận biết khác nhau của màu

Thí dụ:

+ Mô hình màu RGB: ánh sáng Red, Green và Blue ứng dụng cho màn hình, TV

+ Mô hình HSV: Nhận thức của con người

+ Mô hình CYK: Máy in

Trang 19

Màu = <xR + ßG + xB Thông thường người ta sử dụng công thức

màu = 0.299R + 0.587G + 0.114B

2.2 Mô hình màu CMY

- Gồm 3 thành phần màu cơ bản cyan, magenta, yellow Là bù mầu củakhông gian GRB

Mối quan hệ giữa 2 không gian: màu ban đầu + màu bổ túc =>trắng

Magenta \ Bỉưe y Cyan Additive

2.3 Mô hình màu CMYK

Là sự mở rộng mô hình màu CMK bằng cách thêm vào thành phần màuBlack (K) Bởi vì với thành phần màu Black tinh khiết sẽ cho ta độ tương phảncao hơn

Mối quan hệ CMY và CMYK

K = min(C, M, Y)

M = M-K

BỈUÍ Black

Trang 20

Y = Y - K

2.4 MÔ hình màu HSY

• Thay vì chọn các phần tử RGB để có màu mong muốn, người ta chọncác tham số màu: Hue, Saturation và Value (HSV)

• Mô hỉnh HSV suy diễn từ mô hình RGB: hãy quan sát hỉnh hộp RGBtheo đường chéo từ White đến Black (gốc) -> ta có hình lục giác, sử dụng làmđỉnh hình nón HSV

• Hue: Bước sóng gốc của ánh sáng Trong mô hình Hue được biểu diễn

Mô hình HSV trực giác hơn mô hình RGB Bắt đầu từ Hue (H cho trước

và v=l, s=l) thay đồi S: Bổ sung hay bớt trắng, thay đổi V: Bổ sung hay bớt đencho đến khỉ có màu mong muốn

2.5 Các kỹ thuật táỉ hiện ảnh

- Kỹ thuật tái hiện ảnh được dùng khi ta cần hiển thị lại ảnh trên một sốthiết bị v$t lý không có khả năng hiện lại hết các mức xám có thật của ảnh số:màn hình đơn sắc, máy ỉn, máy vẽ

* Kỹ thuật phân ngưỡng (Thresholding)

Kỹ thuật này đặt ngưỡng để hiển thị cấc tông màu liên tục Gỉấ trị củangưỡng sẽ quyết định điểm cổ được hiển thị hay không, và hiển thị như thế nào

□ Tái hiện 2 màu: dùng cho ảnh 256 mức xám, bản chất của phươngpháp này là ngưỡng dựa vào lược đồ xám Ngưỡng chọn ở đây là 127

D

Trang 21

Cho ảnh số S(M,N), khi đó

1255 s(/n,fí) < 127 Cho ánh sả S(M,N) khi đó s(m,n) = \

□ Tái hiện 4 màu: Với qui định cách hiện 4 màu như sau:

Máu Màn hình đơn sắc Màn hình máu

Kỹ thuật này sử dụng một ma trận mẫu gọi là ma trận Dither

- Mỗi phần tử của ảnh gốc sẽ được so sánh với phần tử tương ứng của

ma hận Dither Neu lớn hơn, phàn tử ở đàu ra sẽ sáng và ngược lại

Từ » gõ guide, cửa sổ GUIDE Quick Start xuất hiện:

Trang 22

Có thể chọn các mẫu gỉao diện thiết kế sẵn hay nhấn OK để chọnGUI trống Sau đây là cửa sổ biên soạn GUI:

Trang 23

Vùng bên trái chứa danh sách thành phần của đối tượng, vùng có ô lưới là vùng hiển thị - nơi đặt các component,bấm chuột trái vào component muốn tạo, sau đó đưa chuột ra vùng layout nod muốn đặt component, bấm chuột trái dùng

kỹ thuật kéo chuột để chọn kích thước component

Các component mà GUI cho phép là:

* Axes: vẽ hệ trục

* Check box: là hộp kiểm tra cho phép đưa vào các chọn lựa khi bấm chuột vào đó

* Edit Text: là hộp văn bản đưa chuỗi ký tự vào đó

* Frame: khung bao một vùng cửa sổ hình

* List box: gồm một vãn bản các mục để chọn lựa

* Pop-up menu: menu sổ xuống trình bày một bảng các chọn lựa khỉ nhấp chuột vào đó

* Push button (nút nhấn): phát sinh một hành động nào đó khỉ nhấp chuột

* Radio button: tương tự như Check box nhưng chỉ chọn một

* Slider (con trượt): dùng để đưa giá trị vào trong một tầm giới

hạn

* Static Text: dòng văn bản dùng để đặt nhãn, tiêu đề, hướng dẫn

* Toggle button (nút bật): giống push button nhưng có hiển thị trạng thái thay đổỉ mỗi khỉ nhấn

* Popup Menu: tạo menu

Trang 24

Bấm kép chuột vào component trong vùng layout để soạn tính chất của component, ví dụ bấm kép chuột vào Pushbutton sẽ hiện ra cửa sổ Property Inspector như sau:

Cửa sổ Property Inspector có rất nhiều thuộc tính, sau đây là các thuộc tính cơ bản nhất:

• Tag: Tên mà ta gắn cho component, ví dụ pushbutton-start

• BackgroundColor: Màu nền của component

• ForegroundColor: Mảu chữ trên component

• FontName, FontAngle, FontSize, FontWeight: Các đặc tính của font chữ trên component

❖ String: Văn bản hiển thị trên component Trong trường họp muốn sử dụng font tiếng Việt ví dụ như Times ta có thể chọn FontName phù họp, nhưng thường không thể đánh trực tiếp ký tự có dấu, ta có thể soạn văn bản tiếngViệt trong Word sau đó copy và paste vào string trong Property Inspector, lúc đó các ký tự tiếng Việt sẽ hiện ra không đúngtrên layout editor nhưng khi chạy chương trình thì sẽ hiển thị đúng

VNI-❖ Enable: Cho phép component hoạt động hay không

❖ Visible: Hiển thị component hay không

Quan trọng nhất đối với các component là callback tức là các hàm con mà file m sẽ gọi khi tác động vàocomponent, ví dụ khi bấm chuột vào pushbutton, togglebutton, di chuyển con trượt của slider hay khi viết văn bản vàoEditText rồi bam Enter

Soạn thảo các callback: ở cửa sổ soạn thảo layout editor nhấp chuột phải vào component muốn soạn thảo sau đóchọn View Callbacks -> callback ta sẽ vào màn hình soạn thảo callback cho component đó (Lưu ý rằng các dòng lệnh sẽ

được viết sau dòng “function tên component Callback (hobject, eventdata, handles) ”)

Trang 25

Sau khi soạn thảo hoàn tất và lưu, MATLAB sẽ lưu hai file có cùng tên nhưng khác nhau về phàn mở rộng:

File có phàn mở rộng fig chứa nội dung của giao diện

File có phàn mở rộng m chứa những đoạn mã liên quan đếngiao diện

2 TOOLBOX BẮT ẢNH (Image Acquisition Toolbox)

2.1 Nhiêm vu của Toolbox

❖ Trình chiếu (preview) luồng dữ liệu video từ thiết bị thu hình

❖ Trích hình ảnh từ luồng dữ liệu video

❖ Thiết lập các callback cho các sự kiện khác nhau

❖ Chuyển dữ liệu hình ảnh vào không gian workspace của MATLAB để xử lý ảnh tiếp theo

2.2 Các bước thu thập hình ảnh CO’ bản với Toolbox

Bước 1: Gắn thiết bị thu hình vào máy tính và cài đặt driver điều khiển

> Gắn thiết bị thu hình vào máy tính

> Cài đặt driver (trình điều khiển) cho thiết bị (được cho bởi nhà

sản xuất)

> Xem thử hình ảnh video hiện trên máy tính thông qua phần mềm của nhà sản xuất

> Khởi động MATLAB Bước 2: Chỉ định thông tin phần cứng:

> Ta càn chỉ định cho MATLAB biết phần cứng nào dùng để lấy dữ liệu (vì có thể có nhiều camera kết nối với PC)

Gõ lệnh imaqhwinfo để biết tên các loại thiết bị có thể dùng

‘coreco’ Thiết bị của công ty coreco

‘DCAM’ Các thiết bị dùng chuẩn IEEE 1394

‘dt’ Các thiết bị của Data Translation

‘Matrox’ Các thiết bị của hãng Matrox

‘winvideo’

Các thiết bị dùng chuẩn Windows Driver Model (WDM) hoặcVideo for Windows (VFW) Bao gồm các loại USB WEBCAM

và camera IEEE 1394

Trang 26

Chỉ định thiết bị: Tuỳ vào loại thiết bị (adaptor name), mỗi thiết bị cùng loại gắn vào PC được đánh so ID, thiết bị

thứ nhất có devicelD = 1, thiết bị thứ hai có devicelD = 2,

Để liệt kê xem loại winvideo có bao nhiêu thiết bị gắn vào máy, ta cũng dùng lệnh imaqhwinfor với đối số làwinvideo

Có một thiết bị với DevicelD là 1 Ta có thể tìm hiểu thêm thông tin về thiết bị này

SupportedFormats: {1x14 cell}

Đây là Webcam đã gắn vào máy để làm đề tài này

Bước 3: Tạo đối tượng đại diện cho luồng dữ liệu video Để tạo luồng dữ liệu video ta dùng lệnh

videoinput

Ví dụ:

»vid = videoinput(‘winvideo’,l)

Summary of Video Input Object Using ‘USB PC Camera-168’ Acquisition Source(s): inputl is available

Acquisition Parameters: ‘inputl ’ is the current selected source

10 frames per trigger using the selected source ‘RGB24_320x240’ video data to be logged upon START Grabbing first of every 1 frame(s)

Log data to ‘memory’ on trigger

Trigger Parameters: 1 ‘immediate’ triggers) on START

Status: Waiting for START

0 frames acquired since starting

0 frames available for GETDATA

Bước 4: Hiển thị luồng video trên màn hình để xem thử

Trang 27

Đẻ xem trước luồng dữ liệu video ta dùng lệnh preview.

Ví dụ: preview(vid)

Màn hình lúc này hiện lên cửa sổ video của đối tượng vid

Để kết thúc xem ta dùng lệnh stoppreview hoặc để đóng cửa sổ preview ta dùng lệnh closepreview(vid)

Bước 5: Lấy một khung ảnh và lưu thành file đồ hoạ.

Để lấy một ảnh vào xử lý ta dùng lệnh getsnapshot

Đe lưu ảnh thành file đồ hoạ ta dùng lệnh im write

3 TOOLBOX XỬ LÝ ẢNH (Image Processing Toolbox)

Có nhiều loại file ảnh như:

* BMP (Microsoft Windows Bitmap)

* HDF (Hierarchical Data Format)

* ICO (Windows Icon Resources)

* JPG, JPEG (Joint Photographic Experts Group)

* PCX (Paintbrush)

* PNG (Portable Network Graphics)

* TIFF (Tagged Image File Format)

* XWD (X Window Dump)

Ngày đăng: 24/05/2016, 02:50

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w