SkillAgentSearch skills...

Spihim

Single-pixel hyperspectral imaging datasets

Install / Use

/learn @openspyrit/Spihim
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Single-Pixel Hyperspectral Imaging (SPIHIM) Datasets

Version 1.0 and later

Our datasets are made publicly available following FAIR (findability, accessibility, interoperability, reusability) principles through the pilot warehouse

  • https://pilot-warehouse.creatis.insa-lyon.fr/#collection/6140ba6929e3fc10d47dbe3e

Reference:

  • G. Beneti-Martin, L Mahieu-Williame, T Baudier, N Ducros, "OpenSpyrit: an Ecosystem for Reproducible Single-Pixel Hyperspectral Imaging," Optics Express, Vol. 31, No. 10, (2023). DOI. Main PDF. Supplemental document.

Version 0

License: The SPIHIM datasets are distributed under the Creative Commons Attribution 4.0 International license (CC-BY 4.0)

Reference: Please reference this work

  • A Lorente Mur, B Montcel, F Peyrin, N Ducros. Deep neural networks for single-pixel compressive video reconstruction. SPIE Photonics Europe, Proc. vol. 11351, Unconventional Optical Imaging II, pp.27, Apr 2020, France. ⟨hal-02547800⟩

Contact: nicolas.ducros@insa-lyon.fr, CREATIS Laboratory, University of Lyon, France.

Setup Description

Hardware

The set-up is depicted below and in detail [ALM2020]. The telecentric lens (TL; Edmund Optics 62901) is positioned such that its image side projects the image of the sample (S) onto the digital micro-mirror device (DMD; vialux V-7001), which is positioned at the object side of the lens. The object is transparent and is illuminated by a LED lamp (L; Thorlabs LIUCWHA/M00441662). The DMD can implement different light patterns by reflection of the incident light onto a relay lens (RL), which projects the light into an optical fiber (OF; Thorlabs FT1500UMT 0.39NA). This optical fiber is connected to a compact spectrometer (SM; BWTek examplar BRC115P-V-ST1). A filter wheel (FW) containing neutral optical densities is placed behind the lamp to reduce the light flux

Mathematical Model

The setup acquires M = α HF where F in R <sup>n x λ</sup> represents the sample hypercube, H in R <sup>m x n</sup> the measurement matrix, and α is a multiplicative factor that depends on and the optical density. The measurement matrix contains the patterns that are uploaded onto the DMD. Here, m represents the number of patterns, n the number of pixels of the patterns, and λ the number of spectral bins.

The multiplicative factor is given by α = φ 10<sup>-OD</sup> Δt (in photons), where φ (in photons/s) represents the given light flux, OD is neutral optical density and Δt is the integration time.

Hadamard Acquisitions

We acquire Hadamard patterns that we split into positive and negative parts, which are concatenated in the measurement matrix. Precisely, H<sub>m</sub> contains the positive parts and H<sub>m+1</sub> the negative parts, such that H<sub>m</sub> - H<sub>m+1</sub> is a Hadamard pattern.

We sequentially upload onto the DMD all of the m = 2 x 4096 Hadamard (split) patterns of dimension n = 64 x 64 pixels. The patterns in PNG format can be downloaded here.

We acquire different datasets for the same object by selecting different neutral densities OD and different integration times Δt.

Summary of the SPIHIM datasets

The following datasets are provided

We provide the description of each measurement session in the sections below.

Data Reading, measurement matrix, and reconstruction

Based on SPIRiT, we provide matlab scripts that

  • read, reconstruct and plot the datasets (see ./scripts/read_*_.m)
  • build the forward operator H that maps the image of the sample the onto the measured Hadamard coefficients (see ./scripts/build_forward_operator.m)

The (full) Hadamard matrix H in R <sup>n x n</sup> can be downloaded here. It applies to a measurement vector in R <sup>n</sup>, where the missing coefficients have been field with zeros. To compute the (reduced) measurement matrix H in R <sup>m x n</sup>, see ./scripts/build_forward_operator.m.

The acquisition is such that the patterns with maximum variance are acquired first. We provide here the covariance matrix used to defined the acquisition order ; it was computed on the STL-10 image dataset.

Description of the SPIHIM datasets

04-Feb-2020 session <a name="04-Feb-2020-session"></a>

We acquired four samples:

  • A star sector target printed on a paper sheet in black an white
  • A star sector target printed on a paper sheet printed in color according to a Hue color wheel
  • A paper sheet with no printing
  • No object, i.e., the illumination LED lamp directly

