
Ускоряем обработку изображений в OpenCV на RISC-V: алгоритмическая, низкоуровневая и компиляторная оптимизация
Roman_Kuzmin 17 минут назад Ускоряем обработку изображений в OpenCV на RISC-V: алгоритмическая, низкоуровневая и компиляторная оптимизация Сложный 7 мин 544 Блог компании YADRO Машинное обучение * Обработка изображений...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: Roman_Kuzmin 17 минут назад Ускоряем обработку изображений в OpenCV на RISC-V: алгоритмическая, низкоуровневая и компиляторная оптимизация Сложный 7 мин 544 Блог компании YADRO Машинное обучение * Обработка изображений * Open source * Процессоры Кейс Привет, Хабр! Меня зовут Роман Кузьмин, я занимаюсь развитием фреймворков искусственного интеллекта в YADRO. В этой статье я расскажу об оптимизации алгоритма компьютерного зрения — детекторе углов, основанном на глобальных и локальных свойствах кривизны, — который реализован с помощью библиотеки OpenCV под архитектуру RISC-V.
С коллегами из НГТУ им. Алексеева мы добились лучшей эффективности алгоритма за счет алгоритмических оптимизаций и ручной векторизации с использованием RVV. Я подробно опишу, что и где мы изменили, а в конце статьи оценю прогресс с помощью тестов на плате Lichee Pi 4a.
Технические детали
Открытая и модульная архитектура RISC-V — это перспективная платформа для задач компьютерного зрения. Под нее активно адаптируют ключевые библиотеки, в том числе OpenCV. Для максимальной производительности здесь часто требуется низкоуровневая оптимизация с использованием векторных расширений.
Далее я расскажу о том, как мы провели алгоритмическую, низкоуровневую и компиляторную оптимизацию алгоритма детектора угловых точек на основе метода кривизны контура (CSS). В работе использовали:Одноплатный компьютер Lichee Pi 4A с поддержкой RVV 0. 1 — хотя сейчас актуальна более свежая версия RVV, возможности компьютера несколько нас ограничили.
94 для отладки и первичного тестирования на x86-хосте. Систему сборки CMake 3. Описание алгоритмаНа С++ с помощью OpenCV мы реализовали детектор угловых точек на основе метода кривизны контура (Curvature Scale Space).
Отраслевые последствия
Затем оптимизировали его под RISC-V и для повышения точности добавили в него фильтрацию ложных углов методом касательных. Исходный алгоритм был описан на Хабре и более подробно — в статье 2008 года Corner detector based on global and local curvature properties под авторством Хе и Янг. Алгоритм включает следующие этапы:1.
Построение карты границ. Исходное изображение преобразуется в градации серого. Затем для получения бинарной карты границ изображения применяется оператор Кэнни.
Функция extract_curve обходит карту границ и соединяет пиксели в непрерывные кривые (контуры) с заданным максимальным разрывом Gap_size. Кривые классифицируются на замкнутые и незамкнутые. Сглаживание и расчет кривизны.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





