Ethoscore is a video annotation tool for behavioral analysis, built with PySide6 and OpenCV. Annotate video footage with specific behaviors using keyboard, mouse, and gamepad controls.
- Multi-Input Support: Keyboard shortcuts, mouse, and gamepad controls to keep muscle cramps away
- Timeline Interface: Interactive timeline with zoom/click/drag navigation
- Behavior Annotation: Label frames with customizable behaviors
- Optional Gamification: Get points according to the duration of the labels and even combos if executed quickly!
- Auto-Save: Configurable automatic saving
- Color-Coded Labels: Visual behavior identification in the timeline and preview bars for previous/next frame
- CSV Export: Classic frame by frame matrix
Prerequisites: Python 3.8+, pip
Install dependencies:
pip install -r requirements.txtRun:
python ethoscore.py- Launch the application
- Select a video file (MP4, AVI, MOV, MKV, WMV)
- Label frames using behavior buttons or keyboard shortcuts
- Navigate with arrow keys or gamepad
- Annotations auto-save as CSV files
- Arrow Keys: Navigate frames
- Shift + Arrows: Jump larger increments (configurable)
- Number Keys: Toggle behaviors
- Escape: Remove labels
- Ctrl+S: Save
- Ctrl+O: Load video
- Ctrl+N: Load next video
- Left Analog Stick: Frame navigation
- Buttons: Mappable to behaviors, erasing them, or increasing navigation speed
- Input Settings: Keyboard shortcuts and controller mappings
- General Settings: Auto-save, UI preferences
Annotations saved as CSV with video filename. Here is a simple example:
Frames,nose-to-nose,nose-to-body,anogenital,passive,rearing,fighting,mounting
1,0,0,0,0,0,0,0
2,1,0,0,0,0,0,0
...
- Frames: 1-based frame numbers
- Behavior Columns: Binary indicators (1=present, 0=absent)
- Multi behavior on the same frame support
- Enhanced caching for large videos
