Обновить
128K+

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

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

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

Цифровой рентген: нейросетевой анализ печатных плат

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

В данной статье расскажем о нашем опыте определения типов микросхем на рентгеновских снимках моделью YOLO

Читать далее

Новости

Почти 200° обзора: проверяем SOTA-модели оценки глубины на fisheye

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

Fisheye-камера позволяет роботу увидеть почти всё помещение одним кадром. Но за широкий обзор приходится платить: на WideDepth при увеличении угла обзора (FOV) со 120° до 195° ошибка некоторых SOTA-моделей монокулярной оценки глубины увеличивается более чем вдвое. Без точной эталонной разметки трудно понять, что именно подвело модель — геометрия камеры, отличие новых данных от обучающей выборки или погрешность самой разметки.

Чтобы разделить эти факторы, мы создали WideDepth — бенчмарк для оценки глубины по fisheye-изображениям. Он позволяет проверять модели при разных углах обзора, стереобазах и ориентациях камер.

Читать далее

Приложение течёт, а утечки нет: как оптимизатор картинок Next.js съел 4-гигабайтный VPS

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

История про то, как я три дня искал утечку памяти в Node-приложении, не нашёл — и был прав, что не нашёл. А ещё про то, что у каждого починенного пункта тут оказывался свой счёт: фикс памяти через месяц вернулся жалобой на скорость, а разбор скорости вскрыл третью проблему, о которой я не думал вовсе.

Читать далее

Мы обошли фильтр Калмана на одной камере, но сначала три недели измеряли труп

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

Цель видна только через камеру, детектор отдает рамку, дальномера нет. В какой-то момент цель уходит из кадра на три четверти секунды, и ее надо продолжать вести вслепую. Классический фильтр Калмана в этой ситуации теряет цель в 84% эпизодов. Наш трекер теряет ее в 18% и возвращает в центр кадра в 80%.

Читать далее

2000 идентификаций в секунду: как выбрать нужную таблицу на документе без нейросетей

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

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

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

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

Читать далее

RGB‑значения нужно нормализовать делением на 255 или на 256?

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

Допустим, вы пишете программу для обработки изображений. Программа получает изображение, преобразует его в значения с плавающей запятой, выполняет обработку и сохраняет изменённые пиксели на диск в виде 8-битных цветов. Сегодня я хочу рассмотреть вопрос преобразования целых значений в значения с плавающей запятой. Существует два решения, которые на Python и NumPy выглядят так:

Стандартное деление на 255

pixels = img / 255.0
result = process(pixels)
output = np.trunc(result * 255 + 0.5)

Альтернативное деление на 256

pixels = (img + 0.5) / 256.0
result = process(pixels)
output = np.trunc(result * 256)

Я предполагаю, что в обоих случаях выходные значения ограничиваются перед окончательным преобразованием типов:

# Ограничение и преобразование в 8 бит
output_8bit = output.clip(0, 255).astype(np.uint8)

В стандартном случае целочисленный 0 соответствует 0.0, а 255 соответствует 1.0. Это работает абсолютно нормально и именно так всё реализовано в GPU. В альтернативном случае прибавляется смещение на 0,5 и деление происходит на 256, поэтому целочисленный 0 соответствует 0.5/256=0.001953125. Это неудобно, потому что код обработки изображений, например, без знания константы не сможет обнаруживать чёрные пиксели. Из‑за этого мы привязываем логику к 8-битным значениям, даже если вычисления выполняются с плавающей запятой. В стандартном решении всегда можно предполагать, что чёрный соответствует 0.0.

Однако некоторых программистов всё равно притягивает альтернативное решение. В чём дело? Чем оно им так нравится?

Читать далее

Как генерировать реалистичные изображения при большом количестве параметров

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

Сгенерировать реалистичный портрет по одному описанию несложно. Труднее одновременно управлять десятками параметров: возраст, пол, причёска, форма лица и другие признаки.

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

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

Что-же там за метод генерации такой

