1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế mô hình camera Ứng dụng trong nhà thông minh

86 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế mô hình camera ứng dụng trong nhà thông minh
Tác giả Nguyễn Phú Thiện
Người hướng dẫn PGS.TS Trương Ngọc Sơn
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ Kỹ thuật Máy tính
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 86
Dung lượng 9,85 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (16)
    • 1.1 GIỚI THIỆU (16)
    • 1.2 MỤC TIÊU (19)
    • 1.3 GIỚI HẠN ĐỀ TÀI (19)
    • 1.4 PHƯƠNG PHÁP NGHIÊN CỨU (20)
    • 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU (21)
    • 1.6 BỐ CỤC QUYỂN BÁO CÁO (22)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (23)
    • 2.1 Mediapipe (23)
      • 2.1.1 Giới thiệu về MediaPipe (23)
      • 2.1.2 Các giải pháp trong Mediapipe được sử dụng (26)
        • 2.1.2.1 Mediapipe Pose (26)
        • 2.1.2.2 Human Pose Estimation (28)
        • 2.1.2.3 Face Detection (30)
    • 2.2 Mạng nơ-ron hồi quy RNN (31)
      • 2.2.1 Giới thiệu (31)
      • 2.2.2 Cách thức hoạt động (32)
      • 2.2.3 Hàm mục tiêu (34)
        • 2.2.3.1 Hồi quy (34)
        • 2.2.3.2 Phân loại (34)
        • 2.2.3.3 Tính toán hàm mục tiêu trong RNN (35)
        • 2.2.3.4 Cập nhật trọng số (35)
      • 2.2.4 Phân loại bài toán RNN (36)
    • 2.3 Mô hình máy học LSTM (37)
      • 2.3.1 Giới thiệu chung (37)
      • 2.3.2 Sơ lược về LSTM (37)
      • 2.3.3 Quy trình thực hiện của LSTM (38)
      • 2.3.4 Các thức hoạt động bên trong LSTM (43)
        • 2.3.4.1 Input Gate (Cổng đầu vào) (44)
        • 2.3.4.2 Forget Gate (Cổng quên) (45)
        • 2.3.4.3 Output Gate (Cổng đầu ra) (46)
    • 2.4 Thuật toán LBP (47)
      • 2.4.1 Giới thiệu về thuật toán LBP (47)
      • 2.4.2 LBP áp dụng phát hiện khuôn mặt (48)
      • 2.4.3 LBP áp dụng nhận diện khuôn mặt (50)
  • CHƯƠNG 3. THIẾT KẾ HỆ THỐNG CAMERA ỨNG DỤNG TRONG NHÀ THÔNG MINH (53)
    • 3.1 Yêu cầu hệ thống (53)
    • 3.2 Thiết kế phần cứng (53)
    • 3.3 Thiết kế phần mềm (58)
      • 3.3.1 Quá trình thu thập dữ liệu (58)
        • 3.3.1.1 Huấn luyện Pipeline (58)
        • 3.3.1.2 Inference Pipeline (61)
        • 3.3.1.3 Cấu trúc chi tiết mạng Deep Learning được sử dụng (64)
        • 3.3.1.4 Mô hình nhận diện gương mặt (66)
      • 3.3.2 Thiết kế hệ thống camera thông minh (70)
  • CHƯƠNG 4. KẾT QUẢ (74)
    • 4.1 Kết quả thực hiện mô hình trên phần mềm (74)
    • 4.2 Kết quả thực tế (75)
  • CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (82)
    • 5.1 KẾT LUẬN (82)
    • 5.2 HƯỚNG PHÁT TRIỂN (82)

Nội dung

Ngoài ra, nhóm thực hiện đề tài cũng nghiên cứu việc kết nối camera thông minh với Arduino để điều khiển các thiết bị như đèn led dựa trên hành vi con người được nhận diện, cũng như phát

TỔNG QUAN

GIỚI THIỆU

Kỷ nguyên bùng nổ của sự phát triển trí tuệ nhân tạo cùng với công nghệ hiện đại đã mở ra những trang mới cho ứng dụng thông minh và tự động hóa trong nhiều lĩnh vực Con người không ngừng tìm hiểu, nghiên cứu các giải pháp tốt để góp phần cho chất lượng cuộc sống ngày càng được nâng cao Hệ thống giám sát tích hợp điều khiển thông minh dựa trên hành vi con người chính là một bước tiến đột phá, bước đến một thế giới đầy tiềm năng, nơi mọi thứ xung quanh đều trở nên

“nhận thức” và tương tác với con người một cách tinh tế

Nhiều đề tài thực hiện nghiên cứu trong lĩnh vực camera thông minh và nhận diện hành vi con người đã được thực nghiệm với các kỹ thuật và phương pháp khác nhau Một số đề tài nghiên cứu tiêu biểu như nhận diện hành vi con người trong video bằng mạng nơ-ron tích chập [1],[2] Ở cả hai nghiên cứu này, các tác giả sử dụng kiến trúc nơ-ron tích chập (CNN) nhằm nhận diện với các hành vi con người trong video như đi bộ, chạy, nhảy, Mang lại hiệu quả trong nhận diện những hành vi đơn giản và có thể sử dụng cho nhiều loại video khác nhau Nhược điểm của hai đề tài này phải cần lượng dữ liệu đào tạo lớn [1],[2] Nghiên cứu khác cũng xoay quanh về lĩnh vực trên là hệ thống thông minh, giám sát dựa vào camera [3] Đề tài này đề xuất một hệ thống giám sát thông minh dùng camera để xác định nhận dạng khuôn mặt, theo dõi người để ngăn chặn hành vi trái phép

[3] Tương tự như đề tài trên một nghiên cứu khác cũng phát triển thêm bằng cách phát hiện các sự kiện bất thường như xâm nhập không chính thống, cháy nổ, [4]

Hệ thống sử dụng kỹ thuật xử lý để trích xuất các đặc trưng từ video, hình ảnh và sau đó sử dụng những thuật toán để nhằm phân loại các đặc trưng này thành những sự kiện bình thường hoặc bất thường Về ưu điểm, hệ thống này dễ dàng triển khai và sử dụng Nhưng trong một số trường hợp hệ thống sẽ dễ bị ảnh hưởng với các yếu tố của môi trường như ánh sáng, nhiễu [4] Với lĩnh vực camera thông minh và nhận diện hành vi con người là lĩnh vực nghiên cứu đầy tính ứng dụng cao với nhiều tiềm năng thực tế

Trong nỗ lực nghiên cứu và phát triển về lĩnh vực điều khiển, giám sát nên nhóm thực hiện đã đề xuất đề tài “Thiết kế mô hình camera ứng dụng trong nhà thông minh” Việc áp dụng AI vào camera giám sát đã đạt được nhiều tiến bộ vượt bậc, đặc biệt là trong ứng dụng camera thông minh giám sát hành vi và nhận diện gương mặt con người theo thời gian thực Trước đây, camera giám sát chỉ đơn giản là một công cụ giúp ghi lại hình ảnh và video để giám sát và bảo vệ an ninh Tuy nhiên nhờ vào tiến bộ của khoa học công nghệ, camera giám sát đã trở thành một công cụ đa năng hơn, có khả năng nhận diện và phân tích hành vi con người theo thời gian thực Với sự vượt trội này, hệ thống camera thông minh của nhóm thực hiện đề tài không chỉ có chức năng ghi lại hình ảnh mà còn có khả năng phân tích, dự đoán được hành vi con người Từ việc nhận diện và phân loại gương mặt theo cơ sở dữ liệu đã được đào tạo, đến việc giám sát và cảnh báo tức thời khi phát hiện một gương mặt không xác định, hệ thống đảm bảo an ninh tối đa và nhanh chóng đáp ứng với sự xâm nhập không mong muốn Hơn nữa khả năng tương tác cũng là một yếu tố then chốt Hệ thống tích hợp tính năng điều khiển từ xa với các thiết bị như đèn led, dựa vào việc nhận diện và phân tích hành vi con người trước camera Điều này giúp tự động kích hoạt với những thiết bị điện tử khác để tiến hành các hành động như bật/tắt đèn hoặc điều khiển các hệ thống nhà thông minh khác theo yêu cầu Để tăng cường tính linh hoạt, nhóm thực hiện đề tài cũng đã tích hợp tính năng cảnh báo qua loa và thông báo qua Telegram Khi phát hiện gương mặt lạ hệ thống sẽ cảnh báo thông qua loa và gửi tin nhắn thông tin hiện tại của hệ thống (phát hiện gương mặt lạ, tình trạng của đèn led bật hay tắt, màu sắc đèn hiện tại và hành động của người đứng trước camera) thông qua ứng dụng Telegram Tăng cường khả năng giám sát từ xa, mang lại hiệu quả và an toàn Những tính năng thiết thực, tiên tiến này của công nghệ giám sát từ xa mang lại nhiều tiện ích, từ tăng cường an ninh, quản lý hiệu quả đến cải thiện cuộc sống và làm việc Điều này đã mở ra một thế giới mới, nơi camera không chỉ quan sát mà còn tương tác và điều khiển thiết bị xung quanh mang lại những công dụng vượt trội đáng mong đợi và đặc biệt là với lĩnh vực nhà thông minh

Một trong nội dung đáng chú ý trong đề tài là việc dùng mô hình LSTM và

AI để giám sát và phân loại hành vi con người từ hình ảnh của camera [5] Mô hình

LSTM với khả năng xử lý hiệu quả “chuỗi dữ liệu theo thời gian”, giúp nhận biết để dự đoán hành vi con người đúng nhất có thể, linh hoạt theo thời gian thực [5]

Qua việc phân tích dữ liệu từ camera, LSTM được sử dụng vào việc nhận dạng và phân loại một loạt các hành động con người như: nằm, vỗ tay, ngồi, cử chỉ tay và nhiều hành vi khác Ngoài ra còn áp dụng công nghệ nhận diện gương mặt sử dụng mô hình LBPH Với mô hình này, bằng cách thể hiện các đặc trưng cục bộ của khuôn mặt dưới dạng các biểu đồ histogram của các mẫu nhị phân cục bộ [6] Việc sử dụng LBPH giúp xác định danh tính của các cá nhân trong phạm vi giám sát được chính xác và tăng khả năng hiệu quả cho toàn bộ hệ thống Mô hình này có thể phát triển thêm hữu ích trong nhà thông minh, việc theo dõi hoạt động và kết hợp giám sát an ninh trong các khu vực công cộng và nhiều ứng dụng khác Điều thú vị là thông qua việc kết nối với Arduino, camera thông minh có tính năng điều khiển thiết bị dựa vào hành động con người được nhận diện Cùng với việc phát tín hiệu cảnh báo qua loa khi gương mặt không xác định được danh tính Thêm vào đó chức năng thông báo qua Telegram không chỉ biết được các hành vi nhận diện mà còn cung cấp một cách tiện lợi để theo dõi từ xa tình trạng hệ thống

