Với M là số ảnh đầu vào, mỗi ảnh được chuyển thành vector N chiều. Tương ứng mỗi ảnh Ii với một vector Γi, Ii (ảnh N×N) → Γi (vector N2 ×1).
b. Tính tốn giá trị trung bình
Trung bình của các vector đầu vào được tính như cơng thức (2.4):
Ψ = 1
𝑀 . ∑𝑀𝑖=1 Γi ( 2.4 )
Trong đó, với M là số ảnh mẫu, Γi là vector 1 chiều đại diện cho mỗi ảnh. Với Ψ là vector trung bình được tính cho tất cả các Γi.
c. Tính sai số của các ảnh
Tính sai số của các ảnh so với các vector trung bình được tính theo cơng thức sau:
Ω = Γi - Ψ ( 2.5 )
Trong đó, Ω là vector sai số ứng với mỗi ảnh Γi.
d. Tính tốn các ma trận tương quan
Ta cần tính các ma trận tương quan như công thức (2.6):
C = 1
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 17 Với C gọi là ma trận tương quan (kích thước N2 ×N2 )
A= 1
𝑀[Ω1 Ω2… Ω𝑛] ( 2.7 )
Với A là ma trận N2 ×M, Ωn là giá trị sai số.
e. Tính các giá trị riêng và các vector riêng
Tính tốn các vector riêng và giá trị riêng của ma trận là ta cần tính với ma trận C hay ta cần tính giá trị của A.AT. Gọi vi, 𝜇i lần lượt là các vector riêng và giá trị riêng của ma trận C. Cơng thức tính các giá trị vector riêng và giá trị riêng được trình bày như công thức (2.8):
AT . A . vi = 𝜇i . vi ( 2.8 )
Chuẩn hóa các vector đặc trưng 𝜇𝑖 về vector đơn vị: ||𝜇i || =1. Để giảm tối đa số chiều của một ảnh, ta cần giữ lại các vector đặc trưng (tương ứng với nó là các vector riêng). Sau khi trừ đi các giá trị trung bình, ta sẽ nhận được K vector đặc trưng. Ứng với mỗi ảnh Ωi, sẽ biểu diễn một vector:
D i = [ 𝑤1𝑖 𝑤2𝑖 ⋮ 𝑤𝑘𝑖] i=1,2,…M ( 2.9 ) Trong đó:
- 𝑤𝑗𝑖 (j=1..K) là các trọng số tương ứng với K vector đặc trưng. - D𝑖 là vector đại diện cho khuôn mặt thứ i trong tập ảnh mẫu.
2.5.2. Nhận dạng dựa trên đặc trưng riêng a. Tìm đặc trưng riêng
Nhận dạng khn mặt sau khi đã được chuẩn hóa (kích thước và định dạng), ta tiến hành trích lấy đặc trưng dùng thuật tốn phân tích thành phần chính đã nêu ở phần 2.5.1 để còn lại được K vector đặc trưng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 18 Chẳng hạn, ảnh đầu vào là I. Tiến hành chuyển I thành ảnh xám và vector 1 chiều Γ đại diện cho ảnh I. Sau đó sẽ chuẩn hóa, trừ đi vector trung bình như cơng thức (2.5) đã được trình bày.
c. Đưa vào khơng gian đặc trưng
Sau khi chuẩn hóa ở phần trên, đưa ảnh I vào khơng gian riêng bằng công thức:
Ω̂ = ∑𝑘𝑖=1𝑤𝑖𝑢𝑖 với 𝑤𝑖 = 𝑤𝑖𝑇Ω ( 2.10 ) Trong đó:
- K là số vector đặc trưng của không gian ảnh.
- ui (i=1..K) là K vector đặc trưng lớn nhất, wi là các trọng số tương ứng với các vector đặc trưng.
- Ảnh sau khi được đưa vào không gian trị riêng thì nó sẽ được tương đương với một vector D mà mỗi phần tử của D là hệ số tương ứng của ảnh thử nghiệm so với các vector đặc trưng tương ứng trong không gian trị riêng.
D =[ 𝑤1 𝑤2 ⋮ 𝑤𝑘 ] ( 2.11 )
d. Tính khoảng cách khơng gian vector Euclide
Tính khoảng cách Euclide của ma trận D so với không gian mặt. Tức là ta sẽ đi tính khoảng cách tới từng bức ảnh trong tập ảnh mẫu và tìm ra khoảng cách tới bức ảnh luyện gần nhất trong không gian mặt. Khoảng cách này được gọi là khoảng cách trong không gian mặt.
er = min‖D − 𝐷𝑙‖ ( 2.12 )
Sau khi tính được khoảng cách Euclide, ta so sánh với khoảng cách ngưỡng Tr (khoảng cách ngưỡng này được xác định thực nghiệm tùy thuộc vào từng tập ảnh mẫu và tùy thuộc vào số vector đặc trưng được giữ lại). Nếu er < Tr thì Γ được nhận diện là khuôn mặt thứ l trong tập training, cịn khơng thì Γ khơng là khn mặt nào trong
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 19 tập luyện đã cho. Hình 2.11 minh họa khoảng cách vector Euclide trong nhận dạng khn mặt.
Hình 2.11. Minh họa khoảng cách vector Euclide
2.6. QUÁ TRÌNH HOẠT ĐỘNG CỦA HỆ THỐNG BÁO TRỘM
.
Hình 2.12. Sơ đồ khối hệ thống báo trộm
Ảnh, video đầu vào Nhận dạng đối tượng Nhận dạng khuôn mặt Cắt ảnh khuôn mặt Cắt ảnh đối tượng Chuyển về ảnh xám Chuyển về cùng pixel ảnh mẫu So sánh Thư viện ảnh mẫu Báo tin nhắn, điều
khiển thiết bị Lưu ảnh
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 20 Q trình hoạt động của hệ thống được tóm tắt qua sơ đồ khối như hình 2.12. Đây là tồn bộ q trình phát hiện đối tượng, cho đến nhận dạng được đối tượng và cuối cùng là gửi tin nhắn cảnh báo đến người dùng. Mỗi khối tương ứng sẽ có một hàm, một chương trình xử lý tương ứng. Hoạt động từng khối như sau:
- Khối ảnh và video đầu vào: Camera Pi kết nối với Raspberry có nhiệm vụ chính là lấy ảnh từ mơi trường ngồi khi phát hiện có người di chuyển trong một khoảng cách cho phép.
- Khối nhận dạng đối tượng và cắt ảnh đối tượng: khi Camera lấy ảnh vào, hệ thống sẽ nhận dạng được ngay đối tượng. Sau đó sẽ khoanh vùng và cắt khung hình đã nhận dạng đối tượng, sau cùng là gửi tín hiệu đến Raspberry để gửi tin nhắn có người đột nhập.
- Khối nhận dạng và cắt ảnh khuôn mặt: Khi hệ thống phát hiện có khn mặt nằm trong tầm quan sát của Camera, Camera sẽ chụp lại ảnh khn mặt đó. Hệ thống sẽ khoanh vùng khn mặt được phát hiện, đồng thời dùng chương trình đã viết để cắt ảnh và lưu theo tỉ lệ cho trước, tạo cơ sở cho quá trình nhận dạng.
- Chuyển về ảnh xám: ảnh chụp từ Camera là ảnh màu, với đuôi định dạng ảnh là jpg. Ta chuyển qua ảnh xám nhằm mục đích là giảm dung lượng ảnh, nhưng đặc điểm ảnh khơng thay đổi. Góp phần làm cho quá trình xử lý được nhanh hơn. Nhất là đối với Raspbery có tốc độ xử lý chậm hơn máy tính, chuyển qua ảnh xám là điều cần thiết.
- Chuyển về cùng pixel ảnh mẫu: Mỗi ảnh sau khi được chụp sẽ được chuyển về cùng pixel với ảnh mẫu bằng chương trình đã viết trước đó. Giai đoạn tiền xử lý có vai trị quan trọng và ảnh hưởng trực tiếp đến kết quả xử lý của hệ thống. Việc đưa ảnh có cùng kích thước với ảnh mẫu là công việc cần thiết trước khi xử lý các bước tiếp theo.
- Thư viện ảnh mẫu: Hệ thống sẽ phải xây dựng một thư viện ảnh, bao gồm tất cả các ảnh của đối tượng cần nhận dạng. Chẳng hạn như ảnh ở các môi trường ánh sáng khác nhau, khoảng cách xa gần và tư thế chụp khác nhau. Với thư viện ảnh đa dạng như vậy, sẽ giúp hệ thống nhận dạng với tỉ lệ cao hơn.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 21 - Khối so sánh: hệ thống nhận dạng đối tượng bằng thuật tốn phân tích thành phần chính. Ảnh đầu vào sẽ được xử lý cơ bản trước khi hệ thống nhận dạng bằng phương pháp trên.
- Khối báo tin nhắn: khi hệ thống nhận dạng được đối tượng sẽ tự động gửi tin nhắn đến người dùng. Nếu nhận diện được cả khuôn mặt, hệ thống sẽ gửi tin nhắn đến người dùng là đối tượng là lạ hay quen.
- Khối lưu ảnh: sau khi nhận dang được dáng người và cắt được đối tượng, ảnh sẽ được lưu vào một thư mục để người dùng có thể biết được ai đã bị hệ thống ghi hình lại. Hình ảnh được lưu lại kèm theo giờ, ngày, tháng, năm rất chính xác theo giờ hệ thống máy tính.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 22
Chương 3. TÍNH TỐN VÀ THIẾT KẾ 3.1. GIỚI THIỆU 3.1. GIỚI THIỆU
Hệ thống “Báo Trộm Dùng Camera Và Kit Raspberry” hoạt động dựa vào việc module Camera pi kết nối với Raspberry pi 2 để lấy ảnh và điều khiển GPIO để gửi tin nhắn thông qua Module Sim900. Khi nhận dạng được đối tượng di chuyển hoặc nhận dạng được khuôn mặt người. Hệ thống dùng phần mềm Matlab để xử lý ảnh vừa thu rồi xuất kết quả xuống Raspberry. Kit Raspberry sau đó sẽ điều khiển xử lý báo tin nhắn.
3.2. TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG GỬI TIN NHẮN
3.2.1. Mô tả hệ thống
Để điều khiển báo động qua tin nhắn, hệ thống sử dụng đường truyền tín hiệu thông qua chân Tx, Rx của Pic 16F887 để kết nối với module Sim900. Hệ thống khi hoạt động, nếu phát hiện người hoặc khuôn mặt. Raspberry sẽ điều khiển chân GPIO lên mức logic 1. Sau khi nhận tín hiệu từ Raspberry, khối điều khiển là Pic 16F887 sẽ xử lý thông tin nhận vào, điều khiển module Sim900 gửi tin nhắn đến cho người dùng. Hình 3.1 mơ tả tồn bộ sơ đồ khối của mạch gửi tin nhắn và điều khiển thiết bị.
Hình 3.1. Sơ đồ khối của khối báo tin nhắn
Module Sim900 Pic 16F887 Khối Nguồn Khối hiển thị Điều khiển thiết bị
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 23 Chức năng từng khối trong sơ đồ hình 3.1 được trình bày như sau:
- Khối nguồn: Cấp nguồn cho toàn bộ hệ thống hoạt động.
- Khối hiển thị LCD: hiển thị trạng thái hoạt động của hệ thống. Chẳng hạn như hiển thị hệ thống đã sẵn sàng hoạt động, hệ thống đã gửi tin nhắn.
- Khối PIC 16F887: đây là khối xử lý trung tâm của mạch, có nhiệm vụ nhận tín hiệu từ Raspberry, sau đó điều khiển module Sim900 gửi tin nhắn đến số điện thoại đã được lập trình trước.
- Khối module Sim900: chức năng chính là nhận tín hiệu từ vi xử lý và gửi tin nhắn đến người dùng.
3.2.2. Tính tốn và thiết kế khối báo động
a. Nguồn cung cấp cho khối module SIM900 + Pic 16F887
Theo như sơ đồ mạch nguyên lý khối nguồn của hệ thống được trình bày như hình 3.2, nguồn vào chân số 1 là nguồn 12 VDC sẽ được tụ lọc phẳng để điện áp ổn định. Chân số 3 và 5 của IC LM2596 được nối mass. Chân gõ ra số 2 được nối với diode zenner D5 (1N5824 – theo datasheet) để đặt ngưỡng điện áp, cuộn dây L1 dùng lọc nhiễu và giúp ổn định dịng điện ngõ ra.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 24 Nếu ta dùng mạch module ngoài thị trường, ta có thể thay đổi giá trị điện áp ngõ ra từ khoảng 1.5 đến 30V. Điện áp ngõ vào có thể thay đổi từ 3v đến 40v. Dịng điện ngõ ra tương đối lớn, vào khoảng 3A. Để mạch hoạt động tốt, ta cần cấp nguồn có độ ổn định cao. Đặc biệt là đối với module Sim900, dòng điện từ nguồn cung cấp phải tầm 3A thì module mới đảm bảo hoạt động tốt [7]. Một số đặc điểm của LM2596 được dùng trong đồ án này như:
- Dòng điện ngõ ra cao khoảng 3A. - Điện áp ngõ vào có thể lên đến 40 V.
- LM2596 hoạt động ở tần số khoảng 150 KHz.
b. Giới thiệu về PIC 16F887
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology được tích hợp nhiều chức năng như ADC, PWM, và các chức năng khác. Hình 3.3 là sơ đồ chân vi xử lý PIC 16F887 được dùng trong đồ án.
Đặc điểm của vi xử lý PIC:
- Người dùng có thể lập trình với 35 lệnh đơn giản (có 35 lệnh đơn).
- Bộ nhớ EFPROM 256x8 byte cho phép xóa và lập trình 1.000.000 lần và có thê tồn tại 40 năm.
- Số port I/O là 35 port (mức logic thường từ 0V đến 5.5V, ứng với logic 0, 1). - Dải điện áp hoạt động từ 2v đến 5.5v. Dòng điện sử dụng 25mA. Cho phép
đọc / ghi bộ nhớ khi mạch hoạt động.
- Vi điều khiển PIC 16F887 có 40 chân trong đó có 35 I/O để kết nối với ngoại vi. Bộ nhớ của PIC 16F887 có 3 bộ nhớ Flash 8192 words, SRAM 368 bytes, EEPROM 256 bytes [8].
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 25
Hình 3.3. Sơ đồ chân vi điều khiển PIC 16F887 [10].
Vi điều khiển PIC 16F887 có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE. Chức năng của từng chân xuất nhập trong mỗi cổng hồn tồn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó.
- Port A
Có 8 pin I/O, đây là các chân hai chiều, nghĩa là có thể xuất và nhập được. Chức năng I/O này được điều khiển bởi thanh ghi TRISA. Muốn xác lập chức năng của một chân trong Port A là input, ta set bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong Port A là output, ta xóa (clear) bit điều khiển tương ứng với chân đó trong thanh ghi TRISA. Bảng 3.1 thanh ghi Port A của vi xử lý PIC
Bảng 3.1. Thanh ghi Port A
R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 26 - Port B
Có 8 pin I/O, đây là các chân hai chiều, nghĩa là có thể xuất và nhập được. Chức năng I/O này được điều khiển bởi thanh ghi TRISB. Muốn xác lập chức năng của một chân trong Port B là input, ta set bit điều khiển tương ứng với chân đó trong thanh ghi TRISB và ngược lại, muốn xác lập chức năng của một chân trong Port A là output, ta clear bit điều khiển tương ứng với chân đó trong thanh ghi TRISB. Port được trình bày như bảng 3.2.
Bảng 3.2. Thanh ghi Port B
R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Bit 7 bit 0
- Port C
Port C gồm 8 pin I/O (RC0 – RC7). Thanh ghi điều khiển xuất nhập tương ứng là TRISC, cách xác lập vào ra tương tự như Port A. Bên cạnh đó Port C cịn chứa các chân chức năng của bộ so sánh, bộ timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART (bảng 3.3)
Bảng 3.3. Thanh ghi Port C
R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0
Bit 7 bit 0
- Port D
Port D gồm 8 pin I/O (RD0 – RD7), 2 chiều, tương ứng với hướng dữ liệu đăng ký là TRISD. Thiết lập TRISD (=1) tương ứng Port D là đầu vào và (=0) là đầu ra.
Bảng 3.4. Thanh ghi Port D
R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 27
3.2.3 Sơ đồ nguyên lý của toàn mạch
Hình 3.4. Sơ đồ ngun lý của tồn mạch a. Mơ tả q trình hoạt động của mạch:
Mạch sau khi được cấp nguồn sẽ bắt đầu khởi động module Sim900 ở chế độ sẵn sàng. Sau khi sim đã hoạt động, vi xử lý sẽ điều khiển gửi một tin nhắn cho người dùng báo module Sim900 đã vào trạng thái sẵn sàng và chờ tín hiệu điều khiển. Lúc đó, mạch sẽ chờ tín hiệu điều khiển từ Raspberry để kích mạch gửi tin nhắn và gọi nếu hệ thống nhận dạng được dáng người hoặc nhận dạng ra khuôn mặt người. LCD sẽ hiển thị trạng thái sẵn sàng của module Sim900 và trạng thái chờ lệnh điều khiển. Đến khi nào có tín hiệu điều khiển, vi xử lý sẽ điều khiển module Sim900 gửi tin nhắn và kích hoạt khối điều khiển đèn, cịi báo động. Lúc đó người dùng sẽ nhận được cuộc gọi, tin nhắn cảnh báo và có thể thơng qua tin nhắn để tắt thiết bị. Cú pháp được quy định để bảo mật, tránh trường hợp bị người lạ có thể điều khiển thiết bị. Hình 3.4 là toàn bộ sơ đồ mạch của khối báo động gửi tin nhắn cảnh báo của hệ thống.