ЕСИА — не индульгенция: кто отвечает за ошибку идентификации и когда KYC можно строить без Госуслуг

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

Привет, Хабр! Представим: финансовая организация получает из ЕСИА подтвержденные сведения о клиенте, завершает дистанционную идентификацию и принимает его на обслуживание. Позднее выясняется, что операцию совершал мошенник. Паспорт оказался утраченным, изображение документа – отредактированным, а доступ к учетной записи – скомпрометированным.

Кто отвечает? Оператор ЕСИА, потому что сведения пришли из государственной системы? Организация, которая приняла решение обслужить клиента? Или тот, кто когда-то разместил в системе недостоверные данные?

Интуитивный ответ – «если государственная система сказала, что все в порядке, какие могут быть вопросы к бизнесу». Юридический ответ устроен сложнее: подключение к ЕСИА распределяет функции между участниками процесса, но не переносит всю ответственность на оператора системы. Разберемся, где проходит эта граница и как построить технологический контур идентификации, который не сводится к одному зеленому чекбоксу.

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

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

Читать далее

Три разных номера из одной книги — и все проходят контрольную цифру

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

У EAN-13 есть контрольная цифра, и из этого обычно делают вывод: раз проверка сошлась, номер прочитан верно. Вывод неверный. Я получил с одной книги три разных номера, и все три контрольную цифру проходят. Разбираю, почему так выходит, почему у QR такой беды нет и что с этим делать — с кодом, замерами и таблицей, откуда взялась каждая цифра.

Читать далее

Сшивка кадров с микроскопа: как собрать большое изображение из видео

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

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

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

Читать далее

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

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

Привет, Хабр! Кредиты и все, что с ними связано – тема для многих весьма чувствительная. Мы в Smart Engines выступаем за то, чтобы сделать самые раздражающие процессы удобными и быстрыми. И в этом смысле распознавание документов – это редкий пример технологии, где интересы банка (сократить издержки), сотрудника (меньше рутины) и клиента (не ждать решение неделями) действительно совпадают. Под катом рассказываем, как автоматическое распознавание документов может трансформировать процесс кредитования в банках и как такие технологии становятся ключевым звеном кредитного конвейера.

Читать далее

Как измерить то, что вы никогда не замечаете

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

Как научить модель понимать пространство по одному уличному снимку и переводить перспективу в измеримые величины?

В статье исследуем этот вопрос на примере ширины тротуаров: восстанавливаем глубину сцены, строим 3D‑представление поверхности и проверяем, насколько точно машинное обучение может описать привычную городскую среду.

Читать далее

Объяснение диэдральных подгрупп на примере Factorio

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

Диэдральная группа — это математическое обозначение всех поворотов и отражений правильного многоугольника. Для n‑стороннего многоугольника всегда существует n возможных поворотов и n отражений, что даёт нам 2n возможных симметрий.

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

Теория групп полезна при разработке игр. Я вспомнил об этом, прочитав девлог Factorio, в котором разработчик рассказал о проблемах, возникших из‑за того, что изначально он забыл учесть все случаи.

Читать далее

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

Типизация документов без OCR и нейросетей: 99.79% точности за 3 мс

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

Когда пользователь загружает документ в систему, сначала нужно понять, что именно он прислал. Паспорт? Договор? Полис? Заявление? От этого зависит весь дальнейший сценарий обработки: какие поля искать, какие проверки выполнять и какой OCR использовать. Ошибка на этом этапе делает бессмысленной всю дальнейшую обработку. Мы покажем, что тип документа можно определить, вообще не читая его содержимое. Для этого не нужны OCR, нейронные сети или анализ текста – достаточно использовать геометрию документа.

Читать далее

Kandinsky WM 1.0: генеративные модели для Physical AI

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

В конце прошлого года мы представили семейство моделей генерации изображений и видео Kandinsky 5.0. Флагманская модель Kandinsky 5.0 Video Pro заняла и долгое время удерживала первое место среди open-source-моделей в категории text-to-video на arena.ai. Сегодня мы выкладываем в открытый доступ Kandinsky WM 1.0, набор из трех специализированных моделей генерации видео для доменов Physical AI: автомобильные сценарии, робототехника и сцены со сложной физикой.

