CoolFace
Datasetpublic

eturok-weizmann/laser-vibrations-test

Laser Vibrations Dataset of laser speckle vibration recordings used to locate objects hidden inside a cardboard box. A 10×10 grid of lasers shines on the side of a box containing an object; as loudspeakers excite the box, the speckle patterns shift in proportion to the local surface vibration. Per-sample metadata is in data/metadata.jsonl; full signal data and media files live in per-sample subdirectories. Dataset Viewer Columns Column Type Description… See the full description on the dataset page: https://huggingface.co/datasets/eturok-weizmann/laser-vibrations-test.

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes23downloads
Dataset Card

Laser Vibrations

Dataset of laser speckle vibration recordings used to locate objects hidden inside a cardboard box. A 10×10 grid of lasers shines on the side of a box containing an object; as loudspeakers excite the box, the speckle patterns shift in proportion to the local surface vibration. Per-sample metadata is in data/metadata.jsonl; full signal data and media files live in per-sample subdirectories.

Dataset Viewer Columns

ColumnTypeDescription
sample_idintUnique sequential identifier for this sample
segmented_overhead_file_nameimageOverhead photo of the box with segmentation mask overlay and speaker-angle annotations
speckle_vibrations_file_namevideoSlow-motion preview video of the laser speckle pattern on the box side while vibrating
speckle_shifts_ifft_audio_file_nameaudioReconstructed audio from the vibration signal of a single laser point (inverse FFT)
audio_file_nameaudioShared excitation chirp played through the loudspeakers during recording
experiment_idstringSource directory name from experiment-15 (unique per recording)
speakersstring4-bit speaker activation code, e.g. 0001 = only speaker 4 active
x_positionintObject grid column index (0-indexed)
y_positionintObject grid row index (0-indexed)
x_comfloatX centre-of-mass of the segmentation mask in the cropped overhead image (pixels)
y_comfloatY centre-of-mass of the segmentation mask in the cropped overhead image (pixels)
n_objectsintNumber of objects inside the box
box_materialstringBox material, e.g. cardboard
mask_file_nameimageBinary segmentation mask of the object in the cropped overhead image
experiment_dirstringName of the experiment-16 target directory
manifeststringFull JSON manifest for this sample (see Manifest section below)

File Directory Structure

experiment-16/
├── README.md                        # This file (dataset card)
├── data/
│   ├── metadata.jsonl               # One JSON row per sample (viewer-facing)
│   ├── audio/
│   │   └── chirp_50_1000_3.0sec.wav # Shared excitation signal played by all speakers
│   ├── 0000001/                     # Per-sample data directory (zero-padded 7-digit ID)
│   │   ├── manifest.json            # Full metadata + config for this sample
│   │   ├── speckle_vibration_raw.npy        # Raw laser camera frames (100 lasers × T frames × 2 XY)
│   │   ├── speckle_shifts.npz               # Sub-pixel XY shifts per laser per frame
│   │   ├── speckle_shifts_clean.npz          # Bandpass-filtered + Hann-windowed shifts
│   │   ├── speckle_shifts_fft.npz            # FFT of cleaned shifts (frequency domain)
│   │   ├── speckle_shifts_ifft_audio.wav     # Single-laser vibration reconstructed as audio
│   │   └── speckle_vibrations.mp4            # Preview video of speckle motion
│   ├── 0000002/
│   │   └── ...
│   └── image/
│       └── <image_dir>/             # Per-sample image directory (named by object+position+date)
│           ├── raw_overhead.png     # Raw overhead photo before cropping
│           ├── cropped_overhead.png # Overhead photo cropped to box region
│           ├── segmented_overhead.png   # Overhead with mask overlay + speaker annotations
│           ├── mask.png             # Binary mask (white = object)
│           └── mask.npz             # Binary mask as compressed numpy array

manifest.json Structure

Each sample directory contains a manifest.json with full provenance and configuration. The manifest column in metadata.jsonl is this same JSON serialised as a string.

Top-level keys

KeyTypeDescription
sample_idintUnique sample identifier
experiment_idstringSource recording directory name
experiment_dirstringTarget experiment-16 directory name
source_experiment_idstringSame as experiment_id (canonical source reference)
source_experiment_dirstringAbsolute NAS path to source directory
hf_repostringHuggingFace repo this sample was uploaded to
sampleobjectPhysical setup description — see below
segmentationobjectSegmentation result — see below
experiment_configobjectMerged hardware + recording config — see below
experiment_outputobjectDerived signal statistics from processing — see below
processing_configobjectProcessing pipeline parameters — see below
artifactsobjectRelative paths to all files for this sample — see below

