Как стать автором
Обновить
44
Карма
0
Рейтинг
Илья Захаркин @izakharkin

Computer Vision & Graphics RnD

  • Публикации
  • Комментарии

C/C++ из Python (ctypes)

PythonC++C
Tutorial
main

Про то как вызывать Python из C написал в прошлой статье, теперь поговорим как делать наоборот и вызывать C/C++ из Python3. Раз начал писать об этом, то раскроем всю тему до конца. Тем более, что ни чего сложного здесь нет тоже.

Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры33.6K
Комментарии 44

Новости

Показать еще

Фильтр Калмана

АлгоритмыМатематика
Tutorial


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →
Всего голосов 178: ↑173 и ↓5 +168
Просмотры333.8K
Комментарии 84

Как подружить PyTorch и C++. Используем TorchScript

Блог компании Open Data ScienceПрограммированиеC++Обработка изображенийМашинное обучение
Tutorial

Около года назад разработчики PyTorch представили сообществу TorchScript — инструмент, который позволяет с помощью пары строк кода и нескольких щелчков мыши сделать из пайплайна на питоне отчуждаемое решение, которое можно встроить в систему на C++. Ниже я делюсь опытом его использования и постараюсь описать встречающиеся на этом пути подводные камни. Особенное внимание уделю реализации проекта на Windows, поскольку, хотя исследования в ML обычно делаются на Ubuntu, конечное решение часто (внезапно!) требуется под "окошками".


Примеры кода для экспорта модели и проекта на C++, использующего модель, можно найти в репозиториии на GitHub.


Читать дальше →
Всего голосов 51: ↑51 и ↓0 +51
Просмотры10.3K
Комментарии 5

Как мы учили искусственный интеллект отвечать на вопросы в поддержку. Опыт Яндекс.Такси

Блог компании ЯндексРазработка мобильных приложенийМашинное обучениеИскусственный интеллектNatural Language Processing
Идеальных сервисов не бывает — иногда у пользователя возникают вопросы к техподдержке. Трудно сказать, что в таких случаях неприятнее — попытки сложить из шаблонных реплик бота комбинацию, способную решить проблему, или ожидание ответа специалиста, который уже полдня как вот-вот с вами свяжется.

В Яндекс.Такси из двух вариантов выбрали третий — с помощью машинного интеллекта создать техподдержку с человеческим лицом. Меня зовут Татьяна Савельева, моя группа занимается машинным обучением на неструктурированных данных. Под катом — делюсь пользовательскими инсайтами, рассказываю как автоматизировать сложный процесс, организовать работу совершенно разных команд и, конечно же, применить на практике Deep learning и технические хаки (куда без них).


Читать дальше →
Всего голосов 36: ↑32 и ↓4 +28
Просмотры13.7K
Комментарии 70

Нечёткий поиск в тексте и словаре

Алгоритмы

Введение


Алгоритмы нечеткого поиска (также известного как поиск по сходству или fuzzy string search) являются основой систем проверки орфографии и полноценных поисковых систем вроде Google или Yandex. Например, такие алгоритмы используются для функций наподобие «Возможно вы имели в виду …» в тех же поисковых системах.

В этой обзорной статье я рассмотрю следующие понятия, методы и алгоритмы:
  • Расстояние Левенштейна
  • Расстояние Дамерау-Левенштейна
  • Алгоритм Bitap с модификациями от Wu и Manber
  • Алгоритм расширения выборки
  • Метод N-грамм
  • Хеширование по сигнатуре
  • BK-деревья
А также проведу сравнительное тестирование качества и производительности алгоритмов.
Читать дальше →
Всего голосов 171: ↑170 и ↓1 +169
Просмотры217.3K
Комментарии 33

Рубрика «Читаем статьи за вас». Август 2017

Блог компании Open Data ScienceАлгоритмыОбработка изображенийМатематикаМашинное обучение

image


Привет, Хабр! С этого выпуска мы начинаем хорошую традицию: каждый месяц будет выходить набор рецензий на некоторые научные статьи от членов сообщества Open Data Science из канала #article_essence. Хотите получать их раньше всех — вступайте в сообщество ODS!
Статьи выбираются либо из личного интереса, либо из-за близости к проходящим сейчас соревнованиям. Если вы хотите предложить свою статью или у вас есть какие-то пожелания — просто напишите в комментариях и мы постараемся всё учесть в дальнейшем.

