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

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

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

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

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

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

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

Допустим, вы пишете программу для обработки изображений. Программа получает изображение, преобразует его в значения с плавающей запятой, выполняет обработку и сохраняет изменённые пиксели на диск в виде 8-битных цветов. Сегодня я хочу рассмотреть вопрос преобразования целых значений в значения с плавающей запятой. Существует два решения, которые на Python и NumPy выглядят так:
Стандартное деление на 255
pixels = img / 255.0result = process(pixels)output = np.trunc(result * 255 + 0.5)
Альтернативное деление на 256
pixels = (img + 0.5) / 256.0result = 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.
Однако некоторых программистов всё равно притягивает альтернативное решение. В чём дело? Чем оно им так нравится?

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

Привет, Хабр! Представим: финансовая организация получает из ЕСИА подтвержденные сведения о клиенте, завершает дистанционную идентификацию и принимает его на обслуживание. Позднее выясняется, что операцию совершал мошенник. Паспорт оказался утраченным, изображение документа – отредактированным, а доступ к учетной записи – скомпрометированным.
Кто отвечает? Оператор ЕСИА, потому что сведения пришли из государственной системы? Организация, которая приняла решение обслужить клиента? Или тот, кто когда-то разместил в системе недостоверные данные?
Интуитивный ответ – «если государственная система сказала, что все в порядке, какие могут быть вопросы к бизнесу». Юридический ответ устроен сложнее: подключение к ЕСИА распределяет функции между участниками процесса, но не переносит всю ответственность на оператора системы. Разберемся, где проходит эта граница и как построить технологический контур идентификации, который не сводится к одному зеленому чекбоксу.
Эту статью мы подготовили совместно с Национальным советом финансового рынка (НСФР). В основу юридической части легло заключение НСФР о правовых условиях использования решений Smart Engines для получения и проверки сведений, необходимых финансовым организациям при идентификации клиентов.
Дисклеймер: в тексте учитывается законодательство по состоянию на август 2026 года. Материал носит информационный характер и не заменяет правовой анализ конкретного бизнес-процесса.

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

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

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

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

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

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

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

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

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

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

Разговор всегда начинается одинаково. «Вы же делаете детекцию брака на конвейере: там деталь и дефект, тут снимок и опухоль, разница в датасете. Дайте модель, которая находит рак, точность нужна процентов 98, ну 99, чтобы наверняка».
Логика в этом есть, и я не иронизирую. Архитектурно между дефектом сварного шва и узлом в легком действительно нет пропасти, обе задачи это поиск аномалии на картинке. Человек напротив рассуждает правильно ровно до того момента, пока не произносит слово «точность».
В шведском исследовании MASAI, самом крупном рандомизированном испытании ИИ в скрининге на сегодня, участвовали 105 934 женщины. Возьмем группу, где маммограммы смотрели с ИИ-поддержкой: 53 043 участницы, рак за время наблюдения нашли у 420 из них. Распространенность 0,79%.
Теперь пишем модель. Она принимает снимок и возвращает «норма». Всегда. Никакого обучения, три строчки на питоне, разработка тридцать секунд.
Ее точность на этой выборке 99,21%.
Заказчик просил 98–99. Константа выдает 99,2 и не находит ни одной опухоли.
Дальше я честно считаю такой проект целиком. Во сколько встает разметка, если размечать умеет только врач. Почему эталон, по которому учат модель, сам расходится в четверти случаев. Где сеть выучивает больницу вместо болезни. Что требуют три регулятора, кто отвечает за ошибку и кто за все это платит. И когда оно дойдет до пациента.

Последние несколько лет Саймон Уиллисон тестировал каждый крупный релиз LLM одним и тем же промптом: «Сгенерируй SVG с пеликаном, сидящим на велосипеде».
Эта забавная проверка постепенно стала одним из самых известных неформальных бенчмарков ИИ. Сгенерированные Саймоном картинки пеликанов на велосипедах часто становятся одними из самых популярных комментариев в постах Hacker News о новых релизах ИИ-лабораторий.
Сегодня бенчмарк стал причиной серьёзных обсуждений его полезности, а также того, занимаются ли ИИ-лаборатории его бенчмаксингом [практикой оптимизации ИИ-моделей для получения высоких оценок в популярных бенчмарках]. Когда на кону миллиарды или даже триллионы долларов, а качественный результат может склонить пользователей на твою сторону, не возникает ли искушения добавить модели немного пеликанмаксинга?
Мне захотелось это проверить, поэтому я организовал небольшой эксперимент: сгенерировал 1008 SVG в семи передовых моделях, оценил их при помощи LLM-судьи и проанализировал результаты Claude Fable 5.
В этой статье я расскажу о результатах. Весь код доступен на Github.