Công nghệ đếm bước chân nhận biết chuyển động thế nào?
Khi một bước xảy ra, cơ thể và thiết bị trải qua những thay đổi gia tốc và hướng quay có tính lặp lại. Hệ thống phải phân biệt mẫu này với các chuyển động khác như rung điện thoại, vung tay, ngồi xuống, đi trên phương tiện hoặc va chạm ngẫu nhiên. Trên Android, nền tảng có sẵn cảm biến step detector để phát sự kiện cho từng bước và step counter để cung cấp tổng số bước đã ghi nhận; hai loại cảm biến này được thiết kế cho các mục đích khác nhau
Vì vậy, bản chất của công nghệ là một chuỗi xử lý:
Cảm biến chuyển động → Dữ liệu gia tốc và quay → Lọc nhiễu → Nhận diện mẫu bước → Kiểm tra điều kiện → Ghi nhận số bước
Cảm biến nào cung cấp dữ liệu để nhận biết bước chân?
Gia tốc kế ghi nhận biến đổi chuyển động
Gia tốc kế đo gia tốc mà thiết bị trải qua theo các trục không gian. Dữ liệu này phản ánh những thay đổi khi thiết bị được nâng lên, hạ xuống, rung hoặc đổi hướng trong quá trình người dùng di chuyển
Một khó khăn quan trọng là gia tốc kế không chỉ “thấy” chuyển động của người dùng mà còn chịu ảnh hưởng của trọng lực. Vì thế dữ liệu thô cần được xử lý để tách hoặc giảm ảnh hưởng của trọng lực và nhiễu trước khi dùng cho phát hiện bước
Con quay hồi chuyển bổ sung thông tin về chuyển động quay
Con quay hồi chuyển cung cấp thông tin về tốc độ quay của thiết bị. Khi kết hợp với gia tốc kế, hệ thống có thể hiểu tốt hơn tư thế và sự thay đổi hướng của thiết bị thay vì chỉ nhìn vào một biến động gia tốc đơn lẻ
Trên các nền tảng hiện đại, dữ liệu chuyển động có thể được xử lý ở cấp hệ điều hành thay vì để từng ứng dụng tự xây dựng toàn bộ thuật toán từ tín hiệu thô. Core Motion của Apple, chẳng hạn, cung cấp dữ liệu chuyển động đã qua xử lý và có thể kết hợp gia tốc kế với con quay hồi chuyển để tách trọng lực khỏi gia tốc do người dùng tạo ra
Bộ đếm bước và bộ phát hiện bước không hoàn toàn giống nhau
Android phân biệt rõ hai cơ chế
Step detector phát một sự kiện cho từng bước và được thiết kế để phát hiện từng bước riêng lẻ với độ trễ dự kiến dưới 2 giây
Step counter cung cấp số bước tích lũy kể từ lần khởi động lại thiết bị trong thời gian cảm biến được kích hoạt; Android nêu rằng cơ chế này có thể có độ trễ tới 10 giây nhưng ưu tiên độ chính xác và tiêu thụ điện năng thấp hơn
Điều này cho thấy “đếm bước” có thể là kết quả của một cảm biến chuyên dụng hoặc một lớp xử lý chuyển động đã được tích hợp ở cấp hệ điều hành, chứ không nhất thiết là ứng dụng đọc trực tiếp từng mẫu gia tốc thô

Thuật toán biến dữ liệu cảm biến thành một bước như thế nào?
Dữ liệu cảm biến ban đầu là một chuỗi giá trị thay đổi liên tục theo thời gian. Thuật toán phải biến chuỗi này thành một quyết định rời rạc: có một bước hoặc không phải bước
Thông thường quá trình có thể được hiểu qua các lớp sau
Lọc và làm mượt tín hiệu
Tín hiệu cảm biến luôn có nhiễu. Một cú chạm, rung hoặc thay đổi tư thế có thể tạo ra biến động giống một phần của bước chân
Vì vậy hệ thống cần lọc nhiễu và làm mượt xu hướng tín hiệu trước khi tìm mẫu. Tài liệu Android cũng lưu ý rằng khi làm việc với dữ liệu cảm biến thô, cần loại bỏ các yếu tố môi trường và có thể áp dụng thuật toán làm mượt để giảm nhiễu
Tìm biến đổi có tính chu kỳ
Bước chân thường tạo ra một chuỗi biến đổi có cấu trúc thay vì một đỉnh gia tốc ngẫu nhiên duy nhất. Thuật toán có thể theo dõi các đỉnh, đáy, khoảng thời gian giữa các biến đổi và mức độ lặp lại của chúng
Một sự kiện chỉ được xem là đáng tin cậy khi nó phù hợp với đặc trưng của chuyển động đi bộ thay vì xuất hiện như một xung đơn lẻ
Kiểm tra khoảng thời gian giữa các bước
Nếu hệ thống ghi nhận các sự kiện quá sát nhau hoặc có nhịp biến động không hợp lý, chúng có thể bị loại khỏi kết quả
Ngược lại, khi các sự kiện lặp lại theo nhịp tương đối ổn định, khả năng chúng thuộc về một chuỗi bước chân sẽ cao hơn
Đây cũng là lý do thông tin về cadence, tức số bước mỗi phút, có thể được sử dụng để mô tả nhịp đi bộ
Kết hợp nhiều đặc trưng thay vì chỉ dùng một đỉnh tín hiệu
Một thuật toán chỉ kiểm tra “có đỉnh gia tốc hay không” dễ đếm nhầm khi người dùng chạy, rung điện thoại hoặc thực hiện động tác tay
Hệ thống đáng tin cậy hơn khi xem đồng thời biên độ tín hiệu, nhịp lặp, hướng chuyển động, trạng thái thiết bị và quan hệ giữa nhiều mẫu liên tiếp. Với các hệ thống xử lý chuyển động hiện đại, dữ liệu gia tốc và quay có thể được kết hợp để mô tả chuyển động theo ngữ cảnh tốt hơn
Vì sao hệ thống phải phân biệt bước đi với các chuyển động khác?
Một thiết bị luôn chuyển động theo nhiều cách ngoài đi bộ. Nếu chỉ cần cảm biến phát hiện rung động là tính một bước, kết quả sẽ nhanh chóng sai lệch
Rung hoặc va chạm không tạo thành chuỗi bước hợp lệ
Một cú va chạm có thể tạo ra đỉnh tín hiệu lớn nhưng thường không có chuỗi biến đổi lặp lại đặc trưng của bước chân
Do đó thuật toán cần xem cả ngữ cảnh theo thời gian, chứ không chỉ giá trị lớn nhất tại một thời điểm
Vung tay có thể tạo gia tốc nhưng không nhất thiết là bước
Đây là một trong những trường hợp gây nhầm lẫn khi thiết bị được đặt trên cổ tay hoặc cầm trong tay. Chuyển động tay có thể tạo tín hiệu mạnh dù người dùng không đi bộ
Việc kết hợp nhiều thành phần chuyển động và các điều kiện về nhịp lặp giúp giảm khả năng biến một cử động tay thành một bước
Điện thoại trong túi, tay hoặc balô cho tín hiệu khác nhau
Vị trí thiết bị thay đổi cách lực chuyển động truyền tới cảm biến. Cùng một người nhưng điện thoại đặt trong túi quần, cầm trên tay hoặc nằm trong túi xách có thể tạo ra hình dạng tín hiệu khác nhau
Vì vậy thuật toán không thể phụ thuộc quá chặt vào một dạng sóng duy nhất. Nó cần nhận diện đặc trưng có tính tổng quát hơn
Đi bộ và chạy cũng tạo ra các mẫu khác nhau
Nhịp bước, biên độ chuyển động và gia tốc khi chạy có thể khác đáng kể so với đi bộ. Hệ thống phải xử lý các mẫu vận động thay đổi mà vẫn duy trì khả năng xác định từng bước
Đây là lý do những nền tảng sức khỏe không chỉ lưu số bước mà còn có thể cung cấp các dữ liệu liên quan như khoảng cách ước tính và tốc độ hoặc nhịp vận động
Khi nào một chuyển động được công nhận là một bước?
Không có một quy tắc đơn giản kiểu “mỗi lần gia tốc vượt một ngưỡng là một bước” đủ để xử lý mọi tình huống
Một hệ thống hoàn chỉnh thường phải đánh giá đồng thời
· Mẫu biến đổi của gia tốc
· Thời gian xuất hiện và khoảng cách giữa các sự kiện
· Đặc trưng lặp lại của chuỗi chuyển động
· Thông tin về hướng hoặc chuyển động quay khi có
· Mức độ phù hợp với trạng thái vận động đang diễn ra
Sau khi mẫu thỏa mãn các điều kiện nhận diện, hệ thống mới ghi nhận một bước. Chính lớp quyết định này tạo ra sự khác biệt giữa phát hiện chuyển động và đếm bước chân
Trên Android, cảm biến step detector được mô tả là tạo một sự kiện cho mỗi bước, trong đó thời điểm sự kiện tương ứng với thời điểm bước xảy ra và có liên hệ với biến đổi gia tốc khi bàn chân chạm đất
Với các nền tảng xử lý ở cấp hệ điều hành, phần khó nhất có thể đã được thực hiện trước khi dữ liệu tới ứng dụng. Apple cung cấp CMPedometer để ứng dụng nhận dữ liệu bước, khoảng cách và các thông tin liên quan do hệ thống tạo ra thay vì yêu cầu ứng dụng tự tái tạo toàn bộ quy trình từ đầu
Điểm giới hạn của công nghệ đếm bước chân nằm ở đâu?
Bản chất của việc đếm bước là suy luận từ tín hiệu chuyển động nên kết quả không phải lúc nào cũng đồng nhất với số bước thực tế
Sai số có thể phát sinh khi thiết bị bị rung mạnh, vị trí đặt thiết bị thay đổi, người dùng thực hiện chuyển động không đi bộ nhưng có hình dạng tín hiệu tương tự bước chân hoặc thuật toán phải làm việc với dữ liệu chưa đủ rõ
Ngoài ra, độ trễ cũng phụ thuộc vào cách hệ thống cung cấp dữ liệu. Android công bố step detector có độ trễ dự kiến dưới 2 giây, trong khi step counter có thể có độ trễ tới 10 giây
Do đó, một chỉ số như “10.000 bước” không nên được hiểu là thiết bị quan sát trực tiếp 10.000 lần bàn chân chạm đất. Đó là kết quả của một hệ thống cảm biến và xử lý tín hiệu đã nhận diện các mẫu chuyển động được xem là phù hợp với bước chân
Về nguyên lý, toàn bộ công nghệ có thể tóm lại thành:
Đo chuyển động → Làm sạch tín hiệu → Nhận diện mẫu lặp → Kiểm tra điều kiện → Xác nhận bước → Cộng dồn số bước
Chính khả năng kết hợp dữ liệu cảm biến với xử lý tín hiệu và ngữ cảnh chuyển động giúp thiết bị phân biệt một bước đi với những rung động ngẫu nhiên, từ đó biến chuyển động vật lý liên tục thành dữ liệu bước chân có thể sử dụng trong các hệ thống theo dõi vận động.
