Geavanceerde Tafeltennisbal Tracking met OpenCV op Raspberry Pi
LET OP: Dit is een geavanceerde tutorial, niet geschikt voor Linux-beginners.
In deze gids laten we zien hoe u tafeltennisballen – of elk duidelijk zichtbaar cirkelvormig object – kunt detecteren en tracken met OpenCV op een Raspberry Pi. De techniek is waardevol voor robotica-projecten, sportanalyse of hobby-experimenten.
Vereisten
- Raspberry Pi met de nieuwste Raspbian (download op https://www.raspberrypi.org/downloads/)
- USB-webcam compatibel met de Pi
- Linux-host (Linux Mint 17, Ubuntu, of vergelijkbaar) voor ontwikkeling en bestandsoverdracht
- Kennis van Debian-gebaseerde systemen
Stap 1: Initiële Setup
- Sluit de Pi aan op toetsenbord, muis, webcam, Ethernet of Wi‑Fi-dongle, HDMI-scherm, en voeding.
- Schakel in en boot in de Raspbian GUI.
- Open een terminal en installeer OpenCV. Volg Trevor Appleton's uitgebreide handleiding om de installatie te bevestigen (OpenCV installeren op Raspberry Pi).
- Overdracht
bdtct.pynaar de home-directory van de Pi viascpof een USB-stick.
Stap 2: De Tracking-code Draaien
- Navigeer in de Pi-terminal naar de map met
bdtct.py. - Voer het script uit:
sudo python bdtct.py - Vijf vensters zouden moeten verschijnen: de originele video, een "tracking"-weergave, en drie HSV-aanpassingspanelen.
- Houd een tafeltennisbal (geel preferred) voor de webcam.
- Pas de "HueComp", "SatComp", en "ValComp"-schuifregelaars aan totdat de pixels van de bal de enige witte regio zijn in het "closing"-venster. Noteer deze waarden voor toekomstig gebruik door
bdtct.pyte bewerken.
Stap 3: Het Algoritme Begrijpen
Open bdtct.py in uw favoriete editor om de volgende workflow te zien:
- Video vastleggen van de standaardcamera:
cap = cv2.VideoCapture(-1) - Frames verkleinen naar 320×240 om de framerate op de Pi te verhogen.
- Interactieve vensters maken met min/max-schuifregelaars voor Hue, Saturatie, en Value.
- Elk frame converteren van BGR naar HSV:
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV). - HSV opsplitsen in aparte kanalen.
- Elk kanaal drempelwaarde toepassen op basis van schuifregelaar-ranges om binaire maskers te produceren.
- De drie maskers combineren met een logische AND om balpixels te isoleren.
- Gaussian blur toepassen om het resultaat glad te maken.
cv2.HoughCirclesgebruiken om cirkelvormige vormen te detecteren.- Gedetecteerde cirkels terug tekenen op het originele frame voor visualisatie.
Voor diepere inzichten, zie de volledige projectdocumentatie.
Productieproces
- DIY Zonne-energie Weerstation Met Raspberry Pi
- Professionele temperatuurbewaking met Raspberry Pi en DS18B20
- Een buitenweerstation bouwen met Raspberry Pi 2 en ADS-WS1
- Accurate temperatuurbewaking in een serverkast met Raspberry Pi
- Neon: Dynamisch open/gesloten makerspace-teken met Raspberry Pi 2 – El Paso, TX
- Lijnvolgsensor met Raspberry Pi – Simpele KY-033 deur/lijndetector
- Een Professionele Raspberry Pi Universele Afstandsbediening Bouwen met LIRC
- RF naar DC Converteren met een Raspberry Pi: Een Envelope Detector Bouwen en Troubleshooten
- Cycle Chaser: Uw Fiets Transformeren in een Nachttijd Lichtshow met Raspberry Pi
- Real-time Pan/Tilt gezichtsvolging op een Raspberry Pi – Praktische Gids
- Een Raspberry Pi-gebaseerde Diefdetector Bouwen – Stapsgewijze Handleiding