Filename | M | Δt (ms) | Comment | |--|--:|--:|--| SiemensBW1a_raw.mat | 408 | 4 | black and white star sector | SiemensColor8a_raw.mat | 408 | 32 | color star sector | SiemensColor8b_raw.mat | 1228 | 32 | color star sector | mydata_raw.mat | 512 | 4 | | paperSheet1b_raw.mat | 1228 | 4 | paper sheet | paperSheet2b_raw.mat | 1228 | 8 | paper sheet | paperSheet4b_raw.mat | 1228 | 16 | paper sheet | siemensStar1a_raw.mat | 408 | 4 | black and white star sector | siemensStar1b_raw.mat | 1228 | 4 | black and white star sector | siemensStar2a_raw.mat | 408 | 8 | black and white star sector | siemensStar2b_raw.mat | 1228 | 8 | black and white star sector | siemensStar4a_raw.mat | 408 | 16 | black and white star sector | siemensStar4b_raw.mat | 1228 | 16 | black and white star sector | siemensStar8a_raw.mat | 408 | 32 | black and white star sector | siemensStar8b_raw.mat | 1228 | 32 |black and white star sector | siemensStarColor1b_raw.mat | 1228 | 4 | color star sector | siemensStarColor2b_raw.mat | 1228 | 8 | color star sector | siemensStarColor4b_raw.mat | 1228 | 16 | color star sector | siemensStarColor4c_raw.mat | 2456 | 16 | color star sector | siemensStarColor8d_raw.mat | 4096 | 32 | color star sector | whiteLED1a_raw.mat | 408 | 4 | no object |

11-Jun-2020 session <a name="11-Jun-2020-session"></a>

First, we acquired the LED source directly with no sample

Filename | Δt (ms) | OD (-)| Comment | |--|--:|--:|--| noObjectD_1_0.0_raw.mat | 4 | 0.0 | Saturate noObjectD_1_0.3_01_raw.mat | 4 | 0.3 | Repeat same measurement 4x to simulate longer Δt while avoiding saturation noObjectD_1_0.3_02_raw.mat | 4 | 0.3 | noObjectD_1_0.3_03_raw.mat | 4 | 0.3 | noObjectD_1_0.3_04_raw.mat | 4 | 0.3 | noObjectD_1_0.3_raw.mat | 4 | 0.3 | noObjectD_1_0.6_raw.mat | 4 | 0.6 | noObjectD_1_1.0_raw.mat | 4 | 1.0 | noObjectD_1_1.3_raw.mat | 4 | 1.3 |

Second, we acquired the star sector target

Filename | Δt (ms) | OD (-)| Comment | |--|--:|--:|--| starSectorD_2_0.0_01_raw.mat | 8 | 0.0 | Repeat same measurement 4x to simulate longer Δt while avoiding saturation starSectorD_2_0.0_02_raw.mat | 8 | 0.0 | starSectorD_2_0.0_03_raw.mat | 8 | 0.0 | starSectorD_2_0.0_04_raw.mat | 8 | 0.0 | starSectorD_2_0.0_05_raw.mat | 8 | 0.0 | starSectorD_2_0.0_06_raw.mat | 8 | 0.0 | starSectorD_2_0.0_07_raw.mat | 8 | 0.0 | starSectorD_2_0.0_08_raw.mat | 8 | 0.0 | starSectorD_2_0.0_09_raw.mat | 8 | 0.0 | starSectorD_2_0.0_10_raw.mat | 8 | 0.0 | starSectorD_2_0.0_raw.mat | 8 | 0.0 | starSectorD_2_0.3_raw.mat | 8 | 0.3 | starSectorD_2_0.6_raw.mat | 8 | 0.6 | starSectorD_2_1.0_raw.mat | 8 | 1.0 | starSectorD_2_1.3_raw.mat | 8 | 1.3 |

Third, we acquire the star sector target that was off-centered

Filename | Δt (ms) | OD (-)| Comment | |--|--:|--:|--| R1L1S2P_1_0.0_raw.mat | 4 | 0.0 | Shows the 'R1L1S2P' writing R1L1S2P_1_0.3_raw.mat | 4 | 0.3 | R1L1S2P_1_0.6_raw.mat | 4 | 0.6 | R1L1S2P_1_1.0_raw.mat | 4 | 1.0 | R1L1S2P_1_1.3_raw.mat | 4 | 1.3 | Thorlabs_1_0.0_raw.mat | 4 | 0.0 | Shows the 'THORLABS' writing Thorlabs_1_0.3_raw.mat | 4 | 0.3 | Thorlabs_1_0.6_raw.mat | 4 | 0.6 |

Finally, we acquire images from the STL10 databaset

Filename | Δt (ms) | OD (-)| Comment | |--|--:|--:|--| stl10_01_32ms_cp_raw.mat | 32 | 0.0 | horse displayed on my cell phone (cp) stl10_01_32ms_ps_raw.mat | 32 | 0.0 | horse printed on a paper sheet (ps) stl10_01_64ms_ps_raw.mat | 64 | 0.0 | horse printed on a paper sheet (ps) stl10_08_32ms_ps_raw.mat | 32 | 0.0 | bird printed on a paper sheet (ps)

01-Jul-2020 session <a name="01-Jul-2020-session"></a>

First, we acquired the LED source directly with no sample. Note that the noObjectF1 series and the noObjectF2 series refer to two different positions of the LED lamp.

Filename | Δt (ms) | OD (-)|

View on GitHub
GitHub Stars19
CategoryProduct
Updated1mo ago
Forks4

Languages

MATLAB

Security Score

80/100

Audited on Mar 3, 2026

No findings