Почему приложения для распознавания сигар так часто дают сбой, если кольцо повреждено или отсутствует?
Потому что большинство из них читает только кольцо и ничего больше. Кольца изнашиваются, отворачиваются от камеры, оказываются обёрнуты в целлофан или вовсе снимаются. И даже кольцо, которое идеально попало в кадр, часто несёт название, составленное из слов слишком общих, чтобы что-то опознать: это реальная, измеримая доля любого каталога, а не редкое исключение.
Что на самом деле делает сканер, читающий только кольцо?
Он запускает распознавание текста (оптическое распознавание символов, OCR) на одном небольшом бумажном ободке и принимает то, что получилось, за весь ответ. Камера наведена, программа читает напечатанные буквы и ищет эту строку в базе данных. Это весь конвейер целиком. Нет никакой попытки прочитать цвет обёртки, форму шапочки, длину или калибр (диаметр) — или что-либо ещё, что лежит на виду на остальной части сигары. Если текст на кольце распознан чисто, приложение выглядит компетентным. Если нет — в конвейере просто не на что переключиться.
Выдаёт себя эта модель тем, как такие приложения ведут себя, когда кольцо на месте, но снято под небольшим углом, или когда печать выцвела от частого обращения. Они не деградируют плавно — они отказывают полностью, потому что единственный имевшийся сигнал просто пропал. Система с несколькими входными данными может потерять одно и всё равно сделать разумное предположение. Система с ровно одним источником данных, когда этот источник плохой, никуда не может двинуться.
Почему кольцо так часто оказывается утрачено или нечитаемо?
Кольцо — это узкая полоска бумаги, обёрнутая вокруг цилиндра, и обычное обращение с сигарой постоянно работает против него:
- Блики от целлофана. Розничная упаковка отражает вспышку камеры прямо в объектив, засвечивая именно те буквы, которые нужны для OCR.
- Поворот. Кольцо, сфотографированное под неудачным углом по окружности сигары, прячет большую часть собственного текста за изгибом.
- Износ. Сигара, которую носили в кармане, дорожном футляре или просто много держали в руках, первой получает потёртости, которые смазывают фольгированное тиснение и тонкие чернила.
- Намеренное снятие. Многие курильщики снимают кольцо перед тем, как раскурить сигару, а значит, у фотографии, сделанной во время курения (часто именно в тот момент, когда кто-то на самом деле хочет опознать сигару, которую ему передали) кольца для сканирования уже нет.
- Частичные кольца. У некоторых форматов (витол) есть дополнительное кольцо или нижнее кольцо, несущее лишь фрагмент полного названия, а не название целиком.
Ничего из этого не редкость. Это обычное состояние, в котором сигара находится большую часть времени, когда её действительно курят, — а это тот самый момент, когда человек с наибольшей вероятностью потянется за телефоном.
Почему «идеального» фото кольца самого по себе недостаточно?
Потому что напечатанные на нём слова могут оказаться неотличимыми. Значительная доля любого настоящего каталога сигар несёт названия моделей, составленные целиком из общих описательных слов (таких терминов, как «резерв», «эспесиаль», «мадуро», «селекшн», «юбилейная»), без единого уникального, привязанного к бренду слова в названии. По собственным производственным данным Paradigm, эта доля составляет 13,3% записей каталога: названия, построенные исключительно из слов настолько общих, что одно лишь текстовое сопоставление не сужает круг, потому что ровно те же слова встречаются в десятках несвязанных линеек разных производителей.
Дайте механизму текстового сопоставления строку, состоящую из одной лишь общей лексики, — и у него не будет отличительной опорной точки для поиска. Это не сбой из-за плохого качества фото. OCR выполнил свою работу, правильно прочитав каждую букву, а поиск всё равно не может сузиться до одной сигары, потому что сам текст никогда не был уникальным. Архитектура сканера, построенная целиком вокруг текста кольца, не может преодолеть это ограничение. Второго сигнала, чтобы разрешить спор, просто нет.
Что на самом деле должно произойти, чтобы сканер выдержал плохое кольцо?
Ему нужно относиться к кольцу как к одному из нескольких источников данных, а не как ко всей системе. Подход, распознающий сигару целиком, читает оттенок и текстуру обёртки, форму шапочки и способ её обрезки, а также физические размеры (длину и калибр) вместе с любым доступным текстом кольца — и оценивает всё это в совокупности. Подробнее о том, что эти визуальные признаки говорят сами по себе, читайте в материале что можно понять по обёртке и форме сигары.
Это важнее всего именно тогда, когда кольцо повреждено. Порванное или отсутствующее кольцо всё равно оставляет цвет обёртки, видимый стиль шапочки и приблизительный размер: три сигнала вместо нуля. Полностью читаемое, но названное обобщённо кольцо всё равно оставляет визуальные подсказки, чтобы сузить список кандидатов там, где одного текста для этого не хватило. Ни один из этих сигналов сам по себе не является решающим. Вместе они переводят совпадение из категории «невозможно» в категорию «правдоподобно» — а это и есть вся разница между сканером, который тихо отказывает, и сканером, который подводит вас достаточно близко, чтобы подтвердить результат глазами. Общую картину надёжности, включая случаи, когда даже многосигнальное распознавание всё же ошибается, см. в материале насколько точно распознавание сигар с помощью ИИ.
Значит ли это, что текст кольца бесполезен?
Нет. Обычно это самый быстрый и самый конкретный доступный сигнал, и его стоит читать первым. Проблема в том, чтобы считать его единственным сигналом и не иметь возможности сказать что-то полезное в тот момент, когда он ухудшился. Кольцо, которое читается чисто и содержит отличительное слово бренда, почти всегда даёт верный результат. Сбой возникает именно в обратной ситуации: плохие условия съёмки или читаемое, но обобщённое название. Любая система, у которой нет плана на этот случай, будет давать сбой на предсказуемой, регулярно повторяющейся доле реальных попыток — и это не редкий крайний случай, а обычный вечер во вторник с сигарой, на которой целлофан ещё наполовину снят.
Можно ли проверить это самостоятельно?
Да, неформально можно. Возьмите кольцо, которое вы уже можете опознать на глаз, и попробуйте сфотографировать его тремя способами: прямо и при хорошем освещении, под резким углом, и через целлофан со вспышкой, дающей отражение в кадре. Пропустите каждый снимок через сканер, который вы оцениваете. Инструмент, читающий только кольцо, скорее всего, безупречно справится с первым снимком и полностью провалит два остальных, без какого-либо частичного ответа в обоих случаях, потому что у него нет запасного уровня. Система, читающая больше, чем просто кольцо, должна всё равно приблизиться к верному результату на двух более сложных снимках, даже если не назовёт точную линейку, — потому что обёртка и форма никуда не исчезли.
| Условие | OCR только по кольцу | Распознавание сигары целиком |
|---|---|---|
| Чистое кольцо, отличительное название | Надёжно | Надёжно |
| Чистое кольцо, полностью обобщённая формулировка | Не может сузить круг | Обёртка/форма/размер сужают круг |
| Порванное, выцветшее или снятое под углом кольцо | Полный отказ | Деградирует до короткого списка |
| Кольцо полностью отсутствует | Нет входных данных вообще | Обёртка, шапочка и размер всё ещё пригодны |
Короткая версия
- У сканеров, читающих только кольцо, ровно один источник данных, и этот источник часто ухудшается из-за обычного обращения, бликов от упаковки, поворота или намеренного снятия кольца.
- Значительная доля реальных записей каталога (по данным производственной статистики Paradigm — 13,3%) несёт названия моделей, составленные целиком из общих слов, что делает текстовое сопоставление неэффективным даже при идеально читаемом кольце.
- Система, читающая цвет обёртки, форму шапочки и размеры вместе с текстом кольца, сохраняет сигналы там, где одного кольца недостаточно.
- Ни один подход к распознаванию не безупречен; практический вопрос в том, что делает система в момент, когда её лучший сигнал скомпрометирован.
- Любой сканер можно проверить самостоятельно, сделав три фотографии одного кольца: прямо, под углом и через целлофан.