Real-time bird detection, classification, and tracking for an IP PTZ camera
First, start the darknet server ./service.sh
Then run python application.py
, which will walk you through config generation and start the camera control service.
- arrow keys: Pan and tilt
- +/-: zoom
- brackets: focus
- space: take snapshot
- shift/ctrl: Change speed
- a: toggle image processing
- quick labeling tool, saves in xml format
- left/right: prev/next image
- left click: move bounding box
- right click: create new bounding box
- delete: delete bounding box
- s: toggle auto-skip labeled images
- space: next image, enable auto-skip
- hotkeys: label bird species
- downloads video clips and extracts clips containing bird activity, also fixes the timings which are missing from the .265 files
- python3
- see requirements.txt for pip package requirements
- nvidia-container-toolkit
- docker-compose
git submodule update --init --recursive
pip install -r requirements.txt
cd darknet_server
docker-compose up
Camera CGI control is performed using the hi3510 Common Gateway Interface. It should also work with other PTZ cameras which implement the same CGI. Alternatively, control can be performed through ONVIF.
- IPCAM model C6F0SoZ3N0PcL2 (Anran 5MP IP Outdoor PTZ Camera with 30x optical zoom), firmware version V19.1.14.16.28-20200910
- Smart Light Bulb Model B2-R (requires enabling cleartext password)
- Smart Light Bulb Model B2-R-B (requires enabling cleartext password)