7. Машинное обучение

Большинство детекторов в главе про изображения были написаны вручную под конкретную задачу: вручную настроенные цветовые диапазоны для отслеживания блобов, вручную выведенные узоры весов для фильтров границ, фиксированные геометрические допущения для поиска линий и окружностей. Каждый алгоритм покрывал один вид задачи, и добавление новой цели означало написание нового алгоритма. Машинное обучение меняет рабочий процесс. Вместо одного алгоритма на каждую цель приложение загружает обученную модель – стек весов, созданный вне устройства на настольном компьютере с множеством примеров изображений, – и запускает его на камере. Один и тот же движок, который выполняет детектор лиц, выполняет оценщик позы руки, трекер позы тела, классификатор объектов или что-либо ещё, на что была обучена модель.

Модуль ml – это инструментарий. Каждая операция строится на единственном объекте Model, который загружает файл модели из флеш-памяти, управляет её квантованными входными и выходными тензорами, направляет каждый вывод нужному движку на камере и пропускает получившиеся тензоры через необязательный постобработчик, преобразующий их обратно в форму результата, на которую может реагировать приложение, – рамки, ключевые точки, классы или то, для чего предназначена модель.

Заключение