Этот проект был частью курса VR/AR в моем университете в Дармштадте. Целью проекта было создание приложения для автоматического подсчета очков в дартс, в котором два игрока могли бы играть в дартс, не концентрируясь на подсчете очков. Приложение использует OpenCV для части компьютерного зрения и Pyside2 для графического интерфейса.
Мы используем калиброванную веб-камеру для захвата видеопотока и обработки его с помощью OpenCV для извлечения дротиков на доску и отслеживания игроков.
Полный конвейер обнаружения выглядит примерно так:
Общий процесс конвейера представлен на этой блок-схеме (пока только на немецком языке):
Вам понадобится:
Разместите маркеры вокруг мишени, как показано на рисунке ниже, и убедитесь, что они видны. Разместите веб-камеру перед мишенью примерно в 1 метре и немного правее, чтобы она не мешала бросать дротики.
Важно: для получения хороших результатов необходимо хорошее освещение. Плохо только освещение прямо над мишенью. Оптимальным будет кольцевой светильник с таким рассеивателем:
У нас были некоторые проблемы с тряской платы, которая вызывала шум при обнаружении. Мы решили эту проблему, напечатав на 3D-принтере крепления для платы:
Просто клонируйте репозиторий и выполните следующую команду:
pip install -r requirements.txt
Сначала необходимо откалибровать камеру. Это можно сделать с помощью сценария калибровки. Затем вы можете запустить main_with_gui.py. Графический интерфейс выглядит следующим образом: