
Обработка изображений *
Работаем с фото и видео
Организация университетского курса по обработке сигналов
Педагогика интересовала меня очень давно и, много лет, я, будучи студентом, воспитанный, но в то же время изведенный и задерганный существующей организацией обучения думал о том, как бы её улучшить. В последнее время мне все чаще предоставляется случай проверить какие-нибудь из идей на практике. В частности, этой весной мне в политехе (СПБПУ) предоставилась возможность прочитать курс “Обработка сигналов”. Его организация, в особенности организация отчетности — первый эксперимент, результаты которого мне кажутся сколько-нибудь удачными, и в этой статье я хочу про организацию этого курса рассказать.
Курс о Deep Learning на пальцах
Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.
Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.

Kaggle: Amazon from Space — трюки и хаки при обучении нейросетей

Летом прошлого года закончилось соревнование на площадке kaggle, которое было посвящено классификации спутниковых снимков лесов Амазонки. Наша команда заняла 7 место из 900+ участников. Не смотря на то, что соревнование закончилось давно, почти все приемы нашего решения применимы до сих пор, причём не только для соревнований, но и для обучения нейросетей для прода. За подробностями под кат.
Состязательные атаки (adversarial attacks) в соревновании Machines Can See 2018

Суть любых состязательных атак на примере.
Так уж получилось, что мне довелось поучаствовать в соревновании Machines Can See 2018. Я присоединился к соревнованию я поздновато (примерно за неделю до окончания), но в конечном итоге оказался в команде из 4 человек, где вклад троих из нас (включая меня) был необходим для победы (убрать одну составляющую — и мы бы оказались в аутсайдерах).
Цель соревнования — изменять лица людей так, что сверточная нейросеть, предоставленная как черный ящик организаторами, не могла различить лицо-источник от лица-цели. Допустимое количество изменений было ограничено SSIM.
«Глаз в небе»: патрульный беспилотник с распознаванием насилия в скоплениях людей и общественных местах

Иллюстрация слева показывает 14 ключевых точек на человеческом теле, которые распознаёт система машинного зрения: голова, шея, плечи, локти, запястья, бёдра, колени, лодыжки. Справа вверху беспилотник Parrot AR с системой распознавания насилия. Справа внизу отдельные элементы фотографии из обучающего набора данных с ключевыми точками
В наше время БПЛА всё более активно используются правоохранительными органами и спецслужбами. Обычно для шпионажа, разведки, пограничного контроля и т. д. Полиция пока не очень активно применяет дроны для патрулирования городских улиц. А ведь здесь кроется огромный потенциал. Патрульные беспилотники позволяют значительно сэкономить на зарплате персонала. Они покрывают большие территории и отлично видят в темноте.
В связи с ростом преступности и угрозой терроризма во многих странах власти заинтересованы в усилении контроля над гражданским населением. Беспилотники с автоматическим распознаванием насилия — это системы нового поколения, которые открывают двери для ещё более автономных и систем интеллектуального реагирования на уличные беспорядки и хулиганство.
Как создать свой датасет с Киркоровым и Фейсом на Яндекс.Толоке

Нейронными сетями уже никого не удивишь. Практически каждый человек знает, что такое машинное обучение, линейная регрессия, random forest. Каждый год тысячи людей проходят курсы по машинному обучению на ODS и Coursera. Любой школьник за пару недель теперь может освоить keras и клепать нейроночки. Но в нейронных сетях, как и во всем машинном обучении, помимо создания хорошего алгоритма, необходимы данные, на которых алгоритм будет обучаться.
ConvNets. Создание прототипа проекта с помощью Mask R-CNN
Рассмотрев в предыдущей статье игрушечный набор данных, состоящий из изображений дорожных знаков, теперь мы можем перейти к решению задачи, с которой я столкнулся в реальной жизни: «Возможно ли реализовать Deep Learning алгоритм, который мог бы отличить блюда высокого качества от плохих блюд по одной фотографии?». Вкратце, бизнес хотел вот это:

