luận văn Đề tài: camera dùng mạng nơtron trong matlab giao...

89
GVHD : Nguy n T n Lũy Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao tiếp Plc SVTH: :  Bùi Văn D ng ươ trang  1

Upload: others

Post on 15-Sep-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Luận văn

Đề tài: Camera dùng mạng Nơtron trong matlab giao tiếp

Plc

SVTH: :  Bùi Văn D ngươ trang  1

Page 2: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

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

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

SVTH: :  Bùi Văn D ngươ trang  2

Page 3: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

Tp.Hồ Chí Minh. Ngày ….. Tháng …… Năm 2013

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

Nguyễn Tấn Lũy

SVTH: :  Bùi Văn D ngươ trang  3

Page 4: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

LỜI NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

SVTH: :  Bùi Văn D ngươ trang  4

Page 5: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

……………………………………………………………………………………………….………………………………………………………………

……………………………………………………………………………………………….………………………………………………………………

Tp.Hồ Chí Minh. Ngày ….. Tháng …… Năm 2013

Giáo viên phản biện

SVTH: :  Bùi Văn D ngươ trang  5

Page 6: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Lời Cảm Ơn

Chúng em xin gửi lời cảm ơn chân thành tới Ban Giám Hiệu và các thầy cô trường ĐH Công Nghiệp TP. Hồ Chí Minh đã tận tình giảng dạy chúng em trong thời gian qua.

Trong quá trình thực hiện đồ án môn học, chúng em xin chân thành cảm ơn GVHD Thầy Nguyễn Tấn Lũy đã tận tình giúp đỡ tạo điều kiện cho chúng em xây dựng và phát triển đề tài, các thầy cô trong khoa, ban quản lý thư viện trường cùng các bạn trong và ngoài lớp đã trao đổi, góp ý, giúp đỡ chúng em hoàn thành đồ án môn học.

SVTH: :  Bùi Văn D ngươ trang  6

Page 7: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Mục Lục

Chương 1 giới thiêu...................................................................................................6

Chương 2 nội dung......................................................................................................7

I lý thuyet co ban..........................................................................................................7

1 mạng noron ...............................................................................................................7

1.1 câu trúc và mô hình mạng noron ...........................................................................7

1.2 câu tạo và Phuong thưc làm việc của mạng noron...............................................11

1.3 các luật học...........................................................................................................20

1.4 Thuật toán lan truyền ngược ...............................................................................24

1.5 Kết luận ...............................................................................................................32

2 xử lý ảnh trong matlab.........................................................................................33

2.1 một số lẹnh cơ bản trong xử lý ảnh......................................................................34

2.2 Các bước thu thập ảnh cỏ bản.............................................................................38

2.3 Tao giao diện gui.................................................................................................41

3 kết nối matlab và PLC.........................................................................................46

3.1 tạo kết nối với PC Access....................................................................................46

3.2 các bước tạo kết nôi OPC....................................................................................48

II Thiết kế và thi công mô hình..................................................................................53

1 Phần Cứng……………………………………………………………….……………..53

2 Nguyên Lý Hoạt Động…………………………………………………………….54

SVTH: :  Bùi Văn D ngươ trang  7

Page 8: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

3 Sơ đồ khối................................................................................................................55

3.1 khối camera...........................................................................................................56

3.2Khối cảm biến........................................................................................................56

3.3 Khối máy tính.......................................................................................................57

4 Học và huấn luyện mạng Noron..............................................................................57

4.1 Ma trận dữ liệu......................................................................................................57

4.2 Tạo ma trận dữ liệu ra...........................................................................................59

4.3 tao mạng noron qua công cu network nẻual........................................................60

5 Phần mềm................................................................................................................66

5.1 Lưu đồ chương trình chính...................................................................................66

5.2 Lưu đồ xử lý ảnh...................................................................................................67

III Thực nghiệm.........................................................................................................69

1 Thiết lập thực nghiệm........................................................................................69

2 kết quả...................................................................................................................69

3 đánh giá....................................................................................................................69

IV kết luận và hướng phát triển .................................................................................70

1 kết luân..................................................................................................................70

2 hướng phát triên.......................................................................................................70

Phụ lục........................................................................................................................71

SVTH: :  Bùi Văn D ngươ trang  8

Page 9: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

CHƯƠNG 1 . GIỚI THIỆU

Thời đại tự động hóa và số hóa đang đóng một vai trò thiết yếu trong tất cả các ngành trên mọi lĩnh vực và đời sống. mọi công việc tự động hóa dựa trên số hóa và xử lý hình ảnh đang thực sự làm giảm bớt đi công sức và tiền bạc cho xã hội. làm đẩy nhanh tốc độ xử lý công việc, mang lại nhiều thuận lợi về thời gian trong sản xuất và đời sống, cuộc sống trở nên tiện ích và hiện đại hơn

Là một sinh viên của ngành tự động nắm được ý nghĩa trên em đã quyết định chọn đề tài “ Nhận dạng hình dáng sản phẩm dùng xử lý ảnh và mạng noural nhân tạo”, dựa trên nên tảng của mô hình “SMC automatic 200” đã được làm đồ án trước đó, đề tài này là một hướng phát triển ,nó đã trở nên ưu việt và hiệu quả hơn rất nhiều so với đề tài trước đó.

Đề tài thực sự hữu ích cho những ai học ngành tự động vì nó đòi hỏi người làm phải kiên trì , tìm hiểu và nghiên cứu rất nhiều. nó đã cho em hiểu nhiều về matlab, về xử lý ảnh và đặc biệt là hiểu về mạng neural còn khá mới mẽ, nhưng cũng đã được ứng dụng rất nhiều trong thực tế.

Tuy đã hết sức cố gắng để hoàn thành đề tài. Tuy nhiên không thể tránh khỏi những thiếu xót và khiếm khuyết rất mong được quý thầy cô và các bạn góp ý để em có thể ngày càng hoàn thiện hơn

SVTH: :  Bùi Văn D ngươ trang  9

Page 10: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

CHƯƠNG 2. NỘI DUNG

I LÝ THUYẾT CƠ BẢN

1. Mạng Noron

1.1 Cấu Trúc Và Mô Hình Mạng Nơron

1.1.1 Mô hình một nơron sinh học

Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tử

này có thể chia làm bốn thành phần cơ bản như sau: dendrites, soma, axon, và

synapses.

- Dendrites: là phần nhận tín hiệu đầu vào.

- Soma: là hạt nhân.

- Axon: là phần dẫn ra tín hiệu xử lý.

- Synapses: là đường tín hiệu điện hóa giao tiếp giữa các nơron.

Kiến trúc cơ sở này của bộ não con người có một vài đặc tính chung. Một

cách tổng quát, thì một nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết

hợp chúng tại với nhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối

cùng ở đầu ra. Hình 1.1 chỉ ra mối quan hệ giữa bốn phần tử của một nơron sinh

học.

Hình 1.1.1 Một nơron sinh học

SVTH: :  Bùi Văn D ngươ trang  10

Page 11: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Một nơron sinh học chỉ có một số chức năng cơ bản như vậy, ta nhận thấy

khả năng xử lý thông tin của nó là rất yếu. Để có được khả năng xử lý thông tin

hoàn hảo như bộ não con người, thì các nơron phải kết hợp và trao đổi thông tin

với nhau. Ta hình dung sơ đồ liên kết, và trao đổi thông tin giữa hai nơron như hình

1.2.

Hình 1.1.2. Sự liên kết các nơron

1.1.2 Cấu trúc và mô hình của một nơron nhân tạo

Mô hình toán học của mạng nơron sinh học được đề xuất bởi McCulloch và

Pitts, thường được gọi là nơron M-P, ngoài ra nó còn được gọi là phần tử xử lý và

được ký hiệu là PE (Processing Element).

Mô hình nơron có m đầu vào x1, x2, ..., xm, và một đầu ra yi như sau:

SVTH: :  Bùi Văn D ngươ trang  11

Page 12: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.1.3 Mô hình một nơron nhân tạo

Giải thích các thành phần cơ bản:

- Tập các đầu vào: Là các tín hiệu vào của nơron, các tín hiệu này thường

được đưa vào dưới dạng một vector m chiều.

- Tập các liên kết (các trọng số): Mỗi liên kết được thể hiện bởi một trọng

số (thường được gọi là trọng số liên kết). Trọng số liên kết giữa tín hiệu

vào thứ j cho nơron i thường được ký hiệu là w ij. Thông thường các trọng

số này được khởi tạo ngẫu nhiên ở thời điểm khởi tạo mạng và được cập

nhật liên tục trong quá trình học mạng.

- Bộ tổng (Hàm tổng): Thường dùng để tính tổng của tích các đầu vào với

trọng số liên kết của nó.

- Ngưỡng: Ngưỡng này thường được đưa vào như một thành phần của hàm

truyền.

- Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi nơron.

Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho. Thông

thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1]

hoặc [-1,1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính

SVTH: :  Bùi Văn D ngươ trang  12

Page 13: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

hoặc phi tuyến. Việc lựa chọn hàm truyền tùy thuộc vào từng bài toán và

kinh nghiệm của người thiết kế mạng.

- Đầu ra: Là tín hiệu đầu ra của một nơron, với mỗi nơron sẽ có tối đa một

đầu ra.

Về mặt toán học, cấu trúc của một nơron i được mô tả bằng cặp biểu thức

sau:

)( iii netfy θ−= và

j

n

jiji xwnet ∑

==

1

trong đó: x1, x2, …xm là các tín hiệu đầu vào, còn wi1, wi2,…,wim là các trọng số

kết nối của nơron thứ i, neti là hàm tổng, f là hàm truyền, iθ là một ngưỡng, yi

là tín hiệu đầu ra của nơron.

Như vậy, tương tự như nơron sinh học, nơron nhân tạo cũng nhận các tín

hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các

tích thu được rồi gửi kết quả đến hàm truyền), và cho một tín hiệu đầu ra (là kết

quả của hàm truyền).

• Hàm truyền có thể có các dạng sau:

- Hàm bước

<≥

=00

01

xkhi

xkhiy

(1.6)

- Hàm giới hạn chặt (hay còn gọi là hàm bước)

<−≥

==01

