Обнаружьте маркер в 2D изображении

Невременные инструкции SSE (MOVNTI, MOVNTQ, и т.д.), не следуют нормальным правилам когерентности кэш-памяти. Поэтому невременные хранилища должны сопровождаться инструкцией SFENCE для их результатов, которые будут замечены другими процессорами своевременно.

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

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

Источник: http://lwn.net/Articles/255364/

8
задан Spooky 21 June 2015 в 00:55
поделиться

6 ответов

Я бы порекомендовал MATLAB, или, если вы собираетесь использовать C #, Emgu CV очень хороша.

Преобразования Хафа - отличная идея. Как только вы обнаружите края в своем изображении, используя, скажем, детектор края Canny , вы получите изображение края (которое является двоичным изображением только с 1 или 0 для значений).

Затем прямая линия Hough. преобразование линии (по сути) вращает линию вокруг каждого белого пикселя в краевом изображении (разрешение линии зависит от вас) с использованием параметризованной функции для линии и вычисляет общее количество белых (оцененных в 1) пикселей вдоль каждой линии вращения и сохраняет эту информацию в большом аккумуляторе, в котором хранятся данные, проиндексированные параметрами строки.

alt text http://upload.wikimedia.org/wikipedia/en/a/af/Hough_space_plot_example.png[12104 visibleIn пример выше, угол

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

3
ответ дан 5 December 2019 в 10:42
поделиться

Я не имею прямого отношения к этой области, но я бы посоветовал вам начать с изучения обнаружения границ. Если у вас есть опыт работы в математике / инженерии, материалы довольно легко понять:

Это, похоже, породило некоторые идеи: http://www.cfar.umd.edu/~fer/cmsc426/lectures/edge1.ppt

4
ответ дан 5 December 2019 в 10:42
поделиться

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

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

когда у вас есть простые стрелки, простой анализ blob (который состоит из вычисления статистических моментов объектов на изображении) даст вам много информации: каждая стрелка должна иметь значения, почти равные для моментов 7 hu, что позволяет вам эффективно фильтровать объекты, а также вычисляется ориентация от центральных моментов даст вам угол стрелки. анализ blob является только статистическим, он очень быстр.

3
ответ дан 5 December 2019 в 10:42
поделиться

Несколько систем были разработаны для надежного обнаружения маркеров и их ориентации:

  • reacTIVision (с открытым исходным кодом) использует эти типы тегов для определения положения и ориентации: alt text

  • ARToolKit (с открытым исходным кодом) использует теги другого типа для извлечения всех 6 степеней свободы: alt text http://www.schanes.net/docs/robot/marker.png

Если ваша основная цель не в том, чтобы учиться, а в том, чтобы приложение работало, я бы посоветовал вам использовать один из них. Для новичка нетривиальная задача надежно определить положение и ориентацию случайного маркера на изображении.

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

3
ответ дан 5 December 2019 в 10:42
поделиться

Вам нужно будет изучить обнаружение границ, поэтому изучите фильтры Хафа. После этого вам нужно будет изучить классификаторы образов и выделение признаков.

В этой статье есть алгоритм, который, похоже, работает без обнаружения краев. так что загляните в фильтры Хафа. После этого вам нужно будет изучить классификаторы образов и выделение признаков.

В этой статье есть алгоритм, который, похоже, работает без обнаружения краев. так что загляните в фильтры Хафа. После этого вам нужно будет изучить классификаторы образов и выделение признаков.

В этой статье есть алгоритм, который, похоже, работает без обнаружения краев. Отрывок из этой книги больше ориентирован на тот вид обнаружения символов, который вы намереваетесь, после того, как вы выполнили обнаружение границ.

2
ответ дан 5 December 2019 в 10:42
поделиться

Строгий способ определения ориентации изображения, полученного при проективной геометрии (большинство камер), заключается в использовании точек схода и линий схода . Хорошие новости для вас: ваш маркер можно использовать для поиска этой информации! Еще одна хорошая новость: ваше изображение можно исправить , поэтому столбцы изображения (ось Y) будут соответствовать направлению вверх-вниз. Вы найдете больше об этом в главе 8 книги Хартли и Зиссермана Многоканальная геометрия в компьютерном зрении .

Также помните, что, вероятно, вам нужно будет поработать над проблемой радиального искажения , искажения, вызванного объективом камеры. Другие ребята правы насчет проблемы обнаружения стрелок: вы должны использовать обнаружение краев , а затем Преобразование Хафа или сопоставление с шаблоном . См. Подробности в книге Гонсалеса и Вудса Цифровая обработка изображений .

1
ответ дан 5 December 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: