percept_simulator_2023/offline_encoder/config.json

100 lines
No EOL
4.4 KiB
JSON

{
// Define parameters
// ========================================================
// Unit abbreviations:
// dva: degrees of visual angle
// pix: pixels
"verbose": true,
// display: Defines geometry of target display
// ========================================================
// The encoded image will be scaled such that it optimally uses
// the max space available. If the orignal image has a different aspect
// ratio than the display region, it will only use one spatial
// dimension (horizontal or vertical) to its full extent
//
// If one dva corresponds to different pix_per_dva on the display,
// (i.e. varying distance observers from screen), it should be set
// larger than the largest pix_per_dva required, for avoiding
// extrapolation artefacts or blur.
//
"display": {
"size_max_x_dva": 10.0, // maximum x size of encoded image
"size_max_y_dva": 10.0, // minimum y size of encoded image
"pix_per_dva": 40.0, // scaling factor pixels to dva
"scale": "same_range" // "same_luminance" or "same_range"
},
// gabor: Defines paras of Gabor filters for contour extraction
// ==============================================================
"gabor": {
"sigma_kernel_dva": 0.06,
"lambda_kernel_dva": 0.12,
"n_orientations": 8
},
// encoding: Defines parameters of sparse encoding process
// ========================================================
// Roughly speaking, after contour extraction dictionary elements
// will be placed starting from the position with the highest
// overlap with the contour. Elements placed can be surrounded
// by a dead or inhibitory zone to prevent placing further elements
// too closely. The procedure will map 'n_patches_compute' elements
// and then stop. For each element one obtains an overlap with the
// contour image.
//
// After placement, the overlaps found are normalized to the max
// overlap found, and then all elements with a larger normalized overlap
// than 'overlap_threshold' will be selected. These remaining
// elements will comprise a 'full' encoding of the contour.
//
// To generate even sparser representations, the full encoding can
// be reduced to a certain percentage of elements in the full encoding
// by setting the variable 'percentages'
//
// Example: n_patches_compute: 100 reduced by overlap_threshold: 0.1
// to 80 elements. Requesting a percentage of 30% yields representation
// with 24 elements.
//
"encoding": {
"n_patches_compute": 100, // this amount of patches will be placed
"use_exp_deadzone": true, // parameters of Gaussian deadzone
"size_exp_deadzone_dva": 1.20, // PREVIOUSLY 1.4283
"use_cutout_deadzone": true, // parameters of cutout deadzone
"size_cutout_deadzone_dva": 0.65, // PREVIOUSLY 0.7575
"overlap_threshold": 0.1, // relative overlap threshold
"percentages": 100
},
"number_of_patches": 100, // TODO: Repeated from encoding
// dictionary: Defines parameters of dictionary
// ========================================================
"dictionary": {
"size_dva": 1.0, // PREVIOUSLY 1.25,
"clocks": {
"n_dir": 8, // number of directions for clock pointer segments
"n_open": 4, // number of opening angles between two clock pointer segments
"pointer_width": 0.07, // PREVIOUSLY 0.05, // relative width and size of tip extension of clock pointer
"pointer_length": 0.18 // PREVIOUSLY 0.15, // relative length of clock pointer
},
"phosphene": {
"sigma_width": 0.18 // DEFAULT 0.15, // half-width of Gaussian
}
},
// control: For controlling plotting options and flow of script
// ========================================================
"control": {
"force_torch_use_cpu": false, // force using CPU even if GPU available
// "show_capture": true, // shows captured image
// "show_object": true, // shows detected object
"show_mode": "cv2", // "pyplot" or "cv2"
"show_image": true, // shows input image
"show_contours": true, // shows extracted contours
"show_percept": true // shows percept
}
}