Humansnotinvited: разгадываем капчу на bash
Многие из Вас встречались с капчей — автоматическим тестом Тьюринга. Она позволяет отделить реальных людей от различных ботов. В последнее время очень популярной стала reCAPTCHA от Google Inc. На ней Вы должны выбрать изображения, содержащие некие объекты, к примеру, автомобили. Относительно недавно появился сайт, который делает ровно наоборот: отделяет ботов от людей.
Распознавание сцен на изображениях с помощью глубоких свёрточных нейронных сетей

Улучшение качества изображения с помощью нейронной сети

Пример улучшения качества изображения с использованием технологии Super Resolution.
Обработка изображений: Tensorflow Object Detection API
Если не хочется читать статью — можно сразу познакомиться с ноутбучеком в репозитории
FontCode: новый способ стеганографии через форму букв

Рис. 1. Незначительное изменение глифа (формы конкретной литеры) кодирует цифровую информацию за счёт двухмерной матрицы вариантов начертания. Каждая точка в двухмерной координатной сетке генерирует соответствующий уникальный глиф
Специалисты по стеганографии придумали новый способ прятать шифровки в открытом канале. В данном случае — в открытом тексте. По мнению изобретателей, кроме естественного применения в разведке эту технологию можно использовать для скрытого внедрения метаданных, таких как водяные знаки.
Недавно на Хабре рассказывалось про фингерпринтинг текста непечатаемыми символами. Новая техника FontCode более изощрённая, но по сути похожа. И здесь обнаружить скрытое сообщение не так просто, даже сложнее, чем непечатаемые пробелы. В этом тексте никаких невидимых символов нет, а слегка изменённую форму букв сложно заметить на глаз и уж точно невозможно расшифровать, если вы не знаете принцип кодирования/декодирования.
Ближайшие события
USB3Vision и GenICam. Взгляд изнутри. I
Введение
Современный мир трудно представить без видеокамер. Они настолько плотно обосновались в нашей жизни, что стали ее неотъемлемой частью, хотим мы того или нет. Смартфоны, компьютеры, охранные системы и т.д. Список сфер применения можно продолжать долго, но в конечном счете цель преследуется одна — построение изображения исходя из световой информации, поступающей от окружающего мира на фоточувствительный датчик.
OpenVINO Toolkit — чтобы смотреть на мир незатуманенным взглядом

Буквально вчера увидела свет новая версия Open Visual Inference & Neural Network Optimization (OpenVINO) toolkit (ранее Intel Computer Vision SDK) — набора библиотек, средств оптимизации и информационных ресурсов для разработки софта, использующего машинное зрение и Deep Learning. Цель OpenVINO — ускорить процесс создания систем компьютерного зрения, предоставляя программистам интегрированную среду разработки, а также оптимизировать код этих продуктов, требующий больших вычислительных затрат, под разнообразные аппаратные платформы (CPU, GPU, FPGA) Intel.
Под катом — полный список компонентов OpenVINO Toolkit, перечень совместимого железа и полезные ссылки.
Выявление преступных группировок, ворующих из магазинов – Data Mining

Группа из 3–4 лиц по предварительному сговору способна вынести из большого магазина типа «Ашана» или «Перекрёстка» товара до 400 тысяч рублей в месяц. Если обычные шоплифтеры просто мирно воруют колбасу, протаскивая её под одеждой или ещё где, то эти парни оказываются в разы наглее и деструктивнее.
Разница вот в чём. Во-первых, они имеют возможность запутать всю систему наблюдения, выстроенную для поиска одиночных воров. Самая простая связка — один берёт товар, передаёт незаметно другому, тот относит в слепую зону камер, там его берёт третий.
Во-вторых, они воруют не на предел административки в 1000 рублей, а сразу по максимуму для перепродажи.
В-третьих, при попытке их остановить и вызвать полицию они применяют силовые меры к охраннику и уходят. Силовые меры — это от банального оттеснения охранников от подозреваемого до угроз оружием.
К нам обратилось ЧОП, которое попросило сделать видеоаналитику по тем, кого они уже знают. Чтобы при входе в магазин такого товарища сразу вызывалась полиция и их брали уже тёпленькими.
Детектирование частей тела с помощью глубоких нейронных сетей
Сегодня я расскажу вам про один из методов решения задачи pose estimation. Задача состоит в детектировании частей тела на фотографиях, а метод называется DeepPose. Этот алгоритм был предложен ребятами из гугла еще в 2014 году. Казалось бы, не так давно, но не для области глубокого обучения. С тех пор появилось много новых и более продвинутых решений, но для полного понимания необходимо знакомство с истоками.

