Все потоки
Поиск
Написать публикацию
Обновить
47.55

Обработка изображений *

Работаем с фото и видео

Сначала показывать
Порог рейтинга
Уровень сложности

Обнаружение птиц с помощью Azure ML Workbench

Время на прочтение19 мин
Количество просмотров5.5K
Задумывались ли вы, что перед биологами, помимо всего прочего стоит ряд важных задач? Им необходимо анализировать огромные объёмы информации для отслеживания динамики популяции, выявления редких видов и оценки воздействия. Под катом мы хотим рассказать вам о проекте по идентификации красноногих моевок на фотографиях, сделанных с помощью камер слежения. Вы узнаете подробности о разметке данных, обучении модели на платформе Azure Machine Learning Workbench с использованием Microsoft Cognitive Toolkit (CNTK) и Tensorflow, а также развертывание веб-службы прогнозирования.


Читать дальше →

Pediatric Bone Age Challenge. Deep Learning и много, много костей

Время на прочтение7 мин
Количество просмотров15K

Cоревнование по определению костного возраста. Заметки участника


6-го октября на радары Володи Игловикова попал очень интересный конкурс, организованный американскими рентгенологами из The Radiological Society of North America (RSNA) и Radiology Informatics Committee (RIC), и он бросил клич в сообществе ODS.ai



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

Задача


Костный возраст (bone age) — это условный возраст, которому соответствует уровень развития костей детей и подростков. Формирование скелета происходит в несколько стадий. Это используется в педиатрии для сравнения костного возраста с хронологическим, что позволяет вовремя заметить нарушения в работе эндокринной системы и системы обмена веществ.

Для определения костного возраста в основном используются две методики — GP Грейлиха и Пайла (Greulich and Pyle) и TW2 Таннера, Уайтхауза и Хили (Tanner, Whitehouse, Healy), разработанные во второй половине XX века. Обе методики основаны на рентгенограмме кисти и лучезапястного сустава. Благодаря большому количеству участков растущей ткани в костях и ядер окостенения,
Читать дальше →

Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения

Время на прочтение6 мин
Количество просмотров19K
Сегодня в магазинах приложений для платформ iOS и Android существует ограничение на размер приложения в 100 МБ. Магазин Apple для приложений, которые не укладываются в этот лимит, запрещает закачку при помощи мобильного интернета. В  Google Play же это строгий лимит на размер APK – все, что не укладывается в него, должно быть вынесено в файлы дополнений. Для пользователей с платным трафиком закачка большого приложения может быть довольно затратной, поэтому его размер нужно стараться уменьшить всеми силами.


В рамках этой статьи мы расскажем, с помощью каких приемов мы смогли уложиться в это ограничение на проекте Gardenscapes для платформы iOS. Статья касается в основном мобильных игр, но методы сжатия универсальны и могут пригодиться для любых проектов с тяжелой графикой. Для того, чтобы говорить о методах сжатия, нужно определиться с тем, как формируется архив приложения.
Читать дальше →

Глобальная теплокарта Strava: теперь в 6 раз горячее

Время на прочтение8 мин
Количество просмотров24K
Рад объявить о первом крупном обновлении глобальной тепловой карты в Strava Labs c 2015 года. Это обновление включает в себя в шесть раз больше данных, чем раньше —  в сумме 1 миллиард активностей со всей базы Strava по сентябрь 2017 года.

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

  • 1 миллиард активностей
  • 3 триллиона точек долготы/широты
  • 13 триллионов пикселей после растрирования
  • 10 терабайт исходных данных
  • Общая дистанция маршрутов: 27 миллиардов километров
  • Запись общего времени активности: 200 тысяч лет
  • 5% земной суши покрыто тайлами


Тепловая карта Москвы демонстрирует функцию поворота/наклона в Mapbox GL
Читать дальше →

Театр и ИТ: Шекспиру и не снилось

Время на прочтение9 мин
Количество просмотров12K
Привычно читать о проникновении информационных технологий на производство, в финансы, логистику, ритейл и другие сферы. А что если соединить театр и ИТ?

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



О наших экспериментах в области театрального искусства, о сложностях и победах я и расскажу. В этом посте также будет много фотографий: театр ведь зрелищное искусство. А для самых нетерпеливых сразу под катом выкладываю видеоспойлер. В этом видеоролике нет технических деталей (в отличие от поста), зато всего за три минуты вы узнаете о совместных проектах ЛАНИТ и Ермоловского театра.

Глубокое обучение с R и Keras на примере Carvana Image Masking Challenge

Время на прочтение18 мин
Количество просмотров14K


Привет, Хабр!

Пользователи R долгое время были лишены возможности приобщиться к deep learning-у, оставаясь в рамках одного языка программирования. С выходом MXNet ситуация стала меняться, но своеобразная документация и частые изменения, ломающие обратную совместимость, все еще ограничивают популярность данной библиотеки.