01)sgn(

xkhi

xkhixy

(1.7)

- Hàm bậc thang

SVTH: :  Bùi Văn D ngươ trang  13

Page 14: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

<≤≤

>==

00

10

11

)sgn(

xkhi

xkhix

xkhi

xy

(1.8)

- Hàm ngưỡng đơn cực

xλ−+=

ey

1

1

với λ>0 (1.9)

- Hàm ngưỡng hai cực

11

2 −+

= − xλey

với λ>0 (1.10)

• Đồ thị các dạng hàm truyền được biểu diễn như sau:

Hình 1.1.4 Đồ thị các dạng hàm truyền

SVTH: :  Bùi Văn D ngươ trang  14

Page 15: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

1.2 Cấu Tạo Và Phương Thức Làm Việc Của Mạng Nơron

Dựa trên những phương pháp xây dựng nơron đã trình bày ở mục trên, ta có thể

hình dung mạng nơron như là một hệ truyền đạt và xử lý tín hiệu. Đặc tính truyền

đạt của nơron phần lớn là đặc tính truyền đạt tĩnh.

Khi liên kết các đầu vào/ra của nhiều nơron với nhau, ta thu được một mạng

nơron, việc ghép nối các nơron trong mạng với nhau có thể là theo một nguyên tắc

bất kỳ. Vì mạng nơron là một hệ truyền đạt và xử lý tín hiệu, nên có thể phân biệt

các loại nơron khác nhau, các nơron có đầu vào nhận thông tin từ môi trường bên

ngoài khác với các nơron có đầu vào được nối với các nơron khác trong mạng,

chúng được phân biệt với nhau qua vector hàm trọng số ở đầu vào w.

Nguyên lý cấu tạo của mạng nơron bao gồm nhiều lớp, mỗi lớp bao gồm nhiều

nơron có cùng chức năng trong mạng. Hình 1.5 là mô hình hoạt động của một

mạng nơron 3 lớp với 8 phần tử nơron. Mạng có ba đầu vào là x1, x2, x3 và hai đầu

ra y1, y2. Các tín hiệu đầu vào được đưa đến 3 nơron đầu vào, 3 nơron này làm

thành lớp đầu vào của mạng. Các nơron trong lớp này được gọi là nơron đầu vào.

Đầu ra của các nơron này được đưa đến đầu vào của 3 nơron tiếp theo, 3 nơron này

không trực tiếp tiếp xúc với môi trường bên ngoài mà làm thành lớp ẩn, hay còn

gọi là lớp trung gian. Các nơron trong lớp này có tên là nơron nội hay nơron ẩn.

Đầu ra của các nơron này được đưa đến 2 nơron đưa tín hiệu ra môi trường bên

ngoài. Các nơron trong lớp đầu ra này được gọi là nơron đầu ra.

SVTH: :  Bùi Văn D ngươ trang  15

Page 16: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.1.5 Mạng nơron ba lớp

Mạng nơron được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau đi từ

đầu vào đến đầu ra. Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào. Một

mạng nơron có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳng

một hướng (Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vì

bất cứ một nơron nào trong mạng cũng được nối với một hoặc vài nơron khác).

Mạng nơron bao gồm một hay nhiều lớp trung gian được gọi là mạng Multilayer

Perceptrons) (MLP-Network).

Mạng nơron khi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽ

được hình thành dần dần sau một quá trình học. Mạng nơron được học bằng cách

đưa vào những kích thích, và mạng hình thành những đáp ứng tương ứng, những

đáp ứng tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ. Giai đoạn này

được gọi là giai đoạn học của mạng. Khi đã hình thành tri thức mạng, mạng có thể

giải quyết các vấn đề một cách đúng đắn. Đó có thể là vấn đề ứng dụng rất khác

nhau, được giải quyết chủ yếu dựa trên sự tổ chức hợp nhất giữa các thông tin đầu

vào của mạng và các đáp ứng đầu ra.

SVTH: :  Bùi Văn D ngươ trang  16

Page 17: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

• Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thu

được không đầy đủ hoặc bị tác động của nhiễu. Mạng nơron kiểu này được

ứng dụng trong lĩnh vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là

nhận dạng chữ viết.

• Nhiệm vụ tổng quát của một mạng nơron là lưu giữ động các thông tin.

Dạng thông tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và

các đáp ứng đầu ra tương ứng, để khi có một kích thích bất kỳ tác động vào

mạng, mạng có khả năng suy diễn và đưa ra một đáp ứng phù hợp. Đây

chính là chức năng nhận dạng theo mẫu của mạng nơron. Để thực hiện chức

năng này, mạng nơron đóng vai trò như một bộ phận tổ chức các nhóm

thông tin đầu vào, và tương ứng với mỗi nhóm là một đáp ứng đầu ra phù

hợp. Như vậy, một nhóm bao gồm một loại thông tin đầu vào và một đáp

ứng đầu ra. Các nhóm có thể được hình thành trong quá trình học, và cũng

có thể không hình thành trong quá trình học.

Hình 1.6 là một số liên kết đặc thù của mạng nơron. Nơron được vẽ là các vòng

tròn xem như một tế bào thần kinh, chúng có các mối liên hệ đến các nơron khác

nhờ các trọng số liên kết. Tập hợp các trọng số liên kết này sẽ lập thành các ma

trận trọng số tương ứng.

1.2.1 Mạng nơron một lớp

Mỗi một nơron có thể phối hợp với các nơron khác tạo thành một lớp các

trọng số. Mạng một lớp truyền thẳng như hình 1.6a. Một lớp nơron là một nhóm

các nơron mà chúng đều có cùng trọng số, nhận cùng một tín hiệu đầu vào đồng

thời.

SVTH: :  Bùi Văn D ngươ trang  17

Page 18: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Trong ma trận trọng số, các hàng là thể hiện nơron, hàng thứ j có thể đặt

nhãn như một vector wj của nơron thứ j gồm m trọng số wji. Các trọng số trong

cùng một cột thứ j (j=1,2,...,n) đồng thời cùng nhận một tín hiệu đầu vào xj.

wj = [wj1, wj2, ..., wjm]

Tại cùng một thời điểm, vector đầu vào x = [x1, x2,..., xn] có thể là một nguồn

bên ngoài là cảm biến hoặc thiết bị đo lường đưa tới mạng.

(a) Mạng truyền thẳng một lớp (b) Mạng hồi tiếp một lớp

(c) Mạng truyền thẳng nhiều lớp

SVTH: :  Bùi Văn D ngươ trang  18

Page 19: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

(d) Mạng nơron hồi quy

Hình 1.1.6 Một số dạng mạng nơron

1.2.2 Mạng nơron truyền thẳng nhiều lớp

Mạng nơron nhiều lớp (Hình 1.6.c) có các lớp được phân chia thành 3 loại sau

đây:

• Lớp vào là lớp nơron đầu tiên nhận tín hiệu vào x i (i = 1, 2, ..., n). Mỗi tín

hiệu xi được đưa đến tất cả các nơron của lớp đầu vào. Thông thường, các

nơron đầu vào không làm biến đổi các tín hiệu vào x i, tức là chúng không có

các trọng số hoặc không có các loại hàm chuyển đổi nào, chúng chỉ đóng vai

trò phân phối các tín hiệu.

• Lớp ẩn là lớp nơron sau lớp vào, chúng không trực tiếp liên hệ với thế giới

bên ngoài như các lớp nơron vào/ra.

• Lớp ra là lớp nơron tạo ra các tín hiệu ra cuối cùng.

1.2.3 Mạng nơron phản hồi

Mạng nơron phản hồi là mạng mà đầu ra của mỗi nơron được quay trở lại

nối với đầu vào của các nơron cùng lớp được gọi là mạng Laeral như hình 1.6b

SVTH: :  Bùi Văn D ngươ trang  19

Page 20: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

1.2.4 Mạng nơron hồi quy

Mạng nơron phản hồi có thể thực hiện đóng vòng được gọi là mạng nơron

hồi quy như hình 1.6d. Mạng nơron hồi quy có trọng số liên kết đối xứng như

mạng Hopfield, mạng luôn hội tụ về trạng thái ổn định (Hình 1.6.b). Mạng BAM

thuộc nhóm mạng nơron hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với

tín hiệu vào/ra. Nghiên cứu mạng nơron hồi quy mà có trọng số liên kết không đối

xứng, thì sẽ gặp phải vấn đề phức tạp nhiều hơn so với mạng truyền thẳng và mạng

hồi quy có trọng số liên kết đối xứng.

1.2.5 Mạng Hopfield

Mạng Hopfield là mạng phản hồi một lớp, được chỉ ra trong hình 1.6.b. Cấu

trúc chi tiết của nó được thể hiện trong hình 1.7. Khi hoạt động với tín hiệu rời rạc,

nó được gọi là mạng Hopfield rời rạc, và cấu trúc của nó cũng được gọi là mạng

hồi quy.

Hình 1.1.7 Cấu trúc của mạng Hopfield

SVTH: :  Bùi Văn D ngươ trang  20

Page 21: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Như mạng Hopfield đã vẽ ở trên, ta thấy nút có một đầu vào bên ngoài x j và

một giá trị ngưỡng jθ(j = 1,2,...n). Một điều quan trọng cần nói ở đây là mỗi nút

không có đường phản hồi về chính nó. Nút đầu ra thứ j được nối tới mỗi đầu vào

của nút khác qua trọng số wij, với i≠

j, (i = 1,2,...,n), hay nói cách khác wii = 0, (với

i = 1,2,...,n).

Một điều quan trọng nữa là trọng số của mạng Hopfield là đối xứng, tức là

wij = wji, (với i,j = 1,2,...,n). Khi đó, luật cập nhật cho mỗi nút mạng là như sau:

