Обновить
87.64

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

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

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

Опасные производства: мы следим за тобой, %username% (аналитика видео)

Время на прочтение6 мин
Охват и читатели27K

Один товарищ — без каски, второй — без перчатки.

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

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

Конкретно:

  • Очень легко распознавать людей без каски. Даже лысых. Увидели человека без каски — сразу алерт оператору или начальнику цеха.
  • То же самое касается очков и перчаток на опасных производствах, страховки на поясе (правда, мы смотрим только на карабин пока), светоотражающих жилетов, респираторов, шапочек для волос и других СИЗ. Сейчас система обучена распознавать 20 типов СИЗов.
  • Можно точно считать людей на объекте и учитывать, когда и сколько их было.
  • Можно подавать тревогу при заходе человека в опасную зону, причём эта зона может настраиваться по факту запуска-остановки станков.

И так далее. Самый простой пример — цветовая дифференциация укладчиков кирпичей и заливщиков бетона по цвету каски. Для помощи роботу. В конце концов, жить в обществе с отсутствием цветовой дифференциации, значит не иметь цели.
Читать дальше →

Окей, Google: как пройти капчу?

Время на прочтение11 мин
Охват и читатели93K
Здравствуйте. Меня зовут Ибадов Илькин, я студент Уральского федерального университета.

В данной статье я хочу рассказать о своем опыте автоматизированного решения капчи компании «Google» — «reCAPTCHA». Хотелось бы заранее предупредить читателя о том, что на момент написания статьи прототип работает не так эффективно, как может показаться из заголовка, однако, результат демонстрирует, что реализуемый подход способен решать поставленную задачу.
Читать дальше →

Определяем породу собаки: полный цикл разработки, от нейросети на Питоне до приложения на Google Play

Время на прочтение27 мин
Охват и читатели26K
Прогресс в области нейросетей вообще и распознавания образов в частности, привел к тому, что может показаться, будто создание нейросетевого приложения для работы с изображениями — это рутинная задача. В некотором смысле, так и есть — если вам пришла в голову идея, связанныя с распознаватием образов, не сомневайтесь, что кто-то уже что-то подобное написал. Все, что от вас требуется, это найти в Гугле соответствующий кусок кода и «скомпилировать» его у автора.

Однако, все еще есть многочисленные детали, делающие задачу не столько неразрешимой, сколько… нудной, я бы сказал. Отнимающей слишком много времени, особенно если вы — новичок, которому нужно руководство, step-by-step, проект, выполненный прямо на ваших глазах, и выполненный от начала и до конца. Без обычных в таких случаях «пропустим эту очевидную часть» отговорок.

В этой статье мы рассмотрим задачу создания определителя пород собак (Dog Breed Identifier): создадим и обучим нейросеть, а затем портируем ее на Java для Android и опубликуем на Google Play.

Если вы хотите посмотреть на готовый результат, вот он: NeuroDog App на Google Play.

Веб сайт с моей робототехникой (в процессе): robotics.snowcron.com.
Веб сайт с самой программой, включая руководство: NeuroDog User Guide.

А вот скриншот программы:

image

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

Фотографии из грубых набросков: как именно работает нейросеть NVIDIA GauGAN

Время на прочтение14 мин
Охват и читатели39K
В прошлом месяце на NVIDIA GTC 2019 компания NVIDIA представила новое приложение, которое превращает нарисованные пользователем простые цветные шарики в великолепные фотореалистичные изображения.


Приложение построено на технологии генеративно-состязательных сетей (GAN), в основе которой лежит глубинное обучение. Сама NVIDIA называет его GauGAN — это каламбур-отсылка к художнику Полу Гогену. В основе функциональности GauGAN лежит новый алгоритм SPADE.

В этой статье я объясню, как работает этот инженерный шедевр. И чтобы привлечь как можно больше заинтересованных читателей, я постараюсь дать детализированное описание того, как работают свёрточные нейронные сети. Поскольку SPADE — это генеративно-состязательная сеть, я расскажу подробнее и о них. Но если вы уже знакомы с эти термином, вы можете сразу перейти к разделу «Image-to-image трансляция».

Генерация изображений


Давайте начнем разбираться: в большинстве современных приложений глубинного обучения используется нейронный дискриминантный тип (дискриминатор), а SPADE — это генеративная нейронная сеть (генератор).

Создаем анимированные гистограммы при помощи R

Время на прочтение4 мин
Охват и читатели8.1K