Читать дальше →
Всего голосов 46: ↑44 и ↓2 +42
Просмотры14K
Комментарии 3

Вижу, значит существую: обзор Deep Learning в Computer Vision (часть 2)

Блог компании Московский физико-технический институт (МФТИ)ПрограммированиеОбработка изображенийМашинное обучениеИскусственный интеллект
Продолжаем постигать современную магию (компьютерное зрение). Часть 2 не значит, что нужно сначала читать часть 1. Часть 2 значит, что теперь всё серьёзно — мы хотим понять всю мощь нейросетей в зрении. Детектирование, трекинг, сегментация, оценка позы, распознавание действий… Самые модные и крутые архитектуры, сотни слоёв и десятки гениальных идей уже ждут вас под катом!


Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры19.5K
Комментарии 15

NVIDIA Jetson Nano: тесты и первые впечатления

PythonПрограммированиеГаджетыКомпьютерное железоDIY или Сделай сам
Привет, Хабр.

Относительно недавно, в этом, 2019 году, NVIDIA анонсировала одноплатный компьютер совместимого с Raspberry Pi форм-фактора, ориентированный на AI и ресурсоемкие расчеты.



После его появления в продаже, стало интересно посмотреть, как это работает и что на нем можно делать. Стандартные бенчмарки использовать не так интересно, так что придумаем свои, для всех тестов в тексте приведены исходники. Для тех, кому интересно что получилось, продолжение под катом.
Читать дальше →
Всего голосов 43: ↑41 и ↓2 +39
Просмотры61.6K
Комментарии 40

Нейросетевая игра в имитацию

Блог компании Open Data ScienceАлгоритмыОбработка изображенийМатематикаМашинное обучение

Здравствуйте, коллеги. В конце 1960-ых годов прошлого века Ричард Фейнман прочитал в Калтехе курс лекций по общей физике. Фейнман согласился прочитать свой курс ровно один раз. Университет понимал, что лекции станут историческим событием, взялся записывать все лекции и фотографировать все рисунки, которые Фейнман делал на доске. Может быть, именно после этого у университета осталась привычка фотографировать все доски, к которым прикасалась его рука. Фотография справа сделана в год смерти Фейнмана. В верхнем левом углу написано: "What I cannot create, I do not understand". Это говорили себе не только физики, но и биологи. В 2011 году, Крейгом Вентером был создан первый в мире синтетический живой организм, т.е. ДНК этого организма создана человеком. Организм не очень большой, всего из одной клетки. Помимо всего того, что необходимо для воспроизводства программы жизнедеятельности, в ДНК были закодированы имена создателей, их электропочты, и цитата Ричарда Фейнмана (пусть и с ошибкой, ее кстати позже исправили). Хотите узнать, к чему эта прохладная тут? Приглашаю под кат, коллеги.

Читать дальше →
Всего голосов 75: ↑75 и ↓0 +75
Просмотры40.6K
Комментарии 32

Введение в архитектуры нейронных сетей

Блог компании Конференции Олега Бунина (Онтико)Высокая производительностьData MiningBig DataМашинное обучение


Григорий Сапунов (Intento)


Меня зовут Григорий Сапунов, я СТО компании Intento. Занимаюсь я нейросетями довольно давно и machine learning’ом, в частности, занимался построением нейросетевых распознавателей дорожных знаков и номеров. Участвую в проекте по нейросетевой стилизации изображений, помогаю многим компаниям.

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

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

Дальше я расскажу про важные тренды, что происходит в этой области. Затем мы углубимся в архитектуру нейросетей, рассмотрим 3 основных их класса. Это будет самая содержательная часть.

После этого рассмотрим 2 сравнительно продвинутых темы и закончим небольшим обзором фреймворков и библиотек для работы с нейросетями.
Читать дальше →
Всего голосов 54: ↑51 и ↓3 +48
Просмотры128.9K
Комментарии 2

Вижу, значит существую: обзор Deep Learning в Computer Vision (часть 1)