,sgn1

)()1(

−+= ∑

≠=

+n

ijj

ik

jijk

i xywy θ

i = 1,2,...,n (1.11)

Luật cập nhật trên được tính toán trong cách thức không đồng bộ. Điều này

có nghĩa là, với một thời gian cho trước, chỉ có một nút mạng cập nhật được đầu ra

của nó. Sự cập nhật tiếp theo trên một nút sẽ sử dụng chính những đầu ra đã được

cập nhật. Nói cách khác, dưới hình thức hoạt động không đồng bộ của mạng, mỗi

đầu ra được cập nhật độc lập.

Có sự khác biệt giữa luật cập nhật đồng bộ và luật cập nhật không đồng bộ.

Với luật cập nhật không đồng bộ thì sẽ chỉ có một trạng thái cân bằng của hệ (với

giá trị đầu đã được xác định trước). Trong khi đó, với luật cập nhật đồng bộ thì có

thể làm mạng hội tụ ở mỗi điểm cố định hoặc một vòng giới hạn.

SVTH: :  Bùi Văn D ngươ trang  21

Page 22: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

1.2.6 Mạng BAM

Mạng BAM bao gồm hai lớp và được xem như là trường hợp mở rộng của

mạng Hopfield. Ở đây ta chỉ xét mạng rời rạc, vì nó đơn giản và dễ hiểu.

Hình 1.1.8 Cấu trúc của BAM

Khi mạng nơron được tích cực với giá trị đầu vào của vector tại đầu vào của

một lớp, mạng sẽ có hai mẫu trạng thái ổn định, với mỗi mẫu tại đầu ra của nó là

một lớp. Tính động học của mạng thể hiện dưới dạng tác động qua lại giữa hai lớp.

Cụ thể hơn, giả sử một vector đầu vào x được cung cấp cho đầu vào của lớp nơron

y. Đầu vào được xử lý và truyền tới đầu ra của lớp y như sau:

y’ = a(wx) ;

= ∑ jiji xway '

; với i = 1,2,...,n (1.12)

Ở đó a(.) là hàm truyền, vector y’ bây giờ lại nuôi trở lại lớp nơron X và tạo nên

đầu ra như sau:

x’ = a(wTy’);

= ∑

=

n

iiijj ywax

1

; với j = 1,2,...,m (1.13)

SVTH: :  Bùi Văn D ngươ trang  22

Page 23: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Sau đó x’ nuôi trở lại đầu vào của lớp y và tạo ra hàm y’’ theo phương trình

(1.12). Quá trình này cứ tiếp tục, bao gồm các bước như sau:

y(1) = a(wx(0)) (truyền thẳng lần thứ nhất)

x(2) = a(w(T)y(1)) (truyền ngược lần thứ nhất)

y(3) = a(wx(2)) (truyền thẳng lần thứ hai)

x(4) = a(w(T)y(3)) (truyền ngược lần thứ hai) (1.14)

y(k-1) = a(wx(k-2)) (truyền thẳng lần thứ k/2)

x(k) = a(w(T)y(k-1)) (truyền ngược lần thứ k/2)

Chú ý rằng trạng thái cập nhật trong phương trình (1.14) là đồng bộ theo

phương trình (1.12) và (1.13). Trạng thái cập nhật cũng có thể không đồng bộ theo

phương trình (1.12) và (1.13) với các nút i, j được chọn tự do. Người ta đã chỉ ra

rằng, hệ thống ổn định cho cả hai chế độ đồng bộ và không đồng bộ. Tuy nhiên,

chế độ đồng bộ sẽ làm cho hệ thống hội tụ nhanh hơn nhiều.

1.3 Các Luật Học

Thông thường, mạng nơron được điều chỉnh hoặc được huấn luyện để hướng

các đầu vào riêng biệt đến đích ở đầu ra. Cấu trúc huấn luyện mạng được chỉ ra ở

hình dưới. Ở đây, hàm trọng số của mạng được điều chỉnh trên cơ sở so sánh đầu ra

với đích mong muốn (taget), cho tới khi đầu ra của mạng phù hợp với đích. Những

cặp vào/đích (input/taget) được dùng để giám sát cho sự huấn luyện mạng.

SVTH: :  Bùi Văn D ngươ trang  23

Page 24: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.1.9: Cấu trúc huấn luyện mạng nơron

Để có được một số cặp vào/ra, ở đó mỗi giá trị vào được gửi đến mạng và

giá trị ra tương ứng được thực hiện bằng mạng là sự xem xét và so sánh với giá

trị mong muốn. Bình thường, nó sẽ tồn tại một sai số vì giá trị mong muốn không

hoàn toàn phù hợp với giá trị thực. Sau mỗi lần chạy, ta có tổng bình phương của

tất cả các sai số. Sai số này được sử dụng để xác định các hàm trọng số mới.

Sau mỗi lần chạy, hàm trọng số của mạng được sửa đổi với đặc tính tốt hơn

tương ứng với đặc tính mong muốn. Từng cặp giá trị vào/ra phải được kiểm tra và

trọng số được điều chỉnh một vài lần. Sự thay đổi các hàm trọng số của mạng sẽ

được dừng lại, nếu tổng các bình phương sai số nhỏ hơn một giá trị đặt trước, hoặc

đã chạy đủ một số lần chạy xác định (trong trường hợp này, mạng có thể không

thoả mãn yêu cầu đặt ra do sai lệch còn cao). Có hai kiểu học:

• Học tham số: là các tham số về trọng số cập nhật kết nối giữa các nơron.

• Học cấu trúc: trọng tâm là sự biến đổi cấu trúc của các mạng nơron gồm số

lượng nút và các loại liên kết.

Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng nơron.

Nhiệm vụ của việc học tham số là tìm ra được ma trận chính xác mong muốn từ

ma trận giả thiết ban đầu (với cấu trúc của mạng nơron có sẵn). Để làm được điều

này thì mạng nơron phải sử dụng các trọng số điều chỉnh, với nhiều phương pháp

học khác nhau để có thể tính toán gần đúng ma trận W cần tìm đặc trưng cho

mạng. Sau đây là 3 phương pháp học:

SVTH: :  Bùi Văn D ngươ trang  24

Page 25: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

1.3.1 Học có giám sát

Học có giám sát: là quá trình học có tín hiệu chỉ đạo bên ngoài d (Hình

1.10). Trong học có giám sát, thì tại mỗi thời điểm khi đầu vào được cung cấp tới

mạng nơron, phản ứng đầu ra mong muốn d tương ứng của hệ thống được đưa ra.

Ở hình (1.10), khi mỗi đầu vào x(k) được đặt vào mạng, đầu ra mong muốn tương

ứng d(k) cũng được cung cấp tới mạng. Hiệu giữa đầu ra thực y(k) và đầu ra mong

muốn d(k) được đo trong máy phát tín hiệu lỗi. Máy này sẽ tạo ra tín hiệu lỗi cho

mạng để hiệu chỉnh các trọng số của mạng, và với các hiệu chỉnh này thì đầu ra

thực sẽ tiến sát với đầu ra mong muốn.

Hình 1.1.10: Học có giám sát

1.3.2 Học củng cố

Tín hiệu chủ đạo d có thể lấy từ môi trường bên ngoài, nhưng tín hiệu này

không được đầy đủ, mà chỉ có một vài bit đại diện có tính chất kiểm tra quá trình

tốt hay xấu. Học củng cố cũng là một dạng của học có giám sát, bởi vì mạng vẫn

nhận một số tín hiệu từ bên ngoài. Nhưng tín hiệu phản hồi chỉ mang tính chất

đánh giá hơn là mạng tính chất chỉ dẫn. Nó cho biết mức độ tốt hay xấu của một

đầu ra đặc biệt. Tín hiệu củng cố bên ngoài thường được xử lý bằng máy phát tín

hiệu đánh giá để tạo ra nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đó dùng

để điều chỉnh các trọng số với mục đích đạt được tín hiệu đánh giá tốt hơn.

SVTH: :  Bùi Văn D ngươ trang  25

Page 26: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

1.3.3 Học không có giám sát

Hình 1.1.11: Học không có giám sát

Trong phần học không có giám sát, sẽ không có thầy hướng dẫn, tức là

không có tín hiệu d cung cấp tới mạch phản hồi. Điều này cho thấy, ta sẽ không

biết đầu ra đạt giá trị gì. Với loại này, thì các nơron tự xoay xở với các dữ liệu mẫu

mà nó có được, chứ không có “thầy” gợi ý cần luyện theo hướng nào. Mạng phải

tự khám phá mẫu, đặc tính, sự tương quan hay loại đầu vào. Trong khi khám phá

những đặc tính này, tham số của mạng sẽ bị thay đổi. Quá trình này được gọi là tự

tổ chức. Một ví dụ điển hình là quá trình phân loại đối tượng không có thầy, những

lớp thích hợp được hình thành bằng cách khám phá sự tương tự và không tương tự

trong số các đối tượng.

Hình (1.12) mô tả cấu trúc chung của quá trình học của ba phương pháp học

đã nêu ở trên. Trong tín hiệu vào xj (j = 1,2,...,m), có thể được lấy từ đầu ra của các

nơron khác hoặc có thể được lấy ra từ bên ngoài. Trọng số của nơron thứ i được

thay đổi tùy theo tín hiệu ở đầu vào mà nó thu nhận giá trị đầu ra của nó.

Dạng tổng quát của luật học trọng số của mạng nơron cho biết số gia của

vector wi là iw∆ tỉ lệ với tín hiệu học r và tín hiệu đầu vào x(t).

iw∆(t) =

)(.. txrη(1.15)

SVTH: :  Bùi Văn D ngươ trang  26

Page 27: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

ηlà một số dương và được gọi là hằng số học dùng để xác định tốc độ học, r là tín

hiệu học và phụ thuộc: ).,,( iir dxwfr =

(1.16)

Hình 1.1.12: Sơ đồ cấu trúc chung của quá trình học

Từ hình (1.12) ta thấy, vector trọng số wi = [wi1, wi2,..., wim]T có số gia tỷ lệ

với tín hiệu vào x và tín hiệu học r. Vector trọng số ở thời điểm (t+1) được tính như

sau:

wi(t+1) = wi(t) + η

fr(wi(t),x(t),d(t)).x(t). (1.17)

Phương trình liên quan đến sự biến đổi trọng số trong mạng nơron rời rạc, và

tương ứng với sự thay đổi trọng số trong mạng nơron liên tục theo biểu thức sau:

)(.. txrdt

dwi η=

(1.18)

SVTH: :  Bùi Văn D ngươ trang  27

Page 28: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Vấn đề quan trọng trong việc phân biệt luật học cập nhật trọng số có giám

sát hay không có giám sát, hoặc học củng cố là tín hiệu học r. Như vậy, đối với tín

hiệu học r thì nó làm thế nào để thay đổi hoặc cập nhật trọng số trong mạng nơron.

Mạng nơron nhân tạo có các tính chất sau:

• Là hệ phi tuyến

• Là hệ xử lý song song

• Là hệ học và thích nghi: Mạng được luyện từ số liệu quá khứ, có khả năng

tự chỉnh đầu vào khi số liệu đầu vào bị mất.

• Là hệ nhiều biến, nhiều đầu vào, nhiều đầu ra (MISO), rất tiện dùng khi điều

khiển đối tượng có nhiều biến số.

1.4 Thuật Toán Lan Truyền Ngược

Thuật toán lan truyền ngược được ứng dụng để giải các bài toán điều khiển các

hệ phi tuyến phức tạp và bất ổn định. Lan truyền ngược là một phương pháp cho

phép xác định tập trọng số tốt nhất của mạng để giải một bài toán đã cho. Việc áp

dụng phương pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lần hai

tiến trình chính: lan truyền tiến để thực hiện ánh xạ và lan truyền ngược sai số để

cập nhật các trọng số. Các trọng số của mạng là các hệ số của mô hình. Phương

pháp giảm gradient được dùng để cập nhật những hệ số này sao cho giảm thiểu

được sai số của mô hình.

Xét lớp mạng 3 lớp như hình (1.14)

SVTH: :  Bùi Văn D ngươ trang  28

Page 29: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.1.14: Mạng 3 lớp lan truyền ngược

Thuật toán: Đầu tiên ta cho lan truyền thẳng suốt trong mạng, qua các phần tử

nơron và được tiếp tục với các hàm kích hoạt của phần tử nơron. Các mạng được

nghiên cứu cùng với thuật toán học lan truyền ngược được gọi là mạng lan truyền

ngược.

Huấn luyện các cặp vào/ra.

{(x(k), d(k))}, k = 1,2,...,p

Thuật toán cung cấp một thủ tục cho việc thay đổi các vector trọng số trong

mạng, đầu ra của mạng được lan truyền ngược trở lại lớp đầu vào cho đúng các

mẫu. Cơ sở cho việc cập nhật các trọng số là phương pháp độ dốc Gradient.

Với cặp vào ra (x(k), d(k)), thuật toán lan truyền ngược thực hiện các bước như

sau:

Đầu tiên, mẫu x(k) được lan truyền từ lớp đầu vào qua các lớp ẩn đi đến lớp đầu

ra có kết quả là y(k). Sau đó, sai số giữa y(k) và d(k) được lan truyền ngược trở lại từ

SVTH: :  Bùi Văn D ngươ trang  29

Page 30: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

lớp đầu ra tới lớp đầu vào để cập nhật trọng số. Hình (1.14) diễn giải thuật toán lan

truyền ngược. Kết quả có thể mở rộng sang mạng nơron nhiều lớp.

Trên hình (1.14) có m phần tử nơron đầu vào, l phần tử nơron ở lớp ẩn, và n

phần tử nơron ở lớp đầu ra. Đường nét liền diễn tả lan truyền thẳng của các tín

hiệu, đường nét đứt diên tả lan truyền ngược của các sai số. Đầu tiên huấn luyện

vào cặp vào/ra ký hiệu (x,d) để cho đơn giản ta bỏ chỉ số k. Khi một mẫu đầu vào

x được đưa vào thì các phần tử trong mạng sẽ được tính như sau:

Đầu vào phần tử q của lớp ẩn sẽ được tính theo phương trình:

j

m

jqjq xvnet ∑

==

1

(1.19)

Phương trình đầu ra của q sẽ là: ()( anetaz qq == j

m

jqj xv∑

=1

) (1.20)

Đầu vào phần tử thứ i của lớp đầu ra sẽ là:

)(111

j

m

jqj

l

qiqq

l

qiqi xvawzwnet ∑∑∑

===

==

(1.21)

Phương trình đầu ra của phần tử nowron thứ i sẽ là:

))(.()()(111

j

m

jqj

l

qiqq

l

qiqii xvawazwanetay ∑∑∑

======

(1.22)

Các chỉ số trên được tính toán cho sự lan truyền tiến của các tín hiệu đầu vào

xuyên suốt qua các lớp mạng nơron. Trước khi ta đề cập đến các tín hiệu sai số của

sự lan truyền ngược, ta sẽ định nghĩa một hàm mục tiêu như sau:

SVTH: :  Bùi Văn D ngươ trang  30

Page 31: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

[ ]2

1 1

2

11

2

2

1)(

2

1)(

2

1)( ∑ ∑∑∑

= ===

−=−=−=

n

i

l

qqiqi

n

iii

n

iii zwadnetadydwE

(1.23)

Sau đó, theo phương pháp độ dốc Gradient, các trọng số nối giữa lớp ẩn và lớp đầu

ra được cập nhật bởi iqw∆

, và nó được tính theo công thức sau:

iqiq w

Ew

∂∂−=∆ η

(1.24)

Sử dụng các công thức (1.21-1.23) và thay đổi luật với iqw

E

∂∂

, ta có:

[ ][ ][ ] qoiqiiiiq

i

i

i

i

i

iiq zznetayd

w

net

net

net

net

y

y

Ew ηδη =−=

∂∂

∂∂

∂∂

∂∂−=∆ )('

(1.25)

Trong đó, oiδ

là tín hiệu sai số, chỉ số dưới thứ hai là điểm thứ i trong lớp đầu ra.

Sai số tín hiệu được định nghĩa bởi:

[ ][ ])(' iiii

i

iioi netayd

net

y

y

E

net

E −=

∂∂

∂∂−=

∂∂−=δ

(1.26)

Trong đó, neti là đầu vào của phần tử nơron thứ i trong lớp đầu ra và

i

ii net

netaneta

∂∂

=)(

)('

.

Bây giờ ta phải tính đầu ra zq của lớp ẩn:

SVTH: :  Bùi Văn D ngươ trang  31

Page 32: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Với trọng số nối giữa đầu vào và các lớp ẩn, ta sử dụng thay đổi luật cùng phương

pháp độ dốc Gradient, ta cập nhật trọng số để kết nối giữa phần tử thứ j của lớp đầu

vào với phần tử thứ q của lớp ẩn. Khi đó:

∂∂

∂∂−=

∂−=

∂∂−=∆

qj

q

q

q

qqj

q

qqjqj v

net

net

z

z

E

v

net

net

E

v

Ev ηηη

(1.27)

Từ công thức (1.23), thì mỗi sai số [di-yi], với i=1,2,...,n là một hàm của zq.

Đánh giá thay đổi luật ta có:

( )[ ] jq

n

iiqiiiqj xnetawnetaydv ).('.).('.

1∑

=

−−=∆ η

(1.28)

Sử dụng công thức (1.26), ta có thể viết lại công thức (1.28) như sau:

[ ] jhqjq

n

iiqoiqj xxnetawv ∂=−=∆ ∑

=

ηδη ).('..1

(1.29)

Ở đây, hq∂

là sai số tín hiệu của phần tử thứ q của lớp ẩn và được định nghĩa như

dưới đây:

iq

n

ioiq

q

q

qqhq wneta

net

z

z

E

net

E ∑=

=

∂∂

∂∂−=

∂∂−=∂

1

)(' δ

(1.30)

Trong đó, netq là đầu vào phần tử thứ q của lớp ẩn.

Tín hiệu sai số của một phần tử trong lớp ẩn khác so với tín hiệu sai số của

một phần tử trong lớp đầu ra, như đã được chỉ ra trong công thức (1.30) và (1.26).

Do có sự khác nhau này, nên các thủ tục cập nhật các trọng số trên được gọi là luật

SVTH: :  Bùi Văn D ngươ trang  32

Page 33: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

học delta tổng quát. Chúng ta xem xét công thức (1.30), sai số tín hiệu hq∂

của

phần tử lớp ẩn q có thể được xác định trong các mẫu của các tín hiệu sai số oiδ

của

các phần tử ở lớp ra thứ i (yi) cung ứng. Các hệ số là các trọng số được sử dụng

cho lan truyền thẳng, nhưng ở đây chúng truyền các tín hiệu sai số (oiδ

) ngược trở

lại, đó chính là các đường nét đứt trong hình (1.13). Điều này đã chứng tỏ được

đặc điểm quan trọng của thuật toán lan truyền ngược – luật cập nhật cục bộ, đây

chính là tính toán trọng số thay đổi dựa vào sự kết nối, và chúng ta chỉ cần giá trị ở

hai đầu của kết nối này.

Sự đạo hàm ở trên có thể dễ dàng mở rộng cho mạng có nhiều hơn một lớp

ẩn, bằng cách sử dụng chuỗi luật liên tiếp. Trong trường hợp chung, với số lớp tùy

ý, thì sự lan truyền ngược được cập nhật luật ở dạng sau:

jinputioutputjiij xxw −−==∆ ηδηδ(1.31)

Ở đây, (output-i) và (input-j) quy vào hai đầu của sự kết nối từ phần tử thứ j

tới phần tử thứ i, xj là đầu vào cuối cùng kích hoạt từ một phần tử lớp ẩn, hoặc từ

một đầu vào bên ngoài. Ngoài ra, iδ là tín hiệu học được định nghĩa bởi công thức

(1.26) với đầu ra hoặc lớp cuối cùng của các trọng số kết nối, và được định nghĩa

bởi công thức (1.30) cho tất cả các lớp khác. Khi hàm sigmoid lưỡng cực được sử

dụng làm hàm kích hoạt, đồng thời sử dụng (1.26) và (1.30) ta có hàm y được xác

định như sau:

11

1)( −

+== −nete

netay

SVTH: :  Bùi Văn D ngươ trang  33

Page 34: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Khi đó ta có:

[ ] )1(2

1)(1

2

1)()(' 22 yneta

net

netaneta −=−=

∂∂=

[ ]iioi ydy −−= )1(2

1 2δ

(1.32)

iq

n

ioihq wz ∑

=

−=1

2 )1(2

1 δδ

(1.33)

Thuật toán lan truyền ngược

Xem xét một mạng với Q lớp lan truyền ngược, q=1,2,...,Q; với qneti và qyi

lần lượt là đầu vào và đầu ra của khối trong lớp thứ q. Mạng có m nơron đầu vào, l

nơron ở lớp ẩn, và n nơron đầu ra. Với qwij là trọng số nối từ q-1wj đến qyi.

Đầu vào: các cặp huấn luyện {x(k), d(k) | k=1,2,...,p}, ở đó giá trị đầu vào của

phần tử cuối cùng bằng -1, tức là 1)(

1 −=+k

mx.

Bước 0 (Đặt giá trị ban đầu)

- Lựa chọn bước tính (Hằng số học) 0<η<1 và Emax (sai số lớn nhất cho

phép).

- Chọn các trọng số ban đầu nối từ phần tử thứ j của lớp (q – 1) đến phần

tử thứ i của lớp q là qwij có giá trị nhỏ và ngẫu nhiên.

- Cho sai số E = 0 và k = 1.

Bước 1 (Vòng lặp huấn luyện)

Áp dụng mẫu vào thứ k, cho lớp đầu vào q=1. Khi đó ta có:

SVTH: :  Bùi Văn D ngươ trang  34

Page 35: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

qyi = 1yi = xi(k) cho tất cả các i = 1,2,3,…,m. (1.34)

Bước 2 (Lan truyền thẳng)

Lan truyền tín hiệu thẳng xuyên suốt mạng sử dụng công thức (1.35) cho

mỗi i và q cho tới khi các đầu ra của lớp đầu ra Qyi được thực hiện.

).()( 1∑ −==j

jqij

qi

qi

q ywanetay

(1.35)

Bước 3 (Đo lường sai số đầu ra)

Tính toán giá trị sai lệch và tín hiệu sai lệch i

Qδ cho lớp đầu ra như sau:

EydE iQ

n

i

ki +−= ∑

=

2

1

)( )(2

1

; (1.36)

)'().( )(i

Qi

Qkii

Q netayd −=δ(1.37)

Trong đó: i

Qδ là tín hiệu sai lệch của nơron thứ i cho lớp ra Q; là

đạo hàm của hàm truyền a(.) theo tổng trọng số của phần tử i của lớp đầu ra

là .

)()'(

