BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
---------------------------------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ
THI CÔNG MẠCH CHỐNG TRỘM
THÔNG MINH
GVHD : ThS. Võ Đức Dũng
SVTH: Tăng Nguyễn Công Thiên
MSSV : 13141328
Tp. Hồ Chí Minh - 7/2018
BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ
108 trang |
Chia sẻ: huong20 | Ngày: 13/01/2022 | Lượt xem: 367 | Lượt tải: 0
Tóm tắt tài liệu Đồ án Ứng dụng xử lý ảnh thiết kế thi công mạch chống trộm thông minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Í MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
---------------------------------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
ĐỀ TÀI:
ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ
THI CÔNG MẠCH CHỐNG TRỘM
THÔNG MINH
GVHD : ThS. Võ Đức Dũng
SVTH: Tăng Nguyễn Công Thiên
MSSV : 13141328
Tp. Hồ Chí Minh - 7/2018
TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH
Tp. HCM, ngày 16 tháng 7 năm 2018
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Tăng Nguyễn Công Thiên MSSV: 13141328
Chuyên ngành: Điện tử công nghiệp Mã ngành: 141
Hệ đào tạo: Đại học chính quy Mã hệ: 1
Khóa: 2013
I. TÊN ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH
CHỐNG TRỘM THÔNG MINH
II. NHIỆM VỤ
1. Các số liệu ban đầu:
Matlab 2017a.
Sử dụng Webcam Logitech.
Kit điều khiển chính: Arduino Uno R3, Servo SG90, Module Sim 800A, Nguồn tổ
ong 10V-5A, Chuông, 2 Led đơn.
2. Nội dung thực hiện:
Để tài thực hiện nội dung phát hiện người và nhận diện khuôn mặt với đầu vào là
hình ảnh lấy được từ webcam, kết quả sẽ được gửi qua arduino để điều khiển Servo
SG90, Module Sim 800A, Chuông, 2 Led đơn. Nhóm sẽ thực hiện các nôi dung như
sau:
Tìm hiểu về Matlab.
Tìm hiểu về Arduino Uno R3.
Cài đặt thưc viện cho Arduino và các liên kết giữa Matlab và Arduino.
Tìm hiểu các thuật toán nhận diện, phát hiện người và khuôn mặt.
Xây dựng quá trình xử lý ảnh đầu vào.
Xây dựng hệ thống phát hiện người và nhận diện khuôn mặt đồng thời gửi dữ liệu
thu được qua Arduino.
Xây dựng chương trình điều khiển servo SG90, Module Sim 800A, chuông, 2 Led
đơn.
Đánh giá kết quả thực hiện.
III. NGÀY GIAO NHIỆM VỤ: 21/03/2018
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 05/07/2018
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS. Võ Đức Dũng
CÁN BỘ HƯỚNG DẪN BM. ĐIỆN TỬ CÔNG NGHIỆP - Y SINH
TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
Tp.HCM, ngày 19 tháng 03 năm 2018
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên : Tăng Nguyễn Công Thiên ..................................................................
Lớp:13141DT3B .......................................................... MSSV:13141328 .......................
Tên đề tài: ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH CHỐNG
TRỘM THÔNG MINH
Xác nhận
Tuần/ngày Nội dung
GVHD
1 Gặp GVHD để phổ biến quy định thực hiện,
(19-25/3) chọn đề tài, tên đề tài, thời gian làm việc.
Duyệt đề tài.
Viết đề cương cho đề tài.
2 Tìm hiểu hoạt động và các kiến thức liên quan
(26/3-1/4) tới Arduino và Matlab.
3 Cài đặt Matlab, kết nối Arduino với Matlab.
(2/4-8/4)
4 Lập trình và xây dựng chương trình cho xử lý
(9/4-15/4) hình ảnh đầu vào trên Matlab.
5 Xây dựng hệ thống nhận diện và phát hiện
(16/4-22/4) chuyển động con người.
6 Xây dựng hệ thống nhận diện và so sánh
(23/4-29/4) khuôn mặt
Tiến hành xây dựng cơ sở dữ liệu để lưu giữ
khuôn mặt
7 Lập trình Arduino với các chân I/O để nhúng
(30/4-6/5) dữ liệu.
8 Thiết kế sơ đồ khối giải thích chức năng các
(7/5-13/5) khối của kết nối ngoại vi.
Tính toán số liệu.
9 Thi công mô hình.
(14/5-20/5) Lắp đặt và kết nối các thiết vị ngoại vi.
10 Kiểm tra lỗi và chạy thử chương trình trên mô
(21/5-28/5) hình hoàn chỉnh.
Viết báo cáo hoàn chỉnh.
11 Hoàn thiện chính sửa báo cáo gửi cho GVHD
(29/5-3/6) để xem xét và góp ý lần cuối.
12 Nộp quyển báo cáo hoàn chỉnh và làm slide
(4/6-11/6) powerpoint báo cáo.
GV HƯỚNG DẪN
(Ký và ghi rõ họ và tên)
ii
LỜI CAM ĐOAN
Đề tài này là do nhóm sinh viên Tăng Nguyễn Công Thiên tự thực hiện, dựa vào một số
tài liệu trước đó và không sao chép từ tài liệu hay công trình đã có trước đó.
Người thực hiện đề tài
Tăng Nguyễn Công Thiên
iv
LỜI CẢM ƠN
Trong thời gian thực hiện đề tài, những người thực hiện được sự giúp đỡ của gia
đình, quý thầy cô và bạn bè nên đề tài đã được hoàn thành. Những người thực hiện xin
chân thành gửi lời cảm ơn đến:
Thầy Võ Đức Dũng, giảng viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã
trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để nhóm có thể hoàn thành tốt đề
tài.
Những người thực hiện cũng xin chân thành cám ơn đến các thầy cô trong khoa
Điện - Điện tử của trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM đã tận tình dạy dỗ, chỉ
bảo, cung cấp cho những người thực hiện những kiến thức nền, chuyên môn làm cơ sở để
hoàn thành đề tài này.
Cảm ơn gia đình đã động viên và luôn luôn bên cạnh trong những lúc khó khăn
nhất.
Xin gửi lời cảm ơn đến những người bạn sinh viên khoa Điện-Điện tử đã giúp đỡ
những người thực hiện đề tài để có thể hoàn thành tốt đề tài này.
Xin chân thành cảm ơn!
Người thực hiện đề tài:
Tăng Nguyễn Công Thiên
v
MỤC LỤC
Trang bìa .................................................................................................................... i
Nhiệm vụ đồ án ........................................................................................................ ii
Lịch trình thực hiện đồ án tốt nghiệp ...................................................................... iii
Cam đoan ................................................................................................................ iv
Lời cảm ơn ................................................................................................................ v
Mục lục .................................................................................................................... vi
Liệt kê hình vẽ ......................................................................................................... ix
Liệt kê bảng vẽ ........................................................................................................ xi
Tóm tắt ................................................................................................................... xii
CHƯƠNG 1. TỔNG QUAN ............................................................................ 1
1.1 LÝ DO CHỌN ĐỀ TÀI ...................................................................................... 1
1.2 MỤC TIÊU ......................................................................................................... 2
1.2.1 Mục tiêu ......................................................................................................... 2
1.2.2 Giới hạn ......................................................................................................... 2
1.3 BỐ CỤC ĐỒ ÁN TỐT NHIỆP ........................................................................... 2
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ................................................................ 4
2.1 GIỚI THIỆU VỀ HỆ THỐNG XỬ LÝ ẢNH .................................................... 4
2.1.1 Phần thu nhận ảnh (Image Acquisiton) ......................................................... 5
2.1.2 Tiền xử lý (Image Processing) ...................................................................... 6
2.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh ............................................. 6
2.1.4 Biểu diễn ảnh (Image Representation) .......................................................... 6
2.1.5 Nhận dạng và nội suy (Image Recognition and Interpretation) .................... 6
2.1.6 Cơ sở tri thức ................................................................................................. 7
2.1.7 Các thành phần cơ bản của hệ thống ............................................................ 7
2.2 NHỮNG VẤN ĐỀ CƠ BẢN TRONG XỬ LÝ ẢNH ........................................ 8
2.2.1 Điểm ảnh (Picture Element) .......................................................................... 8
2.2.2 Độ phân giải của ảnh ..................................................................................... 8
2.2.3 Mức xám của ảnh .......................................................................................... 9
2.2.4 Định nghĩa ảnh số .......................................................................................... 9
vi
2.3 GIỚI THIỆU KHÁI QUÁT VỀ CÁC LINH KIỆN SỬ DỤNG TRONG THIẾT
KẾ, THI CÔNG ĐỀ TÀI .......................................................................................... 9
2.3.1 Mạch Arduino Uno R3 .................................................................................. 9
2.3.2 Tổng quan về động cơ Servo ....................................................................... 14
2.3.3 Tổng quan về Buzzer................................................................................... 14
2.3.4 Module SIM 800A ...................................................................................... 15
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ. ................................................ 16
3.1 TỔNG QUAN CÁC KỸ THUẬT NHẬN BIẾT MÀU DA DỰA TRÊN TÍNH
CHẤT ĐIỂM ẢNH ................................................................................................ 16
3.1.1 Giới thiệu ..................................................................................................... 16
3.1.2 Không gian màu sử dụng cho mô hình hóa màu da .................................... 16
3.1.2.1 Không gian màu RGB ............................................................................ 17
3.1.2.2 Không gian RGB chuẩn hóa .................................................................. 17
3.1.2.3 Không gian màu HIS, HSV, HSL .......................................................... 18
3.1.2.4 Không gian màu HIS ............................................................................. 18
3.1.2.5 Không gian màu HSV ............................................................................ 19
3.1.2.6 Không gian màu HSL ............................................................................ 20
3.1.2.7 Không gian màu TSL ............................................................................. 21
3.1.2.8 Không gian màu Y ......................................................................... 21
3.1.2.9 Các hệ tọa độ không gian màu khác ...................................................... 22
3.1.3 Mô hình hóa màu da .................................................................................... 22
3.1.3.1 Xác đinh ngƣỡng cụ thể một điểm ảnh là màu da ................................. 22
3.1.3.2 Phƣơng pháp mô hình hóa màu da sử dụng phân phôi không tham số . 23
3.1.3.3 Bảng tra cứu chuẩn cứu (LUT – Lookup Table) ................................... 23
3.1.3.4 Phân lớp Bayes (bayes Classifier) ......................................................... 24
3.1.3.5 Tổng kết phƣơng pháp không tham số ................................................... 25
3.1.3.6 Mô hình hóa phân phối màu da có tham số ........................................... 25
3.1.3.7 Mô hình dựa trên phân phối Gauss đơn ................................................. 26
3.1.3.8 Mô hình kết hợp trên dựa trên phân phối Gauss .................................... 26
3.1.3.9 Đa phân phối Gauss ............................................................................... 27
3.1.3.10 Tổng kết các phƣơng pháp mô hình hóa theo tham số ........................ 27
3.1.4 So sánh kết quả các mô hình ....................................................................... 27
3.1.5 Đánh giá phƣơng pháp ................................................................................ 29
vii
3.1.6 Chọn lựa không gian màu và phƣơng pháp mô hình hóa dùn để nhận biết
màu da cho đồ án .................................................................................................. 29
3.2 PHÂN TÍCH THÀNH PHẦN CHÍNH PCA ................................................... 30
3.2.1 Tổng quan về phƣơng pháp PCA ................................................................ 30
3.2.1.1 Giới thiệu ............................................................................................... 30
3.2.1.2 Ý tƣởng .................................................................................................. 30
3.2.2 Trích chọn đặc trƣng khuôn mặt ngƣời dựa trên phƣơng pháp PCA .......... 34
3.2.2.1 Chuyển đổi ảnh ...................................................................................... 34
3.2.2.2 Tính khuôn mặt ngƣời trung bình .......................................................... 35
3.2.2.3 Trừ mỗi ảnh cho mặt trung bình ............................................................ 35
3.2.2.4 Xây dựng ma trận hợp phƣơng sai ......................................................... 35
3.2.2.5 Phép chiếu .............................................................................................. 36
3.3 PHÂN TÍCH HOG ........................................................................................... 37
3.3.1 Giới thiệu ..................................................................................................... 37
3.3.2 Chuẩn hóa hình ảnh trƣớc khi xử lý ............................................................ 38
3.3.3 Tính toán gradient ....................................................................................... 38
3.3.4 Lấy votes trong mỗi cell .............................................................................. 39
3.3.5 Chuẩn hóa các block ................................................................................... 40
3.3.6 Sử dụng trong bài toán object recognition .................................................. 40
3.3 KẾT NỐI VỚI THIẾT BỊ NGOẠI VI ............................................................. 41
3.4.1 Khối xử lý trung tâm ................................................................................... 42
3.4.2 Khối Module Sim 800A .............................................................................. 42
3.4.3 Khối động cơ servo ..................................................................................... 43
3.4.4 Khối hiển thị và báo động ........................................................................... 44
3.4.5 Khối nguồn .................................................................................................. 45
3.4.6 Sơ đồ nguyên lý hệ thống ngoại vi .............................................................. 46
CHƯƠNG 4. THI CÔNG HỆ THỐNG ....................................................... 47
4.1 GIỚI THIỆU ....................................................................................................... 47
4.2 THI CÔNG HỆ THỐNG .................................................................................... 47
4.2.1 Hệ thống nhận hiện chuyển động ................................................................ 47
4.2.1 Hệ thống nhận diện khuôn mặt ................................................................... 50
4.2.2.1 Lƣu đồ giải thuật của hệ thống nhận diện khuôn mặt ............................ 50
4.2.2.2 Lƣu đồ giải thuật của hệ thống huấn luyện ............................................ 51
4.2.2.3 Yêu cầu về dữ liệu ảnh ........................................................................... 52
viii
4.2.2.4 Chuẩn hóa ảnh đầu vào .......................................................................... 53
4.2.2.5 Trích xuất đặc trƣng của khuôn mặt ...................................................... 53
4.2.2.6 Xuất kết quả ........................................................................................... 54
4.2.3 Hệ thống cảnh báo ....................................................................................... 55
4.3 GIỚI THIỆU CHƢƠNG TRÌNH ....................................................................... 57
4.3.1 Hệ thống phát hiện chuyển động ................................................................. 57
4.3.2 Hệ thống nhận diện khuôn mặt ................................................................... 58
4.4 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH ........................................................... 62
4.4.1 Đóng gói bộ điều khiển ............................................................................... 62
4.4.1 Thi công mô hình ........................................................................................ 63
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ ................................... 65
5.1 KẾT QUẢ. .......................................................................................................... 65
5.2 NHẬN XÉT – ĐÁNH GIÁ ................................................................................ 76
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. ........................... 77
6.1 KẾT LUẬN ........................................................................................................ 77
6.2 HƢỚNG PHÁT TRIỂN ..................................................................................... 78
TÀI LIỆU THAM KHẢO ............................................................................. 79
PHỤ LỤC.. ............................................................. 80
ix
LIỆT KÊ HÌNH VẼ
Hình Trang
Hình 2.1 Các bước cơ bản trong xử lý ảnh ................................................................... 5
Hình 2.2 Các thành phần chính cảu hệ thống xử lý ảnh ............................................... 7
Hình 2.3 Arduino UNO R3 .......................................................................................... 10
Hình 2.4 Sơ Đồ Chân Arduino UNO R3 ...................................................................... 10
Hình 2.5 Động cơ Servo ................................................................................................ 14
Hình 2.6 Buzzer ............................................................................................................ 14
Hình 2.7 Module Sim 800A .......................................................................................... 15
Hình 3.1 Không gian màu RGB .................................................................................... 17
Hình 3.2 Không gian màu HSV .................................................................................... 19
Hình 3.3 Ý tưởng chính của PCA ................................................................................. 34
Hình 3.4 Biểu đồ dựa trên Gy,Gx .................................................................................. 39
Hình 3.5 Các cell trong một block ................................................................................. 40
Hình 3.6 Sơ đồ kết nối ngoại vi .................................................................................... 41
Hình 3.7 Module Sim 800A .......................................................................................... 42
Hình 3.8 Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Uno R3 ................ 43
Hình 3.9 Động cơ Servo ................................................................................................ 43
Hình 3.10 Sơ đồ nguyên lý kết nối Arduino Uno R3 với động cơ Servo ..................... 44
Hình 3.11 Sơ đồ kết nối Arduino Uno R3 với Buzzer .................................................. 45
Hình 3.12 Nguồn tổ ong 12V 5A .................................................................................. 46
Hình 3.13 Nguồn tổ ong 5V 4A .................................................................................... 46
Hình 3.14 Sơ đồ nguyên lý hệ thống ngoại vi ............................................................... 46
Hình 4.1 Lưu đồ của hệ thống nhận diện chuyển động ................................................ 47
Hình 4.2 Lưu đồ đưa hình ảnh vào hệ thống phát hiện chuyển động ........................... 48
Hình 4.3 Lưu đồ của nhận diện chuyển động ............................................................... 49
Hình 4.4 Hệ thống nhận diện có chuyển động và khoanh vùng chuyển động .............. 49
Hình 4.5 Lưu đồ của hệ thống nhận diện khuôn mặt..................................................... 50
Hình 4.6 Lưu đồ của hệ thống huấn luyện .................................................................... 51
Hình 4.7 Một số ảnh mẫu trong cơ sở dữ liệu ............................................................... 52
Hình 4.8 Lưu đồ tiến trình ............................................................................................. 53
Hình 4.9 Lưu đồ hệ thống cảnh báo chuyển động ........................................................ 55
Hình 4.10 Lưu đồ nhận diện khuôn mặt kết hợp với thiết bị ngoại vi .......................... 56
Hình 4.11 Giao diện chính của hệ thống chống trộm thông minh ................................ 57
ix
Hình 4.12 Giao diện chính của hệ thống phát hiện chuyển động ................................. 58
Hình 4.13 Giao diện chính của hệ thống phát hiện chuyển động khi đang hoạt động . 58
Hình 4.14 Giao diện chính của hệ thống nhận diện khuôn mặt .................................... 59
Hình 4.15 Thêm ảnh cho cơ sở dữ liệu ......................................................................... 59
Hình 4.16 Huấn luyện cho cơ sở dữ liệu ....................................................................... 60
Hình 4.17 Tiến hành so sánh khuôn mặt với ảnh trong cơ sở dữ liệu .......................... 60
Hình 4.18 Cho phép xóa ảnh trong cơ sở dữ liệu .......................................................... 61
Hình 4.19 Các khuôn mặt có sẵn trong cơ sở dữ liệu .................................................... 61
Hình 4.20 Xóa tất cả ảnh trong cơ sở dữ liệu ............................................................... 62
Hình 4.21 Sơ đồ bố trí linh kiện mặt trước mô hình ..................................................... 62
Hình 4.22 Hình dạng mặt bên mô hình ......................................................................... 63
Hình 4.23 Hình dạng mặt trên mô hình ......................................................................... 64
Hình 5.1 Phát hiện chuyển động người ở phía trước ..................................................... 65
Hình 5.2 Phát hiện chuyển động người ở phía sau ........................................................ 66
Hình 5.3 Phát hiện chuyển động người khi đang cúi xuống .......................................... 66
Hình 5.4 Hệ thống cảnh báo gửi tin nhắn đến cho gia chủ ............................................ 67
Hình 5.5 Đèn và chuông hoạt động khi có chuyển động ............................................... 67
Hình 5.6 Ảnh chụp lại từ camera trong điều kiện ánh sáng yếu ................................... 68
Hình 5.7 Giao diện chính của hệ thống nhận diện khuôn mặt ...................................... 68
Hình 5.8 Tiến hành thêm hình ảnh vào kho lưu trữ ...................................................... 69
Hình 5.9 Chọn thiết bị để quét môi trường ................................................................... 69
Hình 5.10 Chọn thiết bị để quét môi trường ................................................................. 70
Hình 5.11 Phát hiện ra khuôn mặt ................................................................................. 70
Hình 5.12 Yêu cầu nhập tên .......................................................................................... 71
Hình 5.13 Huấn luyện hệ thống ..................................................................................... 71
Hình 5.14 Đang tiến hành huấn luyện hệ thống ............................................................ 72
Hình 5.15 Đã hoàn tấc huấn luyện ................................................................................ 72
Hình 5.16 Tiến hành so sánh khuôn mặt ....................................................................... 73
Hình 5.17 Phát hiện ra khuôn mặt có sẵn trong cơ sở dữ liệu ....................................... 73
Hình 5.18 Cửa mở ra trong 6 giây sau đó tự động đóng lại .......................................... 74
Hình 5.19 Phát hiện ra khuôn mặt không có trong cỡ sở dữ liệu.................................. 74
Hình 5.20 Đèn cảnh báo sáng lên kèm theo chuông ..................................................... 75
x
LIỆT KÊ BẢNG
Bảng Trang
Bảng 2.1 Các thông số của Arduino UNO R3 ...................................................... 11
Bảng 3.1 Kết quả nhận biết đúng sai của các phương pháp ........................... 28
xi
TÓM TẮT
Hiện nay, hệ thống chống trộm ngày càng phổ biến và được tích hợp thêm nhiều các
thiết bị điện tử để nâng cao tính hiệu quả của hệ thống. Vì thế hệ thống chống trộm ngày
càng được ứng dụng nhiều hơn vào thực tiễn đời sống như không cho người lạ xâm nhập,
bảo vệ tài sản, đã được đưa vào các hộ gia đình, công ty, trường học,...
Với mục đích muốn tiếp cận với các công nghệ đang phát triển trên. Vì vậy, nhóm
thực hiện đồ án với mong muốn chế tạo ra mô hình chống trộm sử dụng xử lý ảnh kết
hợp với sử dụng kit Arduino được giám sát bằng máy tính thông qua Laptop và tin nhắn
trong đó bao gồm:
Hệ thống có các chức năng như sau:
Hệ thống chính gồm có hai phần
Nhận diện được chuyển động người trong khu vực có camera quan sát và
đưa ra cảnh báo qua tin nhắn.
Nhận diện khuôn mặt và so sánh khuôn mặt đã quét với kho dữ liệu để đưa
ra hướng xử lý mở cửa hay không.
Hệ thống mở rộng bao gồm:
Hệ thống điều khiển thiết bị từ xa thông qua Internet, hiển thị tất cả thông tin
mà camera thu được vào thiết bị di động.
Mô hình sử dụng kit Arduino Uno R3 làm vi điều khiển trung tâm để điều khiển các
module mở rộng như Module Sim 800A, Buzzer, Servo.
Đóng mở cửa bằng cách sử dụng động cơ Servo. Người dùng tương tác sử dụng
thông qua camera được đặt sẵn.
Hệ thống cảnh báo bằng Module Sim 800A gửi tin nhắn cảnh báo khi có người lạ
đột nhập.
xiii
CHƯƠNG 1. TỔNG QUAN
CHƯƠNG 1
TỔNG QUAN
1.1 LÝ DO CHỌN ĐỀ TÀI
Tình hình an ninh trật tự đang là vấn đề nhức nhối của toàn xã hội, đặt biệt là vấn đề
trộm cắp tài sản tại tư gia khiến cho gia chủ phải tốn rất nhiều thời gian và công sức trong
việc bảo vệ tài sản
Dù ở mức độ trộm cắp nào đi chăng nữa cũng để lại là những hậu quả ảnh hưởng
trực tiếp cho gia chủ. Và một trong những nguyên nhân chủ yếu của nạn trộm cắp chính
là an ninh lỏng lẻo giúp kẻ trộm có cơ hội ra tay. Hiện nay khóa đang là hình thức được
sử dụng thông dụng nhất. Tuy nhiên những tên trộm hoàn toàn có thể bẻ, phá được khóa,
thậm chí là khóa số điện tử. Do đó cần phải có những thiết bị báo trộm, vừa để chủ nhà
nhận biết được có kẻ trộm đột nhâp, vừa để tên trộm khi biết đã bị phát hiện sẽ hoảng
loạn sẽ phải quay đầu bỏ chạy ngay. Với những ngôi nhà thông minh hay căn hộ chung
cư, thiết bị báo trộm lại càng cần thiết.
Chính vì cần có biện pháp hiệu quả hơn trong vấn đề an ninh, phòng chống những
rủi ro có thể xảy ra nên nhóm sinh viên chúng em chọn đề tài “Ứng dụng xử lý ảnh thiết
kế thi công mạch chống trộm thông minh.” để làm đồ án tốt nghiệp.
Nhằm khắc phục một phần và ngăn ngừa những hậu quả nêu trên, nhóm sinh viên
chúng em chọn đề tài “Ứng dụng xử lý ảnh thiết kế thi công mạch chống trộm thông
minh” để làm đồ án tốt nghiệp.
Đây là một đề tài không quá mới mẻ, đã được nghiên cứu nhiều trong các đề tài
trước đây. Và kết quả cho thấy rằng độ chính xác nằm ở mức trung bình . Đề tài đã khắc
phục những hạn chế như vẫn có thể so sánh liên tục với những kho ảnh đã lưu trữ, cảnh
báo cho người dùng nhằm tăng độ chính xác trong việc phát hiện có kẻ lạ.
1.2 MỤC TIÊU VÀ GIỚI HẠN
1.2.1 Mục tiêu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 1
CHƯƠNG 1. TỔNG QUAN
Thiết kế và thi công được hệ thống chống trộm thông minh thông qua quá trình xử
lý ảnh nhận diện chuyển động và nhận dạng khuôn mặt để cảnh báo bằng tin nhắn SMS
và báo động đồng thơi đóng mở cửa.
1.2.2 Giới hạn
Đặc tính của hệ thống xử lý ảnh thông thường bị ảnh hưởng bởi nhiều yếu tố. Trong
điều kiện thực tế cho phép nhóm thực hiện đề tài trong một số điều kiện giới hạn sau:
Điều kiện thu nhận hình ảnh ngày và đêm, trong điều kiện ánh sáng ổn định.
Khuôn mặt không trang điểm hoặc bị biến dạng.
Không thể xác định được mắt khi khuôn mặt nghiêng, xoay trái, xoay phải một góc
lớn hơn 45 độ, cúi xuống hoặc ngước lên một góc lớn hơn 300 độ.
Khoảng cách từ camera đến đối tượng dưới 1.2 mét, trên khoảng cách này thì việc
nhận dạng sẽ không được chính xác.
Chưa xây dựng app android để người dùng có khả năng quản lý hệ thống từ xa.
1.3 BỐ CỤC ĐỒ ÁN TỐT NGHIỆP
Đồ án tốt nghiệp có bố cục được thể hiện như sau:
Chương 1: Tổng quan
Giới thiệu và nêu lý do chọn đề tài.
Mục tiêu và giới hạn.
Trình bày bố cục đồ án.
Chương 2: Cơ sở lý thuyết
Giới thiệu về hệ thống xử lý ảnh.
Những vấn đề trong hệ thống xử lý ảnh.
Giới thiệu khái quát về các linh kiện sử dụng trong thiết kế, thi công đề tài.
Chương 3: Tính toán thiết kế
Tổng quan các kỹ thuật nhận biết màu da dựa trên tính chất điểm ảnh.
Phân tích thành phần chính bằng PCA.
Phân tích HOG.
Kết nối với thiết bị ngoại vi.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 2
CHƯƠNG 1. TỔNG QUAN
Chương 4: Thi công và giới thiệu chương trình
Giới thiệu.
Thi công hệ thống.
Giới thiệu chương trình.
Đóng gói và thi công mô hình.
Chương 5: Kết quả_Nhận xét_Đánh giá
Kết quả.
Nhận xét_Đánh giá.
Chương 6: Kết Luận Và Hướng Phát Triển
Kết luận.
Hướng phát triển.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 3
CHƢƠNG 2. CƠ SỞ LÝ THUYẾT
CHƢƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆ...hi xuất hiện một giá trị
màu c rời rạc. Để tính giá trị này, ta sử dụng công thức Bayes quen thuộc:
| ) )
| )
| ) ) | ) )
(3.9)
Trong đó | )và | ) được tính trực tiếp từ biểu đồ màu da và không màu
da. Xác suât toàn phần | )và | ) thì được ước lượng từ một số lượng các mẫu
là màu da và không màu da trong tập huấn luyện. Bất đẳng thức | ) , trong đó
là một giá trị ngưỡng, có thể được sử dụng để trở thành quy tắc trong phát hiện màu da.
Công thức trên đôi khi hơi phức tạp và để có thể tránh điều này, nếu như thực sự
không cần phải biết một cách chính xác suất | ) | ) mà chỉ cần biết tỷ số
giữa chúng thì ta thường đưa về công thức như sau:
| ) | ) )
| ) | ) )
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 24
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
(3.10)
So sánh công thức này với một ngưỡng có thể tạo ra một quy tắc cho phép phát hiện
tỷ số màu da và không phải mnauf da. Sau một vài phép biến đổi, chúng ta nhận được
công thức:
| )
| )
(3.11)
)
)
Công thức trên có thể thấy rằng, việc chọn lưa giá trị của xác suất toàn phần không
ảnh hưởng đến chất lượng của bộ phát hiện, vì với bất kì một xác xuất toàn phần )
đều có thể chọn được một giá trị K phù hợp sao cho giá trị ngưỡng là .
3.1.3.5 Tổng kết phƣơng pháp không tham số
Hai ưu điểm dễ thấy của phương pháp mô hình hóa phân phối không tham số đó là:
Thứ nhất chúng có thể huấn luyện và sử dụng được một cách nhanh chóng.
Thứ hai chúng độc lập với lý thuyết về hình dạng của phân phối màu da (điều này
không đúng trong mô hình hóa màu da có tham số). tuy nhiên nhược điểm của phương
pháp này đó là chúng yêu cầu nhiều bộ nhớ để lưu trữ và không có khả năng nội suy hay
tạo dữ liệu huấn luyện. Lấy ví dụ như, chúng ta lượng tử háo điểm ảnh trong không gian
RGB về 8 bit cho môi mãu, khi đó chúng ta phải có một mảng có tới phần tử để lưu
trữ tập tất cả các xác suất của môt hình. Để có thể giảm bớt kích thước này bằng cách loại
bỏ những dữ liệu huấn luyện nhỏ lẻ, không gian màu thường sử dụng kích thước
128*128*128, 64*64*64, 32*32*32. Theo nghiên cứu thì kích thước 32*32*32 là kích
thước không gian mang lại hiệu quả cao nhất.
3.1.3.6 Mô hình hóa phân phối màu da có tham số
Hầu hết các mô hình màu da không tham số dựa trên biểu đồ xám yêu cầu rất nhiều
bộ nhớ và hiệu năng của chúng phụ thuộc hoàn toàn vào tập ảnh huấn luyện cố định. Vì
vậy cần có một mô hình màu da có thể thêm hoặc tự tạo ra dữ liệu huấn luyện để giúp
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 25
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
giảm tải cho bộ nhớ và tăng hiệu năng cho hệ thống, điều đó dẫn đến sự ra đời của mô
hình phân phối tham số.
3.1.3.7 Mô hình dựa trên phân phối Gauss đơn
Phân phối màu da có thể được mô hình hóa bởi phân phối Gaus thêm vào hàm mật
độ xác suất. Định nghĩa như sau:
) ∑ )
| )
|∑ |
(3.12)
Ở đây, c là mmotj véc tơ màu, và ∑ là hai tham số phân phối (vector trung
bình và ma trận hiệp phương sai). Các tham số của mô hình được ước lượng thông
qua quá trình huấn luyện bởi hai công thức sau:
∑ ; ∑ ) )
(3.13)
Trong đó, n là tổng số các mẫu màu da. Xác suất | ) có thể được tính trực
tiếp mức độ tương tự màu da (likehood skin color) hoặc có thể tính bằng khoảng cách
Mahalanobis từ vector màu c, vector trung bình , ma trận hiệp phương sai ∑ . Công
thức tính khoảng cách Mahalanobis:
) ) ∑ )
(3.14)
Phương pháp mô hình hóa dựa trên phân phối đơn Gaus đã được triển khai và
nghiên cứu.
3.1.3.8 Mô hình kết hợp dựa trên phân phối Gauss
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 26
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Một mô hình công phu, phức tạp hơn, có khả năng biểu diễn được phân phối phức
tạp đó là mô hình kết hợp dựa trên phân phôi Gauss. Đây là mô hình mở rộng từ mô hình
đơn Gauss trên, trong trường hợp này, hàm phân phối mật độ xác suất là:
| ) ∑ | )
(3.15)
Trong đó, k là số lượng các thành phần được kết hợp, là tham số kết hợp, thỏa
mãn ràng buộc∑ và | ) thỏa mãn hàm phối mật độ xác suất Gauss,
vớimỗi vector trung bình và ma trận phương sai của nó. Huấn luyện mô hình được thực
hiện với kỹ thuật được biết đến nhiều gọi là thuật toán kì vọng tối đa (EM – Expectation
Maximization), trong đó giả sử rằng số lượng các thành phần k là đã biết trước. Chi tiết
việc huấn luyện mô hình kết hợp Gauss với thuật toán EM này có thể được tìm thấy trong
nhiều nghiên cứu. VIệc phân lớp trong mô hình kết hợp Gauss được thực hiện nhờ việc so
sánh xác xuất | ) với một vài giá trị ngưỡng.
Việc chọn lựa số lượng thành phần k ở đay là quan trọng. Vì nó ảnh hưởng đến độ
chính xác của việc huấn luyện cho mô hình. Theo như những nghiên cứu hiện nay, k = 8là
sự lựa chọn mang hiệu năng cao nhất cho mô hình kết hợp phân phối Gausian.
3.1.3.9 Đa phân phối Gauss
Mức độ gần đúng của các nhóm màu da với phân phôi Gauss 3D trong không gian
Y đã được miêu tả trong nhiều bài báo. Một số lượng khác nhau các thuật toán phân
nhóm K trung bình được sử dụng cho nhóm Gauss thực hiện việc huấn luyện mô hình.
Các điểm ảnh được phân lớp màu da nếu như khoảng cách Mahalanobis từ véctơ màu c
đến trung tâm của cụm gần nhất trong mô hình nhỏ hơn một ngưỡng cho trước.
3.1.3.10 Tổng kết các phƣơng pháp mô hình hóa theo tham số
Tất cả các phương pháp mô hình hóa theo tham số được miêu tả như trên (ngoại trừ
3.3.3.3) đều tính toán trên mặt phẳng các thành phần màu của không gian mà bỏ qua
thông tin về độ sáng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 27
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Dĩ nhiên, khi một mô hình phân phối cụ thể được sử dụng, sẽ có câu hỏi đặt ra về sự
xác thực về giá trị của mô hình đó. Tuy nhiên do yêu cầu quá cao về bộ nhớ mà khi đánh
giá hiệu năng thì mô hình có tham số lại có hiệu năng cao hơn.
3.1.4 So sánh kết quả các mô hình
Để có thể đánh giá và so sánh hiệu năng của các phương pháp mô hình hóa màu da
là không dễ, vì mỗi phương pháp thường được đề xuất của một nhóm các nhà nghiên cứu
và được thử nghiệm trên cơ sở dữ liệu riêng.Trong bảng so sánh được đua ra dưới đây là
kết quả tốt nhất mà mỗi phương pháp đạt được:
Phƣơng pháp Nhận biết đúng Nhận biết sai
Bayes SPM trong RGB 80% 8,5%
(Jones và Regh 1999) 90% 14,2%
Bayes SPM trong RGB 93,4% 19,8%
(Brand và Mason 2000)
Maximum Entropy Model trong RGB 80% 8%
(Jedynak và al.2002)
Gauss Mixture models trong RGB 80% ~9,5%
(Jones và Regh 1999) 90% ~15,5%
SOM in TS 78% 32%
(Brown và al.2002)
Elliptical boundary model trong CIE – xy 90% 20,9%
(Lee và Yoo 2002)
Single Gauss trong và 90% 33,3%
(Lee và Yoo 2002)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 28
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Gauss Mixture trong IQ 90% 30%
(Lee và Yoo 2002)
Thresholding của trục I trong YIQ 94,7% 30,2%
(Brand và Mason 2000)
Bảng 3.1 Kết quả nhận biết đúng sai của các phương pháp
3.1.5 Đánh giá phƣơng pháp
Ưu điểm của các phương pháp sử dụng các ngưỡng để phân lớp điểm ảnh là màu da
hay không đó là tính đơn giản và tính trực giác cao trong các quy tắc phân lớp. Tuy nhiên,
điểm khó khăn đó là cần phải tìm được cả một không gian màu tốt và các quy tắc xứng
đáng trong không gian đó. Phương pháp được đề xuất hienj nay sử dụng thuật toán máy
học để có thể tìm được không gian và các quy tắc thích hợp, tuy nhiên đề xuất vẫn còn là
vấn đề mở trong tương lai.
Các phương pháp sử dụng mô hình hóa không tham số thật sự nhanh trong cả việc
huấn luyện và phân lớp, đọc lập với phân bố phân bố hình dạng của màu da và cả không
gian màu. Tuy nhiên, phương pháp này lại có yêu cầu quá nhiều bộ nhớ lưu trữ và phụ
thuộc cố định vào tập dữ liệu huấn luyện.
Các phương pháp mô hình hóa có tham số cũng xử lý khá nhanh. Hơn nữa chúng lại
có khả năng tự tạo ra các dữ liệu phu hợp, chúng được miêu tả bằng một số lượng không
nhiều các tham số và đặc biệt chúng cần không đáng kể bộ nhớ lưu trữ. Tuy nhiên, chúng
có thể sẽ thực sự chậm (giống như mô hình kết hợp giữa trên phân phối Gauss) trong cả
huấn luyện và làm việc, và hiệu năng của chúng phụ thuộc nhiều vào hình dạng cảu phân
phối màu da. Bên cạnh đó, hầu hết các phương pháp mô hình hóa màu da có tham số đều
bỏ qua những thống kê về màu không phải là tham số.
3.1.6 Chọn lựa không gian màu và phƣơng pháp mô hình hóa dùng để nhận biết
màu da cho đồ án
Với mục đích là sử dụng nhận màu da để tiến hành phân vùng da, giảm không gian
tìm kiếm khuôn mặt. Vì vậy phương pháp cần thiết cho đồ án phải có hiệu năng cao, thời
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 29
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
gian thực hiện nhanh, yêu cầu bộ nhơ không lớn. Không gian nhớ phải phù hợp với
phương pháp nhận biết nhận biết màu da. Do khả năng nhóm thực hiện còn hạn chế, nên
sau khi xem xét tất cả phương pháp, các đặc trưng cũng như hiệu năng của tung phương
pháp, nhóm quyết định sử dụng phương pháp ngưỡng để tiến hành phân vùng màu da cho
ảnh và không gian màu được lựa chọn đó là không gian RGB, sự phân biệt rõ ràng giữa
độ sáng và các thành phần màu.
3.2 PHÂN TÍCH THÀNH PHẦN CHÍNH PCA
3.2.1 Tổng quan về phƣơng pháp PCA
3.2.1.1 Giới thiệu
Phân tích thành phần chính (Principal Compoment Analysis – PCA) được trình bày
theo nhiều quan điểm khác nhau khác nhau.
Với các nhà nhân tố học cổ điển thì kỹ thuật này là phương pháp phân tích nhân tố
trong trường hợp đặc biệt, khi phương sai này bằng không hoặc xấp xỉ bằng không.
Phương pháp này thường được sử dụng trong phân tích tâm lý, do Horst (1965) và
Harman (1966) đề xuất.
Sau cùng, theo quan điểm phổ biến hơn cả của các nhà phân tích số liệu thì PCA là
một kỹ thuật biểu diễn số liệu một cách tối ưu theo một tiêu chuẩn đại số và hình học đặc
biệt. Khi sử dụng kỹ thuật này người ta không đòi hỏi một giả thuyết thống kê hoặc một
mô hình đặc biệt nào. Quan điểm này trở nên phổ biến từ khi có máy tính điện tử, và là
quan điểm mới nhất. Trong công trình của C.R Rao (1964) nội dung lý tuyết của phương
pháp PCA được trình bày khá đơn giản và rõ ràng.
Lĩnh vực ứng dụng của phương pháp PCA rất rộng trong công nghiệp, nông nghiệp,
kinh tế, khoa học cơ bản, với bảng số liệu mà các cột là các biến và các dòng là các cá
thể trên đó đo giá trị của biến.
3.2.1.2 Ý tƣởng
Ý tưởng chính của phương pháp PCA để trích chọn đặc trưng khuôn mặt người là
diễn tả một số lượng lớn các vector pixel một chiều được hình thành từ ảnh một chiều bởi
các thành phần thiết yếu không gian đặc trưng. Bước này được gọi là chiếu lên không
gian đặc trưng mặt. Không gian đặc trưng được tính toán từ định nghĩa vector đặc trưng
của ma trận hợp phương sai tình hình từ tập các khuôn mặt người (ở dạng vector).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 30
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Mô tả thuật toán:
Giả sử mỗi ảnh có kích thước M*N, ta coi mỗi bức ảnh này là một vector trong
không gian M*N chiều. Bây giờ mỗi khuôn mặt là một vector, ta thấy những vector này
không phân bố ngẫu nhiên trong không gian ảnh mà phân bố theo một quy lluật tương đối
nào đó, ta có thể nói những vector này nằm trong một không gian con gọi là không gian
khuôn mặt. Từ những vector trong tập huấn luyện, ta sẽ tìm một cơ sở trực chuẩn cho
không gian khuôn mặt, Những vector thuộc cơ sở này có thể coi là những vector mang nét
tông thể đặc trưng về khuôn mặt.
Giả sử tập huấn luyện có P ảnh, khi đó ta sẽ có P vector: .
Tính vector ảnh trung bình:
∑
(3.16)
Sự khác biệt giữa những khuôn mặt với ảnh trung bình là nhưng vector:
Ý tưởng của việc phân tích thành phần chính là tìm một tập nhương vector trực
chuẩn sao cho những vector này mô tả tốt nhất sự phân bố những vector khuôn mặt
trong không gian. Những vector được chọn sao cho:
⟨ | ⟩ {
(3.17)
∑⟨ | ⟩
Những vector và giá trị vô hướng chính là những vector riêng và trị
riêng tương ứng của ma trận . ⟨ | ⟩ là tích vô hướng giữa hai vector u,v.
[ ]
(3.18)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 31
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Ta thấy ma trận A có kích thước M*N x P, còn ma trận có kích thước
M*N x M*N, do kích thước ma trận này quá lớn nên ta không thể tìm được những
vector riêng và những trị riêng trực tiếp được, thay vào đó ta sẽ tìm những vector
riêng của ma trận có kích thước P x P.
Nếu v là một vector riêng của và λ là trị riêng tương ứng, khi đó ta có :
Av=Av
(3.19)
Tức là Av là một trị riêng của ma trận .
Thông thương ta chỉ lấy một số q vector riêng ứng với Q trị riêng có giá trị lớn nhất.
Sau khi có các vector riêng của ma trận , ta sẽ chuản hóa chúng để thu được một
cơ sở trực chuẩn của không gian khuôn mặt.
Đặt L = , tìm V là tập hợp các vector riêng còn L,D là tập hợp các trị riêng tương
ứng.
V bao gồm Q vector riêng ứng với những trị riêng lớn hơn một giá trị nào đó.
E = AV là tập các vector riêng ứng của . Do đây là những vector riêng, mà nó lại
có dạng khuôn mặt nên được gọi là Eigenfaces. E là ma trận M*N x Q, mỗi cột la một
vector riêng.
Chuẩn hóa ccs vector cột trong E (chia mỗi vector cho độ dài của vector đó).
Bây giờ ta có thể coi E là một cơ sở trực chuẩn của không gian khuôn mặt.
Với H là bức ảnh có cùng kích thước với những bức ảnh trong tập huấn luyện. Ta sẽ
xét nó có phải là bức ảnh khuôn mặt hay không, cũng như tìm bức ảnh giống với nó nhất
trong tập huấn luyện.
H được xem là một vector trong không gian M*N chiều.
Đặt K = H – m với m là vector ảnh trung bình.
Cho V là một không gian có tích vô hướng hữu hạn chiều và Ư là một không gian
con của V. Giả sử Ư có một cơ sở trực chuẩn là { }. Khi đó hình chiếu trực giao
của vector u bất kỳ lên Ư được xác định như sau
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 32
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
∑⟨ | ⟩
(3.20)
Độ dài ‖ ‖ được gọi là khoảng cách từ u đến W.
Tập hợp ⟨ | ⟩, i = 1,, Q được gọi là tọa độ của trong không gian W.
Tìm C = K là tọa độ của hình chiếu của K lên không gian khuôn mặt. C là
vector cột Qx1
∑ với = C(i,l); = E(l,i)
(3.21)
Với là một cột trong ma trận A (tương ứng với bức ảnh trong tập huấn luyện).
Ta tính là tọa độ của hình chiếu của lên không gian khuôn mặt.
Ta tính hai đại lượng sau:
‖ ‖ xem như khoản cách từ bức ảnh H đến không gian mặt.
‖ ‖ xem như khoản cách từ bức ảnh H đến bức ảnh trong tập huấn
luyện.
Xét α và β là hai ngưỡng nào đó.
s < α thì H là bức ảnh khuôn mặt (do H đủ gần với không gian mặt).
< β thì là bức ảnh của cùng một người với H (H dủ gần với ).
Vậy là ta đã có thể tìm bức ảnh trong tập huấn luyện giống với bức ảnh H hay xác
định đó có phải là bức ảnh khuôn mặt hay không. Tuy nhiên ảnh H phải có cùng kích
thước với những bức ảnh tập huấn luyện. Bây giờ trong một bức ảnh lớn H có nhiều
khuôn mặt, ta sẽ xác định vị trí những khuôn mặt trong bức ảnh.
Tại mỗi vị trí (x,y) trong H, đặt H(x,y) là một vùng trong ảnh H có kích thước MxN
tại (x,y), ta xem ảnh con H(x,y) là một vector M*N chiều.
K(x,y) = H(x,y) – m
(3.22)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 33
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Tìm K(x,y) là hình chiếu của K(x,y) lên không gian khuôn mặt.
Tính s(x,y) = ‖ ) )‖
Tập hợp các giá trị s(x,y) tạo thành một bản đồ khuôn mặt (face map) của H,
từ đó ta có thể xác định vị trí những khuôn mặt trong ảnh.
Hình 3.3 Ý tưởng chính của PCA
3.2.2 Trích chọn đặc trƣng khuôn mặt ngƣời dựa trên phƣơng pháp PCA
Khuôn mặt người có rất nhiều nét để nhận biết, nếu như ta gặp lại một người bạn sau
một thời gian dài, ta có thể nhận ra ngay mặt người đó dù những chi tiết cụ thể trên mặt
có thể thay đổi như da, mái tóc. Ta nhận ra không phải vì nhớ đôi mắt hay mũi hay môi
hay tóc của người đó mà ta nhận ra vì nhớ diện mạo của người đó. Tức là trên khuôn mặt
người tồn tại một nét tổng thể nào đó để có thể nhận diện, thuật toán của ta bắt đầu từ ý
tưởng này.
Phân tích thành phần chính (Princial Compomenent Analysis) gọi tắc là PCA là
thuật toán trích chọn đặc trưng dựa trên những nét tổng thể của khuôn mặt người, ta sẽ áp
dụng thuật toán này để thực hiện hai công việc sau:
Thức nhất là tìm một khuôn mặt người giống với khuôn mặt người cho trước.
Thức hai là xác đinh đặc trưng những khuôn mặt người trong một bức ảnh.
Sơ đồ tiến trình trích chọn đặc tưng khuôn mặt người:
3.2.2.1 Chuyển đổi ảnh
Biểu diễn M ảnh trong không gian 2-D thành 1-D. Tạo vector có kích thước N (số
hàng của ảnh x số cột của ảnh) như mô tả sau:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 34
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
⃗⃗ [ ] ̅̅̅ ̅ ̅̅
(3.23)
Với: là giá trị pixel của ảnh
T là chuyển vị của ma trận
Kết quả chuyển cho M ảnh đưa vào ma trận như sau:
Mỗi ảnh là một ma trận cột, ghép M ma trận cột ứng với M ảnh thành một ma trận
có kích thước NxM.
[ ]
(3.24)
Chỉ số đầu là thành phần của vector, chỉ số sau là số thứ tụ của ảnh.
3.2.2.2 Tính khuôn mặt ngƣời trung bình
Chi tiết công thức trên:
⃗⃗ [ ]=[ ]
(3.25)
3.2.2.3 Trừ mỗi ảnh cho mặt trung bình
Nhằm mục đích tạo ra sự giãn tương đối giá trị pixel của các ảnh
⃗⃗⃗⃗ ⃗⃗ ⃗ [ ], ⃗⃗⃗ ⃗⃗ ⃗ [ ],, ⃗⃗⃗ ⃗⃗ ⃗ [ ]
(3.26)
Xây dụng ma trận từ các ⃗⃗⃗ ⃗⃗ ⃗ vừa tìm được
Đặt: A =( ⃗⃗⃗⃗ ⃗⃗ ⃗ ⃗ ⃗⃗⃗ ⃗⃗ ⃗ . ⃗⃗⃗⃗ ⃗⃗⃗ ⃗ ) sẽ được ma trận có kích thước NxM.
3.2.2.4 Xây dựng ma trận hợp phƣơng sai
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 35
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Nhằm mục đích thể hiện sự tương quan của từng vector.
(3.27)
Tính trị riêng (eigenvalue: ), và vector riêng (eigenvector: ) của ma trận trận hợp
phương sai này. Đó chính ;à đặc trưng thành phần thiết yếu của ảnh.
Nhưng thực tế, nếu ảnh có kích thước 200x230 (độ trộng và cao của ảnh), thì khi đó
kích thước của ma trận cov là 46000x46000 (NxN). Kích thước khá lớn, do đó việc tính trị
riêng, vector riêng là vấn đề trở ngại khi tính trực tiếp teo cách này. Vì vậy cần phải áp
dụng lý thuyết đại số tuyến tính: trị riêng λ, và vector riêng có x thể tính bắng cách giải
quyết trị riêng, và vector riêng của ma trận A (kích thước MxM nhỏ hơn nhiều so với
NxN).
Đặt và là các trị riêng và vector riêng của ma trận A. Kết quả như sau:
=
(3.28)
Nhân mỗi vế của (3.6) cho A sẽ được:
A ) = )
(3.29)
Với X = A
Điều này cho thấy: M vector riêng và M trị riêng đầu tiên của tương ứng
chính là tích ( A với vector riêng của A) và .
Các vector riêng là không gian đặc trưng các khuôn mặt người trong cơ sở dữ liệu
ảnh ban dầu. Các vector riêng được sắp xếp theo thứ tự từ cao đến thấp theo trị liệu riêng
tương ứng. Vector riêng có trị riêng lớn nhất sẽ mang nhiều đặc trưng thiết yếu nhất của
không gian các khuôn mặt người (tức nó quyết định nhiều nhất sự biến đổi trong ảnh).
Ngược lại vector riêng có trị riêng bé nhất sẽ mang thành phần ít đặc trưng nhất trong
không gian đặc trưng các khuôn mặt người. Ở đây cho thấy chỉ với M hướng đặc trưng
mang trị riêng lớn nhất trong NxN không gian dặc trưng.
3.2.2.5 Phép chiếu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 36
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Chiếu lần lượt các ảnh trong cơ sở dữ liệu đến không gian đặc trưng M hướng này,
để sinh ra các khuôn mặt người đặc trưng trong không gian khuôn mặt người mới.
[ ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ] ⃗⃗⃗ ⃗⃗ ⃗
(3.30)
Với i = ̅̅̅ ̅ ̅̅
Với [ ] [ ⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ] : là ma trận đặc trưng các khuôn mặt người đã rút trích
ra được, hay còn được gọi là eigenfaces.
⃗⃗⃗ ⃗⃗ ⃗ : là vector ảnh thứ I trừ khuôn mặt người trung bình.
Khi đó, ta sẽ có 4 trường hợp có thể xảy ra đối với ảnh đầu vào và các vector thành
phần để từ đó quyết định kết quả tại ngõ ra của nó:
Gần không gian khuôn mặt người và thuộc một lớp mặt. Trong trường hợp này, ảnh
sẽ được nhận dạng và xác định.
Gần không gian khuôn mặt người nhưng không thuộc lớp mặt. Trong trường hợp
này, ta sẽ nhận ra ảnh thuộc lớp mặt người nhưng không xác định được.
Xa không gian khuôn mặt người nhưng thuộc một lớp mặt. Trong trường hợp này,
ảnh sẽ bị nhận diện sai trong hầu hết hệ thống nhận diện hiện nay, tuy nhiên sự nhận diện
sai này sẽ bị phát hiện nếu hệ thống sử dụng một khoảng cách cần thiết giữa ảnh và không
gian con của ảnh mặt người.
Xa không gian khuôn mặt người và không thuộc lớp mặt nào. Trong trường hợp
này, ảnh không phải là ảnh khuôn mặt người.
3.3 PHÂN TÍCH HOG
3.3.1 Giới thiệu
HOG(histogram of oriented gradients) là một feature descriptor được sử dụng trong
computer vision và xử lý hình ảnh, dùng để phát hiện một đối tượng. Hog được sử dụng
chủ yếu để mô tả hình dạng và sự xuất hiện của một object trong ảnh Bài toán tính toán
Hog thường gồm 5 bước:
Chuẩn hóa hình ảnh trước khi xử lý
Tính toán gradient theo cả hướng x và y .
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 37
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Lấy phiếu bầu cùng trọng số trong các cell
Chuẩn hóa các block
Thu thập tất cả các biểu đồ cường độ gradient định hướng để tạo ra feature vector
cuối cùng.
3.3.2 Chuẩn hóa hình ảnh trƣớc khi xử lý
Bước chuẩn hóa này hoàn toàn không bắt buộc, nhưng trong một số trường hợp,
bước này có thể cải thiện hiệu suất của bộ mô tả HOG. Có ba phương pháp chuẩn hóa
chính mà chúng ta có thể xem xét:
Quy định về chuẩn Gamma /power : Trong trường hợp này, ta lấy log(p) của mỗi
pixel p trong hình ảnh đầu vào.
Chuẩn hoá gốc-vuông: Ở đây chúng ta lấy √ ) của mỗi pixel p trong hình ảnh
đầu vào. Theo định nghĩa, sự bình thường của các căn bậc hai nén các cường độ điểm ảnh
đầu vào thấp hơn nhiều so với chuẩn bình thường của gamma.
Variance normalization: Ở đây, chúng ta tính cần giá trị cường độ điểm ảnh trung
bình \muμ và độ lệch tiêu chuẩn σ của hình ảnh đầu vào. Với mỗi điểm ảnh ta trừ đi giá trị
trung bình của cường độ điểm ảnh và sau đó được chuẩn hóa bằng cách chia cho độ lệch
chuẩn: p′=(p−μ)/σ
3.3.3 Tính toán gradient
Để lấy được hình ảnh gradient, chúng ta sẽ sử dụng tích chập(convolution): Gx=I⋆Dx
và Gy=I⋆Dy với I là hình ảnh đầu vào, Dx là bộ lọc cho chiều x, và Dy là bộ lọc cho
chiều y . Sau khi có các ảnh gradient, chúng ta có thể tính toán cường độ gradient của hình
ảnh: | | √ Cuối cùng, định hướng của gradient cho mỗi pixel trong hình ảnh
ban đầu được tính bằng cách: ) Dự vào |G| và , chúng ta có thể tính
được một biểu đồ cường độ gradient, trong đó cột của histogram dựa trên \theta và trọng số
của mỗi cột của biểu đồ được dựa trên
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 38
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.4 Biểu đồ dựa trên Gy,Gx
3.3.4 Lấy votes trong mỗi cell
Bây giờ chúng ta cần chia hình ảnh của chúng ta thành các cell và block Một cell là
một vùng hình chữ nhật được xác định bởi số điểm ảnh thuộc mỗi cell. Ví dụ: nếu ta có
một hình ảnh 128 x 128 với pixel_per_cell = 4 x 4 thì sẽ có 32 x 32 = 1024 cell,
pixel_per_cell = 32 x 32, sẽ có 4 x 4 = 16 cell. Với mỗi cell trong bức ảnh, ta cần xây dựng
1 biểu đồ cường độ gradient. Mỗi pixcel sẽ được vote vào vào biểu đồ, trọng số của mỗi
vote chính là cường độ gradient tại pixel đó Cuối cùng, mỗi pixel đóng góp một phiếu bầu
có trọng số vào biểu đồ - trọng lượng của phiếu chỉ đơn giản là cường độ gradient |G| tại
pixel đó.Lúc này, chúng ta có thể thu thập và ghép các biểu đồ này để tạo ra feature vector
cuối cùng. Tuy nhiên, ta sẽ chuẩn hóa các block để có được kết quả tốt hơn
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 39
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.5 Các cell trong một block
3.3.5 Chuẩn hóa các block
Một lần nữa, ta cần chia các block giống như chia cell ở phía trên. Đơn vị của ta
không
còn là các điểm ảnh nữa mà là các cell. Người ta thường sử dụng hoặc 2x2 hoặc 3x3
cell_per_block có được độ chính xác hợp lý trong hầu hết các trường hợp.Các block này sẽ
chồng lên nhau. Ví du: ta có 3x3 cells và cell_per_block= 2x2 thì ta sẽ có 4 block. Tiếp
đến, ta sẽ tiến hành thu thập và ghép các histogram của cell trong block.
3.3.6 Sử dụng trong bài toán object recognition
HOG được implement trong opencv và scikit-image. Tuy nhiên, việc sử dụng HOG
trong scikit-image linh hoạt hơn rất nhiều trong opencv Bài toán mình đặt ra là, trong một
bức ảnh có nhiều chữ số có kích thước khác nhau, làm thế nào để xác định được các chữ số
đó Đầu tiền, mình sử dụng opencv2 để load ảnh, resize và chuyển ảnh sang màu graysacle
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 40
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
3.4 KẾT NỐI VỚI THIẾT BỊ NGOẠI VI
Thiết kế sơ đồ hệ thống kết nối với thiết bị ngoại vi
Hình 3.6 Sơ đồ kết nối ngoại vi
Chức năng từng khối:
Khối nguồn: cung cấp nguồn 5V cho khối hiển thị và báo động nguồn 4.5V DC
cho Module Sim 800A; nguồn 9V DC cấp cho khối xử lý trung tâm board
Arduino Uno R3.
Khối xử lý trung tâm: thu thập dữ liệu từ các thiết bị sau đó xử lý và điều khiển
khối chấp hành và khối hiển thị. Khối này do Arduino Uno R3 thực hiện.
Khối Module Sim 800A: Gửi dữ liệu cảnh báo khi nhận diện khuôn mặt không có
trong cơ sở dữ liệu.
Khối hiển thị và báo dộng: sử dụng led và buzzer để báo dộng khi có chuyển
động trong một khu vực nhất định.
Khối động cơ servo: đóng mở cửa do động cơ servo thực hiện.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 41
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
3.4.1 Khối xử lý trung tâm
Vì Arduino Uno R3 sử dụng chip ATmega. Nó có 54 chân digital I/O 16 chân đầu
vào tương tự (Analog Inputs), 4 UARTs (cổng nối tiếp phần cứng), một thạch anh dao
động 16 MHz, kết nối USB, một jack cắm điện, một đầu ICSP và một nút reset Nó chứa
tất cả mọi thứ cần thiết để tạo thành khối xử lý trung tâm với đầy đủ các port .
Trong quá trình kết nối các module và lập trình cho hệ thống:
Bộ nhớ sử dụng hết 4409 bytes vào khoảng 53% bộ nhớ
Tổng số chân I/O sử dụng là 29 chân, công thức tính dòng tiêu thụ (3.31)
Dòng tiêu thụ = 29 x 20mA = 580mA
3.4.2 Khối Module Sim 800A
Hình 3.7 Module Sim 800A
Vì chỉ gửi dữ liệu cảnh báo bằng tin nhắn nên ta chỉ dùng 4 chân là VCC, GND,
TXD, RXD được kết nối với Arduino Uno R3 như sau:
Hai chân nguồn VCC và GND được kết nối với Adapter 9V 2A để dòng điện cho
sim hoạt động ổn định lâu dài.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 42
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
TXD được nối vào chân RX3 và RXD nối vào TX3 của Arduino Mega để truyền
nhận dữ liệu theo chuẩn UART.
Hình 3.8 Sơ đồ nguyên lý kết nối Module Sim 800A vào Arduino Uno R3
3.4.3 Khối động cơ servo
Hình 3.9 Động cơ Servo
Thông số kỹ thuật
- Momen xoắn: 1.8kg/cm
- Tốc độ hoạt động: 60 độ trong 0.1 giây
- Điện áp hoạt động: 4.8V(~5V)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 43
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Cách kết nối giữa động cơ Servo và Arduino Uno R3, được thể hiện trong hình
dưới đây:
Chân số 1 nối vào chân 66 của Arduino.
Chân số 3 nối với GND của Arduino và Jack DC 5V.
Chân số 2 nối với 5V của Jack DC 5V.
Hình 3.10 Sơ đồ nguyên lý kết nối Arduino Uno R3 với động cơ Servo
3.4.4 Khối hiển thị và báo động
Ở khối này chúng t kết nối với buzzer để làm hai việc:
Phát âm cảnh báo khi có chuyển động trong vùng có camera.
Phát âm cảnh báo khi nhận diện khuôn mặt sai.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 44
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.11 Sơ đồ kết nối Arduino Uno R3 với Buzzer
3.4.5 Khối nguồn
Nguồn cấp cho Arduino
Board Arduino Uno R3 sử dụng hết 29 chân (N). Dòng DC trên mỗi chân I/O ( )
là 20mA.
IAr = x N
= 20 x 29 = 580 mA (3.32)
Theo tính toán thì sẽ cấp dòng tối thiểu là 760mA. Vì vậy, nhóm sinh viên sử dụng
mạch giảm áp LM2596 tử nguồn tổ ong 12V
Nguồn cấp cho Module Sim 800A
Theo thông số kỹ thuật, nguồn cấp đầu vào từ 5-18V và dòng vào lớn hơn 1A. Vì
vậy, nhóm sinh viên sử dụng mạch giảm áp LM2596 tử nguồn tổ ong 12V 5A để có ngõ
ra là 9V 2A đảm bảo cho Module Sim 800A hoạt động ổn định.
Nguồn cấp cho động cơ servo
Theo lý thuyết, ta có động cơ servo Sg90 hoạt động ở điện áp 5V.
Vì vậy, nhóm sinh viên sử dụng một ngõ ra được mắc song song (2 ngõ ra mắc song
song) từ nguồn tổ ong 5V 4A có thông số là 5V 2A.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 45
CHƢƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.12 Nguồn tổ ong 12V 5A Hình 3.13 Nguồn tổ ong 5V 4A
3.4.6 Sơ đồ nguyên lý hệ thống ngoại vi
Dưới đây là hình 3.14 là sơ đồ nguyên lý toàn mạch thể hiện tất cả các khối và kết
nối các thiệt bị lại với nhau rồi cắm vào Arduino Uno R3:
Hình 3.14 Sơ đồ nguyên lý hệ thống ngoại vi
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 46
CHƯƠNG 4.THI CÔNG THIẾT KẾ
CHƯƠNG 4
THI CÔNG THIẾT KẾ
4.1 GIỚI THIỆU
Đồ án hệ thống chống trộm thông minh là sự kết hợp của ba hệ thống: Nhận diện
chuyển dộng, nhận diện khuôn mặt ngƣời và hệ thống cảnh báo.
Hai hệ thống nhận diện chuyển động và hệ thống nhận diện khuôn mặt ngƣời đƣợc
thực hiện dựa trên phƣơng pháp phân tích thành phần chính PCA và HOG dùng để tiếp
cận lý thuyết thông tin giúp cho việc truy xuất dữ liệu dễ dàng hơn.
Hệ thống cảnh báo sử dụng arduino kết hợp với giải thuật chƣơng trình và các linh
kiện có sẵn đƣợc thi công theo tính toán thiết kế đã làm trƣớc đó.
4.2 THI CÔNG HỆ THỐNG
4.2.1 Hệ thống nhận hiện chuyển động
Lƣu đồ hệ thống nhận hiện chuyển động
Hình 4.1 Lƣu đồ của hệ thống nhận hiện chuyển động
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 47
CHƯƠNG 4.THI CÔNG THIẾT KẾ
Đầu tiên hệ thống sẽ lấy ảnh đầu vào (do mô hình là mô phỏng nếu áp dụng vào
thực thế hệ thống sẽ lấy ảnh trực tiếp từ camera). Hình ảnh sau khi lấy đƣợc sẽ đƣợc nâng
cao độ tƣơng phản, khử nhiễu, khử bóng, khử độ lệch loại bỏ các đối tƣợng không quan
tâm để giảm sai số cho quá trình đếm đối tƣơng. Kết quả cuối cùng sẽ là nhận diện đƣợc
chuyển động và lƣu lại lịch sử đã có ngƣời qua lại trong khu vực lắp đặt camera.
Chi tiết hệ thống
Khối ảnh đầu vào: đƣa hình ảnh thu đƣợc từ camera vào hệ thống.
Khối tiền xử lý: giúp cải thiện và nâng ...chuyển động
Nhấn vào “ BẮT ĐẦU” chƣơng trình sẽ tiến hành hoạt động với camera chụp liên
tục đến khi có chuyển đổng sẽ tự động chụp lại vào lƣu lại vào một cơ sở dữ liệu
Hình 4.13 Giao diện của hệ thống phát hiện chuyển động khi đang hoạt động
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58
CHƯƠNG 4.THI CÔNG THIẾT KẾ
4.3.2 Hệ thống nhận diện khuôn mặt
Mở ứng dụng, khởi động chƣơng trình:
Hình 4.14 Giao diện chính của hệ thống nhận diện khuôn mặt
Để thêm hình ảnh cho cơ sở dũ liệu chúng ta nhấn “THÊM ẢNH” rồi chọn camera
sẽ sử dụng và chọn độ phân giải (nhóm em sẽ sử dụng camera “logitech” và độ phân giải
là 1024x576).
Hình 4.15 Thêm ảnh cho cơ sở dữ liệu
Chƣơng trình tiến hành lấy hình ảnh cho cơ sở dữ liêu và tiến hành nhập tên.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59
CHƯƠNG 4.THI CÔNG THIẾT KẾ
Sau đó chúng ta sẽ nhận vào “HUẤN LUYỆN” để huấn luyện tập ảnh
Hình 4.16 Huấn luyện cho cơ sở dữ liệu
Sau khi kết thúc huấn luyện ta tiến hành ta nhấn “NHẬN DIỆN”rồi tƣơng tự ta chọn
thiết bị để nhận dạng và độ phân giải.
Hình 4.17 Tiến hành so sánh khuôn mặt với ảnh trong cơ sở dữ liệu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60
CHƯƠNG 4.THI CÔNG THIẾT KẾ
Ngoải ra chúng ta còn có thế xóa bớt ảnh có trong cơ sở dữ liệu bằng nút nhấn
“XÓA”.
Hình 4.18 Cho phép xóa ảnh trong cơ sở dữ liệu
Ngoài ra chúng ta còn có thể kiểm tra trong cơ sở dữ liệu qua nút nhấn “LƢU TRỮ”
và “GHI LẠI”.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61
CHƯƠNG 4.THI CÔNG THIẾT KẾ
Hình 4.19 Các khuôn mặt có sẵn trong cơ sở dữ liệu (database)
Nút “ĐẶT LẠI” để xóa hết mọi thứ từng lƣu lại trong chƣơng trình.
Hình 4.20 Xóa tất cả ảnh trong cơ sở dữ liệu
Tiến hành nhận diện khuôn mặt ở trƣớc camera rồi sau đó chƣơng trình tiến hành so
sánh khuôn mặt mới thu đƣợc với những hình ảnh có sẵn trong cơ sở dữ liệu để đƣa ra
hƣớng giải quyết cho hệ thống cảnh báo.
4.4 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH
4.4.1 Đóng gói bộ điều khiển
Sau khi kiểm tra mạch hoạt động tốt ta tiến hành đóng hộp thành mô hình cửa. Bộ
điều khiển đƣợc trong 1 hình hộp chữ nhật bằng meca đen dày 3 mm với kích thƣớc
30x30x30 cm.
Camera Thiết bị ngoại vi
LAPTOP
(hệ thộng phát hiện chuyển động và nhận diện khuôn mặt)
(
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62
CHƯƠNG 4.THI CÔNG THIẾT KẾ
Hình 4.21 Sơ đồ bố trí linh kiện mặt trƣớc mô hình
4.4.2 Thi công mô hình
Mô hình bằng nhựa kết nối laptop với thiết bị ngoại vi và camera.
Hình 4.22 Hình dạng mặt bên ngoài mô hình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63
CHƯƠNG 4.THI CÔNG THIẾT KẾ
Hình 4.23 Hình dạng bên trong mô hình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Chƣơng 5
KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 KẾT QUẢ
Sau thời gian tiến hành tìm hiểu, nghiên cứu các tài liệu chuyên ngành tiếng Việt
cũng như tiếng Anh, tìm hiểu thêm qua mạng Internet, tổng hợp lại các kiến thức đã
được học trong suốt 4 năm cũng như được sự hướng dẫn của thầy GVHD Th.S Võ
Đức Dũng. Nhóm chúng em cũng đã hoàn thành được đồ án tốt nghiệp với đề tài
“ỨNG DỤNG XỬ LÝ ẢNH THI CÔNG THIẾT KẾ MẠCH CHỐNG TRỘM
THÔNG MINH ”
Nghiên cứu và biết được cách viết chương trình MATLAB và đồng thời liên kết
chương trình MATLAB với Arduino làm tăng tính hiệu quả của hệ thống.
Nghiên cứu và biết cách kết nối giữa Arduino với module Sim 800A, động cơ
Servo và lắp vào mô hình để thành sản phẩm hoàn chỉnh.
Nghiên cứu biết được cách sử dụng module Sim 800A, nguyên lý hoạt động,
các thông số kỹ thuật, tính năng của Sim 800A. Biết được cách thiết lập cho module
sim, sử dụng tính năng gửi tin nhắn.
Sau quá trình nghiên cứu, thi công đề tài “ỨNG DỤNG XỬ LÝ ẢNH THI
CÔNG THIẾT KẾ MẠCH CHỐNG TRỘM THÔNG MINH” của nhóm đã hoàn thành
và thực hiện được tính năng sau:
Nhận biết được chuyển động thông qua Camera
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 65
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.1 Phát hiện chuyển động người ở phía trước
Hình 5.2 Phát hiện chuyển động ở phía sau
Hình 5.3 Phát hiện chuyển động người khi đang cúi xuống
Khoanh vùng và chụp lại những ảnh phát hiện ra chuyển động với nhiều tư thế
khác nhau như phía trước mặt sau lưng hoặc là khi người lạ cúi xuống đồng thời lưu
lại ảnh để giúp gia chủ có thể kiểm tra lại đối tượng khi cần.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 66
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.4 Hệ thống cảnh báo gửi tin nhắn đến cho gia chủ
Đồng thời báo đèn và chuông để cảnh báo đồng thời giúp cho gia chủ nhận ra sự
hiện diện của người khác một cách dễ dàng hơn.
Hình 5.5 Đèn và chuông hoạt động khi có chuyển động
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 67
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.6 Ảnh chụp lại từ camera trong điều kiện ánh sáng yếu
Hệ thống phát hiện và nhận diện chuyển động có thể làm việc trong điều kiện
cường độ ánh sáng không quá cao, tuy nhiên nếu quá tối thì hệ thống sẽ không hoạt
động thực sự tốt được.
Khi có người vào cửa thì chương trình nhận diện khuôn mặt sẽ hoạt động.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 68
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.7 Giao diện chính của hệ thống nhận diện khuôn mặt
Thêm khuôn mặt mới vào cơ sở dữ liệu là điều đầu tiện mà gia chủ nên làm để có
thẻ sử dụng hệ thống nhận diện khuôn mặt.
Hình 5.8 Tiến hành thêm hình ảnh vào kho lưu trữ
Hình 5.9 Chọn thiết bị để quét môi trường
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 69
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.10 Chọn độ phân giải
Mục đích của việc chọn thiết bị và độ phân giải nhằm giúp cho gia chủ có nhiều
sự lựa chọn hơn cho camera sẽ sử dụng từ loại rẻ tiền chất lượng thấp đến loại đắt tiền
chấp lượng cao, nhóm thực hiện sẽ sử dụng webcam Logitech với độ phân giải là
1280x720.
Hình 5.11 Phát hiện ra khuôn mặt
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 70
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.12 Yêu cầu nhập tên
Có thể nhập trùng tên cho nhiều ảnh với nhiều góc nghiên khác nhau của khuôn
mặt nhằm giúp cho hệ thống dễ dàng nhận diện hơn giảm thiểu các trường hợp sai sót
không đáng có.
Hình 5.13 Huấn luyện hệ thống
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 71
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.14 Đang tiến hành huấn luyện hệ thống
Hình 5.15 Đã hoàn tấc huấn luyện
Việc huấn luyện này nhằm giúp cho cơ sở dữ liệu lưu lại các khuôn mặt đã lấy
được trước đó.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 72
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.16 Tiến hành so sánh khuôn mặt
Tương tự như việc lấy ảnh khuôn mặt việc chọn thiết bị và độ phân giải nhằm hỗ
trợ gia chủ có nhiều sự lựa chọn hơn.
Hình 5.17 Phát hiện ra khuôn mặt có sẵn trong cơ sở dữ liệu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 73
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.18 Cửa mở ra trong 6 giây sau đó tự động đóng lại
Sau khi so sánh khuôn mặt hiện tại có trong cơ sở dữ liệu lúc đó servo sẽ hoạt
động giúp cho cửa mở ra, sau 6 giây cửa sẽ tự động đóng lại.
Hình 5.19 Phát hiện ra khuôn mặt không có trong cỡ sở dữ liệu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 74
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.20 Đèn cảnh báo sáng lên kèm theo chuông
Khi khuôn mặt không có trong cơ sở dữ liệu thì sẽ hiện thị cảnh bảo ở trên giao
diện đồng thời một đèn trước cửa sẽ sáng đồng thời chuông kêu cảnh báo với người
đứng trước với camera vào lúc đó. Khi đấy người đứng trước camera hoặc là tiến hành
nhận diện lại hoặc là sẽ bỏ đi vì là người lạ, chống lại những sự xâm nhập tư gia không
đáng có.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 75
CHƢƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.2 NHẬN XÉT – ĐÁNH GIÁ:
Sau thời gian nghiên cứu, thi công thì đồ án tốt nghiệp của nhóm với đề tài
“ỨNG DỤNG XỬ LÝ ẢNH THIẾT KẾ THI CÔNG MẠCH CHỐNG TRỘM
THÔNG MINH ”đã hoàn thiện.
Nhìn chung, mô hình đã hoạt động ổn định, có thể làm việc liên tục, đạt 100%
yêu cầu đề ra ban đầu. Bên cạnh đó hệ thống mở rộng thêm được nhiều chức năng
khác nhau. Người dùng thao tác một cách đơn giản, dễ sử dụng. Hê thống đảm bảo an
toàn và bảo mật cho người dùng.
Hệ thống sử dụng nguồn cấp nhỏ từ 12V-5A trở xuống nên an toàn cho người sử
dụng trước nguy cơ điện giật.
Do sử dụng công nghệ nhận dạng chuyển động kết hợp với công nghệ nhận diện
khuôn mặt nên tính bảo mật của mô hình khá cao.
Hệ thống nhận diện chuyển động và hệ thống nhận diện khuôn mặt đều chụp và
lưu lại hình giúp cho người sử dụng có thể dễ dàng bảo vệ và chống lại hành vi trộm
cắp hơn.
Tuy nhiên, do sự hạn chế về kiến thức và thời gian thực hiện, nguồn tài liệu tham
khảo chủ yếu thông qua internet nên đề tài không tránh khỏi sai sót và còn một số hạn
chế:
Hạn chế lớn nhất là chưa có được nguồn điện dự trữ để cung cấp cho hệ thống
hoạt động khi bị mất nguồn chính.
Vì điều kiện kinh phí và thời gian có hạn, nên nhóm chỉ thực hiện được mô
hình tương đối hoàn chỉnh, tính thẩm mỹ không cao.
Hệ thống ngoại vi chưa có tính ổn định khi vận hành hoạt động và vẫn xảy ra
lỗi.
Hệ thống nhận dạng chuyển động và nhận diện khuôn mặt vẫn chưa thực sự
hoạt động tốt nhất đặc biệt trong điều kiện quá tối hoặc quá sáng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH 76
CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
Chƣơng 6
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
6.1 KẾT LUẬN
Sau thời gian tìm hiểu, nghiên cứu và thực hiện, nhóm đã hoàn thành đề tài
“THIẾT KẾ VÀ THI CÔNG MẠCH CHỐNG TRỘM THÔNG MINH” hệ thống đáp
ứng đầy đủ các tính năng, nội dung và mục tiêu ban đầu đã đề ra:
Nhận biết được chuyển động người và chuyển động môi trường.
Có đèn báo hiệu khi có chuyển động.
Nhận diện khuôn mặt với nhiều góc độ khác nhau.
Lưu trữ thành công khuôn mặt nhận diện được từ camera.
Huấn luyện được tập ảnh đã nhận diện trước đó.
So sánh khuôn mặt với tập ảnh có sẵn trong cơ sở dũ liệu thành công.
Giao tiếp và truyền dữ liệu thành công giữa Arduino Uno R3với các module
SIM 800A, chuông và động cơ Servo.
Tuy nhiên, do sự hạn chế về kiến thức và thời gian thực hiện, nguồn tài liệu tham
khảo chủ yếu thông qua internet nên đề tài không tránh khỏi sai sót và còn một số hạn
chế:
Vì điều kiện kinh phí và thời gian có hạn, nên nhóm chỉ thực hiện được mô
hình tương đối hoàn chỉnh.
Vẫn phải kết nối trực tiếp với laptop để thực hiện chương trình.
Chương trình nhận diện, phát hiện chuyển động và nhận diện khuôn mặt vẫn
chưa thực sự hoàn chỉnh vẫn có nhiều sai sót khi vận hành.
Vẫn còn rất phức tạp để ứng dụng vào thực tế.
Hệ thống kết nối với ngoại vi vẫn chưa hoạt động ổn định.
Nhưng nhận xét tổng quan về hệ thống thì:
Toàn bộ hệ thống chạy tương đối ổn định, đạt kết quả tốt. Tuy nhiên đôi lúc vẫn
bị ảnh hưởng bởi đáp ứng tác động của hệ thống phần cứng.
Hệ thống nhận, trả lời yêu cầu từ người dùng và gửi tín hiệu điều khiển của
SIM 800A hoạt động khá ổn định, chính xác.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 77
CHƢƠNG 6. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
6.2 HƢỚNG PHÁT TRIỂN
Có thể nâng cấp hệ thống bằng việc gửi dữ liệu lên internet để hệ thống có thể dễ
dàng quản lý từ xa hơn.
Thiết kế thêm nguôn dự trữ dùng pin mặt trời và ác-quy để khi nguồn điện chính
bị mất đi hệ thống vẫn có thể hoạt động bình thường.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 78
TÀI LIỆU THAM KHẢO
TÀI LIỆU THAM KHẢO
Sách tham khảo
[1] Nguyễn Thanh Hải, Giáo trình Xử lý ảnh, Nhà xuất bản ĐH Quốc Gia TP. HCM, 2014
[2] Lương Mạnh Bá. Nguyễn Thanh Thủy, Chương 7, Nhập Môn Xử Lý ảnh số, Nxb Khoa
học và Kỹ Thuật, 2002, trang 179-208.
[3] John Boxal, “ Arduino Workshop, Willinam Pollock”, May 2013.
[4] Stuart William Perry, Hau-San Wong and Ling Guan, Adaptive Image
Processing: A Computational Intelligence Perspective, CEC Press LLC, 2002.
[5] Kyungnam Kim, Face Recognition using Principle Component Analysis, Department of
Computer Science University of MaryLand, USA, trang1-6.
[6] Howard A. Draper, Kyungim Baek, Marian Stewart Barlett, J. Ross Bervridge,
“Recognizing Faces with PCA and ICA”, 2004, trang 1-24.
DATASHEET
[7] Arduino Uno R3, https://www.arduino.cc/en/uploads/Main/arduino-mega2560_R3-
schematic.pdf
[8] Sim 800A,
[9] Tập lệnh AT,
[10] Động cơ Servo,
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 79
PHỤ LỤC
PHỤ LỤC
CHƢƠNG TRÌNH CỦA TỪNG HỆ THỐNG
I. Chƣơng trình của hệ thống nhận diện và phát hiện chuyển động
function varargout = giaodien123(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @giaodien123_OpeningFcn, ...
'gui_OutputFcn', @giaodien123_OutputFcn, ...
'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
function giaodien123_OpeningFcn(hObject, eventdata, handles, varargin)
guidata(hObject, handles);
function varargout = giaodien123_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function figure1_CreateFcn(hObject, eventdata, handles)
im = imread('GetArticleImage.jpg');
imshow(im);
function pushbutton1_Callback(hObject, eventdata, handles)
global s;
s=serial('COM6');
fopen(s);
i=0;
peopleDetector = vision.PeopleDetector('MergeDetections',true);
peopleDetector.ClassificationThreshold =2;
pointTracker = vision.PointTracker('MaxBidirectionalError', 2);
cam = webcam();
videoFrame = snapshot(cam);
frameSize = size(videoFrame);
videoPlayer = vision.VideoPlayer('Position', [100 100 [frameSize(2), frameSize(1)]+30]);
runLoop = true;
numPts = 0;
frameCount = 0;
while runLoop
videoFrame = snapshot(cam);
videoFrameGray = rgb2gray(videoFrame);
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 80
PHỤ LỤC
frameCount = frameCount + 1;
if numPts < 10
bbox = step(peopleDetector,videoFrame);
if ~isempty(bbox)
points = detectMinEigenFeatures(videoFrameGray, 'ROI', bbox(1, :));
xyPoints = points.Location;
numPts = size(xyPoints,1);
release(pointTracker);
initialize(pointTracker, xyPoints, videoFrameGray);
oldPoints = xyPoints;
bboxPoints = bbox2points(bbox(1, :));
bboxPolygon = reshape(bboxPoints', 1, []);
D=1;
videoFrame = insertObjectAnnotation(videoFrame,'rectangle',bbox,D);
end
else
[xyPoints, isFound] = step(pointTracker, videoFrameGray);
visiblePoints = xyPoints(isFound, :);
oldInliers = oldPoints(isFound, :);
numPts = size(visiblePoints, 1);
if numPts >= 30
bbox = step(peopleDetector,videoFrame);
[xform, oldInliers, visiblePoints] = estimateGeometricTransform(...
oldInliers, visiblePoints, 'similarity', 'MaxDistance', 4);
bboxPoints = transformPointsForward(xform, bboxPoints);
bboxPolygon = reshape(bboxPoints', 1, []);
D=1;
videoFrame = insertObjectAnnotation(videoFrame,'rectangle',bbox,D);
step(videoPlayer,videoFrame);
oldPoints = visiblePoints;
setPoints(pointTracker, oldPoints);
if i==0
fwrite(s,2)
end
i=1;
end
end
step(videoPlayer, videoFrame);
runLoop = isOpen(videoPlayer);
end
clear cam;
release(videoPlayer);
release(pointTracker);
close;
function figure1_DeleteFcn(hObject, eventdata, handles)
global s;
fwrite(s,0);
out = instrfind;
fclose(out);
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81
PHỤ LỤC
function pushbutton2_Callback(hObject, eventdata, handles)
global s;
fwrite(s,0);
out = instrfind;
fclose(out);
II. Chƣơng trình của hệ thống nhận diện khuôn mặt
function varargout = regconition(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @regconition_OpeningFcn, ...
'gui_OutputFcn', @regconition_OutputFcn, ...
'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
function regconition_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);
function varargout = regconition_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function figure1_CreateFcn(hObject, eventdata, handles)
global q;
q = serial('com3');
fopen(q);
im = imread('GetArticleImage.jpg');
imshow(im);
function pushbutton1_Callback(hObject, eventdata, handles)
global co
if isfield(handles,'vdx')
vid = handles.vdx;
stoppreview(vid)
delete(vid)
handles = rmfield(handles,'vdx');
guidata(hObject,handles)
cla(handles.axes1)
reset(handles.axes1)
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82
PHỤ LỤC
set(handles.axes1,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176
0.7804],'linewidth',1.5)
cla(handles.axes2)
reset(handles.axes2)
set(handles.axes2,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176
0.7804],'linewidth',1.5)
end
fd = vision.CascadeObjectDetector();
fd.MergeThreshold = 15;
info = imaqhwinfo('winvideo');
did = info.DeviceIDs;
if isempty(did)
msgbox({'YOUR SYSTEM DO NOT HAVE A WEBCAM';' ';'CONNECT A
ONE'},'WARNING....!!!!','warn','modal')
return
end
did = cell2mat(did);
for k = 1:length(did)
devinfo = imaqhwinfo('winvideo',k);
na(1,k) = {devinfo.DeviceName};
sr(1,k) = {devinfo.SupportedFormats};
end
[a,b] = listdlg('promptstring','SELECT A WEB CAM DEVICE','liststring',na,'ListSize', [125,
75],'SelectionMode','single');
if b == 0
return
end
if b ~= 0
frmt = sr{1,a};
[a1,b1] = listdlg('promptstring','SELECT RESOLUTION','liststring',frmt,'ListSize', [150,
100],'SelectionMode','single');
if b1 == 0
return
end
end
frmt = frmt{a1};
l = find(frmt == '_');
res = frmt(l+1 : end);
l = find(res == 'x');
res1 = str2double(res(1: l-1));
res2 = str2double(res(l+1 : end));
axes(handles.axes1)
vid = videoinput('winvideo', a);
vr = [res1 res2];
nbands = get(vid,'NumberofBands');
h2im = image(zeros([vr(2) vr(1) nbands] , 'uint8'));
preview(vid,h2im);
handles.vdx = vid;
guidata(hObject,handles)
tx = msgbox('PLZ STAND IN FRONT OF CAMERA STILL','INFO......!!!');
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83
PHỤ LỤC
pause(1)
delete(tx)
kx = 0;
while 1
im = getframe(handles.axes1);
im = im.cdata;
bbox = step(fd, im);
vo = insertObjectAnnotation(im,'rectangle',bbox,'FACE');
axes(handles.axes2)
imshow(vo)
if size(bbox,1) > 1
msgbox({'TOO MANY FACES IN FRAME';' ';'ONLY ONE FACE IS
ACCEPTED'},'WARNING.....!!!','warn','modal')
uiwait
stoppreview(vid)
delete(vid)
handles = rmfield(handles,'vdx');
guidata(hObject,handles)
cla(handles.axes1)
reset(handles.axes1)
set(handles.axes1,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1
1],'color',co,'linewidth',1.5)
cla(handles.axes2)
reset(handles.axes2)
set(handles.axes2,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1
1],'color',co,'linewidth',1.5)
return
end
kx = kx + 1;
if kx > 10 && ~isempty(bbox)
break
end
end
imc = imcrop(im,[bbox(1)+3 bbox(2)-35 bbox(3)-10 bbox(4)+70]);
imx = imresize(imc,[300 300]);
fhx = figure(2);
set(fhx,'menubar','none','numbertitle','off','name','PREVIEW')
imshow(imx)
cd ('database');
l = length(dir(pwd));
n = [int2str(l-1) '.jpg'];
imwrite(imx,n);
cd ..
while 1
qq = inputdlg('WHAT IS UR NAME?','FILL');
if isempty(qq)
msgbox({'YOU HAVE TO ENTER A NAME';' ';'YOU CANT CLICK
CANCEL'},'INFO','HELP','MODAL')
uiwait
else
break
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84
PHỤ LỤC
end
end
qq = qq{1};
if exist('info.mat','file') == 2
load ('info.mat')
r = size(z2,1);
z2{r+1,1} = {n , qq};
save('info.mat','z2')
else
z2{1,1} = {n,qq};
save('info.mat','z2')
end
close gcf
stoppreview(vid)
delete(vid)
handles = rmfield(handles,'vdx');
guidata(hObject,handles)
cla(handles.axes1)
reset(handles.axes1)
cla(handles.axes2)
reset(handles.axes2)
function pushbutton2_Callback(hObject, eventdata, handles)
flist = dir('database');
if length(flist) == 2
msgbox('NOTHING TO DELETE','INFO','modal');
return
end
cd('database')
[f,p] = uigetfile('*.jpg','SELECT A PIC TO DELETE IT');
if f == 0
cd ..
return
end
p1 = fullfile(p,f);
delete(p1)
flist = dir(pwd);
if length(flist) == 2
cd ..
return
end
for k = 3:length(flist)
z = flist(k).name;
z(strfind(z,'.') : end) = [];
nlist(k-2) = str2double(z);
end
nlist = sort(nlist);
h = waitbar(0,' MATLAB IS RENAMING','name','PROGRESS...');
for k = 1:length(nlist)
if k ~= nlist(k)
p = nlist(k);
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85
PHỤ LỤC
movefile([num2str(p) '.jpg'] , [num2str(k) '.jpg'])
waitbar((k-2)/length(flist),h,sprintf('RENAMED %s to %s',[num2str(p)
'.jpg'],[num2str(k) '.jpg']))
end
pause(.5)
end
close(h)
cd ..
function pushbutton4_Callback(hObject, eventdata, handles)
runLoop = true;
global co
global q;
if exist('features.mat','file') == 0
msgbox('FIRST TRAIN YOUR DATABASE','INFO...!!!','MODAL')
return
end
ff = dir('database');
if length(ff) == 2
h = waitbar(0,'Xin ch? ','name','SCANNING IS IN PROGRESS');
for k = 1:100
waitbar(k/100)
pause(0.03)
end
close(h)
msgbox({'NO IMAGE FOUND IN DATABASE';'FIRST LOAD YOUR
DATABASE';'USE ''ADD NEW IMAGE'' MENU'},'WARNING....!!!','WARN','MODAL')
return
end
if isfield(handles,'vdx')
vid = handles.vdx;
stoppreview(vid)
delete(vid)
handles = rmfield(handles,'vdx');
guidata(hObject,handles)
cla(handles.axes1)
reset(handles.axes1)
set(handles.axes1,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176
0.7804],'linewidth',1.5)
cla(handles.axes2)
reset(handles.axes2)
set(handles.axes2,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176
0.7804],'linewidth',1.5)
end
info = imaqhwinfo('winvideo');
did = info.DeviceIDs;
if isempty(did)
msgbox({'YOUR SYSTEM DO NOT HAVE A WEBCAM';' ';'CONNECT A
ONE'},'WARNING....!!!!','warn','modal')
return
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86
PHỤ LỤC
end
fd = vision.CascadeObjectDetector();
fd.MergeThreshold =15;
did = cell2mat(did);
for k = 1:length(did)
devinfo = imaqhwinfo('winvideo',k);
na(1,k) = {devinfo.DeviceName};
sr(1,k) = {devinfo.SupportedFormats};
end
[a,b] = listdlg('promptstring','SELECT A WEB CAM DEVICE','liststring',na,'ListSize', [125,
75],'SelectionMode','single');
if b == 0
return
end
if b ~= 0
frmt = sr{1,a};
[a1,b1] = listdlg('promptstring','SELECT RESOLUTION','liststring',frmt,'ListSize', [150,
100],'SelectionMode','single');
if b1 == 0
return
end
end
while runLoop
frmt = sr{1,a};
frmt = frmt{a1};
l = find(frmt == '_');
res = frmt(l+1 : end);
l = find(res == 'x');
res1 = str2double(res(1: l-1));
res2 = str2double(res(l+1 : end));
axes(handles.axes1)
vid = videoinput('winvideo', a);
vr = [res1 res2];
nbands = get(vid,'NumberofBands');
h2im = image(zeros([vr(2) vr(1) nbands] , 'uint8'));
preview(vid,h2im);
handles.vdx = vid;
guidata(hObject,handles)
tx = msgbox('XIN DUNG YEN TRUOC CAMERA','INFO......!!!');
pause(1)
delete(tx)
kx = 0;
while 1
im = getframe(handles.axes1);
im = im.cdata;
bbox = step(fd, im);
vo = insertObjectAnnotation(im,'rectangle',bbox,'FACE');
axes(handles.axes2)
imshow(vo)
if size(bbox,1) > 1
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87
PHỤ LỤC
msgbox({'QUA NHIEU KHUON MAT';' ';'CHI DUOC MOT KHUON
MAT'},'WARNING.....!!!','warn','modal')
uiwait
stoppreview(vid)
delete(vid)
handles = rmfield(handles,'vdx');
guidata(hObject,handles)
cla(handles.axes1)
reset(handles.axes1)
set(handles.axes1,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1
1],'color',co,'linewidth',1.5)
cla(handles.axes2)
reset(handles.axes2)
set(handles.axes2,'box','on','xtick',[],'ytick',[],'xcolor',[1 1 1],'ycolor',[1 1
1],'color',co,'linewidth',1.5)
return
end
kx = kx + 1;
if kx > 10 && ~isempty(bbox)
break
end
end
imc = imcrop(im,[bbox(1)+3 bbox(2)-35 bbox(3)-10 bbox(4)+70]);
imx = imresize(imc,[300 300]);
axes(handles.axes1)
image(imx)
text(20,20,'\bfHINH HIEN TAI.','fontsize',12,'color','y','fontname','comic sans ms')
set(handles.axes1,'xtick',[],'ytick',[],'box','on')
immxx = imx;
zz = findsimilar(immxx);
zz = strtrim(zz);
fxz = imread(['database/' zz]);
q1= ehd(immxx,0.1);
q2 = ehd(fxz,0.1);
q3 = pdist([q1 ; q2]);
disp(q3)
if q3 < 0.5
axes(handles.axes2)
image(fxz)
set(handles.axes1,'xtick',[],'ytick',[],'box','on')
text(20,20,'\bf HINH LUU TRU.','fontsize',12,'color','y','fontname','comic sans ms')
set(handles.axes2,'xtick',[],'ytick',[],'box','on')
xs = load('info.mat');
xs1 = xs.z2;
for k = 1:length(xs1)
st = xs1{k};
stx = st{1};
if strcmp(stx,zz) == 1
str = st{2};
break
end
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88
PHỤ LỤC
end
fid = fopen('attendence_sheet.txt','a');
fprintf(fid,'%s %s %s %s\r\n\n', 'Name','Date','Time',
'Attendence');
c = clock;
if c(4) > 12
s = [num2str(c(4)-12) ,':',num2str(c(5)), ':', num2str(round(c(6))) ];
else
s = [num2str(c(4)) ,':',num2str(c(5)), ':', num2str(round(c(6))) ];
end
fwrite(q,1)
pause(4)
else
msgbox('BAN KHONG PHAI NGUOI TRONG NHA', 'WARNING','WARN','MODAL')
cla(handles.axes1)
reset(handles.axes1)
cla(handles.axes2)
reset(handles.axes2)
fwrite(q,3);
end
pause(5);
end
function pushbutton5_Callback(hObject, eventdata, handles)
f = dir('database');
if length(f) == 2
msgbox('YOUR DATA BASE HAS NO IMAGE TO DISPLAY','SORRY','modal')
return
end
l = length(f)-2;
while 1
a = factor(l);
if length(a) >= 4
break
end
l = l+1;
end
d = a(1: ceil(length(a)/2));
d = prod(d);
d1 = a(ceil(length(a)/2)+1 : end);
d1 = prod(d1);
zx = sort([d d1]);
figure('menubar','none','numbertitle','off','name','Images of Database','color',[0.0431 0.5176
0.7804],'position',[300 200 600 500])
for k = 3:length(f)
im = imread(f(k).name);
subplot(zx(1),zx(2),k-2)
imshow(im)
title(f(k).name,'fontsize',10,'color','w')
end
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89
PHỤ LỤC
function pushbutton6_Callback(hObject, eventdata, handles)
x = questdlg({'Tat Ca Du Lieu Se Bi Xoa'},'Please select...!!');
if strcmpi(x,'yes') == 1
delete('attendence_sheet.txt')
delete('features.mat')
delete('info.mat')
cd ([pwd, '\database'])
f = dir(pwd);
for k = 1:length(f)
delete(f(k).name)
end
cd ..
cla(handles.axes1);
reset(handles.axes1);
set(handles.axes1,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176
0.7804],'linewidth',1.5)
cla(handles.axes2);
reset(handles.axes2);
set(handles.axes2,'box','on','xcolor','w','ycolor','w','xtick',[],'ytick',[],'color',[0.0431 0.5176
0.7804],'linewidth',1.5)
beep
msgbox('All Reset','Info','modal')
end
function pushbutton7_Callback(hObject, eventdata, handles)
if exist('attendence_sheet.txt','file') == 2
winopen('attendence_sheet.txt')
else
msgbox('NO ATTENDENCE SHEET TO DISPLAY','INFO...!!!','HELP','MODAL')
end
function pushbutton8_Callback(hObject, eventdata, handles)
ff = dir('database');
if length(ff) == 2
h = waitbar(0,'Xin Doi Trong Giay Lat','name','SCANNING IS IN PROGRESS');
for k = 1:100
waitbar(k/100)
pause(0.03)
end
close(h)
msgbox({'NO IMAGE FOUND IN DATABASE';'FIRST LOAD YOUR
DATABASE';'USE ''ADD NEW IMAGE'' MENU'},'WARNING....!!!','WARN','MODAL')
return
end
if exist('features.mat','file') == 2
bx = questdlg({'TRAINING HAS ALREDY BEEN DONE';' ';'WANT TO TRAIN
DATABASE AGAIN?'},'SELECT','YES','NO','CC');
if strcmpi(bx,'yes') == 1
builddatabase
msgbox('TRAINING DONE....PRESS OK TO CONTINUE','OK','modal')
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90
PHỤ LỤC
return
else
return
end
else
builddatabase
msgbox('TRAINING DONE....PRESS OK TO CONTINUE','OK','modal')
return
end
function figure1_DeleteFcn(hObject, eventdata, handles)
if ~isempty(instrfind)
fclose(instrfind);
delete(instrfind);
end
III. CHƢƠNG TRÌNH HỆ THỐNG NGOẠI VI
#include "SoftwareSerial.h"
#include "Hshopvn_GSM.h"
#include
SoftwareSerial sim800ds(2, 3);
HshopGSM HGSM = HshopGSM(&sim800ds);
String Str_PhoneNum = "01672131349";
unsigned long UL_PhoneNum = 1672131349;
Servo myservo;
int data =0;
int servoPin = 10;
int j=1;
int led = 4;
int bell = 9;
int i;
void setup()
{
Serial.begin(9600);
HGSM.init(&GSM_Ready, 9600);
pinMode(led, OUTPUT);
pinMode(bell, OUTPUT);
myservo.attach(servoPin);
myservo.write(130);
}
void loop()
{
HGSM.handle();
if(Serial.available()>0){
data = Serial.read();
j=1;
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91
PHỤ LỤC
i=1;
}
if (data == 2)
{
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
digitalWrite(bell,HIGH);
if (i==1){
HGSM.sendsms(Str_PhoneNum, "BAO DONG CO TROM ");
i =i + 1;
}
}
else if (data == 1)
{
if (j==1){
myservo.write(0);
delay(4000);
myservo.write(130);
j=j+1;
}
}
else
{
digitalWrite(led,LOW);
digitalWrite(bell,LOW);
}
}
void GSM_Ready() {
if (HGSM.getDataGSM() != "") {
Serial.println(HGSM.getDataGSM()); //show data comming
} else;
}
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92
Các file đính kèm theo tài liệu này:
- do_an_ung_dung_xu_ly_anh_thiet_ke_thi_cong_mach_chong_trom_t.pdf