Распознавание образов Нарисованных пальцем на мобильных устройствах
Что хотим распознавать?
На плечи гигантов?
Что предлагает OpenCV? Проверка свойств объекта (Artificial Intelligence) Сравнение векторов (Machine Learning)
Проверка свойств Выявление фигур (линии, круги) Сравнение углов между линиями с эталоном Сравнение длин линий с эталоном
Проверка свойств
Проблемные фигуры
Проблемы Плохая адаптация под задачу Низкое качество распознавания Не учитывает направление рисования Длительное время распознавания
Формирование обучающей выборки Снятие метрик Выбор класса образов с использованием обучающей выборки
Снятие метрик: метод грубой силы x1x2x3x4y1y2y3y4 1 (x1, y1) 2 (x2, y2) 3 (x3, y3) 4 (x4, y4) 5 (x5, y5) 6 (x6, y6) 7 (x7, y7) 8 (x8, y8) x1y1x2y2x3y3x4y4
Метрика: расстояние от центра О (x, y) 1 (x1, y1) 2 (x2, y2) 3 (x3, y3) 4 (x4, y4) 5 (x5, y5) 6 (x6, y6) 7 (x7, y7) 8 (x8, y8) a1a2a3a4a1a2a3a4 an = dist(O, n)
Метрика: метод длинной единицы
Метод: измерение расстояний an = dist(bn, cn) b1 (x1, y1) b2 (x2, y2) b3 (x3, y3) b4 (x4, y4) b5 (x5, y5) b6 (x6, y6) b7 (x7, y7) b8 (x8, y8) c1 (x1, y1) c2 (x2, y2) c3 (x3, y3) c4 (x4, y4) c5 (x5, y5) c6 (x6, y6) c7 (x7, y7) c8 (x8, y8) Эталон Объект для проверки res = an
Проблемные фигуры
Метод: сравнение касательных dn = angle(bn, b(n+1), cn, c(n + 1)) b1 (x1, y1) b2 (x2, y2) b3 (x3, y3) b4 (x4, y4) b5 (x5, y5) b6 (x6, y6) b7 (x7, y7) b8 (x8, y8) c1 (x1, y1) c2 (x2, y2) c3 (x3, y3) c4 (x4, y4) c5 (x5, y5) c6 (x6, y6) c7 (x7, y7) c8 (x8, y8) Эталон Объект для проверки res = dn
Прототип проекта