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

ĐỒ án 1 ( kỹ THUẬT điện tử VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2

35 9 0

Đ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 đề Nhận dạng hành động người bằng cảm biến gia tốc
Tác giả Võ Minh Đức, Tống Trần Thái Anh
Người hướng dẫn GVHD: Hà Hoàng Kha
Trường học Đại học Quốc gia TP.Hồ Chí Minh
Chuyên ngành Kỹ thuật điện tử - Viễn thông
Thể loại Đồ án
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 35
Dung lượng 2,82 MB

Cấu trúc

  • 1. GIỚI THIỆU (7)
    • 1.1 Tổng quan (7)
    • 1.2 Nhiệm vụ đề tài (8)
    • 1.3 Phân chia công việc trong nhóm (9)
  • 2. TÌM HIỂU VỀ MPU 6050, NODE MCU VÀ THINGSPEAK (10)
    • 2.1 Cảm biến gia tốc MPU 6050 (10)
    • 2.2 Node MCU (11)
    • 2.3 Thingspeak (14)
  • 3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG (16)
    • 3.1 Yêu cầu thiết kế (16)
    • 3.2 Phân tích thiết kế (16)
  • 4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM (19)
    • 4.1 Gửi dữ liệu lên Thingspeak và tải xuống (19)
    • 4.2 Lấy dữ liệu về từ thingspeak sau đó sử dụng python để dự đoán hành động (22)
  • 5. KẾT QUẢ THỰC HIỆN (29)
  • 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (34)
    • 6.1 Kết luận (34)
    • 6.2 Hướng phát triển (34)
  • 7. TÀI LIỆU THAM KHẢO (35)

Nội dung

GIỚI THIỆU

Tổng quan

Nhận dạng hoạt động người là quá trình giám sát và phân tích hành vi của người dùng cùng với trạng thái môi trường xung quanh, nhằm suy diễn các hoạt động đang diễn ra Mục tiêu chính của nhận dạng hoạt động là cung cấp thông tin về hành vi người dùng, từ đó giúp hệ thống có thể tính toán và chủ động hỗ trợ người dùng trong công việc của họ.

Nhận dạng hoạt động sử dụng cảm biến mang trên người là một phương pháp hiệu quả và tiết kiệm chi phí để thu thập dữ liệu về hoạt động của con người, nhờ vào công nghệ cảm biến tiên tiến Nghiên cứu này đang thu hút sự quan tâm lớn từ cộng đồng khoa học do nhu cầu cấp thiết trong việc nhận diện hoạt động của con người trong môi trường sống hàng ngày Sự phát triển không ngừng của công nghệ cảm biến đã tạo ra các thiết bị mang trên người mạnh mẽ, giá cả phải chăng và có khả năng hoạt động liên tục Với khả năng theo dõi hoạt động từ góc nhìn của người dùng, cảm biến mang trên người giúp các ứng dụng nhận dạng vượt qua những hạn chế của môi trường, biến chúng thành hệ thống hỗ trợ thông minh cho con người mọi lúc, mọi nơi.

Có hai loại hoạt động người chính: hoạt động mức thấp và hoạt động mức cao Hoạt động mức thấp, như đi bộ, ngồi xuống và đứng lên, thường kéo dài chỉ vài giây hoặc phút và được đặc trưng bởi chuyển động cơ thể ngắn gọn Ngược lại, hoạt động mức cao bao gồm một chuỗi các hoạt động mức thấp và diễn ra trong thời gian dài hơn, như đi bộ hoặc chạy bộ Đồ án này tập trung nghiên cứu các hành động như đứng, ngồi, nằm, đi bộ và chạy bộ Dữ liệu sẽ được thu thập bằng cách gắn cảm biến vào cổ chân, sau đó gửi lên web server (ThingSpeak) để quan sát biểu đồ thay đổi của các hành động Cuối cùng, chúng ta sẽ tổng hợp và so sánh dữ liệu thu thập được với một lượng dữ liệu của người bình thường để đánh giá mức độ hoạt động của người đang được phân tích.

Nhiệm vụ đề tài

Đồ án này nhằm nghiên cứu và đề xuất các phương pháp học máy để cải thiện hiệu suất của hệ thống nhận dạng hoạt động sử dụng cảm biến đeo trên người Cụ thể, nghiên cứu sẽ phát triển các phương pháp trích xuất đặc trưng mới và hiệu quả cho việc nhận dạng hoạt động, với trọng tâm vào hai mục tiêu chính.

Nghiên cứu này đề xuất một phương pháp trích xuất đặc trưng nhanh chóng cho các ứng dụng nhận dạng hoạt động riêng lẻ, sử dụng cảm biến mang theo người với yêu cầu hoạt động thời gian thực Các hệ thống nhận dạng hoạt động trên thiết bị nhúng, như các hệ thống hỗ trợ người dùng thông minh, cần phương pháp trích xuất đặc trưng có khả năng tính toán nhanh mà vẫn đảm bảo độ chính xác Việc đáp ứng yêu cầu này trong các trường hợp tổng quát là thách thức lớn Phương pháp được đề xuất sẽ giải quyết vấn đề cho một lớp ứng dụng nhận dạng hoạt động cụ thể.

Nghiên cứu này tập trung vào việc phát triển phương pháp trích xuất đặc trưng nhằm cải thiện độ chính xác cho hệ thống nhận dạng nhiều loại hoạt động Một vấn đề phổ biến của các hệ thống nhận dạng là độ chính xác giảm khi số lượng hoạt động cần nhận diện tăng lên Phương pháp được đề xuất sẽ khắc phục hạn chế này, nâng cao hiệu quả của hệ thống.

Mục tiêu của luận án này là nghiên cứu và đề xuất các phương pháp trích xuất đặc trưng mới sử dụng học máy trong các hệ thống nhận dạng hoạt động với cảm biến mang trên người Các phương pháp này sẽ phù hợp cho các thiết bị trợ giúp cá nhân thông minh nhỏ gọn với khả năng xử lý thấp và yêu cầu hoạt động theo thời gian thực, cũng như cho các hệ thống nhận dạng nhiều hoạt động phức tạp Các hoạt động con người được nghiên cứu bao gồm các hoạt động hàng ngày, sản xuất, giải trí và thể thao, tất cả đều là những chuyển động cơ thể có thể được ghi nhận và phân biệt bởi cảm biến.

Nôi dung 1: Tìm hiểu về cảm biến MPU6050, nodeMCU ESP 8266 và Thingspeak

Nội dung 2: Thiết kế và thực hiện phần cứng

Nội dụng 3: Thiết kế và thực hiện phần mềm

Nội dung 4: Thu thập, xử lý dữ liệu

Nội dung 5: Hoàn thiện sản phẩm

Phân chia công việc trong nhóm

Thành viên Công việc Chữ kí

Võ Minh Đức Gửi data lên web server và lấy về máy Tống Trần Thái Anh Machine learning

Họp nhóm 19h00, thứ ba, mỗi tuần

Qui tắc nhóm 1 Tham gia mọi buổi họp nhóm

2 Lắng nghe cẩn thận mọi ý kiến trong nhóm

3 Hoàn thành mọi tiến độ trước deadline

4 Chú trọng vào kết quả.

5 Không gây gổ, bất hòa

TÌM HIỂU VỀ MPU 6050, NODE MCU VÀ THINGSPEAK

Cảm biến gia tốc MPU 6050

MPU-6050 là cảm biến chuyển động tiên tiến do hãng InvenSense sản xuất, nổi bật với khả năng tích hợp 6 trục cảm biến trong một chip duy nhất, mở rộng lên tới 9 trục Đây là một trong những giải pháp cảm biến chuyển động đầu tiên trên thế giới, mang lại hiệu suất cao và độ chính xác trong việc đo lường chuyển động.

MPU-6050, sử dụng công nghệ MotionFusion độc quyền của InvenSense, phù hợp cho các thiết bị di động và tay điều khiển Chip này hoạt động với nguồn cung cấp 3.3V/5V và giao tiếp qua I2C với tốc độ tối đa 400kHz Ngoài ra, MPU-6050 cũng có phiên bản SPI mang tên MPU6000, cho phép tốc độ giao tiếp lên tới 10Mbs.

MPU-6050 tích hợp 6 trục cảm biến bao gồm:

+ Con quay hồi chuyển 3 trục (3-axis MEMS gyroscope)

+ Cảm biến gia tốc 3 chiều (3-axis MEMS accelerometer)

MPU-6050 được trang bị một đơn vị tăng tốc phần cứng gọi là Digital Motion Processor (DSP), chuyên xử lý tín hiệu mà cảm biến thu thập và thực hiện các tính toán cần thiết Tính năng này giúp giảm tải đáng kể cho vi điều khiển, nâng cao tốc độ xử lý và mang lại phản hồi nhanh hơn Điều này tạo nên sự khác biệt nổi bật của MPU-6050 so với các cảm biến gia tốc và gyro khác.

MPU-6050 có khả năng kết hợp với cảm biến từ trường bên ngoài để tạo thành bộ cảm biến 9 góc hoàn chỉnh thông qua giao tiếp I2C Các cảm biến bên trong MPU-6050 sử dụng bộ chuyển đổi tương tự - số 16-bit, cung cấp thông tin chi tiết về góc quay và tọa độ Với độ phân giải 16-bit, mỗi cảm biến có thể tạo ra 65536 giá trị khác nhau, cho phép đo lường chính xác hơn.

+ Có thể lựa chọn + -2/4 / 8 / 16g phạm vi gia tốc

+ Có thể lựa chọn + -250 / 500/1000/2000 độ /s phạm vi con quay hồi chuyển

+ Con quay nhạy cảm của gia tốc tuyến tính 0.1 độ /s, một cải tiến lớn so với con quay hồi chuyển trục tri của các công ty khác.

+ Tiếng ồn thấp trên cả hai kết quả đầu ra, xem thông số kỹ thuật

Tỷ lệ sản lượng dữ liệu đạt tới 1000Hz, mặc dù được thiết kế bằng công nghệ số thấp, vẫn có khả năng vượt qua bộ lọc với tần số góc tối đa là 256Hz.

- Chân giao tiếp của MPU 6050:

+ SCL : Chân SCL trong giao tiếp I2C

+ SDA : Chân SDA trong giao tiếp I2C

+ XDA : Chân dữ liệu (kết nối với cảm biến khác)

+ XCL : Chân xung (kết nối với cảm biến khác)

+ AD0 : Bit0 của địa chỉ I2C

Cảm biến gia tốc MPU 6050 là một thành phần quan trọng trong nhiều dự án và sản phẩm liên quan đến nhận dạng và chuyển động Các ứng dụng cụ thể của MPU 6050 bao gồm chuột máy tính, điều khiển từ xa và thiết bị không người lái, cho thấy tính linh hoạt và khả năng tích hợp của cảm biến này trong công nghệ hiện đại.

Node MCU

Module ESP8266 là một module WiFi nổi bật, được ưa chuộng cho các ứng dụng Internet và WiFi Nó có khả năng truyền nhận dữ liệu với khoảng cách lên tới 100 mét trong môi trường không có vật cản, và có thể đạt đến 400 mét khi sử dụng với anten và router phù hợp.

ESP8266 là một giải pháp hoàn chỉnh cho việc kết nối mạng Wi-Fi, cho phép lưu trữ các ứng dụng và giảm tải các chức năng kết nối Wi-Fi từ bộ xử lý ứng dụng.

ESP8266 có thể hoạt động như một máy chủ hoặc bộ vi xử lý ứng dụng trong thiết bị, cho phép khởi động trực tiếp từ flash ngoài Nó được trang bị bộ nhớ cache tích hợp, giúp cải thiện hiệu suất hệ thống và giảm thiểu yêu cầu về bộ nhớ trong các ứng dụng.

Luân phiên hoạt động như một bộ chuyển đổi wifi, cho phép truy cập internet không dây dễ dàng Nó có thể được tích hợp vào bất kỳ thiết kế vi điều khiển nào thông qua kết nối đơn giản qua giao diện UART hoặc giao diện CPU AHB.

Khả năng lưu trữ và xử lý mạnh mẽ cho phép tích hợp dễ dàng với các bộ cảm biến, vi điều khiển và thiết bị ứng dụng thông qua GPIOs, giúp giảm thiểu chi phí và kích thước PCB Chip có mức độ tích hợp cao, bao gồm anten, bộ chuyển đổi banlun và bộ chuyển đổi quản lý điện năng, mang lại hiệu quả tối ưu cho các ứng dụng.

+ Phiên bản firmware: NodeMCU Lua

+ Chip nạp và giao tiếp UART: CP2102.

+ GPIO tương thích hoàn toàn với firmware Node MCU.

+ Cấp nguồn: 5VDC MicroUSB hoặc Vin.

+ GIPO giao tiếp mức 3.3VDC

+ Tích hợp Led báo trạng thái, nút Reset, Flash.

+ Tương thích hoàn toàn với trình biên dịch Arduino.

+ Tx: Chân Tx của giao thức UART, kêt nối đến chân RX của vi điều khiển

+ Rx: Chân Rx của giao thức UART, kết nối đến chân Tx của vi điều khiển

+ 10 chân GPIO từ D0 – D9, có chức năng PWM, IIC, giao tiếp SPI, 1 – Wire và ADC trên chân A0

- Tính năng của NodeMCU ESP 8266:

+ Wifi 2.4 Ghz, hỗ trợ WPA/WPA2

+ Chuẩn điện áp hoạt động 3.3 V

+ Chuẩn giao tiếp UART với tốc độ Baud lên đến 115200

+ Tích hợp ngăn xếp giao thức TCP/IP

Tích hợp các thành phần như chuyển đổi TR, balun, LNA, bộ khuếch đại công suất và phù hợp với mạng là rất quan trọng Đồng thời, việc tích hợp PLL, bộ quản lý và các đơn vị quản lý điện năng cũng đóng vai trò thiết yếu trong việc tối ưu hóa hiệu suất hệ thống.

+ Công suất đầu ra +19.5 dBm trong chế độ 802.11b

+ Tích hợp cảm biến nhiệt độ

+ Hỗ trợ nhiều loại anten

+ Làm việc như máy chủ có thể kết nối với 5 máy con

Thingspeak

Thingspeak là nền tảng trực quan hóa và phân tích dữ liệu trên đám mây, thuộc sản phẩm Matlab, cho phép xử lý dữ liệu trực tiếp từ đám mây Nền tảng này chủ yếu phục vụ cho các dự án IoT, giúp theo dõi sự thay đổi giá trị cảm biến Để sử dụng Thingspeak, người dùng cần đăng nhập bằng tài khoản Matlab, với phiên bản miễn phí chỉ dành cho người dùng phi thương mại và có một số hạn chế Tuy nhiên, sinh viên và nhân viên của các cơ sở giáo dục có thể truy cập đầy đủ bằng cách sử dụng email của cơ sở mình.

- Các tính năng quan trọng của thingspeak:

+ Các thiết bị có thể dễ dàng định cấu hình và gửi dữ liệu tới Thingspeak bằng cách sử dụng các giao thức truyền thông.

+ Có thể xem dữ liệu trong thời gian thực

+ Nó có thể nhận dữ liệu từ phần mềm của bên thứ ba.

+ Có thể sử dụng với Matlab để phân tích dữ liệu

+ Nó không cần server và phần mềm web để xây dựng prototype hệ thống IoT.

+ Tự động thực hiện các hành động và giao tiếp bằng phần mềm của bên thứ ba

- Cách hoạt động của thingspeak:

Thingspeak là một nền tảng điện toán đám mây cho phép thu thập và hiển thị dữ liệu từ các thiết bị trong mạng Tất cả các thiết bị cần kết nối với cơ sở dữ liệu đám mây để gửi và nhận thông tin, giúp hiển thị luồng dữ liệu một cách hiệu quả.

Để theo dõi nhiệt độ và độ ẩm trong phòng làm việc, bạn cần lắp đặt một bộ điều khiển cùng với các cảm biến và kết nối chúng qua API REST Bộ điều khiển sẽ thu thập dữ liệu từ cảm biến và gửi lên đám mây để hiển thị trực quan trên nền tảng Thingspeak.

Nó rất dễ sử dụng; bạn có thể kiểm tra tình trạng phòng của mình từ bất kỳ đâu chỉ bằng cách đăng nhập vào tài khoản Thingspeak qua điện thoại thông minh hoặc web.

THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG

Yêu cầu thiết kế

Bài viết cung cấp một biểu đồ thể hiện hoạt động hàng ngày của một người, bao gồm các trạng thái đứng, nằm, ngồi, đi bộ và chạy bộ Qua đó, người dùng có thể dễ dàng quan sát tần suất hoạt động của mình, từ đó xác định mục tiêu cho những ngày tiếp theo nhằm cải thiện sức khỏe và tăng cường thể lực.

Thời gian lấy dữ liệu cho dự đoán là sau mỗi 15s, mỗi ngày sẽ có khoảng 4000 dữ liệu để dự đoán.

Sản phẩm có thiết kế nhỏ gọn với chiều dài tối đa 7cm, chiều rộng không quá 4cm và bề dày 2cm, mang lại sự tiện lợi cho người dùng trong các hoạt động thể thao và sinh hoạt hàng ngày Cấu trúc chắc chắn giúp nâng cao trải nghiệm sử dụng.

Thời gian sử dụng sau mỗi lần sạc pin tối thiểu là 16 tiếng, cho phép người dùng chỉ cần sạc pin một lần vào cuối ngày Sản phẩm có độ chính xác cao, với tỷ lệ dự đoán hoạt động trong ngày vượt quá 90%.

An toàn cho người sử dụng, không bị điện giật, không có các vật sắc nhọn gây tổn thương cho da,

Phân tích thiết kế

Nhóm thiết kế đã đề xuất nhiều phương pháp khác nhau để giải quyết yêu cầu, sau đó thảo luận nhằm tìm ra phương pháp tối ưu nhất Đầu tiên, quá trình thu thập dữ liệu được tiến hành với hai phương pháp được đưa ra để thực hiện.

Phương pháp đầu tiên để gửi dữ liệu từ MPU6050 đến máy tính là sử dụng module Bluetooth, một giải pháp dễ thực hiện nhờ tính phổ biến và dễ sử dụng của nó Tuy nhiên, phạm vi truyền dữ liệu của module Bluetooth chỉ đạt từ 8 đến 10 mét, và có thể thấp hơn nhiều nếu có vật cản Do đó, phương pháp này không khả thi cho người dùng, vì họ không thể vừa đeo cảm biến vừa cầm theo máy tính để thu thập dữ liệu hàng ngày.

Hiện nay, các loại module wifi đã phát triển mạnh mẽ, cùng với sự tiện lợi và dễ sử dụng của các webserver Do đó, nhóm đã đề xuất phương pháp sử dụng module wifi để tối ưu hóa hiệu quả kết nối.

ESP8266 cho phép truyền dữ liệu lên Thingspeak, giúp thu thập thông tin từ bất kỳ đâu mà không cần mang theo thiết bị điện tử cồng kềnh.

Tiếp theo, sử dụng machine learning để phân tích dữ liệu được lấy về từ thingspeak được thực hiện bằng hai phương pháp.

Phương pháp đầu tiên là sử dụng các công thức tính toán để lựa chọn thông số phân loại hành động, giúp dự đoán hành động một cách linh hoạt hơn Tuy nhiên, phương pháp này khá phức tạp, yêu cầu tính toán các thông số và xác định những đặc trưng có ảnh hưởng lớn nhất đến kết quả dự đoán Việc phân loại hành động cũng cần được thực hiện một cách phù hợp để đảm bảo độ chính xác của kết quả dự đoán.

Phương pháp thứ hai trong Python là sử dụng thư viện sklearn.tree để thực hiện học máy với mô hình cây quyết định Phương pháp này không chỉ tiện lợi mà còn mang lại độ chính xác cao hơn.

Sơ đồ khối chi tiết

Hình 4: Sơ đồ khối phần cứng

Về phần cứng của mô hình dự đoán hành động bằng cảm biến gia tốc khá đơn giản chỉ bao gồm ba khối chức năng chính.

Khối thu thập dữ liệu sử dụng cảm biến gia tốc MPU6050 để thu thập 6 thông số, bao gồm gia tốc trên ba trục và góc nghiêng ba trục Dữ liệu này được gửi lên Thingspeak sau mỗi 15 giây để phục vụ cho việc dự đoán.

Khối xử lý trong module ESP8266 sử dụng IC CP2102, có nhiệm vụ xử lý dữ liệu và điều khiển kết nối wifi.

Module ESP8266 sẽ gửi dữ liệu thu thập từ MPU6050 lên webserver, phục vụ cho việc dự đoán và tính toán sau này.

Sơ đồ mạch chi tiết

Nối chân thiết bị sẽ được thực hiện qua giao tiếp I2C với 4 chân, bao gồm hai chân cấp nguồn VCC 3.3V và GND Hai chân còn lại, SCL và SDA, sẽ được kết nối với chân D1 và D2 của ESP8266.

Hình 5: Mô hình sơ đồ đấu nối dây

Nguồn PIN 9V sẽ được cấp cho module qua chân Vin và GND.

THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM

Gửi dữ liệu lên Thingspeak và tải xuống

Khi gửi dữ liệu lên ThingSpeak, yêu cầu quan trọng là dữ liệu phải đồng bộ theo từng thời gian và chính xác với dữ liệu thu được từ phần mềm Thời gian giữa hai lần thu dữ liệu cũng cần phải giống nhau Để tải dữ liệu lên ThingSpeak, bước đầu tiên là tạo tài khoản và thiết lập một kênh (channel) trên nền tảng này.

- Bước 1: Tạo tài khoản thingspeak

Chúng ta cần truy cập vào website: https://thingspeak.com/, sau đó chọn sign up để tạo tài khoản.

Hình 6 : Giao diện của website Thingspeak

Để tạo kênh mới, bạn hãy nhấp vào thẻ channel và chọn new channel Nhập tên kênh vào ô dành cho việc gửi dữ liệu từ thiết bị ESP8266 lên máy chủ, sau đó tích vào ô bên phải để kích hoạt trường đó Cuối cùng, chọn Save Channel để lưu kênh vừa tạo.

Hình 7 : Cài đặt một channel trên Thingspeak

- Bước 3: Lấy channel ID, Write API Keys và Read API Keys:

Trong thẻ API Keys, bạn sẽ tìm thấy các thông tin quan trọng như Channel ID, Write API Key và Read API Key Những ID và Keys này đóng vai trò thiết yếu trong việc quản lý dữ liệu.

ThingSpeak cho phép thiết bị gửi dữ liệu lên đây.

Hình 8 : Write API Keys và Real API Keys của một channel Thingspeak

- Các thông số đặt ra khi sử dụng Thingspeak:

Để phân tích gia tốc của người được quan sát, cần sử dụng 6 trường dữ liệu trong Thingspeak Ba cột đầu tiên là AcX, AcY, AcZ, cung cấp thông số về gia tốc Ba cột còn lại, GyX, GyY, GyZ, tương ứng với các trục X, Y, Z của người đang nghiên cứu.

Thời gian lấy mẫu giữa các lần liên tiếp là 15 giây, cho phép dữ liệu được gửi lên Thingspeak mỗi 15 giây Nhờ đó, trong một ngày, chúng ta thu thập được lượng dữ liệu lớn, đủ để phân tích các hoạt động của người đang được nghiên cứu.

Để gửi dữ liệu lên Thingspeak, trước tiên cần đọc dữ liệu từ cảm biến Trong dự án này, tôi sử dụng Arduino IDE để lập trình đọc dữ liệu từ cảm biến MPU 6050 và gửi lên Thingspeak Việc chọn Arduino là hợp lý vì nó cung cấp sẵn các thư viện cho cảm biến, nodeMCU và Thingspeak, giúp đơn giản hóa quy trình làm việc.

Chương trình Arduino bao gồm hai phần chính: đầu tiên, đọc dữ liệu từ cảm biến và hiển thị trên Arduino IDE, trong đó chúng ta thu thập các thông số như gia tốc, các trục và nhiệt độ (dữ liệu nhiệt độ sẽ được sử dụng trong phần mở rộng) Phần thứ hai là gửi dữ liệu lên Thingspeak; nhờ có thư viện có sẵn, việc đọc và gửi dữ liệu được thực hiện dễ dàng thông qua các lệnh Arduino như Wire.read() và ThingSpeak.setField().

Sau khi gửi dữ liệu lên Thingspeak, bước tiếp theo là tải dữ liệu về máy để xử lý và thực hiện machine learning ThingSpeak cung cấp chức năng xuất dữ liệu dưới dạng file xlsx Để thực hiện, bạn chỉ cần chọn mục Data Import/Export và nhấn vào phần download.

Hình 9 : Mục Data Import/Export của Thingspeak

Và sau đó dữ liệu sẽ được tải về máy tính gồm các field đã tạo trên Thingspeak, thời gian dữ liệu được tải lên và thứ tự

Hình 10 : Dữ liệu được tải về từ Thingspeak

Lấy dữ liệu về từ thingspeak sau đó sử dụng python để dự đoán hành động

Khái niệm về machine learning

Machine learning (ML) hay máy học là một lĩnh vực con của trí tuệ nhân tạo (AI) cho phép máy tính tự cải thiện dựa trên dữ liệu mẫu hoặc kinh nghiệm đã học Công nghệ này có khả năng tự dự đoán và đưa ra quyết định mà không cần lập trình cụ thể, mang lại tiềm năng lớn trong việc phát triển ứng dụng thông minh.

Bài toán machine learning được chia thành hai loại chính: dự đoán và phân loại Dự đoán bao gồm các nhiệm vụ như ước lượng giá nhà hay giá xe, trong khi phân loại liên quan đến việc nhận diện chữ viết tay hoặc đồ vật.

Quy trình làm việc của machine learning gồm có 5 bước:

Để máy tính học tập hiệu quả, việc thu thập dữ liệu là rất quan trọng Bạn cần có một bộ dữ liệu (dataset) có chất lượng, có thể tự thu thập hoặc sử dụng các bộ dữ liệu đã được công bố Hãy chắc chắn rằng nguồn dữ liệu là chính thống để đảm bảo tính chính xác, giúp máy học đúng đắn và đạt hiệu quả cao hơn.

Tiền xử lý dữ liệu là bước quan trọng trong quá trình chuẩn hóa, loại bỏ thuộc tính không cần thiết và gán nhãn dữ liệu Ngoài ra, nó bao gồm mã hóa đặc trưng, trích xuất đặc trưng và rút gọn dữ liệu để đảm bảo kết quả chính xác Thời gian thực hiện bước này tỉ lệ thuận với số lượng dữ liệu, thường chiếm hơn 70% tổng thời gian của toàn bộ quy trình.

Huấn luyện mô hình là bước quan trọng trong quá trình phát triển, nơi mà mô hình được đào tạo để học từ dữ liệu đã được thu thập và xử lý trong hai bước trước đó.

Đánh giá mô hình là bước quan trọng sau khi hoàn tất quá trình huấn luyện Chúng ta cần sử dụng các chỉ số khác nhau để xác định hiệu suất của mô hình Tùy thuộc vào các tiêu chí đánh giá, kết quả có thể khác nhau Một mô hình được coi là tốt khi đạt độ chính xác trên 80%.

Để cải thiện mô hình, sau khi đánh giá, những mô hình có độ chính xác chưa đạt yêu cầu cần được huấn luyện lại Quá trình này sẽ lặp lại từ bước 3 cho đến khi đạt được độ chính xác mong muốn Tổng thời gian cho ba bước cuối chiếm khoảng 30% tổng thời gian thực hiện.

Có rất nhiều cách phân loại machine learning, thông thường thì machine learning sẽ được phân làm hai loại chính sau:

+ Supervised learning: học có giám sát

+ Unsupervised learning: học không giám sát

+ Ngoài ra, machine learning còn có thể phân làm các loại sau:

+ Semi-supervised learning: học bán giám sát

+ Deep learning: học sâu (về một vấn đề nào đó)

+ Reinforce learning: học củng cố/tăng cường Ở đây nhóm thực hiện theo mô hình học có giám sát, dữ liệu đưa vào sẽ có dán nhãn tương ứng.

- Chuẩn bị cho machine learning

Phần mềm PyCharm, được phát triển cho ngôn ngữ lập trình Python, hỗ trợ hiệu quả cho quá trình machine learning Giao diện của PyCharm rất bắt mắt, với màu sắc phân biệt cho các ký tự, giúp người dùng dễ dàng nhận diện các loại lệnh Ngoài ra, PyCharm còn thông báo lỗi chính tả và cấu trúc, giúp người dùng sửa lỗi một cách nhanh chóng và dễ dàng.

Chúng ta sử dụng thư viện sklearn.tree để xây dựng mô hình cây quyết định, cho phép nhập các thông số đặc trưng và kết quả để thực hiện dự đoán Thư viện này cung cấp các lệnh hữu ích để triển khai mô hình Ngoài ra, cần sử dụng các thư viện hỗ trợ như matplotlib.pyplot để vẽ đồ thị, csv để đọc file csv, và pandas để tính toán vector và ma trận Hãy tiến hành import các thư viện cần thiết để bắt đầu.

Hình 12: Import các thư viện

Để hỗ trợ quá trình huấn luyện, dữ liệu và hành động được ghi lại trong file shows.csv, lưu trữ cùng với file main.py File này chứa thông số của 3 trục và hành động tương ứng Nhóm thực hiện đã thu thập khoảng 300 mẫu cho 5 hành động, với mỗi hành động từ 60 đến 70 mẫu Các mẫu này sẽ được gán với hành động tương ứng, bao gồm đứng (DUNG), nằm (NAM), ngồi (NGOI), đi bộ (DI BO) và chạy bộ (CHAY).

Các hành động không dấu được gán để dễ dàng cho Python đọc dữ liệu, và sau khi vào Python, chúng sẽ được chuyển đổi theo thứ tự 0, 1, 2, 3, 4, 5, 6 Thư viện Sklearn.tree chỉ có khả năng tương tác với các giá trị số.

File test.csv được tải về từ Thingspeak để kiểm tra, bao gồm 6 thông số trên 3 trục mà không có thông số hành động Qua quá trình học máy, file này sẽ giúp xác định hành động đang được thực hiện.

Hình 15: Data dự đoán hành động

Sau khi đã chuẩn bị cho quá trình học máy xong chúng ta sẽ tiền hành theo mô hình cây quyết định.

Khái niệm cây quyết định:

Cây quyết định (Decision Tree) là một cấu trúc phân cấp được sử dụng để phân loại các đối tượng dựa trên một chuỗi các quy tắc Các thuộc tính của đối tượng có thể thuộc nhiều kiểu dữ liệu khác nhau như Nhị phân, Định danh, Thứ tự và Số lượng, trong khi đó, thuộc tính phân lớp phải có kiểu dữ liệu là Nhị phân hoặc Thứ tự.

Cây quyết định sử dụng dữ liệu về các đối tượng và thuộc tính của chúng để tạo ra các quy tắc, từ đó dự đoán lớp của các dữ liệu chưa biết.

Một ví dụ điển hình về cây quyết định là việc các bạn nam quyết định có đi đá bóng hay không dựa trên điều kiện thời tiết Cây quyết định sẽ giúp họ đánh giá các yếu tố như trời nắng, mưa hay lạnh để đưa ra lựa chọn phù hợp.

Những đặc điểm ban đầu là: Thời tiết, Độ ẩm, Gió

Dựa vào những thông tin trên, bạn có thể xây dựng được mô hình như sau:

KẾT QUẢ THỰC HIỆN

Sau khi hoàn tất thiết kế phần cứng và phần mềm, chúng ta sẽ thu thập và xử lý dữ liệu bằng machine learning Dữ liệu được gửi lên Thingspeak sẽ liên quan đến các hành động như đứng, nằm, ngồi, đi bộ và chạy bộ Cảm biến sẽ được gắn vào cổ chân phải để thu thập dữ liệu chính xác.

Hình17 : Vị trí đặt cảm biến trên cơ thể

Để phân biệt các hành động, chúng ta cần xác định các đặc trưng cơ bản của chúng, giúp máy móc có khả năng phân loại và đưa ra dự đoán chính xác nhất.

+ Đứng: Đứng thằng người, hai chân chạm đất, không di chuyển

+ Ngồi: Ngồi thẳng lưng, hai chân đan vào nhau, giống như tư thế ngồi thiền.

+ Nằm: Nằm ngửa, chân duỗi thẳng , hai chân đặt sát nhau theo chiều dài cơ thể, bàn chân vuông góc với bền mặt đang nằm.

+ Đi bộ: Tốc độ không quá 5km/h, trong một thời điểm phải có ít nhất một chân chạm đất, tốc tốc độ ổn định

Hình 21: Tư thế đi bộ

+ Chạy bộ: Người thẳng, di chuyển nhanh đến vi trí khác, hai chân không cham đất khi chạy tại một thời điểm.

Hình 22: Tư thế chạy bộ

Hình 23 : Hình ảnh thực tế của thiết bị

- Gửi dữ liệu lên Thingspeak:

Kết quả thu được từ thí nghiệm là chính xác, và chúng ta có thể kiểm tra tính đúng đắn của nó bằng cách so sánh dữ liệu trong phần mềm Arduino IDE với dữ liệu đã được gửi lên Thingspeak.

Các dữ liệu được gửi lên sẽ được sắp xếp theo đúng các trường ban đầu và được cập nhật đồng bộ, giúp tạo ra các đồ thị thể hiện sự thay đổi của dữ liệu đã tải lên trên Thingspeak.

Hình 24 : Các Field thu được sau khi tải dữ liệu lên Thingspeak

Kết quả sau khi đã thực hiện xong bước machine learning

Python trả về một biểu đồ có dạng từng điểm tương ứng với các hành động.

Hình 25: Biểu đồ Python trả về

Nhóm thực hiện thu thập mỗi hành động 200 bộ dữ liệu khác nhau tổng cộng gồm có

1000 bộ test để kiểm tra kết quả hoạt động Kết quả được cho trong bảng sau

Nằm Ngồi Đứng Đi bộ Chạy bộ

Bảng 1: Tần số các hoạt động

Ngày đăng: 11/06/2022, 21:58

HÌNH ẢNH LIÊN QUAN

Hình 2: NodeMCU ESP8266 - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 2 NodeMCU ESP8266 (Trang 14)
Hình 3: Website Thingspeak - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 3 Website Thingspeak (Trang 15)
Hình 5: Mô hình sơ đồ đấu nối dây - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 5 Mô hình sơ đồ đấu nối dây (Trang 18)
Hình 6: Giao diện của website Thingspeak - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 6 Giao diện của website Thingspeak (Trang 19)
Hình 7: Cài đặt một channel trên Thingspeak - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 7 Cài đặt một channel trên Thingspeak (Trang 20)
Hình 8: Write API Keys và Real API Keys của một channel Thingspeak - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 8 Write API Keys và Real API Keys của một channel Thingspeak (Trang 20)
Hình 9: Mục Data Import/Export của Thingspeak - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 9 Mục Data Import/Export của Thingspeak (Trang 22)
Hình 12: Import các thư viện - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 12 Import các thư viện (Trang 24)
Hình 11: Giao diện PyCharm - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 11 Giao diện PyCharm (Trang 24)
Hình 14: Data huấn luyện - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 14 Data huấn luyện (Trang 25)
Hình 13: File huấn luyện - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 13 File huấn luyện (Trang 25)
Hình 15: Data dự đoán hành động - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 15 Data dự đoán hành động (Trang 26)
Hình 16: Cây quyết định - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 16 Cây quyết định (Trang 27)
Hình1 7: Vị trí đặt cảm biến trên cơ thể - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
Hình 1 7: Vị trí đặt cảm biến trên cơ thể (Trang 29)
5. KẾT QUẢ THỰC HIỆN - ĐỒ án 1 ( kỹ THUẬT điện tử   VIỄN THÔNG ) NHẬN DẠNG HÀNH ĐỘNG NGƯỜI BẰNG cảm BIẾN GIA tốc 2
5. KẾT QUẢ THỰC HIỆN (Trang 29)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w