Bằng việc sử dụng API của Telegram, hệ thống gửi thông báo tự động về danh sách hành vi được nhận diện, trạng thái của các thiết bị như đèn led cũng như cảnh báo về gương mặt lạ trong phạm vi quan sát của camera

Tóm lại, đề tài “Thiết kế mô hình camera ứng dụng trong nhà thông minh” đã đạt được kết quả đúng như mong đợi và đóng góp vào sự phát triển của lĩnh vực điều khiển và giám sát thông minh Với sự kết hợp camera và trí tuệ nhân tạo đã cải thiện khả năng dự đoán và phân tích hành vi con người Tuy nhiên, khi sử dụng những công nghệ này cần phải tuân thủ các quy định về bảo mật dữ liệu và quyền riêng tư con người Tin rằng việc nghiên cứu và tích cực phát triển tiếp tục trong lĩnh vực này sẽ mang lại những giải pháp thông minh và tự động hóa tiên tiến hơn, tạo điều kiện thuận lợi và nâng cao chất lượng cuộc sống cho sự phát triển xã hội

MỤC TIÊU

- Thiết kế một mô hình LSTM, đồng thời sử dụng AI để phân loại và giám sát hành vi con người từ hình ảnh của camera Sử dụng thuật toán LBPH dùng để nhận diện và phân loại chính xác các khuôn mặt trong phạm vi mà camera có thể thấy được, giúp xác định danh tính của từng cá nhân hiệu quả

- Kết nối với Arduino, để điều khiển thiết bị (như đèn led) dựa trên hành vi con người được nhận diện Loa cảnh báo được kết nối với Arduino nhằm phát ra tín hiệu khi phát hiện người lạ

- Sử dụng API của Telegram để gửi thông báo tức thì khi hệ thống nhận diện được các hành vi hoặc sự kiện quan trọng như phát hiện người lạ, tình trạng của các thiết bị được kết nối

- Đưa ra ứng dụng của hệ thống camera thông minh trong lĩnh vực nhà thông minh, theo dõi hoạt động và giám sát an ninh trong các khu vực công cộng.

GIỚI HẠN ĐỀ TÀI

- Với yếu tố như ánh sáng môi trường, góc quan sát, độ phân giải hình ảnh sẽ ảnh hưởng đến việc nhận diện một cách chính xác Vì thế có thể dẫn đến việc phân loại sai hoặc bỏ sót các hành vi hoặc khuôn mặt Chính vì vậy mô hình hoạt động ổn định trong điều kiện môi trường có ánh sáng tốt, góc quan sát tùy thuộc vào góc của camera

- LSTM và LBPH yêu cầu đào tạo một lượng lớn dữ liệu nhằm đạt được hiệu quả tốt Theo thời gian thực, việc xử lý đồng thời hai mô hình này có thể gặp độ trễ LSTM có xu hướng bị overfitting vì lượng dữ liệu đào tạo chỉ xung quanh các hành động thường ngày của con người (nằm, ngồi, vẫy tay, không làm gì, ) Ngoài ra với mô hình LBPH nhận diện đúng khi gương mặt không mang khẩu trang, nhìn trực diện, độ chính xác không cao khi gặp các tình huống mới không có trong tập dữ liệu

- Một số tình huống đặc biệt như hành động quá nhanh hoặc phức tạp có thể không thể nhận diện được hoặc nhằm lẫn giữa các hành vi Đồng thời số lượng người càng nhiều (trên 4 người) hệ thống có thể bị nhận dạng lỗi gương mặt, thời gian trễ tăng cao do cùng lúc nhận dạng hành động và khuôn mặt

- Về tính tương tác với các thiết bị như đèn led, loa đôi lúc sẽ gặp độ trễ vì việc phân tích hành vi và nhận diện gương mặt tốn thời gian xử lý trong việc gửi tín hiệu đến các thiết bị

- Việc truyền dữ liệu thông tin qua API Telegram có thể dẫn đến độ trễ do nhiễu mạng, tắc nghẽn mạng hoặc đường truyền yếu

- Việc sử dụng camera vào giám sát hành vi con người đòi hỏi đến bảo mật và quyền riêng tư Lưu trữ và xử lý liệu cần phải tuân thủ các quy định pháp luật và đảm bảo bảo mật thông tin.

PHƯƠNG PHÁP NGHIÊN CỨU

Nghiên cứu lý thuyết: Tham khảo các tài liệu khoa học, sách báo, bài báo chuyên ngành về lĩnh vực AI, xử lý hình ảnh, phát hiện và nhận diện gương mặt – hành vi con người, camera thông minh, Nghiên cứu các thuật toán và mô hình

AI đa dạng để lựa chọn phương án phù hợp nhất cho việc nhận diện hành vi, gương mặt con người từ hình ảnh camera Nghiên cứu các giải pháp camera thông minh hiện có và được nghiên cứu để học hỏi và xác định được hướng thực hiện đề tài

Thu thập dữ liệu: Lấy dữ liệu hình ảnh và video có chứa các hành vi con người đa dạng, bao gồm đi bộ, ngồi, vỗ tay, nằm, cử chỉ tay, Thu tập các tập hình ảnh gương mặt và gắn nhãn theo tên người được lấy ảnh khuôn mặt

Xây dựng mô hình: Các thư viện học máy và công cụ lập trình phù hợp để xây dựng mô hình AI, LBPH và LSTM cho việc nhận diện hành vi, gương mặt con người từ hình ảnh camera Huấn luyện mô hình trên dữ liệu đào tạo, cân chỉnh các tham số mô hình được tối ưu hóa hiệu suất nhận diện

Triển khai hệ thống: Kết nối hệ thống camera với Arduino với các thiết bị điện tử khác để tiến hành việc tương tác Kiểm tra và đánh giá hiệu năng hệ thống camera thông minh trong môi trường thực tế

Phân tích kết quả: Kết quả nhận diện hành vi, gương mặt con người của hệ thống camera thông minh Đánh giá độ chính xác, tính tin cậy và mức độ hiệu quả của hệ thống Xác định hạn chế của hệ thống và đưa ra các phương pháp khác cải tiến

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

- Hệ thống camera: gồm phần cứng (camera, bộ xử lý) và phần mềm (mô hình AI, thuật toán xử lý hình ảnh, giao diện người dùng) có tính năng nhận diện và phân tích hành vi con người từ hình ảnh camera theo thời gian thực đồng thời nhận diện gương mặt và phát hiện người lạ

- Mô hình AI và thuật toán: LSTM được sử dụng để xử lý chuỗi dữ liệu theo thời gian thực, nhận biết các hành vi Và LBPH dùng để nhận diện và phát hiện gương mặt lạ trong khu vực giám sát Hai mô hình này được kết hợp lại với nhau không chỉ có khả năng nhận diện, phân loại gương mặt và hành vi chính xác mà còn tăng cường tính linh hoạt

- Ứng dụng của camera thông minh: được sử dụng cho các lĩnh vực như an ninh, nhà thông minh, quản lý năng lượng, giáo dục, giao thông vận tải, y tế,…

- Xây dựng hệ thống camera thông minh: Thiết kế và phát triển hệ thống camera thông minh bao gồm phần mềm và phần cứng Hệ thống sẽ được thiết kế để tương tác và điều khiển các thiết bị dựa vào hành vi của người sử dụng, như việc bật/tắt đèn led, phát cảnh báo qua loa, và gửi thông báo qua Telegram

- Phát triển mô hình AI: Nghiên cứu sẽ tập trung việc cải tiến và phát triển các thuật toán và mô hình nhận diện gương mặt và hành vi con người, như việc nhận diện hành vi di chuyển, cử chỉ, và hoạt động thông qua video Đánh giá hiệu suất đạt được của các mô hình AI khác nhau trong việc phân loại các hành vi con người cụ thể Tối ưu hóa mô hình để nâng cao độ chính xác và tốc độ nhận diện

- Ứng dụng camera thông minh: Nghiên cứu ứng dụng tiềm năng của camera thông minh trong những lĩnh vực khác nhau Phát triển các phương pháp cho những ứng dụng cụ thể Đồng thời đánh giá lợi ích và hiệu quả mang lại của camera thông minh trong các ứng dụng thực tế

BỐ CỤC QUYỂN BÁO CÁO

Nội dung chính của đề tài đồ án tốt nghiệp được trình bày với 5 chương:

- Chương 1 TỔNG QUAN: Chương này giới thiệu tổng quan về đề tài, nhấn mạnh mục tiêu và giới hạn của nghiên cứu, đồng thời trình bày phương pháp nghiên cứu và xác định đối tượng cũng như phạm vi nghiên cứu

- Chương 2 CƠ SỞ LÝ THUYẾT: Giới thiệu về tình hình nghiên cứu trong lĩnh vực, tập trung vào các hướng nghiên cứu và nội dung lý thuyết đang được áp dụng và phát triển

- Chương 3 THIẾT KẾ HỆ THỐNG: Sơ đồ khối toàn hệ thống, các khối của hệ thống, thiết kế từng khối và các thiết bị được sử dụng trong các khối

- Chương 4 KẾT QUẢ: Trình bày kết quả cụ thể được thu thập từ quá trình triển khai và thử nghiệm của mô hình hệ thống

- Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: Tổng kết các kết quả quan trọng, phân tích điểm yếu và điểm mạnh của mô hình, đồng thời đề xuất các hướng phát triển tiếp theo cho đề tài nghiên cứu

CƠ SỞ LÝ THUYẾT

Mediapipe