Блог компании Московский физико-технический институт (МФТИ)ПрограммированиеОбработка изображенийМашинное обучениеИскусственный интеллект
Компьютерное зрение. Сейчас о нём много говорят, оно много где применяется и внедряется. И как-то давненько на Хабре не выходило обзорных статей по CV, с примерами архитектур и современными задачами. А ведь их очень много, и они правда крутые! Если вам интересно, что сейчас происходит в области Computer Vision не только с точки зрения исследований и статей, но и с точки зрения прикладных задач, то милости прошу под кат. Также статья может стать неплохим введением для тех, кто давно хотел начать разбираться во всём этом, но что-то мешало ;)

image
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры17.7K
Комментарии 5

Распознавание дорожных знаков с помощью CNN: Spatial Transformer Networks

Блог компании New Professions LabData MiningОбработка изображенийBig DataМашинное обучение
Привет, Хабр! Продолжаем серию материалов от выпускника нашей программы Deep Learning, Кирилла Данилюка, об использовании сверточных нейронных сетей для распознавания образов — CNN (Convolutional Neural Networks).

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

Spatial Transformer Network (STN) — один из примеров дифференцируемых LEGO-модулей, на основе которых можно строить и улучшать свою нейросеть. STN, применяя обучаемое аффинное преобразование с последующей интерполяцией, лишает изображения пространственной инвариантности. Грубо говоря, задача STN состоит в том, чтобы так повернуть или уменьшить-увеличить исходное изображение, чтобы основная сеть-классификатор смогла проще определить нужный объект. Блок STN может быть помещен в сверточную нейронную сеть (CNN), работая в ней по большей части самостоятельно, обучаясь на градиентах, приходящих от основной сети.

Весь исходный код проекта доступен на GitHub по ссылке. Оригинал этой статьи можно посмотреть на Medium.

Чтобы иметь базовое представление о работе STN, взгляните на 2 примера ниже:
Слева: исходное изображение. Справа: то же изображение, преобразованное STN. Spatial transformers распознают наиболее важную часть изображения и затем масштабируют или вращают его, чтобы сфокусироваться на этой части.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры11.8K
Комментарии 6

Нейросетевой синтез речи своими руками

Блог компании Центр речевых технологий (ЦРТ)Машинное обучение
Из песочницы
Синтез речи на сегодняшний день применяется в самых разных областях. Это и голосовые ассистенты, и IVR-системы, и умные дома, и еще много чего. Сама по себе задача, на мой вкус, очень наглядная и понятная: написанный текст должен произноситься так, как это бы сделал человек.

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



Я решил попробовать сделать полностью нейросетевой синтез своими руками, а заодно и поделиться с сообществом своим опытом. Что из этого получилось, можно узнать, заглянув под кат.
Читать дальше →
Всего голосов 62: ↑61 и ↓1 +60
Просмотры54.1K
Комментарии 22

Как заработать на порно, побеждая в хакатонах. Советы победителя, интервью с Артемом Куприяновым

Я пиарюсь
Доброго времени суток, уважаемый Geektimes!

Скорее всего, многие из вас слышали про хакатоны. В последнее время в России проходит довольно много подобных мероприятий таких как Whateverhack , AI.Hack или Hack.Moscow. Мне удалось, благодаря комьюнити хакатонщиков Russian Hackers, взять интервью у Артема Куприянова, который сумел добиться серьезных успехов в выступлении на хакатонах. Наш герой живет в Москве, учится на 3 курсе ФИВТ МФТИ, работает Middle Data Scientist'ом в Sticker.Place. Он рассказал, как готовится к хакатонам и чем они помогли ему в жизни.

Это Артем

И он выиграл 8 хакатонов
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Просмотры9.2K
Комментарии 2

Автоэнкодеры в Keras, Часть 4: Conditional VAE

PythonАлгоритмыОбработка изображенийМатематикаМашинное обучение
Tutorial

Содержание



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

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

    Что тут писать, вот так выглядели сгенерированные цифры:

    Картинка


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

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


Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Просмотры14.9K
Комментарии 12

Когда данных действительно много: Vowpal Wabbit

Блог компании MLClassPythonData MiningBig Data
Привет, хабр!



