2expres

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

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

  • Посещение

  • Days Won

    1

2expres last won the day on March 4

2expres had the most liked content!

Репутация

1 Новичек

О 2expres

  • Звание
    Бывалый

Посетители профиля

38 просмотров профиля
  1. Спасибо, за ответы. Оставляю идею реализации детектора движению - значит, не мое это. Тогда хочу реализовать определить товара соответствует он штрихкоду или нет. Это может быть интересно совместно с определителем штрихкодов, который я уже реализовал. Там нет ветра, снега и с тенями проще, можно сделать искусственное освещение. Товар, так же как и штрихкод должен определяться под любым углом и сравниваться с базой данных. Должно производится так же автоматическое формирование базы данных, т.е. раз сфотографировав новый товар он автоматически заносится в базу данных. Никто не встречал готовых решений в этом направлении?
  2. Детектор движения можно реализовать и без суперпикселей, применяя сегментацию. Сравнили 2 картинки, нашли разность между нами. Предположим белый фон - это тот что не меняется, черным это изменение между 2 картинками (перемещаемые объекты). Провели сегментацию. Учитывая, что у нас только 2 цвета черный и белый сегментация будет очень быстрой. Самый большой черный сегмент и будет перемещаемым объектом, малые сегменты, которые могут быть из-за дождя, снега и/или ветра отбрасываем. Далее находим контур этого объекта и подсвечиваем. Как на Ваш взгляд нет тут подводных камней?
  3. Спасибо, буду разбирать. По поводу коэффициентов сегментации, мы выложили редактор в открытый доступ с надеждой, что какое то количество людей им будет пользоваться и расскажут, какие коэффициенты использовались в том или ином случае. Так же важна предварительная обработка исходного изображения, такая как размывка и преобразование цветов, то что делается онлайн трассировщике, ссылку на который Вы давали. Для преобразования цветов, есть мысли выполнять цветную гистограмму и оставлять ограниченное количество цветов. В трассировщике онлайн максимальное количество цветов всего 32!!! Это очень мало. Начинать надо с 256 и до 4096 цветов для получения более или менее реалистичного изображения. Алгоритм цвета наиболее часто встречаемые заполняются в таблицу, а остальные цвета заменяются на ближайшие из таблицы. Получаемые нами сегменты можно рассматривать, как суперпиксели? Получили мы суперпиксели, как их дальше использовать?
  4. Интересны Ваши идеи. Конечно можно было бы заполнять полученные сегменты кругами и другими фигурами. Можно заполнять фигурами с ободками, прямоугольники будут в виде кирпичной кладки. Развитие редактора в этом направлении - это арт-искусство, но нам более интересно техническое применение. По поводу сегментации написаны сотни статей, защитили десятки диссертаций, а по пост сегментной обработке очень мало информации. Может потому что не получены практические результаты? http://www.nihilogic.dk/labs/evolving-images/ - ответ 404
  5. Спасибо, за оценку. А что такое генетический алгоритм? Как можно сравнить скорость выполнения сегментации и/или векторизации? По онлайн сравнить нельзя:(
  6. Реальные фотографии очень плохо поддаются векторизации. Для них не проходит оптимизация векторного файла:( для нашей программы. Когда проводятся проводятся границы между сегментами, каждый сегмент описывается отдельно. А надо было бы использовать только одну границу или одного или другого. Иначе за счет погрешности апроксимации между сегментами появляются зазоры, которые сильно портят картинку. Так что у нас есть еще работа по совершенствованию наших алгоритмов. Итак загружаем картинку. Выбираем Эффекты-Размыть-Легко!!! Сегментация - 8 связная сегментация. Погрешность устанавливаем в 2, повторения 4. Для более качественного изображения, количество повторений нужно уменьшить, но увеличится объем .svg файла. Нажимаем "Ok". Далее "Сегментация-векторный файл .svg"-БЕЗ ОПТИМИЗАЦИИ. Отбрасываемых сегментов выбираем "0". Результат: dev.svg. На мой взгляд по качеству передачи исходного изображения она лучше, т.к. более естественный цвет глаз и меньше пятен. Объем файла чуть меньше. Если мы доработаем оптимизацию, как было сказано выше - это позволит сокращать размер файла или с тем же размером получать лучшее качество.
  7. Да, есть проблема с мелкими отбрасываемыми сегментами. С этим, конечно, надо что делать, но пока процессе поиска решения. Буду рад любой наводке по этой теме. Прошу дать исходное изображение для экспериментов. Посмотрел сайт https://www.vectorizer.io/ : 1. Они обрабатывают изображения до 1 МБайта. 2. Перед обработкой они делают размытие изображения и преобразование полноцветного RGB в изображение 4, 8, 16 или 32 цвета. Эти действия можно сделать в нашем или другом редакторе до сегментации. Я бы разделил сегментацию изображения на техническую сегментацию для определения объектов и творческую для получения красивых картинок. Красивые картинки можно получать и нашим редактором, нужно время и фантазия корректирую вручную исходное изображение. Пример: результат с сайта kot.svg. Результат 32 цвета и без размывки. результат нашей программой после корректировки исходного изображения: kot1.svg Погрешность - это разница в между объединяемыми пикселями. Повторения - количество проходов с добавлением на каждый проход погрешности. Оптимизация SVG файла - это апрокимация прямыми линиями (хотелось бы кривыми Безье, но это в будущем). Погрешность - это максимальное отклонение прямой от реальных точек. Чем больше погрешность тем меньше файл, но и большее искажение объекта. Все зависит от конечных целей пользователя.
  8. Спасибо, Smorodov! За первую найденную оплошность в обработчике клавиатуры не стоял ret. Если нажать не нужную клавишу программа вываливалась. А так как всегда нажимались только нужные клавиши - это и не видели. Это еще раз доказывает, что программу должны тестировать тестировщики, а не разработчики. Новая версия уже на нашем сайте http://esm.ho.ua/Automat.html. P.S. Давайте отвлечемся от ассемблера. Интересно мнение людей, которые воспользовались программой в области сегментации/векторизации или определения штрихкода. Было интересно получить Ваше мнение в сравнение с другими продуктами. Остальные вещи можно наверняка найти в других редакторах. P.P.S. Так же интересует тема пост сегментной обработки изображений.
  9. В чем то Вы правы, ассемблер требует больше времени для написания программ. Но тут есть и положительные моменты, более продумываешь алгоритм самой программы, как ее минимизировать. Я хотел написать детектор движения на ассемблере, вроде теория понятна, но все равно - это требует времени. На написание и отладку определителя штрихкода у меня ушло 3 месяца. К тому же увидел на форуме, что Вы его уже реализовали и сейчас встал вопрос стоит ли повторять уже написанное? В основном все и простые и сложные алгоритмы обработки в области компьютерного зрения, на мой взгляд, сводятся к последовательному прохождению одним или несколькими окнами обрабатываемого изображения. Это относится к фильтру Соболя, детектору определения кожи, быстродействующей сегментации. Для 4-х связной сегментации берем окно из 5 пикселей, для восьмисвязной сегментации окно 3х3 пикселей. Количество проходов указывается в программе.
  10. Мы начинали с фильтров выделения границ. Думаю, как и многие начинал со шрека: Результат в редакторе "Лубок": Это фильтр Соболя(Эффекты-Карандаш Т), который дополняется преобразованием в черно-белое изображение и инверсия. Не понятно, что дальше делать с этими выделенными краями, но это очень быстрый и простой алгоритм. Мне не понятно почему алгоритм Канни выполняется быстрее, чем Соболя в OpenCV... Я не знаю OpenCV, но из ходя из теории алгоритм Канни требует больших вычислений. Меня больше интересует сегментация изображений. Она позволяет вычислять размеры, форму, количество объектов. Это гораздо более ресурсоемкий процесс интересно сравнить получаемые результаты, например, с OpenCV. Хотелось сравнить результаты по быстродействию и качеству сегментации. P.S. На каком процессоре вы получили данные результаты? замеры времени я делаю с помощью TimeGetTime. Бывает расхождение на 16 мс в исполнении на моем ноутбуке, я так понимаю это отнимает Windows.
  11. Фильтр Соболя выполняется должен выполнятся быстро, хотя измеритель времени туда мы не подключили. Это примитивная функция обработки окном 3х3 изображения за один проход (модифицированный быстрый алгоритм). Измерители времени подключены только к программам, которые выполняются долго - это сегментация изображения, векторизация и определение штрихкода. Время выполнения вы можете посмотреть в нижнем статусном окне в миллисекундах. Если нужно можем вставить измеритель времени и на другие подпрограммы - это не сложно. Мне будет сложнее разобраться с OpenCV и честно говоря обломно:( , т.к. большое количество людей с ним уже работает, а я хочу найти свою не затоптанную поляну. Но буду очень признателен, если Вы проведете измерения. В данный момент снова началась гонка между двумя мастодонтами AMD и Intel. AMD выпустила Ryzen, теперь подождем чем ответит Intel. Переключаться с одной архитектуры на другую я не вижу смыслу, буду пока узко направленным специалистом.
  12. Компьютерное зрение - очень обширная тема, в которой множество приложений. Мы для себя выбираем нишу быстродействующие процессоры и быстрые программы. Сравните параметры процессоров X86 и ARM по быстродействию, разница на порядок?! Я с вами согласен, что это узкое применение, но и моя программа не сильно привязана к Windows. Использовано только оболочка для запуска, отображения(WinAPi) и GDI+ (для преобразования форматов в BitMap). Поэтому мы можем перейти на любую операционную систему Linux, DOS или свою.
  13. Добрый день! Ищу задачи в области компьютерного зрения.Мной написана программа "Лубок" (http://esm.ho.ua/Automat.html) - это графический редактор с элементами компьютерного зрения. Он позволяет сегментировать изображения, преобразовывать растровые изображения в вектор, реализованное практическое применение определение штрихкодов. Что я могу предложить заказчику, перед тем как взяться за работу протестировать все имеющиеся у меня алгоритмы в программе "Лубок" применительно к вашей задаче. После этого я смогу сделать заключению смогу выполнить поставленную задачу или нет. Специализация: построение быстро выполнимых алгоритмов для решения задач в реальном времени. Уже сейчас я могу находить объекты на изображении, оценивать их размеры, количество, форму. Я не могу выполнить абсолютно все задачи в компьютерном зрении - но перед тем, как взяться за новую задачу, я проверю возможность ее решения.
  14. 500 кадров в секунду при 4 МП - это конечно круто. Такую обработку на одном процессоре, конечно, потянуть невозможно. Например, мы обрабатываем штрихкод 16 МП камерой за время 0,2 секунды. Итого только 5 кадров в секунду, но для некоторых применений этого вполне достаточно. На сегодня никакой процессор ARM такую обработку не потянет. По поводу языка программирования теоретически можно писать даже на Delphi с ассемблерными вставками, но мы не хотим привязываться к Windows. В быстродействующих и надежных системах Windows вообще не должно быть. А редактор - это стенд для отладки наших возможностей в компьютерном зрении, просто тотальное большинство имеет Windows.
  15. Спасибо, за первый обнаруженный ляп. Постараюсь исправить все обнаруженные ошибки. У меня желание работать в области компьютерного зрения в реальном масштабе времени. Для этих задач подходят только быстродействующие процессоры, но даже зачастую сегодня не хватает их производительности. Процессоры ARM по производительности в разы хуже, пока переход на них не вижу смысла. В случае возникновения острой необходимости перевести программу на ARM - есть успешный опыт автоматического перевода ассемблера X86 на ассемблер Z80, PIC18F (архитектура RISC).