Подробное объяснение параметров согласования формы Halcon

find_shape_model (Изображение: ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels, Greediness: Row, Column, Angle, Score)

Примечание. Имеется 4 выходных параметра. Это координаты (строка, столбец) цели на изображении — координаты центра тяжести, угол поворота цели и оценка совпадения.











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

2. Оценка — это число от 0 до 1, которое является приблизительной мерой доли шаблона, видимого на изображении для поиска. Если половина шаблона закрыта, значение не может превышать 0,5. Чем больше параметр MinScore, тем быстрее будет поиск. Если шаблон не закрыт изображением, MinScore можно установить на 0,8 или даже 0,9.

3. Домен изображения определяет область поиска опорной точки модели, которая является центром тяжести доменной области изображения, используемого для создания модели в create_shape_model. Различные начальные позиции, установленные с помощью функции set_shape_model_origin, не учитываются. Поиск моделей осуществляется в тех точках доменной области изображения, где модель полностью принадлежит этому изображению. Это означает, что если модель выходит за границы изображения, модель не может быть найдена, даже если полученный коэффициент качества (оценка) больше, чем MinScore. Эту производительность можно изменить с помощью set_system('border_shape_models','true'), чтобы можно было найти и те модели, которые выходят за границу изображения и имеют коэффициент качества больше, чем MinScore. В это время точки за пределами изображения считаются закрытыми, и коэффициент качества может быть уменьшен. В этом режиме время поиска увеличивается.

4. **Параметры AngleStart и AngleExtent определяют угол поворота поиска шаблона. Угол должен максимально соответствовать углу, указанному в операторе create_shape_model. **Параметры AngleStart и AngleExtent определяют угол поворота поиска модели, при необходимости диапазон поворота будет перехвачен, чтобы стать диапазоном поворота, заданным в функции create_shape_model. Это означает, что угловые диапазоны для создания и поиска модели должны фактически перекрываться. Диапазон углов при поиске не меняется по модулю 2*pi. Для упрощения изложения в оставшейся части этого абзаца все углы выражены в градусах, а в функции find_shape_model — в радианах. Поэтому, если AngleStart=-20°, AngleExtent=40° при создании шаблона, установите AngleStart=350°, AngleExtent=20° в функции поиска шаблона find_shape_model, даже если угол по модулю 360 перекрывается, шаблон все равно не будет найден. Чтобы найти шаблон, в этом примере AngleStart=350° необходимо изменить на AngleStart=-10°.

5. Параметр MinScore определяет, по крайней мере, какой коэффициент качества встречается на изображении при сопоставлении с шаблоном. Чем больше значение MinScore, тем быстрее будет выполняться поиск. Если шаблон не закрыт изображением, MinScore может быть установлен на уровне 0,8 или даже 0,9.

6. NumMatches определяет максимальное количество шаблонов, найденных на изображении. Если коэффициент качества соответствия больше, чем MinScore, а количество целей больше, чем NumMatches, возвращаются только целевые позиции NumMatches с лучшим коэффициентом качества. Если найденных совпадающих целей меньше, чем NumMatches, то будут возвращены только найденные. Параметр MinScore лучше, чем NumMatches.
**Если на изображении только 1 цель, задайте для NumMatches значение 1 и установите для MinScore меньшее значение, например 0,5. Этот метод является более надежной настройкой параметра для поиска совпадающей цели в изображении.
**
7. Если модель имеет симметрию, несколько областей, соответствующих цели, будут найдены в одном и том же положении и под разными углами искомого изображения. Параметр MaxOverlap находится в диапазоне от 0 до 1 и определяет коэффициент наибольшего перекрытия двух найденных целевых областей, чтобы они могли быть возвращены как две разные целевые области. Перекрытие вычисляется на основе нахождения наименьшего ограничивающего прямоугольника (см. наименьший_прямоугольник2) в любом направлении целевой области. Если MaxOverlap=0, найденные области объектов не могут перекрываться, если MaxOverlap=1, должны быть возвращены все найденные области объектов. Если две найденные целевые области перекрывают друг друга и больше, чем MaxOverlap, возвращается только лучшая.

