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

2expres

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

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

  • Посещение

  • Days Won

    3

Сообщения, опубликованные пользователем 2expres


  1. 52 минуты назад, Nuzhny сказал:

    Будет как-то так

    Какой критерий выбора суперпикселей? В данном случае я вижу приблизительно 300 пикселей в 1 суперпикселе, на всем изображении ~1800 суперпикселей. Это будет сильно сокращать вычисления. И еще мне интересно время разбивки данного изображения на суперпиксели?


  2. 21 час назад, Artemtemtem сказал:

    Сегментация на маску переднего плана возможный вариант. Только скорее всего, чтобы объединять это все в цельные объекты, нужно при это анализировать видео. Как сегменты меняются на следующих кадрах и так далее.

    Я провел сегментацию своей программой. Время сегментации одного кадра 30 мс. Поможет ли это вам для разделения объектов?

    12.PNG.4d3c1b88446c20dba07d8e4525768e90.PNG

    22.PNG.c696cf5ceddbb7541a31e8f3e6d52ba9.PNG

    32.PNG.d7d90717c3026ef1f96aacda6f1240a5.PNG


  3. 14 часа назад, Artemtemtem сказал:

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

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


  4. 10 минут назад, Nuzhny сказал:

    Гораздо интересней, что она не будет этого делать.

    И все-таки я хотел бы получить более конкретный ответ по поводу быстродействия нейросети в данном случае.

     

    1 час назад, Nuzhny сказал:

    Я бы на такое рассчитывать не стал. Какая видеокарта как отрендерит - погрешности будут 100%.

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


  5. 31 минуту назад, msorokin сказал:

    В одной области, но могут быть перемешены между собой.

    Если объекты абсолютно совпадают по цвету, то можно выполнить предварительную свертку базы объектов и делать такую же свертку объектов на картинке. Далее производишь сравнение сверток. Это значительно ускорит программу. Я думаю здесь подойдет 16 разрядная свертка типа CRC 16, но лучше использовать 32 разряда(CRC 32). 

    Т.е. каждый объект будет представлять собой 4 байта. Тогда можно обрабатывать хоть все 60 кадров в секунду.


  6. У тебя основные объекты имеют размерность 25х25 пикселей. Координаты ты можешь заранее вычислить, где они появляются. Сокращать изображение ни в коем случае нельзя, т.к. различаемость и так не очень. Делай по пиксельное сравнение с базой объектов и программа должна "летать". 23 объекта на  625 пикселей и перебор 300 объектов итого нужно сравнить примерно 9 000 000 пикселей и 3 кадра в секунду ты гарантированно успеешь обработать.

    • Like 1

  7. Все равно не понятно, какие именно объекты необходимо определять. Для моего понимания автору темы необходимо обвести все объекты видимыми линиями.

    Примитивно определять объекты можно по цвету, площади, вытянутости (отношение длинны контура объекта к площади).

    • Like 1

  8. 47 минут назад, Smorodov сказал:

    Возможно, для ускорения поиска, изображение нужно уменьшить раза в 4

    Изображение итак маленькое, при уменьшении боюсь возникнут сложности с распознаванием объектов. Может лучше прореживать кадры?


  9. 17 минут назад, Smorodov сказал:

    все можно выковырять при определенной настойчивости.

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


  10. Сегодня залил новую версию графического редактора с элементами компьютерного зрения Лубок. Что нового:

    Реализовал преобразование полноцветных изображений в оптимальную палитру цветов методом медианного среза (оптимальная палитра - это не фиксированные значения цветов, а оптимальные цвета, взятые из изображения). Изображение можно разбить на 2-32 цвета, что бывает очень удобно для определения объектов. 

    Как пользоваться: После загрузки изображения выбрать Эффекты-Фильтр- Цветовая палитра. Количество цветов задается от 2 до 32 плавно, фиксировано задается 256 и 1024. После каждого преобразования не забывайте делать Отмена (Ctrl_Z).

    Так же в продолжении темы: 

     

    Решил сделать у себя быструю "глубокую" сегментацию, предварительно  переведя изображение в палитру из 2….32 цветов, а затем выполнить очень быструю "легкую" сегментацию. Прочитал, что в GIMPе применяется метод медианного сечения. Применил у себя этот метод, т.к. он легко ложится на ассемблер. Скорость преобразования я получил высокую, раз в 100 выше чем в GIMPе. 16 мега пиксельную фотографию преобразует в 256 цветную палитру за 0,3 секунды. Но качество немного хуже чем GIMPе. Что можно сделать для повышения качества? Какой алгоритм применен в GIMP`е?

     


  11. 11 час назад, Tlya сказал:

    Чем распознать такие цифры?

    Как раз работаю над данным вопросом. Но решение данной задачи вижу в преобразовании изображения в векторную форму, максимальной аппроксимацией ломанными линиями. Это выполняет мой графический редактор с функциями компьютерного зрения Лубок

    Результат в векторе:

    cyfra.svg

    Всего 56 кБайт! Все цифры сегментированы и их можно "растащить" на запчасти, например, в Coral'е.

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

     


  12. Ну так же может помочь глубокая сегментация изображений (k-means), находить общие объекты и их сравнивать. Все приведенные решения тяжелы для выполнения. Вы бы привели примеры изображений, может есть более простой путь?


  13. Смотрел алгоритм k-means, имею даже программу сегментации на базе этого алгоритма. Фотографию 24 МП обрабатывает 28 минут!!! Нет ли другого быстрого пусть и менее качественного алгоритма?


  14. В 29.04.2017 at 19:14, Smorodov сказал:

    А, наверное я неправильно понял. Посмотрите тогда color dithering , например здесь  есть: https://github.com/dpiccone/dithering_algorithms 

    Спасибо. Дизеринг - это интересная вещь для формирования недостающего цвета шахматкой из доступной палитры цветов. Но для сегментации  дает отрицательный результат, увеличивая количество сегментов. Может кто знает в формате *.GIF применяется политра цветов. Есть политры фиксированные и оптимизированные. Где можно почитать про алгоритм получения оптимизированной палитры? 

    http://citforum.ru/internet/webd/article_8.shtml


  15. 9 часов назад, mityay14 сказал:

    как? я просто воще 0 в этом. только начинаю. либо того кто сможет

    Добрый день! Данная задача решается методом сегментации и последующей векторизации. Сегментация и векторизация - есть в моей программе "Лубок". Далее выполняется аппроксимация дуги ломанной линией, что тоже реализовано в данной программе. Для определения диаметра дуги остается построить перпендикуляры из середины отрезков, которые образуют ломанную и найти их точки пересечения. Точка их пересечения и будет центром окружности. Точки будут иметь небольшой разброс, но это решается кластеризацией, что позволит найти центр тяжести.

    Вышлите примеры фотографий, чтобы можно было более детально протестировать.

    P.S. Я смогу решить данную задачу, но без применения OpenCV и C++.


  16. 24 минуты назад, Smorodov сказал:

    Подойдет любой кластеризатор, например: kmeans,  гауссовы смеси, для особо изощренных, можно использовать нейронные сети.

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

×