Вы можете выполнить классификацию поз рук с помощью машинного обучения на Mac.
На этот раз в качестве демонстрации я создам модель классификации поз с помощью CreateML и создам приложение для смартфона, которое распознает «сердечко пальца» и «знак мира».

Репозиторий GitHub этой демонстрации (проект Xcode): HandPoseClassificationAR

1. Соберите данные

Данные изображения необходимы для обучения.
Соберите и разбейте по папкам.

Необходимые изображения:
- изображения поз, которые вы хотите идентифицировать (на этот раз "fingerHeart" и "мир")

-Изображения
поз, которые вам не нужно идентифицировать ("фон")

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

На этот раз для каждого класса было подготовлено около 200 изображений.

2. Обучите свою модель с помощью CreateML

Откройте CreateML.
(щелкните Xcode, удерживая клавишу Control, чтобы открыть его из OpenDeveloperTools.)

Выберите классификацию HandPose.
(HandPoseClassification можно использовать в среде macOS Monterey / Xcode13 или выше.)

Выберите набор данных (данные для обучения).
Если вы не укажете проверочные данные, они будут сгенерированы автоматически.

Установите расширение набора данных (дополнения: раздувание изображения путем его вращения) соответствующим образом. На этот раз не имеет значения, находится рука слева или справа, поэтому я добавил горизонтальную инверсию и вращение.

Нажмите Train, чтобы начать обучение.

Обучение будет завершено через несколько минут.

После обучения вы можете протестировать свои собственные изображения на вкладке «Предварительный просмотр». Вы также можете просмотреть видео в реальном времени с помощью камеры Mac.

Получите модель на вкладке Output.

3. Используйте модель в приложении

Поместите модель в свой проект Xcode, чтобы инициализировать ее.

Инфраструктура Vision определяет точки руки (положения ключевых точек, таких как кончики пальцев и суставы: положения точек в предварительном просмотре CreateML выше), а затем вводит их в модель.

Полученные данные точки руки преобразуются в MultiArray (многомерный массив) и вводятся/выводятся в модель с помощью CoreML.

метка: fingerHeart
достоверность: 0,999993645120239

4. Добавьте AR в соответствии с позой руки

Переключите процесс в соответствии с полученной классификационной меткой.

Чтобы эффект проявился в положении пальца, сопоставьте положение пальца, полученное Vision, на расстоянии 20 см позади камеры.

Используйте SceneKit для анимации 3D-объектов.

Репозиторий GitHub этой демонстрации (проект Xcode): HandPoseClassificationAR

О получении очков рук:
Распознавание позы рук с визуальным отслеживанием рук: MLBoy Daisuke

🐣

Я инженер-фрилансер.
Не стесняйтесь обращаться ко мне за консультацией по работе 🐥
[email protected]

Я делаю приложение, использующее Core ML и ARKit.
Мы отправляем информацию, связанную с машинным обучением и дополненной реальностью.

GitHub
Twitter
Средний

Большое спасибо.