Итак, вы хотите создать модель классификации видов деятельности? Если вы хотите упростить процесс сбора данных, прочтите этот увлекательный способ сэкономить время, которому я научился во время своего пути к созданию своей.

Я использовал для этого CreateML, программа великолепна и проста в использовании, но сбор данных может длиться вечность. Этот метод сбора данных будет применяться к любому использованию сбора данных о движении временных рядов, поэтому не стесняйтесь читать, если вы не используете то же программное обеспечение.
Когда я впервые начал процесс сбора данных, я планировал использовать os_log чтобы вывести данные с моих Apple Watch, обработать эти данные, и все готово. Легко!
Оказывается, мне нужен был гораздо набор данных, чем я предполагал, и чтобы втирать соль в рану, пандемию и из-за основное состояние здоровья Я был прикован к дому.
Это означало, что я не мог передать свои Apple Watch друзьям, дать им полные образцы для меня и расслабиться. Я собирался сделать их все сам; и я действительно не хотел тратить недели на то, чтобы вертеть рукой по кругу. Да да, я знаю, что результаты будут искажены, потому что модель будет обучена распознавать мои конкретные движения; но отчаянные времена требуют отчаянных мер, а сроки медленно, но верно подкрадываются ко мне; это были действительно отчаянные времена.

Новый план

Мне нужен был способ получить много образцов за короткое время, поэтому я надел часы и проанализировал, где большая часть моего времени была потеряна во время сбора.
Большую часть времени я тратил на то, чтобы останавливать и запускать сбор данных между образцами . Поэтому я решил попробовать собрать кучу сэмплов подряд, чтобы сократить это количество.
Это был шаг в правильном направлении, но он просто не достаточно хорош. Образцы собирались либо слишком быстро, либо слишком медленно, поэтому я увеличил время обработки. Это означало, что я все еще терял время на то, чтобы все образцы правильно вписывались в окна прогнозов в CreateML.

Так не пойдет. Мне нужно было доработать идею.

Итак, я вернулся к чертежной доске; Мне понравилась идея собрать большие наборы образцов за один сеанс, но я хотел свести к минимуму обработку данных, чтобы сократить как можно больше времени.
Теперь любой, кто меня знает, знает, что я музыкант, и я За эти годы я потратил слишком много времени на метроном.
Метрономы - лучшие друзья барабанщиков (иногда), и когда вы записываете музыку, вы хорошо с ними знакомитесь. Для тех, кто не знает, что такое метроном; он щелкает с постоянным числом ударов в минуту (b съедает p er m inute), и вы можете использовать его, встроенный в Google.

Итак, я собирался использовать метроном, чтобы поддерживать постоянную скорость, но как насчет времени обработки?

Я поискал в App Store приложение, которое я мог бы использовать на своих часах, которое предоставило бы мне образцы в форме CSV, и где я мог бы установить свою собственную частоту дискретизации.

SensorLog спешит на помощь!

Это означало, что я мог собирать данные с той частотой дискретизации, которую хотел использовать, и затем мог использовать количество отсчетов в секунду (Гц) и ударов в минуту метронома, чтобы определить, сколько строк моего вывода CSV будет соответствовать к одному образцу, используя щелчки метронома, чтобы убедиться, что я нажимаю свои реплики для запуска и завершения действия каждый раз.

Так, например, если мое действие занимает 1 секунду, я могу установить для своего метронома 60 ударов в минуту (или 120 ударов в минуту, если вы хотите больше промежуточных кликов), 60 ударов в минуту будет равняться одному щелчку в секунду. Я устанавливаю частоту дискретизации, равную той, которую я хочу передать в CreateML.
Я ставлю метроном на 4/4 и считаю вместе с такими щелчками;

1… 2 ... 3 ... 4 ... 1 ... 2… и т. Д.

Я начинаю действие на каждую 1, которую считаю, щелчком метронома и стремлюсь завершить его вовремя, когда считаю до 2, затем начинаю действие, когда считаю 3 щелчка, и заканчиваю это действие, когда считаю 4 и последний щелчок.
Так в основном; Начните действие с нечетными числами и вовремя завершите его с четными числами.

Это означает, что вы собираете данные 30 выборок в минуту каждую минуту!

Вам нужно будет изменить это в соответствии с вашими образцами и временем, необходимым для их завершения, но это позволит вам сохранить ваши образцы в едином порядке, что означает минимальную обработку!
Если вы, как и я, собираете образцы образцы только от себя; попробуйте по-разному, как вы выполняете действие. Трудно не попасть в ритм при щелчке метронома, но постарайтесь сделать некоторые действия более выраженными, а некоторые более тонкими. Некоторые из них выполняются немного быстрее, другие - немного медленнее. Это повысит точность вашей модели во время обучения.

Используя этот метод, я перешел от сбора отдельных образцов каждого действия к сбору нескольких образцов и их обработке, чтобы убедиться, что все они верны ... К добавлению файлов CSV, которые требовались рядом с без обработки вообще.
Я бы установил таймер, включил метроном, запустил SensorLog и провел 10 минут, вращая рукой в ​​определенном действие. Если учесть, что каждое действие занимало примерно 1 секунду; это много образцов собрано намного быстрее!

Если вы обрежете любые лишние строки, которые возникли перед вашей первой выборкой (почему бы не дать себе 4-кратное количество ударов, как полосу?), И любые строки, которые возникли между вашей последней выборкой и вашим нажатием, чтобы остановить сбор; CreateML разделит CSV на отдельные образцы, используя окно прогнозирования; и поскольку они настолько однородны, очень маловероятно, что найдутся образцы, которые не поместились бы идеально в эти окна. Чтобы заставить окна прогнозов правильно выровняться, потребовалось несколько попыток проб и ошибок, но как только вы узнаете, что ваши настройки соответствуют вашим образцам, готово!
Я использовал окно предсказания 100 с частотой дискретизации 50 Гц. Это наилучшим образом соответствовало моим данным и обеспечивало наилучшие результаты обучения.

Изюминкой является то, что вы можете разместить файлы CSV прямо на свой Mac из SensorLog, сэкономив еще больше времени. Это довольно новый способ ускорить сбор данных, и он почти сделал мой сбор данных увлекательным.

Последнее предупреждение: если ваши действия требуют, чтобы вы держали руку прямо перед собой под углом 90 градусов, чтобы завершить их, вы можете получить одно суперсильное (или болезненное) плечо и одно нормальное. Так что делайте регулярные перерывы!
Спасибо за чтение! Удачи с вашими приложениями! :)