Анимированные гистограммы, которые можно встроить прямо в публикацию на любом сайте, становятся все более популярными. Они отображают динамику изменений любых характеристик за определенное время и делают это наглядно. Давайте посмотрим, как их создать при помощи R и универсальных пакетов.
Читать дальше →

Краткий гайд по созданию оракулов, богов из машины и ошибкам второго рода

Время на прочтение10 мин
Охват и читатели21K
Наверное, в этом тексте для многих не будет новизны. Наверное, другие скажут что такого не бывает в реальной жизни. Но, уже не первое апреля, а всё написанное тут — чистая правда, которая случалась со мной или с людьми вокруг. Возможно что-то из сказанного заставит вас переосмыслить окружающие вас феномены.

Если подходить к этим историям формально, то можно сказать что все они порождены тем что люди не учитывают ошибку второго рода. У Юдковского, с коим знакома четверть Хабра — эта ошибка обычно зовётся «Подтверждающее искажение».



Что это такое? В двух словах — «человек ищет подтверждение своей модели, а не её опровержение». Единственный шанс объяснить лучше, это примеры-примеры-примеры и опыт. Лишь так можно развить чувство что «что-то тут не так».

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

Нахождение объектов на картинках

Время на прочтение18 мин
Охват и читатели64K

Мы занимаемся закупкой трафика из Adwords (рекламная площадка от Google). Одна из регулярных задач в этой области – создание новых баннеров. Тесты показывают, что баннеры теряют эффективность с течением времени, так как пользователи привыкают к баннеру; меняются сезоны и тренды. Кроме того, у нас есть цель захватить разные ниши аудитории, а узко таргетированные баннеры работают лучше.


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


Это выглядит как задача, которую несложно автоматизировать. Для этого достаточно сделать программу, которая будет накладывать на болванку баннера локализованную цену на "ценник" и call to action (фразу типа "купить сейчас") на кнопку. Если печать текста на картинке реализовать достаточно просто, то определение положения, куда нужно его поставить — не всегда тривиально. Перчинки добавляет то, что кнопка бывает разных цветов, и немного отличается по форме.


Этому и посвящена статья: как найти указанный объект на картинке? Будут разобраны популярные методы; приведены области применения, особенности, плюсы и минусы. Приведенные методы можно применять и для других целей: разработки программ для камер слежения, автоматизации тестирования UI, и подобных. Описанные трудности можно встретить и в других задачах, а использованные приёмы использовать и для других целей. Например, Canny Edge Detector часто используется для предобработки изображений, а количество ключевых точек (keypoints) можно использовать для оценки визуальной “сложности” изображения.


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


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

Распознавание танков в видеопотоке методами машинного обучения (+2 видео на платформах Эльбрус и Байкал)

Время на прочтение4 мин
Охват и читатели9K

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

«Галоп пикселя — часть пятая» — Анимация персонажей. Ходьба

Время на прочтение30 мин
Охват и читатели49K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)

Доброго времени суток, Хабр. Мы продолжаем цикл «Галоп Пикселя». Сейчас, находясь на старте 2019 года, можно с уверенностью говорить, что это не только цикл статей, но и многолетняя сага. Пространное повествование о пикселях, их жизни, способе их создания, приёмах и уловках в работе с ними. Мы не будем рассуждать о причинах первоначального «спринта», который затем превратился в многолетний марафон, ибо нет ничего более жизненного, чем сама жизнь. Кому нужны причины отсутствия или пауз, если можно просто вернуться к тому, что мы делали, в чём варились, и в чём, даст бог — будем наблюдаться и далее. В пикселях, конечно же!

Сегодняшняя публикация станет очередной, и возможно даже поворотной вехой в нашем повествовании. Наконец-то мы подошли к созданию полноценной анимации персонажей. Двумя предыдущими главами мы охватили анимацию света и тени, а также анимацию неподвижных персонажей (idle-animation) без ярко выраженных действий. Но сегодня наши персонажи пойдут, а в следующей части даже побегут, завоевав то, что уже давно их по праву рождения. Ещё один плодородный регион. И пройдут ещё одну точку, которая ознаменует окончание базового цикла. Наши пиксели наконец-то станут живыми.

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


Лопатить пиксели

Quick Draw Doodle Recognition: как подружить R, C++ и нейросетки

Время на прочтение32 мин
Охват и читатели7K


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

Осенью прошлого года на Kaggle проходил конкурс по классификации нарисованных от руки картинок Quick Draw Doodle Recognition, в котором среди прочих поучаствовала команда R-щиков в составе Артема Клевцова, Филиппа Управителева и Андрея Огурцова. Подробно описывать соревнование не будем, это уже сделано в недавней публикации.

