Я написав комп’ютерну програму, яка може виявляти монети в статичному зображенні (.jpeg, .png тощо), використовуючи деякі стандартні методи комп’ютерного зору (розмиття Гаусса, поріг, Hough-трансформація тощо). Використовуючи співвідношення монет, зібраних із заданого зображення, я можу з впевненістю встановити, які монети є. Однак я хочу додати до рівня моїх впевненостей, а також визначити, чи монета, яку я вважаю, має тип A (від коефіцієнта радіусу), також має правильний колорит [u] r. Проблема полягає в тому, що для британських монет та ін. (мідь, срібло, золото), відповідні кольори (наприклад, з міді до золота) дуже схожі.
У мене є звичайна процедура, яка витягує середній колір даної монети з точки зору «кольорового простору» RedGreenBlue (RGB) і підпрограми для перетворення цього кольору в «кольоровий простір» HueSaturationBrightness (HSB або HSV).
З RGB не дуже приємно працювати, намагаючись розмежувати три кольори монети (див. Приклад [основне] зображення для прикладу). У мене є такі діапазони та типові значення для кольорів різних типів монет:
Примітка: типове значення тут - це таке, яке вибирається за допомогою "пікселя" середнього реального зображення.
**Copper RGB/HSB:** typicalRGB = (153, 117, 89)/(26, 0.42, 0.60).
**Silver RGB/HSB:** typicalRGB = (174, 176, 180)/(220, 0.03, 0.71).
**Gold RGB/HSB:** typicalRGB = (220, 205, 160)/(45, 0.27, 0.86)
Я спершу спробував використати "евклідову відстань" між заданим середнім кольором монети (з використанням RGB) та типовими значеннями для кожного типу монети, наведеними вище, трактуючи значення RGB як вектор; для міді у нас було б:
де найменше значення різниці ( ) вказує нам, який тип даної монети є найімовірнішим. Цей метод показав себе дуже неточним.
Я також спробував просто порівняти відтінок монет із типовими значеннями типів, передбачених вище. Хоча теоретично це забезпечує набагато кращий «кольоровий простір» для вирішення різної яскравості та рівня насиченості зображень, це теж було недостатньо точним.
Питання: Який найкращий спосіб визначити тип монети за кольором (зі статичного зображення)?
Дуже дякую за ваш час.
Редагуйте 1
Примітка. Я перепробував усі ідеї, обговорені нижче, і досягнув нічого. Різниця в умовах освітлення (навіть у межах одного зображення) робить цю проблему дуже жорсткою і її слід враховувати.
Редагувати 2 (літній результат)
Дякую за відповіді. Подальше моє власне дослідження (включаючи ваші відповіді та коментарі) підкреслило, наскільки важко вирішити цю проблему у загальному випадку довільного освітлення, довільної камери (мобільний пристрій), коливання кольору монети (навіть для одного виду / типу) і т. д. Я вперше розглядав розпізнавання кольору шкіри (дуже активне поле досліджень) як вихідний пункт, і все ще існує чимало проблем навіть із розпізнаванням кольору шкіри лише для кавказців (див. цей документ для огляду сучасних методик), і той факт, що ця проблема містить три чіткі кольорові об'єкти, всі з яких можуть мати постійну і різну кольорову здатність, робить цю тему комп'ютерного зору дуже важкою для класифікації та вирішення відповідних питань (адже ви могли б зробити хороший доктор наук з цього питання) !).
Я переглянув метод обмеження Gamut з дуже корисного повідомлення від DW нижче. Це на перший погляд було дуже перспективним як крок попередньої обробки для перетворення зображення та окремих предметів монети в кольори, незалежні від умов освітлення. Однак навіть ця методика не працює ідеально (і включає бібліотеку зображень / гістограм для відображень - до яких я не хочу потрапляти), а також не має набагато складніших методологій нейронної мережевої архітектури. Насправді в цьому документі в рефераті зазначено, що:
"current machine colour constancy algorithms are not good enough for colour-based
object recognition.".
Це не означає, що на цю тему не існує набагато більш сучасних статей, але я не можу їх знайти, і наразі це не дуже активно дослідницька область.
Відповідь на АВБ був також корисним , і я подивився в L B * коротко.
"The nonlinear relations for L*, a*, and b* are intended to mimic the nonlinear
response of the eye. Furthermore, uniform changes of components in the L*a*b* colour
space aim to correspond to uniform changes in perceived colour, so the relative
perceptual differences between any two colours in L*a*b* can be approximated by
treating each colour as a point in a three dimensional space."
З того, що я прочитав, перетворення в цей кольоровий простір для моїх пристроїв залежних зображень буде складним - але я детально розберуся на це (з метою якоїсь реалізації), коли у мене буде трохи більше часу.
Я не затримую дихання на конкретному вирішенні цієї проблеми, і після спроби з L A B * я нехтую кольором монети і буду шукати свої поточні алгоритми геометричного виявлення (точна еліптична трансформація Hough тощо).
Дякую всім вам І на завершення до цього питання - це одне і те ж зображення з новим алгоритмом геометричного виявлення, яке не має розпізнавання кольорів: