- BrainTools - https://www.braintools.ru -

Как дифракционная оптика и нейронные сети позволяют снимать гиперспектральные изображения за одно экспонирование

Привет! Хабр. Мы — группа исследователей из AIRI, Самарского университета и МФТИ, занимаемся вопросами точной цветовой репродукции и прикладной гиперспектральной съемкой. Не так давно мы придумали, как из обычной RGB‑камеры сделать гиперспектральную, заменив объектив пластинкой с набором гармонических линз. 

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

Мы недавно вернулись из Бремена, где представили нашу статью Diffract and Conquer: Hyperspectral Imaging from Any RGB Camera via Optical Encoding and Learning [1] на IJCAI 2026. Здесь рассказываем о результате чуть более популярно и кратко.

Как дифракционная оптика и нейронные сети позволяют снимать гиперспектральные изображения за одно экспонирование - 1

Отличие гиперспектральных изображений от RGB

Каждый материал отражает свет по‑своему: доля отражённого света зависит от длины волны. Эта зависимость — коэффициент отражения R(lambda) — и формирует характерный спектр материала. Он гораздо информативнее цвета: хлорофилл, гемоглобин, вода, полимеры, пигменты имеют в спектрах особенности, по которым их можно узнавать.

Но обычная камера этот спектр не измеряет — она его интегрирует. У сенсора три типа пикселей с широкими кривыми чувствительности — красной, зелёной, синей — и от всего непрерывного спектра остаётся три числа (подробнее об этом здесь на хабре рассказывал [2] мой коллега Егор Ершов). Это описывается простой моделью формирования отклика:

с_j=int_Lambda chi_j(lambda) R(lambda) dlambda,

где c_j отклик в j‑ом канале, chi_j — спектральная чувствительность j‑ого канала, Lambda — видимый диапазон. У обычной камеры j in { R, G, B }. Тем временем два материала с непохожими спектрами иногда могут дать одинаковый цвет (по сути, вектор окликов) — такие пары называют метамерами. Именно поэтому подделку, которая на фотографии в RGB выглядит как настоящий объект, может обнаружить гиперспектралка.

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

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

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

Как получить гиперспектральный куб?

Так как же сделать так, чтобы камера фотографировала более трёх каналов на каждый пиксель? Рассмотрим наиболее распространённые в литературе решения. 

Измерить напрямую сканированием. Щелевые камеры (так называемые, pushbrooms) снимают сцену строчка за строчкой. Свет, пройдя через объектив, попадает в диспергирующий элемент (обычно это дифракционная решётка), где разлагается по длинам волн. Этот спектр, в свою очередь, собирается множеством каналов, после чего камера сканирует следующую строчку. Таким образом набирается куб из множества измерений.

Источник: Википедия.

Источник: Википедия [3].

К примеру, так работает индустриальная камера Specim IQ [4]: на съёмку одного куба требуются минуты, и всё это время сцена и камера должны стоять неподвижно. Аппарат даёт высокоточные измерения, но ничего движущегося так не снять. И цена соответствующая, порядка миллионов рублей.

Оценить куб из легкодоступных снимков — RGB‑изображений. Это может быть неочевидным, но гиперспектральный куб можно получить даже из одного RGB‑изображения. Казалось бы, восстановление n‑мерного куба по 3-х канальному отклику — максимально некорректная и плохо обусловленная обратная задача, и для каждого RGB‑отклика решений может быть великое множество. Но здесь нас спасает два факта.

Во‑первых, внутренняя размерность пространства спектров на самом деле весьма низка: примерно 7–10 базисных спектров хватает для описания любой кривой. Во‑вторых, метамеры в реальной жизни встречаются не так часто, как может показаться. На 10 000 спектров метамерной будет лишь одна пара. 

В современной литературе показано, что с восстановлением спектров справляются нейронные сети, обучающиеся в supervised-режиме на больших парных наборах данных «RGB — гиперспектральный куб». Самый известный пример — MST++ [5] (Yuanhao Cai, CVPR 2022). По сути, метод оценки спектра здесь исключительно софтверный, а на стороне железа — самая обычная оптическая система.

