ФиКВ
PhyCV — это первая библиотека компьютерного зрения, которая использует алгоритмы, непосредственно выведенные из уравнений физики, управляющих физическими явлениями. Алгоритмы, появившиеся в первой версии, имитируют распространение света через физическую среду с естественными и искусственными дифракционными свойствами с последующим когерентным обнаружением. В отличие от традиционных алгоритмов, которые представляют собой последовательность вручную созданных эмпирических правил, алгоритмы, основанные на физике, используют физические законы природы в качестве шаблонов. Кроме того, эти алгоритмы в принципе могут быть реализованы в реальных физических устройствах для быстрых и эффективных вычислений в форме аналоговых вычислений. [1]
В настоящее время PhyCV имеет три алгоритма: преобразование фазового растяжения (PST) и адаптивный экстрактор градиентного поля фазового растяжения (PAGE), а также улучшение зрения посредством виртуальной дифракции и когерентного обнаружения (VEViD). Все алгоритмы имеют версии CPU и GPU. PhyCV теперь доступен на GitHub и может быть установлен из pip .
История
[ редактировать ]Алгоритмы PhyCV основаны на физике фотонного растяжения времени. [2] [3] (аппаратный метод сверхбыстрого и однократного сбора данных). PST — это алгоритм обнаружения границ, который был открыт в 2016 году и имеет более 800 звезд и более 200 вилок на GitHub. PAGE — это алгоритм обнаружения направленных границ, исходный код которого был открыт в феврале 2022 года. PhyCV был первоначально разработан и выложен в открытый доступ компанией Jalali-Lab @ UCLA в мае 2022 года. В первоначальной версии PhyCV использовался исходный код PST с открытым исходным кодом. и PAGE значительно переработан и улучшен, чтобы стать модульным, более эффективным, ускоренным на графическом процессоре и объектно-ориентированным. VEViD — это алгоритм улучшения цвета и слабого освещения, который был добавлен в PhyCV в ноябре 2022 года.
Фон
[ редактировать ]Фазово-растягивающее преобразование (PST)
[ редактировать ]Phase-Stretch Transform (PST) — это эффективный в вычислительном отношении алгоритм обнаружения границ и текстур с исключительной производительностью на изображениях с ослабленным зрением. [4] [5] [6] Алгоритм преобразует изображение, имитируя распространение света через устройство с специально разработанными дифракционными свойствами с последующим когерентным обнаружением. Он был применен для улучшения разрешения изображения МРТ , [7] извлечение кровеносных сосудов на изображениях сетчатки, [8] идентификация дельфинов, [9] и очистка сточных вод, [10] биологическая визуализация одной молекулы, [11] и классификация БПЛА с использованием микродопплеровской визуализации. [12]
Адаптивный экстрактор градиентного поля с фазовым растяжением (PAGE)
[ редактировать ]Адаптивный экстрактор градиентного поля с фазовым растяжением (PAGE) — это основанный на физике алгоритм для обнаружения краев и их ориентации в цифровых изображениях в различных масштабах. [13] [14] Алгоритм основан на уравнениях дифракции оптики. Образно говоря, PAGE имитирует физику двулучепреломления (зависящего от ориентации) дифракционного распространения через физическое устройство с определенной дифракционной структурой. Распространение преобразует действительное изображение в сложную функцию. Связанная информация содержится в действительных и мнимых компонентах выходных данных. Выходные данные представляют фазу комплексной функции.
Улучшение зрения посредством виртуальной дифракции и когерентного обнаружения (VEViD)
[ редактировать ]Улучшение зрения посредством виртуальной дифракции и когерентного обнаружения (VEViD) — эффективный и интерпретируемый алгоритм улучшения цвета и слабого освещения, который переосмысливает цифровое изображение как пространственно изменяющееся метафорическое световое поле, а затем подвергает поле физическим процессам, подобным дифракции и когерентному обнаружению. [15] Термин «виртуальный» отражает отклонение от физического мира. Световое поле имеет пиксельную структуру, и распространение придает фазу с произвольной зависимостью от частоты, которая может отличаться от квадратичного поведения физической дифракции. VEViD можно еще больше ускорить за счет математических аппроксимаций, которые сокращают время вычислений без заметного ущерба для качества изображения. Аппроксимация VEViD в закрытой форме, которую мы называем VEViD-lite, может достигать скорости до 200 кадров в секунду для улучшения видео 4K.
PhyCV на грани
[ редактировать ]Благодаря малой размерности и высокой эффективности PhyCV идеально подходит для приложений периферийных вычислений. В этом разделе мы демонстрируем запуск PhyCV на NVIDIA Jetson Nano в режиме реального времени.
Комплект разработчика NVIDIA Jetson Nano
[ редактировать ]NVIDIA Jetson Nano Developer Kit — это компактная и энергоэффективная платформа для приложений периферийных вычислений. Он оснащен графическим процессором с архитектурой NVIDIA Maxwell со 128 ядрами CUDA , четырехъядерным процессором ARM Cortex-A57, 4 ГБ 64-битной оперативной памяти LPDDR4 и поддерживает кодирование и декодирование видео с разрешением до 4K. Jetson Nano также предлагает различные интерфейсы для подключения и расширения, что делает его идеальным для широкого спектра приложений искусственного интеллекта и Интернета вещей. В нашей настройке мы подключаем USB-камеру к Jetson Nano для получения видео и демонстрируем использование PhyCV для обработки видео в реальном времени.
PhyCV в реальном времени на Jetson Nano
[ редактировать ]Мы используем Jetson Nano (4 ГБ) с NVIDIA JetPack SDK версии 4.6.1, который поставляется с предустановленными Python 3.6, CUDA 10.2 и OpenCV 4.1.1. Далее мы устанавливаем PyTorch 1.10, чтобы включить PhyCV с ускорением графического процессора. Мы демонстрируем результаты и показатели запуска PhyCV на Jetson Nano в режиме реального времени для задач обнаружения границ и улучшения качества при слабом освещении. Для видео 480p обе операции достигают скорости более 38 кадров в секунду, что достаточно для большинства камер, снимающих видео со скоростью 30 кадров в секунду. Для видео 720p улучшение PhyCV при слабом освещении может работать со скоростью 24 кадра в секунду, а обнаружение границ PhyCV — со скоростью 17 кадров в секунду.
Обнаружение границ PhyCV | Улучшение PhyCV при слабом освещении | |
---|---|---|
480p (640 х 480) | 25,9 мс | 24,5 мс |
720p (1280 х 720) | 58,5 мс | 41,1 мс |
Основные моменты
[ редактировать ]Модульная архитектура кода
[ редактировать ]Код PhyCV имеет модульную структуру, которая точно соответствует физическому процессу, из которого был создан алгоритм. Модули PST и PAGE в библиотеке PhyCV эмулируют распространение входного сигнала (исходного цифрового изображения) через устройство с специально разработанными дифракционными свойствами с последующим когерентным (фазовым) обнаружением. Дисперсионное распространение применяет фазовое ядро к частотной области исходного изображения. В целом этот процесс состоит из трех этапов: загрузка образа, инициализация ядра и применение ядра. В реализации PhyCV каждый алгоритм представлен в виде класса Python , и каждый класс имеет методы , имитирующие описанные выше шаги. Модульная архитектура кода соответствует физике алгоритма. Для получения более подробной информации обратитесь к исходному коду на GitHub.
Ускорение графического процессора
[ редактировать ]PhyCV поддерживает ускорение графического процессора. Версии PST и PAGE для графического процессора построены на PyTorch, ускоренном набором инструментов CUDA . Ускорение полезно для применения алгоритмов при обработке изображений и видео в реальном времени и других задачах глубокого обучения. Ниже показано время выполнения каждого кадра алгоритмов PhyCV на процессоре (Intel i9-9900K) и графическом процессоре (NVIDIA TITAN RTX) для видео в разных разрешениях. Обратите внимание, что улучшение PhyCV при слабом освещении работает в цветовом пространстве HSV, поэтому время работы также включает преобразование RGB в HSV. Однако для всех времен работы с использованием графических процессоров мы игнорируем время перемещения данных из процессоров в графические процессоры и считаем только время работы алгоритма.
Процессор | графический процессор | |
---|---|---|
1080p (1920x1080) | 550 мс | 4,6 мс |
2К (2560 х 1440) | 1000 мс | 8,2 мс |
4K (3840 x 2160) | 2290 мс | 18,5 мс |
Процессор | графический процессор | |
---|---|---|
1080p (1920x1080) | 2800 мс | 48,5 мс |
2К (2560 х 1440) | 5000 мс | 87 мс |
4K (3840 x 2160) | 11660 мс | 197 мс |
Процессор | графический процессор | |
---|---|---|
1080p (1920x1080) | 175 мс | 4,3 мс |
2К (2560 х 1440) | 320 мс | 7,8 мс |
4K (3840 x 2160) | 730 мс | 17,9 мс |
Процессор | графический процессор | |
---|---|---|
1080p (1920x1080) | 60 мс | 2,1 мс |
2К (2560 х 1440) | 110 мс | 3,5 мс |
4K (3840 x 2160) | 245 мс | 7,4 мс |
Установка и примеры
[ редактировать ]можно найти в файле README на GitHub Подробную техническую документацию .
Текущие ограничения
[ редактировать ]Узкое место ввода-вывода (ввода-вывода) для обработки видео в реальном времени
[ редактировать ]При работе с видеопотоками с камер в реальном времени кадры захватываются и буферизуются в ЦП, и их необходимо переместить в графический процессор для запуска алгоритмов PhyCV с ускорением на графическом процессоре. Этот процесс занимает много времени и является распространенным узким местом для алгоритмов обработки видео в реальном времени.
Отсутствие адаптивности параметров для разных изображений
[ редактировать ]В настоящее время параметры алгоритмов PhyCV приходится настраивать вручную для разных изображений. Хотя набор предварительно выбранных параметров работает относительно хорошо для широкого спектра изображений, отсутствие адаптивности параметров для разных изображений на данный момент остается ограничением.
См. также
[ редактировать ]- Обнаружение края
- Обнаружение функций (компьютерное зрение)
- Аналого-цифровой преобразователь с растяжением времени
- Дисперсионное преобразование Фурье с растяжением во времени
- Фазовое растягивающее преобразование
Ссылки
[ редактировать ]- ^ Разработка функций на основе физики. Джалали и др. Оптика, фотоника и лазерные технологии, 2019
- ^ Аналого-цифровое преобразование с растянутым во времени. Бхушан и др. Техника электронных писем, 1998 г.
- ^ Растяжение времени и его применение. Махджубфар и др. Фотоника природы, 2017
- ^ Обнаружение краев изображения на основе физики. Асгари и др. Глобальный симпозиум IEEE по обработке сигналов и информации, 2014 г.
- ^ Обнаружение краев на цифровых изображениях с использованием дисперсионного фазового растяжения. Асгари и др. Международный журнал биомедицинской визуализации, 2015 г.
- ^ Улучшение функций изображений для людей с ослабленным зрением. Сутар и др. Доступ IEEE, 2018 г.
- ^ Быстрое сверхразрешение на изображениях МРТ с использованием преобразования фазового растяжения, Регрессия привязанной точки и обучение с нулевыми данными. Он и др. Международная конференция IEEE по Обработка изображений, 2019
- ^ Преобразование растяжения локальной фазы потока для надежного обнаружения сосудов сетчатки. Чаллоб и др. На Международной конференции по передовым концепциям интеллектуальных систем машинного зрения, 2020 г.
- ^ Метод идентификации дельфинов на основе улучшенного PST. Ван и др. В 2021 г. 6-я Международная конференция IEEE/ACIS по большим данным, облачным вычислениям и науке о данных (BCD), 2021 г.
- ^ Сегментация изображений фазоконтрастных изображений активного ила с использованием преобразования фазового растяжения. Анг и др. Микроскопия, 2019
- ^ Преобразование фазового растяжения для локализационной микроскопии сверхвысокого разрешения. Иловитш и др. В журнале «Биомедицинская оптика Экспресс», 2016 г.
- ^ Классификация дронов с использованием микродопплеровского изображения с усилением по краям на основе CNN. Сингх и др. Трайтемент дю Сигнал, 2021 г.
- ^ Адаптивный экстрактор градиентного поля с фазовым растяжением (страница). Сутар и др. Теория кодирования, 2020
- ^ Адаптивный экстрактор градиентного поля с фазовым растяжением (PAGE). Макфи и др. Препринт arXiv arXiv:2202.03570, 2022 г.
- ^ VEViD: Улучшение зрения посредством виртуальной дифракции и когерентного обнаружения. Джалали и др. ЭЛайт, 2022