Обновить
128K+

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

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

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

Как определять объекты с ptz камеры

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


В статье предлагается рассмотреть практические моменты применения ptz камеры (на примере модели Dahua DH-SD42C212T-HN) для детектирования и классификации объектов. Рассматриваются алгоритмы управления камерой через интерфейс ONVIF, python. Применяются модели (сети): depth-anything, yolov8, yolo-world для детектирования объектов.
Читать дальше →

Лучше 170 раз услышать: как GPT-4o кодирует изображения?

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели14K

Интересный факт: GPT-4o взимает по 170 токенов за обработку каждого тайла 512x512 , используемого в режиме высокого разрешения. При соотношении примерно 0,75 токенов на слово можно предположить, что картинка стоит примерно 227 слов, что всего в четыре раза меньше, чем в поговорке «картинка стоит тысячи слов».

(Кроме того, взимается 85 токенов за master thumbnail низкого разрешения каждого изображения, а изображения более высокого разрешения разбиваются на множество таких тайлов 512x512, но давайте ограничимся одним тайлом высокого разрешения.)

Но почему же 170? Необычное число, неправда ли? В своих ценах OpenAI указывает округлённые числа, например, $20 или $0,50, а в своих внутренних размерностях — степени двойки и тройки. Почему же в этом случае выбрано число 170?

Числа, которые без объяснений вставляют в кодовую базу, называют в программировании «магическими числами», и 170 кажется очевидным магическим числом.

И почему затраты на изображения вообще преобразуются в стоимость в токенах? Если бы это нужно было только для определения цены, то разве не удобнее было бы просто указать цену за тайл?

Что если OpenAI выбрала 170 не в рамках своей запутанной стратегии ценообразования, а потому что это в буквальном смысле так? Что если тайлы изображений действительно представлены в виде 170 последовательных векторов эмбеддингов? А если это так, то как реализовано?

Читать далее

Дубликат бесценного груза: История распознавания паспорта РФ от нулевых до наших дней

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели3.9K

Сегодня технологиями распознавания паспорта никого не удивишь. Банки, операторы сотой связи, нотарусы и многие другие с их помощью упрощают и ускоряют рутинные процедуры: оформление кредита, приобретение полиса, покупку SIM-карты и так далее. Между тем, программные продукты для ввода данных из паспорта РФ за последние два десятилетия прошли большой путь. Мы в Smart Engines занимаемся этим не первый год и рассказываем, с чего все начиналось.

Окунуться в историю

Как оживить Кандинский матрицами вращений для генерации видео — модель Splitter Next (часть 3-я)

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели2.1K

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

Читать далее

Используем gocv, чтобы определить возраст, эмоции и пол человека по фото

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

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

Для демонстрации будем использовать модели caffe и onnx. Сервис напишем с использованием golang. Ниже приведен пример изображения, на котором распознан пол и примерный возраст человека. В нашем сервисе мы будем возвращать JSON, в котором будут указаны возраст, эмоции, пол и местоположение лиц на фотографии.

Читать далее

Ликбез по компьютерному зрению в банках. Как технологии ИИ защищают ваши деньги

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

Привет, Хабр! Меня зовут Татьяна Дешкина, я заместитель директора по развитию продуктов VisionLabs. Мы создаем системы распознавания и защиту этих систем распознавания (в том числе и антифрод), у нас накопился опыт, которым мы хотим поделиться.

В этой статье я на примере нескольких кейсов наших клиентов расскажу, как в банках и других финансовых организациях используют компьютерное зрение (англ. computer vision, CV) и чем оно полезно для конечных пользователей. Здесь не будет хардкорных технических подробностей — материал в первую очередь для тех, кто сталкивается с технологиями компьютерного зрения в повседневной жизни и хочет больше о них узнать.

Читать далее

Портируем видеоаналитику на новые платформы: 8 простых шагов

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.6K

Упаковали свой опыт развертывания системы мониторинга транспортного потока — Smart Traffic System — на Rockchip и SOPHON в один стройный R&D пайплайн. Пошагово, со сроками. Как от сердца отрываем.

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

Читать далее

Как компьютер оценивает внешнее состояние POS-терминалов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.7K