Закодировать спектр оптикой и восстановить вычислительно. В самой известной схеме, Coded Aperture Snapshot Spectral Imaging (CASSI), на пути света стоят кодирующая маска и призма. Ход лучей после призмы зависит от длины волны, поэтому на приёмном элементе накладывается множество модулированных маской изображений. Спектр размазывается и перемешивается в одном кадре, но его можно восстановить с помощью методов вычислительной оптики, а конкретно compressed sensing алгоритмов. По сравнению с RGB такой способ кодирования хранит больше информации об изначальном кубе, но требует отдельной оптической системы с тремя последовательными оптическими элементами, которым нужна тонкая настройка.

Схема CASSI. Источник: Ruixuan Zhao et al. / Scientific Reports, 13, 12007 (2023)

Схема CASSI. Источник: Ruixuan Zhao et al. / Scientific Reports, 13, 12007 (2023)

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

Линза, которая фокусирует не всё

Наша идея — заменить традиционную линзу на хитрый дифракционный оптический адаптер. Он представляет собой двумерный массив гармонических линз с переменным микрорельефом. 

Гармоническая линза, если кто не знает, — это особый тип дифракционной линзы, предложенный [6] Суини и Соммаргреном в 1995 году. Если обычная дифракционная линза фокусирует каждую длину волны в свою фокальную плоскость, то гармоническая линза устроена так, что фокусные расстояния совпадают для нескольких длин волн спектра.

Для этого — и это ещё одно отличие гармонических линз — работать приходится в высших порядках дифракции (отсюда и название), из‑за чего гармоническая линза обычно толще, единицы микрон, тогда как высота обычной дифракционной линзы в точности равна рабочей длине волны, порядка половины микрона

То, какие именно длины волн окажутся в фокусе гармонической линзы, зависит от высоты микрорельефа h и определяется выражением

lambda_k=h(n -1 )/k, k=1, 2, 3 ...,

где n — показатель преломления материала рельефа. Другими словами, достаточно поделить величину h(n−1) на натуральные числа, чтобы получить все длины волн, которые линза собирает в фокус. Всё, что между ними, в фокус не попадает и растекается по кадру ровным фоном.

На рисунке ниже можно посмотреть, каким окажется спектр в фокусе гармонической линзы, если на вход ей подаётся белый свет. Линза спроектирована так, чтобы в видимой области получалось три гармоники в диапазонах, к которым чувствительны RGB‑сенсоры. Для сравнения рядом изображены спектральные чувствительности камеры.

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

а) Спектральная селективность гармонической дифракционной линзы в номинальной фокальной точке при белом освещении. Красным отмечены ее гармоники, в легенде показаны длины волн и порядки дифракций на них. б) Спектральные чувствительности RGB chi_j (lambda) камеры Sony.

С обычным объективом красный пиксель будет формировать сигнал со всего красного диапазона: по такому числу нельзя сказать, что было внутри интервала — узкая линия на 630 нм или ровная полка на весь диапазон. У гармонической линзы вес неравномерный: гармоники дают резкую картинку, остальное уходит в засветку. Например, красный пиксель под линзой с рельефом 4,064 мкм смотрит в первую очередь на 630 нм, а под соседней линзой с другой высотой рельефа — уже на другую длину волны. 

16 линз, 48 измерений, один кадр

Как видно из рисунка выше, спектральные ширины в окрестности избранных длин волн довольно невелики, и чтобы покрыть ими весь спектр, нам нужно несколько гармонических линз. Мы предлагаем ставить перед сенсором массив из шестнадцати гармонических линз с разной высотой микрорельефа, уложенных в квадрат 4 × 4. Высоты подобраны так, чтобы гармоники разных линз попадали в разные места полос пропускания байеровского фильтра, а вместе плотно покрывали видимый диапазон. Алгоритм подбора высот линз подробнее описан в нашей статье [1].

Фото прототипа нашего объектива, установленного в камеру, и составляющих его гармонических линз.

Фото прототипа нашего объектива, установленного в камеру, и составляющих его гармонических линз.

В итоге в кадре получается шестнадцать по‑разному «окрашенных» копий сцены; из этих 48 измерений мы восстанавливаем 31 спектральный канал в диапазоне 400–700 нм.

