Как умные часы понимают, что вы идёте
Ваш фитнес-трекер постоянно что-то там считает, но вы хоть раз задумывались, КАК он это делает? Типа, реально, там же не сидит маленький гном с калькулятором! В этой статье мы занырнём в мозги ваших любимых гаджетов — Mi Band’ов, Huawei Watch и Apple Watch. Разберёмся, как они отличают ваши реальные шаги от того, как вы трясётесь в маршрутке или машете руками, будто объясняете квантовую физику! Спойлер: там всё про акселерометры, гироскопы и магию машинного обучения. Узнаете, почему иногда ваш браслет «врёт» и как инженеры борются с этим. От древних механических штук до суперумных нейросетей — полный экскурс в мир, где каждый ваш шаг под микроскопом!

Вот уж не думал, что обычный счетчик шагов в наших любимых фитнес-трекерах — это такая сложная штука! Кажется, что он просто «знает», когда вы идете, и суммирует шаги. Ну, типа, магия. Но на самом деле за этой «магией» стоит целая куча технологий и хитрых алгоритмов. В этой статье мы с вами попробуем разобраться, как эти гаджеты отличают реальную прогулку от случайных взмахов рукой. Посмотрим, какие датчики там внутри работают, как они вообще фиксируют движения, по каким признакам умные программы распознают именно шаги, и почему, черт возьми, от махания руками счетчик не растет. А еще, заглянем под капот к таким популярным моделям, как Mi Band, Huawei Band и Apple Watch. Не обойдем стороной и косяки — почему иногда шаги не считаются или, наоборот, прибавляются «из воздуха». Обещаю, будет интересно и, главное, максимально просто, без заумных терминов, даже про «дерево решений» расскажу!
Основные «детективы движения»: акселерометр и гироскоп
Сердце любого современного фитнес-браслета или умных часов — это крошечные, но очень крутые датчики движения. В первую очередь это акселерометр, а часто еще и гироскоп, который ему помогает.

Что такое акселерометр? Проще говоря, это такой миниатюрный прибор, который измеряет ускорение объекта. Ну то есть, как быстро что-то разгоняется или тормозит в разных направлениях. В наших трекерах используются трехосевые акселерометры (их еще называют МЭМС-сенсорами — не парьтесь с названием, главное, что они микроскопические), которые могут одновременно «чувствовать» ускорение сразу по трем осям: вверх-вниз, вперед-назад и влево-вправо. Это позволяет вашему гаджету понимать, как вы двигаетесь в пространстве. Кстати, даже когда устройство лежит неподвижно, акселерометр все равно кое-что регистрирует — это, так сказать, привет от гравитации (те самые ~9,8 м/с²). По этому показателю он может понять, под каким углом браслет сейчас находится относительно земли.
Гироскоп — это как верный напарник акселерометра. Он не измеряет ускорение, зато круто справляется с отслеживанием угловой скорости, то есть вращений. В часах и браслетах гироскоп фиксирует, как устройство поворачивается или наклоняется во время движения. Важный момент: не все бюджетные фитнес-браслеты могут похвастаться гироскопом, но большинство современных, более продвинутых моделей его имеют — для пущей точности, разумеется. Вот, например, в Xiaomi Mi Band 5 (мой любимчик, если честно) стоят оба: акселерометр ловит толчки и рывки, а гироскоп следит за тем, как браслет крутится и наклоняется. Вместе они дают такую полную картину ваших телодвижений, что могут отличить шаг от какого-нибудь простого маха рукой, который вообще никак не связан с перемещением тела.
Почему же производители выбрали именно эти датчики? Тут все просто, как две копейки: когда вы идете, каждый ваш шаг — это, по сути, повторяющееся движение, которое создает очень специфический «рисунок» ускорений. Например, когда нога касается земли, тело на мгновение замедляется (это такое «отрицательное ускорение»), а рука с браслетом при этом совершает маятниковое движение. Трехосевой акселерометр такие колебания ловит просто на ура. А гироскоп, в свою очередь, замечает характерное раскачивание кисти и изменение угла наклона устройства. В тандеме они дают максимально подробную информацию о вашей походке, что позволяет им легко отличить ее от других движений (например, когда вы просто сидите и активно жестикулируете — привет всем, кто любит поболтать!). А еще, эти датчики настолько миниатюрные (буквально пару миллиметров!) и потребляют энергии, как будто они на строгой диете. Красота!
Как же они работают внутри? Ну, если очень упрощенно, то внутри акселерометра есть крошечные массы на пружинках или пластины конденсатора. Когда браслет дергается, эти массы смещаются, и это смещение меняет электрический сигнал. Микросхема улавливает эти изменения и преобразует их в циферки. Гироскоп устроен по-другому, но принцип тот же: он тоже «чувствует» повороты и переводит их в электрический сигнал. Короче говоря, акселерометр выдает три числа (ускорения по трем осям), а гироскоп — еще три (скорости вращения). Все эти «сырые» данные летят прямо в центральный мозг вашего гаджета — микропроцессор — для дальнейшей обработки. Там и начинается самое интересное!
Кстати, вот вам пример: Apple Watch (кто бы сомневался!) вообще напичканы датчиками по самое не хочу. Там и трехосевой акселерометр, и трехосевой гироскоп, и даже суперчувствительный компас (магнитометр), и барометр. В обычной жизни, когда часы считают шаги, они в основном используют акселерометр с гироскопом. Но если у вас с собой еще и iPhone, то могут подключить данные GPS для более точного расчета расстояния. Однако даже без GPS связка акселерометра и гироскопа работает отлично, уверенно определяя шаги по движениям вашей руки.
Ходим, а не машем: как алгоритмы отличают шаги от других движений
Ваш гаджет постоянно, как заправский детектив, «слушает» потоки данных, которые льются с акселерометра (и гироскопа, если он есть). Вот смотрите: если вы просто держите руку неподвижно, акселерометр покажет стабильное значение (это наша старая знакомая гравитация), и колебаний будет минимум. Если вы просто взмахнули рукой или тряхнули ею, датчик, конечно, зафиксирует резкий скачок ускорения, но он будет разовым и хаотичным. А вот когда вы идете — тут совсем другая песня! Появляется четкий, ритмичный «узор» сигналов: ускорения и замедления чередуются с определенной частотой (обычно это 1–2 шага в секунду для обычной ходьбы). И вот тут в игру вступает алгоритм, который сидит внутри браслета. Он как раз и обучен выискивать вот такие устойчивые, ритмичные колебания и считать их за шаги.

Теперь к вопросу, который волнует многих: почему тряска рукой не считается шагом? А потому, что производители не зря едят свой хлеб! Они специально настраивают эти алгоритмы так, чтобы одиночные взмахи или вибрации не приводили к немедленному увеличению счетчика. Например, если вы стоите и активно жестикулируете (ну, бывает!), движения могут быть размашистыми, но они не будут регулярными и длительными. Умные часы распознают это как «шум» и не засчитывают как шаги. Многие устройства вообще игнорируют колебания, которые ну совсем не похожи на естественный шаг: слишком частые или, наоборот, слишком редкие, хаотичные по направлениям, без того самого характерного изменения ускорения, которое происходит, когда вы переставляете ноги. Грубо говоря, акселерометр браслета ловит шаг по определенной комбинации сигналов — обычно это такой импульс отрицательного ускорения (когда нога приземляется, и рука немного замедляется в нижней точке маха), а затем положительного (рука снова пошла вверх). От одиночного взмаха рукой такой «профиль» отличается очень сильно: нет ни повторяемости, ни характерного «удара» (толчка) от шага ногой.
К тому же, алгоритмы шагомеров часто настроены так, что они не реагируют на первые несколько шагов. Они как бы ждут, чтобы убедиться: ага, пользователь действительно пошел! Это сделано, чтобы отсечь всякие случайные движения. Вот, скажем, фитнес-браслеты Huawei: они начинают показывать шаги на экране только секунд через 15 активного движения. Сначала они собирают данные, анализируют, распознают этот самый «паттерн ходьбы», и только если найдено больше 20 непрерывных шагов, счетчик начинает радостно прибавлять. Если же вы сделали всего 3-5 шагов и встали, многие гаджеты могут вообще их не учесть — алгоритм решит, что это могла быть какая-то ерунда (переминались с ноги на ногу или пару раз рукой махнули). Но есть и интересная фишка: некоторые модели, если вы потом все-таки продолжили движение, могут «догнать» и добавить те самые пропущенные первые шаги к общей сумме. Умно, да?

Помимо времени и количества шагов подряд, учитывается и то, насколько сильные и в каком направлении были эти ускорения. Шаги, если что, имеют довольно выраженную вертикальную составляющую движения: когда вы идете, тело немного опускается, потом поднимается (центр тяжести колеблется, ну, сами понимаете!), а рука с браслетом движется по траектории, похожей на дугу маятника. Поэтому алгоритм пристально анализирует ту часть ускорения, которая совпадает с направлением силы тяжести (вертикальная ось). Если по вертикали наблюдаются такие периодические колебания заданной формы, это очень, ОЧЕНЬ сильный признак того, что вы идете. Простое встряхивание рукой в воздухе, скорее всего, не даст такого же вертикального профиля — особенно если это движение больше горизонтальное или хаотичное. Тут на помощь приходит гироскоп: он может показать, что рука всего лишь вращается в запястье или делает какое-то движение, которое не ведет к перемещению тела. А вот при настоящей ходьбе кисть движется вперед-назад с довольно стабильной частотой и амплитудой. Не зря Huawei, например, прямо заявляет, что в моделях без гироскопа ошибок бывает больше — ведь без данных о вращениях отличить махи рукой от шагов гораздо сложнее.
Короче, под капотом у шагомера работает такой себе «фильтр от дурака» (ну, то есть, от ложных срабатываний). Производители, конечно, не рассказывают всех своих секретов (это же коммерческая тайна!), но общая схема такая: процессор устройства получает поток измерений (он такой быстрый, что обрабатывает десятки измерений в секунду), затем применяет к ним цифровую фильтрацию. Это как бы «отсеивание» всяких мелких дрожаний, вычитание постоянной составляющей (гравитации), чтобы выделить только те изменения, которые связаны с движением. Дальше он высчитывает всякие штуки по этому сигналу за короткий промежуток времени (ну, скажем, за 1-2 секунды): насколько сильные были ускорения (амплитуда), как часто они повторялись (частота колебаний), насколько они были равномерными, как менялось направление движения и так далее. Если все эти признаки складываются в идеальный шаблон «ходьба» — шаги засчитываются. А если данные больше похожи на какие-то случайные дергания — алгоритм либо ждет, либо вообще сбрасывает счетчик, пока не увидит что-то похожее на настоящие шаги.
Для примера, сами разработчики Xiaomi как-то говорили, что Mi Band отличает шаги от других движений благодаря специальному алгоритму, который «понимает, идет человек или просто размахивает рукой». Конечно, этот алгоритм не то чтобы обладает разумом в прямом смысле — он просто работает по заранее настроенным правилам и моделям. Например, браслет может игнорировать совсем уж слабые колебания: если вы идете очень тихим шагом, едва покачивая рукой, то часть шагов может и не зарегистрироваться. С другой стороны, один резкий, сильный взмах рукой (большая амплитуда, но всего один раз!) тоже будет отброшен как шум. Часто бывает, что устройство начинает считать только тогда, когда обнаружит несколько шагов подряд с характерной частотой. В Mi Band, судя по отзывам пользователей, есть небольшая задержка — шаги появляются не по одному, а как бы «пачками», потому что браслет сначала убеждается, что движения действительно систематические. Многие замечали, что Mi Band обновляет счет не непрерывно, а сразу добавляет 10-20 шагов — это как раз подтверждает такую логику.
И еще один важный момент: современные шагомеры все чаще используют такую крутую штуку, как машинное обучение, чтобы распознавать шаблоны движений. Это значит, что в само устройство уже заложена обученная модель, которая умеет классифицировать разные куски сигнала как «ходьба», «бег», «жестикуляция» и так далее. Такие модели тренируют на куче данных, полученных от реальных людей. То есть, собирают данные с акселерометров и гироскопов у добровольцев, пока те ходят, бегают, ездят в транспорте, занимаются бытовыми делами. Потом алгоритм ищет отличия и формирует правила для определения каждого вида активности. Вот поэтому умные часы могут не только шаги считать, но и автоматически понимать, что вы, скажем, побежали трусцой или поднялись по лестнице — ведь графики сигнала при этом будут сильно отличаться. Apple Watch, например, анализирует шаблоны движения руки и с помощью встроенных алгоритмов определяет, соответствует ли движение ритмам ходьбы или бега. Если да — фиксируется шаг и активность «ходьба»; если нет — шагомер старается держать паузу.

Так что, резюмируем: от случайных взмахов рукой нас спасают аж три важных вещи. Во-первых, это требование регулярности — устройство «ждет», пока движения не станут ритмичными и повторяющимися. Во-вторых, сравнение с типичными характеристиками шагов — хаотичные махи просто отсеиваются как ненужный мусор. В-третьих, использование нескольких сенсоров — они дополнительно проверяют, как именно перемещается и ориентируется рука, давая ценные подсказки о характере движения. Конечно, ни один алгоритм не идеален, и про возможные ошибки мы еще обязательно поговорим, но в большинстве случаев ваш браслет довольно точно отличает, когда вы действительно идете, а когда просто активно жестикулируете. И это, согласитесь, дорогого стоит!
Как из кучи цифр получаются шаги: немного о внутренней «кухне» трекеров
Так, а как же эта маленькая коробочка на запястье вообще «понимает», что вот эти вот циферки, которые летят с датчиков, это именно шаги, а не вы просто чесали затылок? На самом деле, это такой многоступенчатый квест, который можно разбить на несколько основных этапов:

1. Собираем данные, как шпион
Акселерометр, словно неутомимый диджей, непрерывно выдает три потока данных об ускорении (представьте себе Ax, Ay, Az — это оси, по которым он «чувствует» движение). Причем делает это с невероятной скоростью, например, 50 раз в секунду! Если в браслете есть гироскоп (а это хорошо!), он тоже подкидывает свои три компонента — угловую скорость (Gx, Gy, Gz). Все эти циферки сначала попадают в такой небольшой «буфер» — это вроде временного хранилища, куда данные складываются небольшими порциями.
2. Чистим и приводим в порядок
Представьте, что вы пришли в ресторан и вам подали блюдо, но его надо довести до ума. Вот так же и с данными. Прежде чем искать шаги, сигналы обязательно проходят предварительную «уборку». Часто от них отделяют гравитационную составляющую. Ну, акселерометр же всегда «чувствует» притяжение Земли, верно? Так вот, этот компонент либо просто отсекают специальным фильтром, либо хитро вычитают, используя данные гироскопа (а иногда и компаса) — чтобы понять, где там «низ», где «верх» и выделить именно вертикальное ускорение, которое ну очень важно для распознавания шагов. А еще, всякий мелкий шум вроде дрожания руки (от нервов или поездки в метро) отфильтровывается, чтобы он не мешал главным «показаниям». Иногда используют такие штуки, как «скользящее среднее» или «полосовой фильтр», который пропускает только те частоты, что соответствуют шагам человека (примерно 0.5–3 колебания в секунду). Все, что слишком быстрое (например, тряска от езды по брусчатке) или слишком медленное (когда вы плавно меняете позу) — на выход!
3. Режем на кусочки и анализируем
После чистки процессор начинает анализировать данные порциями, словно режет колбасу на ровные ломтики. Обычно это интервалы по 1–2 секунды — такое вот «оконное» деление. Допустим, берется 128 измерений (это примерно 2,5 секунды, если датчик выдает 50 измерений в секунду). И вот внутри каждого такого «окошка» алгоритм начинает вычислять всякие статистические штуки. Вот некоторые из них, самые важные для шагомеров:
- Амплитуда ускорения (то есть, размах колебаний): Когда вы делаете шаг, ускорение меняется довольно сильно — в момент приземления ноги бывают даже такие «пики» под 1.2–1.5 g (это как бы в 1.2–1.5 раза сильнее гравитации!). Если размах слишком мал (ну, меньше 0.1–0.2 g), то, скорее всего, движение просто недостаточно сильное, чтобы быть шагом.
- Вариация (разброс) сигнала: Когда вы идете нормально, сигнал очень периодичный, такие стабильные «всплески». Если сигнал слишком хаотичный или, наоборот, идеально ровный — шагов там нет и не пахнет.
- Частота шагов (она же каденс): Алгоритм может провести что-то вроде «спектрального анализа» (ну, типа, посмотреть, какие частоты есть в сигнале) или «автокорреляции», чтобы найти основную частоту колебаний. Для обычной ходьбы это где-то 1–2 шага в секунду (60–120 шагов в минуту), а для бега, конечно, повыше (2–3 шага в секунду). Если найдена четкая, ярко выраженная частота в этом диапазоне — это прям железобетонный индикатор, что вы шагаете!
- Форма сигнала: Некоторые алгоритмы заточены на поиск характерных «пиков» и «впадин». Например, когда ускорение при ходьбе колеблется вокруг некоторого значения, моменты, когда оно пересекает «ноль» (или уровень гравитации), могут указывать на шаги. Могут анализировать и соотношение между максимальным и минимальным ускорением за один цикл шага, время между ними и т.д.
- Соотношение осей: При нормальной ходьбе на руке обычно преобладают колебания вдоль какой-то одной оси (ну, в зависимости от того, как вы носите браслет — это может быть вертикальная ось Y или Z). Алгоритм проверяет, что ускорение именно в «правильной» оси значительно сильнее, чем в других. Или что между осями есть какая-то интересная зависимость, типа синусоидальных колебаний со сдвигом фаз.
- Данные гироскопа: Здесь гироскоп показывает, как именно вращается кисть. При каждом шаге часы на запястье слегка поворачиваются в одну сторону, потом в другую. Анализируя минимальные и максимальные значения угловой скорости за этот цикл, можно получить очень ценную инфу. Например, в одном исследовании для распознавания разных типов походки использовали GyroMin — минимальную угловую скорость за сегмент.
4. «Приговор»: это ходьба или нет?
После того, как собрана куча этих признаков, система пытается понять: а что это вообще за движение? Ходьба, бег, или что-то вообще левое (ну, типа «Other» — посторонние движения). Для этого используются либо жесткие правила (типа, «если то-то и то-то, то ходьба, иначе — нет»), либо модные модели машинного обучения — например, так называемое «дерево решений» или какой-нибудь другой алгоритм, который «обучили» на куче примеров. Что такое дерево решений, я расскажу чуточку позже, обещаю. Тут главное, что в мозги браслета уже заложено некое «знание» о том, как выглядят настоящие, правильные шаги. Если сегмент признан ходьбой, то в нем подсчитывается количество шагов — обычно по числу этих самых «колебаний» (ну, или пиков ускорения) в этом «окне». А если это не ходьба — ну, извините, шаги не прибавляются.
5. Суммируем и показываем
Все распознанные шаги прибавляются к общему счетчику. Но не ждите, что счетчик будет обновляться мгновенно — большинство устройств так не делают. Как я уже говорил, они обновляют данные с небольшой задержкой. Например, Huawei Band сначала убедится, что вы сделали 20 шагов подряд, и только после этого число на экране вырастет. Это круто, потому что счетчик не будет бестолково моргать туда-сюда при каждом случайном движении. Как только шаги зафиксированы, микроконтроллер записывает их в память и, обычно, периодически отправляет на ваш смартфон по Bluetooth, чтобы все это красиво отображалось в приложении здоровья.
И что важно: весь этот сложный анализ чаще всего происходит прямо на самом гаджете — в его маленьком микропроцессоре или даже внутри самого датчика! Современные акселерометры стали настолько умными, что порой имеют встроенные «мозги», способные выполнять простейшие алгоритмы распознавания, не нагружая основной процессор. Представьте себе: существуют чипы, в которые встроен целый «центр машинного обучения»! Он может запускать до четырех «деревьев решений» прямо на датчике и выдавать до 16 различных классификаций движения. Производители могут «зашить» в такой сенсор логику для распознавания шагов, падений, жестов и еще кучи всего. И тогда браслет просто будет присылать вам уже готовые события, типа «шаг обнаружен», а не сырые потоки ускорений. Это просто огонь, потому что так экономится батарея, ведь постоянный анализ в главном процессоре — это жуткий жор энергии. В смартфонах этим занимаются так называемые «сенсорные хабы» — такие специальные сопроцессоры. Например, в Android, начиная с версии 4.4, есть системные датчики TYPE_STEP_DETECTOR и TYPE_STEP_COUNTER, которые сами выдают уже готовые шаги, подсчитанные на аппаратном уровне. Разработчикам приложений даже не нужно париться и писать свои алгоритмы — датчик сам «стучит» событием при каждом шаге. Удобно!
В общем, видите, как из хаотичных на первый взгляд сигналов эти маленькие помощники вычленяют осмысленные параметры движения. Дальше мы узнаем, какие конкретно алгоритмы используются в популярных устройствах и чем они вообще отличаются. Будет еще интереснее, обещаю!
Как это делают «большие парни»: алгоритмы в популярных гаджетах

Рынок носимой электроники сейчас просто завален всякими устройствами, но, по сути, все они считают шаги по одному и тому же принципу. Однако есть свои «нюансы» у каждого бренда. Давайте глянем, как с этим справляются наши любимцы, особенно популярные в России: Xiaomi (со своими Mi Band’ами), Huawei (с браслетами Band и часами Watch) и Apple (конечно же, Apple Watch). Датчики у всех одинаковые, а вот подход… Тут есть о чем поговорить!
Xiaomi Mi Band: народный выбор
Фитнес-браслеты Xiaomi Mi Band, ну вы знаете, стали просто хитом продаж. И не зря — цена смешная, а функционала за глаза! Начиная примерно с Mi Band 4-5, эти браслеты работают в связке с 3-осевым акселерометром и 3-осевым гироскопом. Подсчет шагов тут — одна из самых главных фишек (да-да, не смог удержаться, прости!).
Xiaomi, конечно, не вываливает на стол все свои секреты по алгоритмам, но по тому, что говорят в официальных источниках и по отзывам пользователей, можно кое-что понять. Главное, Mi Band настроен так, чтобы не засчитывать всякую ерунду от кратковременных движений. В той же справке Xiaomi прямо сказано, что на точность счетчика шагов влияют стиль вашей походки, насколько широко вы машете руками и все такое прочее. И, что важно, алгоритм постоянно допиливают, чтобы данные были максимально точными. Вот почему, если вы в Mi Band пройдете пару шагов и остановитесь, он может сначала ничего не показать. А вот если продолжите идти, то спустя ~10 шагов (примерно) счетчик бац — и разом добавит все эти шаги! Это такая «анти-фальстарт» логика, чтобы браслет убедился, что вы действительно пошли, а не просто дернулись. Официальный реселлер Xiaomi даже подтверждает: «информация с двух датчиков обрабатывается специальным алгоритмом, который позволяет распознать, человек идет или просто размахивает рукой». Так что Mi Band активно фильтрует движения рук, которые не имеют отношения к вашей прогулке.
Кстати, в приложении Mi Fit (которое теперь называется Xiaomi Wear или Zepp Life) есть даже возможность «настроить» браслет под себя: указать рост, вес, чтобы он точнее считал пройденное расстояние. А еще, там есть такие «метки поведения», которые помогают отсекать лишние телодвижения от подсчета. В общем, данные о вашем росте и поле влияют на расчет дистанции, но не на сам факт подсчета шагов.
Но без косяков, конечно, никуда. Ранние версии Mi Band иногда ругали за то, что они могли недосчитать шаги, если руки были неподвижны (ну, например, вы идете с тяжелыми сумками, или ведете детскую коляску). Или, наоборот, «накидывали» лишние шаги от энергичных махов рукой. В Mi Band 5, говорят, появление гироскопа должно было помочь браслету лучше понимать, как он ориентирован в пространстве, и уменьшить количество ошибок. По большому счету, современные Mi Band очень неплохо считают размеренные шаги. Однако в нестандартных ситуациях (о них еще поговорим) возможны промахи — Xiaomi, кстати, сама признает, что есть «неопределенные факторы» и обещает постоянно оптимизировать алгоритмы.
Итак, если свести все воедино, алгоритм Xiaomi Mi Band работает примерно так:
- Акселерометр и гироскоп собирают сигналы.
- Микропроцессор анализирует их, выявляя ритм ходьбы.
- Единичные короткие движения игнорируются.
- Счетчик обновляется пачками после подтверждения серии шагов.
- Все лишнее (встряхивания, жестикуляция) фильтруется по критериям амплитуды и частоты.
При корректной носке (плотно, на неведущей руке) браслет достигает высокой точности, а при необычной манере движения возможны расхождения.
Huawei Band и Watch: точность под контролем