В предыдущих двух постах (раз, два) мы расмотрели основные алгоритмы и техники, применяющиеся участниками соревнований Kaggle. Сегодня хотелось бы пойти дальше и поговорить про то, с какими трудностями встречаются исследователи при разработке алгоритмов в случае, когда данных очень много и обучаться приходится на выборках, которые не помещаются в память. Сразу стоит отметить, что это происходит довольно часто, даже на самом Kaggle (в данной задаче обучающая выборка имеет обьем в несколько гигабайт и новичку может быть просто не понятно, что с этим делать). Ниже мы рассмотрим алгоритмы машинного обучения и инструменты, справляющиеся с данной проблемой.
Читать дальше →
Всего голосов 27: ↑23 и ↓4 +19
Просмотры41.3K
Комментарии 13

Бесплатная GPU Tesla K80 для ваших экспериментов с нейросетями

*nixGPGPUМашинное обучениеGoogle Cloud Platform


Около месяца назад Google сервис Colaboratory, предоставляющий доступ к Jupyter ноутбукам, включил возможность бесплатно использовать GPU Tesla K80 с 13 Гб видеопамяти на борту. Если до сих пор единственным препятствием для погружения в мир нейросетей могло быть отсутствие доступа к GPU, теперь Вы можете смело сказать, “Держись Deep Learning, я иду!”.


Я попробовал использовать Colaboratory для работы над kaggle задачами. Мне больше всего не хватало возможности удобно сохранять натренированные tensorflow модели и использовать tensorboard. В данном посте, я хочу поделиться опытом и рассказать, как эти возможности добавить в colab. А напоследок покажу, как можно получить доступ к контейнеру по ssh и пользоваться привычными удобными инструментами bash, screen, rsync.

Читать дальше →
Всего голосов 44: ↑42 и ↓2 +40
Просмотры60.6K
Комментарии 29

Почему я ушёл из Google и начал работать на себя

Управление разработкойУправление проектамиУправление персоналомКарьера в IT-индустрии
Перевод
Последние четыре года я работал разработчиком программного обеспечения в Google, но 1 февраля уволился, потому что они не сделали мне подарок на Рождество.

Шучу, на самом деле всё немного сложнее.

Первые два года


Первые два года я любил Google.

Когда при ежегодном опросе сотрудников мне задавали вопрос, вижу ли я себя в Google через пять лет, я отвечал «разумеется, без вариантов».

Ну конечно я буду в Google через пять лет. Я окружён лучшими инженерами в мире, использую самые продвинутые инструменты разработки в мире и кушаю самую бесплатную в мире еду.


Мой обычный день в Google.
— Ещё тортика, господин Программист? Он бесплатен в любом количестве.
— Не сегодня, Пьер. Я опаздываю на массаж, он тоже бесплатный.

Читать дальше →
Всего голосов 222: ↑219 и ↓3 +216
Просмотры136.4K
Комментарии 444

Классификация объектов в режиме реального времени

Блог компании DataArtPythonОбработка изображенийМашинное обучениеРазработка для интернета вещей


Автор: Игорь Пантелеев, Software Developer, DataArt

Распознавание изображений очень широко используется в машинном обучении. В этой области существует множество различных решений, однако потребностям нашего проекта ни оно из них не удовлетворяло. Нам понадобилось полностью локальное решение, которое способно работать на крошечном компьютере и передавать результаты распознавания на облачный сервис. В этой статье описывается наш подход к созданию решения для распознавания изображений с помощью TensorFlow.
Читать дальше →
Всего голосов 29: ↑28 и ↓1 +27
Просмотры35K
Комментарии 15

Многорукие бандиты: введение и алгоритм UCB1

Блог компании SurfingbirdАлгоритмы
Tutorial
Это первый пост из блога Surfingbird, который я выношу в общие хабы алгоритмов и искусственного интеллекта; честно говоря, раньше просто не догадался. Если интересно, заходите к нам, чтобы прочесть предыдущие тексты, – я не знаю, что произойдёт, если просто добавить новые хабы к постам несколькомесячной давности.

Краткое содержание предыдущих серий о рекомендательных системах:

В этот раз начинаем новую тему – о многоруких бандитах. Бандиты – это самая простая, но от этого только более важная постановка задачи в так называемом обучении с подкреплением


Читать дальше →
Всего голосов 41: ↑36 и ↓5 +31
Просмотры41.5K
Комментарии 13

Информация

В рейтинге
5,874-й
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность