клас AprilTag – об’єкт AprilTag

Об’єкт apriltag — це attrtuple, повернутий Image.find_apriltags(). Кожен екземпляр описує розпізнаний AprilTag: його обмежувальний прямокутник, субпіксельний центроїд, сімейство/ідентифікатор, метрики якості декодера, чотири виявлені кути, а також — якщо до Image.find_apriltags() передано внутрішні параметри камери — оцінку позиції з 6 ступенями свободи в системі координат камери.

Поля доступні за назвою атрибута (tag.id) або за індексом (tag[0]). Об’єкт не має публічного конструктора.

class image.apriltag

Для створення цього об’єкта використовуйте Image.find_apriltags().

Обмежувальний прямокутник та кути

x

Координата x лівого верхнього кута обмежувального прямокутника, у пікселях. Ціле число. Індекс [0].

y

Координата y лівого верхнього кута обмежувального прямокутника, у пікселях. Ціле число. Індекс [1].

w

Ширина обмежувального прямокутника, у пікселях. Ціле число. Індекс [2].

h

Висота обмежувального прямокутника, у пікселях. Ціле число. Індекс [3].

cx

Координата x центроїда, округлена до цілого числа. Ціле число. Індекс [4].

cy

Координата y центроїда, округлена до цілого числа. Ціле число. Індекс [5].

cxf

Координата x центроїда як субпіксельне число з плаваючою комою. Індекс [9].

cyf

Координата y центроїда як субпіксельне число з плаваючою комою. Індекс [10].

corners

4-елементний кортеж з кортежів (x, y) цілих чисел для чотирьох виявлених кутів тегу, відсортованих за годинниковою стрілкою починаючи з верхнього лівого кута. Індекс [21].

area

Площа обмежувального прямокутника (w * h). Ціле число. Індекс [22].

rect

4-елементний кортеж (x, y, w, h) обмежувального прямокутника. Підходить для безпосередньої передачі до методів малювання/обрізання, таких як Image.draw_rectangle() або Image.crop(). Індекс [23].

Ідентифікація

id

Числовий ідентифікатор тегу в межах його сімейства. Допустимий діапазон залежить від сімейства (наприклад, 0 – 586 для TAG36H11). Ціле число. Індекс [6].

family

Числовий ідентифікатор сімейства, одне з:

Ціле число. Індекс [7].

name

Назва сімейства у вигляді рядка, наприклад "TAG36H11". Індекс [8].

Якість збігу

decision_margin

Якість розпізнавання тегу в діапазоні від 0.0 до 1.0, де 1.0 — найкраще. Використовуйте це значення для відхилення виявлень з низькою достовірністю. Число з плаваючою комою. Індекс [12].

hamming

Кількість бітових помилок, прийнятих декодером для цього тегу. Обмежена можливостями виправлення помилок сімейства:

  • TAG16H5 -> до 0 бітових помилок

  • TAG25H9 -> до 3 бітових помилок

  • TAG36H10 -> до 3 бітових помилок

  • TAG36H11 -> до 4 бітових помилок

Менше — краще. Ціле число. Індекс [13].

goodness

Якість зображення тегу в діапазоні від 0.0 до 1.0, де 1.0 — найкраще. На поточний момент завжди 0.0 у випущеній мікропрограмі (базовий декодер більше не обчислює цю метрику). Число з плаваючою комою. Індекс [14].

Оцінка позиції

Наведені нижче поля трансляції та обертання заповнюються лише тоді, коли Image.find_apriltags() викликається з внутрішніми параметрами камери fx, fy, cx та cy. Без внутрішніх параметрів вони дорівнюють 0.0. Передбачається, що тег має ширину 1 одиниця, тому трансляції виражені у «ширинах тегу» — помножте на реальний розмір тегу для отримання метричних відстаней.

x_translation

Трансляція по осі X від камери (ліворуч-праворуч) у ширинах тегу. Число з плаваючою комою. Індекс [15].

y_translation

Трансляція по осі Y від камери (вгору-вниз) у ширинах тегу. Число з плаваючою комою. Індекс [16].

z_translation

Трансляція по осі Z від камери (вперед-назад) у ширинах тегу. Число з плаваючою комою. Індекс [17].

x_rotation

Обертання навколо осі X (тангаж) у радіанах. Число з плаваючою комою. Індекс [18].

y_rotation

Обертання навколо осі Y (рискання) у радіанах. Число з плаваючою комою. Індекс [19].

z_rotation

Обертання навколо осі Z (крен) у радіанах. Таке саме значення, як rotation — дубльовано для симетрії з x_rotation та y_rotation. Число з плаваючою комою. Індекс [20].

rotation

Обертання тегу в площині зображення в радіанах. Дорівнює z_rotation. Число з плаваючою комою. Індекс [11].