Машинное обучение на устройствах iOS — это тема, которую я давно хотел изучить. К счастью, теперь у меня есть проект и возможность писать об этом в блоге.
Я нахожусь на начальном этапе и думаю, что это путешествие может быть полезно другим, кто хочет сделать что-то подобное, поэтому я буду документировать свой прогресс.
Эта статья в основном адресована другим разработчикам и техническим специалистам, но я думаю, что любой может следовать ей, пока вы гуглите, когда сталкиваетесь с чем-то незнакомым.
Вот постановка задачи: найти шахматную доску по снимку экрана, а затем определить положение всех фигур на шахматной доске.
Я думаю об этом как о двух связанных, но отдельных задачах:
1) найти шахматную доску
2) и, если она найдена, определить положение каждой фигуры
Входы и выходы
Друг по машинному обучению сказал мне думать о моделях как о входных и выходных данных, и что моя работа как человека состоит в том, чтобы четко указать входные и выходные данные. Принимая во внимание этот совет, эту проблему можно сформулировать как ряд входов и выходов.
Входные данные — снимок экрана, на котором может быть шахматная доска.
Выходные данные — координаты, описывающие точное расположение шахматной доски на снимке экрана, если она существует.

Вход — изображение шахматной доски
Выход — 64 отдельных изображения, по одному на каждую клетку шахматной доски

Вход — поле шахматной доски
Выход — классификация фигур

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