какую технологию ml можно использовать для определения и отслеживания отдельных людей

Задачи и инструменты ML и их практическое применение

Машинное обучение – распространившийся термин, но не все понимают его верно. В этом материале эксперты направления аналитических решений ГК «КОРУС Консалтинг» Алена Гайбатова и Екатерина Степанова расскажут, что же на самом деле такое machine learning (ML), в каких случаях эту технологию стоит использовать в проектах, а также где машинное обучение активно применяется на практике.

Как работают с данными

Уже давно на встречах с заказчиками мы стали замечать, что все путают машинное обучение, искусственный интеллект (ИИ), большие данные и другие термины из этой области.

Итак, общее название технологии – искусственный интеллект. Он бывает двух типов – сильный (он же общий) и слабый. Мы не будем особенно обсуждать сильный ИИ, так как это решения уровня Терминатора. Мы к нему потихонечку приближаемся, но до сих пор он существует только в виде собранных вместе фрагментов слабого ИИ (как, например, в «умных» колонках).

Намного интереснее поговорить о слабом искусственном интеллекте. Он тоже делится на два типа. Первый – экспертные системы, алгоритмы, запрограммированные вручную (например, запрограммированный группой лингвистом алгоритм перевода слов из одного языка в другой).

Второй – так называемые data-driven системы, которые извлекают логику работы из каких-то исторических данных. У этого типа есть много терминов-синонимов, которые возникали с течением времени:

модные в 90-е и нулевые data mining и knowledge discovery from database (KDD),

data science, вошедший в обиход ближе к 2010-м,

big data популярная ныне. Единственное исключение, точнее дополнение, которое привносит именно этот термин – наличие огромного количества сложноструктурированных данных.

Для разных задач – разные алгоритмы

В соответствии с двумя типами слабого ИИ выводы из данных мы можем сделать вручную (при экспертных системах) и с помощью машинного обучения. Оно же в свою очередь подразделяется на два типа: классический ML и deep learning (с использованием глубоких нейронных сетей с большим количеством слоев).

В проектах на базе ML используются модели. Прежде всего, прогнозные, которые отвечают на базовые вопросы: к какой группе относится объект, какое числовое значение у него будет и так далее. В зависимости от того, на какой вопрос мы отвечаем, это могут быть модель классификатора или регресcии.

Классификаторы

Классификатор — это процесс, позволяющий сказать, к какой группе будет относиться тот или иной объект. Например, у кошек есть разные характеристики: длина хвоста, цвет шерсти, масса тела и другие параметры. По ним мы можем определить, к какой породе относится кошка. Если мы решаем эту задачу с помощью алгоритма, то этот алгоритм будет называться классификатором.

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

Рыжая ли у кота шерсть? Да: мы относим его сразу к классу персидских котов, все персидские коты оказываются в одной ветке. Нет: у нас возникает следующее условие — весит ли кот меньше 3 кг. Дерево условий создается в момент обучения алгоритма, а все новые элементы проходят по нему и оказываться в той или иной группе.

Этот алгоритм удобен с точки зрения бизнес-интерпретации результатов, так как мы не всегда можем сразу определить, по каким свойствам у нас разделились группы.

Регрессоры

Регрессор – это алгоритм, который не относит предмет исследования к определенному классу, а присваивает ему определенное число. Пример — алгоритм кредитного скоринга: у нас есть возраст заемщика, трудовой стаж, зарплата — и требуется рассчитать, через какое время клиент сможет выплатить кредит.

Кластеризация

Кластеризация отвечает на вопросы о том, как разбить исследуемые объекты на группы и чем объекты внутри одной группы похожи.

Самый популярный алгоритм кластеризации – метод ближайших соседей. Cнова к кошкам. Мы хотим разбить наших зверей на 4 группы. Наши объекты – снова точки на плоскости. Мы выбираем случайным образом центры наших групп, затем смотрим расстояние от центра группы до точек, ближайших к этому центру группы. После мы смещаем центры таким образом, чтобы расстояние до точек своей группы оказывалось меньше, чем до точек другой группы. Через нескольких итераций у нас получатся хорошо разделенные группы.

