Nano Hash - криптовалюты, майнинг, программирование

Лучший способ распознать число, нарисованное пальцем пользователя на экране iPhone

Я планирую позволить пользователю рисовать форму числа (от 1 до 9) в форме 7-сегментного дисплея. Каков наилучший способ определить, какое число было нарисовано?

Я знаю, как делать все, что связано с отслеживанием касаний и UIGestureRecogniser - я ищу хорошую логику для этого.

Пока что у меня есть: когда прикосновение перемещается с одной половины сегмента на другую, выделите этот сегмент. После завершения касаний проверьте, какие сегменты были выделены, и решите, какое число выпало.

Способы, которые я придумал, чтобы улучшить это: Нарисуйте форму траектории движения пальца на экране. Если линия пересекает середину сегмента, выделите этот сегмент.

У кого-нибудь есть советы или лучшие способы сделать это? Я открыт для любых предложений, даже если это означает отказ от всего моего кода и начало с нуля.


  • Казалось бы, вам нужно сначала обучить пользователя приложению, чтобы он рисовал от 0 до 9 пару раз, вы выясняете, как они это делают, а затем они делают это там, где вы пытаетесь определить число. Удачи. 17.11.2011
  • Вы должны использовать эту технику сегмента? Это, вероятно, было бы идеально для решения какой-нибудь нейронной сети. 17.11.2011
  • Спасибо за предложения. Я попробую идею нейронной сети 19.11.2011

Ответы:


1

Я использовал реализации распознавателей штрихов $ для распознавания нарисованных чисел.

Оба алгоритма связаны с несколькими реализациями Objective-C/iOS.

Распознаватели будут сравнивать входные данные с предопределенными шаблонами, основанными на различных алгоритмах (подробное объяснение доступно на связанных страницах). Чтобы это работало, вам нужно будет создать свои собственные шаблоны чисел (в основном просто что-то нарисовать и позволить распознавателю преобразовать это в структуру данных, которую вы сохраните для последующего использования). Затем при вводе пользователем сравните шаблоны, которые вы записали ранее, чтобы найти совпадение.

Распознаватель за 1 доллар был достаточен для моего приложения, где я позволял пользователю сначала тренироваться, чтобы попрактиковаться в рисовании чисел. Распознаватель $N способен различать более сложные штрихи и может принимать более сложные выпавшие числа. Это то, с чем вам придется поэкспериментировать.

22.11.2011
  • Большое спасибо за эту информацию. К сожалению, первая ссылка проекта obj-c для распознавателя $1 не работает, но есть и другие, которые я попробую, как только смогу! 22.11.2011
  • Сегодня попробовал это: github.com/preble/GLGestureRecognizer . Рад сообщить, что это работает ОТЛИЧНО. Еще раз спасибо за фантастическую ссылку! 26.11.2011

  • 2

    Если вы заинтересованы в обнаружении чисел от 1 до 9, проверьте BGNumericalGlyphRecognizer. Я провел несколько месяцев, работая с распознавателем $N-multistroke, чтобы создать ScribbleMath (математическое приложение, которое позволяет детям рисовать свои ответы на экране) и открыть исходный код основной логики. Оказывается, распознавателям $N трудно различать 6 и 9, а также плохо распознавать очень простые буквы, такие как 1 и «-», и я создал логику для лучшей обработки этих чисел. Он не идеален, но он продвинет вас дальше, чем распознаватель $N из коробки. Наслаждаться!

    28.01.2013
  • Есть ли подобный репозиторий, подобный этому? Я работаю со свифтом. 22.06.2018
  • Я пытаюсь использовать это быстро, но получаю эту ошибку. /GestureDigit/WTMGlyph/WTMGlyphStroke.m:27:37: Нет известного метода класса для селектора 'valueWithCGPoint:' Есть идеи? 10.07.2018
  • Извините, у меня проблемы с открытием проекта git. Вы сказали, что я должен открыть терминал в Mac OS, а затем перейти наверх. что вы подразумеваете под and cd to the top level directory of the repository . 16.07.2019
  • Я получаю обновление с помощью рабочего стола github. но проблема в том, что у него все еще есть некоторые ошибки с этой темой Use of undeclared identifier 'self' в кодах 16.07.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..