Đề tài THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG NHẬN DIỆN CỬ CHỈ là do nhóm thực hiện cùng trao đổi với giáo viên hướng dẫn cùng lựa chọn trong quá trình định hướng đề tài.. TÓM T
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SVTH:
S K L 0 0 9 8 3 5
GVHD: PGS.TS PHAN VĂN CA
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN
BẰNG NHẬN DIỆN CỬ CHỈ
NGUYỄN THẮNG PHONG NGUYỄN HẢI HƯNG
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG NHẬN DIỆN CỬ CHỈ
MSSV: 18119106 NGUYỄN HẢI HƯNG MSSV: 18119083
TP HỒ CHÍ MINH – 08/2022
Trang 3TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG NHẬN DIỆN CỬ CHỈ
MSSV: 18119106 NGUYỄN HẢI HƯNG MSSV: 18119083
GVHD: PGS.TS PHAN VĂN CA
Trang 4
TP Hồ Chí Minh, ngày 25 tháng 7 năm 2022
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên Sinh viên: Nguyễn Thắng Phong MSSV: 18119106
Nguyễn Hải Hưng MSSV: 18119083
Ngành: Công nghệ kỹ thuật máy tính Lớp: 18119CL1B
Giảng viên hướng dẫn: PGS.TS Phan Văn Ca
Ngày nhận đề tài: 29/02/2022 Ngày nộp đề tài: 31/07/2022 1 Tên đề tài: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG NHẬN DIỆN CỬ CHỈ 2 Các số liệu, tài liệu ban đầu: ………
………
………
3 Sản phẩm: ………
………
………
………
TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ***
Trang 6TP Hồ Chí Minh, ngày 25 tháng 7 năm 2022
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên: Nguyễn Thắng Phong MSSV: 18119106
Nguyễn Hải Hưng MSSV: 18119083
Ngành: Công nghệ kỹ thuật máy tính
Tên đề tài: Thiết kế hệ thống điều khiển thiết bị điện bằng nhận diện cử chỉ
Họ và tên Giáo viên phản biện:
GIẢNG VIÊN PHẢN BIỆN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc ***
Trang 7LỜI CẢM ƠN
Để hoàn thành khóa luận tốt nghiệp này, không chỉ là sự nỗ lực của riêng bản thân tôi, mà còn nhờ vào sự giúp đỡ của nhiều người, qua đây cho tôi xin gửi lời cảm ơn chân thành nhất đến những người đã giúp đỡ tôi
Trước hết “Cho con gửi lời cảm ơn sâu sắc tới Cha – Mẹ đã nuôi dưỡng và tạo điều kiện học tập tốt nhất cho con được như ngày hôm nay”
Tôi xin gửi tới các thầy cô trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh nói chung và các thầy cô khoa Đào tạo chất lượng cao nói riêng lời cảm
ơn chân thành nhất đã tận tụy truyền đạt cho tôi những kiến thức quý báu trong suốt những năm tháng tôi học tại trường Kiến thức, kỹ năng mà tôi tiếp thu được trong qua trình học tập đã giúp cho tôi có được cơ sở lý thuyết vững vàng và là hành trang cho tôi bước vào đời một cách vững chắc và tự tin nhất
Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc đến thầy Phan Văn Ca, người đã hướng dẫn và giúp đỡ cho tôi trong suốt quá trình thực hiện đề tài Thầy đã tận tình chỉ dẫn và truyền đạt cho tôi những kiến thức quý báu để tôi hoàn thành đề tài tốt nghiệp
Xin cám ơn những người bạn, những người đồng hành cùng tôi trong suốt quãng đường Đại học, luôn bên tôi và giúp đỡ tôi những lúc khó khăn nhất
Cuối cùng, tôi xin chúc quý thầy cô trường Đại Học Sư phạm Kỹ thuật TP.HCM nói chung và quý thầy cô Khoa Đào tạo chất lượng cao nói riêng dồi dào sức khỏe và thành công trong sự nghiệp cao quý, cùng toàn thể các bạn bè, các khách hàng, đồng nghiệp nhiều sức khoẻ, may mắn, thành công và hạnh phúc Tôi xin chân thành cảm ơn!
Trang 8
LỜI CAM ĐOAN
Nhóm thực cam đoan hiện đồ án tốt nghiệp được chính nhóm thực hiện thiết
kế và thi công, không sao chép nội dung hay kết quả của các đồ án tốt nghiệp hay công trình nghiên cứu khác Đề tài THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT
BỊ ĐIỆN BẰNG NHẬN DIỆN CỬ CHỈ là do nhóm thực hiện cùng trao đổi với giáo viên hướng dẫn cùng lựa chọn trong quá trình định hướng đề tài Các nội dung tham khảo đã được trích dẫn đầy đủ
Đại diện nhóm thực hiện đồ án tốt nghiệp
(ký và ghi rõ họ tên)
Nguyễn Thắng Phong Nguyễn Hải Hưng
Trang 9TÓM TẮT
Đề tài thiết kế một hệ thống điều khiển thiết bị điện trong hộ gia đình sử dụng nhận diện cử chỉ Các thiết bị sẽ được điều khiển bằng cử chỉ, các cử chỉ này được nhận diện từ mô hình nhận diện cử chỉ mà nhóm tham khảo, nghiên cứu và thiết
kế Sẽ có rất nhiều cử chỉ cho phép người dùng tùy chọn để thực hiện điều khiển thiết bị Ngoài ra hệ thống còn có thể được điều khiển trực tiếp bằng nút nhấn phần cứng vật lý
Phần mềm của hệ thống gồm có mô hình nhận diện cử chỉ và giao diện điều khiển thiết bị
Hệ thống sẽ có 2 khối điều khiển chính là một máy chủ điều khiển dùng để nhận diện cử chỉ và tương tác trực tiếp với người dùng (tùy chọn cử chỉ, điều khiển trên giao diện), một khối còn lại là máy khách, máy khách này nhận tín hiệu điều khiển từ máy chủ thông qua Wifi để điều khiển thiết bị
Kết quả của đồ án tốt nghiệp này là triển khai hệ thống lên phần cứng có huấn luyện ra mô hình và sử dụng mô hình đó điều khiển được thiết bị điện mô phỏng
Trang 10ABSTRACT
The abstract must fully introduce the objectives, research and
implementation content, and the results of the graduation project Abstracts are presented in writing without the use of illustrative images or charts
The thesis designs a control system for household electrical appliances using gesture recognition The devices will be controlled by gestures, which are
recognized by the gesture recognition model that the team referenced, researched, and designed There will be a lot of gestures that give users the option to perform device control In addition, the system can be controlled directly with the push of
a physical hardware button
The system's software includes a gesture recognition model and a device control interface
The system will have 2 main control blocks: a control máy chủ used to
recognize gestures and interact directly with users (gesture options, control on the interface); the other block is a máy khách, a computer This máy khách receives the control signal from the máy chủ via Wifi to control the device
The result of this graduate project is to deploy the system to the trained hardware to create a model and use that model to control the simulated electrical equipment
Trang 11MỤC LỤC
LỜI CẢM ƠN IV LỜI CAM ĐOAN V TÓM TẮT VI ABSTRACT VII MỤC LỤC VIII DANH MỤC HÌNH X DANH MỤC BẢNG XII CÁC TỪ VIẾT TẮT XIII
CHƯƠNG 1 GIỚI THIỆU 1
1.1 GIỚI THIỆU 1
1.2 MỤC TIÊU ĐỀ TÀI 2
1.3 GIỚI HẠN ĐỀ TÀI 2
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 2
1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3
1.6 BỐ CỤC QUYỂN BÁO CÁO 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5
2.1 GIỚI THIỆU MÔ HÌNH NHẬN DIỆN CỬ CHỈ 5
2.1.1 Thư viện mê-đi-a-pai (MediaPipe) 5
2.1.2 Thư viện Kê-rát (Keras) 7
2.1.3 Huấn luyện mô hình nhận diện cử chỉ cho hệ thống 7
2.1.3.1 Tải tập dữ liệu 8
2.1.3.2 Xây dựng mô hình 9
2.1.3.3 Biên dịch mô hình 9
Trang 122.2 THƯ VIỆN THIẾT KẾ GIAO DIỆN: QT 11
2.3 MÔ HÌNH MẠNG TCP/IP 11
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 13
3.1 GIỚI THIỆU 13
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG PHẦN CỨNG 13
3.2.1 Chức năng của phần cứng 13
3.2.2 Thiết kế sơ đồ khối hệ thống 14
3.2.2.1 Thiết kế khối xử lý (máy chủ) 15
3.2.2.2 Thiết kế chi tiết khối xử lý (máy khách) 20
3.3 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG PHẦN MỀM 24
3.3.1 Thiết kế nhận diện cử chỉ cho hệ thống 25
3.3.2 Thiết kế giao diện điều khiển cho hệ thống 32
3.3.2.1 Bố trí giao diện 32
3.3.2.2 Thiết kế giao diện 34
3.3.3 Thiết kế máy khách cho hệ thống 38
CHƯƠNG 4 KẾT QUẢ 41
4.1 KẾT QUẢ THỰC HIỆN MÔ HÌNH 41
4.2 ĐÁNH GIÁ MÔ HÌNH 47
4.2.1 Đánh giá phần cứng 47
4.2.2 Đánh giá phần mềm 48
4.2.3 Đánh giá hoạt động tổng quan 48
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49
5.1 KẾT LUẬN 49
5.2 HƯỚNG PHÁT TRIỂN 49
TÀI LIỆU THAM KHẢO 50
PHỤ LỤC 51
Trang 13DANH MỤC HÌNH
Hình 2-1 21 điểm mốc bàn tay từ mê-đi-a-pai [1] 6
Hình 2-2 Điểm mốc bàn tay được sử dụng trong thiết kế 6
Hình 2-3 Thư viện Kê-rát [2] 7
Hình 2-4 Quy trình huấn luyện mô hình của thư viện Kê-rát [2] 8
Hình 2-5 Hàm trung bình mũ (Softmax) [3] 9
Hình 2-6 Thư viện Qt [4] 11
Hình 3-1 Sơ đồ chi tiết các khối phần cứng của toàn hệ thống 14
Hình 3-2 Sơ đồ nguyên lý phần cứng toàn hệ thống 14
Hình 3-3 Sơ đồ khối của khối xử lý (máy chủ) và các khối liên quan 16
Hình 3-4 Webcam Logitech C270 HD [5] 17
Hình 3-5 màn hình 7-inch HDMI [5] 17
Hình 3-6 Raspberry Pi 4 Model B [5] 18
Hình 3-7 Sơ đồ nguyên lý các kết nối của khối máy chủ 19
Hình 3-8 Hình Sơ đồ chân ESP32 DEVKIT V1 – DOIT [6] 20
Hình 3-9 Sơ đồ khối của khối xử lý (máy khách) và các khối liên quan 21
Hình 3-10 Sơ đồ nguyên lý các kết nối của khối máy khách 22
Hình 3-11 Mô-đun rờ-le điều khiển có 4 kênh [7] 23
Hình 3-12 Mô-đun rơ-le điều khiển có 1 kênh [7] 23
Hình 3-13 Sơ đồ quy trình hoạt động và điều khiển chung của toàn hệ thống 24
Hình 3-14 Lưu đồ chương trình nhận diện cử chỉ 26
Hình 3-15 Các bước chuẩn hóa dữ liệu 27
Hình 3-16 Quy trình huấn luyện mô hình của thư viện Kê-rát [2] 28
Hình 3-17 Ma trận lỗi (confusion matrix) [3] 30
Hình 3-18 Báo cáo phân loại [3] 31
Hình 3-19 Bộ 8 cử chỉ dùng để điều khiển thiết bị (mã từ 1 đến 8) 31
Hình 3-20 Bộ 8 cử chỉ dùng để điều khiển thiết bị (mã từ 9 đến 16) 32
Hình 3-21 Phần mềm thiết kế tạo bố cục giao diện 33
Trang 14Hình 3-24 Lưu đồ tạo mô hình kết nối máy chủ với máy khách 36
Hình 3-25 Lưu đồ hàm hiển thị 37
Hình 3-26 Hàm điều khiển thiết bị 38
Hình 3-27 Lưu đồ hàm máy khách 39
Hình 4-1 Mô hình nhận diện cử chỉ chạy trên phần cứng laptop 41
Hình 4-2 Mô hình nhận diện cử chỉ chạy trên phần cứng Raspberry Pi 4 42
Hình 4-3 Phần cứng khối điều khiển máy khách mặt trên 43
Hình 4-4 Khối điều khiển máy khách khi được lắp vào hộp Mica 43
Hình 4-5 Khối điều khiển máy chủ khi được lắp vào hộp Mica 44
Hình 4-6 Hệ thống hoàn thiệt khối điều khiển máy chủ và máy khách 44
Hình 4-7 Hệ thống điêu khiển bật thiết bị 2 và 4, tắt thiết bị 1 và 3 45
Hình 4-8 Hệ thống điều khiển tắt 4 thiết bị 45
Hình 4-9 Hệ thông điều khiển bật 4 thiết bị 46
Trang 15DANH MỤC BẢNG
Bảng 2-1 Bảng các công thức đánh giá một mô hình [3] 10Bảng 3-1 Dòng điện tiêu thụ của các linh kiện trên khối điều khiển máy khách 23Bảng 4-1 Tỉ lệ nhận diện theo điều kiện ánh sáng và khoảng cách 46Bảng 4-2 Tỉ lệ nhận diện cho từng cử chỉ điều khiển trong điều kiện lý tưởng 47
Trang 16CÁC TỪ VIẾT TẮT
Trang 17CHƯƠNG 1 GIỚI THIỆU
1.1 GIỚI THIỆU
Sự công nghiệp, hiện đại hóa giúp thế giới phát triển và đạt được nhiều thành tựu to lớn, sự phát triển ấy chủ yếu là để phục vụ con người Các hoạt động của con người đang dần được thay thế bởi máy móc để mang lại lợi ích cho người sử dụng Thiết bị điện là điều không thể thiếu đối với tất cả mọi người trên thế giới, trong mỗi gia đình có thể kể đến như đèn, quạt, tủ lạnh, tivi, máy lanh, … có thể nói mọi thứ của con người đều liên quan đến điện Công nghệ thông tin là một trong những lĩnh vực giúp kết nối con người với các thiết bị điện, thứ mà xuất hiện khắp mọi ngóc ngách trong một gia đình thời điểm hiện tại
Để mang đến sự lợi ích cho con người nhóm thực hiện đề tài: Thiết kế hệ thống điều khiển thiết bị điện bằng nhận diện cử chỉ Khác với các đề tài khác điều khiển chủ yếu thông qua thiết bị điện thoại kết nối với internet để điều khiển từ
xa, đề tài của nhóm thực hiện điều khiển thiết bị trong nhà không thông qua các phím bấm trên màn hình điện thoại từ xa mà thực hiện điều khiển bằng cử chỉ bàn tay thông qua thiết bị thu hình ảnh được lắp sẵn trong nhà
Đề tài tạo ra một hệ thống cho phép người dùng điều khiển các thiết bị điện trong nhà bằng cách đưa tay trước thiết bị ghi hình thực hiện việc bật/tắt thiết bị Ngoài ra còn một số thao tác khác như có thể dùng giao diện để điều khiển trực tiếp thay vì nhận diện cử chỉ, và điều cuối cùng là có thể trực tiếp thay đổi bằng nút nhấn tương tác trực tiếp với người dùng
Trang 18Dự kiến khi hoàn thành đề tài nhóm sẽ có một giao diện giao tiếp người dùng
để điều khiển thiết bị và một hệ thống điều khiển thiết bị điện
1.2 MỤC TIÊU ĐỀ TÀI
- Thiết kế, hoàn thiện một hệ thống có thể thực hiện điều khiển thiết bị điện bằng cử chỉ, ngoài ra có thể điều khiển bằng phím phần cứng hoặc điều khiển trực tiếp trên giao diện điều khiển thiết bị Sẽ có một bộ cử chỉ cho phép người dùng tùy chỉnh thiết lập để điều khiển độc lập riêng cho từng thiết bị Các tùy chỉnh và điều khiển thiết bị sẽ được hiển thị trên một màn hình hiển thị của Raspberry Pi 4
- Nghiên cứu mô hình nhận diện cử chỉ
- Nghiên cứu viết giao diện điều khiển thiết bị tương tác với người dùng
1.3 GIỚI HẠN ĐỀ TÀI
Đề tài “THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN BẰNG
NHẬN DIỆN CỬ CHỈ” có giới hạn:
- Thiết kế hệ thống thiết bị điều khiển mô phỏng
- Điều khiển bật/tắt các thiết bị điện
- Sử dụng Raspberry Pi 4 và ESP32 làm 2 khối chính trong quá trình điều khiển
- Thiết kế chương trình sử dụng ESP32 và Raspberry Pi 4 trong việc gửi và nhận dữ liệu
- Vì thiết kế chỉ thực hiện trong môi trường có mạng nên khi lỗi mạng xảy
ra thì toàn hệ thống thiết kế sẽ không thực thi được
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
Đề tài có các nội dung chính như sau:
- Tìm hiểu mô hình mạng nhận diện cử chỉ tay
- Nghiên cứu thư viện Qt5 và thiết kế giao diện điều khiển
- Thiết kế, thi công các thiết bị mô phỏng và hệ thống điều khiển
Trang 19- Viết chương trình cho Raspberry Pi 4, ESP32 giao tiếp với nhau
- Lắp ráp hệ thống kiểm tra chức năng điều khiển và thử nghiệm
- Đánh giá kết quả thực hiện
- Viết báo cáo luận văn
- Báo cáo đề tài tốt nghiệp
1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
- Nội dung 1: tìm hiểu, tham khảo mô hình học sâu (Model Deep Learning) nhận diện cử chỉ của con người Phạm vi nghiên cứu: tìm hiểu một số lý thuyết cơ bản và tham khảo mô hình có sẵn
- Nội dung 2: tìm hiểu Qt5 Python để viết giao diện tương tác với người dùng Phạm vi nghiên cứu thiết kế giao diện với các chức năng cơ bản của
1.6 BỐ CỤC QUYỂN BÁO CÁO
Chương 1 GIỚI THIỆU: các vấn đề về đề tài sẽ được khái quát ở chương này
- Các mục tiêu mà nhóm thực hiện sẽ nghiên cứu để hoàn thành hệ thống
- Những giới hạn trong quá trình thực hiện đề tài
- Các phương pháp được nhóm thực hiện sử dụng để nghiên cứu đề tài
- Phạm vi và đối tượng mà nhóm thực sẽ tiến hành nghiên cứu trong quá trình thực hiện đề tài
Chương 2 CƠ SỞ LÝ THUYẾT: trình bày về tình hình nghiên cứu, hướng nghiên cứu, các dịch vụ đang được sử dụng
Trang 20Chương 3 THIẾT KẾ HỆ THỐNG: thực hiện thiết kế sơ đồ khối cho toàn hệ thống, nói chi tiết về thiết kế các khối phần cứng và quá trình thực hiện phần mềm Các hoạt động điều khiển từ phần mềm tới phần cứng
Chương 4 KẾT QUẢ: triển khai mô hình hoàn chỉnh về phần cứng, tiến hành hoạt động khởi chạy cho toàn hệ thống (các hoạt động điều khiều từ phần mềm tới các thiết bị phần cứng)
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: đánh giá quá trình hoạt động của mô hình sau khi hoàn thiện có đúng với mục tiêu của đề tài đặt ra hay không, các mục ưu điểm nổi bật của hệ thống cũng như một số khuyết điểm, từ đó nêu ra hướng phát triển cho hệ thống
Trang 21CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU MÔ HÌNH NHẬN DIỆN CỬ CHỈ
Đề tài nhóm thực hiện tham khảo và sử dụng mô hình nhận diện cử chỉ tay để thực hiện việc nhận diện cử chỉ tay dùng để bật tắt các thiết bị điện Mô hình sử dụng thư viện Mê-đi-a-pai (MediaPipe) và thư viện Kê-rát (keras)
2.1.1 Thư viện mê-đi-a-pai (MediaPipe)
Một thư viện do Google thực hiện nghiên cứu và phát triển MediaPipe là tập hợp của một loạt các giải pháp máy học (Machine Learning) đa nền tảng có một
số ưu điểm: có thể triển khai trên di động, máy tính, đám mây, Web, thiết bị IoT,
… mã nguồn mở và hoàn toàn miễn phí (người dùng có thể sử dụng và tùy chỉnh trực tiếp theo bài toán của mình)
Google Mê-đi-a-pai hỗ trợ hầu như tất cả các lĩnh vực về Thị giác máy tính (Computer Vision) Một số giải pháp như: Nhận diện khuôn mặt (Face Dectection), Lưới mặt (Face Mesh), Nhận diện bàn tay (Hands Detection), Ước tính tư thế người (Human Pose Estimation), Phát hiện đối tượng (Object Detection), … và nhiều hơn thế nữa Đề tài nhóm thực hiện sử dụng giải pháp Nhận diện bàn tay (Hands Detection) [1]
Nhận diện các điểm mốc tọa độ trên bàn tay: giải pháp này sẽ hỗ trợ mô hình nhận diện được lòng bàn tay đang xuất hiện trên khung hình đang thu thập hình ảnh, từ lòng bàn tay này giải pháp sẽ vẽ ra 21 điểm mốc trên lòng bàn tay có tọa
độ tương ứng so với khung hình đang thu thập hình ảnh
Trang 22Hình 2-1 cho biết 21 điểm mốc bàn tay của con người được thư viện mê-đi- a-pai nhận diện Với mỗi điểm mốc sẽ có thư viện đọc về giá trị tọa độ x, y, z (x,
y, z lần lượt là chiều dài, chiều rộng và chiều sâu) của điểm mốc ấy trên khung hình mà máy ảnh chụp hoặc quay được Với mỗi cử chỉ sẽ trả về một bộ tọa độ khác nhau nên rất thích hợp cho việc huấn luyện cho mạng học sâu
Hình 2-2 Điểm mốc bàn tay được sử dụng trong thiết kế.
Hình 2-2 hình tay của thành viên trong nhóm khi sử dụng thư viện Mê-đi- a-pai trong quá trình tìm hiểu và tham khảo mô hình nhận diện cử chỉ tay
Hình 2-1 21 điểm mốc bàn tay từ mê-đi-a-pai [1]
Trang 232.1.2 Thư viện Kê-rát (Keras)
Kê-rát là một thư viện hỗ trợ cho việc huấn luyện mô hình học sâu (Deep Learning) [2] Keras được biết đến là một thư viện hỗ trợ xây dựng mô hình đơn giản, dễ nắm bắt nhất so với các thư viện khác, không cần hiểu quá sâu về Mạng Nơ-ron ta cũng có thể thực hiện xây dựng một mô hình tương đối hoàn chỉnh Lý
do nhóm tham khảo và chọn mô hình này để thực hiện việc nhận diện cử chỉ này cũng một phần do mô hình này sử dụng thư viện Kê-rát dễ tiếp cận cho nhóm vì thành viên của nhóm không chuyên về lĩnh vực Trí tuệ nhân tạo (AI)
Hình 2-3 Thư viện Kê-rát [2]
2.1.3 Huấn luyện mô hình nhận diện cử chỉ cho hệ thống
Nhóm thực hiện sử dụng 2 thư viện chính để hỗ trợ cho việc huấn luyện mô hình: Mê-đi-a-pai hỗ trợ việc tìm kiếm các bàn tay trên khung hình và trả về các
dữ liệu mốc bàn tay, từ dữ liệu mốc bàn tay đó nhóm lưu lại thành một tập dữ liệu lớn gồm các cử chỉ mà nhóm muốn mô hình nhận diện được từ đó sử dụng thư viện Kê-rát, sử dụng tập dữ liệu đó thực hiện việc huấn luyện tạo ra một mô hình hoàn chỉnh có thể nhận diện được cử chỉ
Quy trình để huấn luyện một mô hình sử dụng thư viện của Kê-rát, đây là một quy trình chung cho hầu hết các mô hình sử dụng thư viện Kê-rát để huấn luyện Quá trình các bước cụ thể sẽ được trình bày sau đây
Trang 24Hình 2-4 Quy trình huấn luyện mô hình của thư viện Kê-rát [2]
2.1.3.1 Tải tập dữ liệu
Đầu tiên là quá trình tải tập dữ liệu đã được lưu trữ để huấn luyện mô hình Bộ
dữ liệu ở đây là tọa độ các điểm mốc bàn tay, với mỗi cử chỉ ta sẽ có một bộ gồm
21 điểm mốc tọa độ trên lòng bàn tay Mỗi bộ trong 21 điểm mốc bàn tay đó sẽ có
2 tọa độ là tọa độ so với chiều rộng và tọa độ so với chiều cao trên khung hình mà camera thu được dữ liệu hình ảnh bàn tay Ngoài 42 cột biểu thị cho tọa độ của 21 điểm mốc bàn tay thì ta còn có thêm 1 cột biểu thị cho nhãn của mô hình nhận diện
cử chỉ Vậy ta có tổng 43 cột cho mỗi dữ liệu để huấn luyện mô hình Bộ dữ liệu này sẽ được tải lên Pycharm và thực hiện việc chia thành tập huấn luyện và tập kiểm tra theo tỉ lệ 75% huấn luyện và 25% kiểm tra
Trang 252.1.3.2 Xây dựng mô hình
Xây dựng mô hình là vẽ kiến trúc mạng để thực hiện việc huấn luyện mô hình
Mô hình trong đề tài của nhóm được tham khảo kiến trúc mạng mô hình một đề tài hand gesture recognition mediapipe của Nikita Kiselov được chia sẻ trên gitbub
Mô hình này được xây dựng gồm có 4 lớp: lớp đầu tiên có 42 nơ-ron lần lượt
là 2 thông số tọa độ của 21 điểm mốc bàn tay trên khung hình phát hiện bày tay, lớp thứ 2 là lớp ẩn gồm 20 nơ-ron và lớp thứ 3 cũng là một lớp ẩn 10 nơ-ron, cuối cùng là lớp ngõ ra có 16 ngõ ra (vì hệ thống có tổng 16 cử chỉ và cho phép người dùng có thể tùy ý điều chỉnh để điều khiển thiết bị mong muốn)
Ở lớp ngõ ra mô hình sử dụng hàm trung bình mũ (softmax) để tính xác suất của vector, hàm này thường được dùng trong các bài toàn phân loại đa lớp Trong
đề tài này hàm Softmax chia 16 ngõ ra thành xác suất tổng là 1 và giá trị của ngõ
‘accuracy’
2.1.3.4 Huấn luyện mô hình
Quá trình huấn luyện mô hình khi sử dụng thư viện Kê-rát hết sức đơn giản, chỉ cần gọi hàm tạo mô hình huấn luyện (fit) Mô hình có gần 70000 dữ liệu với
Trang 26nhỏ dữ liệu thành nhiều phần nhỏ để cập nhật trọng số Ngoài ra còn có thông số gọi lại (callbacks) để mỗi lần gặp lỗi ta có thể lưu lại mô hình để chạy cho lượt tiếp theo
- Số sai thực tế (condition negative: N)
- Số dự đoán đúng mà nó đúng (True positive: TP)
- Số dự đoán sai mà nó đúng (True negative: TN)
- Số dự đoán đúng mà nó sai (False positive: FP)
- Số dự đoán sai mà nó sai (False negative: FN)
Với các thuật ngữ này ta có:
Bảng 2-1 Bảng các công thức đánh giá một mô hình [3]
Trang 272.2 THƯ VIỆN THIẾT KẾ GIAO DIỆN: QT
Qt là một thư viện đa nền tảng để tạo nên các giao diện đồ họa người dùng, chủ yếu với các cửa sổ Qt được viết bằng C++ và được thiết kế để sử dụng C++ Tuy nhiên hiện nay chúng ta có thể sử dụng thư viện này với nhiều ngôn ngữ khác như Java hay Python, … vì xuyên suốt quá trình thực hiện tham khảo mô hình nhận diện cử chỉ tay là ngôn ngữ Python nên nhóm quyết định sử dụng thư viện
Qt dùng ngôn ngữ Python hay còn được gọi với tên khác là PyQt5 [4] thiết kế giao diện với ngôn ngữ Python đơn giản dễ nắm bắt trong quá trình thực hiện đề tài thiết kế
Hình 2-6 Thư viện Qt [4]
Hình 2-5 logo thư viện Qt mà nhóm dùng để thực hiện thiết kết giao diện
Ngoài ra thư viện Qt còn có hỗ trợ QtNetwork gọi các hàm làm máy chủ, nhóm
sử dụng để làm máy chủ cho hệ thống từ đó liên kết với máy khách
2.3 MÔ HÌNH MẠNG TCP/IP
Thời đại hiện đại hóa ngày nay, bất kỳ nhà nào cũng có mạng internet thế nên việc sử dụng mạng để tương tác giữa các thiết bị điều khiển là điều hết sức phổ biến Trong một ngôi nhà có thể có nhiều tầng do đó nếu dùng kết nối UART có dây thì việc thiết lập cho hệ thống nếu nhiều tầng sẽ rất rườm ra Việc sử dụng mạng để tương tác giữa khối xử lý nhận diện cử chỉ rồi điều khiển thiết bị từ xa
Trang 28bằng mạng thì có thể giải quyết được hạn chế mà kết nối UART là dùng dây kết nối
Tầng ứng dụng (Application): đề cập đến các chương trình cần TCP/IP để giúp các thiết bị giao tiếp với nhau
Tầng giao vận (Transport): chịu trách nhiệm cung cấp kết nối dữ liệu vững chắc và đáng tin cậy giữa ứng dụng hoặc thiết bị gốc
Tầng mạng (Network): chịu trách nhiệm gửi các gói mạng và kiểm soát chuyển động của các thiết bị trên trên một mạng để đảm bảo chúng đến đích
Tầng vật lý (Physical): chịu trách nhiệm truyền dữ liệu giữa hai thiết bị trong cùng một mạng
Trang 29CHƯƠNG 3 THIẾT KẾ HỆ THỐNG
vi điều khiển này còn hỗ trợ kết nối Wifi giúp cho việc mở rộng hệ thống được dễ hơn khác với kết nối UART có dây thông thường
Một số chức năng chính:
- Có thể điều khiển thiết bị bằng cử chỉ tay
- Có thể điều khiển các thiết bị của người dùng bằng cách sử dụng giao diện một cách trực tiếp trên màn hình hiển thị giao diện
- Có thể trực tiếp dùng nút nhấn phần cứng để điều khiển các thiết bị
- Có thể vô hiệu hóa chế độ điều khiển thiết bị bằng cử chỉ thông qua nút nhấn phần cứng
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG PHẦN CỨNG
3.2.1 Chức năng của phần cứng
Hệ thống của đề tài là nhận diện cử chỉ để bật tắt thiết bị điện trong nhà nên phần cứng của hệ thống phải đáp ứng chức năng điều khiển được thiết bị điện trong nhà Tiếp theo, phần cứng phải đủ mạnh để vừa thu thập hình ảnh vừa xử lý mô hình nhận diện cử chỉ từ đó thực hiện việc điều khiển thiết bị bằng cử chỉ Ngoài
Trang 30ra phần cứng của hệ thống còn có thể thực hiện việc bật tắt chủ động thông qua nút
nhấn
3.2.2 Thiết kế sơ đồ khối hệ thống
Phần này nhóm thực hiện thiết kế sơ đồ khối phần cứng cho toàn hệ thống và
đi vào chi tiết việc thiết kế từng khối
Hình 3-1 Sơ đồ chi tiết các khối phần cứng của toàn hệ thống
Hình 3-2 Sơ đồ nguyên lý phần cứng toàn hệ thống
Khái quát về nhiệm vụ của 2 khối chính:
Trang 31- Khối xử lý (máy chủ): Khối này có nhiệm vụ thu thập dữ liệu từ khối thu thập hình ảnh, thực hiện ứng dụng mô hình nhận diện cử chỉ để xử lý dữ liệu trên dữ liệu hình ảnh đó, sau đó gửi dữ liệu điều khiển qua khối xử lý (máy khách) thông qua giao thức TCP/IP
- Khối xử lý (máy khách): Khối nhận dữ liệu từ điều khiển khối xử lý (máy chủ) thông qua giao thức TCP/IP, dựa vào dữ liệu nhận được khối phân tích và điều khiển các thiết bị thông qua khối ngõ ra công suất
Các khối còn lại của 2 khối chính sẽ được nói chi tiết ở phần thiết kế từng khối chính
3.2.2.1 Thiết kế khối xử lý (máy chủ)
Khối xử lý (máy chủ) thực hiện 2 nhiệm vụ chính trong hệ thống:
- Nhận dữ liệu hình ảnh từ khối thu thập hình ảnh từ đó nhận diện cử chỉ và thực hiện việc gửi tín hiệu điều khiển tới khối điều khiển thông qua khối liên lạc
- Cung cấp giao diện người dùng để hiển thị lên khối hiển thị từ đó cho phép người dùng có thể kiểm soát được tình trạng của các thiết bị, thực hiện bật tắt thiết bị trực tiếp trên giao diện và có thể tùy chỉnh các cử chỉ để điều khiển các thiết bị, từ đó gửi các dữ liệu điều khiển qua khối xử lý (máy khách)
Nhóm thiết kế các khối để hỗ trợ cho 2 nhiệm vụ trên của khối xử lý:
Trang 32Hình 3-3 Sơ đồ khối của khối xử lý (máy chủ) và các khối liên quan
Chức năng từng khối:
- Khối nguồn: cung cấp nguồn DC 5V – 3A cho khối xử lý (máy chủ) Khối nguồn cung cấp điện áp và dòng điện giúp cho khối xử lý (máy chủ) có thể hoạt động cũng như thực hiện các nhiệm vụ
- Khối thu thập hình ảnh: khối này là camera ngoại vi hoạt động liên tục để nhận hình ảnh cử chỉ từ phía người dùng và gửi tới cho khối xử lý để thực hiện việc nhận diện phân tích từ đó gửi tín hiệu điều khiển qua giao thức TCP/IP cho khối xử lý (khách)
- Khối hiển thị và điều khiển (phần mềm): khối này là một màn hình hiển thị giao diện Giao diện này có 2 chức năng: 1 là điều khiển thiết bị bật/tắt ngay trên giao diện, 2 là cho phép người dùng tùy chỉnh cử chỉ điều khiển cho từng thiết bị riêng biệt
Chi tiết thông số kỹ thuật từng khối:
- Khối thu thập hình ảnh: nhóm sử dụng Webcam Logitech C270 HD để làm khối thu thập hình ảnh Nhờ có độ phân giải cao 720p/30fps giúp cho việc
Trang 33thu thập hình ảnh rõ nét phục vụ tốt cho việc nhận diện, ngoài ra 30fps (30 khung hình trên giây) cũng giúp rất lớn cho việc đọc hình ảnh được liên tục giảm thiểu được việc bị mất khung hình
Hình 3-5 màn hình 7-inch HDMI [5]
Trang 34Trong đề tài có ứng dụng mô hình nhận diện (nhận diện cử chỉ tay), do đó ở đây nhóm sử dụng một phần cứng là Raspberry Pi 4 Model B làm khối xử lý
Hình 3-6 Raspberry Pi 4 Model B [5]
Vì có sử dụng mô hình nhận diện nên việc sử dụng một máy tính nhúng sử dụng bộ xử lý Cortex A72 có CPU tốc độ xử lý cao lên đến 1.5 GHz và Ram 4GB giúp cho việc xử lý nhận diện được nhanh chóng và chính xác hơn Có hỗ trợ Wifi chuẩn 2.4GHz tương thích và phù hợp với vi điều khiển ESP32 giúp cho việc truyền nhận dữ liệu điều khiển ổn định hơn Raspberry Pi 4 còn cung cấp 4 cổng USB hỗ trợ các kết nối ngoại vi: chuột, bàn phím, thiết bị ghi hình, … Có 2 cổng xuất màn hình chuẩn Micro HDMI hỗ trợ việc hiểu thị ra giao diện cho người dùng
ở độ phân giải cao hơn Ngoài ra để cho việc đọc ghi và xử lý dữ liệu nhanh hơn nhóm đã sử dụng một ổ cứng SSD để lưu trữ hệ điều hành Raspbian cũng như lưu trữ các dữ liệu liên quan
Trong hệ thống nhóm sử dụng những cổng giao tiếp của Raspberry
Pi 4 sau:
Trang 35Hình 3-7 Sơ đồ nguyên lý các kết nối của khối máy chủ
- Cổng USB: Kit Raspberry Pi 4 Model B có 4 cổng USB (Universal Serial
Bus) trong đó có 2 cổng USB 2.0 và 2 cổng USB 3.0 Nhóm sử dụng 1
cổng USB 2.0 để kết nối với màn hình dùng để người dùng điều khiển giao
diện, 2 cổng USB 3.0 nhóm sử dụng 1 cổng để kết nối với ổ cứng ngoài
(Intel SSD Pro 1 500 series 180GB) để cấp hệ điều hành Raspbian cho Kit
Raspberry là lưu trữ toàn bộ dữ liệu của hệ thống, còn 1 cổng USB 3.0 còn
lại nhóm dùng để đọc dữ liệu từ khối thu thập dữ liệu (camera: C270 HD
WEBCAM)