sample

KeyTypeDescription
objectstringObject type inside the box, e.g. cube
n_objectsintNumber of objects
box_materialstringBox material, e.g. cardboard
speakersstring4-bit activation code for which speakers were active
x_positionintObject grid column (0-indexed)
y_positionintObject grid row (0-indexed)
image_dirstringName of the image subdirectory under data/image/

segmentation

KeyTypeDescription
x_comfloatX centre-of-mass of segmentation mask (pixels in cropped image)
y_comfloatY centre-of-mass of segmentation mask (pixels in cropped image)
statusstringcompleted if segmentation succeeded

experiment_config

Merged from the source experiment_config.json and hardware defaults.

KeyTypeDescription
audio.file_namestringAudio file name used for excitation
audio.sample_rate_hzintAudio sample rate in Hz
audio.duration_sfloatDuration of the chirp in seconds
audio.generation.f_start_hzintChirp start frequency (Hz)
audio.generation.f_end_hzintChirp end frequency (Hz)
recording.capture_seconds_requestedfloatRequested recording duration (s)
overhead_camera.frame_rate_fpsintOverhead camera frame rate
laser_camera.capture.fpsfloatLaser camera frame rate
laser_camera.global_roilist[int]Full-frame ROI [x, y, w, h]
laser_grid.sensor_rois_xywhlist[list[int]]Per-laser ROI bounding boxes

experiment_output

Derived statistics computed during processing.

KeyTypeDescription
overhead_camera.image_widthintOverhead image width (px)
overhead_camera.image_heightintOverhead image height (px)
laser_camera.max_frame_rate_hzintActual laser camera frame rate achieved
laser_camera.global_roilist[int]Actual ROI used
laser_grid.total_image_heightintTotal height of the laser camera frame
laser_grid.n_lasersintNumber of laser points detected
speckle_shifts.n_framesintNumber of frames captured
speckle_shifts.duration_sfloatActual recording duration (s)

processing_config

Parameters used for each processing stage.

KeyTypeDescription
speckle_vibration_raw.formatstringRaw data format: npy or npz
speckle_vibration_raw.compressedboolWhether raw data is compressed
speckle_shifts.fs_hzfloatSampling rate of shift signal (Hz)
speckle_shifts_clean.filter_typestringFilter type, e.g. butterworth
speckle_shifts_clean.filter_modestringbandpass, lowpass, or highpass
speckle_shifts_clean.lowcutfloatLow cutoff frequency (Hz)
speckle_shifts_clean.highcutfloatHigh cutoff frequency (Hz)
speckle_shifts_clean.filter_orderintFilter order
speckle_shifts_clean.hann_appliedboolWhether a Hann window was applied
speckle_shifts_fft.fft_kindstringFFT variant, e.g. rfft
speckle_shifts_fft.min_freqfloatMinimum frequency kept after crop (Hz)
speckle_shifts_fft.max_freqfloatMaximum frequency kept after crop (Hz)
speckle_shifts_fft.dtypestringComplex dtype, e.g. complex64
speckle_shifts_ifft_audio.laser_idxintWhich laser index to use for audio preview
speckle_shifts_ifft_audio.output_sample_rate_hzintAudio output sample rate (Hz)
speckle_shifts_ifft_audio.normalizationstringNormalization method for audio
segmentation.left/right/up/downfloatCrop fractions used for overhead image
segmentation.promptstringText prompt passed to the segmentation model
speckle_vibrations_preview.codecstringVideo codec, e.g. libx264
speckle_vibrations_preview.crfintVideo quality (lower = better)
speckle_vibrations_preview.max_framesintMax frames in preview video

artifacts

Relative paths (within the repo) to every file produced for this sample.

KeyDescription
raw_overheadRaw overhead photo before cropping
cropped_overheadOverhead photo cropped to box region
segmented_overheadOverhead with mask overlay and speaker annotations
mask_pngBinary segmentation mask as PNG
mask_npzBinary segmentation mask as compressed numpy
audioShared excitation chirp WAV
speckle_vibration_rawRaw laser camera shift data (npy/npz)
speckle_vibrationsPreview video of speckle motion (mp4)
speckle_shiftsSub-pixel XY shifts per laser per frame (npz)
speckle_shifts_cleanBandpass-filtered + Hann-windowed shifts (npz)
speckle_shifts_fftFFT of cleaned shifts in frequency domain (npz)
speckle_shifts_ifft_audioSingle-laser vibration as audio WAV
manifestThis manifest.json file