Как стать автором
Обновить
61.29

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

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

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

OpenCV 4.0 и 4.1 — что нового?

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


Мы возвращаемся к рассказу об open source библиотеке компьютерного зрения OpenCV. Проект живет и развивается, движимый командой разработчиков, работающих в компании Intel, а также неугасающей поддержкой community. В конце 2018 года увидел свет первый стабильный релиз из ветки 4.х, а буквально месяц назад вышло новое обновление — версия 4.1. Мы попросили авторов библиотеки перечислить кратко, что нового привнесли эти две версии в функционал OpenCV.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 14

Долгожданный шаг в сторону сложно структурированных документов (+видео)

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

image


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

Всего голосов 13: ↑12 и ↓1 +11
Комментарии 6

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

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

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

Пятнадцать полезных мелочей для электронного управления документами

Время на прочтение 4 мин
Количество просмотров 5K
Привет! На связи специалисты «Сбербанк Лизинг». Огромная часть нашей работы связана с документами, поэтому в наших интересах постоянно совершенствовать свою СУД — систему управления документами. До недавнего времени она была, прямо скажем, не лучшей помощницей и отнимала много времени и сил. Не было единого электронного хранилища, автоматизированного сканирования и верификации документов, а также контроля наличия оригиналов в архиве.



Готового решения, которое могло решить все три проблемы, на рынке не существовало, так что мы начали работу над собственным проектом «Электронный DOC.офис». О том, что получилось, расскажем в этом посте.
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 9

Истории

Поиск похожих изображений, разбор одного алгоритма

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


Пришлось мне недавно решать задачку по оптимизации поиска дубликатов изображений.

Существующее решение работает на довольно известной библиотеке, написанной на Python, — Image Match, основанной на работе «AN IMAGE SIGNATURE FOR ANY KIND OF IMAGE» за авторством H. Chi Wong, Marshall Bern и David Goldberg.

По ряду причин было принято решение переписать всё на Kotlin, заодно отказавшись от хранения и поиска в ElasticSearch, который требует заметно больше ресурсов, как железных, так и человеческих на поддержку и администрирование, в пользу поиска в локальном in-memory кэше.

Для понимания того, как оно работает, пришлось с головой погружаться в «эталонный» код на Python, так как оригинальная работа порой не совсем очевидна, а в паре мест заставляет вспомнить мем «как нарисовать сову». Собственно, результатами этого изучения я и хочу поделиться, заодно рассказав про некоторые оптимизации, как по объёму данных, так и по скорости поиска. Может, кому пригодится.
Читать дальше →
Всего голосов 59: ↑56 и ↓3 +53
Комментарии 25

Как мы боремся с копированием контента, или первая adversarial attack в проде

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

Привет.


Вы знали, что платформы для размещения объявлений часто копируют контент у конкурентов, чтобы увеличить количество объявлений у себя? Они делают это так: обзванивают продавцов и предлагают им разместиться на своей платформе. А иногда и вовсе копируют объявления без разрешения пользователей. Авито — популярная площадка, и мы часто сталкиваемся с такой недобросовестной конкуренцией. О том, как мы боремся с этим явлением, читайте под катом.


Читать дальше →
Всего голосов 228: ↑216 и ↓12 +204
Комментарии 122

Как и зачем мы делали распознавание достопримечательностей в Облаке Mail.ru

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


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

Одной из целей Облака Mail.ru является обеспечение наиболее удобного доступа и поиска по своему фото и видеоархиву. Для этого мы — команда машинного зрения Mail.ru — создали и внедрили системы «умной» обработки фотографий: поиск по объектам, сценам, лицам и др. Еще одной такой яркой технологией является распознавание достопримечательностей. И сегодня я расскажу про то, как с помощью Deep Learning мы решили эту задачу.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 6

Почему векторная графика 2D намного сложнее, чем 3D