Компания Huawei тоже не отстает и устанавливает шагомеры как в свои фитнес-браслеты (Honor/Huawei Band), так и в умные часы Watch GT/Watch. Принципы, опять же, схожи: акселерометр как основной датчик шагов, гироскоп в большинстве моделей как вспомогательный.
Что мне нравится в Huawei, так это то, что они довольно открыто рассказывают пользователям, как работает их шагомер. В поддержке прямо написано: алгоритм распознает шаги и начинает считать только после того, как вы пройдете более 20 шагов или будете двигаться непрерывно около 15 секунд. Это подтверждает сказанное ранее: устройство нарочно вводит задержку, чтобы не считать случайные взмахи. Так что, если вы сделали пару шагов и встали, браслет мог их проигнорировать (ну или добавит позже, если вы все-таки продолжили идти). Huawei даже советует проверять шаги, только пройдя хотя бы 20 шагов непрерывно — иначе можете просто не увидеть корректного результата.
Huawei также явно указывает на возможные проблемы и, что круто, предлагает решения. Например, в официальном FAQ написано: «В некоторых случаях (например, когда вы едете на велосипеде или в автомобиле, либо моете посуду) часы могут ошибочно посчитать неровности на дороге или движения руки как шаги. В последней версии алгоритм подсчета шагов был оптимизирован для решения этой проблемы». То есть, если старые прошивки могли насчитать шаги от тряски в автобусе или при энергичных движениях руками, то обновленное ПО старается лучше отфильтровать такие воздействия. Пользователи замечали, что после обновлений шагомеры Huawei стали умнее определять паузы и вибрации — компания явно не сидит сложа руки и дорабатывает алгоритмы.
Интересно, что у Huawei есть бюджетные фитнес-трекеры без гироскопа, например, некоторые ранние Honor Band. В таких устройствах число ошибок чуть выше — производитель прямо говорит, что отсутствие гироскопа затрудняет отделение шагов от других движений. Без данных о вращениях браслет легче «поверит», что взмах рукой — это шаг, ведь у него меньше информации о пространственном характере движения. В более дорогих моделях (Band 4 Pro, Watch GT и т.д.) гироскоп, конечно, присутствует, и они, соответственно, точнее.
Тот же Huawei Band 8, по отзывам, может похвастаться точностью около 98–99% по сравнению с ручным подсчетом шагов — это очень, очень высокий результат для наручного трекера. Добиться такого показателя помогают вышеописанные меры: отсрочка старта счета, алгоритмическое отсеивание шумов и, конечно же, регулярные обновления прошивки.
В общем, алгоритм Huawei можно представить похожим на Xiaomi, но с особым упором на предотвращение ложных срабатываний в транспорте и при бытовых движениях. Они даже настоятельно рекомендуют обновлять прошивку до последней версии, где «алгоритм подсчета шагов оптимизирован» специально под такие случаи. Так что, если ваш Huawei-браслет вдруг насчитал шаги от тряски — не паникуйте, скорее всего, скоро выйдет патч, который сделает его еще умнее.
Apple Watch: технологичный гигант
Apple Watch — это, пожалуй, один из самых технологически навороченных гаджетов на рынке, и отслеживание активности здесь реализовано по полной программе. Часы Apple, конечно же, оснащены высокочувствительным акселерометром и гироскопом, а еще они постоянно «общаются» с вашим iPhone (если он рядом), чтобы повысить точность.
Apple не спешит делиться всеми деталями своих алгоритмов, но из заявлений и независимых тестов мы знаем, что Apple Watch используют комбинацию данных с акселерометра, гироскопа и, если доступно, GPS для определения шагов и расстояния. Причем, как отмечают в обзорах, часы не просто «подсчитывают каждый удар ноги напрямую», а оценивают шаги по паттернам движения руки. То есть, Apple делает ставку на анализ именно маятникообразного движения рук при ходьбе. Если оно совпадает с характерным ритмом ходьбы или бега, часы регистрируют шаг. И тут же, если iPhone лежит в кармане и записывает GPS-данные, система может подкорректировать длину шага и даже точнее распознать тип походки (особенно это полезно при первых тренировках на улице).
По отзывам пользователей, точность Apple Watch просто зашкаливает — в большинстве случаев погрешность не превышает 5–10%. Тесты показывают примерно 90–95% точности, а в идеальных условиях на открытом воздухе, особенно если GPS включен для калибровки, она может быть еще выше. Сравнивая с другими трекерами, Apple Watch часто оказываются в лидерах по точности. Это достигается благодаря продвинутым сенсорам и мощным алгоритмам, которые, скорее всего, используют машинное обучение (Apple вообще известна тем, что активно применяет нейросети для распознавания активности, например, для автоматического определения типа тренировки).
Однако и у Apple Watch есть свои «болячки». Одна из них — это когда вы идете, но рука неподвижна. Например, вы катите коляску перед собой или несете тяжелую сумку: часы на руке не совершают привычных махов. В таких случаях Apple Watch могут недосчитать шаги. Apple в таких ситуациях предлагает либо попытаться раскачивать другую руку, либо просто принять тот факт, что шагомер не будет идеальным, если рука не двигается. Тем не менее, благодаря комбинации с другими данными (гироскопом и, возможно, даже шагомером iPhone в кармане, если он активен) Apple Watch стараются учесть и такие шаги. Некоторые пользователи замечали, что если часы не двигаются во время ходьбы (например, вы ведете велосипед за руль), то шаги считаются хуже. Это, в общем-то, логичное ограничение — девайс чувствует в основном то, что происходит с ним самим (на руке).
Обратная ситуация — лишние шаги. Apple Watch, как и другие, могут приписать вам шаги от других активностей: бывали случаи, когда часы ошибочно считали шаги при езде по очень тряской дороге, или при интенсивной работе руками на месте. Но Apple активно с этим борется. Например, если вы активировали режим «Вождение» или часы «видят», что по GPS вы движетесь слишком быстро для ходьбы (скажем, больше 20 км/ч), то вклад таких движений в кольца активности минимизируется. В сообществе пользователей отмечается, что Apple Watch, в принципе, не ставят целью считать каждый чих. Их главная метрика — кольца активности (калории, минуты упражнений), а шаги — скорее вспомогательный показатель. Поэтому устройство не «дергается» от каждого странного движения — фильтрация настроена более сглаженно. Тем не менее, примеры ложных шагов есть: у кого-то часы насчитывали сотни шагов за ночь от взмахов рукой во сне или от езды по грунтовке. Apple выпускает обновления watchOS, которые постоянно калибруют чувствительность. В целом, независимые испытания показывают, что Apple Watch скорее склонны слегка недосчитывать шаги, чем придумывать их — это, кстати, лучше для мотивации (лучше показать меньше, чем обнадежить ложными достижениями).
В итоге, Apple Watch — это пример системы, где шагомер — лишь часть огромной экосистемы датчиков. Они с высокой вероятностью используют алгоритмы машинного обучения, которые умеют различать типы активности по комплексному сигналу (акселерометр + гироскоп). Разработчики даже упоминали, что часы выделяют отличительные «подписи» графиков для ходьбы, бега, лестниц и прочего — это похоже на то, как распознается голос или лицо. Благодаря этому Apple Watch могут автоматом понять, что вы, например, начали прогулку (и тут же предложить запустить тренировку). Точность в обычных условиях — одна из лучших (на уровне профессиональных шагомеров), а проблемные случаи стараются сглаживать калибровкой и обновлениями ПО.
А что там у других? Fitbit, Garmin, Samsung и Ко.