Читать далее

Как я автоматизировал создание стикеров для соцсетей: локально обучаем стилевую LoRA для SD 1.5 на 30 картинках

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

Генерация красивых единичных артов давно перестала быть проблемой. Но как только возникает прикладная задача — например, сделать серию консистентных иллюстраций или заготовок для стикерпака в едином стиле — обычный промпт‑инжиниринг начинает буксовать. Закрытые модели дают высокое качество, но забирают контроль и навязывают свое видение.

Поэтому я решил собрать собственный контролируемый пайплайн. Базой для эксперимента была выбрана Stable Diffusion 1.5. Да, это далеко не самая новая архитектура: она хуже современных моделей понимает комплексные описания, чаще ломает анатомию и ограничена базовым разрешением 512×512. Но у неё остаются неоспоримые козыри: низкие требования к железу, гигантская экосистема (ControlNet, чекпоинты) и возможность быстро обучать и тестировать гипотезы на домашнем ПК.

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

Читать далее

ИИ в медицине. Часть 1

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

В 2026 году активно выходят новые фронтир LLM-ки, агентные системы и принципиально новые подходы в самых разных областях. Медицинский AI периодически перенимает наработки, однако область применения ИИ в медицине сейчас остается ограниченной.

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

Читать далее

Как распознать резьбу без помощи ИИ

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

При производстве воздушных клапанов отливают и обрабатывают деталь с отверстиями. Отверстия могут быть:
1. Сквозное гладкое
2. Сквозное с резьбой
3. С заглушкой

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

Читать далее

Точность 99,2% и ни одной найденной опухоли: во что обходится компьютерное зрение в медицине

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

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

Логика в этом есть, и я не иронизирую. Архитектурно между дефектом сварного шва и узлом в легком действительно нет пропасти, обе задачи это поиск аномалии на картинке. Человек напротив рассуждает правильно ровно до того момента, пока не произносит слово «точность».

В шведском исследовании MASAI, самом крупном рандомизированном испытании ИИ в скрининге на сегодня, участвовали 105 934 женщины. Возьмем группу, где маммограммы смотрели с ИИ-поддержкой: 53 043 участницы, рак за время наблюдения нашли у 420 из них. Распространенность 0,79%.

Теперь пишем модель. Она принимает снимок и возвращает «норма». Всегда. Никакого обучения, три строчки на питоне, разработка тридцать секунд.

Ее точность на этой выборке 99,21%.

Заказчик просил 98–99. Константа выдает 99,2 и не находит ни одной опухоли.

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

Читать разбор

Занимаются ли разработчики ИИ‑моделей пеликанмаксингом?

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

Последние несколько лет Саймон Уиллисон тестировал каждый крупный релиз LLM одним и тем же промптом: «Сгенерируй SVG с пеликаном, сидящим на велосипеде».

Эта забавная проверка постепенно стала одним из самых известных неформальных бенчмарков ИИ. Сгенерированные Саймоном картинки пеликанов на велосипедах часто становятся одними из самых популярных комментариев в постах Hacker News о новых релизах ИИ-лабораторий.

Сегодня бенчмарк стал причиной серьёзных обсуждений его полезности, а также того, занимаются ли ИИ-лаборатории его бенчмаксингом [практикой оптимизации ИИ-моделей для получения высоких оценок в популярных бенчмарках]. Когда на кону миллиарды или даже триллионы долларов, а качественный результат может склонить пользователей на твою сторону, не возникает ли искушения добавить модели немного пеликанмаксинга?

Мне захотелось это проверить, поэтому я организовал небольшой эксперимент: сгенерировал 1008 SVG в семи передовых моделях, оценил их при помощи LLM-судьи и проанализировал результаты Claude Fable 5.

В этой статье я расскажу о результатах. Весь код доступен на Github.

Читать далее
1
23 ...