iQi

Q

netd

daneta =

SVTH: :  Bùi Văn D ngươ trang  35

Page 36: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Bước 4 (lan truyền ngược sai số)

Các sai số lan truyền ngược với mục đích để cập nhật các trọng số và

tính toán các tín hiệu sai lệch i

q δ1−

cho các lớp xử lý:

jq

iq

ijq yw 1.. −=∆ δη

;ij

qoldij

qnewij

q www ∆+=(1.38)

jj

qji

qi

qi

q wneta δδ ∑−− = )( 1'1

; với q=Q,Q-1,...,2 (1.39)

Trong đó:

- là sai lệch tại thời điểm tính của giá trị trọng số liên kết cập nhật

mới và cũ, liên kết từ phần tử thứ j của lớp q-1 đến phần tử i của lớp q.

- là giá trị trọng số liên kết cập nhật mới từ phần tử thứ j của lớp

(q-1) đến phần tử i của lớp q.

- là giá trị trọng số liên kết cũ từ phần tử thứ j của lớp (q-1) đến phần

tử i của lớp q.

- là tín hiệu ra của phần tử j của lớp (q-1).

Bước 5 (Sau mỗi vòng lặp)

Kiểm tra xem đã lặp hết các giá trị mẫu huấn luyện chưa, nếu chưa quay

vòng hết (tức là k<p) tăng k=k+1, và nhảy tới bước 1, ngược lại (tức k=p) thì

chuyển sang bước 6.

Bước 6 (Kiểm tra tổng sai số)

SVTH: :  Bùi Văn D ngươ trang  36

Page 37: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Kiểm tra sự khác nhau giữa tổng sai số và sai số cho phép:

- Nếu tổng sai số nhỏ hơn sai số cho phép (tức là E<Emax) thì kết thúc quá

trình huấn luyện, và ghi lại các giá trị trọng số cuối cùng.

- Trái lại, thì lại gán E=0, k=1 và bắt đầu một quá trình huấn luyện mới

bằng cách nhảy tới bước 1.

1.5 Kết Luận

Trong chương này, chúng ta tìm hiểu một mạng nơron và thuật toán lan

truyền ngược. Quá trình học của mạng truyền thẳng chỉ ra một phương thức để

mạng nơron nhận dạng một mẫu, nó giống như quá trình học của lan truyền ngược,

đó là mô tả một quá trình mạng nơron sẽ được huấn luyện.

Một mạng nơron truyền thẳng là một mạng mà ở đó các nơron chỉ được kết

nối tới một lớp tiếp theo. Không có kết nối giữa các nơron với các lớp trước hoặc

với chính nơron đó. Thêm vào đó, các nơron sẽ không kết nối tới các nơron quá xa

ở lớp tiếp theo. Một mẫu được xử lý bởi sự truyền thẳng, độ lệch và các trọng số

kết nối sẽ được áp dụng.

Các mạng nơron được huấn luyện bằng cách sử dụng thuật toán lan truyền

ngược. Thuật toán lan truyền ngược là một dạng huấn luyện có giám sát. Mạng

nơron được đưa vào dữ liệu huấn luyện cho cho ra kết quả, các kết quả này được

so sánh với các kết quả được mong đợi. Sự khác nhau giữa các kết quả thực tế và

các kết quả mong đợi sẽ có một mức sai số nào đó. Để giảm thiểu sai số này, người

ta tiến hành sử dụng thuật toán lan truyền ngược để điều chỉnh các trọng số và độ

lệch của mạng. Đây là cách mà sai số được giảm đáng kể. Trong chương tiếp theo,

chúng ta sẽ tìm hiều về mạng nơron Kohonen. Sự khác nhau quan trọng nhất giữa

mạng nơron Kohonen và mạng nơron lan truyền ngược là phương thức huấn luyện.

SVTH: :  Bùi Văn D ngươ trang  37

Page 38: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Phương thức lan truyền ngược sử dụng phương thức huấn luyện có giám sát. Còn

mạng nơron Kohonen sử dụng phương thức huấn luyện không giám sát.

2. Xử Lý Ảnh Trong Matlab

Hình 1.2.1 Giao diện của matlab

2.1 Một Số Lệnh Cơ Bản trong xử lý ảnh

2.1.1. Lệnh IMREAD

- đọc một hình ảnh vào chương trình

- ví dụA=imread('C:\Users\Admin\Documents\Youcam\18.JPG');

2.1.2 Lệnh RGB2GRAY- chuyển từ ảnh màu sang ảnh xám- ví dụ

rgb2gray(A)

2.1.3 Lệnh RESHAPE

SVTH: :  Bùi Văn D ngươ trang  38

Page 39: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

- Định dạng lại kích thước ma trận.

- Ví dụ:

a =

1 4 7 10

2 5 8 11

3 6 9 12

b = reshape(a,2,6)

b =

1 3 5 7 9 11

2 4 6 8 10 12

2.1.4 Lệnh HORZCAT- ghép 2 ma trân theo cột, nghĩa là ghép 2 ma trân cùng số dòng với nhau- ví dụ 2 3A1= 3 A2= 1 5 8 C=horzcat(A1,A2)

2 3

C = 3 1

5 8

2.1.5 Lệnh VERTCATLệnh này sử dụng tương tự như lệnh HORZCAT. Lệnh này dùng để ghép 2 ma trận theo hàng

2.1.6 Lệnh FOR

- tạo vòng lặp,cho đến khi điều kiện đưa ra không thỏa nữa thì sẽ thoát khỏi vòng lặp.

Ví dụ:

for i = 1:2

SVTH: :  Bùi Văn D ngươ trang  39

Page 40: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

disp(‘ chao cac ban’);end

chao cac ban

chao cac ban

2.1.7 Lệnh FUNCTION

- Công dụng:

Tạo thêm hàm mới.

- Cú pháp:

function s = n(x)

- Giải thích:

s: tên biến chứa giá trị trả về sau khi thi hành hàm.

n: tên gợi nhớ.

2.1.8 Lệnh INPUT

- Công dụng:

Dùng để nhập vào 1 giá trị.

- Cú pháp:

tên biến = input (‘promt’)

- Giải thích:

tên biến, là nơi lưu giá trị ngập vào.

‘promt’: chuỗi ký tự muốn nhập vào.

- Ví dụ:

x = input(‘nhập giá trị của biến x: ’)

nhập giá trị của biến x: 5

x = 5

2.1.9 Lệnh IF …ELSEIF …ELSE

- thỏa điều khiện thì thực hiện chương trình

- Ví dụ:

SVTH: :  Bùi Văn D ngươ trang  40

Page 41: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Viết chương trình nhập vào 2 số và so sánh hai số đó.

a = input(‘Nhập a: ’);

b = input(‘Nhập b: ’);

if a > b

disp(‘a lớn hơn b’);

elseif a ==b

disp(‘a bằng b’);

else

disp(‘a nhỏ hơn b’);

end

nhập a: 4

nhập b: 5

a nhỏ hơn b

2.1.10 Lệnh IM2BW- biến đổi ảnh xám về ảnh nhị phân với mức ngưỡng đưa ra- ví dụ:H = im2bw(J,0.15);

2.1.11 Lệnh IMRESIZE- Lệnh này làm cho kích thước ảnh giảm đi, nhằm dể dàng xử lý ảnh hơn.- ví dụ:

Để giảm kích thước của ảnh xuống 8 lần thì chúng ta làm thế này.giả sử ảnh ban đầu có kích thước 480x640 ảnh thu được là 60x80. Với H là ảnh 480x640

G = imresize(H,0.125);

SVTH: :  Bùi Văn D ngươ trang  41

Page 42: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

2.1.12 Lệnh IMWRITE- ghi và lưu hình ảnh.

- ví dụ:

imwrite(K,'t1.bmp');

2.1.13 Lệnh LOAD

- Nạp file từ đĩa vào vùng đang làm việc.

- ví dụ:

load('C:\Program Files\MATLAB\R2010b\bin\neural');

2.1.14 Lệnh WRITE- ghi một giá trị vào biến- ví dụ:

write(tin_hieu_1,1);% giá trị 1 được ghi vào biến ” tin_hieu_1”2.1.15 Lệnh SET- đặt thuộc tính cho Handles Graphics- Ví dụ:

set(handles.slvuong,'String',0); % đặt thuộc tính String cho handles.slvuong với giá tri là 0.

2.1.16 Lệnh CLEAR- xóa một ô nhớ hay một cái biến nào đó- ví dụ:

clear O;

2.1.17 Lệnh GLOBAL- lệnh này dùng để khai báo một cái biến, khi được khai báo như thế thì các biến này với được liên kết với nhau.- ví dụ:

globalngat tin_hieu_1 tin_hieu_2

2.2 Cac Bươc Thu Nhân Ảnh Cơ Ban

Bươc 1:

SVTH: :  Bùi Văn D ngươ trang  42

Page 43: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

- Găn thiêt bi thu hinh vao may.

- Cai đăt driver (trinh điêu khiên) cho thiêt bi, (đươc cho bơi nha san xuât).

- Xem thư hinh anh video trên may tinh thông qua phân mêm cua nha san

xuât.

- Khơi đông matlab.

Bươc 2:

- Ta cân chi đinh cho Matlab biêt phân cưng nao dung đê lây dư liêu (vi co

thê co nhiêu camera kêt nôi vơi PC).

- Go lênh imaqhwinfo đê biêt tên cac loai thiêt bi co thê dung.

- Chi đinh thiêt bi: Tuy vao loai thiêt bi (adaptor name), môi thiêt bi cung

loai găn vao PC đươc găn đanh sô ID, thiêt bi thư nhât co deviceID = 1, thiêt bi thư

2 co deviceID = 2,...

- Đê liêt kê xem loai winvideo co bao nhiêu thiêt bi găn vao may tinh, ta

cung dung lênh imaqhwinfor vơi đôi sô la winvideo:

>> imaqhwinfo('winvideo')

ans =

AdaptorDllName: [1x81 char]

AdaptorDllVersion: '3.5 (R2010a)'

AdaptorName: 'winvideo'

SVTH: :  Bùi Văn D ngươ trang  43

Page 44: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

DeviceIDs: {[1]}

DeviceInfo: [1x1 struct]

- Co môt thiêt bi vơi DeviceID = 1. Ta co thê tim hiêu thêm thông tin vê

thiêt bi nay.

>> imaqhwinfo('winvideo',1)

ans =

DefaultFormat: 'YUY2_160x120'

DeviceFileSupported: 0

DeviceName: 'WebCam'

DeviceID: 1

ObjectConstructor: 'videoinput('winvideo', 1)'

SupportedFormats: {1x5 cell}

Bươc 3: Tao đôi tương đai diên vao may đê lam đề tai nay.

- Để tạo luồng dữ liệu video, dùng lệnh videoinput.

>> vid = videoinput('winvideo',1)

Summary of Video Input Object Using 'WebCam'.

Acquisition Source(s): input1 is available.

Acquisition Parameters: 'input1' is the current selected source.

SVTH: :  Bùi Văn D ngươ trang  44

Page 45: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

10 frames per trigger using the selected source.

'YUY2_160x120' video data to be logged upon START.

Grabbing first of every 1 frame(s).

Log data to 'memory' on trigger.

Trigger Parameters: 1 'immediate' trigger(s) on START.

Status: Waiting for START.

0 frames acquired since starting.

0 frames available for GETDATA.

Bươc 4: Hiên thi luông video trên mang hinh đê xem thư.

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

>> preview(vid)

- Man hinh luc nay hiên lên cưa sô video cua đối tượng vid.

- Nêu muôn kêt thuc xem, dung lênh stoppreview. Hoăc đê đong cưa sô

preview, dung lênh closepreview(vid).

Bươc 5: Lây môt khung hinh anh va lưu thanh file đô hoa.

- Đê lây 1 anh vao xư ly ta sư dung lênh getsnapshot.

- Đê lưu anh thanh file đô hoa ta dung lênh imwrite.

Vi du: hinh = getsnapshot(vid);

Imwrite(hinh,’1.jpg’);

SVTH: :  Bùi Văn D ngươ trang  45

Page 46: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Bươc 6: Lam sach bô nhơ

Sau khi lây dư liêu hinh anh ta co thê giai phong bơt bô nhơ băng cac lênh

sau:

Delete(vid)

Clear

Close(gcf)

2.3 Tạo Giao Diện Với Guide

Giao diện người dùng (graphical user interface GUI) cho phép thực hiện các

lệnh trong Matlab thông qua menu, nút nhấn.. tương tự như các ngôn ngữ Visual

Basic.. Lập trình GUI được thực hiện nhờ công cụ GUIDE (GUI Development

Environnment) hoặc bằng cách soạn một file M.

2.3.1 Khởi động giao diện GUI

- Mở phần mềm Matlab, gõ lệnh sau vào cửa số Command

>> guide

- Trong cửa sổ

GUIDE Quick Start

có nhiều lựa chọn

theo một trong các

khung mâu sau:

SVTH: :  Bùi Văn D ngươ trang  46

Page 47: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.2.3 Cửa số GUIDE

Create New GUI: Tạo hộp thoại GUI mới theo một trong cácloại sau:

• Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển

uicontrol nào cả.

• GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như

button, … Chương trình có thể chạy ngay.

• GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và

button, các menu để hiển thị đồ thị.

• Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

Open Existing GUI:mở một project có sẵn. Trong hướng dẫn này, các bạn

tạo một project mới nên sẽ chọn Blank GUI.

SVTH: :  Bùi Văn D ngươ trang  47

Page 48: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.2.4 Cửa số biên soạn GUI

Giao diện rất giống với các chương trình lập trình giao diện như Visual

Basic, Visual C++, … Di chuyển chuột qua các biểu tượng ở bên trái sẽ thấy tên

của các thanh công cụ điều khiển. Một vài công cụ điều khiển hay dùng như sau:

- Push Button: Là một nút nhấn, giống như nút Command Button trong VB.

Là các nút bấm như nút OK, Cancel mà ta vẫn bấm.

SVTH: :  Bùi Văn D ngươ trang  48

Page 49: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

- Toggle button: Là một nút bật giống như push button nhưng có hiển thị

trạng thái thay đổi mỗi khi nhấn nút.

- Radio Button: Nút nhỏ hình tròn để chọn lựa.

- 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 nó.

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

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

- Pop-up Menu: menu sổ xuống trình bày một bảng các chọn lựa khi nhấp

chuột vào.

- List Box: Gồm một bảng các mục có thể lựa chọn.

- Axes: Vẽ hệ trục.

- Slider: Thanh trượt dùng để đưa giá trị vào trong một vùng giới hạn.

- Run (Ctr + T): nhấn vào để chạy chương trình mà ta đã viết.

- Align Object: dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình

như cùng canh lề bên trái, …

- Grid and Rulers: dùng để cấu hình về lưới trong giao diện vì nó sẽ coi giao

diện như một ma trận các ô vuông nhỏ, ta sẽ thay đổi giá trị này để cho các điều

khiển có thể thả ở đâu tùy ý cho đẹp.

- Menu Editor: trình này để tạo menu cho điều khiển

- Tab Order Editor: sắp xếp Tab order là thứ tự khi ta nhấn phím Tab

- Gui Options: lựa chọn cho giao diện GUI.

SVTH: :  Bùi Văn D ngươ trang  49

Page 50: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

- Các bạn save dưới tên: “ TÊN”, khi đó đồng thời xuất hiện cửa sổ Editor và

đang mở file TÊN.m của bạn. Trong thư mục bạn save sẽ có 2 file là:

- TÊN.fig: file này chứa giao diện của chương trình

- TÊN.m: file chứa các mã thực thi cho chương trình như các hàm khởi tạo,

các hàm callback.

2.3.2 Thay đổi thuộc tính điều khiển

Nhấp chuột vào component trong vùng layout để soạn tính chất của

component. Ví dụ: Nhấn chuột vào Edit text, sẽ hiện ra cửa sổ Property Inspector.

- Tag: dùng để đặt tên cho component.

- BackgroundColor: màu nền của component.

- ForegroundColor: màu chữ trên component.

- FontName, fontAngle,fontSize, fontWeight: các đặt tính font chữ trên

component.

- String: văn bản hiển thị trên component.

- Enable: cho phép component hoạt động hay không.

- Visible: hiển thị component hay không.

SVTH: :  Bùi Văn D ngươ trang  50

Page 51: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.2.5 Cửa sổ thuộc tính

- Quan trọng nhất đối với các component là callback, tức là hàm con mà file

áp dụng M sẽ gọi khi ta tác động vào component. Để soạn thảo callback, ở cửa số

layout 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). Sau khi soạn thảo xong ta lưu,