Если коротко, то у Fitbit, Garmin, Samsung и других брендов принципиально такой же подход. Отличия кроются в тонких настройках: у кого-то порог чувствительности выше, у кого-то фильтрация агрессивнее. Например, были случаи, когда фитнес-браслет Garmin мог засчитать шаги при езде на мотоцикле — он «думал», что это очень быстрый бег (подобные истории рассказывали и про некоторые модели Apple/Samsung). Fitbit в ранних трекерах не имел гироскопа, только акселерометр, из-за чего был чуть более подвержен ложным срабатываниям от резких жестов. Но по большому счету, все крупные бренды сейчас используют схожие ML-алгоритмы и достигают сопоставимой точности — примерно 90% и выше в подсчете шагов.
Вывод из всего этого сравнения прост: хотя технические детали могут отличаться, и у каждого производителя есть свои «фишки» (Xiaomi, например, берет простотой и доступностью; Apple — интеграцией с iPhone и машинным обучением; Huawei — автономностью и оптимизациями), суть алгоритмов одна. Все они должны решить одну и ту же задачу: на основе данных с датчиков выделить повторяющийся паттерн, который с большой вероятностью является шагами, и отфильтровать все остальное. Теперь давайте посмотрим, какие ошибки все-таки случаются при этом, и как инженеры стараются их минимизировать. Готовы к реальным кейсам и их решениям?
Ошибки распознавания: когда трекеры тупят (и почему)

Ну что ж, как бы ни были умны эти алгоритмы, идеала в нашем мире не существует. Ваш шагомер, к сожалению, тоже иногда ошибается. Причем есть два основных вида таких «косяков»:
- Ложноположительные (это когда браслет начисляет вам шаги, хотя вы никуда не шли — ну, типа, «фантомные шаги»).
- Ложноотрицательные (а это, наоборот, когда вы топаете, а устройство почему-то не хочет считать ваши усилия — «пропущенные шаги»).
Давайте разберем самые частые сценарии и узнаем, как с этим бороться (ну, или хотя бы смириться).
Ложные срабатывания (те самые «фальшивые» шаги)

Бывает такое, что ваш верный трекер вдруг начинает принимать за шаги какие-то совершенно посторонние движения или вибрации. Вот самые яркие примеры:
- Вибрации от техники и транспорта.
Ну кто не попадал в эту ситуацию? Едешь такой в автобусе по нашим дорогам, а браслет на руке трясется в такт, и, бац, — шаги набежали! Особенно этим грешат простые, не очень навороченные шагомеры без продвинутой системы фильтрации. Старые модели, говорят, вообще продолжали считать, даже когда человек спокойно ехал в транспорте. И многие замечали: поездка в метро или поезде — это как маленький бонус к шагам, просто от тряски вагона! А уж велосипед или мотоцикл — это вообще отдельная песня, там вибрации такие, что часы могут подумать, будто вы олимпийский чемпион по бегу. Что с этим делают производители? Они постоянно обновляют алгоритмы. Например, Huawei, как мы уже говорили, прям гордо заявляет, что оптимизировал свой счетчик, чтобы он игнорировал неровности дороги. Если в вашем гаджете есть гироскоп или GPS, они тоже тут очень выручают, помогая понять, что характер движения ну никак не соответствует ходьбе (например, на велике вы крутите педали, а не машете руками, а скорость по GPS говорит, что вы уже давно не пешеход). Некоторые модели Garmin, например, вообще умнеют до того, что автоматически переключаются в режим «велосипед» по определенным признакам, а Apple Watch могут заметить, что рука постоянно на руле (гироскоп не видит маятниковых движений!) и тоже снизят вклад этих вибраций в общий счет шагов. - Повторяющиеся движения рук при статичном положении.
Это классика жанра! Активно жестикулируете (особенно если вы итальянец, шучу), работаете молотком, пилите что-то, моете посуду, стираете вручную, или, может, на барабанах играете? Все, что дает ритмичные толчки руке, может быть расценено как шаги. Лайфхакер (ну, эти ребята дело говорят) пишет, что «вибрации от удара молотка по гвоздю могут быть очень похожи на те, которые возникают, когда вы шагаете». И перечисляет целую кучу бытовых дел, которые трекер может засчитать за шаги: мытье посуды, готовка, даже когда вы гладите кота или пользуетесь компьютерной мышью — все это способно ошибочно увеличить счетчик. А уж если вы взяли в руки что-то вибрирующее (перфоратор, газонокосилка), то за пару минут браслет может «намолотить» сотни шагов! Как с этим борются? Алгоритмы стараются отличать такие действия по отсутствию перемещения корпуса. То есть, если вы стоите на месте и только рукой двигаете, акселерометр заметит, что нет той самой выраженной вертикальной компоненты или смещения по сторонам. Гироскоп тоже может подсказать, что вращения хаотичны и не похожи на шаги. Но на практике отфильтровать все на 100% очень сложно. Поэтому иногда есть такой простой совет: надевайте браслет на нерабочую руку (ту, которой вы меньше работаете). Менее активная рука просто совершает меньше резких движений при тех же делах. Кстати, в настройках многих трекеров есть опция «Правая или левая рука» — не ленитесь выставить правильно, иначе сильная рука будет давать больше ложных шагов. И еще один лайфхак: плотнее затягивайте ремешок! Если устройство болтается при резких движениях, это добавляет лишний «шум», который может быть неправильно интерпретирован. - Длительные периодические движения всего тела, кроме ходьбы.
Представьте: вы сидите в кресле-качалке и неспешно раскачиваетесь. Некоторые пользователи прямо сообщали, что их фитнес-браслеты засчитывали им дневную норму шагов во время такого «отдыха». Или, скажем, вы едете на лошади рысью — тряска может быть принята за очень быстрые шаги. Подобное может случиться и при других повторяющихся активностях, например, гребля на тренажере или когда няня качает коляску взад-вперед. Что могут сделать часы в этом случае? Честно говоря, вручную тут сложно отделить движение «на месте» от реальной ходьбы. Некоторые модели предлагают включать специальные режимы тренировок (например, «гребля» или «велотренажер»), тогда шаги в этих режимах не учитываются, а калории считаются по-другому. Но вот если говорить про полностью автоматическое определение — это, прямо скажем, задачка со звездочкой. Производители, конечно, исходят из того, что шагомер — не абсолютно идеальный датчик, и дают пользователю возможность немного скорректировать данные. Тот же Лайфхакер советует: учитывайте моменты, когда вы не активны. Например, если долго работали за компьютером, а трекер показал сотню шагов, просто мысленно вычтите их, или, как вариант, просто снимайте устройство на время таких занятий. В будущем, кто знает, возможно, алгоритмы станут настолько умными, что смогут отличить качание в кресле от ходьбы (это вполне реально с помощью машинного обучения, если обучить их на таких данных).
В целом, ложноположительные шаги — это одна из самых частых претензий. Производители, очевидно, знают об этой проблеме и активно над ней работают. Главные «противоядия» здесь — это перекрестные данные и пороговые значения. Перекрестные данные — это когда алгоритм собирает инфу из разных источников (гироскоп, GPS, время суток, режим пользователя). Например, если смартфон «сказал» часам по Bluetooth: «мы едем в машине», то часы могут просто проигнорировать ритмичные вибрации как шаги. Пороги — это определенные минимальные условия: например, не засчитывать меньше N шагов подряд, игнорировать импульсы короче T миллисекунд, не реагировать на амплитуды ниже X, и так далее. Эти простые, но эффективные меры сильно сокращают количество «фантомных» шагов от случайных колебаний. Да, иногда из-за этого могут быть пропущены и настоящие шаги, но, как говорится, лучше потерять 5% реальных шагов, чем добавить 20% лишних — такова философия большинства алгоритмов (именно поэтому Apple Watch, например, умышленно слегка недосчитывают).
Пропуски шагов (когда шаги есть, а их нет)