С фармом медалек в этот раз не сложилось, но было получено много ценного опыта, поэтому о ряде наиболее интересных и полезных на Кагле и в повседневной работе вещей хотелось бы рассказать сообществу. Среди рассмотренных тем: нелегкая жизнь без OpenCV, парсинг JSON-ов (на этих примерах рассматривается интеграция кода на С++ в скрипты или пакеты на R посредством Rcpp), параметризация скриптов и докеризация итогового решения. Весь код из сообщения в пригодном для запуска виде доступен в репозитории.

Содержание:


  1. Эффективная загрузка данных из CSV в базу MonetDB
  2. Подготовка батчей
  3. Итераторы для выгрузки батчей из БД
  4. Выбор архитектуры модели
  5. Параметризация скриптов
  6. Докеризация скриптов
  7. Использование нескольких GPU в облаке Google Cloud
  8. Вместо заключения
Читать дальше →

Откуда берут фотографии для тестирования систем распознавания лиц

Время на прочтение3 мин
Охват и читатели10K

Аннотированная фотография из набора данных Diversity in Faces от IBM

Недавно компания IBM подверглась критике за то, что для обучения нейросетей без разрешения взяла общедоступные фотографии с фотохостинга Flickr и других сайтов, куда пользователи выкладывают свои снимки. Формально всё по закону — все фотографии опубликованы под лицензией Creative Commons — но люди чувствуют дискомфорт из-за того, что ИИ обучается на их лицах. Некоторые даже не знали, что их сфотографировали. Как известно, для съёмки человека в общественном месте не нужно спрашивать у него разрешения.
Читать дальше →

Новый алгоритм в 200 раз ускоряет автоматическое проектирование нейросетей

Время на прочтение4 мин
Охват и читатели11K


ProxylessNAS напрямую оптимизирует архитектуры нейронных сетей для конкретной задачи и оборудования, что позволяет значительно увеличить производительность по сравнению с предыдущими прокси-подходами. На наборе данных ImageNet нейросеть проектируется за 200 GPU-часов (в 200−378 раз быстрее аналогов), а автоматически спроектированная модель CNN для мобильных устройств достигает того же уровня точности, что и MobileNetV2 1.4, работая в 1,8 раза быстрее.

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

Алгоритмы для автоматического проектирования систем машинного обучения — новая область исследований в сфере ИИ. Такая техника называется «поиск нейронной архитектуры (neural architecture search, NAS) и считается трудной вычислительной задачей.
Читать дальше →

Цвет Луны и Солнца из космоса в значениях RGB и цветовой температуры

Время на прочтение17 мин
Охват и читатели22K
Казалось бы, вопрос цвета Луны и Солнца из космоса для современной науки настолько простой, что в нашем веке совсем не должно возникать проблем с ответом. Речь идёт о цветах при наблюдении именно из космоса, т. к. атмосфера приводит к изменению цвета из-за рэлеевского рассеяния света. «Наверняка где-нибудь в энциклопедии об этом подробно, в числах уже давно написано» – скажете вы. Хорошо, прямо сейчас попробуйте поискать в Интернете об этом информацию. Получилось? Скорее всего, нет. Максимум, что вы найдёте – это пара слов о том, что Луна имеет буроватый оттенок, а Солнце – красноватый. Но вы не найдёте информацию о том, видны ли эти оттенки для человеческого глаза или нет, уж тем более значения цветов в RGB или хотя бы цветовые температуры. Зато вы найдёте кучу фотографий и видео, где Луна из космоса изображена абсолютно серой, в основном на фотографиях американской программы «Аполлон», и где Солнце из космоса изображено белым и даже голубым.

Сугубо моё личное мнение – это не что иное, как следствие вмешательства политики в науку. Ведь цвета Луны и Солнца из космоса непосредственно касаются полётов американцев на Луну.

Я перерыл множество научных статей и книг в поисках информации о цвете Луны и Солнца из космоса. К счастью, оказалось, что хоть в них нет прямого ответа в RGB, но есть полная информация о спектральной плотности излучения Солнца и отражательной способности Луны по спектру. Этого вполне достаточно, чтобы получить точные цвета в значениях RGB. Надо всего лишь аккуратно посчитать, что, собственно, я и сделал. В этой статье я с вами поделюсь результатами расчётов и, естественно, подробно расскажу о самих расчётах. И вы увидите Луну и Солнце из космоса в настоящих цветах!
Читать дальше →

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

