Пояснення відстеження кольору#
Що таке відстеження кольору і як CMUcam4 це робить?#
Відстеження кольору — це здатність узяти зображення, ізолювати певний колір і виокремити інформацію про розташування ділянки цього зображення, яка містить лише цей колір. Наприклад, припустімо, що вам дали фотографію, на якій зображено червоний м’яч, що лежить на ґрунтовій дорозі. Якби хтось попросив вас обвести рамкою все, що має червоний колір на зображенні, ви досить легко намалювали б прямокутник навколо м’яча. Це основна ідея відстеження кольору. Вам не потрібно було знати, що об’єкт — це м’яч. Вам лише потрібно було мати уявлення про червоний колір, щоб ізолювати об’єкт на зображенні. Нижче ми коротко розглянемо, як CMUcam4 насправді використовує інформацію в зображенні камери для виконання відстеження кольору.
Щоб задати колір, вам потрібно визначити мінімальне та максимальне допустиме значення для трьох колірних каналів. Кожен унікальний колір представлено значенням червоного, зеленого та синього, яке вказує, скільки кожного каналу змішано в цей унікальний колір. Складна частина задання кольору полягає в тому, що вам потрібно визначити діапазон допустимих значень для всіх трьох колірних каналів. Оскільки світло не є ідеально однорідним і колір об’єкта не є ідеально однорідним, вам потрібно враховувати ці варіації. Однак ви не хочете надто послаблювати ці межі, інакше буде прийнято багато небажаних кольорів. Оскільки у випадку CMUcam4 кожен колірний канал перетворюється на число від 0 до 255, ви можете обмежити кожен канал двома числами — верхньою та нижньою межею. Якщо у вас є дві межі для кожного з трьох каналів, це означає, що шість значень можна використати для обмеження всього колірного простору, який ви бажаєте відстежувати. Якщо ви уявите кольори, представлені кубом, де кожна сторона — це інший колірний канал (червоний, зелений і синій), то шість значень, використаних для вибору вашого кольору, намалювали б тривимірну коробку всередині цього куба, яка визначає ваш бажаний набір кольорів.
Щойно у вас є межа для кольору, який ви бажаєте відстежувати, CMUcam4 бере ці межі й обробляє зображення. Існує багато способів відстеження кольорів на зображенні, які можуть бути досить складними. CMUcam4 використовує простий однопрохідний алгоритм, який обробляє кожен новий кадр зображення від камери незалежно. Він починається з верхнього лівого кута зображення та послідовно досліджує кожен піксель рядок за рядком. Якщо піксель, який він досліджує, потрапляє в діапазон кольорів, вказаний користувачем, він позначає цей піксель як відстежуваний. Він також досліджує положення поточного відстежуваного пікселя, щоб побачити, чи є воно найвищим, найнижчим, найлівішим або найправішим положенням серед усіх відстежуваних пікселів, знайдених дотепер у зображенні. Якщо він виявляє, що піксель перебуває поза поточною обмежувальною рамкою відстежуваної області, він розширює обмежувальну рамку, щоб вона містила цей новий піксель. Оскільки розташування навіть одного відстежуваного пікселя може змінити обмежувальну рамку, обмежувальна рамка іноді може досить сильно коливатися від кадру до кадру. Фільтрацію шуму (див. наступний абзац) можна використовувати для зменшення частини цих коливань. Єдина інша важлива інформація, яка зберігається, — це сума горизонтальних і вертикальних координат відстежуваних пікселів. Наприкінці зображення CMUcam4 бере горизонтальну суму та вертикальну суму відстежуваних пікселів і ділить кожну на загальну кількість відстежуваних пікселів, отримуючи значення, яке показує, де розташовано середину відстежуваного об’єкта. Оскільки кожен відстежуваний піксель робить лише невеликий внесок у кінцеві горизонтальну та вертикальну суми, середина (яку часто називають центроїдом) відстежуваних пікселів зазвичай є значно стабільнішим вимірюванням, ніж обмежувальна рамка. Щойно всі пікселі в зображенні перевірено, загальну кількість відстежуваних пікселів також можна використати разом із площею обмежувальної рамки для обчислення достовірності та кількості пікселів у відстежуваному об’єкті.
Фільтрація шуму дозволяє нам робити діапазони відстеження кольору більшими, щоб ми могли враховувати більші варіації в значеннях пікселів зображення, не спричиняючи відстеження інших випадкових варіацій у зображенні. Ідея, що лежить в основі фільтрації шуму, полягає в тому, що ми хочемо вважати піксель таким, що має відстежуваний колір, лише якщо він є частиною групи пікселів, які перебувають у межах відстеження кольору. У CMUcam4 ми реалізуємо це так, що потрібен лише один прохід по зображенню. Під час оброблення пікселів у зображенні CMUcam4 підтримує лічильник, який відстежує, скільки послідовних пікселів у поточному рядку перед поточним пікселем перебували в межах відстежуваного кольору. Якщо це значення перевищує значення фільтра шуму, то поточний піксель позначається як відстежуваний піксель.
Що таке гістограма і для чого вона потрібна?#
Гістограма — це тип діаграми, який відображає частоту та розподіл даних. У випадку CMUcam4 гістограма показує частоту та розподіл значень кольору, знайдених у зображенні. Кожен стовпчик представляє діапазон значень кольору для конкретного каналу. CMUcam4 може розділити можливі значення кольору від 0 до 255 на 1, 2, 4, 8, 16, 32 та 64 різних інтервали. Кожен інтервал містить кількість пікселів, знайдених у зображенні, які потрапляють у певні межі кольору. Отже, велике значення в одному конкретному інтервалі означає, що багато таких кольорів було знайдено в зображенні. Кожна гістограма представляє лише один вибраний колірний канал.
Гістограми — це спосіб абстрагування вмісту зображення. Вони мають багато застосувань, як-от примітивне розпізнавання об’єктів, порогова обробка чи балансування кольору. Вони особливо корисні для розрізнення різних текстур. Спробуйте направити CMUcam4 з вимкненим автоматичним підсиленням на дві різні текстуровані поверхні та зверніть увагу на різницю в їхніх розподілах кольору. Цей ефект можна використовувати для розрізнення поверхонь підлоги чи виявлення перешкод.