Привет, Хабр. Меня зовут Дмитрий Жариков. Я исследователь данных в команде эквайринга Сбера и занимаюсь моделями искусственного интеллекта. Эквайринг — это подразделение банка, которое занимается различными способами безналичной оплаты. Кроме того, в группу компаний «Сбер» входит компания федерального значения «Сберсервис», которая занимается настройкой офисного оборудования, в том числе устанавливает и обслуживает POS-терминалы. Я расскажу вам про один из наших проектов — определение состояния POS-терминалов по фотографиям. 

Читать далее

Как оживить Кандинский матрицами вращений для генерации видео — модель Splitter (часть 2-я)

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели2.3K

В первой части, я познакомил вас с новым подходом, использующим матрицы вращений для генерации видео моделями text-2-image.

Во второй части двигаемся к решению задачи на основе машинного обучения через:
- формализацию функции потерь;

- построение базовой модели Splitter, по сути, обучаемой матрицы вращений;

- построение алгоритма обучения на векторизованном датасете из 200-500 роликов.

И посмотрим первые результаты.

Читать далее

Без компромиссов. Как добиться одновременно высокого качества в редактировании и инверсии изображений с помощью StyleGAN

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели4.5K

Всем привет! Меня зовут Денис Бобков, я сейчас обучаюсь на совместной магистерской программе ВШЭ и ШАД под названием «Современные компьютерные науки», а также работаю исследователем в AIRI в команде Controllable Generative AI лаборатории FusionBrain. Область моих исследований касается методов редактирования изображений.

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

Совсем недавно нашу статью приняли на одну из топ‑конференций по компьютерному зрению CVPR 2024 (эта конференция недавно стала самой цитируемой!). Наша статья про то, как можно редактировать лица в высоком качестве с помощью генеративной модели StyleGAN. Почитать её целиком можно на архиве, а здесь же я хотел кратко рассказать о том, что именно мы сделали.

Читать далее

Изображая цифровое искусство: становление профессии нейрохудожника

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.1K

Привет, меня зовут Алина и я нейрохудожник. Это означает, что я рисую свои работы с помощью нейросетей. Вы можете по-разному относиться к предыдущей фразе: с презрением («не может быть СВОИХ работ из НЕЙРОсети»), с негодованием («Я тоже рисую в нейросети, но не заявляю, что я нейрохудожник»), с интересом («Ого, почитаю, а то у меня не получается нарисовать то, что хочу») и даже благоговением («У меня до сих пор руки не дошли что-то нарисовать в нейросети, а человек уже нейрохудожником стал»). Прежде, чем спорить о праве называться нейрохудожником, стоит сперва ответить на более общий вопрос: а можно ли называть искусством генерацию изображений в нейросети?

Ничто не ново под луной: дискуссии об искусстве тянутся испокон веков. В эпоху Возрождения разгорелся спор между реалистами и идеалистами о том, что первично — идеи или видимый мир — и малые голландцы, мастера жанровой живописи, подвергались критике за то, что их картины не соответствовали идеалам и часто изображали повседневную жизнь. В XIX веке фотографии считались механическими репродукциями реальности, лишенными души и творчества. В первые десятилетия XX века фильмы считались развлекательным зрелищем, а не искусством, пока не вышли фильмы «Рождение нации» (1915) и «Броненосец Потемкин» (1925).

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

Читать далее

Наш опыт применения AI-технологий для классификации документов для подачи в суд

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели3.4K

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

Читать далее

Как оживить Кандинский матрицами вращений для генерации видео (часть 1-я)

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.2K

В статье коснемся темы матриц вращений и особенно их версии для многомерных пространств. Матрицы вращений широко используются в задачах 3D моделирования, для контролируемого поворота объекта. Но как оказалось, можно посмотреть на них шире и применить к многомерному латентному пространству диффузионных моделей. И первые опыты показали применимость матриц вращений при решении задачи генерации видео из текста. Статья (1-я часть) основана на моей магистерской работе в МФТИ, которую защитил в июне 2024г.
Продолжение во 2й части.

Читать далее

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

Телеприсутствие, 3D-видеосвязь и НЕголографические будки

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