Гораздо привлекательнее выглядит использование R-интерфейсов к TensorFlow и Keras с бекендами на выбор (TensorFlow, Theano, CNTK), подробной документацией и множеством примеров. В этом сообщении будет разобрано решение задачи сегментации изображений на примере соревнования Carvana Image Masking Challenge (победители), в котором требуется научиться отделять автомобили, сфотографированные с 16 разных ракурсов, от фона. "Нейросетевая" часть полностью реализована на Keras, за обработку изображений отвечает magick (интерфейс к ImageMagick), параллельная обработка обеспечивается parallel+doParallel+foreach (Windows) или parallel+doMC+foreach (Linux).

Читать дальше →

Взлом Bitcoin по телевизору: обфускуй, не обфускуй, все равно получим QR

Время на прочтение13 мин
Количество просмотров49K

История про то, как секретный ключ для Bitcoin’a в виде QR-кода восстановили из размазанной картинки


image

Мы могли бы просто назвать этот пост «Насколько хорош QR-код и как мы его восстановили практически из ничего». Но гораздо интереснее, когда QR-код является ключом к кошельку на сумму $1000 в битках.

Убираем радиальное искажение с фото и видео при помощи библиотеки openCV и языка python

Время на прочтение5 мин
Количество просмотров30K

В данной статье будет рассказываться о применении библиотеки машинного зрения (openCV) для удаления эффекта радиального искажения (дисторсии) с фото и видео. Данный эффект также известен как эффект рыбьего глаза (fisheye) или distortion. Решение написать данную статью было принято после нескольких дней поиска информации в интернете. Не смотря на то, что есть гайды на английском языке, они не объясняют как правильно установить openCV, чтобы все работало. В статье присутствует готовый код.


Сразу привожу фото итогового результата. Слева оригинальное фото, справа — обработанное:


before after

Читать дальше →

Конкурс Topcoder «Konica-Minolta Pathological Image Segmentation Challenge». Заметки участника

Время на прочтение5 мин
Количество просмотров4.4K

Привет! Пока мы ждём субботу и Avito Data Science Meetup: Computer Vision, расскажу вам про моё участие в соревновании по машинному обучению KONICA MINOLTA Pathological Image Segmentation Challenge. Хотя я уделил этому всего несколько дней, мне повезло занять 2 место. Описание решения и детективная история под катом.


Читать дальше →

Качественное уменьшение изображений за константное время

Время на прочтение8 мин
Количество просмотров28K

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


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



Уменьшение изображения 4928×3280 до 256×170 ближайшим соседом.


Рекомендую смотреть примеры из статьи в браузере в масштабе 100% и без ретины. То есть по максимуму исключить ресайз при просмотре.

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



Точки, которые попадут в конечное изображение размером 20×13.
Читать дальше →

Оптимизация метода Виолы и Джонса для платформы Эльбрус

Время на прочтение12 мин
Количество просмотров8.5K

Метод (алгоритм) Виолы и Джонса [1] является одним из способов выявления границ объектов на изображении. Хотя алгоритм, разработанный П. Виолой и М. Джонсом еще в 2001 году, был первоначально ориентирован на быстрый поиск лиц на изображениях, сейчас разнообразные вариации этого популярного алгоритма с успехом используются в различных задачах поиска границ:


  • образов пешеходов [2],
  • образов автомобилей [3],
  • образов дорожных знаков [4],

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

Читать дальше →

Пишем движок трёхмерного ретро-шутера с нуля

Время на прочтение15 мин
Количество просмотров35K

Мне всегда нравились классические шутеры от первого лица 90-х. Я часами просиживал за моим 386-м, играя Doom, потрясённый тем, как кому-то удалось написать код, отрисовывающий на моём экране 3D-графику в реальном времени с отличным разрешением 320x200. Я немного знал программирование (только что начал изучать BASIC), поэтому осознавал, что глубоко внутри это всего лишь куча математики и байтов, записываемых в видеопамять. Но в то время даже массивы для меня были довольно сложным понятием, поэтому я не мог даже начать постигать всю сложность 3D-рендеринга.

В то время все писали 3D-движки с нуля, потому что другого способа не было. Но сегодня написание логики 3D-рендеринга с нуля скорее всего окажется плохой идеей. Очень плохой. Почти как изобретение колеса! При наличии огромного количества 3D-движков и библиотек, намного более хорошо протестированных и оптимизированных, чем то, что вы можете сделать сами, нет никаких причин для разумного разработчика начинать писать собственный движок.

Если только…

Представьте, что вы можете вернуться в машине времени назад в 90-е, когда ещё не было OpenGL и DirectX, не было видеопроцессоров. Всё что у вас есть — ЦП и экран, заполненный пикселями. Вам всё придётся писать самому.

Если эта идея кажется вам интересной, то вы не одиноки: это именно то, что можно сделать на такой выдуманной консоли, как TIC-80.
Читать дальше →

Приглашение на Meetup по компьютерному зрению в Avito, 28 октября

Время на прочтение2 мин
Количество просмотров4.5K

Мы рады пригласить вас на встречу специалистов по анализу данных, которая пройдет в московском офисе Avito 28-го октября. Митап посвящен компьютерному зрению. Вы сможете узнать о передовых достижениях в задачах распознавания лиц и сегментации изображений, о real-time адаптации нейросетевых и классических алгоритмов, а также мы представим наш сервис — AvitoNet. Подробная программа и ссылка на регистрацию под катом.


Читать дальше →

Ближайшие события

Смена пола и расы на селфи с помощью нейросетей

Время на прочтение10 мин
Количество просмотров80K

Привет, Хабр! Сегодня я хочу рассказать вам, как можно изменить свое лицо на фото, используя довольно сложный пайплайн из нескольких генеративных нейросетей и не только. Модные недавно приложения по превращению себя в даму или дедушку работают проще, потому что нейросети медленные, да и качество, которое можно получить классическими методами компьютерного зрения, и так хорошее. Тем не менее, предложенный способ мне кажется очень перспективным. Под катом будет мало кода, зато много картинок, ссылок и личного опыта работы с GAN'ами.

Читать дальше →

На пути к естественному интеллекту

Время на прочтение8 мин
Количество просмотров19K
Machine Learning с каждым днём становится всё больше. Кажется, что любая компания, у которой есть хотя бы пять сотрудников, хочет себе разработать или купить решение на машинном обучении. Считать овец, считать свёклу, считать покупателей, считать товар. Либо прогнозировать всё то же самое.

image

Формула проста: если цена внедрения ниже, чем ты платишь охраннику — ставь управляемый шлагбаум. Потери от бездельников выше стоимости внедрения биометрической системы учёта времени — внедряй. «Эксперт» берёт взятки за контроль качества продукта? Продублируй его системой контроля качества.

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

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

Рубрика «Читаем статьи за вас». Сентябрь 2017

Время на прочтение13 мин
Количество просмотров20K


Привет, Хабр! Мы продолжаем нашу традицию и снова выпускаем ежемесячный набор рецензий на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество ODS!


Статьи выбираются либо из личного интереса, либо из-за близости к проходящим сейчас соревнованиям. Напоминаем, что описания статей даются без изменений и именно в том виде, в котором авторы запостили их в канал #article_essence. Если вы хотите предложить свою статью или у вас есть какие-то пожелания — просто напишите в комментариях и мы постараемся всё учесть в дальнейшем.

Читать дальше →

OpenCV. Поиск дорожных знаков методом контурного анализа в Android

Время на прочтение4 мин
Количество просмотров11K
Привет Хабр!

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

Почему контурный анализ?

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



Однако, на практике оказалось довольно непросто реализовать поиск нужных коэффициентов на платформе Android (Виджеты OpenCV применять не пробовал, вместо этого разделил экран на фреймы, где слева настройки, справа видеопоток с задней камеры). Конкретная реализация UI и логики проекта доступна по ссылке внизу.
Читать дальше →

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

Время на прочтение11 мин
Количество просмотров17K
Привет, Хабр! Продолжаем серию материалов от выпускника нашей программы Deep Learning, Кирилла Данилюка, об использовании сверточных нейронных сетей для распознавания образов — CNN (Convolutional Neural Networks).

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

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

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

Чтобы иметь базовое представление о работе STN, взгляните на 2 примера ниже:
Слева: исходное изображение. Справа: то же изображение, преобразованное STN. Spatial transformers распознают наиболее важную часть изображения и затем масштабируют или вращают его, чтобы сфокусироваться на этой части.
Читать дальше →

Оцифровка и аппроксимация графиков функций при помощи Wolfram Mathematica и Graph Digitizer

Время на прочтение9 мин
Количество просмотров45K
С задачей оцифровки графиков функций и кривых приходится сталкиваться почти каждому инженеру и студенту. Традиционный «ручной» метод очень неудобен и к тому же вносит большие погрешности в данные. Для единоразовой задачи этот метод не так плох, но если графиков больше чем один и на каждом изображена не одна кривая, а семейство кривых?

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

image
Читать дальше →

Компьютерное зрение. Ответы экспертов Intel

Время на прочтение15 мин
Количество просмотров15K
Две недели назад мы предложили читателям Хабры задать свои вопросы создателям библиотеки компьютерного зрения OpenCV. Вопросов было задано много, причем, интересных — значит, эта тема интересует не только компанию Intel, но и широкие массы разработчиков. Без лишних слов переходим к публикации ответов и приглашаем к их обсуждению. А также объявляем авторов лучших вопросов! В самом конце поста.


Читать дальше →

Вклад авторов