lập tức Matlab sẽ lưu thành 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 đến giao diện.

SVTH: :  Bùi Văn D ngươ trang  51

Page 52: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

3 Kết Nối Giữa Matlab Và PLC

3.1 Các Bước Tạo Liên Kết PC Access

Hình 1.3.1 Impost symbol

Từ một chương trình PC Access mới, chọn Import Symbols để đưa các biến trong PLC vào PC Access

Hình 1.3.2 chọn chương trình PLC

Chọn file PLC đã lập trình trước đó.

SVTH: :  Bùi Văn D ngươ trang  52

Page 53: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.3.3 chọn các biến liên kết

Sau khi đã import xong thì tiến hành Save file PC Access lại, mở USER1 ra, quét chọn tất cả các Item ở số 1. Nhấn vào nút nhấn số 2, để đưa xuống Test Client

Hình 1.3.4 kết quả của kết nối

Sau khi đã làm xong bước trên thì ta thấy rằng 1 được hiển thị ra. Sau đó nhấn nút thứ 2 để tạo kết nối với PLC, khi đã kết nối thành công thì ở vị trí thứ 3 sẽ hiển thị chử “Good”, và đồng thời khoanh tròn thứ 5 cũng chạy liên tục. khi đã liên kêt xong , ở vị trí thứ 4 sẽ hiển thị giá trị của PLC truyền lên và nhận xuống cho matlab