Нейросеть от Nvidia превращает простейшие наброски в красивые пейзажи

Время на прочтение3 мин
Охват и читатели53K

Водопад курильщика и водопад здорового человека

Все мы знаем, как нарисовать сову. Нужно сначала нарисовать овал, потом еще окружность, ну а потом — получается шикарная сова. Конечно, это шутка, причем очень старая, но инженеры Nvidia постарались сделать так, чтобы фантазия стала реальностью.

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

Как мы помогали трансформировать работу бухгалтерии в крупной энергетической компании

Время на прочтение7 мин
Охват и читатели7K
Мы несколько раз писали о том, как наши технологии помогают различным организациям и даже целым государствам обрабатывать информацию из любых типов документов и вводить данные в учетные системы. Сегодня расскажем, как внедряли ABBYY FlexiCapture в одной крупной российской энергетической компании. Для удобства назовем ее «Биг Компани».

Представьте себя на месте обычного бухгалтера. Понимаем, это непросто, но все-таки попробуйте. Каждый день вам приходит огромное количество бумажных счетов, накладных, справок и так далее. А особенно много – в дни перед сдачей отчетности. Все реквизиты и суммы нужно быстро и внимательно проверить, перепечатать и внести в учетную систему, вручную провести транзакции и отправить документы в архив, чтобы потом вовремя предоставить для проверки внутренним аудиторам, налоговой службе, органам тарифного регулирования и другим. Сложно? Но это многолетняя деловая практика, которая существует во многих компаниях. Вместе с «Биг Компани» мы упростили эту кропотливую работу и сделали ее удобнее. Если вам интересно, как это было, добро пожаловать под кат.

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

Комбайны видеоаналитики: что мозг и машины делают с нашими лицами

Время на прочтение8 мин
Охват и читатели5K
image

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

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

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

Китай вводит экспериментальную систему распознавания лиц при оплате проезда в метро

Время на прочтение2 мин
Охват и читатели7.2K
image

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

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

Умножение матриц: эффективная реализация шаг за шагом

Время на прочтение14 мин
Охват и читатели124K


Введение


Умножение матриц — это один из базовых алгоритмов, который широко применяется в различных численных методах, и в частности в алгоритмах машинного обучения. Многие реализации прямого и обратного распространения сигнала в сверточных слоях неронной сети базируются на этой операции. Так порой до 90-95% всего времени, затрачиваемого на машинное обучение, приходится именно на эту операцию. Почему так происходит? Ответ кроется в очень эффективной реализации этого алгоритма для процессоров, графических ускорителей (а в последнее время и специальных ускорителей матричного умножения). Матричное умножение — один из немногих алгоритмов, которые позволяет эффективно задействовать все вычислительные ресурсы современных процессоров и графических ускорителей. Поэтому не удивительно, что многие алгоритмы стараются свести к матричному умножению — дополнительная расходы, связанные с подготовкой данных, как правило с лихвой окупаются общим ускорением алгоритмов.

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

Процесс изложения будет вестись ввиде шагов с примерами по последовательному ускорению алгоритма. Я старался писать максимально упрощая задачу, но не более того. Надеюсь у меня получилось…
Читать дальше →

Получаем ссылки на профили Vk из выдачи SearchFace с помощью Python (но это не точно)

Время на прочтение9 мин
Охват и читатели54K
Картинка для привлечения внимания:


Кадр из сериала Person Of Interest

Сегодня мы поговорим о лёгком распознавании лиц с помощью доступных инструментов.
Используются: Python 3.6, searchface.ru, внешний сервис для преобразования ссылок на фото в id (бот в телеграме, на текущий момент)


Итак, у нас есть сайт, который ищет по лицам.
Заглянем внутрь.
Читать дальше →

Deep Learning — не только котики на мобилках или как мы производим дефектовку тележек локомотивов

Время на прочтение5 мин
Охват и читатели25K

Буквально пару дней назад компания Aurorai передала в опытную эксплуатация систему распознавания дефектов и контроля состояния тележек для локомотивов Ермак. Задача нетривиальная и очень интересная, первым этапом которой было предложено оценить состояние тормозных колодок и ширины бандажа. Нам удалось решить задачу с точность до 1мм при скорости локоматива до 30 км/ч! Хочу отметить, что благодаря специфики можно было использовать “TTA (test-time augmentation)” – яркий пример kaggle-style хака из соревнований, который плохо ложится на прод и семантическую сегментацию на базе se_resnext50 encoder, которая даёт поразительный по точности результат в предсказании маски.

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