4.3. MÔ TẢ HỆ THỐNG BÁO TRỘM
Sau khi thiết kế, mạch điều khiển đã được đóng hộp bảo vệ như hình 4.5.
Hình 4.5. Các mạch điều khiển được đóng hộp bảo vệ
Nút nhấn, tụ 10uF để Reset mạch. Thạch anh 20 M tạo dao động. Vi xử lý PIC 16F887 Module LM2596 tạo nguồn 5v-3A 5.5mm 2 transister C1815 và 2 điện trở 4,7kΩ Jack cắm. LCD 16X2 Sim900 Relay 12VDC Transister C1815 Led báo tín hiệu Trở 330Ω Diode 1N4007 LM2596, 2 tụ
220uF, biến trở để thay đổi điện áp, Jack nguồn Led báo nguồn
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 36
Hình 4.6. Các mạch được kết nối với nhau
Kết nối các thành phần lại với nhau tạo thành một hệ thống hoàn chỉnh. Hệ thống bao gồm các thành phần quan trọng như sau: kit Raspberry và Camera pi để lấy hình ảnh và xuất tín hiệu điều khiển cảnh báo bằng tin nhắn. Mạch gửi tin nhắn lấy tín hiệu điều khiển từ Raspberry để vi xử lý điều khiển, gửi tin nhắn cảnh báo. Phần mềm Matlab 2014a được cài đặt trên máy tính là ngơn ngữ chính để xử lý ảnh và điều khiển hoạt động. Tồn bộ hệ thống được trình bày như trong hình 4.6.
4.4. GIẢI THUẬT CHƯƠNG TRÌNH HỆ THỐNG
4.4.1. Nhận dạng khuôn mặt và dáng người
Camera sau khi chụp được dáng người hoặc khuôn mặt sẽ chuẩn hóa kích thước ảnh sao cho giống với kích thước của dữ liệu ảnh so sánh. Sau đó, hệ thống sẽ chuyển sang ảnh xám để giảm dung lượng của ảnh, nhưng các đặc điểm đặc trưng vẫn không thay đổi. Việc xử lý ảnh màu trên kit Raspberry sẽ khó khăn hơn do dung lượng ảnh lớn, làm tốc độ xử lý ảnh bị chậm đi. Hệ thống sẽ xét có phải là khn mặt khơng, nếu có hệ thống sẽ nhận dạng để tìm ra có người trong dữ liệu ảnh hay khơng. Nếu khơng phải là người trong cơ sở dữ liệu ảnh thì hệ thống sẽ gửi tin nhắn cảnh báo. Ngược lại, nếu ảnh nhận vào là dáng người di chuyển thì hệ thống sẽ gửi tin nhắn LCD hiển thị Module Camera pi Giao diện điều khiển hệ thống Còi báo động Đèn báo
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 37 cảnh báo là có người xuất hiện. Hình 4.7 là lưu đồ q trình nhận dạng khn mặt và dáng người.
Hình 4.7. Lưu đồ nhận dạng khn mặt và dáng người 4.4.2. Huấn luyện nhận dạng khuôn mặt
Khi ảnh được đưa vào xử lý, sẽ phải qua q trình huấn luyện để có thể so sánh và dị tìm đối tượng. Sơ đồ này dựa trên kỹ thuật phân tích thành phần chính trong nhận dạng khuôn mặt đã nêu ở phần trên. Các ảnh ngõ vào đều phải qua quá trình này, để so sánh kết quả với tập ảnh mẫu đã tạo trước đó. Quá trình dựa vào những đặt điểm riêng của ảnh mà thuật tốn phân tích thành phần chính đã xây dựng để nhận
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 38 dạng đúng khn mặt của con người. Hình 4.8 mơ tả q trình nhận dạng ảnh dựa vào thuật tốn PCA.
Hình 4.8. Sơ đồ thuật tốn huấn luyện khn mặt 4.4.3. Lưu đồ nhận dạng khn mặt
Hình 4.9. Lưu đồ chương trình nhận dạng khn mặt
Nhận ảnh đầu vào
Tính vector riêng ảnh trung bình Tính trung bình ảnh đầu vào
Tính các giá trị riêng từ vector riêng
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 39 Dựa vào hình 4.9 - lưu đồ chương trình, ta có thể hiểu hoạt động của hệ thống nhận dạng như sau:
Bắt đầu chương trình, người dùng nhấn lệnh hoạt động hệ thống từ giao diện điều khiển. Camera bắt đầu hoạt động, khi phát hiện được khuôn mặt, Camera sẽ chụp ảnh đó lại. Với chương trình được nhóm trước đó, hệ thống sẽ chuyển ảnh vừa chụp sang khung màu xám. Đồng thời chuẩn hóa kích thước ảnh, tạo cơ sở cho các bước xử lý sau. Đó là những bước tiền xử lý ảnh cơ bản, sau đó ảnh sẽ được huấn luyện và so sánh để dị tìm trong thư viện ảnh nào có tỉ lệ giống cao nhất để đối chiếu. Hệ thống sẽ gửi tin nhắn đến người dùng đối tượng được phát hiện là lạ hay quen.
Lưu đồ chương trình nhận dạng khn mặt được trình bày như hình 4.9. Chương trình dùng nhiều chương trình con, hệ thống khi nhấn nút hoạt động sẽ phải gọi lần lượt các chương trình đó ra để chạy. Các chương trình được viết bằng các ngơn ngữ khác nhau như ngôn ngữ Matlab để khởi tạo Camera hoạt động, xử lý ảnh thu được và nhận dạng. Ngôn ngữ C được viết để hệ thống gửi tin nhắn làm việc khi có tín hiệu từ Raspberry.
Ban đầu, khi người dùng cho hệ thống hoạt động, Camera sẽ bắt đầu ghi hình. Nếu phát hiện người hoặc khn mặt sẽ nhận dạng, sau đó gửi tin nhắn cảnh báo đến người dùng.
4.4.4. Chương trình hệ thống báo động
Hệ thống báo tin nhắn nhận tín hiệu từ Raspberry báo đã phát hiện được người, hay phát hiện khuôn mặt. Tùy vào phát hiện người hay phát hiện khuôn mặt mà Raspberry gửi tín hiệu điều khiển khác nhau đến vi xử lý. Chẳng hạn như khi phát hiện dáng người, chân GPIO 24 sẽ lên mức logic 1 hoặc GPIO 25 sẽ lên mức logic 1 nếu phát hiện khuôn mặt là quen thuộc. Công việc tiếp theo là của vi xử lý đảm nhiệm, nó sẽ nhận tín hiệu tương ứng và xử lý gửi tin nhắn cảnh báo với người dùng thông qua Sim900. Lưu đồ hệ thống gửi tin nhắn được trình bày như hình 4.10.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 40
Hình 4.10. Lưu đồ chương trình hệ thống báo động
Trước tiên, hệ thống khai báo các thư viện cần thiết cho chương trình, khai báo các biến giá trị. Kế tiếp, khởi tạo nhận, gửi và ngắt UART cho quá trình nhận chuỗi tin nhắn từ người dùng, gửi tin nhắn văn bản cảnh báo đến người dùng và điều khiển thiết bị. Khai báo các chương trình con như chương trình gửi tin nhắn, chương trình kiểm tra sự hoạt động của Sim900, chương trình kiểm tra có tín hiệu điều khiển. Cuối cùng là mạch sẽ hoạt động theo chương trình chính. Chương trình chính bao gồm các cơng đoạn cấu hình cổng, so sánh các giá trị (với giá trị tương ứng như việc phát hiện dáng người hoặc nhận diện khuôn mặt), báo động qua các thiết bị như đèn, còi, tin nhắn và gọi điện thoại đến cho người dùng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 41 - Lưu đồ chương trình chính Hình 4.11. Lưu đồ chương trình chính Đúng Sai Đúng Sai Đúng Sai Cấu hình cổng A0 = 1 A1 = 1 Gửi tin nhắn 1 Trì hỗn 15s Gửi tin nhắn 2
Gọi đến thuê bao
Trì hỗn 3s
Thiết bị 1 bật Thiết bị 2 bật
Điều khiển thiết bị từ người dùng Ngat = 0 Hiển thị LCD Hiển thị LCD Gửi tin nhắn phản hồi Hiển thị LCD Bắt đầu Kết thúc
BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP 42 Bắt đầu chương trình chính, ta sẽ cấu hình cổng bao gồm kiểm tra việc Sim900 đã được kích hoạt chưa và gửi tin nhắn kiểm tra và chờ tín hiệu điều khiển. Nếu có tín hiệu điều khiển từ Raspberry kích vào chân A0 - tương ứng phát hiện khn mặt, thiết bị 1 sẽ được bật, LCD hiển thị tin nhắn được gửi và thiết bị nào sẽ được bật lên. Hệ thống sẽ trì hỗn khoảng 15s và tiến hành gọi đến số thuê bao đã được đặt trước (quá trình gọi kéo dài khoảng 3s) để người dùng biết đã phát hiện đối tượng. Ngược lại, nếu chân A1 được kích thì tương ứng phát hiện dáng người, thiết bị 2 được bật, đồng thời cũng gọi cho người dùng biết có người xuất hiện. sau đó hệ thống sẽ vào trạng thái chờ lệnh điều khiển từ người dùng. Nếu phát hiện có lệnh điều khiển, hệ thống sẽ xét xem là người dùng lệnh điều khiển nào để xử lý lệnh tương ứng, hiển thị LCD và gửi tin nhắn phản hồi lại người dùng. Hình 4.11 biểu diễn lưu đồ của chương trình gửi tin nhắn cảnh báo.
4.5. HƯỚNG DẪN SỬ DỤNG, THAO TÁC
4.5.1. Hướng dẫn sử dụng
a. Cấp nguồn cho hệ thống làm việc
Hệ thống có các nguồn: nguồn Kit Raspberry, nguồn cho mạch điều khiển gửi tin nhắn. Nguồn Kit Raspberry : sử dụng nguồn có điện áp 5V-1A để tránh bị hư
hỏng và hoạt động ổn định. Nguồn cho mạch điều khiển: cấp điện áp vào cho mạch
nguồn, mạch này được thiết kế để tạo ra 2 nguồn riêng để cấp cho vi xử lý và Sim900.
b. Kết nối phần cứng
Ta tiến hành kết nối các mạch, các thiết bị liên quan với nhau. Hình 4.12 a) kết nối nguồn cho mạch báo động, nguồn cho kit Raspberry và cáp truyền tín hiệu giữa máy tính và Raspberry. Hình 4.12 kết nối Camera pi vào Raspberry, lắp đặt mạch điều khiển vào hộp.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 43
Hình 4.12. Kết nối các thiết bị và mạch báo động c. Khởi động chương trình xử lý c. Khởi động chương trình xử lý
Raspberry Pi 2 sử dụng ngôn ngữ Matlab để điều khiển hoạt động, giao diện điều khiển được thiết kế bằng phần mềm Matlab chạy trên máy tính. Ta cần tìm thư mục
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 44 chứa chương trình GUI và mở chương trình đó lên bằng cách nhấn “RUN” hoặc nhấn “F5” trên bàn phím máy tính.
d. Dùng các phím bấm trên giao diện điều khiển
Các phím bấm trên giao diện điều khiển đều có những chức năng riêng. Dựa vào bảng tra cứu 4.2, ta có thể biết được chức năng từng phím và điều khiển hệ thống được chính xác hơn.
Bảng 4.2. Bảng phím bấm trên giao diện điều khiển
STT Tên nút bấm Chức năng
1 Video Khởi động Camera pi bắt đầu chương trình chính. 2 Stop video Tắt hệ thống chương trình
3 Image Chọn ảnh mẫu để nhận dạng
4 Run Đưa kết quả nhận dạng khi chọn ảnh mẫu 5 Restart Khởi động lại tồn bộ chương trình. 6 About Hiện thông tin tác giả và chương trình.
e. Bắt đầu chương trình hoạt động
Sau khi cấp nguồn theo yêu cầu như phần trên, hệ thống sẽ bắt đầu làm việc nếu ta thực hiện các bước sau đây:
- Nhận dạng bằng khởi động Camera:
Bước 1: kiểm tra xem Kit Raspberry và máy tính đã kết nối với nhau chưa bằng
cách mở phần mềm PUTTY, sau đó dựa vào địa chỉ IP của máy, tên đăng nhập và password để mở hệ điều hành. Hoặc có thể kiểm tra trực tiếp trên Matlab với câu lệnh: “>> myotherpi = raspi('169.254.0.4','pi','raspberry')”, với 169.254.0.4 là IP của Raspberry, pi là tên đăng nhập và raspberry là password đăng nhập.
Bước 2: cần đăng nhập trên phần mềm Matlab và kiểm tra kết nối với Camera pi
trước khi thực hiện bước tiếp theo.
Bước 3: trên giao diện Matlab, bấm nút “Video”, hệ thống sẽ tự khởi động Camera
pi trên kit Raspberry và tiến hành quay video quan sát. Ta thử đưa Camera qua sát dáng người và khn mặt bất kì để kiểm tra sự hoạt động của hệ thống.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 45
Bước 4: Bấm chọn vào nút “Stop video” hoặc phím tắt là “q” trên bàn phím để
thốt tồn bộ chương trình.
Bước 5: nếu muốn thu ảnh lại từ đầu, ta nhấn “Restart”. Hoặc để biết thêm thông
tin về hệ thống, ta nhấn “About”.
- Nhận dạng bằng chọn ảnh từ máy tính:
Trong phần này, ta sẽ chọn ảnh có sẳn trong máy tính để tiến hành tìm và nhận dạng khuôn mặt người. Tiến hành theo các bước sau để chạy chương trình:
Bước 1: Từ giao diện điều khiển của hệ thống, ta nhấn “Image” một cửa sổ mới
sẽ mở lên, tìm và chọn một ảnh để nhận dạng. Hình 4.13 là cửa sổ mới được mở khi ta nhấn chọn ảnh từ máy tính.
Hình 4.13. Cửa sổ mới để lấy ảnh từ máy tính
Khi người dùng nhấp đúp chuột để chọn một ảnh để so sánh, ảnh vừa được chọn sẽ hiện trên màn hình làm việc như hình 4.14.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 46
Hình 4.14. Ảnh đang chờ để nhận dạng
Bước 2: Sau khi chọn ảnh từ máy xong, hình vừa chọn cũng sẽ được hiện lên trên
màn hình làm việc. Kế tiếp ta nhấn “Run” để chương trình nhận dạng bắt đầu và sau đó sẽ đưa ra kết quả. Hình 4.15 là kết quả của quá trình nhận dạng khn mặt.
Hình 4.15. Kết quả q trình nhận dạng
Nếu ảnh được chọn có những đặc điểm mà hệ thống có thể tìm và nhận dạng được, nó sẽ hiển thị kết quả như trên. Nếu không nhận dạng được, hệ thống sẽ hiển thị ảnh để biết là không nhận dạng được trên màn hình.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 47
Bước 3: nếu người dùng muốn chọn một ảnh khác để nhận dạng, trở lại bước 1
trong phần hướng dẫn này để chọn một ảnh khác.
f. Một số lỗi có thể gặp
Trong q trình vận hành hệ thống, đơi lúc có thể mắc phải một số lỗi kỹ thuật. bảng tra cứu lỗi cung cấp cho người dùng
Bảng 4.3. Bảng tra cứu lỗi kỹ thuật
STT Mô tả lỗi Nguyên nhân Khắc phục
1 Đèn báo nguồn Raspberry không ổn định. - Nguồn cung cấp bị mất áp, áp nguồn dưới 5V. - Nguồn không ổn định. - Dùng nguồn đúng điện áp, dịng thích hợp. 2 Camera khơng sáng đèn.
- Mất kết nối giữa máy tính và kit Raspberry.
- Camera và kit không kết nối được, đứt cáp kết nối
- Enable lại Camera.
- Kiểm tra lại cáp kết nối (thay cáp mới) 3 Không đăng nhập vào hệ điều hành kit. - Lỏng cáp nối hoặc cáp bị đứt. - Thẻ nhớ lỏng, hư thẻ nhớ - IP máy tính thay đổi
- Cố định đầu cắm cáp.
- Thay cáp, thẻ nhớ mới.
- Đổi lại IP cho đúng.
4 Hệ thống gửi tin nhắn không làm việc.
- Mất nguồn, hoặc kết nối các dây có thể khơng tiếp xúc với nhau, đứt dây dẫn.
- Vi xử lý bị hỏng.
- Kiểm tra kết nối dây dẫn.
- Thay vi xử lý và nạp lại chương trình.
BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP 48
4.5.2. Quy trình vận hành hệ thống
Hình 4.16. Sơ đồ hướng dẫn quy trình vận hành hệ thống
Quy trình vận hành hệ thống được trình bày theo sơ đồ khối như hình 4.16. Kết nối phần cứng và cấp nguồn cho hệ thống: đã được trình bày trong phần hướng dẫn sử dụng. Một điều chắc chắc rằng, các thiết bị đã được kết nối với nhau và được cấp nguồn theo yêu cầu.
Dùng Matlab kết nối Raspberry, mở giao diện điều khiển và chạy chương trình: như đã trình bày trong phần trên, ta bắt buột phải làm những bước này mới có thể chạy được chương trình. Nếu như có lỗi xảy ra, có thể xem thêm ở phần bảng tra cứu lỗi để khắc phục.
Kết quả: kết quả của chương trình sẽ được hiển thị trên màn hình giao diện của hệ thống, đồng thời tin nhắn cảnh báo cũng sẽ xuất hiện trên máy điện thoại.
Kết thúc chương trình Kết nối cấu hình phần cứng
Cung cấp nguồn cho hệ thống
Dùng matlab kết nối Kit
Mở giao diện điều khiển
Chạy chương trình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 49 Kết thúc chương trình: khi khơng dùng hệ thống hoặc muốn tắt hệ thống, ta có thể nhấn nút “Stop video” trên giao diện máy tính. Sau đó dùng lệnh “sudo init 0” để tắt kit Raspberry và cuối cùng ngắt nguồn điện cho hệ thống để tránh hư hỏng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 50
Chương 5. KẾT QUẢ- NHẬN XÉT - ĐÁNH GIÁ
5.1. KẾT QUẢ
Bài tốn nhận dạng dáng người có khá nhiều thách thức cần giải quyết để đảm bảo nhận đúng người. Một số thác thức gặp phải khi nhận dạng như sau:
- Sự đa dạng về hình dáng của các đối tượng ở mức khác nhau.
- Sự đa dạng về cách thể hiện (phong cách ăn mặc, màu sắc, quần áo). - Sự thay đổi mạnh mẽ về độ sáng.
- Sự che khuất đối tượng cần nhận diện.
- Sự khác nhau về màu nền khi hệ thống nhận dạng.
Đối với q trình nhận dạng khn mặt, khó khăn trong việc chụp lại khn mặt một cách rõ nhất trong tư thế nhìn thẳng, nhìn trái, nhìn phải và tùy thuộc vào khoảng