Mediapipe là một bộ công cụ machine learning mã nguồn mở được nghiên cứu bởi Google Research Thiết kế dựa trên kiến trúc pipeline, cho phép người dùng kết hợp nhiều phần xử lý về học máy (ML) và thị giác máy tính với nhau để đưa ra một hệ thống đầy đủ tính năng [7] Kiến trúc pipeline của Mediapipe gồm các thành phần xử lý tích hợp như giải mã video, phát hiện và theo dõi đối tượng, phát hiện và phân loại hành động, cùng với đó là phân tích cử chỉ, xử lý hình ảnh, Giải mã video là bước khởi đầu quan trọng, cho phép hệ thống nhận đầu vào và xử lý dữ liệu video từ nhiều nguồn khác nhau Tiếp theo, khả năng theo dõi và phát hiện đối tượng của Mediapipe giúp nhận diện và bám sát vào đối tượng trong từng khung hình theo thời gian thực, bổ sung thêm các thông tin cần thiết cho tác vụ tiếp theo Một tính năng nổi bật khác là phát hiện và phân loại hành động, cho phép hệ thống hiểu và phân loại một loạt hành động khác nhau của đối tượng, từ các chuyển động đơn giản đến các hành động phức tạp Công nghệ phân tích cử chỉ của Mediapipe cho phép nhận diện và hiểu các cử chỉ tay và cơ thể, mở ra nhiều ứng dụng cho những lĩnh vực như giao diện người-máy (HMI), thực tế ảo tăng cường (AR), và các hệ thống điều khiển không chạm Các thành phần trên được thiết kế đảm bảo có thể hoạt động đa nền tảng, bao gồm cả máy tính để bàn và thiết bị di động [7]

Pipeline trong mô hình ML là một chuỗi các hoạt động huấn luyện mô hình và xử lý dữ liệu Thông thường, pipeline bao gồm các bước như tiền xử lý dữ liệu (preprocessing), phân chia dữ liệu thành tập kiểm tra và tập tập huấn luyện (test split/train), trích xuất đặc trưng (feature extraction) và huấn luyện mô hình (model training) Pipeline giúp tự động hóa các bước tiền xử lý và huấn luyện mô hình, làm giảm công sức và thời lượng trong quá trình xây dựng, đánh giá mô hình ML Ngoài ra, Pipeline cũng cho phép bộ phận khai phá dữ liệu (Data Mining) nâng cao hiệu suất và hiệu quả hơn [8] Sử dụng pipeline không chỉ giúp tổ chức quy trình làm việc một cách rõ ràng, mà còn tạo ra sự tự động hóa và có thể tái sử dụng

9 trong giai đoạn tạo ra mô hình ML Cho phép các nhà nghiên cứu và nhà phát triển tập trung cho quá trình nâng cao chất lượng và hiệu suất của mô hình, thay vì bị mắc kẹt trong các bước tiền xử lý và huấn luyện mô hình cơ bản Tóm lại, pipeline trong ML là một công cụ thiết yếu giúp tự động hóa quy trình và tổ chức huấn luyện, xử lý dữ liệu cho mô hình Nó giúp rút ngắn thời gian và công sức chủ yếu để xây dựng và nhận xét các mô hình ML, đồng thời hiệu quả và tăng tốc độ cho quá trình khai phá dữ liệu

Hình 2.1 Các thành phần trong Machine Learning pipeline

Thông tin về cơ chế hoạt động của khối training và khối serving:

- Để huấn luyện mô hình, cần thực hiện bước kiểm định (Data validation) để xác định rằng các data mới có thể phù hợp với cơ sở dữ liệu đã tạo từ trước

- Ngay sau quá trình làm sạch dữ liệu thô (Data Prepration) quá trình tiếp theo là tiến hành phân chia thành hai tập dữ liệu: một là tập kiểm định (Validation data) và hai là tập huấn luyện (Training data) Ngoài ra còn có tập dữ liệu kiểm tra (Test data) để đánh giá mức tiêu chuẩn của mô hình sau khi hoàn thiện quá trình huấn luyện

- Tập dữ liệu tiến hành bước “Model Training” nhằm đưa mô hình bắt đầu vào quá trình huấn luyện

- Sau khi kết thúc giai đoạn huấn luyện, tiến hành phân tích chất lượng với cách kiểm tra các số liệu như kết quả thực tế, kết quả dự đoán, tốc độ dự đoán trên tập kiểm định trong khối “Model Analysis” Điều này giúp đánh giá và điều chỉnh mô hình nếu cần

- Khi sản phẩm của quá trình này đã được hoàn thiện, chạy dữ liệu thực tế với việc sử dụng mô hình được phân tích trong khối “Serving” Nếu kết quả chạy dữ liệu thực tế không tốt cần phải kiểm tra lại mô hình hoặc lọc lại dữ liệu để chất lượng được cải thiện hơn

- Khi mô hình vẫn trong giai đoạn phát triển nên dùng một bộ dữ liệu nhỏ để thực hiện kiểm thử Chất lượng mô hình nếu tốt thì mới áp dụng trên toàn bộ dữ liệu

- “Data Preparation” giúp tạo và làm sạch dữ liệu theo đúng mô hình đã được xây dựng trong khối Training

- Mỗi trường hợp khác nhau đều nên có một hệ thống báo động riêng để theo dõi các kết quả được đoán từ trước của mô hình Thông thường, bất kỳ đầu vào dữ liệu nào cũng sẽ cho đầu ra dự đoán, kết quả cho ra hợp lệ hoặc chỉ là ngẫu nhiên Tuy nhiên, nếu không hiệu chỉnh và đánh giá kết quả này một cách kỹ càng thì chất lượng sẽ kém đi và mất tính chính xác

Với kiến trúc pipeline của Mediapipe, việc tạo nên hệ thống thị giác máy tính và máy học trở nên dễ hơn bao giờ hết Chính là nhờ các khối xây dựng hiện có và kết hợp chúng lại với nhau, các nhà phát triển có thể rút ngắn thời gian để xây dựng ra các ứng dụng phức tạp mà không cần tốn nhiều công sức và thời gian trong giai đoạn viết mã từ đầu Với những mặt có lợi, kiến trúc pipeline giúp tăng tốc độ phát triển ứng dụng và thuận tiện cho người dùng khi triển khai các nội dung liên quan đến lĩnh vực thị giác máy tính sử dụng ML Mở ra một trang mới cho nhiều ứng dụng mới và sáng tạo trong nhiều lĩnh vực như giao diện người-máy, thực tế ảo tăng cường, y tế, và nhiều lĩnh vực khác

2.1.2 Các giải pháp trong Mediapipe được sử dụng

MediaPipe Pose là mã nguồn mở của Google và được nghiên cứu nhằm cung cấp các thuật toán và công cụ cho việc ước lượng tư thế con người (Human Pose Estimation) Các công cụ và thuật toán của MediaPipe Pose cho phép phân tích hình ảnh và tìm ra các điểm đặc trưng trên cơ thể con người như khớp xương, cổ tay, phần tay và các đốt sống Những thông tin cụ thể này được dùng cho việc định vị trí và hướng của khớp xương trên cơ thể con người với đầu vào là hình ảnh 2D hoặc 3D [9]

Khả năng giám sát và phân tích chuyển động của cơ thể con người là một trong những tính năng nổi bật của MediaPipe Pose [10] Điều này không chỉ nhằm cải tiến trải nghiệm của người dùng trong các lĩnh vực giải trí như game tương tác và thực tế ảo, mà còn có ứng dụng nâng cao trong lĩnh vực y tế, nơi có thể theo dõi và phân tích chuyển động nhằm giám sát tình trạng sức khỏe hoặc hỗ trợ quá trình phục hồi chức năng Ngoài ra, MediaPipe Pose được sử dụng để tích hợp các ứng dụng hỗ trợ tương tác tự nhiên với máy tính Ví dụ trong các ứng dụng học tập hoặc làm việc từ xa, nó có thể giúp cải thiện trải nghiệm thông qua việc theo dõi cử chỉ và tư thế của người dùng, từ đó cung cấp thông tin phản hồi chính xác và tức thì Việc tích hợp MediaPipe Pose vào ứng dụng di động cũng giúp khả năng trải nghiệm dễ dàng hơn trong việc tương tác với các ứng dụng và trang web, nâng cao hiệu quả và tiện nghi hơn trong quá trình sử dụng Cho thấy MediaPipe Pose cũng cung cấp các API và giao diện lập trình (APIs) để xây dựng với các ứng dụng khác, mở ra nhiều khả năng tích hợp và mở rộng Điều này đem lại trải nghiệm tương tác đa chiều và sinh động hơn cho người dùng MediaPipe Pose được thiết kế dựa vào mạng neural và mô hình deep learning để đạt được kết quả ước lượng pose đáng mong đợi và ổn định Các mô hình này được đào tạo trên tập dữ liệu lớn để phân loại và nhận diện các điểm đặc trưng trên cơ thể con người MediaPipe Pose dùng thêm các thuật toán tối ưu và phân tích hình ảnh để xử lý đầu vào dữ liệu và tạo ra kết quả pose chính xác [11]

Mô hình landmark trong MediaPipe Pose là một trong yếu tố quan trọng của hệ thống vì dự đoán được vị trí của 33 điểm chấm tư thế trên cơ thể con người Các điểm chấm này bao gồm các khớp xương, cổ tay, phần tay và các đốt sống, giúp xác định vị trí và hướng của những bộ phận và phần tử quan trọng trên cơ thể

Hình 2.2 Các điểm chấm tư thế trong mô hình Landmark của

Mô hình là một mạng nơ-ron nhân tạo (CNN) được đào tạo trên một tập dữ liệu khổng lồ gồm hình ảnh và video có chú thích vị trí của các điểm chấm tư thế Khi được cung cấp một hình ảnh hoặc video mới, mô hình sẽ dự đoán vị trí của 33 điểm chấm tư thế trên cơ thể người trong hình ảnh hoặc video đó Các điểm chấm này cũng được dùng để định vị các tư thế của cơ thể con người trong không gian 2D hoặc 3D

Tóm lại những vấn đề được nêu trên, MediaPipe Pose chính là một giải pháp mã nguồn mở mạnh mẽ cho Human Pose Estimation Với khả năng phát hiện, phân tích và tích hợp đa nền tảng, MediaPipe Pose không chỉ cung cấp các thuật toán và công cụ mạnh mẽ, mà còn mở ra nhiều ưu thế mới Với tính năng phát hiện cơ thể con người trên video hoặc hình ảnh, nó cho phép theo dõi và phân tích tư thế trong thời gian thực, mở ra nhiều ứng dụng trong việc giám sát và phân tích chuyển động của cơ thể con người

Mạng nơ-ron hồi quy RNN

Mạng nơ-ron hồi quy RNN là loại mạng nơ-ron được dùng trong lĩnh vực