SVTH: :  Bùi Văn D ngươ trang  53

Page 54: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

3.2 Các Bước Tạo Kết Nối OPC

Hình 1.3.5 khởi động kết nối OPC

Vào Start để lấy thanh công cụ OPC đã có sẵn trong matlab.

SVTH: :  Bùi Văn D ngươ trang  54

Page 55: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.3.6 tìm kiếm liên kết

Sau đó nó sẽ hiện ra giao diện như trên và nhấn vào biểu tượng được khoanh tròn để OPC tự động tìm kiếm các liên kết có trong máy.

Hình 1.3.7 Kết nối với giao thức S7200

Tất cả các liên kết đã được tìm ra, chúng ta chọn đánh dấu số 1 là S7200.OPCServer đó chính là liên kết với PC Access của S7200. Nhấn sáng đánh dấu số 1 và nhấp vào ô khoanh tròn số 2 để tạo thành 1 Client.

SVTH: :  Bùi Văn D ngươ trang  55

Page 56: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.3.8 kết nối OPC

Nhấn nút 1 để kết nối với PC Access

Hình 1.3.9 tạo group

SVTH: :  Bùi Văn D ngươ trang  56

Page 57: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Khi đã kết nối xong thì nhấn vào nút số 1 để tạo thành một Group

Hình 1.3.10 thêm Item vào Group

Sau khi dã tạo một Group thì chúng ta tiến hành add các item vào group đó để liên kết với PC Access , nhấn vào khoanh tròn 1 sẽ hiện ra bảng Add Item , chọn sáng các Item và nhấn nút 2, sau đó nhấn nút 3 để hoàn tất.

SVTH: :  Bùi Văn D ngươ trang  57

Page 58: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 1.3.11 tạo Item vào Group2

Tương tụ như cách làm trên ta tạo Group thứ 2 và add 2 cái Item còn lại vào Group_2.

Như vậy chúng ta đã hoàn tất việc tạo OPC kết nối với S7200.

SVTH: :  Bùi Văn D ngươ trang  58

Page 59: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

II. THIẾT KẾ VÀ THI CÔNG MÔ HÌNH

1 Phần Cứng

Phân loại sản phẩm dùng xử lý ảnh và mạng noron. Sản phẩm được phân loại là các sản phẩm có hình tròn , hình tam giác, hình vuông.

Hình 2.1.1 vật nhận dạng

Quá trình phân loại dùng mạng noron để phân loại sản phẩm. đây là mô hình thực tế của đề tài

SVTH: :  Bùi Văn D ngươ trang  59

Page 60: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.1.2 mô hình phần cứng

2 Nguyên Lý Hoạt Động

Dây chuyền bắt đầu hoạt thì sản phẩm sẽ được đưa vào từ bang tải theo chiều mũi tên số 1. Khi vật được đưa vào thì sẽ bị cảm biến phát hiện ra(cảm biến ở mũi tế số 3). Ngay khi cảm biến phát hiện ra vật băng tải sẽ dừng lại, sau thới gian 1 giây khi bang tải dừng lại camera (mũi tên số 4) sẽ chụp hình vật đó , hình ảnh vừa thu được sẽ được camera chuyển vào chương trình matlab, tại đây matlab sẽ xử lý hình ảnh, phân tích và đưa hình ảnh vào mạng noron đã được học trước đó , mạng noron sẽ cho ta nhận dạng đó là vật vuông, tròn hay tam giác, rồi từ đó matlab sẽ gửi xuống PLC tín hiện vật đó hình dạng thế nào . sau 2 giây để camera chụp hình thì băng tải chạy tiếp và đưa vật ra khỏi camera theo chiều mũi tên số 2.

SVTH: :  Bùi Văn D ngươ trang  60

Page 61: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.2.1 hoạt động của mô hình

• Giao diện của chương trình

Hình 2.2.2 giao diện của giao tiếp

3 Sơ Đồ Khối

SVTH: :  Bùi Văn D ngươ trang  61

Page 62: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.3.1 sơ đồ khối

Khối thiết bị trường là cảm biến phát hiện ra có vật thì thông qua PLC sẽ truyền cho matlab trên máy tính biết đã có vật ở vị trí , lúc này máy ảnh sẽ chụp hình và đưa vào chương trình để phân , nhận dạng ra vật đó và chuyền ngược trở lại cho PlC bào đó là vật gì, từ đó PLC sẽ điều khiển cho cánh tay robot hoạt động. để có thể truyền và nhận dử liệu từ PLC tới máy tính bắt buộc phải thông qua giao tiếp là OPC trong matlab và PC Access để có thể hiểu được nhau.

3.1 Khối camera

Hình 2.3.2 camera trên mô hình

SVTH: :  Bùi Văn D ngươ trang  62

Page 63: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Khi cảm biến được tích cực lên thì lúc này PLC sẽ báo hiệu cho matlab biết là có vật , từ đó matlab sẽ ra lệnh cho camera chụp hình và gửi dữ liệu quay chở lại cho matlab xữ lý.

Camera được dùng ở đây là colorvis.do ở đây ta không cần tới chất lượng của ảnh tốt nên chọn loại camera này để nó sẽ cho ra ảnh 480x640x3,điều này là rất tích hợp với mô hình.

3.2 Khối cảm biến

Sử dụng cảm biến quang E3T – FT11 để phát hiện vật. khi có vật thì cảm biển sẽ tích cực lên mức 1. đay

Hình 2.3.3 hình dáng và hoạt động của cảm biến

Hình dạng của cảm biến E3T-FT11. Cảm biến quang này gồm 1 con thu và 1 con phát. Khi không có vật đèn bào sẽ sáng lên và đưa ra tín hiệu là mức thấp. khi có vật đi qua đèn báo tắt , lúc này dây tín hiệu sẽ lên mức 1.

3.3 Khối máy tính

Máy tính sẽ liên kết với camera và webcam thông qua cổng USB, máy tính là trung tâm của điều khiển, bằng phần mềm matlab, đọc tính hiệu được gửi về từ camera và xữ lý dữ liệu để đưa ra kết quả phân biệt vật xuống PLC. Máy tính liên kết với PLC qua giao thức có trong matlab đó là OPC.

3.4 Khối PLC

PLC nhận tín hiệu từ cảm biến, khi cảm biến tích cực thì PLC sẽ báo cho máy tính thông qua giao thức liên kết là PC Access. Sau khi máy tính xử lý xong thì PLC sẽ nhận được giá trị nhận dạng của vật vừa được phát hiện và từ đó PLC sẽ điều khiển cho cánh tay robot đi đúng hướng.

4 Học Và Huấn Luyện Mạng Noron

4.1 Ma Trân Dữ Liệu Vào

SVTH: :  Bùi Văn D ngươ trang  63

Page 64: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.1 ma trận ngõ vào

Đây là ma trận thực tế được đưa vào mạng noron để học.ở đây khoanh tròn 1 là một phần của ma trận, ma trận này có kích thước 4800x225 ở đây nghĩa là mổi ảnh mẫu đã tạo ra ma trận 4800x1 như vậy thì mổi 1 cột của khoanh tròn 2 là một ảnh lấy mẫu, 225 ở đây có nghĩa là có 225 ảnh mẫu.

Hình 2.4.1 ảnh hình tròn được lưu

SVTH: :  Bùi Văn D ngươ trang  64

Page 65: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Từ những hình đã được chụp từ webcam làm ảnh mẫu. ta phải biến những hình ảnh này thành những ma trân để đưa vào mạng noron để học. hình ảnh của webcam thu được là 480x640x3. Sau đây là các bước làm:

- Đọc ảnh được lưu:

A=imread('C:\Users\Admin\Documents\Youcam\hinh tron\Snapshot_20130511_18.JPG');% 480x640x3

- Chuyển đổi ảnh màu thành ảnh xám

J = rgb2gray(A);%tao ra ảnh 480x640- Chuyển đổi ảnh xám thành ảnh nhị phân

H = im2bw(J,0.15);%ảnh 480x640- Do kích thước của ảnh quá lớn nên cần phải giảm dung lượng ảnh xuống 8

lần cho dể xử lýG = imresize(H,0.125);% ảnh 60x80

- Lọc nhiểu ảnhK=bwmorph(G,'branchpoints');%ảnh 60x80Lệnh bwmorph được mô tả như sau:

ảnh chúng ta thu được bây giờ là ảnh nhị phân với kích thước 60x80, tổng số điểm ảnh là 4800 điểm ảnh, mục đích của chúng ta là đưa về ma trận 4800x1để tiện xử lý.

- Tạo ma trận điểm ảnh là 4800x1p=reshape(N,4800,1);% ảnh 4800x1

- Gán ma trận ban đầungovao=p

- Khi đã tạo ra được ma trận 4800x1 thì chúng ta bắt đầu ghép ma trậnngovao=horzcat(ngovao,p);

+ ở lần đâu tiên ta sẽ gán ma trận ban đầu mà chưa ghép ma trận. ở các lần sau, đổi hình lần lượt không gán ma trận ban đầu nữa mà tiến hành ghép ma trận đâu tiên với ma trận sau. Cứ làm như vậy cho tới khi hết ảnh là chúng ta đã có được ma trân ngõ vào.

SVTH: :  Bùi Văn D ngươ trang  65

Page 66: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

4.2 Tạo ma trận dữ liệu ra

Hình 2.4.2 ma trận ngõ ra của mạng noron

ở khoanh tròn 1 là giá trị ngõ ra của hình tròn. Vậy tương ứng với cột thứ nhất của ma trận đâu vào, mạng noron sẽ huấn luyện làm sao để cho ra cột thứ nhất ở khoanh tròn 1. ở đây nghĩa là tương ứng 1 cột ngõ vào là 1 cột ngõ ra. Khoanh tròn 2 thể hiện là 1 dãy các cột ban đâu là hình tròn. ở khoanh tròn 3 là mà trận ra 3x225 tương ứng với ngõ vào là 4800x225.

Hình 2.4.3 ma trận ngõ ra của mạng noron

Dể phân biệt hình tròn với hình khác thì, ở khoanh tròn 1 là hình tròn còn khoanh tròn 2 là hình tam giác.

4.3 Tạo mạng noron qua thanh công cụ network neural

SVTH: :  Bùi Văn D ngươ trang  66

Page 67: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.4 chọn hình thức học mạng noron

Vào trong “Command Window” trong giao diện matlab gõ lệnh “ nnstart”

Lúc đấy sẽ hiện ra cho chúng ta thanh công cụ để tạo ra mạng noron. ở đây ta chọn mạng noron là “Pattern Recognition Tool”

SVTH: :  Bùi Văn D ngươ trang  67

Page 68: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.5 giớ thiệu về mạng noron

Nhấn Next

Hình 2.4.6 chọn ngõ ra và ngõ vào cho mạng noron

SVTH: :  Bùi Văn D ngươ trang  68

Page 69: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Nhấn vào hình tròn 1 để chọn ngõ vào mà bạn đã tạo ra trước đó. Nhấn hình tròn thứ 2 để chọn ngõ ra đã được tạo trước đó. Khi đã chọn ngõ và ra phù hợp thì lúc đó nút nhấn “Next” sẽ được hiện lên

Hình 2.4.7 chọn ma trận ngõ vào

Chọn ngõ vào mà đã được tạo trước đó rồi nhấn Finish

SVTH: :  Bùi Văn D ngươ trang  69

Page 70: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.8 chọn ma trận ngõ ra

Chọn ngõ ra đã được tạo trước đó. Nếu ma trận ngõ ra không quá lớn thì khung được khoanh 2 ô tròn sẽ hiển thị lên giá trị của nó.

SVTH: :  Bùi Văn D ngươ trang  70

Page 71: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.9 chọn tỉ lệ học mạng noron

Nhấn “Next” qua

Hình 2.4.10 giới thiệu về hình thức của mạng

Chọn có bao nhiêu lớp ấn mà bạn muốn. nhìn vào mạng noron chúng ta thấy có 4800 ngõ vào, 10 lớp ẩn và 3 ngõ ra.

SVTH: :  Bùi Văn D ngươ trang  71

Page 72: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.11 học mạng noron

Nhấn vào nút “Train” được khoanh tròn để cho mạng Noron học. khi học xong ở ô tròn “%E”xuất hiện 3 giá trị, nếu 3 giá trị này tiến tới 0 thì mạng noron được huấn luyện là tốt. còn nếu giá trị nay mà lớn hơn 2 thì tốt nhất mạng noron được học lại cho đến khi đạt được giá trị tốt nhất.

SVTH: :  Bùi Văn D ngươ trang  72

Page 73: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.12 mạng noron đang được học

Quá trình đang được học

Hình 2.4.13 nếu muốn học lại mang noron

SVTH: :  Bùi Văn D ngươ trang  73

Page 74: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Ô tròn “Train Again” sẽ được nhấn khi bạn muốn học lại chương trình,nếu không thì Next qua.

Hình 2.4.14 kết quả của việc học mạng noron

ở ô tròn 1 nếu bạn muốn xem tất cả các lệnh trong quá trình huấn luyện mạng noron thì nhấn nút ô tròn 1.ở ô tròn 2, nếu kết quả huấn luyện mạng noron bạn thấy là tốt thì khi ấy hãy lưu kết quả đó để sau này lấy nó ra sử dụng. ô tròn 3 là chọn các kết quả muốn lưu.

SVTH: :  Bùi Văn D ngươ trang  74

Page 75: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Hình 2.4.15 chương trình mạng noron

ở ô tròn 1 thể hiện các lệnh và quá trình chúng ta vừa tạo mạng noron, cái này chỉ được hiện ra khi nhấn nút “simple script” ở hình trước đó. ở ô thứ 2 là hiển thị các mục khi bạn nhấn nút “Save Result” ở hình trước đó. Khi muốn lưu mạng noron vừa tạo được thì hãy nhấn nút thứ 3 để lưu nó lại.nếu trong khung thứ 2 có những giá trị không muốn lưu thì chung ta hãy nhâp sáng lên và nhấn nút 4. Khi lưu file lại thì nó sẽ có dạng giống file trong hình số 5.

5 Phần Mềm

5.1 Lưu Đồ Chương Trình Chính

SVTH: :  Bùi Văn D ngươ trang  75

Page 76: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Khi cảm biến được tích cực thì máy chụp hình sẽ chụp hình ảnh , đưa hình vào matlab để xử lý ảnh, quá trình xử lý ảnh sẽ phân biệt được hình dạng của vậy thể , và chuyền dữ liệu xuống cho PLC.

5.2 Lưu Đồ Xử Lý Ảnh

SVTH: :  Bùi Văn D ngươ trang  76

Page 77: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

Khi có ảnh được đưa vào matlab thì khi đó ảnh sẽ được chuyển ảnh màu sang ảnh xám để thuận lợi cho việc lấy mẫu và đưa vào mạng noron. Sau khi có ảnh xám rồi thì phải chuyển ảnh nhị phân, do ảnh nhị phân có dung lượng ảnh quá lơn nên người ta phải giảm dung lượng ảnh xuống, rồi tạo ma trận dữ liệu của ảnh. Khi đó bắt đâu đưa vào mạng noron để kiểm tra, và đưa ra được phân biệt vật rồi chuyền xuống PLC cho PLC xữ lý tiếp.

SVTH: :  Bùi Văn D ngươ trang  77

Page 78: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

III. Thực Nghiệm

1 Thiết Lập Thực Nghiệm

Chương trình nhằm mục đích xác đinh được đâu là vật hình vuông đâu là vật hình tròn và đâu là tam giác,qua lấy hình ảnh chup được từ camera và phân tích dữ liệu nhận đượcvà đưa vào mạng noron vừa được học , mạng noron sẽ xuất ra dữ liệu để phân biệt hình dạng của vật thể.