Время на прочтение 13 мин
Количество просмотров 20K
В последнее время появилось много фантастических исследований по 2D-рендерингу. Пётр Кобаличек и Фабиан Айзерман работают над Blend2D: это один из самых быстрых и точных CPU-растеризаторов на рынке, с инновационной техникой JIT. Патрик Уолтон из Mozilla изучил не один, а три разных подхода в Pathfinder, кульминацией чего стал Pathfinder v3. Раф Левиен построил вычислительный конвейер по технологии, описанной в научной статье Гана с коллегами о векторных текстурах (2014). Похоже, некое дальнейшее развитие получают поля расстояний со знаком: здесь независимо работают Адам Симмонс и Сара Фрискен.

Кто-то может спросить: а почему вокруг 2D так много шума? Это ведь не может быть намного сложнее, чем 3D, верно? 3D — совершенно другое измерение! Тут у нас на носу трассировка лучей в режиме реального времени с точным освещением, а вы не можете осилить невзрачную 2D-графику со сплошными цветами?

Для тех, кто не очень хорошо разбирается в деталях современного GPU, это вправду очень удивительно! Но в 2D-графике множество уникальных ограничений, которые чрезвычайно её усложняют. К тому же она не поддаётся параллелизации. Давайте прогуляемся по исторической дорожке, которая нас сюда привела.
Читать дальше →
Всего голосов 32: ↑25 и ↓7 +18
Комментарии 25

Картинка 56х81 пикселя за три секунды зарабатывает… 2,3 миллиарда долларов США

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


В течение трех (3-х) секунд в состав общего потока видеоконтента (разрешением Full HD 1920×1080) входило узнаваемое многими изображение размером 56х81 пикселя, появление которого смогло дать заработать путем сетевой огласки около 2,3 миллиарда долларов.

Оказывается, как просто в мире интернета (социальный сетей, сервисов обмена картинками и сообщениями) продать 4536 пикселей, причем стоимость 1 пикселя получилась 500 тысяч долларов США.
Читать дальше →
Всего голосов 2: ↑0 и ↓2 -2
Комментарии 0

PIL на Python от простого к сложному

Время на прочтение 2 мин
Количество просмотров 72K
Чтобы дойти до сложных алгоритмов обработки, стоит проанализировать стандартные схемы, с чего я и предлагаю начать.

Для примеров обработки будет использоваться изображение с различным наборов цветов:

image

Для старта нам потребуется два модуля библиотеки:

from PIL import Image, ImageDraw 

Настроим инструменты для комфортной дальнейшей работы:

image = Image.open('test.jpg')  # Открываем изображение
draw = ImageDraw.Draw(image)  # Создаем инструмент для рисования
width = image.size[0]  # Определяем ширину
height = image.size[1]  # Определяем высоту
pix = image.load()  # Выгружаем значения пикселей

Приступим


Обрабатывать изображения будем в формате RGB. Также PIL поддерживает работу с форматами 1, L, P, RGB, RGBA, CMYK, YCbCr, LAB, HSV, I, F.
Читать дальше →
Всего голосов 26: ↑16 и ↓10 +6
Комментарии 25

Deep Learning в вычислении оптического потока

Время на прочтение 11 мин
Количество просмотров 20K
С появлением множества различных архитектур нейронных сетей, многие классические Computer Vision методы ушли в прошлое. Все реже люди используют SIFT и HOG для object detection, а MBH для action recognition, а если и используют, то скорее как handcrafted-признаки для соответствующих сеток. Сегодня мы рассмотрим одну из классических CV-задач, в которой первенство по-прежнему остается за классическими методами, а DL-архитектуры томно дышат им в затылок.


Всего голосов 64: ↑64 и ↓0 +64
Комментарии 7

Под белым флагом пост, или Как я спас ваш видеокурс от появления на трекере

Время на прочтение 4 мин
Количество просмотров 13K
captain_barbossa.jpg

Привет, Хабр! Хм, у меня такое чувство, будто мы уже встречались… Ах, да. Вот же тот пост, где мы лампово обсудили, приемлемо ли мониторить окружение, ограничивать пользователя в количестве устройств для просмотра, предоставлять исполняемые файлы вместо оплаченных видео и по-другому всячески некультурно себя вести при организации «защиты» видеокурсов от пиратства.

