Рубрика «обработка изображений» - 34

Привет!

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

Как устроен баркод, и что закодировано на этой картинке?
Как устроен штрихкод? - 1

Попробуем разобраться, заодно напишем декодер таких кодов.Читать полностью »

Зачем нужна низкоуровневая оптимизация на Эльбрусе или как ускорить распознающую систему в полтора раза - 1

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

В качестве распознающей системы была рассмотрена система распознавания объектов живописи “в неконтролируемых условиях методом с обучением по одному примеру” [1]. Эта система строит описание изображения на основе особых точек и их дескрипторов, по которому выполняет поиск в индексированной базе картин. Мы проанализировали производительность данной системы и выделили наиболее времязатратную низкоуровневую часть алгоритма, который затем оптимизировали с помощью инструментов платформы Эльбрус.

Читать полностью »

После 18-го февраля начнется открытый и бесплатный курс "Deep Learning на пальцах".

Курс предназначен для того, чтобы разобраться с современным deep learning с нуля, и не требует знаний ни нейросетей, ни machine learning вообще. Лекции стримами на Youtube, задания на Питоне, обсуждения и помощь в лучших русскоязычных чат-сообществах — ODS.ai и ClosedCircles.

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

Одновременно и в том же объеме курс будет читаться для магистрантов Новосибирского Государственного Университета, а также студентов CS центра Новосибирска.

Выглядеть объяснение на пальцах будет примерно так:

Открытый курс «Deep Learning на пальцах» - 1

Главная ссылка — dlcourse.ai. Подробности ниже.

Читать полностью »

image

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

Как и большинство современных IT-решений, можно сравнить разработку нашей системы со сборкой конструктора Lego, когда мы берем много маленьких деталек, инструкцию и создаем из этого готовую модель. Вот такую инструкцию: какие детали взять и как их применить для того, чтобы ваша GPU смогла подбирать похожие товары по фотографии, — вы и найдете в этой статье.

Из каких деталей построена наша система:

  • детектор и классификатор одежды, обуви и сумок на изображениях;
  • краулер, индексатор или модуль работы с электронными каталогами магазинов;
  • модуль поиска похожих изображений;
  • JSON-API для удобного взаимодействия с любым устройством и сервисом;
  • веб-интерфейс или мобильное приложение для просмотра результатов.

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

Постановка задачи и создание рубрикатора

Задача и основной use-case системы звучит довольно просто и понятно:

  • пользователь подает на вход (например, посредством мобильного приложения) фотографию, на которой присутствуют предметы одежды и/или сумки и/или обувь;
  • система определяет (детектирует) все эти предметы;
  • находит к каждому из них максимально похожие (релевантные) товары в реальных интернет-магазинах;
  • выдает пользователю товары с возможностью перейти на конкретную страницу товара для покупки.

Говоря проще, цель нашей системы — ответить на знаменитый вопрос: “А у вас нет такого же, только с перламутровыми пуговицами?”
Читать полностью »

Своя видео-платформа — ffmpeg и качество кодирования видео. Part 2 - 1
Lenna любит хорошо выглядеть — фотомодель в конце концов. Ходят легенды, что добавление её в заголовок статьи, связанной с обработкой визуальных данных даёт +5 к шансу на плюсы.

Продолжаю раскрывать особенности работы видео сервисов. Сегодня заметки про параметры кодирования и их выбор.
Первая часть

Большинство кодеков предлагают достаточно сбалансированные значения по умолчанию, позволяя получить нормальный результат без долгого подбора параметров. Однако, когда речь идёт о большом архиве видеоматериала, об ограничениях на битрейт, соображениях совместимости с оборудованием клиента и разумном желании сохранить качество оригинала, всё становится интереснее.
К сожалению, волшебной кнопки «скодировать совсем хорошо» не предусмотрено. Как и аналога caniuse для параметров кодирования. Придётся разбираться в особенностях работы кодеков.
Читать полностью »

image

Недавно наряду с реплеями minmax.gg/chickendinner мы выпустили новую функцию, отображающую видео, транслируемые участвующими в матче PUBG Twitch-стримерами. Чтобы реализовать её, нам нужно было распознавать Twitch-стримеров по их внутриигровым именам, что оказалось довольно интересной задачей.
Читать полностью »

image

Алгоритм Wave Function Collapse генерирует битовые изображения, локально подобные входному битовому изображению.

Локальное подобие означает, что

  • (C1) Каждый паттерн NxN пикселей в выходных данных должен хотя бы раз встречаться во входных данных.
  • (Слабое условие C2) Распределение паттернов NxN во входных данных должно быть подобным распределению паттернов NxN в значительно большом количестве наборов выходных данных. Другими словами, вероятность встречи определённого паттерна в выходных данных должна быть близка к плотности таких паттернов во входных данных.

Читать полностью »

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

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

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

Недавно закончились соревнования на kaggle по поиску судов на море. Компания Airbus предлагала провести анализ космических снимков моря как с судами так и без. Всего 192555 картинок 768х768х3 — это 340 720 680 960 байт если uint8 и это громадный объем информации и возникло смутное подозрение, что не все картинки нужны для обучения сети и в таком количестве информации очевидны повторы и избыточность. При обучении сети принято некоторую часть данных отделять и не использовать в обучении, а использовать для проверки качества обучения. И если один и тот же участок моря попал на два разных снимка и при этом один снимок попал в тренировочную последовательность, а другой в проверочную, то проверка смысл потеряет и сеть переобучится, мы не проверим свойство сети обобщать информацию, ведь данные те же самые. Борьба с эти явлением отняла много сил и времени GPU участников. Как обычно, победители и призеры не торопятся показать своим поклонникам секреты мастерства и выложить код и нет возможности его изучить и поучиться, поэтому займемся теорией.
Читать полностью »

Жуки атакуют - 1 Я уже делал на Хабре пост про поражения сибирских лесов опасным вредителем — уссурийским полиграфом. Этот чрезвычайно плодовитый и опасный жук способен за короткое время уничтожить огромные площади пихтовых лесов и, к сожалению, это получается у него куда лучше, нежели усилия людей по борьбе с опасным насекомым. Основной проблемой мониторинга лесов в зоне поражения жуком является нехватка специалистов и современных методик быстрого и точного анализа состояния пораженного леса. Однако, некоторые позитивные моменты всё же есть. На схватку с опасным вредителем выходят беспилотные летательные аппараты. БПЛА. Вернее сказать вылетают…

Читать полностью »

OpenCV — библиотека с историей непрерывной разработки в 20 лет. Возраст, когда начинаешь копаться в себе, искать предназначение. Есть ли проекты на ее основе, которые сделали чью-то жизнь лучше, кого-то счастливее? А можешь ли ты сделать это сам? В поисках ответов и желании открыть для себя ранее неизвестные модули OpenCV, хочу собрать приложения, которые "делают красиво" — так, чтобы сначала было "вау" и только потом ты скажешь "о да, это компьютерное зрение".

Право первой статьи получил эксперимент с переносом стилей мировых художников на фотографии. Из статьи вы узнаете, что является сердцем процедуры и об относительно новом OpenCV.js — JavaScript версии библиотеки OpenCV.

opencv4arts: Нарисуй мой город, Винсент - 1

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js