AI và học sâu Đặc điểm chính của RNN là xử lý dữ liệu tuần tự hoặc chuỗi Trong những đặc điểm có tính quan trọng của RNN là khả năng lưu trữ thông tin về lịch sử của dữ liệu mà nó đã xử lý trước đó thông qua các trạng thái ẩn Điều này giúp RNN có thể hiểu và xử lý thông tin phụ thuộc vào ngữ cảnh để dự đoán trạng thái tiếp theo [19] Mô hình mạng RNN sẽ dựa theo mô hình mạng NN, hình 2.4 dưới đây sẽ là mô tả cấu trúc mô hình mạng NN:

Hình 2.4 Cấu trúc cơ bản của mạng NN

Cấu trúc của một mạng NN sẽ bao gồm ba thành phần chính là Input Layer,

Output Layer, Hidden Layer và và đầu ra của mạng là hoàn toàn độc lập Mạng RNN ra đời nhằm giải quyết vấn đề ở mạng NN bằng cách sử dụng một bộ nhớ lưu lại thông tin từ trước thông qua các thành phần xử lý dựa vào đó để đưa ra chính xác dự đoán hiện tại Tuy nhiên, RNN cũng gặp phải vấn đề biến mất gradient khi xử lý chuỗi dài, khi các thông tin quan trọng trong quá khứ trở nên mất đi theo thời gian Chính vì điều đó, nhiều biến thể của RNN đã được phát triển, như LSTM và GRU, giúp mạng có khả năng học được các khả năng dài hạn trong dữ liệu chuỗi

Mạng nơ-ron hồi quy (RNN) hoạt động dựa trên cơ chế xử lý dữ liệu tuần tự, cho phép nó lưu giữ thông tin về các bước thời gian trước đó trong quá trình tính toán hiện tại Đầu tiên sẽ tìm hiểu cơ bản về cấu trúc mạng nơ-ron hồi quy, được thể hiện như hình dưới đây:

Hình 2.5 Mạng nơ-ron hồi quy RNN

RNN xử lý đầu vào từng bước thời gian một, sử dụng trạng thái ẩn từ bước đầu tiên cùng với đầu vào tại thời điểm hiện tại để tính toán trạng thái ẩn mới và đầu ra Quá trình này được lặp lại cho mỗi phần tử trong chuỗi đầu vào Trong RNN đầu vào không chỉ là một giá trị hoặc một tập hợp giá trị độc lập mà là còn một chuỗi dữ liệu 𝑥 = (𝑥 1 , 𝑥 2 , … 𝑥 𝑇 ) Ở mỗi thời điểm 𝑡, RNN nhận đầu vào 𝑥 𝑡 và trạng thái ẩn ℎ 𝑡−1 từ thời điểm trước đó để tính toán trạng thái ẩn hiện tại ℎ 𝑡 Công thức toán học mô tả quá trình này như sau:

- ℎ 𝑡 : là trạng thái ẩn tại thời điểm 𝑡

- 𝑥 𝑡 : là đầu vào tại thời điểm 𝑡

- 𝑊 ℎ𝑥 : là ma trận trọng số giữa đầu vào và trạng thái ẩn

- 𝑊 ℎℎ : là ma trận trọng số giữa các trạng thái ẩn liên tiếp

- 𝑏 ℎ : là vector bias cho trạng thái ẩn

- 𝜎: là hàm kích hoạt, thường là hàm 𝑡𝑎𝑛ℎ hoặc 𝑅𝑒𝐿𝑈

18 Đầu ra tại thời điểm 𝑡 được tính từ trạng thái ẩn hiện tại ℎ 𝑡 :

- 𝑦 𝑡 : là đầu ra tại thời điểm 𝑡

- 𝑏 𝑦 : là vector bias cho đầu ra

- 𝑊 ℎ𝑦 : là ma trận trọng số giữa trạng thái ẩn và đầu ra

- 𝜙: là hàm kích hoạt hoặc hàm softmax, tùy thuộc vào bài toán cụ thể

Ví dụ: Giả sử có một chuỗi dữ liệu đầu vào gồm 3 phần tử (𝑥 1 , 𝑥 2 , 𝑥 3 ):

- Tại thời điểm 𝒕 = 𝟏: Đầu vào: 𝑥 1

Trạng thái ẩn trước đó: ℎ 0

Tính trạng thái ẩn mới ℎ 1 :

- Tại thời điểm 𝒕 = 𝟐: Đầu vào: 𝑥 2

Trạng thái ẩn trước đó: ℎ 1

Tính trạng thái ẩn mới ℎ 2 :

- Tại thời điểm 𝒕 = 𝟑: Đầu vào: 𝑥 3

Trạng thái ẩn trước đó: ℎ 2

Tính trạng thái ẩn mới ℎ 3 :

Hàm mục tiêu (loss function) trong mạng nơ-ron hồi quy (RNN) đóng vai trò quan trọng trong việc huấn luyện mô hình học máy Hàm này đo lường sự khác biệt giữa đầu ra dự đoán của mô hình và giá trị thực tế, từ đó hướng dẫn việc điều chỉnh các tham số (trọng số và bias) để cải thiện hiệu suất của mô hình Dưới đây là chi tiết về hàm mục tiêu và cách sử dụng nó trong RNN Hàm mục tiêu là một hàm số được tối ưu hóa trong quá trình huấn luyện Mục tiêu là giảm thiểu giá trị của hàm này, giúp mô hình dự đoán mang tính chính xác hơn

Khi RNN được sử dụng cho các bài toán hồi quy, đầu ra là các giá trị liên tục Hàm mục tiêu phổ biến nhất trong trường hợp này là Mean Squared Error:

- 𝑦 𝑖 : là giá trị thực tế của mẫu thứ 𝑖

- 𝑦̂ 𝑖 : là giá trị dự đoán của mẫu thứ 𝑖

Khi RNN được sử dụng cho các bài toán phân loại, đầu ra là các nhãn phân loại Hàm mục tiêu phổ biến nhất trong trường hợp này là Cross-Entropy Loss a Đối với phân loại nhị phân

(2.10) b Đối với phân loại đa lớp

- 𝑦 𝑖,𝑐 : là nhãn thực tế của lớp 𝑐 cho mẫu thứ 𝑖

- 𝑦̂ 𝑖,𝑐 : là xác suất dự đoán của lớp 𝑐 cho mẫu thứ 𝑖

2.2.3.3 Tính toán hàm mục tiêu trong RNN

Trong quá trình huấn luyện RNN hàm mục tiêu sẽ được tính toán sau khi mạng đã xử lý toàn bộ chuỗi đầu vào Các bước cụ thể: a Truyền xuôi (Forward Propagation)

- Tại mỗi bước thời gian 𝑡, tính toán trạng thái ẩn ℎ 𝑡 và đầu ra 𝑦 𝑡

- Sau khi xử lý toàn bộ chuỗi thu được các đầu ra dự đoán 𝑦̂ 𝑡 cho từng bước thời gian b Tính toán hàm mục tiêu: Sử dụng các đầu ra dự đoán 𝑦̂ 𝑡 và giá trị thực tế 𝑦 𝑡 , tính toán giá trị hàm mục tiêu Ví dụ như:

- Với MSE cho bài toán hồi quy:

- Với Cross-Entropy cho bài toán phân loại:

(2.13) c Truyền ngược (Backpropagation Through Time – BPTT):

- Tính toán gradient của hàm mục tiêu đối với các tham số của mô hình (trọng số và bias)

- Sử dụng các gradient này để cập nhật các tham số theo thuật toán tối ưu (như Gradient Descent, Adam)

Các tham số của mô hình (trọng số và bias) được cập nhật dựa trên gradient của hàm mục tiêu Quá trình này giúp mô hình học từ dữ liệu và cải thiện hiệu suất dự đoán:

- 𝜃: là tham số của mô hình (trọng số và bias)

- 𝜂: là tốc độ học (learning rate)

𝜕𝜃 : là gradient của hàm mục tiêu đối với tham số 𝜃

Tóm lại, hàm mục tiêu là một phần quan trọng trong quá trình huấn luyện RNN, giúp đo lường hiệu suất của mô hình và hướng dẫn việc cập nhật các tham số để cải thiện dự đoán Tùy thuộc vào bài toán cụ thể (hồi quy hoặc phân loại), các hàm mục tiêu khác nhau như Mean Squared Error hoặc Cross-Entropy Loss sẽ được sử dụng Quá trình tính toán và tối ưu hóa hàm mục tiêu giúp RNN học từ dữ liệu và nâng cao hiệu suất của mô hình

2.2.4 Phân loại bài toán RNN

RNN cho phép làm việc với các chuỗi có độ dài thay đổi cho cả đầu vào cũng như đầu ra Dưới đây sẽ minh họa các trường hợp phân loại dạng toán RNN [20]:

Hình 2.6 Các dạng bài toán RNN Ở đây, RNN được kí hiệu màu xanh lá cây, màu đỏ biểu thị đầu vào và đầu ra màu xanh lam Chi tiết các trường hợp phân loại dạng toán RNN:

One to one: bài toán cho CNN và NN bao gồm 1 đầu vào và 1 đầu ra

- Ví dụ: CNN đầu vào là hình ảnh và output còn lại là ảnh được segment

One to many: bài toán có 1 đầu vào nhưng nhiều đầu ra

- Ví dụ: bài toán viết tiêu đề cho bức tranh, đầu vào là một bức tranh nhưng đầu vào là một câu (gồm nhiều kí tự chữ để diễn tả nội dung của bức tranh đó)

Many to one: bài toán nhiều đầu vào nhưng chỉ có 1 đầu ra

- Ví dụ: bài toán nhận diện tư thế tập thể thao, với đầu vào là nhiều ảnh được cắt từ video còn đầu ra là tên tư thế được phân loại

Many to many: bài toán có nhiều đầu vào và nhiều đầu ra

Mô hình máy học LSTM

Mạng LSTM thuộc loại kiến trúc mạng nơ-ron đặc biệt trong lĩnh vực học sâu (deep learning), sử dụng phổ biến về xử lý dữ liệu chuỗi (sequence data) như ngôn ngữ tự nhiên, âm thanh,…[16] Hoạt động rất hiệu quả trên nhiều loại vấn đề khác nhau và hiện nay sử dụng một cách rộng rãi [17]

Các mạng nơ-ron tiêu chuẩn có khả năng học, nhớ thông tin từ quá khứ, nhưng gặp khó khăn về việc xử lý những thông tin từ xa LSTM ra đời nhằm giải quyết vấn đề này bằng cách dùng các “cổng” (gates) để kiểm soát việc thông tin được lưu trữ và truyền qua các đơn vị (units) trong mạng

Tất cả các mạng nơ-ron hồi quy đều có dạng là một chuỗi các module lặp lại của mạng nơ-ron Trong những RNN tiêu chuẩn, module lặp lại này sẽ có cấu trúc đơn giản, chẳng hạn như một lớp 𝑡𝑎𝑛ℎ

Hình 2.7 Module lặp lại trong một RNN chứa một lớp duy nhất

LSTM cũng có cấu trúc chuỗi như vậy nhưng module lặp lại có cấu trúc khác Chúng có bốn lớp và tương tác với nhau theo một cách rất đặc biệt thay vì như một lớp đơn lẻ

Hình 2.8 Module lặp lại trong một LSTM chứa bốn lớp tương tác với nhau

Sơ đồ trên mỗi dòng sẽ mang toàn bộ một vector, từ đầu ra của một nút đến đầu vào của các nút khác Các phép toán theo từng điểm, như phép cộng vector, được thể hiện bằng các vòng tròn màu hồng, trong khi các lớp mạng nơ-ron được học được biểu diễn bằng các ô màu vàng Các đường màu đen hợp lại biểu thị sự nối ghép, trong khi các đường màu đen tách ra biểu thị nội dung của chúng được sao chép và các bản sao được gửi đến các vị trí khác nhau

2.3.3 Quy trình thực hiện của LSTM

Một trong các yếu tố then chốt của LSTM là trạng thái ô nhớ, được biểu diễn bằng đường nằm ngang chạy dọc phía trên của sơ đồ hình 2.9 dưới đây:

Hình 2.9 Trạng thái ô nhớ (cell state) trong LSTM

Trạng thái ô nhớ có thể được ví như một băng chuyền được chạy liên tục suốt chuỗi với chỉ một số tương đối nhỏ Cho phép thông tin dễ dàng lưu chuyển ngang theo đó mà không bị đổi

LSTM có vai trò kiểm soát lượng thông tin được lưu giữ trong trạng thái ô nhớ, thông qua việc sử dụng các cấu trúc được gọi là gate (cổng) Những cổng này cho phép chọn lọc thông tin được phép đi qua, bằng cách kết hợp một lớp mạng nơ-ron sigmoid và một phép nhân theo từng điểm

Hình 2.10 Cổng trạng thái ô nhớ trong LSTM

Lớp sigmoid có giá trị dao động từ 0 đến 1, cho biết mức độ mà từng thành phần nên được phép đi qua Giá trị 0 nghĩa là “không cho phép đi qua”, trong khi giá trị 1 có nghĩa là “cho phép bất kì thứ gì đi qua” Một LSTM sử dụng ba cổng như vậy để bảo vệ nhằm kiểm soát trạng thái ô nhớ

Quá trình cụ thể được thể hiện như sau: Đầu tiên LSTM sẽ quyết định các thông tin trong trạng thái ô nhớ sẽ bị loại bỏ Điều đó được thực hiện bởi 1 lớp sigmoid “lớp cổng quên” Lớp này nhận đầu vào chính là ℎ 𝑡 (trạng thái ẩn trước đó) và 𝑥 𝑡 (đầu vào hiện tại), sau đó tạo ra các giá trị từ 0 đến 1 cho mỗi thành phần trong trạng thái ô nhớ 𝐶 𝑡−1 (trạng thái ô nhớ trước đó) Giá trị 1 nghĩa là “giữ lại hoàn toàn”, còn giá trị 0 nghĩa là “loại bỏ hoàn toàn”

Hình 2.11 Bước quyết định thông tin trong ô nhớ sẽ bị loại bỏ

Tiếp đến, bước quan trọng tiếp theo trong LSTM là quyết định thông tin mới nào sẽ được lưu trữ trong ô nhớ Điều này bao gồm hai phần:

- Lớp sigmoid là “lớp cổng đầu vào” sẽ có vai trò nhận định giá trị nào cần được cập nhật

- Lớp 𝑡𝑎𝑛ℎ tạo ra 1 vector các giá trị ứng cử viên mới, ký hiệu là 𝐶̃ 𝑡 , có thể được thêm vào trạng thái

Hình 2.12 Bước quyết định thông tin được lưu trữ trong trạng thái ô nhớ

Bước tiếp theo lớp sigmoid và lớp 𝑡𝑎𝑛ℎ sẽ được kết hợp để tạo ra bản cập nhật cho trạng thái ô nhớ

Hình 2.13 Bước cập nhật vào trạng thái ô nhớ

Bước cuối cùng để quyết định những gì sẽ được đưa ra làm đầu ra thực hiện các bước sau:

- Chạy một lớp sigmoid nhằm xác định những phần trạng thái ô nhớ mà muốn đưa ra làm đầu ra

- Đưa trạng thái ô nhớ qua hàm 𝑡𝑎𝑛ℎ để đẩy các giá trị vào khoảng từ -1 đến 1

- Nhân kết quả từ bước 2 với đầu ra của cổng sigmoid từ bước 1, để chỉ đưa ra những phần đã chọn

Hình 2.14 Bước quyết định đầu ra ô nhớ

Qua các bước này, mạng LSTM có khả năng tạo ra đầu ra dựa trên trạng thái ô nhớ, trong đó chỉ những thông tin quan trọng được chọn lọc để đưa ra

Các biến thể của LSTM: Những phân tích trên là phiên bản LSTM thông thường Tuy nhiên, không phải tất cả các LSTM đều giống cấu trúc như vậy Trên thực tế mọi bài toán liên quan đến LSTM đều sử dụng một phiên bản khác nhau mặc dù những khác biệt này nhỏ nhưng nói lên sự đa dạng của LSTM

Một phiên bản LSTM phổ biến là việc thêm “kết nối peephole” (kết nối qua cửa sổ) Điều này cho phép các lớp cổng nhìn trực tiếp vào trạng thái của cell Bằng cách này, LSTM có khả năng tương tác trực tiếp với trạng thái nội bộ, giúp cải thiện khả năng nhớ và tập trung của mô hình

Hình 2.15 Biến thể LSTM khi có thêm kết nối peephole

Hình 2.15 được thể hiện ở trên đã thêm kết nối peephole cho tất cả các cổng, nhưng trong nhiều bài toán chỉ một số kết nối peephole được sử dụng và không sử dụng các kết nối khác

Một biến thể khác là sử dụng các cổng forget và input kết hợp

Hình 2.16 Biến thể LSTM khi cổng forget và input kết hợp

Thay vì đưa ra quyết định riêng biệt về việc gì cần quên và việc gì cần thêm thông tin mới, biến thể này nhằm thực hiện những quyết định này cùng nhau Chỉ quên một phần thông tin khi đang thêm vào một giá trị mới Thêm giá trị mới vào trạng thái khi quên đi một phần thông tin cũ Bằng cách này, quá trình quên và thêm thông tin mới được liên kết với nhau và tạo ra một cách hoạt động đồng bộ hơn trong mô hình LSTM

Thuật toán LBP

2.4.1 Giới thiệu về thuật toán LBP

Thuật toán LBP (Local Binary Patterns) là một thuật toán phi tham số sử dụng trong nhận dạng khuôn mặt mô tả các đặc trưng cục bộ của mối quan hệ xám giữa những điểm ảnh đặc trưng trên khuôn mặt và mỗi điểm ảnh trong hình ảnh

Nó cũng là một phương pháp tốt để mô tả kết cấu [22],[23]

Kết cấu là một đặc điểm tự nhiên của bề mặt đối tượng và nó mô tả phân phối không gian mức xám giữa các điểm ảnh và các vùng ảnh Kết cấu không thay đổi khi có sự thay đổi về ánh sáng Vì do các đối tượng trong thực tế thường có đặc điểm không đồng nhất và có các hướng và mức độ gồ ghề khác nhau, các đặc điểm ngẫu nhiên của kết cấu trở nên quan trọng [23] LBP là một mô tả kết cấu có thể được sử dụng để biểu diễn khuôn mặt, vì một hình ảnh khuôn mặt có thể được coi là sự kết hợp nhiều yếu tố kết cấu khác nhau Tóm lại quy trình bao gồm việc chia một hình ảnh khuôn mặt thành nhiều vùng, trong đó các đặc trưng LBP được trích xuất và được ghép thành một vector đặc trưng sẽ được sử dụng sau này làm mô tả khuôn mặt [22] Để xử lý các kết cấu ở tỷ lệ khác nhau, toán tử LBP đã được mở rộng để sử dụng các vùng lân cận có kích thước khác nhau Bằng cách sử dụng các vùng lân cận tròn và tuyến tính của giá trị điểm ảnh có thể xử lý với bất kỳ bán kính và số lượng mẫu trong vùng lân cận nào Do đó, chúng ta sử dụng ký hiệu (P, R) để biểu thị (P) điểm mẫu trên một vòng tròn có bán kính (R) Dưới đây là một số ví dụ về các điểm mẫu và bán kính khác nhau để minh họa [22]:

Hình 2.23 Ví dụ về điểm lấy mẫu và bán kính khác nhau của LBP

Hình ảnh ví dụ trên, điểm ảnh trung tâm được đánh dấu bằng một vòng tròn trống, trong khi các điểm lấy mẫu được chỉ ra bằng các vòng tròn đậm Các cấu hình này minh họa cách LBP có thể được điều chỉnh để phân tích kết cấu trong xử lý hình ảnh bằng cách thay đổi số lượng mẫu và khoảng cách từ điểm ảnh trung tâm Trong trường hợp toán tử LBP ranh giới tới một giới hạn thì sẽ được xác định bởi bán kính R của thao tác vòng tròn Thao tác được bắt đầu ở pixel hình ảnh (R, R) Ưu điểm là biểu đồ nhãn LBP cuối cùng sẽ không bị ảnh hưởng bởi đường viền, mặc dù kích thước hình ảnh nhãn LBP thu được sẽ giảm xuống (Width-R)x(Height-R) pixel [22]

2.4.2 LBP áp dụng phát hiện khuôn mặt

LBP ứng dụng trong việc phát hiện khuôn mặt, cũng như trong việc biểu diễn khuôn mặt trong hệ thống phát hiện khuôn mặt Hình 2.24 dưới đây giới thiệu các bước phát hiện khuôn mặt bao gồm:

Hình 2.24 Sơ đồ quy trình phát hiện gương mặt

Giai đoạn huấn luyện (Input Training Images): các mẫu huấn luyện khuôn mặt và không phải khuôn mặt được đưa vào hệ thống, và vector đặc trưng cho giai đoạn thô và giai đoạn tinh chỉnh được tính toán song song và sau đó ghép

34 lại thành một vector đặc trưng duy nhất gồm 203 bin để mô tả mỗi mẫu hình ảnh khuôn mặt và không phải khuôn mặt Sau đó, tất cả các kết quả này sẽ được sử dụng để tạo ra mô hình giá trị trung bình cho mỗi lớp

Giai đoạn kiểm tra (Input Test Image): đối với mỗi hình ảnh kiểm tra mới, tiền xử lý phân đoạn da được áp dụng trước tiên để cải thiện hiệu suất phát hiện khuôn mặt Sau đó, kết quả sẽ được đưa vào giai đoạn phân loại thô và chỉ các khuôn mặt mới đi qua giai đoạn phân loại tinh chỉnh Chỉ những hình ảnh kiểm tra với kết quả tốt ở cả hai giai đoạn này sẽ được phân loại là khuôn mặt

Hình 2.25 tiếp theo cho thấy kết quả của việc áp dụng các mẫu nhị phân cục bộ ở giai đoạn thô thứ 1 và giai đoạn tinh chỉnh thứ 2 Trong hình ảnh kết quả (a), (b) và (c), có thể thấy rõ lý do tại sao LBP được gọi là bộ mô tả kết cấu [22]

Hình 2.25 Ví dụ về ghi nhãn hình ảnh

Như được thể hiện trong Hình 2.25 các đường viền của các đặc trưng khuôn mặt (mắt, miệng, mũi, cằm, lông mày ) được nhấn mạnh rõ ràng Trong hình ảnh được gán nhãn giai đoạn 1, các đường viền được nhấn mạnh mạnh mẽ, mang lại cái nhìn tổng quát về khuôn mặt của hình ảnh để phân biệt các hình ảnh không phải khuôn mặt trong giai đoạn đầu tiên Ngược lại, trong hình ảnh được gán nhãn giai đoạn 2, thông tin kết cấu cục bộ được chi tiết hơn đóng góp cho quyết định giai đoạn cuối cùng khuôn mặt của hình ảnh được đánh giá cục bộ [22]

2.4.3 LBP áp dụng nhận diện khuôn mặt

LBP không chỉ phân biệt hiệu quả cho các tình huống phát hiện khuôn mặt, mà còn cho nhiệm vụ nhận dạng khuôn mặt Công việc này không chỉ tìm hiểu phương pháp phát hiện khuôn mặt mà còn phương pháp nhận dạng khuôn mặt [23]

Sau khi thực hiện trích xuất LBP, việc triển khai nhận dạng gương mặt dựa trên các phương pháp khác nhau sẽ giải quyết các vấn đề Hình 2.26 dưới đây sẽ thể hiện quy trình nhận dạng khuôn mặt [22]:

Hình 2.26 Sơ đồ quy trình nhận diện gương mặt

Phương pháp nhận dạng khuôn mặt dựa trên LBP bao gồm việc trích xuất lịch sử đặc trưng LBP từ toàn bộ khuôn mặt (59-bin histogram), chia ảnh khuôn mặt thành các khối 7x7 và kết hợp lịch sử các khối vào một vector duy nhất (7x7 khối x 59 bin/khối = 2891 đặc trưng) Những đặc trưng này được tính toán cho mỗi mẫu cá nhân và một mô hình trung bình được tính toán cho mỗi tập hợp ID

Trong bước nhận dạng khuôn mặt với một hình ảnh khuôn mặt đầu vào mới, vector 2891 đặc trưng được trích xuất và so sánh với các mô hình có sẵn bằng việc sử dụng một phương pháp đo không tương đồng Khuôn mặt đầu vào sẽ được xác định với khoảng cách mô hình ID tối thiểu

Giai đoạn huấn luyện (Input Training Images): các mẫu khuôn mặt đầu vào được đưa vào khối tiền xử lý cùng với một tệp tọa độ khuôn mặt và một nhãn

ID để cắt khuôn mặt từ hình ảnh đầu vào và điều chỉnh kích thước của chúng,

36 nếu cần thiết Sau đó vector đặc trưng nâng cao 𝐿𝐵𝑃 (8,2) 𝑢2 được trích xuất và sử dụng để cung cấp cho khối huấn luyện Đầu ra một mô hình giá trị trung bình cho mỗi

ID trong cơ sở dữ liệu huấn luyện

THIẾT KẾ HỆ THỐNG CAMERA ỨNG DỤNG TRONG NHÀ THÔNG MINH

Yêu cầu hệ thống

- Nhận diện hành vi con người: Hệ thống sử dụng mô hình học máy đã được huấn luyện để nhận diện các hành vi như ngồi, vỗ tay, nằm, vẫy tay và không làm gì Sử dụng thư viện MediaPipe để phát hiện và theo dõi các điểm trên cơ thể con người (pose estimation) OpenCV để xử lý hình ảnh và vẽ các điểm phát hiện lên hình ảnh

- Đếm số lần vỗ tay: Đếm số lần vỗ tay của người dùng và thực hiện các hành động tương ứng như thay đổi màu sắc của đèn led

- Nhận diện khuôn mặt: Sử dụng OpenCV và mô hình nhận diện khuôn mặt (LBPH) để nhận diện khuôn mặt của người dùng Nếu phát hiện khuôn mặt không xác định, hệ thống sẽ kích hoạt còi báo động sau 2 giây

- Gửi thông báo qua Telegram: Gửi thông báo qua Telegram khi phát hiện các hành vi nhất định như vẫy tay hoặc khi có khuôn mặt không xác định xuất hiện

- Điều khiển thiết bị thông qua Arduino: Hệ thống sẽ điều khiển đèn LED và còi báo động thông qua Arduino dựa trên các hành vi được phát hiện và nhận diện khuôn mặt.

Thiết kế phần cứng

Hệ thống camera ứng dụng trong nhà thông minh nhằm tương tác và giám sát hành vi con người được thiết kế nhằm đáp ứng các yêu cầu kỹ thuật cao và đảm bảo hiệu suất hoạt động Hệ thống này sử dụng các thành phần phần cứng chủ chốt, mỗi thành phần đóng một vai trò quan trọng trong việc đảm bảo sự hoạt động hiệu quả và đáng tin cậy Các thành phần phần cứng của hệ thống được tối ưu hóa để đáp ứng những yêu cầu về xử lý và tính toán trong thời gian thực Điều này đảm bảo rằng hệ thống có khả năng xử lý và phân tích dữ liệu từ các camera một cách nhanh chóng và chính xác Điểm đáng chú ý khác trong thiết kế hệ thống này là khả năng tương tác giữa người dùng và camera thông minh Hệ thống được trang bị công nghệ nhận diện và theo dõi hành vi con người, cho phép tương tác theo

39 thời gian thực và phản hồi tức thì Điều này mang lại khả năng theo dõi, kiểm soát tốt trong các lĩnh vực như nhà thông minh, an ninh, quản lý nhân viên, và giám sát môi trường công cộng Sơ đồ khối của hệ được thể hiện trong hình 3.1

Hình 3.1 Sơ đồ khối hệ thống camera ứng dụng trong nhà thông minh Đầu tiên, hệ thống sử dụng một webcam như Rapoo C260 Full HD, với độ phân giải 1080p, tốc độ khung hình tối đa 30 fps và góc nhìn rộng 95 độ Webcam này có thể tự động điều chỉnh nét và tốc độ khung hình, độ phân giải theo môi trường xung quanh, cung cấp chi tiết rõ ràng và tinh tế ngay cả trong môi trường ánh sáng thấp Webcam này được kết nối với một máy tính (laptop) có cấu hình gồm CPU Intel Core i7 10750H, hệ điều hành Windows 11, RAM tối thiểu 8GB, và ổ cứng SSD 512GB Một chip xử lý 6 nhân (hexa-core) với khả năng xử lý đa nhiệm mạnh mẽ Xung nhịp cơ bản của chip là từ 2.6GHz đến 5.0GHz, tùy thuộc vào tình trạng tải công việc và điều chỉnh của hệ thống Máy tính sẽ xử lý hình ảnh và video từ webcam, chạy các mô hình AI để nhận diện hành vi và khuôn mặt, điều khiển các thiết bị thông qua Arduino UNO R3 và gửi thông báo qua Telegram Máy tính cũng được trang bị kết nối Wi-Fi để đảm bảo khả năng kết nối mạng liên tục, tránh bị tình trạng hệ thống không hoạt động đúng theo yêu cầu

Tiếp theo là máy tính sẽ kết nối với Arduino UNO R3 theo phương thức serial Arduino UNO R3 được sử dụng như bộ điều khiển trung tâm để nhận lệnh từ máy tính và điều khiển các thiết bị ngoại vi như đèn led và loa cảnh báo

40 Được trang bị bởi vi điều khiển ATmega328P, một vi điều khiển AVR 8-bit với tốc độ xung nhịp 16 MHz Với bộ nhớ Flash 32 KB, RAM 2 KB và EEPROM

1 KB, Arduino UNO R3 có khả năng lưu trữ và xử lý các chương trình Arduino một cách linh hoạt Arduino UNO R3 hỗ trợ nhiều giao tiếp chuẩn như UART, I2C và SPI, cho phép kết nối và giao tiếp với các thiết bị ngoại vi và cảm biến Với các cổng kết nối đa dạng như cổng USB, cổng nguồn DC, cổng nguồn 5V và 3.3V, cổng Digital I/O và cổng Analog Input, Arduino UNO R3 dễ dàng kết nối và điều khiển các thiết bị khác Điều này mang lại khả năng linh hoạt và sáng tạo cho các dự án điện tử và IoT Arduino UNO R3 hoạt động với một nguồn điện DC từ 7V đến 12V, được cấp nguồn thông qua cổng nguồn DC hoặc qua cổng USB Ngoài ra, để đảm bảo hoạt động liên tục và không bị gián đoạn, hệ thống cũng có thể sử dụng một nguồn điện trực tiếp thông qua sạc của laptop để đảm bảo hiệu suất cho hệ thống

Các thiết bị như đèn led, loa được kết nối trực tiếp Arduino UNO R3