Пример кадра, регистрируемого на матрице камеры Hydra. Сенсор совершенно обычный — CMV4000 в камере Baumer MXGC40, стандартная байеровская мозаика, никаких кастомных фильтров и напылений.

Пример кадра, регистрируемого на матрице камеры Hydra. Сенсор совершенно обычный — CMV4000 в камере Baumer MXGC40, стандартная байеровская мозаика, никаких кастомных фильтров и напылений.
Почему 31, а не 48?

В той части науки, в которой мы работаем, доступные/стандартные наборы данных гиперспектральных изображений имеют 31 отсчет (400–700 нм с шагом 10 нм). Мы приходим именно к таким данным, чтобы была возможность корректно сравниваться с аналогами.

В каждом из 48-ми каналов, которые снимает Hydra, все‑таки интегрированная информация о спектре со всего видимого диапазона, а восстанавливаем мы 31 узкополосное измерение. Такое измерение можно было бы получить, если бы у нас был прибор с чувствительностями дельта‑функциями.

Конечно, это и правда выглядит странно: из большего количества измерений собирается меньшее. Но причины здесь исключительно технические.

Главное отличие нашей идеи от других однокадровых схем гиперспектральной регистрации — дешевизна и простота: сигнал кодируется пассивной пластинкой, тиражируемой литографией, а считывает сенсор, который и так стоит в любой камере. Платим мы за это пространственным разрешением: сенсор 2048 × 2048 делится сеткой 16 субизображений 512 × 512, из которых после обрезки и совмещения остаётся кадр 450 × 450. То есть, примерно в 4,5 раза меньше по каждой оси.

Как использовать только 70 тысяч параметров

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

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

Нашу модель мы назвали GGPIR (Generated Gaussian Primitives Image Restoration). Идея в том, чтобы представить спектр суммой нескольких простых «примитивов» — гауссиан — и предсказывать параметры этих гауссиан. Спектр большинства реальных материалов — плавная кривая с несколькими широкими особенностями, поэтому нескольких гауссиан хватает, а параметров у них в разы меньше, чем точек отсчёта спектра. Примитивы при этом не фиксированные: их параметры генерируются по локальному содержимому изображения, то есть базис адаптируется к сцене. В итоге для декодирования спектра используется всего 70 тысяч параметров против 1,6 миллиона у трансформерных методов вроде MST++, выигрыш более чем в 20 раз!

Архитектура GGPIR. В цветных рамках подробнее приведены блоки генераторов примитивов-гауссиан, проекторный слой и слой агрегатора. Подробнее про эти блоки можно прочитать в нашей статье.

Архитектура GGPIR. В цветных рамках подробнее приведены блоки генераторов примитивов‑гауссиан, проекторный слой и слой агрегатора. Подробнее про эти блоки можно прочитать в нашей статье [1].

Сравнение точности восстановления спектров

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

Сравнивались на 4 датасетах: NTIRE 2022, ICVL, CAVE, HARVARD. Качество измеряли тремя метриками: 

  • PSNR (дБ, больше — лучше) — близость восстановленного куба к эталону; 

  • SAM (градусы, меньше — лучше) — точность восстановления формы спектра независимо от яркости, по сути это косинусное расстояние между спектральными кривыми; 

  • SSIM (больше — лучше) — сохранность пространственной структуры.

Таблица 1. Сравнение различных методов реконструкции спектра на 4-х наборах данных. Лучший результат в каждом столбце выделен жирным. Метрики идут в следующем порядке: SAM° ↓ / PSNR дБ ↑ / SSIM ↑.

Метод

Тип метода

NTIRE 2022

ICVL

CAVE

HARVARD

MST++

Софтверный

5,88 / 28,37 / 0,89

2,38 / 35,12 / 0,98

7,58 / 35,14 / 0,98

5,44 / 34,98 / 0,92

CESST

Софтверный

5,76 / 28,71 / 0,91

2,43 / 34,68 / 0,98

12,08 / 27,62 / 0,95

12,19 / 30,34 / 0,90

MSFN

Софтверный

4,94 / 25,99 / 0,85

2,42 / 35,16 / 0,98

7,48 / 34,97 / 0,98

6,71 / 34,73 / 0,92

SCCD

Софт + оптика

3,97 / 33,24 / 0,97

2,29 / 31,92 / 0,97

12,19 / 25,83 / 0,78

8,94 / 33,19 / 0,82

QDO

Софт + оптика

14,26 / 28,50 / 0,82

5,87 / 28,85 / 0,91

15,44 / 27,76 / 0,86

HDL array [Shi et al., 2024]

Софт + оптика

11,11 / 32,72 / 0,90

3,86 / 36,40 / 0,98

11,04 / 32,65 / 0,94

6,76 / 32,99 / 0,87

GGPIR (наш)

Софт + оптика

4,80 / 38,47 / 0,968

1,24 / 46,37 / 0,996

6,78 / 35,58 / 0,937

4,08 / 39,50 / 0,96

Главный повод для гордости здесь — на NTIRE 2022 мы получаем 38,47 дБ PSNR против 28,37 дБ у SotA метода реконструкции из RGB MST++. Десять децибел — это ошибка [9] восстановления в десять раз меньше по мощности, и, как уже было отмечено, берётся эта разница в первую очередь не из архитектуры сети, а из того, что спектр закодирован оптической системой.

Наиболее близкий к нам подход — строка HDL array: это работа Shi et al. 2024 [10], тоже массив линз с оптическим кодированием спектра. На ICVL у нас преимущество 46,37 против 36,40 дБ.

Где мы проигрываем, тоже будет честным назвать. По SSIM нас местами обходят: на CAVE — MST++ и MSFN, на NTIRE 2022 — оптическая схема SCCD. По SAM на NTIRE 2022 лучше та же SCCD: 3,97 против наших 4,80. Это ожидаемо: пространственный контекст у нашей сети ограничен свёртками 3 × 3.

Метрики метриками, но всегда интереснее смотреть на метод в реальных съёмках. Мы снимали одни и те же сцены нашим прототипом и эталонной сканирующей камерой Specim IQ, после чего сравнивали спектры. Оказалось, что наш адаптер в связке с GGPIR всего за одну экспозицию против минуты сканирования у Specim IQ восстанавливает спектры, которые уверенно повторяют [11] форму эталонных.

Сравнение спектра, снятого на нашу систему и гиперспектральную камеру Specim IQ (b), (e). На фотографиях (a), (c) и (d), (f) показан RGB-синтез изображения, снятого на обе камеры.

Сравнение спектра, снятого на нашу систему и гиперспектральную камеру Specim IQ (b), (e). На фотографиях (a), (c) и (d), (f) показан RGB‑синтез изображения, снятого на обе камеры.

Что дальше? 

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

Будем рады ответить на ваши вопросы!

Автор: AgentKolobok

Источник [12]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/35596

URLs in this post:

[1] Diffract and Conquer: Hyperspectral Imaging from Any RGB Camera via Optical Encoding and Learning: https://ijcai-preprints.s3.us-west-1.amazonaws.com/2026/5575.pdf

[2] рассказывал: https://habr.com/ru/companies/airi/articles/916116/

[3] Википедия: https://en.wikipedia.org/wiki/Push_broom_scanner

[4] IQ: http://www.braintools.ru/article/7605

[5] MST++: https://arxiv.org/pdf/2204.07908

[6] предложенный: https://opg.optica.org/ao/abstract.cfm?uri=ao-34-14-2469

[7] обратную свертку: https://www.cv-foundation.org/openaccess/content_cvpr_workshops_2015/W10/papers/Nikonorov_Fresnel_Lens_Imaging_2015_CVPR_paper.pdf

[8] глубокое обучение: https://ieeexplore.ieee.org/abstract/document/8424456/

[9] ошибка: http://www.braintools.ru/article/4192

[10] Shi et al. 2024: https://dl.acm.org/doi/10.1145/3687976

[11] повторяют: http://www.braintools.ru/article/4012

[12] Источник: https://habr.com/ru/companies/airi/articles/1082908/?utm_campaign=1082908&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Rambler's Top100