8.SubPixel определяет, извлекается ли найденный объект с субпиксельной точностью. Если для SubPixel установлено значение «none» (или «false» для совместимости с фоном), положение модели определяется только точностью в пикселях и угловым разрешением, определенными в create_shape_model. Если для SubPixel установлено значение «интерполяция» (или «true»), то и положение, и угол являются субпиксельными. В этом режиме положение модели интерполируется в функцию массового коэффициента, этот режим практически не требует времени вычислений и обеспечивает достаточно высокую точность для широкого использования. Однако в некоторых приложениях с чрезвычайно высокими требованиями к точности положение шаблона следует определять методом наименьших квадратов, например, минимизируя расстояние от точки шаблона до соответствующей точки изображения. Этот режим требует дополнительного времени вычислений по сравнению с «интерполяцией». Режимы корректировки метода наименьших квадратов: «наименьшие_квадраты», «наименьшие_квадраты_высокие» и «наименьшие_квадраты_очень_высокие». Их можно использовать для определения точности поиска минимального расстояния: чем выше выбранная точность, тем дольше извлечение субпикселя. Чем выше его уровень, тем больше времени это занимает. В общем, используйте «наименьшие_квадраты», чтобы достичь баланса между временем и точностью.
Однако обычно SubPixel устанавливается на «интерполяцию». Выберите «наименьшие_квадраты», если вы хотите установить метод наименьших квадратов, так как это обеспечивает компромисс между временем выполнения и точностью.
Если объект слегка деформирован относительно шаблона, его оценка соответствия будет ниже. Для такой цели дополнительный параметр максимально допустимой деформации цели может быть передан в параметре SubPixel, 'max_deformation 1', а значение в строке является целым числом от 0 до 32. 0 означает, что деформация не допускается. ** Более высокие максимально допустимые значения деформации приводят к более длительному времени работы и несут более высокий риск ошибок согласования. Поэтому максимальную деформацию следует выбирать как можно меньшей. **Чтобы получить значимое значение балла и избежать ошибок сопоставления, рекомендуется использовать допустимые переменные в сочетании с методом наименьших квадратов.

9. NumLevels — количество слоев пирамиды, используемых при поиске.Пирамида предназначена для разбиения изображения на слои в соответствии с разрешением изображения.Чем больше слоев пирамиды, тем выше скорость сопоставления. При необходимости количество слоев усекается до тех пределов, на которых создавалась модель. Если NumLevels=0, используйте количество уровней в пирамиде при создании шаблона. Кроме того, NumLevels также может содержать второй параметр, который определяет наименьшее количество уровней пирамиды для поиска соответствующего шаблона. NumLevels=[4,2] указывает, что совпадение начинается на четвертом уровне пирамиды и находит совпадение на втором уровне пирамиды (самый низкий уровень равен 1). Этот метод можно использовать для сокращения времени выполнения сопоставления, но точность позиционирования в этом режиме ниже, чем в обычном режиме, так называемый нормальный режим сопоставления в нижней части пирамиды. Поэтому, если вам нужна более высокая точность, вы должны установить SubPixel как минимум на «least_squares». Если нижний слой пирамиды установлен слишком большим, он может не достичь желаемой точности или найти неправильную совпадающую область. Это связано с тем, что шаблоны на более высоких уровнях пирамиды недостаточно специфичны, чтобы найти надежные наилучшие совпадения с шаблонами. В этом случае нижний уровень пирамиды должен быть установлен на минимальное значение.
Примечание. При сопоставлении с шаблоном, когда изображение не в фокусе или линза размыта, значение должно быть установлено в отрицательное значение, например [0,-1], и find_shape_model вернет соответствующий элемент, найденный на самом низком уровне пирамиды, чтобы найти цель для проверки.
Кроме того, уровни пирамиды могут незначительно отличаться от изображения к изображению. Для облегчения сопоставления изображений низкого качества во время сопоставления может быть определен самый низкий уровень пирамиды. Хитрость здесь в том, что самый нижний уровень пирамиды можно указать с отрицательным числом. Например, если NumLevels равно [4,-2], сопоставление начинается с уровня пирамиды 4 и трассируется до самого нижнего уровня пирамиды. Если на этом уровне пирамиды не удается найти совпадающую цель, продолжайте поиск на более низком уровне пирамиды, сделайте уровень пирамиды, на котором найдена хотя бы одна совпадающая цель, самым низким уровнем пирамиды, и верните найденную цель.

10. Параметр Greediness определяет "жадность" при поиске. Если Greediness=0, используйте эвристику безопасного поиска, пока шаблон существует в изображении, шаблон должен быть найден, однако поиск таким способом занимает относительно много времени. Если Greediness=1, используйте небезопасную эвристику поиска, чтобы был шанс, что шаблон не будет найден, даже если он присутствует на изображении, но только в редких случаях. Если вы установите Greediness=0.9, вы всегда сможете найти совпадение с моделью практически во всех случаях.

Наконец, оператор поиска по шаблону отнимает много времени, когда цель не может быть найдена. Время совпадения можно установить с помощью оператора set_shape_model_param (
ModelID, 'timeout', 1000)
. Если find_shape_model достигает 'timeout', выполнение будет немедленно прекращено, результат совпадения не будет выведен, и будет возвращен код ошибки 9400 (H_ERR_TIMEOUT).

Supongo que te gusta

Origin blog.csdn.net/Douhaoyu/article/details/130941423
Recomendado
Clasificación