Перейти к содержимому
Compvision.ru

BeS

Пользователи
  • Количество публикаций

    349
  • Зарегистрирован

  • Посещение

  • Days Won

    43

Все публикации пользователя BeS

  1. FCN

    Ну он дерьмово и работает) Качество плохое, эффективность сети низкая. Размер всегда надо подгонять, чтобы в сети слои стыковались корректно) А на выходе всегда можно билинейно апсемплить к выходному сайзу, чтобы инпут с аутпутом по размеру совпадали. Можно и без кропов, тот-же PSPNet даже с тайлингом ничего не кропал, а просто с нахлестом тайлы вычисляет, а потом усредняет в стыках.
  2. Contours detection

    Всем привет, Для удобства работы с результатами semantic segmentation хочу векторизовать label map. Т.е. у нас есть картинка, где каждому пикселю соответствует номер класса и мы хотим все такие блобы закодировать полигонами, соответствующими границам объектов. Но, я внезапно обнаружил, что cv::findContours() работает только с бинарными изображениями (т.е. там только 2 лэйбла 'фон'/'не фон'). Теоретически я могу свести задачу к предыдущей, довольно просто генерируя для каждого класса соответствующую бинарную маску. Таким образом у меня получится куча контуров, но вот их иерархия вложенности, которая строится внутри findContours, будет невалидной, и придется делать какие-то дополнительные (не самые вычислительно-дешевые) телодвижения для того, чтобы определить корректный порядок отрисовки вложенных полигонов. Может быть кто-то сталкивался с подобной задачей и знает уже существующую имплементацию для конвертации label map'ов в полигоны для небинарных масок, с поддержкой древовидных иерархий?
  3. FCN

    Типа того, из статей, с этим бились и явно указывали на такой артефакт в статье про UNet. В Unet апсемплят по чуть-чуть, поэтому там итак работает. Без skip-connections ступенчатые декодеры отвраттельно работают. з.ы. а зачем ты используешь FCN, причем такой извращеный с апсемплингом в 32 раза? Вообще в "боевых" архитектурах обычно не кропают края.
  4. FCN

    1) Чтобы гладенько с Deconvolution апскейлилось, нужно их инициализировать весами bilinear-интерполяции. Ну и шаг там должен быть таким, чтобы ядра с нахлестом друг на друга шли. 2) падинги и кропы - это попытки победить краевые эффекты, когда на границе feature map'ы отклики получаются не вполне адекватными.
  5. Ну либо сетка находит регион, где есть текст, а потом подбирает параметры пространственного преобразования, приводящие строку к осмысленному текст...вроде бы даже всякие там Spatial Transform Network для текстов использовали.
  6. А чем какой-нибудь YOLO - не регрессор? Вместо BBox'ов предсказывай окружности и вуаля)
  7. ONNX

    А кто его развивает? Имхо, если крупные игроки не поддержат это дело (типа того же Google), то идея загнется.
  8. 1) Запатентовать можно конкретный подход, а не идею. Т.ч. патент, в котором больше 2-3 шагов в алгоритме, обойти обычно не сложно, путем модификации пайплайна. 2) Патент полученный в России - это вообще не особо серьезная штука, т.к. Россия - не особо благоприятный рынок для технически сложных продуктов. А для западного рынка этот патент ничего не значит.
  9. Всем привет, Возник такой вопрос: а какой метод загрузки данных и формировани батчей сейчас является "best practice" в TensorFlow? И кто какие контейнеры использует для хранения картинок и метаинформации к ним? Судя по этой странице из официального гайда, как-то там народ не заморачивается насчет быстрых контейнеров, типа HDF5 или LMDB...и не совсем понятно, как при таком подходе грузить сложную метаинформацию типа боксов для object detection etc.
  10. Всем привет, Как многим известно, под linux opencv активно использует библиотеку ffmpeg для чтения видео, а эта библиотека, в зависимости от окружения и кодеков, которыми записаны видео, может отдавать не bit exact'ные кадры. И возникла необходимость закодировать видео так, чтобы перекодирование прошло без потери качества и в любом окружении выдавались одинаковые кадры. Судя по всему, для этой задачи мне нужно использовать x264 кодек, но вот как нарулить правильное сочетание флагов, чтобы пожалось всё без потери качества - никак не соображу. Может кто-то сталкивался с такой проблемой и имеет готовое решение?
  11. Решение оказалось очень простым: и картинки тупо сваливаются в контейнер как есть, без всякой интерполяции между кадрами.
  12. Задача в том, что есть пачка видео доставшихся в наследство(переснять которые не представляется возможным), которые на зоопарке архитектур могут давать разные результаты при различиях в конфигурации ffmpeg'а...в png'хи порезать видосы не вариант - т.к. их ооочень много, остается только перекодировать в какой-то формат, где кадры отдаются всегда одинаково, незаивисимо от бекенда
  13. Детектор кругов

    http://docs.opencv.org/trunk/d7/d5d/houghcircles_8cpp-example.html работает наверняка дерьмово, как и все эти HoughBased свистелки.
  14. Вроде-бы HMM уже "того"...deep learning их сместил. Может LSTM'ами попробовать?
  15. Как думаете, что за метод ?

    А что значит "для нейронки слишком четко"? Вроде бы стилизация изображений уже довольно качественные результаты дает...
  16. Работа с float изображением

    Заблюрить и посчитать производную по Y?
  17. ENet

    Зная угол крена БПЛА (IMU по идее должен уметь его давать), можно просто довернуть картинку так, чтобы крен стал нулевым и запускать сегментацию на выровненой картинке.
  18. ENet

    В общем случае операция свертки не инвариантна к повороту. У сеток есть только инвариант к трансляции и нечувствительность к слабым поворотам за счет всяких пулингов. з.ы. можно, кстати, попробовать саму картинку доворачивать в соответствии с данными от IMU...так может быть даже точнее получится за счет меньшей вариативности в таргетном распределении...
  19. ENet

    Сверточные сети не инвариантны к повротам, т.ч. нужно аугментировать данные.
  20. А там можно пихать блобы разных размеров, или есть какие-то ограничения на тему того, что мы суем в LMDB?
  21. Спасибо за семпл) Я правильно понимаю, что у тебя ландмарки лежат тоже в виде картинок(маска с отмечеными точками?)?
  22. ENet

    В 8 бит вроде бы уже умеют без деградации качества квантизовать, при бинаризации уже серьезно качество плывет. Там есть модуль в contrib'е у TF, slim называется...вот народ его активно юзает в качестве ванильного API.
  23. ENet

    Переход на малобитную арифметику https://petewarden.com/2016/05/03/how-to-quantize-neural-networks-with-tensorflow/ Да хоть те же пресловутые GAN'ы...никто их не делает на caffe, т.к. извращение это...да и object detection там делается из кучи костылей...
  24. ENet

    на инференсе tensorflow может и обогнать кафю (особенно если квантизовать сеточку в 8 бит), а вот в train time Caffe до сих пор проигрывает только распределенным фреймворкам. Это да, caffe совсем не дружелюбен в плане разработки чего-нибудь сильно кастомного
  25. ENet

    Сомневаюсь...а что там описывать то? Прописывание конфига в prototxt'шник? Надо смотреть, какой фреймворк сейчас наиболее активно поддерживается производителем железа, тот и использовать.
×