Hệ thống này sử dụng 2 đèn led (led đơn và led chuyển màu) Sử dụng led RGB

KY-016 có thể gọi là mô-đun cảm biến RGB KY-016 là một mô-đun nhỏ gọn được sử dụng để điều khiển đèn RGB (đèn đỏ, xanh và xanh lá cây) trong các dự án điện tử Với 4 chân kết nối và khả năng tạo ra nhiều màu sắc khác nhau, mô-đun này rất phổ biến và linh hoạt trong các ứng dụng nghệ thuật, chiếu sáng và hiển thị màu sắc Mô-đun cảm biến RGB KY-016 bao gồm ba LED màu đỏ (Red), xanh (Green) và xanh lá cây (Blue) được tích hợp sẵn Nó có 4 chân kết nối, bao gồm chân nguồn

(VCC), chân nối đất (GND) và ba chân điều khiển màu sắc (R, G, B) Bằng cách điều chỉnh mức điện áp đầu vào cho các chân R, G và B, ta có thể tạo ra một loạt các màu sắc khác nhau bằng cách kết hợp các mức độ ánh sáng của các đèn LED màu cơ bản này Để sử dụng mô-đun cảm biến RGB KY-016, ta chỉ cần kết nối chân VCC và GND với nguồn điện DC phù hợp Sau đó, ta có thể điều khiển các chân R, G và B bằng cách điều chỉnh mức độ điện áp đầu vào từ mức 0V đến mức tối đa (thường là 5V) Khi kết hợp các chân điều khiển này với các mức độ ánh sáng khác nhau, mô-đun sẽ tạo ra màu sắc tương ứng Tiếp theo là sử dụng đèn led đơn 5mm với điện áp hoạt động 3-3.2V và cường độ sáng 5000 mcd, được sử dụng

41 để hiển thị các trạng thái đơn giản của hệ thống Ngoài ra còn sử dụng một loa (buzzer), đây là một thiết bị âm thanh nhỏ gọn và dễ sử dụng được sử dụng trong các dự án điện tử và IoT Nó được thiết kế để tạo ra âm thanh và tiếng kêu thông qua việc phát ra các tín hiệu âm thanh ngắn và liên tục khi được kích hoạt Mô- đun buzzer Arduino thường có hai chân kết nối, bao gồm chân nguồn (VCC) và chân tiếp địa (GND) Buzzer được điều khiển thông qua một chân điều khiển (Control Pin) của Arduino Khi chân điều khiển được kích hoạt (được đặt ở mức HIGH), mô-đun buzzer sẽ bắt đầu phát ra âm thanh Khi chân điều khiển không được kích hoạt (được đặt ở mức LOW), mô-đun buzzer sẽ không tạo ra âm thanh Mô-đun buzzer Arduino có thể phát ra các âm thanh khác nhau, từ âm thanh đơn giản như tiếng bíp thông báo cho đến các âm thanh phức tạp hơn như tiếng nhạc

Sơ đồ kết nối Arduino UNO R3 với các thiết bị được thể hiện như hình 3.2

Hình 3.2 Sơ đồ kết nối Arduino UNO R3 với thiết bị đèn led và buzzer

Sơ đồ kết nối Arduino UNO R3 trong hình bao gồm các thành phần chính như sau: một buzzer (còi báo), một led, và một cảm biến RGB Để trực quan hơn hình 3.3 dưới đây là sơ đồ nguyên lý Arduino với các thiết bị như led và buzzer

Hình 3.3 Sơ đồ nguyên lý Arduino UNO R3 với thiết bị đèn led và buzzer

Sơ đồ nguyên lý Arduino UNO R3 trong hình bao gồm các thành phần chính như sau: hai đèn LED (D1 là LED màu xanh lục và D2 là một module LED khác) và một loa (buzzer) Các đèn LED được kết nối với các chân số D13, D9, D10, và

D11 trên Arduino, mỗi LED có một điện trở nối tiếp để giới hạn dòng điện Loa được kết nối với chân D8 của Arduino và chân còn lại nối với GND Tất cả các chân âm của LED và còi đều được nối chung với GND của Arduino Sơ đồ này cho phép Arduino điều khiển bật/tắt các đèn LED và phát âm thanh từ loa thông qua lập trình các chân digital trên Arduino, phù hợp cho nhiều ứng dụng như báo hiệu, chỉ thị trạng thái, và hệ thống cảnh báo

Sau việc kết nối các thiết bị phần cứng thì quy trình hoạt động của hệ thống bắt đầu với việc camera quay video và truyền dữ liệu đến máy tính Máy tính xử lý dữ liệu, nhận diện hành vi và khuôn mặt, sau đó gửi lệnh đến Arduino để điều khiển LED và loa cảnh báo Hệ thống cũng gửi thông báo qua Telegram về các sự kiện và trạng thái của hệ thống, đảm bảo người dùng luôn được cập nhật Thiết kế này không chỉ đảm bảo tính hiệu quả và chính xác trong việc giám sát và nhận diện hành vi con người mà còn tăng cường khả năng tương tác và điều khiển các thiết bị ngoại vi, mang lại sự an toàn và tiện lợi tối đa cho người sử dụng Sự kết hợp giữa công nghệ AI và các thiết bị phần cứng tiên tiến đã tạo nên một hệ thống camera thông minh với nhiều tính năng vượt trội, đóng góp quan trọng vào sự phát triển của lĩnh vực giám sát và điều khiển thông minh

Thiết kế phần mềm

3.3.1 Quá trình thu thập dữ liệu

Quá trình ước tính tư thế người, liên quan đến việc sử dụng các kỹ thuật thị giác máy tính để xác định và theo dõi các điểm chính của cơ thể người trong ảnh hoặc chuỗi video

Các điểm chính này, thường được biểu thị bằng các hình tròn hoặc khớp, tương ứng với các điểm mốc giải phẫu quan trọng như cổ tay, hông, vai, khuỷu tay, đầu gối và mắt cá chân Bước đầu được thể hiện như sơ đồ khối như sau:

Hình 3.4 Sơ đồ khối quá trình huấn luyện Pipeline

Chi tiết quá trình đào tạo dữ liệu từ sơ đồ khối trên:

Bước 1: Lấy ảnh (Image Acquisition):

Quá trình bắt đầu bằng việc lấy khung hình video chứa người mà chúng ta muốn ước tính tư thế Được thực hiện hành động trước webcam

Bước 2: Tiền xử lý (Preprocessing):

Trước khi xử lý ảnh hoặc khung hình video, nó có thể trải qua các bước tiền xử lý để nâng cao chất lượng và chuẩn bị cho việc phân tích tiếp theo Điều này có thể bao gồm:

- Giảm nhiễu (Noise Reduction): Loại bỏ hoặc giảm nhiễu trong ảnh hoặc video để cải thiện độ rõ nét của các đặc điểm cơ thể

- Cải thiện ảnh (Image Enhancement): Cải thiện độ tương phản, độ sáng hoặc độ sắc nét của ảnh để làm cho các điểm chính của cơ thể nổi bật hơn

- Đổi kích thước (Resizing): Đổi kích thước ảnh hoặc khung hình video thành kích thước chuẩn để đảm bảo xử lý thống nhất

Bước 3: Phát hiện người (Body Detection):

Bước tiếp theo liên quan đến việc phát hiện sự hiện diện của cơ thể người trong ảnh hoặc khung hình video Điều này thường được thực hiện bằng cách sử dụng các thuật toán phát hiện đối tượng có thể xác định và định vị vị trí của người trong khung cảnh

Bước 4: Phát hiện điểm chính (Keypoint Detection):

Khi phát hiện ra cơ thể người, các điểm chính của tư thế người được xác định và định vị

Bước 5: Biểu diễn tư thế (Pose Representation):

Các vị trí điểm chính được tinh chỉnh sau đó được kết hợp để tạo thành biểu diễn tư thế của người Biểu diễn này có thể được lưu trữ ở các định dạng khác nhau, chẳng hạn như danh sách tọa độ điểm chính hoặc biểu diễn dạng khung xương

Bước 6: Phân tích tư thế và ứng dụng (Pose Analysis and Applications):

- Nhận dạng hành động (Action Recognition): Xác định và phân loại các hành động được thực hiện bởi người đó, chẳng hạn như đi bộ, chạy, vẫy tay hoặc nhảy múa

- Nhận dạng cử chỉ (Gesture Recognition): Nhận dạng và diễn giải các cử chỉ bằng tay hoặc chuyển động cơ thể để truyền đạt các ý nghĩa hoặc mệnh lệnh cụ thể

Bước 8: Lưu thông số, tạo dữ liệu và train model

Lưu đồ thuật toán quá trình tạo dữ liệu được thể hiện như sau:

Hình 3.5 Lưu đồ thuật toán quá trình huấn luyện ước tính tư thế người

Mô tả quá trình huấn luyện ước tính tư thế người:

- Thu thập dữ liệu hành động: Các hành động được thực hiện trước webcam và ảnh từ webcam được thu thập Sử dụng thư viện pose estimate để xác định các điểm trên Skeleton từ ảnh

- Đọc dữ liệu từ file CSV: Đọc dữ liệu từ các file CSV chứa thông tin về các điểm trên Skeleton của từng hành động: "SIT.txt", "CLAP.txt", "LIE.txt",

"WAVE.txt" và "DONOTHING.txt"

- Tiền xử lý dữ liệu: Tạo các mảng đầu vào X và nhãn y từ dữ liệu đọc được Chia dữ liệu thành các cửa sổ thời gian (timesteps) để làm đầu vào cho mô hình LSTM Chia dữ liệu thành tập huấn luyện và kiểm tra: Chia dữ liệu X và y thành tập huấn luyện và tập kiểm tra sử dụng train_test_split với tỷ lệ 80/20

- Tạo mô hình LSTM: Tạo mô hình LSTM với các lớp LSTM và Dropout để tránh overfitting Sử dụng hàm kích hoạt softmax cho lớp đầu ra để phân loại nhiều lớp

- Huấn luyện mô hình: Biên dịch mô hình với optimizer adam, hàm mất mát sparse_categorical_crossentropy, và độ chính xác accuracy Huấn luyện mô hình với tập huấn luyện trong 50 epochs và batch size là 32, đồng thời đánh giá trên tập kiểm tra

- Lưu mô hình đã huấn luyện: Lưu mô hình đã huấn luyện vào file

