Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Сегодняшний проект поразил меня своей уникальностью. Он делает то, чего я до сих пор никогда не видел, не говоря уже об исходном коде, который доступен и детально объяснен.
Распознавание лиц является писком моды. Но что если требуется распознать что-нибудь еще, например игральные карты? Например, вы собираетесь создать игру с расширенной реальностью, с использованием реальных карт, с которыми происходит что-то клёвое (вроде анимированного валета, поглядывающего по сторонам и т. п.)? Или захотите добавить пикантности и автоматизировать еженедельный покер? Или создать собственное шоу из криббиджа (все играют в покер…)
Как сделать что-то подобное? Взять цветное изображение с камеры и вычислить какая там карта?
Есть один способ …
Распознавание игральных карт с помощью AForge.Net Framework
Система распознавания игральных карт может быть спарена с робототехнической системой, которая действует как сдающий или игрок в «двадцать одно». Реализация таких приложений – хороший пример для изучения компьютерного зрения и распознавания паттернов.
В этой статье рассматриваются алгоритмы преобразования в двоичный вид, определения краев, аффинные преобразования, обработка блобов, соответствия шаблону, которые реализованы в AForge .NET Framework.
Заметьте, что статья и система распознавания основаны на англо-американских колодах карт, она может не работать для других колод карт. Однако в статье приводятся базовые методы для определения и распознавания карт. Поэтому они могут быть адаптированы к использующимся обозначениям карт.
...
Выявление карт
Сначала мы должны найти на изображении карты, а затем приступить к их распознаванию. Чтобы найти карту мы применяем к изображению фильтры для облегчения определения объекта.
Сначала мы переводим изображение в полутоновое. Перевод в полутона преобразует цветное изображение в 8-разрядное серое. Нам необходимо преобразовать цветное изображение в полутоновое, чтобы затем можно было выполнить преобразование в двоичный (черно-белый) формат.
После преобразования цветного изображения в полутоновое, мы выполняем преобразование в двоичный формат. Бинаризация (выбор порога) – процесс, преобразующий полутоновое изображение в черно-белое. В этой статье для выбора общего порога используется метод Оцу.
Распознавание карт
Есть несколько способов распознавания. В этой системе распознавание основано на свойствах карт (таких как формы картинок на картах) и соответствии шаблону. Масть и ранг карты распознаются по отдельности. У нас есть следующие масти и ранги.
...
Распознавание ранга
Распознавание ранга похоже на распознавание масти карты. Мы распознавали фигурные и нефигурные карты по отдельности. Так как нефигурные карты можно узнать, считая количество символов масти на изображении карты, соответствия шаблону не требовалось, и эту работу можно выполнить с помощью простых фильтров изображения. Это делает процесс простым для нефигурных карт. В отличие от соответствия шаблону он не требует много процессорного времени.
...
...
Известные проблемы
Эта реализация способно распознавать только карты, отделенные одна от другой. Другая проблема состоит в том, что плохое освещение может затруднять распознавание карт.
Заключение
Большинство процедур обработки изображений основано на платформе AForge.NET. Это действительно мощная платформа, которая обеспечивает множество возможностей для разработчиков, занятых в сфере компьютерного зрения и машинного обучения. Кроме того, ее очень легко использовать.
Эту работу можно улучшить, добавив распознавание карт, неотделенных друг от друга. Другое улучшение состоит в использовании системы для создания игрока в «двадцать одно» на базе искусственного интеллекта.
Если вы интересуетесь карточными играми, дополненной реальностью, выявлением и распознаванием объектов, просто загрузите этот проект.