Это обратная сторона медали — вы идете, а устройство показывает меньше, чем на самом деле. Такое тоже случается, особенно в не совсем стандартных ситуациях:
- Рука неподвижна во время ходьбы.
Классика жанра: вы идете, но держите в руке сумку или тележку, или обе руки у вас в карманах, или вы опираетесь на трость. Браслет на руке просто не получает привычных колебаний — движение тела есть, но рука его «гасит». Многие замечали: если не размахивать рукой, шагов насчитывается меньше. Если вы идете с тростью или прихрамываете, шаги тоже могут быть неравномерными, и акселерометр может не уловить мягкие движения. Что делать? Некоторые советуют надевать трекер на ногу (для этого есть специальные клипсы или даже датчики на обувь) — тогда он напрямую «чувствует» каждый шаг. Но у наручных устройств, конечно, решения программные. Apple, например, использует комбинированную информацию: если iPhone у вас в кармане, его акселерометр может компенсировать и добавить пропущенные часы шаги (в приложении «Здоровье» шаги считаются комплексно, и телефон, и часы вносят свой вклад). Если же телефона нет, часы могут попробовать оценить шаги по очень слабым вертикальным колебаниям всего корпуса — но это, конечно, менее точно. В целом, если ваша походка нестандартна (например, вы ходите с костылем), носимые трекеры действительно могут работать хуже. Производители честно предупреждают, что их алгоритмы заточены под среднестатистическую походку. Выход — либо использовать клипсу-шагомер на пояс/карман (там датчик ближе к телу, и шаги улавливаются по-другому), либо просто учитывать эту небольшую погрешность. Возможно, когда-нибудь появятся специальные режимы (скажем, «режим трости»), но пока их нет. - Очень медленная или очень быстрая походка.
Если вы идете необычайно медленно (ну, допустим, гуляете мелкими шажочками, или это пожилой человек с неспешной походкой), то ускорения могут быть ниже порога чувствительности, и акселерометр просто не зарегистрирует стабильных толчков. Такой шагомер «думает», что рука просто покачнулась пару раз и все, это не шаг. И наоборот, при очень быстрой походке (почти бег) некоторые простые алгоритмы могли «теряться» — частота выше ожидаемой для ходьбы, и счетчик мог недосчитывать, решив, что это уже не шаги, а что-то другое. Современные модели, правда, уже умеют различать и бег, так что с очень быстрыми шагами дела обстоят лучше (они просто посчитают их как беговые). А вот с медленными — сложнее. Что делать? Повышать чувствительность? Но это чревато появлением шумов и ложных срабатываний. Поэтому производители чаще всего рекомендуют… просто не переживать из-за мелких расхождений. Если у вас особый темп, главное, что устройство все равно измеряет вашу активность (калории, время движения), а точность счета шагов может быть чуть ниже. Для контроля здоровья критично лишь масштабное расхождение, а 10–15% погрешности для очень медленной ходьбы считаются вполне допустимыми.
- Программные баги и ограничения.
Бывает и такое, что девайс просто «глючит» из-за программного сбоя и перестает считать шаги вообще или обновляет их с огромной задержкой. Например, некоторые пользователи Mi Band жаловались, что браслет «не сразу показывает» шаги — отставание на несколько минут. Это, скорее, не ошибка алгоритма, а особенность прошивки: шаги копятся и выводятся пачками. Кроме того, при разряженной батарее или отключенных датчиках подсчет может просто не идти — банально, но иногда пропущенные шаги объясняются тем, что браслет был в режиме энергосбережения. Поэтому проверяйте настройки: а вдруг вы сами случайно отключили «подсчет шагов» в приложении (некоторые приложения это позволяют)? И, конечно, обновляйте ПО — производители очень часто исправляют баги, из-за которых шаги могли не учитываться из-за ошибок синхронизации и прочих программных недочетов. - Место ношения и крепление.
Шагомер, как и любой инструмент, рассчитан на определенное положение на теле. Если носить часы на лодыжке — они могут считать шаги совсем иначе (там сигналы, кстати, сильнее). Клипса на поясе считает по-другому (она ближе к центру массы тела). Даже на правой или левой руке может быть разница. Плюс, как мы уже говорили, слишком свободно болтающийся на запястье браслет может как «досчитывать» лишнее, так и недосчитывать правильное — например, сильный мах рукой смещает устройство, и часть импульса просто гасится ремешком. Поэтому производители рекомендуют носить устройство плотно, но при этом комфортно. Если у вас проблемы с подсчетом, можно попробовать экспериментально подобрать оптимальное крепление. И учтите: некоторые носят часы не на запястье, а на предплечье или даже в карман кладут — в таких случаях шаблон движения меняется, и алгоритму становится гораздо труднее. Желательно следовать инструкции — обычно она говорит, что устройство должно быть на запястье недоминантной руки, экраном наверх.
В целом, мой вам совет, дорогие пользователи: знайте слабые места своего трекера. Если он упускает шаги, когда вы несете в руке телефон — либо переложите телефон, либо просто учитывайте эту погрешность. Если он добавляет шаги, когда вы ведете машину — ну, это не страшно, можно вычесть в уме, а можно вообще воспринять как приятный бонус 😉. Производители, конечно, изо всех сил стремятся к идеалу, но пока даже самые-самые (привет, Apple!) не всегда на 100% отличат поездку на лифте от подъема по лестнице. Однако, в общей сумме за день эти ошибки обычно сглаживаются и не приводят к каким-то уж очень глобальным искажениям. Так что не парьтесь слишком сильно, просто двигайтесь больше!
Дерево решений и машинное обучение в шагомерах: как это работает?
Ранее мы вскользь упомянули, что алгоритмы подсчета шагов могут использовать машинное обучение, а точнее — дерево решений. Давайте же разберемся, что это за зверь такой и как он помогает вашему браслету понимать, двигаетесь вы или нет.
Дерево решений — это, по сути, такая хитрая модель из области анализа данных и искусственного интеллекта. Представьте себе дерево, где каждый узел — это вопрос о каком-то признаке, а каждая ветка — это ответ на этот вопрос. Вы двигаетесь по веткам в зависимости от ответов, пока не дойдете до «листа» — это и будет ваш финальный результат (ну, то есть, класс или решение). Формально: внутренние узлы дерева соответствуют признакам и условиям на них (например: «ускорение больше 1g?» — да/нет), ветви — это исходы этих проверок, а листья — это уже конечные классы (например: «ходьба» или «нет шага»). Самое крутое, что такой алгоритм может автоматически строиться на основе обучающих данных — специальный софт сам находит, какие признаки и пороговые значения лучше всего разделяют разные классы движения, и формирует эту иерархию правил.
Вот как мог бы выглядеть ну очень упрощенный пример такого дерева для детекции шагов:
┌──────────┐
| Var_Z > θ? | (θ – порог дисперсии по вертикали, то есть, есть ли значимые колебания)
└────┬─────┘
/ \
Да / \ Нет
/ \
┌──────────┐ "Нет шага"
| f_dom ≈ 1-2Hz? | (проверяем, доминантная частота сигнала примерно 1-2 Гц?)
└────┬─────┘
/ \
Да/ \Нет
/ \"Шаги (ходьба)" "Нет шага"
Что здесь происходит? Сначала мы проверяем, превышает ли дисперсия сигнала по вертикали некий порог. Если нет, значит, значимых колебаний нет, и шагов, очевидно, тоже. Если да — значит, что-то там колеблется. Тогда идем дальше и смотрим на основной частотный компонент: если он находится в диапазоне, характерном для ходьбы (примерно 1-2 колебания в секунду), то мы классифицируем этот сегмент как ходьбу. А если колебания есть, но они неритмичные или слишком быстрые/медленные — то это не шаги. Конечно, реальное дерево будет гораздо сложнее, с кучей ветвлений и признаков: оно может учитывать и величину ускорения, и соотношение осей, и данные гироскопа, и длительность сегмента, и много чего еще.
В чем же польза такого «древесного» подхода? Он очень интерпретируемый и быстрый. Для встраиваемых устройств, вроде фитнес-браслетов, крайне важно иметь алгоритм, который не требует огромных вычислительных мощностей. Дерево решений — это, по сути, набор вложенных условий «если-то» (if-else), которые микроконтроллер выполняет на раз-два. А обучение дерева на основе реальных данных позволяет ему учитывать сложные, нелинейные сочетания признаков, которые вручную прописать было бы очень трудно. Например, такое дерево может само «понять», что «если среднее ускорение по оси X высокое, а по Z низкое, и при этом дисперсия мала – значит, это не ходьба, а, возможно, езда на велосипеде». И это условие разовьется в одной из его ветвей.
В научной литературе есть реальные примеры использования деревьев решений для шагомеров. Например, в одной работе 2015 года (Lin et al.) предложили шагомер для смартфона, основанный именно на дереве решений. Их алгоритм умел классифицировать три типа походки: ходьба по ровной поверхности, подъем по лестнице и спуск по лестнице, а также отсеивал посторонние движения. Для этого использовались акселерометр, гироскоп и магнитометр, а обученное дерево решений показало точность около 89% в распознавании типа шага. На выходе алгоритм не просто считал шаги, но и понимал, что именно делал пользователь — шел, поднимался или спускался по ступенькам.
В такой системе каждая ветвь дерева могла, например, проверять значения характеристик, извлеченных из сегмента сигналов. Авторы работы упоминали, что выбрали 6 наиболее значимых признаков для классификации походки. Среди них были: минимальное, максимальное, среднее ускорение по вертикали, дисперсия вертикального ускорения, позиция максимума в сигнале, а также минимум угловой скорости по данным гироскопа. Финальное дерево принимало решения вида: «если дисперсия > X и минимальное ускорение < Y, то класс = “Спуск по лестнице”, иначе если…» и так далее. Листья дерева выдавали классы “По земле” (ровная ходьба), “Вверх” (вверх по лестнице), “Вниз” (вниз по лестнице) или “Другое” (не ходьба). Благодаря такому подходу, алгоритм мог автоматически отличать различные виды активности, что наглядно демонстрирует силу машинного обучения в этой задаче.
Деревья решений широко применялись и в более общих задачах распознавания активности человека по акселерометру. Например, еще в 2004 году исследования показали эффективность деревьев для классификации базовых действий (сидит, идет, бежит) на основе данных с носимых сенсоров. Они очень популярны из-за простоты реализации на маломощных чипах. Сейчас, правда, все чаще используют более продвинутые методы, такие как ансамбли деревьев (случайный лес) или даже нейронные сети, если вычислительная мощность устройства позволяет. Но отдельные производители, особенно для бюджетных или простых трекеров, все еще придерживаются классических решений: например, в фитнес-трекерах с ограниченным процессором могут быть реализованы именно деревья или аналогичные логические схемы.
Любопытно, что некоторые акселерометры уже имеют встроенный модуль дерева решений. Инженер, разрабатывающий устройство, может заранее настроить такое дерево: загрузить в него пороги и правила, которые были обучены на больших объемах данных. И тогда сам сенсор будет выдавать уже готовые сигналы, например: «Активность обнаружена = Ходьба» при совпадении с одной ветвью, или «Не ходьба» при другой. Это позволяет реализовать машинное обучение без тяжелых вычислений на основном процессоре, экономя заряд батареи.
Итак, дерево решений в контексте шагомеров — это просто удобный способ формализовать логику «если – то» для распознавания шаблонов шагов. Пользователь может этого и не видеть, но внутри кода фактически строится такое дерево: сначала проверка на минимальные движения, потом на периодичность, потом на соответствие диапазонам значений и так далее. Если все условия пройдены — алгоритм «решает», что вы идете. Если что-то не совпало — решает, что нет. И благодаря обучению на реальных данных эти условия могут быть очень точными.
Важно отметить, что дерево решений — это только один из методов машинного обучения. Компании могут использовать и более сложные модели, например, нейронные сети (Apple, скорее всего, применяет их для более комплексных задач, вроде определения типа тренировки по комбинации нескольких сенсоров). Однако для относительно простой задачи «идет/не идет» сложная нейронная сеть, как правило, не требуется — дерево или комбинация пороговых фильтров вполне справляются. Кстати, исторически первые электронные шагомеры вообще обходились без машинного обучения — они были чисто пороговыми устройствами (например: считали шаг всякий раз, когда ускорение по вертикали переходило из положительного в отрицательное, превысив 0.2g). Это, по сути, тоже можно представить как элементарное дерево решений.
В заключение этого раздела можно провести такую аналогию: если представить, что алгоритм шагомера — это маленький эксперт, сидящий в ваших часах, то дерево решений — это его «шпаргалка» с вопросами. Он как бы спрашивает себя: «Достаточно ли сильные толчки? Да. Повторяются ли они примерно раз в полсекунды? Да. Есть ли паузы или нерегулярность? Нет, равномерно. Окей, похоже на ходьбу». И наоборот: «Толчки слабые? Или нерегулярные? Тогда это не шаги». Этот «допрос» происходит за доли секунды и с огромным упорством, поэтому устройство и не реагирует на наши обманные махи, если те не соответствуют шаблону.
История и эволюция методов подсчета шагов: от маятника до ИИ
А теперь давайте ненадолго заглянем в прошлое и посмотрим, как мы пришли к таким умным шагомерам. История, оказывается, насчитывает несколько столетий!
Первые механические шагомеры появились еще в эпоху Возрождения. Говорят, идею высказал Леонардо да Винчи, а первый прибор собрал в XVI веке итальянский изобретатель. Существует даже исторический экспонат — шагомер 1590 года из Южной Германии. Это был такой механический карманный прибор с маятником и шестернями, который «щелкал» счетчиком при каждом шаге (точнее, при каждой паре шагов, так как носился на ноге). Принцип действия был прост: маятник, раскачиваясь при ходьбе, приводил в движение зубчатый механизм, который поворачивал стрелку на циферблате. Ни о каких акселерометрах, конечно, и речи не шло — использовалась чистая механика.
Затем, в XIX–XX веках, шагомеры эволюционировали в электромеханические. Их обычно крепили на пояс. Внутри располагался грузик на пружине или рычажке. При каждом шаге толчок заставлял грузик отклониться и замкнуть электрическую цепь — посылался импульс на счетчик (или щелкала механическая трещотка). Описывалось устройство простого электронно-механического шагомера: «датчиком является пружинный контакт и фольгированный пластиковый маятник, реагирующий на встряхивания». То есть тонкая пластинка с контактами замыкалась при толчке — и считался шаг. Такие приборы нужно было носить строго вертикально на поясе, иначе они плохо считали. Точность у них была, мягко говоря, так себе: нужно было еще и пружинку отрегулировать под свой стиль ходьбы, а в транспорте или при наклонах они запросто накручивали лишнее. Многие, наверное, помнят простые шагомеры-шкатулки, которые раздавали или продавали лет 15 назад — внутри них был именно маятниковый сенсор.
Революция произошла, когда в мобильные устройства начали встраивать полупроводниковые акселерометры. В начале 2000-х появились первые телефоны со встроенным акселерометром (например, Siemens SX1 имел датчик удара для игр). Специализированные спортивные устройства, такие как Nike+iPod (2006 год), использовали акселерометр в датчике, который крепился на обувь, чтобы считать шаги бегуна. К 2008–2010 годам акселерометры стали обычным делом в смартфонах (для автоматического поворота экрана и прочего), и быстро нашлось им применение — появились софт-шагомеры. Приложения для Android тогда реализовывали подсчет шагов программно, просто считывая «сырые» данные акселерометра. Однако, как отмечают разработчики, это было очень энергозатратно — держать акселерометр постоянно активным и обрабатывать его данные на центральном процессоре смартфона. Поэтому Google в Android 4.4 ввел аппаратный шагомер (Sensor Hub), а Apple еще в 2013 году в iPhone 5s представила сопроцессор M7, который, помимо прочего, считал шаги в фоновом режиме. Так смартфоны, лежащие в кармане, научились быть шагомерами «из коробки».
Параллельно случился бум фитнес-браслетов. В 2009 году вышел первый Fitbit Tracker — небольшой девайс-клипса с акселерометром, который подсчитывал шаги и синхронизировался с компьютером. За ним последовали Jawbone Up, Nike FuelBand и другие. Эти устройства уже полагались на цифровые акселерометры и микропроцессоры, а основной задачей стало фильтровать лишние движения. В начале 2010-х годов алгоритмы были относительно простыми, пороговыми, из-за чего разные бренды показывали разные результаты. Отмечалось: «даже у производителей современных шагомеров с акселерометрами нет единого определения «правильного шага», и показания приборов разных фирм всё равно различаются». И это было правдой: один шагомер мог вам насчитать 8000 шагов в день, другой — 7500, хотя вы делали одно и то же. Постепенно, с накоплением данных и совершенствованием алгоритмов, точность выросла, но небольшие различия есть до сих пор.
Затем пришла эпоха умных часов (2014–2015 годы), где шагомер стал лишь одной из множества функций, зато сенсоры получили еще и гироскопы, да и мощность процессоров значительно возросла. Появилась возможность применять машинное обучение прямо в носимых устройствах. Apple, как мы уже говорили, активно задействует нейронные сети — они могут обучаться на гигантской массе анонимных данных от пользователей Apple Watch и постоянно улучшать распознавание активности. Алгоритмы стали учитывать еще больше параметров: не только сами шаги, но и контекст (время суток, локацию — GPS может подсказать, что вы в парке или на беговой дорожке).
Эволюцию можно проследить и по количеству датчиков:
- От одного механического маятника.
- К одномерному пьезодатчику (фиксировал только вертикальные встряхивания).
- Потом к двухосевому акселерометру (первые шагомеры в телефонах Sony Ericsson W710 имели 2 оси).
- Затем к полному 3-осевому акселерометру (Nokia 5500 Sport уже имел таковой).
- Сейчас стандарт — 3-осевой аксель + 3-осевой гироскоп.
- А некоторые устройства добавляют барометр (для отслеживания подъема по этажам, но он тоже может влиять на «понимание», идет человек в гору или по ровному) и компас.
Исторически алгоритмы прошли путь от простейшего порога до сложных моделей:
- Ранние электронные шагомеры: пороговое детектирование (threshold-based detection) — фиксировали смену знака ускорения или превышение порога.
- Затем добавили временное окно: требование, чтобы между пиками было определенное минимальное время (например, не чаще 2 шагов в секунду).
- Появились адаптивные фильтры: устройства начали подстраивать чувствительность под конкретного пользователя, некоторые браслеты 2010-х можно было калибровать, задавая свой «профиль».
- Далее — анализ шаблонов: примерно с 2015 г. стали внедряться алгоритмы, различающие типы движений. Трекеры научились понимать, что вы идете, даже если вы едете на эскалаторе (раньше могли считать шаги на эскалаторе, думая что идете, ведь тело потряхивает).
- Наконец, машинное обучение: в последние годы многие задачи отданы ML-моделям, которые обучены на огромном количестве данных. Например, упомянутый Xiaomi PAI (Personal Activity Intelligence) — это уже комплексная метрика, где шаги — лишь частный случай движения, и браслет оценивает нагрузку по совокупности показателей, не фиксируясь слепо на шаге как единице.
Что же дальше? Возможно, появятся сенсоры нового поколения — например, комбинированные модули, отслеживающие и биомеханику тела, и мышечную активность. Уже есть эксперименты с использованием гироскопов на ногах, датчиков давления в обуви — они дают еще более точные детекции шагов (что очень важно для медицины, где нужен подсчет с минимальной ошибкой для диагностики). Но для массового использования текущие акселерометры + умный софт уже достаточно хороши.
Интересно, что концепция «шага» в цифровом здоровье тоже меняется. Раньше целью было просто посчитать шаги (например, знаменитые 10 тысяч шагов в день). Сейчас все больше внимания уделяется интенсивности и непрерывности активности. Умные часы делают акцент на минутах упражнений, на пульсовых зонах и так далее. Шаги остаются понятным показателем, но в будущем, возможно, устройства будут мотивировать не столько количеством шагов, сколько пройденными дистанциями, потраченными калориями или выполненными «эпизодами активности». Тем не менее, технология подсчета шагов как основа никуда не денется — это базовый параметр, от которого «пляшут» все остальные.
В ретроспективе, мы прошли путь от простого механизма на пружинке до мини-компьютера на руке, который с машинным обучением отфильтровывает ваши жесты и считает только реальные шаги. Точность выросла с ±20–30% до ±5% и лучше в типичных условиях. Да, совершенству нет предела — но уже сейчас смарт-браслеты по надежности подсчета обошли человеческий фактор (попробуй-ка сам не собьись, считая свои 8000 шагов за день!).
Заключение

Подсчет шагов — это наглядный пример того, как сочетание сенсорной техники и алгоритмов искусственного интеллекта помогает нам в повседневной жизни. Фитнес-браслет или часы на вашем запястье непрерывно выполняют сложную работу: «слушают» трехмерные ускорения, отсеивают шум, распознают паттерны, похожие на ходьбу, и суммируют их. В ход идут и физика (принцип инерции, МЭМС-датчики), и математика (цифровая обработка сигналов, фильтры, статистика), и даже машинное обучение (классификация движений по множеству признаков). Благодаря этому современные шагомеры достигли высокой точности и умеют отличать реальную активность от случайных движений.
Конечно, полностью избежать ошибок трудно — особенности походки, внешние вибрации, положение руки все еще влияют на показания. Мы разобрали, почему браслет иногда «врет» и как инженеры с этим борются: вводят задержку подсчета, используют гироскоп для ориентации, постоянно шлифуют прошивки. В целом тенденция такова, что с каждой новой моделью (и обновлением ПО) трекеры становятся умнее и «честнее». Уже сейчас топовые устройства (Apple, Huawei, Garmin) могут похвастаться тем, что определяют шаги с точностью около 95–99% в обычных условиях. А случаи, когда шаги считались от езды на авто или, наоборот, пропадали из-за неподвижной руки, постепенно сводятся к минимуму.
Важно понимать, что «шаг» в понимании гаджета — это цифровой образ, который максимально совпадает с заранее обученным шаблоном ходьбы. Если вы сегодня прошли мало шагов по браслету, это либо действительно так, либо вы «обманули» браслет (например, ехали на велосипеде — активность была, а шагов, по его мнению, нет). Поэтому относитесь к показателю шагов как к индикатору общей подвижности, но не абсолютной истине. Разработчики стремятся к тому, чтобы 1 шаг по трекеру максимально соответствовал 1 шагу ногами — и в среднем это так. А нюансы мы постарались раскрыть: и про датчики, и про алгоритмы, и про трудности.
Надеемся, прочитав эту статью, вы получили более полное представление о том, как часы «знают», что вы идете. В следующий раз, взглянув на свой шагомер, помните: за цифрой на экране стоит маленький высокотехнологичный «страж», который бдительно наблюдает за каждым вашим шагом (в пределах разумного) — и, как мы выяснили, делает это довольно умно, опираясь на науку и данные. Шагайте на здоровье!