И все бы ничего, да вот только нельзя критиковать, не предлагая взамен своего решения. «Ты можешь лучше, что ли?!», — раздавались возгласы из комментариев. «Лучше бы поддержал соотечественника, помог сделать их продукт лучше!», — вкратце пересказываю я некоторые общие мысли. Справедливо. Так вот, я и правда могу лучше. По крайней мере, мое предложение не будет требовать от конечного пользователя запуска кривого софта вместо ожидаемых видеофайлов.
Читать дальше →
Всего голосов 67: ↑28 и ↓39 -11
Комментарии 128

ResNet50. Своя реализация

Время на прочтение 4 мин
Количество просмотров 15K
Всем привет. Библиотека нейросети описана в моей прошлой статье. Здесь решил показать как можно использовать обученную сеть из TF (Tensorflow) в своем решении, и стоит ли.

Под катом сравнение с оригинальной реализацией TF, демо приложение для распознавания картинок, ну и… выводы. Кому интересно, прошу.
Читать дальше →
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 11

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

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн

Под чёрным флагом пост, или Как я не выложил ваш видеокурс на трекер

Время на прочтение 7 мин
Количество просмотров 93K
captain_flint.jpg

Привет, Хабр! В трудное время мы живем, не находите? Люди эгоистичны, не признают ценность чужих трудов, любят приходить сразу на все готовое. Интеллектуальная собственность для многих вообще выглядит не более чем бюрократической шуткой: «Как же это так, информация должна быть свободной, ведь это ИН-ФОР-МА-ЦИ-Я!!!11». Согласен, в идеале это так. Эти ваши анархии, мятежнические настроения и философии андерграундных хакеров/пиратов, стоящих на страже прав простого люда, мне не чужды. Но парадокс в том, что истинная справедливость – это еще и отплачивать всем за их труд и заслуги, поэтому в большинстве случаев пиратство – антагонистическое предприятие. Но вот политика предоставления услуг по защите интеллектуальной собственности, предлагаемая таким замечательным вендором, как ИнфоПротектор, вызвал у меня праведный гнев.

Под катом история о том, как я приобрел платный видеокурс, выпал в осадок после осознания того, что я не смогу сохранить видеоролики из оного для повторного просмотра в будущем, разозлился на тех, кто скропал этот квазизащитный софт (который, ко всему прочему, безжалостно лагает и жрет много ресурсов машины) и решил немного восстановить справедливость… Не нарушая закон, конечно же. Amen.
Читать дальше →
Всего голосов 205: ↑203 и ↓2 +201
Комментарии 255

Почему размытие плохо скрывает конфиденциальную информацию

Время на прочтение 5 мин
Количество просмотров 69K
Наверняка все видели по телевизору и в интернете фотографии людей, специально размытые, чтобы скрыть их лица. Например, Билл Гейтс:



По большей части это работает, поскольку нет удобного способа обратить размытие обратно в достаточно детализированное фото, чтобы распознать лицо. Так что с лицами всё нормально. Однако многие прибегают к размытию конфиденциальных чисел и текста. Я покажу, почему это плохая идея.
Читать дальше →
Всего голосов 157: ↑157 и ↓0 +157
Комментарии 43

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

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

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

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

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

Конкретно:

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

И так далее. Самый простой пример — цветовая дифференциация укладчиков кирпичей и заливщиков бетона по цвету каски. Для помощи роботу. В конце концов, жить в обществе с отсутствием цветовой дифференциации, значит не иметь цели.
Читать дальше →
Всего голосов 74: ↑72 и ↓2 +70
Комментарии 44

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

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

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

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

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

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

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

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

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

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

image

Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Комментарии 34

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

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


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

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

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


Давайте начнем разбираться: в большинстве современных приложений глубинного обучения используется нейронный дискриминантный тип (дискриминатор), а SPADE — это генеративная нейронная сеть (генератор).
Всего голосов 54: ↑52 и ↓2 +50
Комментарии 5

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

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


Анимированные гистограммы, которые можно встроить прямо в публикацию на любом сайте, становятся все более популярными. Они отображают динамику изменений любых характеристик за определенное время и делают это наглядно. Давайте посмотрим, как их создать при помощи R и универсальных пакетов.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Комментарии 2