Правдоподобная реконструкция Инстаграм-подобных фильтров
Существует куча софта, который позволяет пользователям применять различные цветовые фильтры к своим фотография. Пионером в этом деле был Инстаграм и иногда хочется сделать в своем приложении уже знакомые пользователям фильтры. И я хочу представить набор утилит, который позволит в полу-автоматическом режиме очень точно воспроизводить цветовые фильтры из других приложений в своём приложении.
https://github.com/homm/color-filters-reconstruction
Людям нравятся фильтры из Инстаграма. Они пытаются воспроизвести их снова и снова. И снова и снова. И снова и снова. Проблема с этими попытками в том, что люди пытаются вручную подобрать цветовую коррекцию, которая будет хоть как-то похожа на то, что делают оригинальные фильтры. Для меня же было намного более интересно попробовать воспроизвести фильтры основываясь на более надежных методах и математике. И похоже, что это единственная попытка действительно точного воссоздания цветовых фильтров.
Для примера, одно из следующих изображений было получено с применением фильтра Clarendon на оригинальном изображении в самом Инстаграме, а другое с помощью наложения восстановленного фильтра. Попробуйте угадать, какое восстановлено.
Для сравнения, это результат применения того же фильтра из коммерческого набора «Инстаграм-подобных фильтров», который вы без труда сможете нагуглить:
Прогулка между пикселями
Первоначальное наблюдение состояло в том, что если произвести выборку по диагонали текстуры 2×2, то в качестве выходных данных получатся точки на квадратичной кривой Безье, а опорные точки кривой являются значениями пикселей, как на изображении ниже. Когда я говорю, что вы получаете квадратичную кривую Безье, то выражаюсь буквально и точно. Происходящее можно представить так: интерполяция текстуры буквально выполняет алгоритм де Кастельжо. (Примечание: если в примере ниже значения “B” не равны, то вторая опорная точка будет средним из этих двух значений: расширение злоупотребляет этим, чтобы аппроксимировать больше кривых в меньшее количество пикселей).

Видео следующего поколения: представляем AV1
AV1 — это новый универсальный видеокодек, разработанный Альянсом за открытые медиа (Alliance for Open Media). Альянс взял за основу кодек VPX от Google, Thor от Cisco и Daala от Mozilla/Xiph.Org. Кодек AV1 превосходит по производительности VP9 и HEVC, что делает его кодеком не завтрашнего, а послезавтрашнего дня. Формат AV1 свободен от любых роялти и всегда останется таковым с разрешительной лицензией свободного и открытого ПО.Тройственная платформа
Кто следил за развитием Daala, тот знает, что после формирования Альянса за открытые медиа (AOM) Xiph и Mozilla предложили наш кодек Daala как один из базисов для нового стандарта. Кроме него, компания Google представила свой кодек VP9, а Cisco представила Thor. Идея заключалась в том, чтобы создать новый кодек в том числе на основе этих трёх решений. С того момента я не публиковал никаких демо о новых технологиях в Daala или AV1; в течение долгого времени мы мало что знали об окончательном кодеке.
Около двух лет назад AOM проголосовал за то, чтобы основать фундаментальную структуру нового кодека на базе VP9, а не Daala или Thor. Компании-члены альянса хотели в кратчайший срок получить полезный кодек без роялти и лицензирования, поэтому выбрали VP9 как наименее рискованный вариант. Я согласен с таким выбором. Хотя Daala выдвинули кандидатом, но я всё-таки думаю, что и устранение блочных артефактов трансформацией внахлёст (lapping arrpoach), и техники частотной области в Daala тогда (да и сейчас) ещё недостаточно созрели для реального развёртывания. В Daala по-прежнему оставались нерешённые технические вопросы, а выбор в качестве отправной точки VP9 решал большинство этих проблем.


