Configuration file#
All Cheese3D projects are defined by a configuration file. For convenience, the interactive UI allows you to define a “typical” configuration file (see Creating a new project). If you need more advanced settings, you can edit the configuration file directly (located under config.yaml in your project folder).
Main configuration options#
Below is a description of all the options available in the configuration file.
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
N/A |
The name of your project which should match the project folder name exactly. |
|
|
|
The path relative to the project folder where video data should be found. |
|
|
|
The path relative to the project folder where ephys data should be found. Not required if ephys is not used in the project. |
|
|
|
The path relative to the project folder where models should be stored. |
|
|
Video file matching regex. Requires groups
|
|
|
Options for the 2D pose estimation model. |
||
|
|
Optional ephys file matching regex. |
|
|
|
Optional options for the ephys acquisition system. |
|
|
|
|
Frames per second of all cameras. |
|
Options for temporally synchronizing video (and ephys) data sources. |
||
|
|
|
List of recording sessions to process. Each entry must contain a |
|
Options for configuring 3D reconstruction stage of the pipeline. |
||
|
Multi-camera setup configuration. |
||
|
|
Options specifying which video type to use for calibration. |
|
|
List of anatomical keypoints to track. |
||
|
|
|
List of keypoints to ignore when generating videos of pipeline output. |
Model options#
Below is a description of the sub-configuration under the model key in the Main configuration file parameters.
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
N/A |
Name of the model. |
|
|
|
Type of 2D pose estimation model framework used. |
|
|
Auto-generated |
Additional options relevant to the backend. Just |
Ephys options#
Below is a description of the sub-configurations under the ephys_params key in the Main configuration file parameters. Each type of ephys system has a different set of allowed configurations.
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Type of ephys system. |
|
|
|
Channel for synchronization signal. |
|
|
|
Voltage threshold for detecting an “on” synchronization pulse. |
|
|
|
Sample rate of the acquisition system. |
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Type of ephys system. |
|
|
|
Channel for synchronization signal. |
|
|
|
Voltage threshold for detecting an “on” synchronization pulse. |
|
|
|
Sample rate of the acquisition system. |
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Type of ephys system. |
|
|
|
Voltage threshold for detecting an “on” synchronization pulse. |
|
|
|
Sample rate of the acquisition system. |
Sync options#
Cheese3D will temporally synchronize video data across all cameras (and optionally ephys data). Below are the options for the sync configuration in the Main configuration file parameters.
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Sequential list of alignment algorithms to apply. Available options: |
|
|
|
Threshold for detecting LED synchronization signals in video frames (0.0-1.0). |
|
|
|
Maximum allowed RMSE for regression-based alignment. Higher values are more permissive. |
|
|
|
Reference camera view to use for synchronization. Must match one of the view names in the |
|
|
|
Crop region to use from the reference view. Use |
Recording session options#
The sessions section in the Main configuration file parameters defines the video recordings to process. Each recording has the following options:
Key |
Type |
Description |
|---|---|---|
|
|
The name of the folder in |
|
|
Additional identifiers corresponding to regex groups in |
Example:
sessions:
- name: 20250522_B1_ephys-record_rig1
- name: 20250523_B1_ephys-record_rig1
type: control
In the example, the <video_root>/20250523_B1_ephys-record_rig1 folder contains multiple sessions, so we filter the potential matches to the files where the type group has a value of control. See Regex guide for more information on regex groups and how to use them.
Calibration options#
The calibration key allows you to filter a matched list of videos for a recording into calibration recordings and normal video recordings. Its value is similar to an entry in sessions but excludes the name key (i.e. it is just a list of regex groups to filter the matched files).
Example:
calibration:
type: cal
Triangulation options#
The triangulation section configures 3D reconstruction:
Key |
Type |
Default |
Description |
|---|---|---|---|
|
|
|
Defines coordinate system axes using keypoint pairs. Each sub-list contains [axis_name, point1, point2]. |
|
|
|
Reference keypoint for coordinate system origin. |
|
|
|
Whether to apply 2D filtering before triangulation. |
|
|
|
Minimum confidence score for keypoints to be used in triangulation. |
View options#
The views section defines multi-camera setup configuration. Each view has the following parameters:
Key |
Type |
Description |
|---|---|---|
|
|
Camera identifier that matches the |
|
|
Main bounding box crop as |
|
|
Named additional crop regions, typically used for synchronization LEDs bounding boxes. |
|
|
FFMPEG filter specifications for brightness, contrast, and saturation adjustments. |
Example:
views:
topleft:
path: TL
crop: [null, null, null, null]
extra_crops:
sync_led: [250, 265, 20, 35]
filterspec: null
Keypoint options#
The keypoints section defines anatomical points to track. Each keypoint has the following options:
Key |
Type |
Description |
|---|---|---|
|
|
Unique name for the anatomical keypoint. |
|
|
Functional groups this keypoint belongs to (e.g., “nose”, “eye(left)”, “whiskers(right)”). |
|
|
List of camera views where this keypoint should be labeled and tracked. |
Example:
keypoints:
- label: nose(tip)
groups: [nose]
views: [topleft, topright, left, right, topcenter, bottomcenter]
- label: eye(front)(left)
groups: [eye(left)]
views: [topleft, left, topcenter]