Отслеживание Raspberry Pi Ball
(Примечание:это расширенное руководство, оно не предназначено для новичков в Linux.)
В этом уроке я продемонстрирую, как отслеживать мячи для настольного тенниса с помощью OpenCV на Raspberry Pi. Его можно использовать для отслеживания любого круглого объекта, если он может быть хорошо обнаружен на его фоне. Это может быть полезно в роботах для отслеживания мяча и подобных проектах.
Что вам нужно:
1. Raspberry Pi (с установленной последней версией Raspbian вы можете получить его здесь:https://www.raspberrypi.org/downloads/ Следуйте инструкциям по установке на том же сайте)
2. Веб-камера USB (тестовая, которую поддерживает Rasppi)
3. Хост Linux (предпочтительно Linux Mint / Ububtu), который я тестировал с Linux Mint 17.
4. Опыт работы с системами Debian
Шаг 1. Начальная настройка
Инструкции:
1. Установите Rpi-соединения:клавиатура, мышь, веб-камера, адаптер Ethernet или Wi-Fi, отображение через HDMI, питание
2. Включите Rpi
3. Загрузитесь в графический интерфейс Raspbian на своем Rpi (загрузка Raspbian в графический интерфейс)
4. Откройте терминал и установите OpenCV (следуйте отличному руководству Тревора Эпплтона, чтобы убедиться, что OpenCV установлен правильно. Установите OpenCV на Rpi)
5. Скопируйте файл «bdtct.py» в домашнюю папку вашего rpi либо с помощью scp, либо с помощью флэш-накопителя.
Шаг 2. Запустите код (он же забавная часть)
В терминале вашего rpi перейдите в папку, в которую вы скопировали bdtct.py
2. Выполните следующую команду:
sudo python bdctc.py
Должно открыться 5 окон, как на картинке выше
3. Принесите мяч для настольного тенниса (по возможности используйте желтый) перед веб-камерой.
5. Мяч следует отслеживать в окне «трекинг». В противном случае отрегулируйте ползунки в окнах «HueComp», «SatComp», «ValComp» соответственно так, чтобы только область мяча для настольного тенниса выглядела белой в «закрывающем» окне (см. Рисунок выше). Возможно, вам придется немного поэкспериментировать, чтобы это сработало. Запишите значения ползунков, для которых он работает для вас, вы можете позже отредактировать их в bdtct.py.
Шаг 3. Знакомство с алгоритмом
Откройте файл bdtct.py в текстовом редакторе.
Код bdtct.py выполняет следующие действия:
1. Принимая входные данные «cap =cv2.VideoCapture (-1)»
2. Измените размер видеокадра до размера 320 × 240, чтобы наш rpi мог выдавать больше кадров в секунду.
3. Создание визуальных элементов, таких как окна «HueComp», «SatComp», «ValComp» с соответствующими ползунками min и max.
4. Преобразование входных данных из BGR в систему HSV «hsv =cv2.cvtColor (frame, cv2.COLOR_BGR2HSV)»
5. Разделение компонентов оттенка, насыщенности и значения.
6. Установка порогового значения для каждого компонента в соответствии с диапазоном пороговых значений, определенным соответствующими ползунками минимума и максимума, для получения двоичного изображения с пороговым значением (см. Рисунок выше)
7. Логически И пороговые компоненты оттенка, насыщенности и значения вместе, чтобы получить грубое двоичное изображение, в котором только пиксели мяча для настольного тенниса белые, а все остальное - черное. (см. рисунок выше)
8. Сглаживание изображения с оператором AND «close =cv2.GaussianBlur (close, (5,5), 0)»
9. Использование HoughCircles для обнаружения кругов на изображении
10. Нарисуйте обнаруженные круги на исходной рамке ввода.
Подробнее:отслеживание Raspberry Pi Ball
Производственный процесс
- Метеостанция на основе Raspberry Pi
- Мониторинг температуры на Raspberry Pi
- Метеостанция Raspberry Pi 2
- Мониторинг температуры с помощью Raspberry Pi
- Знак Neon A Shop Open / Closed Makerspace на Raspberry Pi 2 (Эль-Пасо, Техас)
- Датчик отслеживания линии с RPi
- Универсальный пульт дистанционного управления Raspberry Pi
- Кусочек Raspberry Pi
- Cycle Chaser
- Отслеживание лица при панорамировании / наклоне с помощью raspberry pi