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

2expres

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

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

  • Посещение

  • Days Won

    2

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

  1. Наткнулся на сегментацию нейросетью. Результат очень впечатлил. Но возник вопрос с быстродействием. Это обработка в реальном масштабе времени? И каким компьютером?
  2. Я с Вами полностью согласен, поэтому хочу понять какие классы задач можно решать GPU. Если можно решить выше приведенный примитивный пример, то стоит GPU осваивать. На GPU хорошо решаются задачи выделения границ, получил частичку изображения и записал туда же откуда и взял. Это будет на порядки быстрее чем на CPU. Компрессию и так уже сделали уменьшив разрядность с 24 до 18. Дальнейшие уменьшение разрядности приведет к заметным искажениям. А размер таблицы гистограммы не зависит от размера изображения. Хорошо получаем множества таблицу другого вида, состоящую не из одного значения(количество пикселей данного цвета ), а из двух(номер цвета и количество пикселей). А вот задача получить конечную таблицу будет получить сложнее, чем просто посчитать цвета в изображении. На мой взгляд CPU данную задачу решит быстрее.
  3. Пример приведен для всего изображения. Да изображение я могу разбить на части и обрабатывать разными процессорами. Но создаваемая таблица размером 1 Мб должна быть доступна для всех процессоров и каждый процессор должен записывать результат непредсказуемо или в начало или в конец или середину этой таблицы. И основное время будет уходить не на вычислительные процессы, а на обращение к памяти. Как можно реализовать по другому? На CPU я могу прогрузить таблицу в кеш 2 или 3 уровня увеличив быстродействие. Как это реализовать на GPU быстрее, чем на CPU?
  4. Спасибо за ответ. Разбирал структуру CUDA. У меня почему то все задачи по компьютерному зрению сводятся к последовательному прохождению каким-либо окном по изображению и составлению таблиц. Последовательное прохождение по изображению хорошо работает с памятью, т.к. непосредственно работаю с кешем. А вот создание таблиц - это кошмар для кеша, если таблица занимает несколько мегабайт памяти. Так как неизвестно в какую область таблицы я перейду на следующем шаге. Структура CUDA (может я ее не правильно понял) будет отлично работать только для последовательной обработки изображений. Пример, изменение яркости изображения, когда идет последовательная подкачка памяти. А как работать с таблицами в несколько мегабайт? Простейший пример, на мой взгляд неэффективности CUDA: сделать цветную гистограмму изображения(т.е. посчитать количество пикселей каждого цвета). Даже если ограничимся 6 разрядами каждого цвета RGB, итого 18 разрядов. Размер таблицы 1 МегаБайт.
  5. Какой критерий выбора суперпикселей? В данном случае я вижу приблизительно 300 пикселей в 1 суперпикселе, на всем изображении ~1800 суперпикселей. Это будет сильно сокращать вычисления. И еще мне интересно время разбивки данного изображения на суперпиксели?
  6. Я провел сегментацию своей программой. Время сегментации одного кадра 30 мс. Поможет ли это вам для разделения объектов?
  7. Можете выслать несколько кадров из видео для того чтобы я мог посмотреть, как они будут сегментироваться моей программой. Результатами, если интересно могу поделиться.
  8. И все-таки я хотел бы получить более конкретный ответ по поводу быстродействия нейросети в данном случае. Как я понимаю, что это задача для одного компьютера, отрабатывать будет одна и та же видеокарта, поэтому предложенный мной подход должен работать. У вас хорошее предложение по поводу распараллеливания задачи. Здесь действительно хорошо можно разбить на потоки. Только я бы для упрощения на потоки посылал разные кадры, т.е. каждое ядро обрабатывает свой кадр.
  9. Интересно, сколько времени будет отрабатывать нейросеть сравнивая 300 возможных объектов?
  10. Если объекты абсолютно совпадают по цвету, то можно выполнить предварительную свертку базы объектов и делать такую же свертку объектов на картинке. Далее производишь сравнение сверток. Это значительно ускорит программу. Я думаю здесь подойдет 16 разрядная свертка типа CRC 16, но лучше использовать 32 разряда(CRC 32). Т.е. каждый объект будет представлять собой 4 байта. Тогда можно обрабатывать хоть все 60 кадров в секунду.
  11. У тебя основные объекты имеют размерность 25х25 пикселей. Координаты ты можешь заранее вычислить, где они появляются. Сокращать изображение ни в коем случае нельзя, т.к. различаемость и так не очень. Делай по пиксельное сравнение с базой объектов и программа должна "летать". 23 объекта на 625 пикселей и перебор 300 объектов итого нужно сравнить примерно 9 000 000 пикселей и 3 кадра в секунду ты гарантированно успеешь обработать.
  12. Т.е. Объекты появляются в одном и том же месте картинки?
  13. Все равно не понятно, какие именно объекты необходимо определять. Для моего понимания автору темы необходимо обвести все объекты видимыми линиями. Примитивно определять объекты можно по цвету, площади, вытянутости (отношение длинны контура объекта к площади).
  14. Изображение итак маленькое, при уменьшении боюсь возникнут сложности с распознаванием объектов. Может лучше прореживать кадры?
  15. Как я понимаю вашу секретность, Вы наверное решили обыграть онлайн казино?!
  16. Что понимать под быстро? Какое разрешение, количество кадров в секунду? Какой проц? Можно сравнивать по форме и цвету. Какое количество объектов в базе?
  17. Объекты одного размера? Освещенность одна и та же? Как их планируете сравнивать форма, размер, цвет?
  18. А что за объекты? Это тех процесс или съемка уличного движения? А лучше примеры видео с объектами.
  19. Попробуй решить через площадь. Считай количество белых пикселей. Зная сколько пикселей в одном изделии легко считается количество на изображении.
  20. Добрый день! Хочу представить свой графический редактор с элементами компьютерного зрения "Лубок". Ссылка на скачивание: http://esm.ho.ua/Automat.html На сегодня программа позволяет редактировать/создавать изображения, проводить сегментацию изображения, преобразовывать растровые изображения в вектор. В качестве практического применения определяет штрихкоды на фотографиях EAN8, EAN13. Размер программы 110 килобайт!!! (именно кило, не мегабайт). Малый размер удалось получить применяя ассемблер и WinApi. Но малый размер не означает, что программа не требовательна к железу. При обработке 24 Мегапиксельной фотографии требуется память и быстродействие компьютера для сегментации изображения. Рекомендуемый характеристики ПК: оперативная память 2ГБ, процессор не хуже Athlon 3000+. Работает с WinXP, Windows 7, Windows 10 - то что реально проверено. Как пользоваться смотри в программе Справка-помощь!!! В случае возникновения вопросов по программе задавайте их в этой ветке форума. При возникновении, каких либо неполадок буду рад получить конкретные замечания. Надеюсь, что книги "Лубок для чайников", "Лубок для профессионалов" и "уроки компьютерной графики с помощью программы Лубок" будут впереди. Хочу так же отметить, что этот сайт 1 на котором даю ссылку на программу "Лубок". P.S. Программа бесплатная!!! P.P.S. Распространение программы приветствуется.
  21. Одной настойчивости недостаточно. Требуется очень большое время на освоение этого материала. А хочется получить быстрый результат. Может кто то уже с этим разбирался?
  22. Сегодня залил новую версию графического редактора с элементами компьютерного зрения Лубок. Что нового: Реализовал преобразование полноцветных изображений в оптимальную палитру цветов методом медианного среза (оптимальная палитра - это не фиксированные значения цветов, а оптимальные цвета, взятые из изображения). Изображение можно разбить на 2-32 цвета, что бывает очень удобно для определения объектов. Как пользоваться: После загрузки изображения выбрать Эффекты-Фильтр- Цветовая палитра. Количество цветов задается от 2 до 32 плавно, фиксировано задается 256 и 1024. После каждого преобразования не забывайте делать Отмена (Ctrl_Z). Так же в продолжении темы: Решил сделать у себя быструю "глубокую" сегментацию, предварительно переведя изображение в палитру из 2….32 цветов, а затем выполнить очень быструю "легкую" сегментацию. Прочитал, что в GIMPе применяется метод медианного сечения. Применил у себя этот метод, т.к. он легко ложится на ассемблер. Скорость преобразования я получил высокую, раз в 100 выше чем в GIMPе. 16 мега пиксельную фотографию преобразует в 256 цветную палитру за 0,3 секунды. Но качество немного хуже чем GIMPе. Что можно сделать для повышения качества? Какой алгоритм применен в GIMP`е?
  23. Как раз работаю над данным вопросом. Но решение данной задачи вижу в преобразовании изображения в векторную форму, максимальной аппроксимацией ломанными линиями. Это выполняет мой графический редактор с функциями компьютерного зрения Лубок. Результат в векторе: cyfra.svg Всего 56 кБайт! Все цифры сегментированы и их можно "растащить" на запчасти, например, в Coral'е. По поводу определения цифр. В векторной форме не важно, как расположен объект и его размеры. Он может быть даже вверх ногами, если мы декартовы координаты переводим вначале в относительные координаты, а затем относительные координаты в длину вектора и углы между векторами. После этого идет сравнение углов и отношение векторов с образцами объектов. Даже если часть цифры скрыто, как например, с "2446", то алгоритм должен определять объект по его части, конечно с вероятностью. Но работа еще не окончена.
  24. Ну так же может помочь глубокая сегментация изображений (k-means), находить общие объекты и их сравнивать. Все приведенные решения тяжелы для выполнения. Вы бы привели примеры изображений, может есть более простой путь?
  25. У меня задача. Задается количество цветов (16, 32, 64) и есть 24-битное изображение. Как правильно привести изображение к заданной палитре (16, 32 или 64 цвета), чтобы изображение сильно не искажалось. Простое отбрасывание разрядов не предлагать. Нужен именно алгоритм, а не готовое изображение. Заранее спасибо за ответы.
×