Почему модные способы 3D-коммуникации никак не станут массовыми, какое отношение они имеют к голограммам и чем нас не устраивает просто видео.

Читать далее

Принтеры с СНПЧ — так ли они хороши?

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели26K

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

Читать далее

Какой трансформер в океане плавает быстрее всех? Тестируем скорость нейросетей для видео-энкодеров

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели3.8K

Одно из направлений работы нашей команды компьютерного зрения Vision RnD в SberDevices — распознавание жестового языка. Об этой задаче и о том, как мы ее решаем, мы уже писали на Хабре тут и тут (а еще тут и тут). Некоторое время назад перед нами встал вопрос выбора архитектуры нейросети для быстрой и качественной обработки изображений (видео‑энкодера). Хотя сама задача распознавания жестового языка предполагает обработку видео, в качестве первого этапа нужна нейросеть, обрабатывающая изображения на отдельных кадрах. Причем делающая это достаточно быстро, чтобы обеспечить работу всей конструкции в реальном времени. Безусловно, за последний десяток лет человечеству стало известно немало архитектур нейросетей для обработки изображений. Однако, сопоставить их по критерию цена‑качество точность‑производительность и выбрать лидера не так просто. Мы решили собрать несколько популярных решений‑претендентов на звание чемпиона и провести состязание в славном городе Гамбурге тестирование в идентичных условиях. Результатами этого исследования делимся под катом.

Читать далее

Решатель Игры Set на Микроконтроллере

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели4.9K

Существует одна остроумная настольная игра, называется Set. Это игра на внимание.

В этом тексте я показал, как я сконструировал автоматический решатель, чтобы всегда выигрывать в игру Set!

Читать далее

Использование моделей EfficientNet для классификации изображений

Уровень сложностиСложный
Время на прочтение19 мин
Охват и читатели21K

Искусственные нейронные сети (ИНС) — мощный инструмент в области компьютерного зрения, особенно в задачах классификации изображений. Эта область применения была одной из первых, для которой ИНС были разработаны. Например, перцептрон Розенблатта [1], созданный в 1957 году, является одним из самых ранних примеров ИНС, способной классифицировать изображения.

Свёрточные нейронные сети (СНС) [2] стали особенно популярными благодаря их способности эффективно обрабатывать изображения. Они используют механизмы, подобные тем, которые используются человеческим мозгом для обнаружения форм и текстур, что делает их идеальными для задач классификации изображений.

Однако выбор оптимальной архитектуры СНС может быть сложной задачей. Необходимо найти баланс между высокой точностью классификации и эффективным использованием ресурсов. Это включает в себя настройку глубины сети, размера фильтров и других параметров. В 2019 году команда исследователей из Google AI представила решение этой проблемы. Они разработали серию архитектур моделей под названием EfficientNet [3]. Эти модели отличаются высокой степенью эффективности и легко настраиваются. Они позволяют классифицировать изображения с высокой точностью, при этом потребляя минимальное количество ресурсов. EfficientNet стало значительным шагом вперед в развитии ИНС для классификации изображений и продолжает быть актуальным до сих пор.

Читать далее

Импортозамещение по-русски на 146%. AR-очки

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели27K

Меня зовут Илья Зеленский. Помните басню Крылова «мартышка и очки»? Смысл басни был, как важно владеть знаниями и правильно применять их. Поэтому я хочу поделиться своим опытом запуска действительно сложного продукта.

Читать далее

Как malloc сломала JPGLoader в Serenity, или Как выиграть в лотерее

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели17K

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

Странно, не так ли? Похоже, будто просто перепутали RGB и BGR. При этом внесение в JPGLoader.cpp следующего изменения:

-   const Color color { (u8)block.y[pixel_index], (u8)block.cb[pixel_index], (u8)block.cr[pixel_index] };
+   const Color color { (u8)block.cr[pixel_index], (u8)block.cb[pixel_index], (u8)block.y[pixel_index] };
    context.bitmap->set_pixel(x, y, color);

приводит к корректному показу картинки. Вроде бы можно считать дело закрытым!

…Но нет. Возникает вопрос, почему вообще произошёл этот сбой?
Читать дальше →