Распознает игральные карты Bicycle с помощью камеры. Имеет подсчет карт, покер на префлопе.
CardRecog — это приложение, которое распознает игральные карты из стандартной колоды. Есть пять режимов, которые можно выбрать в настройках; множественный, одиночный, обновляемый, префлоп и необработанный. Вы касаетесь экрана, чтобы начать распознавание, держите камеру неподвижно, кладете перед собой несколько карточек и ждете. Вы остаетесь в режиме распознавания до тех пор, пока не коснетесь экрана снова, чтобы вернуться в режим ожидания. Как только происходит распознавание, распознанные карты отображаются, а иногда и произносятся.
В режиме raw распознанные карты отображаются без фильтрации и в режиме реального времени. В других режимах после того, как произойдет распознавание, дальнейшие карты распознаваться не будут, пока вы не перезапустите процесс распознавания. Есть два способа сделать это; Самый простой — убрать все карты из поля зрения примерно на полсекунды, а затем поместить карты, которые нужно распознать, перед камерой. Второй способ — коснуться экрана, чтобы остановить распознавание и перейти в режим ожидания, и снова коснуться экрана, чтобы начать распознавание. В файле http://www.kgrothapps.com/files/cardrecog-example.pdf есть примеры рук. Если у вас нет набора игральных карт «Велосипед», распечатайте страницу и попробуйте распознавать руки.
Когда вы начинаете распознавание, камера фокусируется (если это возможно), поэтому, если распознавание не удалось, вам следует коснуться экрана, чтобы остановить, а затем коснуться еще раз, чтобы возобновить распознавание, чтобы убедиться, что изображение находится в фокусе. Вы также можете слегка наклонить карточки, чтобы увидеть если это улучшит результаты. Если распознавание не удается для всех карт, попробуйте установить ISO (если оно есть в настройках) на максимально возможное значение вместо автоматического значения по умолчанию.
Для устройств с автофокусом (т.е. линейка Nexus) распознавание работает хорошо даже для большого количества карт. Однако вам всегда нужно четкое изображение и достаточно яркое освещение. Для устройств более низкого уровня распознавание будет хорошо работать в режиме одной карты, но в режиме нескольких карт успешно распознается меньше карт. Но даже для бюджетных устройств (в том числе без автофокуса) распознавание работает хорошо в режиме одной карты.
Если в режиме нескольких карт видна нижняя часть карты, карта все равно распознается только один раз. В режиме одной карты мы ищем один и тот же номер карты и масть как в верхней, так и в нижней части карты. Таким образом, оба должны быть видимы, прежде чем карта будет распознана в режиме одной карты, но для распознавания в режиме нескольких карт требуется только один. В режиме одной карты, если присутствует несколько карт, распознавание не удается, вам нужна ровно одна карта. В режиме обновления мы можем добавлять/удалять по одной карте в колоду карт за раз. В необработанном режиме отображаются нефильтрованные результаты, и вам не нужно повторно перезапускать распознавание. Текущий режим отображается в тексте панели действий.
В перспективе я интегрирую это приложение с различными карточными играми. Простая интеграция — это режим префлоп, в котором мы показываем процентные шансы для первых двух карт в холдем-покере. Я также выполняю стандартный подсчет карт в блэкджеке (можно принудительно отобразить подсчет в настройках), чтобы продемонстрировать другое применение карт.
Большинство систем распознавания карт (например, системы обнаружения подсчета очков в блэкджеке) обращают внимание на контур карты. В моем методе мне не требуется контур карт, вместо этого я смотрю только на номер карты и соответствующую масть. Таким образом, пока масть и номер видны, распознавание произойдет успешно; остальная часть карты может быть закрыта. Перейдите к 1 минуте 23 секундам видео ниже, и вы увидите успешное распознавание карт типичной «веерной» формы, используемой в карточных играх. Ни одна другая известная мне система не может выполнять распознавание нескольких карт так точно и быстро.
Приложение работает в реальном времени в том смысле, что оно распознает несколько раз в секунду, как показано в необработанном режиме. В остальных режимах результаты группируются для достижения консенсуса, поэтому для получения результата распознавания требуется одна-две секунды. Я считаю, что это лучшая система распознавания карт для чего-то вроде очков Google, где вы смотрите на карты в чьих-то руках. Я приветствую любые комментарии, но помните, что это не конечный продукт, это демонстрация технологии.
Читать далее