Đề tài Hệ thống bảo mật

Để có thể tiến hành điều khiển hoặc giám sát các quá trình thực hiện bằng máy tính, trước hết phải có mối liên hệ cần thiết giữa máy tính và thế giới bên ngoài. Cổng giao lưu với thế giới bên ngoài được mở rộng bằng giao diện.Đối với máy tính PC tuân theo chuẩn công nghiệp có thể thực hiện các khả năng ghép nối sau:

- Sử dụng card mở rộng được cắm vào máy tính ( phương pháp này đạt được tốc độ truy nhập lớn nhất nhưng chi phí cao).

- Các giao diện đã được tiêu chuẩn hóa đóng vai trò ghép nối máy tính với các mạch điện bên ngoài.Cách ghép nối qua cổng nối tiếp thường được lựa chọn vì chi phí thấp.

- Ghép nối với một bộ vi xử lý riêng để thực hiện những bài toán khác mà không cần trao đổi dữ liệu với máy tính.

- Các giao diện có trên máy tính PC như giao diện nối tiếp,giao diện song song và cả cổng trò chơi (game port) cho phép sử dụng trực tiếp làm giao diện.

 

doc77 trang | Chia sẻ: lethao | Lượt xem: 1989 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Hệ thống bảo mật, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
là trục qua tâm trực giao với trục chính thứ nhất, và quán tính của đám mây theo nó nhỏ nhất. Hai trục chính này tạo thành mặt phẳng chính thứ nhất, mặt phẳng mà quán tính của đám mây theo nó nhỏ nhất. Khi đó đám mây điểm thể hiện trên nó rõ nhất so với mọi mặt phẳng khác. - Tiếp tục, tìm trục chính thứ ba là đường thẳng qua tâm, trực giao với hai trục chính trên vả gần đám mây nhất sau hai trục chính thứ nhất và thứ hai. Với sự có mặt của trục này ta được thêm hai mặt phẳng chính nữa, được tạo nên do trục 1 và trục 3, trục 2 và trục 3. - Nếu việc tìm các trục chính được tiến hành đến trục chính thứ q (q ≤ p, n) thì ta được một hệ q vector trực giao, tạo thành siêu phẳng (không gian con) q chiều, mà đám mây điểm thể hiện trên nó rõ nhất. 3.2.3 Tìm Các trục chính trong RP. Mỗi dòng của ma trân quy tâm Xn,p là một vector (điểm cá thể) trong không gian Rp. Tích vô hướng trong gắn với ma trận đơn vị I, tức là có dạng xTy Rp. - Gọi Δ là đường thẳng qua gốc (gốc trùng với trọng tâm O), đường thẳng này là giá của vector đơn vị u (u nằm trên Δ), uTu=1. - Gọi Mi là điểm thứ I của R, tương ứng với vector xi. Hình chiếu trực giao OH, của vector OMi trên Δ có độ dài là: = (OMi)u = xiu (3.5) trong đó, tất nhiên, uT=(u1,u2,…up). - Khi đó rõ ràng rằng tích: Xu= (3.6) là vector n chiều mà phần tử thứ i (i=) của nó là độ dài hình chiếu của vector xtrên Δ. Hình 3.2 Vector thành phần trình chiếu trên trục tọa độ - Theo tiêu chuẩn bình phương nhỏ nhất, ta cần tìm: - Theo định lý Pythagore: Vì = const ( tổng bình phương các toạ độ ban đầu), nên việc tìm tương đương với việc tìm tức là max uTXTu. - Như vậy, để tìm trục chính thức nhất ta tìm u1 sao cho: uXTXu1 max. (3.7) với điều kiện: uui = 1. (3.8) - Ta có: XTX = M0 = ();j,k= Là ma trận quán tính, cũng là ma trận phương sai – hiệp phương sai. 3.2.4 Giá trị riêng và vector riêng của XXT: - Từ phương trình 3.7 và 3.8 ta có phương trình tương đương như sau: Tìm u1 sao cho: uM0 u1 - (uu1 – 1) max (3.9) trong đó là nhân tử Lagrange. - Muốn vậy, phải có: [uM0 u1 - (uu1 – 1) ]= 0 - Tức là: M0u1 - u1 = 0 - Hay (M0 - I)u1 = 0 (3.10) - Vậy là giá trị riêng và ui là vector riêng của ánh xạ f – cho tương ứng mỗi xi RP (i =) một điểm trên đường thẳng gần các điểm xi nhất. - Nói cách khác tìm trục chính Rp có nghĩa là các giá trị riêng và vector riêng của ma trận quán tính M0. Hình 3.3 Thành phần chính PCA trên mặt phẳng Ta giải phương trình: Ta được các trị riêng: λ1 ≥ λ2 ≥….≥ λp. Chọn giá trị lớn nhất λ1, ta được vector riêng tương ứng u1,||u1||2=1, do đó xác định được Δ1. Chú ý công thức: Trong đó N là ký hiệu đám mây điểm – cá thể trong RP. Kết hợp (3.10) ta được: Giá trị riêng lớn nhất λ1 của M0 bằng quán tính giải thích N bởi đường thẳng Δ1 gần đám mây điểm N nhất, và u1 là vector riêng của M0 nằm trên Δ1. Đường thẳng Δ1 là trục chính thứ nhất. Tìm tiếp trục chính thứ hai Δ2, trực giao Δ1, sao cho IN(Δ2) nhỏ nhất. Muốn vậy ta giải hệ: Bằng phương pháp nhân tử Lagrange, ta buộc: [uM0 u1 - (uu1 – 1) - ]= 0 hay: Nhân trái với u1, ta được: hay: Vì M0u1 -u1 = 0, và nên phải có µ = 0. Do đó (2.3.12) trở thành: Và λ lại trở thành nghiệm của phương trình bậc p (2.3.8): |M0 - I| = 0 Giá trị riêng lớn thứ hai λ2 cho tương ứng vector riêng u=u2 và do đó cho trục chính thứ hai Δ2. Để tìm trục chính thứ q, Δq (q≤p, n), ta giải hệ: Với mọi j=1,2,…..q-1 Kết quả lại có λq là nghiệm của: |M0 - I| = 0 Tương tự ta có:, j= Chú ý: Thực ra, để tìm các trục chính chỉ cần dựa vào tính chất 1 của ma trận đối xứng (vì ma trận phương sai – hiệp phương sai M0 đối xứng). Với q trục chính (q<p, n) ta lập được siêu phẳng F của RP, sao cho IN(F) nhỏ nhất. Siêu phẳng này có một cơ sở trực chuẩn là q vector riêng gán với q giá trị riêng lớn nhất λ1≥ λ2 ≥….≥λq của Mo. 3.3 Bài Toán Nhận Dạng Mặt Người Dùng Thuật Toán PCA: Hơn một thập kỷ qua có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt người từ ảnh đen trắng, xám đến ảnh màu như ngày hôm nay. Các nghiên cứu đi từ bài toán đơn giản, mỗi ảnh chỉ có một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng đứng trong ảnh đen trắng. Cho đến ngày hôm nay bài toán mở rộng cho ảnh màu, có nhiều khuôn mặt trong cùng một ảnh, có nhiều tư thế thay đổi trong ảnh. Không những vậy mà còn mở rộng cả phạm vi từ môi trường xung quanh khá đơn giản (trong phòng thí nghiệm) cho đến môi trường xung quanh rất phức tạp (như trong tự nhiên) nhằm đáp ứng nhu cầu thật sự của con người. 3.3.1 Xác định khuôn mặt người: - T là một ma trận kích thước M*NxP chứa tất cả ảnh trong csdl, mỗi ảnh là một vector cột trong ma trận T. - Theo thuật toán PCA, đầu tiên ta sẽ tính ra m là trung bình của tất cả các ảnh trong ma trận T, dùng hàm “ mean” của MatLab. - Sau đó, ta sẽ lấy từng bức ảnh trong T trừ cho ảnh trung bình, ta sẽ được một ma trận A kích thước M*NxP. - Ta cần tìm Eigenface là những vector riêng của ma trận A*A’, những ma trận A*A’ kích thước M*NxM*N quá lớn, ta sẽ tìm những vector riêng cả ma trận A’*A kích thước PxP. Ta sẽ tìm những vector riêng bằng hàm eig trong MatLab. - Giả sử v là một vector riêng của ma trận A’*A, khi đó A*v là vector riêng của ma trận A*A’. - Tập hợp những vector riêng của ma trận A*A’ gọi là Eigenfaces. - Trả về giá tri: - m: là ảnh trung bình. - A: là tập hợp những ảnh - ảnh trung bình. - E: là những vector riêng của ma trận A*A’. - P ảnh – P vector: T1,T2….TP. - Vector ảnh trung bình: m = - Ai = Ti - m, i= 1….P, A =[A1 A2 …..AP] - Tìm một cơ sở trực chuẩn: nếu I = j nếu I j = lớn nhất. Trong đó: - uk là vector riêng của AAT. - là trị riêng tương ứng của AAT. - H là bức ảnh M x N suy ra H là vector M*N chiều. K = H –m. Trong đó: - Kf là hình chiếu K. - C = ETK là tọa độ của Kf - Size(C) = Q x 1; - Kf = với ci = C(i,1); ei = E(:,i). - Ai = A(:,i) là ảnh thứ i trong csdl. - Ci = ETAi là tọa độ Aif. - Xác định khuôn mặt giống nhau của cùng một người. - s= là khoảng cách từ H đến không gian mặt. - si = là khoảng cách từ H đến bức ảnh Ti. - So sánh và là hai ngưỡng nào đó. - s < : H là bức ảnh khuôn mặt. - si < : Ti và H là ảnh cùng 1 người. - Như ta thấy nếu bức ảnh là khuôn mặt người thì hình chiếu sẽ khá giống với ảnh gốc, còn khi bức ảnh không phải là khuôn mặt thì hình chiếu sẽ khác ảnh gốc rất nhiều, do đó khoảng cách từ bức ảnh mặt người tới không gian mặt sẽ nhỏ hơn rất nhiều so với khoảng cách từ bức ảnh không phải mặt người tới không gian mặt. - Cho bảng số liệu với rất nhiều cột và dòng, mỗi cột là một biến, mỗi dòng là một cá thể, trên đó đo đồng thời giá trị các biến. Ta cần biết mối quan hệ giữa các biến, giữa các cá thể qua thể hiện rõ nhất trong một không gian con số chiều ít hơn. 3.3.2 Tìm thành phần chính của một ma trận Bước 1: Xác định ma trận của ảnh. Giả sử ta có ma trận T = tương ứng là 3 ảnh. Ta sẽ tính được ảnh trung bình của ma trận này theo hàm m=mean(T,2). m= Theo công thức: m = . Sau đó ta sẽ lấy từng bức ảnh trong T trừ cho ảnh trung bình, ta sẽ được một ma trận A. A= Theo công thức: Ai = Ti - m, i= 1….P, A =[A1 A2 …..AP]. Bước 2: Ma trận phương sai – hiệp phương sai. - Ma trận quán tính: L = A’.A = . = . Trong đó: A’ là ma trận chuyển vị của ma trận A. A= thì A’ = Bước 3: Quá trình tìm vector riêng và trị riêng: - Phương trình phương sai và hiệp phương sai. M0 = A’.A= L = - Tìm trị riêng từ định thức của ma trận: = 0 Triển khai ma trận này ta sẽ được: Giải phương trình này ta được 3 nghiệm phân biệt là các trị riêng của ma trận: Để tìm các vecto riêng từ những trị riêng này ta phai giải phương trình sau: - Ứng với trị riêng ta có phương trình: - Tức là hệ phương trình: Nghiệm của hệ phương trình thuần nhất (tức vế phải bằng 0) này là vô định, vì định thức của ma trận hệ số bằng 0 ( |A-(2,1)I|=0). - Trong hệ 3 phương trình trên, một phương trình là tổ hợp tuyến tính của hai phương trình còn lại, nên chỉ cần giữ lại hai phương trình: - Từ đó rút ra: Để đơn giản, giả sử giá trị riêng đó đều thực và khác nhau, chuẩn của các vector riêng x đều bằng 1 (||V||2 = VTV =1). - Như vậy, vector riêng ứng với giá trị riêng l1 ≈ 5,94 là: V1T=(k1;-0,803k1;-0,1974k1) trong đó k1 là số thực bất kỳ. - Suy ra, vector riêng thứ nhất là: V1T=(-0,7705; 0,6192; 0,1513). - Tương tự, với l2 ≈ 0,00243 thì vector riêng tương ứng xấp xỉ: V2T=(-0,2701;-0,5322;0,8024). và với l3 ≈1,51 thì vector riêng và: V3T=(0,5774;0,5774;0,5774). Dễ dàng thử được rằng: zT1z2 ≈ zT2z3 ≈ zT3z1 ≈ 0, tức là z1, z2 và z3 tạo thành hệ trực giao. Bước 4: Tìm tọa độ hình chiếu. - Ta có: Z = A*V - Tọa độ các cá thể trên trục thứ nhất: Z11 = A1 . V1 = -0,3333 . (- 0,7705) + 0,6667 . 0,6192 – 0,3333 . 0,1513 = 0,1056 Z21 = A2 .V1 = -2,3333 . (- 0,7705) + 0,6667 . 0,6192 – 1,6667 . 0,1513 = 2,462 Z31 = A1 . V1 = 2,3333 . (- 0,7705) -1,6667 . 0,6192 – 0,6667 . 0,1513 = - 1.6937 Z41 = A1 . V1 = -1,3333 . (- 0,7705) + 2,6667 . 0,6192 – 1,3333 . 0,1513 = 2,4768 Z51 = A1 . V1 = 2,3333 . (- 0,7705) – 1,6667 . 0,6192 – 0,6667 . 0,1513 = - 2,9307 - Tọa độ các cá thể trên trục thứ hai: A*V2 = = Hình 3.4 Tọa độ điểm trên cùng không gian CHƯƠNG 4 GIAO TIẾP VỚI MÁY TINH QUA CỔNG NỐI TIẾP 4.1. TỔng Quan Về Giao Tiếp Máy Tính - Để có thể tiến hành điều khiển hoặc giám sát các quá trình thực hiện bằng máy tính, trước hết phải có mối liên hệ cần thiết giữa máy tính và thế giới bên ngoài. Cổng giao lưu với thế giới bên ngoài được mở rộng bằng giao diện.Đối với máy tính PC tuân theo chuẩn công nghiệp có thể thực hiện các khả năng ghép nối sau: - Sử dụng card mở rộng được cắm vào máy tính ( phương pháp này đạt được tốc độ truy nhập lớn nhất nhưng chi phí cao). - Các giao diện đã được tiêu chuẩn hóa đóng vai trò ghép nối máy tính với các mạch điện bên ngoài.Cách ghép nối qua cổng nối tiếp thường được lựa chọn vì chi phí thấp. - Ghép nối với một bộ vi xử lý riêng để thực hiện những bài toán khác mà không cần trao đổi dữ liệu với máy tính. - Các giao diện có trên máy tính PC như giao diện nối tiếp,giao diện song song và cả cổng trò chơi (game port) cho phép sử dụng trực tiếp làm giao diện. 4.2 .Cấu Trúc Cổng Nối Tiếp ( cổng COM): Cổng nối tiếp có các ưu điểm sau: - Khoảng cách truyền xa hơn cổng song song. - Số dây kết nối ít. - Có thể truyền không dây dùng hồng ngoại. - Có thể ghép nối với vi điều khiển hay PLC. - Cho phép nối mạng. - Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc. - Có thể cung cấp nguồn cho các mạch điện đơn giản. Hình 4.1. Cấu trúc cổng nối tiếp( cổng COM) 4.3.Các Chuẩn Giao Tiếp Nối Tiếp Thường sử dụng nhiều nhất là chuẩn RS-232 và RS-485. Ở đồ án này chỉ sử dụng chuẩn RS-232. - Chuẩn RS -232: Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations). Chuẩn RS-232 qui định mức logic 1 ứng với điện áp từ -3V đến -25V, mức logic 0 ứng với điện áp từ 3V đến 25V và có khả năng cung cấp dòng từ 10mA đến 20mA. Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch. - Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp truyền đủ ngắn có thể lên đến 115.200 bps. Chuẩn RS-232 chỉ có thể kết nối nhiều nhất hai thiết bị, với khoảng cách dài nhất (12,7 m đến 25,4 m). - Chuẩn RS-485: có thể kết nối tối đa là 32 thiết bị, khoảng cách dài hơn tối đa là (1016m đến hơn 1km) gấp 40 lần RS-232. Tốc độ cao 10Mbs/s. - Các đặc tính kỹ thuật của chuẩn RS-232: Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200bps, 4800bps, 9600bps, 19200 bps. 4.4 Định Dạng Dữ Liệu Sau đây giới thiệu về cách định dạng dùng trong truyền thông nối tiếp. - Định dạng đồng bộ: Trong truyền đồng bộ, mọi thiết bị dùng một xung đồng hồ được phát ra bởi một thiết bị hoặc từ một nguồn xung ngoài. Xung đồng hồ có thể có một tần số cố định hoặc có thể chốt tại những khoảng thời gian không đều. Mọi bít truyền đi được đồng bộ với đồng hồ. - Định dạng không đồng bộ: Trong truyền không đồng bộ, liên kết không bao gồm đường xung đồng hồ, bởi vì mỗi điểm đầu cuối của liên kết đã có xung đồng hồ cho riêng từng cái. Mỗi điểm sẽ cần phải đồng ý cùng một tần số của đồng hồ và mọi đồng hồ chỉ khác nhau một vài %. Mỗi byte truyền đi bao gồm bít Start để đồng bộ đồng hồ và một hoặc nhiều bít Stop cho tín hiệu kết thúc việc truyền trong mỗi một từ được truyền đi. Cổng RS-232 trong PC dùng định dạng không đồng bộ để giao tiếp với modems (thiết bị mã hoá, giải mã dữ liệu) và các thiết bị khác. Dù RS-232 có thể truyền dữ liệu đồng bộ nhưng liên kết không đồng bộ vẫn được dùng phổ biến 485 hơn. - Truyền thông nối tiếp sử dụng hai phương pháp đồng bộ và dị bộ. Phương pháp đồng bộ truyền một khối dữ liệu ( các ký tự) tại cùng thời điểm trong khi đó truyền dị bộ chỉ truyền từng byte một. Có thể viết phần mềm để sử dụng một trong hai phương pháp này. 4.5 MAX 232: MAX232 thuộc họ IC MAX220 ÷ MAX249 được sản xuất cho truyền thông EIA/TIA – 232E và V.28/V.24, cụ thể là cho những ứng dụng mà không có sẵn điện áp ±12V. 4.5.1 Sơ đồ chân: Hình 4.2 : Sơ đồ chân của MAX232 4.5.2 Chức năng các chân: - Chân 1, 2, 3, 4, 5, 6: mắc với 4 tụ bên ngoài để biến đổi điện áp từ 0 ÷ 5V thành điện áp -12V ÷ +12V để phù hợp cho truyền thông theo tiêu chuẩn RS232. - Chân 7, 8, 9, 10, 11, 12, 13, 14: là các chân vào, ra của 4 bộ khuyếch đại đảo nhằm chuyển từ mức TTL ra chuẩn RS232 và ngược lại. - Chân 15: nối mass. - Chân 16: nối nguồn. Hình 4.3 Sơ đồ khối bên trong MAX232 và các linh kiện mắc bên ngoài theo dạng chuẩn 4.5.3 Nối Ghép 89V51RB2 Với RS232: - Nội dung chính của phần này là nói về nối ghép 89C51 với các đầu nối RS232 thông qua chip MAX232. Chíp 89C51 có hai chân được dùng chuyên cho truyền và nhận dữ liệu nối tíêp. Hai chân này được gọi là TxD và RxD và là một phần của cổng P3 ( P3.0 và P3.1). Chân 11 của 89C51 là P3.1 được gán cho TxD và chân 10 (P3.0) được dùng cho RxD. Các chân này tương thích với mức logic TTL. Do vậy chúng đòi hỏi một bộ điều khiển đường truyền để chúng tương thích với RS232. Một bộ điều khiển như vậy là chip MAX232. - Bộ điều khiển đường truyền MAX232: MAX232 chuyển đổi từ các mức điện áp RS232 sẽ về mức điện áp TTL và ngược lại. Một điểm mạnh của chip MAX232 là nó dùng điện áp ngưỡng +5V cùng với điện áp nguồn của 89C51. P3.1 TxD P3.0 RxD Max232 80511 Vcc 2 6 7 8 9 11 10 5 4 112 10 14 13 T1OUT T1IIN R1IIN R1OUT T2IIN R2OUT T2OUT R2IIN RS232 side TTL side 15 16 DB - 9 122 C3 + C4 + 2 2 5 2 3 + C1 + C2 Hình 4.4 a) Sơ đồ bên trong của MAX232 b) Sơ đồ nối ghép của MAX232 với 89C51 CHƯƠNG 5 TỔNG QUAN VỀ VI ĐIỀU KHIỂN 5.1. Tổng Quan Về Vi Điều Khiển: - Bộ vi điều khiển viết tắt là micro-controller, là mạch tích hợp trên 1 chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống. - Trong các thiết bị điện và điện tử dân dụng , các bộ vi điều khiển điều khiển hoạt động của tivi, máy giặt, lò vi ba…Trong hệ thống sản xuất tự động , bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Các hệ thống càng “thông minh” thì vai trò của hệ thống vi điều khiển càng quan trọng. 5.2 Vi Điều Khiển 89V51RB2 Hình 5. 1: Sơ đồ chân của 89V51RB2 IC 89C51 là IC vi điều khiển có 40 chân, hình dạng IC vi điều khiển 89C51 như hình trên. MCS-51 là họ vi điều khiển của hãng Intel. Vi mạch tổng quát của MCS-51 là 89C51. Chip 89C51 có một số đặc trưng cơ bản sau: - Bộ nhớ chương trình bên trong: 4KB (ROM). - Bộ nhớ dữ liệu bên trong: 128 byte (RAM) - Bộ nhớ chương trình bên ngoài: 64KB (ROM) - Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM) - Có 4 port xuất nhập (I/O port) 8 bit - 2 bộ định thời 16 bit - Mạch giao tiếp nối tiếp - Bộ xử lý bit (thao tác trên các bit riêng lẻ) - 210 vị trí nhớ được định địa chỉ, mỗi vị trí một bit - Nhân / chia trong 4 us 5.3 Chức Năng Các Chân Của Chip 89V51RB2: - Port 0 (P0.0 – P0.7): số chân từ 32-39 Chức năng: Port xuất nhập dữ liệu (P0.0 – P0.7) không sử dụng bộ nhớ ngoài. Mộ chức năng thứ 2 là dùng làm bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ nhớ ngoài. Lưu ý: Khi port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở kéo lên bên ngoài. - Port 1 (P1.0 – P1.7): có số chân từ 1 – 8 Chức năng: xuất nhập dữ liệu (P1.0 – P1.7) sử dụng hoặc không sử dụng bộ nhớ ngoài. - Port 2 (P2.0 – P2.7) có số chân từ 21 – 28 Chức năng: xuất nhập dữ liệu (P2.0 - P2.7) không sử dụng bộ nhớ ngoài. Chức năng thứ 2 dùng làm bus địa chỉ byte cao (A8 – A15) có sử dụng bộ nhớ ngoài. - Port 3 (P3.0 – P3.7) có số chân từ 10 – 17 Chức năng: xuất nhập dữ liệu (P3.0 – P3.7) không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt. Chức năng thứ 2 là dùng làm các tín hiệu điều khiển có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt. PHẦN B SƠ ĐỒ NGUYÊN LÝ CHƯƠNG TRÌNH MATLAB CHƯƠNG 1: SƠ ĐỒ KHỐI - NGUYÊN LÝ HOẠT ĐỘNG PHẦN CỨNG 1.1 Sơ Đồ Khối Giao Tiếp Giữa MatLab Với Vi Điều Khiển: Khởi Động Nhận Dữ Liệu Phím RI = 1 A = # 82H Mở Cửa Dừng Đóng Cửa Phát Dữ Liệu Đ S S S Đ Đ 1.2 Sơ Đồ Nguyên Lý: 1.3 Nguyên Lý Hoạt Động Phần Cứng: - Sử dụng một webcam để chụp hình ảnh người và đưa vào máy tính dùng hàm trong MatLab để xử lý nhận dạng, xuất tín hiệu ra cổng Com điểu khiển động cơ đóng mở cửa. - Ở đây có hai sơ đồ mạch chính. Mạch xử lý và mạch điều khiển động cơ. Mạch xử lý gồm vi xử lý nguồn và cổng nối tiếp RS232. Cổng nối tiếp thực hiện giao tiếp máy tinh với vi xử lý qua IC MAX232. - Khi khởi động vi xử lý sẽ vào chế độ chuẩn bị sẵn sàng nhận dữ liệu từ máy tính gửi xuống và quét phím để xử lý. Khi có người nhấn nút yêu cầu mở cửa thi vi xử lý sẽ nhận lệnh và xử lý gửi lên máy tính giao tiếp matlab. Matlab sẽ nhận biết có dữ liệu được truyền lên (lúc này matlab đã mở công giao tiếp RS232) và thực hiện xử lý tín hiệu. Chụp ảnh và kiểm tra xem người này có trong cơ sở dữ liệu hay không. Nếu có thì matlab xuất lệnh gửi xuống vi xử lý mở của, còn không có thi matlab xuất lệnh không mở và quay trở lại trạng thái ban đầu. - Nếu không nhấn nút mở cửa chúng ta vẫn có thể kiểm tra được trên máy tính xem người đó có được phép vào hay không. Và thực hiện truyền dữ liệu xuống vi xử lý cho mở cửa hay không. Sau khi thực hiện xong các lệnh giao tiếp matlab sẽ được đóng cổng giao tiếp lại và khi nào cần truyền hay nhận dữ liệu sẽ được mở ra lại. - Mạch điều khiển công suất cách ly bởi opto – điều khiển động cơ quay thuận, nghịch dựa vào sự đảo chiều của rơle và kéo dòng của IRF540. - Opto: điều khiển cách ly. - IRF540: đóng ngắt và kéo dòng cho động cơ. - ULN2004: cổng đệm đảo. - Rơle: chuyển trạng thái động cơ. - Tụ C9,10: khử nhiễu xung nhọn động cơ tạo nên. 1.4 Các Trạng Thái Hiển Thị: D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo sẵn sàn nhận dữ liệu. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo đã thu dữ liệu xong. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo đã nhận lệnh mở cửa và phát dữ liệu. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo đã phát dữ liệu xong. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo dừng lại. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo đã thu dữ liệu xong. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo đóng cửa lại. D1 D2 D3 D4 D5 D6 D7 D8 Đèn báo dữ liệu không đúng. 1.5 Chương Trình Kết Nối Phần Cứng: *************************************************** ;CHƯƠNG TRÌNH ĐIỀU KHIỂN ;*************************************************** ;KẾT NỐI: LED -> P1, RXD -> TXD, KEY0 -> INT0 (ACT = 0) ;*************************************************** $MOD51 ORG 00H MAIN: MOV TMOD,#20H ; TIMER 1: MODE 2 - Tạo Baud cho Serial Port. MOV TH1,#-26 ; BAUD RATE = 1200 SETB TR1 ; TIMER hoạt động MOV SCON,#52H ; SERIAL: MODE 1, TI = 1, RI = 0, REN = 1. LCALL RECEI_DATA ; Gọi CTC thu dữ liệu qua Serial Port. LCALL PHIM ; Gọi CTC quét phím LCALL HIEN_THI ; Hiển thị và thực thi lệnh. LCALL MAIN ;*************************************************** PHIM: MOV R0,#50 ; Biên lặp – chống dội KEY_NHAN: JB INT0,EXIT1 ; Cho phím được nhận. DJNZ R0,KEY_NHAN ; Giảm biến lặp – Chống dội (phím đã nhận). MOV R0,#50 ; Biến lặp – Chống dội phím. KEY_NHA: JNB INT0,$ ; Cho phím được nhận. DJNZ R0,KEY_NHA MOV P1,#00H CALL DELAY MOV A,#0FH ; Offset của dữ liệu. LCALL TRANS_DATA ; Gọi CTC thu dữ liệu qua Serial Port. MOV P1,#0FFH ; Hiện LED nhận lệnh phát dữ liệu xong. CALL DELAY EXIT1: RET ;*************************************************** HIEN_THI: CJNE A,#82H,EXIT2 ; Kiểm tra dữ liệu. MOV P1,#0FDH ; Xuất port hiện thị mở cửa. MOV P0,#02H ; Xuất port thục thi lệnh mở cửa. MOV R2,#12 N1: CALL DELAY ; Tạo trể một thời gian. DJNZ R2,N1 MOV P0,#03H ; Xuất port dừng lại một thời gian. MOV P1,#0FFH ; Xuất port hiện thị dừng lại. CALL DELAY CALL DELAY DONG_CUA: MOV P1,#0FEH ; Xuất port hiện thị đóng cửa. MOV P0,#00H ; Xuất port đóng cửa lại. MOV R2,#14 N2: CALL DELAY ; Tạo trễ một thời gian. DJNZ R2,N2 MOV A,#0FFH EXIT2: MOV P0,#03H ; Xuất port dừng lại. MOV P1,A ; Xuất port hiện thị dữ liệu thu được. CALL DELAY RET ;*************************************************** TRANS_DATA: ; CTC phát dữ liệu. JNB TI,$ ; Kiểm tra phát xong. CLR TI ; Xóa TI để chuẩn bị cho lần phát kế tiếp. MOV SBUF,A ; Phát dữ liệu. RET ;*************************************************** RECEI_DATA: ; CTC thu dữ liệu. MOV P1,#0F0H ; Xuất port hiện thị nhận lênh thu dữ liệu. K1: JNB INT0,EXIT3 JNB RI,K1 ; Kiểm tra thu xong. CLR RI ; Xóa RI để chuẩn bị cho lần thu kế tiếp. MOV A,SBUF ; Thu dữ liệu. MOV P1,#0FH ; Xuất port hiển thị đã thu xong dữ liệu. EXIT3: RET ;*************************************************** DELAY: PUSH 00H MOV R0,#250 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;*************************************************** END CHƯƠNG 2 SƠ ĐỒ KHỐI – NGUYÊN LÝ HOẠT ĐỘNG PHẦN MỀM 2.1 Sơ Đồ Khối Matlab: Khởi Động Chụp Ảnh Kiểm Tra Huấn Luyện Giao Tiếp Tự Động Nhận Dữ Liệu Phát Dữ Liệu Thoát Giao Tiếp Thoát Chương Trình 2.2 Quá Trình Xử Lý Ảnh: 2.2.1 Xử lý video và giao tiếp qua wedcam: Chụp lại ảnh kiểm tra hiện lên giao diện và lưu ảnh vào đường dẫn thư mục cần lưu. >> vid=videoinput('winvideo',1); hinh=getsnapshot(vid); imwrite(hinh,'E:\nguyen viet huy\baitapmatlab\huy\th\test\1.jpg'); delete(vid); a=imread('E:\nguyen viet huy\baitap matlab\huy\th\test\1.jpg'); subplot(1,2,1); imshow(a); Ảnh chụp cần kiểm tra đưa vào máy tính như sau: Chụp ảnh huấn luyện và lưu vào đường dẫn. >>for i=1:15 vid=videoinput('winvideo',1); preview(vid); pause; closepreview(vid); hinh=getsnapshot(vid); if i==1 imwrite(hinh,'E:\nguyen viet huy\baitap matlab\huy\th\train\1.jpg'); delete(vid); a=imread('E:\nguyen viet huy\baitap matlab\huy\th\train\1.jpg'); subplot(1,2,1); imshow(a) title('1'); pause; elseif i==2 imwrite(hinh,'E:\nguyen viet huy\baitap matlab\huy\th\train\2.jpg'); delete(vid); a=imread('E:\nguyen viet huy\baitap matlab\huy\th\train\2.jpg'); subplot(1,2,1); imshow(a) title('2'); pause; elseif i==15 imwrite(hinh,'E:\nguyen viet huy\baitap matlab\huy\th\train\15.jpg'); delete(vid); a=imread('E:\nguyen viet huy\baitap matlab\huy\th\train\15.jpg'); subplot(1,2,1); imshow(a) title('15'); end end 2.2.2 Tạo cơ sở dữ liệu. Ban đầu ta sẽ tạo đường dẫn tới thư mục chứa cơ sở dữ liệu “train”. Trong thư mục này giả sử gồm có P bức ảnh. Đầu tiên ta sẽ đọc tất cả các bức ảnh trong thư mục nay. Biến tất cả các ảnh có kích thước M*N thành một vecto cột M*Nx1. Sử dụng hàm “reshape” và sau đó đặt vào ma trận T. ma trận T sẽ có kích thước là M*NxP. >> trainPath='train'; csdl = dir(trainPath); soanh = 0; for i = 1:size(csdl,1) if not(strcmp(csdl(i).name,'.')|strcmp(csdl(i).name,'..')|strcmp(csdl(i).name,'Thumbs.db')) soanh = soanh + 1; end end T = []; for i = 1 : soanh str = int2str(i); str = strcat('\',str,'.jpg'); str = strcat(trainPath,str); img = imread(str); img = rgb2gray(img); [dong cot] = size(img); tam = reshape(img',dong*cot,1); T = [T tam]; end 2.2.3 Tìm trị riêng và vecto riêng: Từ ma trận T ta sẽ tính ra ảnh m là trung bình của tất cả các ảnh trong ma trận T bằng cách sử dụng hàm mean. Sau đó ta lấy từng bức ảnh trong ma trận T trừ đi cho ảnh trung bình. Ta sẽ được ma trận A có cung kích thước ma trận T là M*NxP. >> m = mean(T,2); soanh = size(T,2); A =

Các file đính kèm theo tài liệu này:

  • docnoi dung do an 2B.doc
  • pptnhan dien mat nguoi - PCA.ppt
  • docTIEUDE~1.DOC
  • doctrang bia do an 2B.doc