2 Kết Quả

Sau một thời gian tìm hiểu và nghiên cứu về mạng noron, em đã huấn luyện thành công mạng noron và tiến hành đưa vào thực nghiệm vật thể thì kết quả cho ra là chính xác so với vật thể thực. từ đó cho thấy về cơ bản đã đáp ứng được như cầu về đề tài đạt ra , đó là phân loại sản phẩm dùng xử lý ảnh và mạng noron.

3 Đánh Giá

Đề tài về mạng noron còn tương đối mới mẽ, tìm tài liệu về lý thuyết về mạng noron thì khá nhiều tuy nhiên về phần học và luyện mạng noron thì tương đối ít, tuy vậy với sự cố gắng và sự giúp đỡ của thầy Lũy em đã thực hiện được đề tài theo đúng kế hoạch.

SVTH: :  Bùi Văn D ngươ trang  78

Page 79: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

IV Kết Luận Và Hướng Phát Triển

1 Kết Luận

Với những kết quả đã được trình bày ở trên, và chạy trên mô hình thực tế . có thể đưa ra kết luận sau:

* những điều đã làm được

- Đề tài đáp ứng đúng tiến độ mà nhà trường đưa ra

- Phận loại sản phẩm chình xác khoảng 90%

- Kết nối với PLC qua OPC và kết nối với giữa matlab và camera là tốt

- Học và huấn luyện mạng noron đã làm được và đáp ứng yêu cầu

* những điều chưa làm được

- Việc camera chụp hình còn chưa thực sự ổn định

- Camera hiển thị trên màn hình bị đứng khi đọc dữ liệu từ PLC

2 hướng phát triển của đề tài

- Camera không bị đứng hình khi đọc dữ liệu từ PLC

- Phát triển và hoàn thiện trong ứng dụng tự động phục vụ công nghiêp

SVTH: :  Bùi Văn D ngươ trang  79

Page 80: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

CHƯƠNG 3 PHỤ LỤC

Chương trình chính:

global nn mmnn=0;mm=0;test2

chương trình con:

function varargout = test2(varargin)% TEST2 MATLAB code for test2.fig% TEST2, by itself, creates a new TEST2 or raises the existing% singleton*.%% H = TEST2 returns the handle to a new TEST2 or the handle to% the existing singleton*.%% TEST2('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in TEST2.M with the given input arguments.%% TEST2('Property','Value',...) creates a new TEST2 or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before test2_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to test2_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help test2

% Last Modified by GUIDE v2.5 09-May-2013 16:04:54

% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @test2_OpeningFcn, ...'gui_OutputFcn', @test2_OutputFcn, ...

SVTH: :  Bùi Văn D ngươ trang  80

Page 81: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});end

if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT

% --- Executes just before test2 is made visible.function test2_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to test2 (see VARARGIN)set(handles.vat,'String','');set(handles.bao,'String','khong co vat');handles.figure1=gcf;warning off;global ngat tin_hieu_1 tin_hieu_2 n m p km=0;k=1;n=0;p=0;set(handles.slvuong,'String',0);set(handles.sldagiac,'String',0);set(handles.sltron,'String',0);ngat = 'MicroWin.Project1.USER1.ngat';handles.da = opcda('localhost','S7200.OPCServer');connect(handles.da);try handles.data = addgroup(handles.da,'Group_1'); handles.dataIDS = {ngat}; handles.data_itm = additem(handles.data,handles.dataIDS); guidata(handles.figure1, handles); set(handles.data,'DataChangeFcn',{@Data_Group_Callback,handles},'UpdateRate',0);endGroup_2 = addgroup(handles.da);tin_hieu_1 = additem(Group_2,'MicroWin.Project1.USER1.tinhieu1')tin_hieu_2 = additem(Group_2,'MicroWin.Project1.USER1.tinhieu2')

SVTH: :  Bùi Văn D ngươ trang  81

Page 82: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

handles.output = hObject;%global handl%handl=handles;handles.video = videoinput('winvideo', 1);set(handles.video,'TimerPeriod', 0.05, ...'TimerFcn',['if(~isempty(gco)),'...'handles=guidata(gcf);'... % Update handles'image(getsnapshot(handles.video));'... % Get picture using GETSNAPSHOT and put it into axes using IMAGE'set(handles.cameraaxes,''ytick'',[],''xtick'',[]),'... % Remove tickmarks and labels that are inserted when using IMAGE'else '...'delete(imaqfind);'... % Clean up - delete any image acquisition objects'end']);triggerconfig(handles.video,'manual');handles.video.FramesPerTrigger = Inf; % Capture frames until we manually stop it

% Update handles structureguidata(hObject, handles);guidata(handles.figure1, handles);

global hand hanhand=handles;han=handles;

% UIWAIT makes test2 wait for user response (see UIRESUME)uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.function varargout = test2_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure%varargout{1} = handles.output;

function Data_Group_Callback(hObject, eventdata, handles)global ngat tin_hieu_1 tin_hieu_2 n p mglobal hand han k v

%guidata(hObject, handles);y=0;

SVTH: :  Bùi Văn D ngươ trang  82

Page 83: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

tryglobal nn mmif (nn==0)

x = read(handles.data); y = x.Value;

drawnow;endendif (y == 1) nn=1;

k=0endif (k==0) clear O;%v=%=1000000; s = videoinput('winvideo', 1);%v=2;%end thuhinh = getsnapshot(s); mm=mm+1%imwrite(frame,'d.jpg');%save datafor vv=1:v kk=2;end set(han.bao,'String','co vat,dang xu ly'); set(han.vat,'String',' '); load('C:\Program Files\MATLAB\R2010b\bin\neural');%I = imread('d.jpg'); J = rgb2gray(thuhinh);%figure, imshow(frame)%, figure, imshow(J); H = im2bw(J,0.15);%figure, imshow(H); G = imresize(H,0.25);%figure, imshow(G); K=bwmorph(G,'branchpoints'); figure, imshow(K);%imwrite(K,'t1.bmp');%N=imread('C:\Users\Admin\Downloads\New folder (2)\t1.bmp');%figure, imshow(N) o=reshape(K,4800,1);O =net(o)a=[1 0 0]%ma tran 1.3*3.1=1.1

SVTH: :  Bùi Văn D ngươ trang  83

Page 84: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

aa=a*O b=[0 1 0] bb=b*O ccc=[0 0 1] cc=ccc*Oif (aa>=bb)if (aa>=cc) dd=aaelse dd=ccendelseif (bb>=cc) dd=bbelse dd=ccendendif (dd==aa) n = n+1; set(han.vat,'String','hinh tron'); set(han.slvuong,'String',n); write(tin_hieu_1,1); write(tin_hieu_2,1); set(han.bao,'String','khong co vat');endif (dd==bb) m = m+1; set(han.vat,'String','hinh tam giac'); set(han.sltron,'String',m); write(tin_hieu_1,0); write(tin_hieu_2,1); set(han.bao,'String','khong co vat');endif (dd==cc) p = p+1; set(han.vat,'String','hinh vuong'); set(han.sldagiac,'String',p); write(tin_hieu_1,1); write(tin_hieu_2,0); set(han.bao,'String','khong co vat');end k=1; nn=0; stop(s);%start(s);

SVTH: :  Bùi Văn D ngươ trang  84

Page 85: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

end%handles.output = hObject;

% --- Executes on button press in ngat.function ngat_Callback(hObject, eventdata, handles)% hObject handle to ngat (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%global handl%chup=handles;start(handles.video);%chup.video=handles.video;set(handles.state,'String','camera, mang neural va ket noi OPC thanh cong');

% --- Executes during object creation, after setting all properties.function cameraaxes_CreateFcn(hObject, eventdata, handles)% hObject handle to cameraaxes (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: place code in OpeningFcn to populate cameraaxes

function state_Callback(hObject, eventdata, handles)% hObject handle to state (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of state as text% str2double(get(hObject,'String')) returns contents of state as a double

% --- Executes during object creation, after setting all properties.function state_CreateFcn(hObject, eventdata, handles)% hObject handle to state (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end

SVTH: :  Bùi Văn D ngươ trang  85

Page 86: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

function vat_Callback(hObject, eventdata, handles)% hObject handle to vat (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of vat as text% str2double(get(hObject,'String')) returns contents of vat as a double

% --- Executes during object creation, after setting all properties.function vat_CreateFcn(hObject, eventdata, handles)% hObject handle to vat (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end

function sltron_Callback(hObject, eventdata, handles)% hObject handle to sltron (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of sltron as text% str2double(get(hObject,'String')) returns contents of sltron as a double

% --- Executes during object creation, after setting all properties.function sltron_CreateFcn(hObject, eventdata, handles)% hObject handle to sltron (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end

SVTH: :  Bùi Văn D ngươ trang  86

Page 87: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

function slvuong_Callback(hObject, eventdata, handles)% hObject handle to slvuong (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of slvuong as text% str2double(get(hObject,'String')) returns contents of slvuong as a double

% --- Executes during object creation, after setting all properties.function slvuong_CreateFcn(hObject, eventdata, handles)% hObject handle to slvuong (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end

% --- Executes on button press in xoa.function xoa_Callback(hObject, eventdata, handles)% hObject handle to xoa (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global m n p vv=1;m=0;p=0;n=0;set(handles.sltron,'String',0);set(handles.slvuong,'String',0);set(handles.sldagiac,'String',0);

function bao_Callback(hObject, eventdata, handles)% hObject handle to bao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

SVTH: :  Bùi Văn D ngươ trang  87

Page 88: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

% Hints: get(hObject,'String') returns contents of bao as text% str2double(get(hObject,'String')) returns contents of bao as a double

% --- Executes during object creation, after setting all properties.function bao_CreateFcn(hObject, eventdata, handles)% hObject handle to bao (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end

function sldagiac_Callback(hObject, eventdata, handles)% hObject handle to sldagiac (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of sldagiac as text% str2double(get(hObject,'String')) returns contents of sldagiac as a double

% --- Executes during object creation, after setting all properties.function sldagiac_CreateFcn(hObject, eventdata, handles)% hObject handle to sldagiac (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end

% --- Executes on button press in test.function test_Callback(hObject, eventdata, handles)% hObject handle to test (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

SVTH: :  Bùi Văn D ngươ trang  88

Page 89: Luận văn Đề tài: Camera dùng mạng Nơtron trong matlab giao ...dulieu.tailieuhoctap.vn/books/luan-van-de-tai/luan-van-de-tai-cd-dh/... · trong đó: x1, x2, …xm là các

GVHD : Nguy n T n Lũyễ ấ

TÀI LIỆU THAM KHẢO

1 Matlab Va Ứng Dụng Trong Điều Khiển Của Ngyễn Đức Thành

2 http://doc.edu.vn/default.aspx

3 http://www.mathworks.com/products/opc/

4 help trong matlab

5 http://www.ngohaibac.net

SVTH: :  Bùi Văn D ngươ trang  89