Pull to refresh
10
0
Mirabbas Bagirov@miriteam

Data Scientist, PhD

Send message

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

Спасибо за комментарий! На первый взгляд может показаться, что код с перестановкой цветовых каналов дублируется — но в статье это сделано с намерением подчеркнуть разницу в контексте применения и результатов. В первом примере (flower.jpg) мы показали базовый эксперимент с перестановкой каналов RGB → BRG, чтобы объяснить сам принцип манипуляций с каналами и их влияние на визуальное восприятие. А второй блок (picture.jpg) продолжает тему в другом контексте — он связан с разделом визуализации и манипуляций с уже изменёнными изображениями, и используется для сравнения эффектов на разных изображениях и этапах обработки. Также стоит отметить: хотя логика кода схожа, изменяются входные данные и сохраняются разные выходные изображения, которые используются далее в других частях статьи (например, при визуализации и работе с фильтрами).Тем не менее, ваш комментарий справедлив с точки зрения восприятия — в будущем мы подумаем, как сделать такие переходы между фрагментами более очевидными, например, добавив пояснение вроде: "Повторим перестановку каналов на другом изображении для сравнения результата."

Отличный и по делу комментарий — спасибо!) Вы правы: вопрос сборки и оптимизации библиотек под RISC-V действительно заслуживает отдельного внимания. В рамках этой статьи мы использовали готовую сборку Pillow из репозиториев Debian для RISC-V, без дополнительных оптимизаций. Производительность на Lichee Pi 4A в базовых задачах (загрузка, трансформация, фильтрация) сопоставима с Raspberry Pi 4 при работе в однопоточном режиме, но NPU не задействуется, так как Pillow не использует аппаратное ускорение. Отдельную статью с фокусом на сборку Pillow с оптимизациями (например, через OpenBLAS, SIMD), бенчмарки по сравнению с ARM/x86, и тестами с альтернативами (OpenCV, libvips) мы действительно планируем подготовить. Это важная тема как для разработчиков, так и для энтузиастов RISC-V. Если есть опыт или готовые сборочные скрипты — будем рады сотрудничеству!

Да, за последние пару лет RISC-V прошёл путь от «экзотики» до вполне рабочего инструмента. Мы рады быть частью этого переходного этапа, когда "что-то космическое" становится прикладным инструментом))

Действительно, линейка от Sipeed — одна из самых разнообразных и интересных в экосистеме RISC-V и Edge AI. Мини-компьютеры на базе K210, devboard в формате SODIMM, FPGA-платы и даже мини-кластеры — отличная база как для прототипирования, так и для учебных целей. Мы также планируем использовать и тестировать их решения, особенно интересны MaixCam и Lichee Cluster для задач Edge AI и компьютерного зрения. Если у вас есть интересный опыт с этими платформами — будем рады включить его в материал. Открыты к совместным экспериментам и обмену результатами!

Добрый день! Спасибо большое за развернутый и одновременно ироничный комментарий — читается с удовольствием! Перейдем к конструктивной части — вы абсолютно правы: в статье действительно сделан упор на базовые техники, так как мы целенаправленно ориентировались на начинающих инженеров, студентов и преподавателей колледжей и вузов, которые делают первые шаги в компьютерном зрении и работе с SBC-платами.
Теперь к вашим конкретным вопросам:
1. YOLOX — что именно запускали и дообучали ли модель?
В статье действительно использована предобученная модель YOLOX-S, без дообучения. Цель была — оценить работу inference на Lichee Pi 4A, а не научить студентов тренировать с нуля (особенно на платформе с ограниченными ресурсами). Это — отправная точка, чтобы позже перейти к обучению собственных моделей на выделенных GPU-серверах или облаке, а inference запускать уже на одноплатных устройствах.
2. Как подавали изображения и обрабатывали вывод?
Фреймворк использовался стандартный — ONNX Runtime, адаптированный под архитектуру RISC-V с NPU. Подача изображения и обработка результатов происходили через скрипт onnx_inference.py из модифицированной версии HHB-onnxruntime (взятой с форума Sipeed). На выходе модель выдает: массив координат для каждого обнаруженного объекта, метки классов,confidence score.Отрисовка bounding box’ов и меток осуществлялась вручную через PIL и OpenCV. Мы сознательно оставили это как «ручной» этап, чтобы студенты лучше понимали, как работают детекторы, и могли экспериментировать с постобработкой.
3. Lichee Pi 4A — почему именно он, а не современные аналоги?
Вы попали в самую суть. Lichee Pi 4A действительно «пылится» у многих, но мы выбрали его не случайно. Это было целенаправленное внедрение в учебный процесс архитектуры RISC-V, которая сейчас активно продвигается в инженерном образовании. Да, на рынке сейчас есть интересные альтернативы: Orange Pi AI, Jetson Nano, тот же BeagleBone AI-64. Но ключевое отличие Lichee Pi 4A — наличие 4 TOPS NPU и открытая документация, что позволяет не только запускать, но и объяснять, как это всё работает «под капотом».
В следующей статье планируем показать работу с кастомными моделями: как собрать простую CNN, дообучить на собственных изображениях (на ПК), экспортировать в ONNX и запускать inference на Lichee. Также покажем, как профилировать загрузку NPU и CPU, разберем потребление памяти, тепловой режим (учитывая ваше замечание о нагреве — оно очень точное). И, конечно, добавим интеграцию с более легковесными средствами визуализации.

Да, мы внимательно следим за проектом Glass Imaging — он действительно очень интересен и перспективен. Однако на данный момент это закрытая разработка, и неизвестно, станет ли она открытой для сообщества в будущем. В этом плане DPED обладает явным преимуществом: её исходный код и датасет находятся в открытом доступе, что позволяет любому исследователю или разработчику детально изучить архитектуру и легко адаптировать модель под свои задачи. В DPED каждый компонент модели и процесс обучения контролируется вручную, поэтому можно прозрачно отследить, какие изменения и как именно влияют на конечный результат. Это существенно облегчает эксперименты с loss-функциями, параметрами и архитектурными решениями в сравнении с закрытыми продуктами.

Спасибо за замечание) DPED изначально разрабатывалась именно для улучшения общей визуальной привлекательности снимков за счет коррекции цвета, динамического диапазона и повышения резкости. Для подавления шума требуются отдельные подходы (например, специализированные нейросетевые модели вроде DnCNN, RIDNet или NAFNet), которые обучены конкретно на шумоподавление. Мы планируем добавить отдельные модули для шумоподавления и более глубокого восстановления деталей в будущих версиях.

Отличный вопрос! В оригинальной реализации DPED используется комбинированная loss-функция, состоящая из трех частей:

  • Content Loss на основе VGG-19:
    Используется для сохранения общей структуры изображения. Она действительно может иногда «додумывать» детали, что улучшает восприятие, но может вносить и незначительные неточности.

  • Color Loss (цветовая ошибка):
    Она следит за точностью воспроизведения цветов, чтобы не возникало слишком сильных цветовых сдвигов.

  • Total Variation Loss (регуляризатор):
    Он борется с артефактами, «гладкостью» изображения и помогает избежать чрезмерной зернистости.

Изначально авторы DPED не использовали MSE напрямую, так как задача была в том, чтобы не просто минимизировать попиксельную ошибку, а приблизить результат визуально к зеркальным камерам. Но мы рассматриваем эксперимент с дополнительными loss-функциями, такими как SSIM, Charbonnier Loss или комбинациями с MSE, чтобы повысить точность именно реконструкции деталей, включая текст и мелкие элементы. Кстати, ваш способ проверки на примерах с мелким текстом действительно хороший метод контроля качества реконструкции деталей! Мы добавим это в наши следующие эксперименты и обязательно покажем результаты в продолжении.

Information

Rating
Does not participate
Registered
Activity

Specialization

Ученый по данным, ML разработчик
Ведущий