Giả sử người dùng vẫy tay trước webcam Webcam sẽ chụp ảnh người dùng và chuyển đổi ảnh thành dữ liệu kỹ thuật số Thư viện pose estimate sau đó sẽ được sử dụng để nhận diện các điểm trên skeleton của người dùng trong ảnh Các điểm này sau đó được đưa qua một model học máy để nhận diện tư thế của người dùng Model này sẽ xác định rằng người dùng đang vẫy tay và hiển thị kết quả lên màn hình Quá trình này được thể hiện như sơ đồ khối sau:

Hình 3.6 Sơ đồ khối quá trình Inference Pipeline

Chi tiết cụ thể từng bước cho quá trình Interence Pipeline:

- Webcam, ánh sáng: Sử dụng webcam có độ phân giải cao và chất lượng hình ảnh tốt để đảm bảo ảnh chụp rõ ràng và chi tiết Đảm bảo môi trường có ánh sáng đầy đủ và đồng đều để webcam có thể thu được hình ảnh chính xác

KẾT QUẢ

Kết quả thực hiện mô hình trên phần mềm

Dữ liệu được hiển thị trong hình ảnh là các điểm dữ liệu 3D Mỗi điểm dữ liệu có ba giá trị tọa độ (x, y, z) và một giá trị khả năng hiển thị

Hình 4.1 Kết quả điểm tọa độ x, y, z và tham số visibility nhận diện tư thế

Trong hình ảnh này, chúng ta có một ví dụ về kết quả của quá trình nhận dạng hành động và khuôn mặt Các điểm dữ liệu 3D được biểu diễn trên không gian 3 chiều, mỗi điểm có tọa độ (x, y, z) tương ứng và một giá trị khả năng hiển thị Điều này giúp chúng ta hiểu rõ hơn về cách dữ liệu được biểu diễn và cách mà mô hình nhận diện các đặc điểm cụ thể trên cơ thể hoặc khuôn mặt Quá trình huấn luyện được thể hiện như hình dưới đây:

Hình 4.2 Huấn luyện dữ liệu thành công với cử động gương mặt và động tác vẫy tay cơ bản

Một kết quả về việc huấn luyện các mô hình thành công với dữ liệu cử động gương mặt và động tác vẫy tay cơ bản Quá trình này đòi hỏi sự tập trung và công phu để thu thập và xử lý dữ liệu, cũng như điều chỉnh các tham số của mô hình để đảm bảo hiệu suất tốt nhất Vì thế, kết quả thu được trong hình này thể hiện sự thành công của quá trình huấn luyện, mô hình có khả năng nhận dạng, phân loại các hành động một cách chính xác

Quá trình thực hiện tốn nhiều thời gian với một hành động khi càng tăng khung hình nhận, sau khi nhận diện được hệ thống sẽ trích xuất file các thông số được trích xuất với 33 điểm nút trên bộ xương

Hình 4.3 File cơ sở liệu được trích xuất 33 điểm nút trên bộ khung xương

Trong trường hợp này, các thông số bao gồm tọa độ của 33 điểm nút trên bộ xương của người trong hình ảnh Quá trình này đảm bảo rằng chúng ta có dữ liệu chi tiết và đầy đủ về vị trí và cử động của người, từ đó tạo ra một bản mô tả chính xác về hành động và vị trí của họ trong không gian 3D.

Kết quả thực tế

Ngoài kết quả mô hình được thu thập và huấn luyện dữ liệu, Hình 4.4 là mô hình thực tế của Arduino điều khiển thiết bị:

Hình 4.4 Hình ảnh đóng gói của mô hình Arduino điều khiển thiết bị

Mô hình này được giao tiếp bằng cổng COM thông qua Arduino, thể hiện

3 chức năng điều khiển (từ phải sang trái): điều khiển led sáng theo màu bằng cách vỗ tay, buzzer báo động khi có gương mặt lạ và điều khiển chớp/tắt led thông qua cử chỉ vẫy tay

Các kết quả hành động như: DONOTHING, WAVE, CLAP, SIT, LIE và chức năng nhận diện khuôn mặt được thể hiện qua 6 hình dưới đây:

Hình 4.5 Kết quả nhận diện gương mặt đã biết và trạng thái donothing

Hình 4.6 Kết quả nhận diện gương mặt đã biết và trạng thái wave

Hình 4.7 Kết quả nhận diện gương mặt đã biết và trạng thái clap

Hình 4.8 Kết quả nhận diện gương mặt đã biết và trạng thái sit

Hình 4.9 Kết quả nhận diện gương mặt đã biết và trạng thái lie

Hình 4.10 Kết quả nhận diện gương mặt lạ và trạng thái donothing

Các kết quả về nhận diện hành động và khuôn mặt trong chương trình này được minh họa và trình bày thông qua một loạt các hình ảnh, cho phép ta có cái nhìn tổng thể về khả năng của mô hình Các hành động được nhận diện bao gồm

“DONOTHING” (không làm gì), “WAVE” (vẫy tay), “CLAP” (vỗ tay), “SIT” (ngồi) và “LIE” (nằm) Mỗi hành động được đánh dấu bằng một nhãn tương ứng Hình ảnh minh họa cho việc nhận diện hành động cho thấy mô hình có khả năng nhận diện đúng hành động tương ứng Ví dụ, trong hình ảnh về hành động

“WAVE”, mô hình đã xác định chính xác rằng người đang vẫy tay Tương tự, trong hình ảnh về hành động “CLAP”, mô hình đã nhận ra rằng người đang vỗ tay Những kết quả này cho biết tính chính xác, độ tin cậy của mô hình trong việc phân loại những hành động

Ngoài việc nhận diện hành động, chương trình cũng thực hiện nhận diện khuôn mặt Các hình ảnh minh họa cho việc nhận diện khuôn mặt cho thấy mô hình có khả năng xác định và phân loại danh tính của người trong khung hình Ví dụ, trong hình ảnh về nhận diện khuôn mặt, mô hình đã đúng định danh được người là “Thien” và hiển thị “Unknown” khi nhận diện gương mặt lạ Điều này cho thấy khả năng chính xác và đáng tin cậy của mô hình trong việc nhận diện khuôn mặt Qua việc xem xét các hình ảnh minh họa có thể thấy rõ tính toàn diện và chính xác mô hình trong việc nhận diện, phân loại các hành động và khuôn mặt Chính điều

64 này đã có một vai trò trong việc đảm bảo hiệu suất và chất lượng của ứng dụng, đồng thời tăng cường sự tin cậy và đáng tin cậy của hệ thống

Ngoài ra hệ thống còn sử dụng Flask để chạy trên web, hình dưới dây sẽ cho thấy giao diện cơ bản của ứng dụng:

Hình 4.11 Kết quả thực tế mô hình chạy trên ứng dụng web

Giao diện web trong ứng dụng Flask có thể được xây dựng bằng việc sử dụng các ngôn ngữ như HTML, CSS và JavaScript Giao diện đơn giản, bao gồm: nút khởi động camera, nút kết thúc quá trình nhận diện và nút các thông tin liên quan về nội dung đề tài và tích hợp API Telegram để gửi thông tin tình trạng của hệ thống

* Bảng kết quả thực tế về độ chính xác khi nhận diện:

Bảng 4.1 Độ chính xác qua các lần thử hành động Hành động Số lần thử Độ chính xác Tỷ lệ

65 Điều kiện: Môi trường ánh sáng vừa đủ (không quá sáng hoặc quá tối), góc nhìn vừa khung hình của camera (95 độ), cách khoảng 3-4m

Nhận xét: Nhìn chung độ chính xác của mô hình đạt mức tốt với các hành động

DONOTHING, SIT và LIE (trên 80%)

- Hai hành động WAVE và CLAP có độ chính xác thấp hơn (75% và 62.5% tương ứng)

- Có thể do dữ liệu tập luyện cho hai hành động này ít hơn hoặc các cử chỉ thực hiện chưa đủ rõ ràng

Bảng 4.2 Độ chính xác qua các lần thử nhận diện gương mặt

Tên người nhận diện Số lần thử Độ chính xác Tỷ lệ

Unknown 25 20/25 80% Điều kiện: Môi trường ánh sáng vừa đủ (không quá sáng hoặc quá tối), góc nhìn trực diện vào camera, cách khoảng 1-2m

Nhận xét: Nhìn chung độ chính xác của mô hình nhận diện gương mặt đạt mức cao với các đối tượng Lisa và Thien (trên 80%)

- Ba đối tượng Rosé, Tran Thanh và Truong Giang có độ chính xác thấp hơn (từ 68% đến 76%)

- Có thể do dữ liệu tập luyện cho ba đối tượng này ít hơn hoặc hình ảnh chất lượng thấp hơn

- Riêng trường hợp Unknown (80%) độ chính xác càng cao khi số lượng tập dữ liệu khuôn mặt khác nhau càng nhiều, ở các lần thử này có vài trường hợp gương mặt Unknown lại nhận diện gương mặt đã được đào tạo từ tập dữ liệu Do gương mặt có vài nét tương đồng nên hệ thống có thể bị mắc lỗi trong việc nhận

66 diện Vì thế số lượng đào tạo dữ liệu gương mặt rất quan trọng để nhận diện đúng khuôn mặt

Ngoài việc thể hiện thông tin trên màn hình máy tính, hệ thống còn thông báo thông tin về hoạt động của con người và trạng thái của các thiết bị thông qua tin nhắn Telegram, dưới đây sẽ là kết quả của quá trình gửi thông tin thông qua API Telegram:

Hình 4.12 Telegram cập nhật thông tin phát hiện cử động và trạng thái các thiết bị

Chức năng nhận thông báo về các sự kiện bất thường, người dùng sử dụng Telegram nhằm theo dõi tình trạng hoạt động của hệ thống camera thông minh từ xa Thông qua tin nhắn Telegram, người dùng có thể nắm được các thông tin:

- Trạng thái của đèn LED (bật/tắt)

- Màu sắc đèn LED hiện tại

- Các hành vi con người được camera ghi nhận

Nhờ tính năng theo dõi này, người dùng nắm bắt tình hình hoạt động của hệ thống camera thông minh và điều chỉnh cài đặt nếu cần thiết Telegram có thể được sử dụng như kênh giao tiếp để người dùng tương tác với hệ thống camera thông minh Tính năng tương tác này giúp người dùng dễ dàng điều khiển hệ thống camera thông minh từ xa mà không cần phải truy cập trực tiếp vào giao diện quản trị

Ngày đăng: 22/11/2024, 09:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w