Cложность этого алгоритма заключается в том, что объекты не всегда хорошо делятся на группы — в связи с этим трудно оценить корректность результата даже с помощью специальной оценки.

Нейронные сети

Первая нейронная сеть появилась еще в 1950-х гг. Сейчас при помощи нейронных сетей можно ответить на любой вопрос, но лишь с одной оговоркой: ответ не всегда можно интерпретировать.

При работе с нейросетью на вход подается большой объем данных в виде числовых значений, у каждого из которых есть определенный вес. Мы суммируем эти значения и к этой сумме применяем операцию активации, после этого получаем некий прогноз. Так как нейросети используют большое количество скрытых слоев, операции активаций и сумм может быть много. В связи с тем, что этим алгоритмом можно обрабатывать большие объемы данных, модель хорошо работает с текстом, изображением и звуком.

Дополнительно в проектах ML используются оптимизационные методы для минимизации ошибок. В условиях ограничений они стараются найти лучшее решение задачи с помощью нахождения экстремумов функции и применения статистических методов.

Обучение с подкреплением

Это и есть тот самый сильный искусственный интеллект, о котором мы уже говорили выше. К примеру, по этому принципу работают беспилотные автомобили.

Система состоит из агента и среды. Для агента задано конечное число операций (на примере машины – максимальная скорость, торможение, поворот направо или налево и так далее). После совершения действия агент получает либо вознаграждение, если его действие приводит к правильному выполнению задачи, либо наказание, если действие, наоборот, отдаляет его от выполнения задания.

Мы также пользуемся алгоритмами Uplift, нейролингвистического программирования и рекомендательными моделями. Uplift позволяет понять, нужно ли коммуницировать с объектом, НЛП использует алгоритмы для анализа текста (к примеру, на этом принципе работает функция подсказки слов в смартфоне), а рекмодели могут быть персонализированными и не персонализированными.

Теория – на практике

Посмотрим, как эти модели используются на для решения реальных задач. Мы сформулировали предпосылки для использования ML в проектах. Безусловно, они не гарантируют стопроцентного успеха, но на старте могут значительно снизить риски.

Экономический эффект, который может принести оптимизация бизнес-процесса в несколько процентов;

Регулярный технический или бизнесовый процесс, при оптимизации которого регулярное принятие решений на среднем уровне и/или действия по заданному алгоритму могут значительно улучшиться;

Наличие данных, при которых может быть осуществлена оптимизация, за счет их анализа и обработки.

Одна из самых успешных отраслей в плане применения машинного обучения – это розничная торговля. Cвязано это с тем, что в ней много регулярных процессов

Например, категорийные менеджеры ежедневно занимаются управлением ассортиментом, промоакциями, ценообразованием, прогнозированием спроса, управлением логистикой. Оптимизация на доли процентов даже одного такого бизнес-процесса в масштабе торговой сети приобретает существенный эффект.

Задачи, которые решает ML в ритейле, включают в себя предсказание оттока клиентов, анализ продуктовых корзин, прогнозирование товаров в следующем чеке, распознавание ценников и товаров, прогноз закупок и спроса, оптимизация закупок и логистики, планирование промо, цен и ассортимента — или это лишь малая часть.

Ритейл не испытывает недостатка как в наличия разных данных, так и в их глубине истории. У ритейлеров есть история продаж, статистика поведения клиентов, история промоакций, исторический ассортимент, параметры товаров и магазинов, изображения ценников и товаров, история доставок и поступления товаров и многое другое. Оцифровка всего этого, чаще всего, не требуется.

Похуже с данными в сфере промышленности — хотя и там они есть. Это и исторические данные с датчиков о производительности, поломках, работе бригад, данные по расходу и поставкам сырья, отгрузкам и доставкам. Для производств каждый процент простоя – это существенные потери, поэтому именно способы его сокращения, как и сокращение запасов, становятся основными задачами для оптимизации. Поэтому в числе главных задач для ML здесь — предсказание поломок оборудования, маркировка похожих поломок, выявление закономерностей поломок, выявление факторов на снижения производительности, оптимизация расхода сырья в производстве, оптимизация заказов и времени поставок сырья, прогноз скорости доставки.

