DOI: 10.5281/zenodo.15581485
title: Artifacts for USENIX 2025 Paper – NeckPass

description: The files in this repository are for the USENIX 2025 paper:NeckPass: Passive Authentication by Neck Cardiac Ballistocardiogram Biometrics in Virtual Reality/Augmented Reality Systems

We provide the following three compressed data packages:1. ExperimentalResults: This package contains the data sources for all scenarios presented in the paper. It includes processed data and trained models. For each scenario, simply python run.pyto obtain the data results shown in the paper.1. SourceCode: This package provides the source code for the technical approach mentioned in the paper. It includes data processing methods and model-building code. By replacing the dataset with the corresponding scenario dataset mentioned in the paper and running python run.py, you can achieve the data processing results presented in the paper.1. Datasets: This package includes the datasets for each scenario in the paper (in Mel-cepstral form, facilitating user privacy and a quick start), which can be used for training models and validating experimental results.

Detailed Explanation of the First Data Package: ExperimentalResults. The directory structure is as follows:



requirements.txtResult.xlsx

lib├── ast_model.py├── dataset.json├── lib_siam.py└── tpr.json8.2_OverallPerformance├── dataset.py├── Dataset_NeckPass├── Model_Am└── run.py8.3.1_ImpactsofSingle-sideController├── dataset.py├── Dataset_NeckPass└── run.py8.3.2_ImpactsofIntensePhysicalActivity├── dataset.py├── Dataset_NeckPass└── run.py8.3.3_ImpactsofDynamicBehavior├── dataset.py├── Dataset_NeckPass└── run.py8.3.4_ImpactsofBiometricLong-termVariability├── dataset.py├── Dataset_NeckPass└── run.py8.3.5_ImpactsofVRDevices├── dataset.py├── Dataset_NeckPass├── Model_Am└── run.py8.3.6_ImpactsofGenetics├── dataset.py├── Dataset_NeckPass├── Model_Am└── run.py8.3.7_ImpactsofVotingMechanism├── dataset.py├── Dataset_NeckPass└── run.py8.3.8_EvaluationofComputationalDelay├── Authentication│   ├── dataset.py│   ├── Dataset_NeckPass│   └── run.py├── SignalRefinementAndConversion│   ├── dataset.py│   ├── Dataset_NeckPass│   ├── LibCode.py│   ├── Preprocessing.py│   ├── run.py│   ├── SampleConversion.py│   └── SignalRefinement.py└── VRapp    ├── dataset.py    └── neckpass.apk9.2_ImpersonationAttack├── dataset.py├── Dataset_NeckPass└── run.py9.3_ReplayAttack├── dataset.py├── Dataset_NeckPass└── run.py9.4_SpoofingAttack├── dataset.py├── run_device.py└── run_location.py


Step 1. In the first-level directory, the requirements.txt file lists all the libraries required for this folder. To install the dependencies, execute the following command (My Python version 3.9.11):

pip install -r requirements.txt 

Step 2. The Result.xlsx file provides the data presented in each scenario of the paper, serving as a reference outline for readers. 

Step 3. The lib folder contains implementations of library functions. The remaining folders correspond to the scenario resource files, named to align with the sections in the paper for easy reference. 

Step 4. For each scenario (paper section), the folder contains: Dataset_NeckPass(the original dataset), Model_Am(trained authentication models), dataset.py and run.py. If Dataset_NeckPass or Model_Am is empty, run dataset.py to download from the cloud. Otherwise, you don't need to run it. This is a plan B in case it fails. The corresponding commands are as follows:

python dataset.py

Step 5. For each scenario, you can obtain the results using run.py. This is all you need to do. Simply navigate to the directory where run.py is located and execute it to get the results locally, which will be consistent with those provided in Result.xlsx and the paper. The corresponding commands are as follows:

python run.py

If you encounter any difficulties, please don't hesitate to reach out for assistance. Thank you sincerely for your interest, time and patience.