Еще две отрасли, в которых распространены проекты на базе искусственного интеллекта, это банки и телекоммуникации. Это и управление клиентскими рисками (кредитный скоринг), и оптимизация регулярных рассылок клиентам. Задачи, стоящие в этих проектах, разношерстны – от предсказания оттока клиентов до маркировки клиентов, от кросс-сейл кредитов и депозитов до предсказания крупных транзакций.

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

Количество примеров проектов, реализуемых на базе машинного обучения, множество, и успешные кейсы будут появляться все чаще. Но главное усвоить базовые знания о том, что в действительности используют специалисты по машинному обучению, и заранее просчитать, будет ли от вашего будущего ML-проекта бизнес-эффект.

В настоящее время крупные компании вкладывают большие средства в машинное обучение, потому что данная технология не только окупается, но и помогает найти новые подходы к реализации рутинных задач. Действительно, ИИ занимает все более значимое место на рынке, но это не значит, что машины нас заменят. Мы успешно расширяем наши способности за счет машин, именно для этого и существует машинное обучение.

Источник

Отслеживание экспериментов ML с использованием MLflow

Дата публикации Jul 13, 2019

Введение

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

Я думаю, что за эти годы, когда я практиковал науку о данных, я сталкивался с множеством способов, с помощью которых люди склонны решать эту проблему. Мой метод перехода обычно был бы листом Excel. Его легко использовать, легко визуализировать и легко передать внешним лицам.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

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

Это такая большая проблема, что она породила несколько компаний, посвятивших себя решению именно этой проблемы. Некоторые из тех, о которых я знаю:

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

Следует упомянуть TensorBoard, но он явно сделан для Tensorflow и глубокого обучения (Я не являюсь активным пользователем TensorBoard, не стесняйтесь поделиться со мной тем, что вы знаете в разделе комментариев, на благо всех).

MLflow

Другим вариантом будет MLflow. Запущенный Databricks, это в основномплатформа с открытым исходным кодом для всего жизненного цикла машинного обучения(дословно взято с их сайта).

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Моя среда MLflow

Для пользователей без Databricks MLflow может быть настроен отдельно и подключен к вашей среде. Такая же функциональность должна существовать. Оформить заказдокументацияБольше подробностей.

Эксперимент

Примечание: я только недавно начал использовать MLflow, поэтому весьма вероятно, что я упущу некоторые вещи.

Чтобы начать эксперимент с MLflow, сначала нужно использовать mlflow.set_experiment команда, затем путь к файлу эксперимента.

Затем вы можете начать думать о том, что вы хотите отслеживать в своем анализе / эксперименте. MLflow подразделяет их на 3 основных категории:

Отслеживание MLflow организовано вокруг концепцииработает, которые являются выполнением некоторого фрагмента кода науки[4], (двигаясь вперед, мы обозначим эту концепцию бега, используя курсивrun`)

Другие вещи, которые можно отслеживать на каждомбег— версия кода, время начала и окончания, а также исходный файл. Обратитесь кдокументациядля более подробной информации об этом.

Параметры отслеживания и метрики

В ячейке 37 записной книжки автор пытается итеративно исследовать различные комбинации параметров, чтобы наилучшим образом соответствовать модели ARIMA нашим данным. Давайте используем этот раздел кода и отслеживаем используемые параметры и генерируемые метрики.

Чтобы начать нашбег, мы используем mlflow.start_run(). Затем мы регистрируем qs а также ps параметры и model.aic метрика для MLFlow.БегПриведенный выше код даст следующий результат в пользовательском интерфейсе MLFLow.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Если мы хотим нажать на один из тех,бегмы попадем в следующее окно.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Прогоны совершены для Git

Последнее, что я нахожу действительно полезным, так как на самом деле фиксируетбегв Git. В настоящее время я не уверен, как это переводится в версию MLflow с самостоятельной настройкой, но в моем случае щелчок по ссылке на источник вернул бы меня к верной версии записной книжки в Databricks (ниже).

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Теперь давайте попробуем что-нибудь еще.

Хранение графиков и других файлов

Следуя предыдущему примеру, мы создали несколько моделей, чтобы определить наилучшие параметры, которые мы должны использовать для нашей модели ARIMA. В нашем следующем примере мы собираемся сохранить несколько артефактов, связанных с моделью; а именно краткое изложение модели и некоторые сюжеты.

Давайте сделаем это для нашей модели SARIMAX.

Как видно из приведенного выше кода, регистрация артефактов требует немного больше работы, чем обычно. Вместо возможности непосредственного сохранения графиков в MLflow, файл сначала должен быть сохранен где-то первым, прежде чем он может быть отправлен в корзину S3 MLflow.

В моем случае файлы сначала сохраняются в локальном кластере Databricks, а затем копируются в корзину S3 MLflow (которая в данном случае также находится внутри Databricks. В качестве альтернативы можно также определить внешнюю корзину S3 для каждого эксперимента и сохранить все связанные файлы. там.)

Для справки ниже показано, как хранящиеся артефакты отображаются в пользовательском интерфейсе.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

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

Сохранение модели

MLflow также позволяет сохранить обучаемую модель. Это можно сделать, либо войдя в систему как артефакт в MLflow (через log_model() ) или напрямую в локальную файловую систему (через save_model ).

Backtesting

В приведенном выше примере мы устанавливаем временное окно в 3 месяца и оцениваем среднеквадратическую оценку модели за период времени в 10 скользящих окон, где каждое движение вперед составляет 1 месяц. При каждой оценке мы также записываем график сравнения в MLflow для дальнейшего использования и проверки.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Погружаясь в метрики RMSE, мы можем видеть, как он работал во времени, когда он скользил по временному горизонту за 10 временных шагов. Мы можем видеть, что модель в целом стабильна в течение некоторого времени до пиков на 5-й итерации. Это вполне ожидаемо, если мы вернемся к тому, насколько волатильна цена Биткойна на приведенной выше диаграмме.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Резюме

MLflow является одним из многих инструментов, которые можно использовать для достижения этой цели. В этой статье я осветил некоторые из его особенностей, используя несколько примеров того, как его можно использовать для помощи специалистам по науке в повседневной рутинной работе.

В краткосрочной перспективе наличие хорошо управляемых результатов помогает в групповом общении и совместной работе, что особенно важно для удаленных команд.

В конечном счете, правильное управление деятельностью по моделированию и ее результатами имеет большое значение для сохранения усвоенных знаний и результатов, сокращения ошибок и обеспечения того, что прошлые исследования и результаты могут быть воспроизведены другими командами или их заменами.

Код, используемый в этом посте, доступен в моем githubВот,

Источник

Продвинутое компьютерное зрение. Введение в Прямое визуальное отслеживание

Сперва, мы представим некоторые типы методов визуального отслеживания. После, мы объясним как классифицировать их. Мы также поговорим о фундаментальных аспектах прямого визуального отслеживания, уделяя особое внимание методам, основанным на регионах, и методам основанным на градиентах. В будущих статьях мы представим подробный математический вывод алгоритма Лукаса-Канаде с акцентом на выравнивание изображений. И наконец, мы представим, как реализовать эти методы в Python. Давайте начнем!

Визуальное отслеживание, также известное как отслеживание объектов или отслеживание в видео, представляет собой задачу оценки траектории целевого объекта в сцене с использованием визуальной информации. Визуальная информация может поступать из различных источников изображений. Мы можем использовать оптические камеры, тепловизоры, ультразвук, рентген или магнитный резонанс.

Список наиболее распространенных устройств обработки изображений:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

На следующем изображении приведены примеры областей применения визуального отслеживания:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Теперь рассмотрим как мы можем классифицировать решения, доступные сегодня.

Классифицирование методов визуального отслеживания

Методы визуального отслеживания могут быть классифицированы по следующим основным компонентам:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Рассмотрим каждый компонент подробнее.

Представление цели

Во-первых, нам нужно выбрать, что мы отслеживаем. Этот компонент визуального отслеживания называется представление цели (target representation). Согласно Альперу Йилмазу (Alper Yilmaz) и его статье “Object tracking: A Survey”, опубликованной в 2006 году, существует несколько типичных представлений целей. Он выделил следующие представления:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Однако среди этих целевых представлений, bounding box (ограничивающая рамка) является наиболее распространенным методом. Причина в том, что bounding box легко определяет множество объектов.

Модель внешнего вида

Гистограмма изображения

Например, на изображении ниже мы можем заметить футболиста в синей форме, бегущего по полю. Игрок представлен bounding box’ом.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Данный bounding box определит гистограмму. Обычно мы используем гистограмму на изображении в оттенках серого, но также мы можем использовать цветовую гистограмму. На изображении выше мы можем представить цветовую гистограмму прямоугольного bounding box’а. Мы можем использовать эту гистограмму, чтобы отличить целевого игрока от зеленого фона.

Теперь проиллюстрируем это на примере. Например, у нас есть гистограмма где 70% синего цвета и 30% зеленого цвета. Это означает, что когда игрок движется нам необходимо передвигать bounding box по области и найти место с самым высоким процентом синего цвета. Таким образом, найдя рамку, мы всегда будем иметь идеальное совпадение с исходной гистограммой. Таким образом, мы сможем отследить игрока.

Интенсивность изображения

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Мы также можем представить цель с помощью filter bank, который вычисляет результирующее изображение, используя исходные значения интенсивности пикселей. В качестве модели внешнего вида мы можем использовать поля распределения. Эти типы моделей внешнего вида также называются методами на основе регионов (Region-based methods).

Признаки изображения

Еще одним очень популярным типом модели внешнего вида являются признаки изображения. Он основан на эталонном изображении целевого объекта, где набор различимых признаков может быть вычислен для представления цели. Для извлечения признаков часто используются несколько алгоритмов обнаружения объектов. Например такие алгоритмы как SIFT, SURF, ORB, Shi-Tomasi, которые мы рассмотрели в нашей статье “Как извлечь признаки из изображения в Python” (How to extract features from the image in Python).

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Разложение подпространства

Далее мы сосредоточимся на типах моделей внешнего вида, которые часто используются в методах отслеживания на основе региона.

Методы отслеживания на основе региона

Отслеживание на основе региона пришло из идеи отслеживания региона или части изображения. Как мы говорили раньше, мы будем представлять целевой объект с помощью bounding box’а. Чтобы отслеживать объекты, ограниченные bounding box’ом, нам необходимо определить подходящую модель внешнего вида. В приведенном ниже примере модель внешнего вида это шаблон интенсивности изображения. Здесь у нас есть эталонное изображение целевого объекта слева и мы ищем лучшее совпадение в исходном изображении.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

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

Естественно, если целевой объект движется более сложным образом, то нам необходимо настроить и использовать более сложные модели преобразования с дополнительными степенями свободы, как показано ниже:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

К примеру, если мы отслеживаем обложку книги, затем мы должны использовать проекционную модель которая имеет 8 степеней свободы. С другой стороны, если целевой объект не жесткий, то нам необходимо использовать деформируемую модель. Таким образом, мы могли бы использовать B-spline (Базисный сплайн) или Thin-Plate Splines (Тонкие пластинчатые сплайны) чтобы корректно описать деформацию объекта.

Деформируемы параметрические модели:

Splines (B- Splines, TPS, Multivariate)

Triangular meshes (Треугольная сетка)

Другой аспект прямых методов в том, что часто на практике мы используем позиции целевого объекта в предыдущих кадрах для инициализации поиска его текущей позиции. Итак, учитывая вектор параметров pt-1, нашей движущейся модели в предыдущем кадре t-1, наша задача это найти новый вектор pt, которая наилучшим образом соответствует эталонному и текущему изображениям.

Функция сходства

Это подводит нас к очень интересному вопросу: Что является лучшим совпадением для референса и текущего изображения? Чтобы найти лучшее совпадение нужно найти ту часть текущего изображения которая наиболее похожа на эталонное изображение. Это означает, что мы должны выбрать функцию сходства f между эталонным и исходным изображением. Это было использовано при сопоставлении шаблонов. В следующем примере мы видим, что сходство между первыми двумя изображениями должно быть больше, чем сходство между вторыми двумя изображениями.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Чтобы вычислить схожесть между шаблоном и исходным изображением, используется несколько функций сходства. Вот несколько из них:

Sum of Absolute Differences (SAD)

Sum of Squared Differences (SSD)

Structural Similarity Index (SSIM)

Итак, мы выяснили, что для отслеживания необходимо выбрать модель внешнего вида целевого объекта, модель движения и функцию сходства, чтобы определить, насколько эталонное изображение похоже на исходное изображение в видео. Учитывая параметры pt-1 для предыдущего кадра t-1, нам нужно разработать стратегию поиска новых параметров модели pt в текущий момент времени t. Наиболее простой подход заключается в определении локальной области поиска вокруг предыдущих параметров pt-1. В приведенном ниже примере мы будем двигаться от -20 пикселей до +20 пикселей по оси x и от -20 пикселей до +20 пикселей по оси y от положения целевого объекта в предыдущем кадре (предполагается, что у нас есть только трансляция).

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Если мы хотим улучшить исчерпывающий поиск в широкой окрестности предыдущего положения объекта, мы можем сократить поиск, используя наши предварительные знания о движении объекта. Например, мы можем использовать классическую систему фильтрации Калмана или более сложные фильтры, такие как фильтр частиц.

Методы основанные на градиентах

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

В следующем примере у нас есть случай, когда нам нужно рассчитать SSD (Sum of Squared Differences).

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

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

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

В примере выше справа мы видим двумерную функцию с высоты птичьего полета. В центре находится минимум, а затем вокруг него располагаются большие значения. Теперь, если мы захотим нарисовать эту функцию в одномерном виде, это будет выглядеть следующим образом:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Допустим, что мы ищем вдоль направления x. Сначала мы случайным образом выберем начальную позицию для x. Допустим, x=4. Затем вычислим градиент функции SSD. Далее мы узнаем, что нам нужно двигаться к минимуму функции. Градиент подскажет нам, в каком направлении нужно двигаться в исходном изображении.

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

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Сначала объясним, что значит несколько степеней свободы. Допустим, у нас есть исходное изображение прямоугольника и шаблонное изображение. Обратите внимание, что в приведенном ниже примере прямоугольник на оригинальном изображении слева является спроецированной версией шаблонного изображения справа.

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Однако теперь вычислить SSD будет невозможно. Одним из способов решения этой проблемы является обнаружение ключевых точек на обоих изображениях, а затем использование некоторого алгоритма сопоставления признаков, который найдет их совпадения. Однако мы также можем выполнить поиск, используя значения интенсивности изображения шаблона. Для этого мы применим трансформационное искривление. Как мы уже объясняли ранее в этой статье, мы умножим изображение на следующую матрицу перехода:

какую технологию ml можно использовать для определения и отслеживания отдельных людей. картинка какую технологию ml можно использовать для определения и отслеживания отдельных людей. какую технологию ml можно использовать для определения и отслеживания отдельных людей фото. какую технологию ml можно использовать для определения и отслеживания отдельных людей видео. какую технологию ml можно использовать для определения и отслеживания отдельных людей смотреть картинку онлайн. смотреть картинку какую технологию ml можно использовать для определения и отслеживания отдельных людей.

Это означает, что здесь у нас 8 степеней свободы, потому что в матрице у нас всего 8 параметров и одно число, которое фиксировано на 1. Таким образом, наш исходный прямоугольник теперь будет иметь изменение в перспективе. Это означает, что для расчета SSD, помимо нахождения параметров трансляции x и y, нам также необходимо найти другие параметры для представления вращения, масштабирования, перекоса и проекции.

Итак, основное преимущество градиентного спуска заключается в том, что при вращении, масштабировании и деформации искомого объекта нам не нужно перебирать 1000 и 1000 комбинаций, чтобы найти наилучшие параметры преобразования. С помощью градиентного спуска мы можем получить эти параметры с очень высокой точностью всего за несколько итераций. Таким образом, это значительная экономия вычислительных усилий.

Ссылки

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *