{"id":33493998,"url":"https://github.com/deaneeth/behavioral-biometric-authentication","last_synced_at":"2026-06-09T06:02:17.135Z","repository":{"id":325331995,"uuid":"1100767953","full_name":"deaneeth/behavioral-biometric-authentication","owner":"deaneeth","description":"Deep learning-based behavioral biometric authentication system using smartphone accelerometer and gyroscope sensors for gait recognition. Achieves 3.43% EER and 92.68% accuracy through multi-sensor fusion and optimized neural networks. Built with MATLAB.","archived":false,"fork":false,"pushed_at":"2025-11-20T18:33:57.000Z","size":31764,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-20T20:20:04.936Z","etag":null,"topics":["behavioral-biometrics","biometric-authentication","deep-learning","gait-analysis","gait-recognition","machine-learning","matlab","user-authentication"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deaneeth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-20T18:19:52.000Z","updated_at":"2025-11-20T18:34:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deaneeth/behavioral-biometric-authentication","commit_stats":null,"previous_names":["deaneeth/behavioral-biometric-authentication"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/deaneeth/behavioral-biometric-authentication","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deaneeth%2Fbehavioral-biometric-authentication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deaneeth%2Fbehavioral-biometric-authentication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deaneeth%2Fbehavioral-biometric-authentication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deaneeth%2Fbehavioral-biometric-authentication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deaneeth","download_url":"https://codeload.github.com/deaneeth/behavioral-biometric-authentication/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deaneeth%2Fbehavioral-biometric-authentication/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-25T02:00:05.816Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["behavioral-biometrics","biometric-authentication","deep-learning","gait-analysis","gait-recognition","machine-learning","matlab","user-authentication"],"created_at":"2025-11-25T20:06:09.789Z","updated_at":"2026-06-09T06:02:17.128Z","avatar_url":"https://github.com/deaneeth.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚶‍♂️ Acceleration-based User Authentication System\n\n\u003cdiv align=\"center\"\u003e\n\n*Behavioral Biometric Authentication using Gait Analysis*\n\n[![MATLAB](https://img.shields.io/badge/MATLAB-R2021a+-orange.svg)](https://www.mathworks.com/products/matlab.html)\n[![Deep Learning](https://img.shields.io/badge/Deep%20Learning-Neural%20Networks-blue.svg)](https://www.mathworks.com/products/deep-learning.html)\n[![Machine Learning](https://img.shields.io/badge/Machine%20Learning-MLP-blueviolet.svg)]()\n[![Status](https://img.shields.io/badge/Status-Complete-success.svg)]()\n[![EER](https://img.shields.io/badge/Best%20EER-3.43%25-brightgreen.svg)]()\n[![Accuracy](https://img.shields.io/badge/Accuracy-92.68%25-green.svg)]()\n[![Dataset](https://img.shields.io/badge/Users-10-informational.svg)]()\n[![Features](https://img.shields.io/badge/Features-112-yellow.svg)]()\n\n\u003c/div\u003e\n\n---\n\n## 📖 Project Overview\n\nThis project implements a **behavioral biometric authentication system** that identifies and verifies users based on their unique walking patterns (gait). Unlike traditional authentication methods (passwords, fingerprints), this system uses **continuous sensor data** from smartphone accelerometers and gyroscopes to authenticate users passively during normal walking.\n\n\u003e 🎯 **Achievement:** Successfully reduced Equal Error Rate (EER) to **3.43%** with **92.68% accuracy** using multi-sensor fusion and optimized feature selection.\n\n### 🎯 Key Objectives\n\n- 🔐 **User Authentication:** Classify 10 different users with high accuracy\n- 📅 **Cross-Day Robustness:** Ensure models trained on one day work effectively on different days\n- 🌍 **Real-World Feasibility:** Handle varying conditions, walking speeds, and temporal variations\n- ⚡ **Optimization:** Achieve minimal Equal Error Rate (EER) through systematic optimization\n\n### 🌟 Key Features\n\n✅ **Multi-Sensor Fusion:** Combines accelerometer and gyroscope data  \n✅ **Rich Feature Extraction:** 112 time and frequency domain features  \n✅ **Deep Learning Classification:** Multi-Layer Perceptron (MLP) with optimized architecture  \n✅ **Gait-Specific Analysis:** Filters walking segments from non-walking activities  \n✅ **Cross-Day Validation:** Rigorous testing across different days  \n✅ **Systematic Optimization:** Feature selection, architecture tuning, and data augmentation\n\n---\n\n### 📊 Dataset Information\n\n### 📥 Data Collection\n- 👥 **Users:** 10 participants\n- 📆 **Days:** 2 collection sessions per user\n- 📱 **Sensors:** 6-axis IMU (3-axis accelerometer + 3-axis gyroscope)\n- 📲 **Device:** Smartphone (waist-mounted)\n- ⚙️ **Sampling Rate:** Variable (resampled to 30 Hz)\n- 🚶 **Activity:** Natural walking patterns\n\n### 📈 Data Statistics\n- 📄 **Total Files:** 20 CSV files (10 users × 2 days)\n- 📊 **Segments per User/Day:** ~71 segments (5-second windows)\n- 🎯 **Total Training Samples:** ~1,420 segments\n- 🔢 **Features per Segment:** 112 (combined variant)\n\n---\n\n## 📂 Project Structure\n\n```text\nproject_root/\n├── 📁 data_raw/                  # Raw CSV sensor data (10 Users × 2 Days)\n│   ├── U1NW_FD.csv              # User 1, Full Day\n│   ├── U1NW_MD.csv              # User 1, Morning Data\n│   └── ...\n├── 📁 data_segmented/            # Segmented .mat files (5s windows, 0% overlap)\n│   └── User{X}_Day{Y}_segments.mat\n├── 📁 data_segmented_50overlap/  # Segmented .mat files (5s windows, 50% overlap)\n├── 📁 features/                  # Extracted features organized by sensor type\n│   ├── accel/                   # Accelerometer features only (45 features)\n│   ├── gyro/                    # Gyroscope features only (45 features)\n│   └── combined/                # Multi-modal features (112 features)\n├── 📁 templates/                 # Pre-processed, balanced datasets for training\n│   ├── accel/AllTemplates_accel.mat\n│   ├── gyro/AllTemplates_gyro.mat\n│   └── combined/\n│       ├── AllTemplates_combined.mat\n│       └── AllTemplates_combined_gait.mat  # Gait-filtered data\n├── 📁 models/                    # Trained Neural Network models\n│   └── combined/baseline_mlp.mat\n├── 📁 results/                   # Evaluation metrics and analysis\n│   ├── combined/                # Scenario-wise metrics (CSV)\n│   ├── optimization/            # Optimization experiment results\n│   ├── plots/                   # Generated visualizations (PNG)\n│   └── variants_comparison.csv  # Cross-variant performance\n├── 📁 scripts/                   # MATLAB Source Code\n│   ├── Script1_FeatureExtraction.m       # Stage 1-4: Preprocessing \u0026 Features\n│   ├── Script2_TemplateGeneration.m      # Stage 5: Template Generation\n│   ├── Script3_ClassificationEvaluation.m # Stage 6-9: Training \u0026 Evaluation\n│   └── Plots.m                           # Visualization generation\n└── 📄 PROJECT_STRUCTURE.md       # Detailed structure documentation\n```\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n*   **MATLAB** (R2021a or later recommended)\n*   **Deep Learning Toolbox** (for `patternnet`, `train`)\n*   **Signal Processing Toolbox** (for `pwelch`, `bandpower`)\n*   **Statistics and Machine Learning Toolbox** (for `cvpartition`, `fitcecoc`)\n\n### ⚙️ Execution Workflow\n\nRun the scripts in the following order to reproduce the full pipeline:\n\n#### 1️⃣ Feature Extraction\n**Script:** `scripts/Script1_FeatureExtraction.m`\n*   **Input:** `data_raw/*.csv`\n*   **Process:**\n    *   Loads raw sensor data.\n    *   Resamples signals to a fixed **30 Hz**.\n    *   Segments data into **5-second windows** (150 samples).\n    *   Extracts **Time-Domain Features** (Mean, Std, RMS, Skewness, Kurtosis, etc.).\n    *   Extracts **Frequency-Domain Features** (Bandpower, Energy, Spectral Entropy, etc.).\n*   **Output:** `data_segmented/`, `features/`\n\n#### 2️⃣ Template Generation\n**Script:** `scripts/Script2_TemplateGeneration.m`\n*   **Input:** `features/`\n*   **Process:**\n    *   Aggregates features from all users.\n    *   Performs **Gait Filtering** (removes non-walking segments based on spectral energy).\n    *   Checks for class imbalance and applies downsampling if necessary.\n    *   Generates unified datasets for Accel, Gyro, and Combined variants.\n*   **Output:** `templates/`\n\n#### 3️⃣ Classification \u0026 Evaluation\n**Script:** `scripts/Script3_ClassificationEvaluation.m`\n*   **Input:** `templates/`\n*   **Process:**\n    *   **Training:** Trains a Multi-Class MLP (Feed-Forward Network).\n    *   **Evaluation:** Calculates FAR, FRR, EER, and Accuracy for 3 scenarios.\n    *   **Optimization:** Experiments with feature selection (Fisher Score), network architecture, and split ratios.\n    *   **Comparison:** Compares Accel-only vs. Gyro-only vs. Combined performance.\n*   **Output:** `models/`, `results/`\n\n---\n\n## 🧠 Methodology\n\n### 1. Preprocessing\n*   **Resampling:** Linear interpolation to 30 Hz to handle irregular sensor sampling.\n*   **Segmentation:** Fixed-width sliding windows (5 seconds).\n*   **Overlap:** Supports 0% (baseline) and 50% (optimized) overlap.\n\n### 2. Feature Engineering\nThe system extracts **70+ features** per segment to capture unique gait characteristics:\n\n| Domain | Features Extracted |\n| :--- | :--- |\n| **Time Domain** | Mean, Std Dev, Min, Max, RMS, Variance, Range, 75th Percentile, Skewness, Kurtosis, IQR, Vector Magnitude stats. |\n| **Frequency Domain** | Bandpower (0.5-3Hz), Total Energy, Dominant Frequency, Spectral Centroid, Spectral Entropy, High-band Power (3-10Hz), Dominant Amplitude. |\n\n### 3. Machine Learning Model\n*   **Classifier:** Pattern Recognition Network (`patternnet`)\n*   **Architecture:** Multi-Layer Perceptron (MLP)\n    *   **Input Layer:** ~112 features (Combined variant)\n    *   **Hidden Layers:** [128, 64] neurons (Baseline)\n    *   **Output Layer:** 10 neurons (Softmax for 10 users)\n*   **Training Algo:** Scaled Conjugate Gradient (`trainscg`)\n\n---\n\n## 🔬 Experimental Results \u0026 Analysis\n\n### 1. Variant Comparison (Cross-Day Scenario)\nThe system was tested on the challenging **Cross-Day** scenario (Train on Day 1, Test on Day 2) to evaluate real-world robustness.\n\n| Variant | EER (%) | Accuracy (%) | FAR | FRR |\n| :--- | :--- | :--- | :--- | :--- |\n| **Combined (Accel+Gyro)** | **4.45%** | **88.45%** | 0.0136 | 0.1204 |\n| **Accelerometer Only** | 8.85% | 79.72% | 0.0227 | 0.2030 |\n| **Gyroscope Only** | 19.49% | 60.85% | 0.0442 | 0.3961 |\n\n\u003e **Observation:** The **Combined** variant significantly outperforms single-sensor approaches, reducing the Equal Error Rate (EER) by nearly half compared to Accelerometer-only.\n\n### 2. Optimization Experiments\nSeveral optimization levers were tested to improve performance beyond the baseline.\n\n#### Feature Selection (Rank-Average Fisher Score)\nReducing the feature set to the most discriminative features improved generalization.\n\n| Features Kept | EER (%) | Accuracy (%) |\n| :--- | :--- | :--- |\n| Top-30 | 4.47% | 84.93% |\n| Top-52 | 3.90% | 90.42% |\n| **Top-65 (Best)** | **3.43%** | **92.68%** |\n| All (112) | 4.45% | 88.45% |\n\n#### Network Architecture\nSimpler architectures proved robust, but the baseline [128, 64] remained competitive.\n*   **[128] (Single Layer):** EER 4.20%, Acc 89.72%\n*   **[128, 64] (Baseline):** EER 3.90%, Acc 88.03%\n\n---\n\n## 🏆 Final Evaluation\n\nThe final optimized system utilizes the **Combined sensor data** with **Top-65 ranked features** and a **[128, 64] MLP architecture**.\n\n### Final Performance Metrics (Cross-Day)\n*   **Equal Error Rate (EER):** `3.43%`\n*   **Classification Accuracy:** `92.68%`\n*   **False Acceptance Rate (FAR):** `0.0093`\n*   **False Rejection Rate (FRR):** `0.0817`\n\nThis performance demonstrates that the system is highly effective at authenticating users even on different days, validating the stability of the extracted gait features.\n\n---\n\n## 📊 Evaluation Scenarios\n\nThe system is evaluated under three distinct scenarios to test robustness:\n\n| Scenario | Description | Purpose |\n| :--- | :--- | :--- |\n| **Scenario 1: Same-Day** | Train on 70% of Day 1, Test on 30% of Day 1. | Baseline performance check. |\n| **Scenario 2: Cross-Day** | **Train on Day 1, Test on Day 2.** | **Real-world simulation.** Tests temporal stability of gait. |\n| **Scenario 3: Combined** | Train/Test on mixed data from both days. | Tests overall data variance handling. |\n\n### Key Metrics\n*   **FAR (False Acceptance Rate):** Likelihood of an impostor being accepted.\n*   **FRR (False Rejection Rate):** Likelihood of a genuine user being rejected.\n*   **EER (Equal Error Rate):** The point where FAR = FRR (Lower is better).\n*   **Accuracy:** Overall correct classification percentage.\n\n---\n\n## 📈 Results Summary\n\n*   **Best Variant:** Combined (Accelerometer + Gyroscope) yielded the lowest baseline EER of **4.45%**.\n*   **Optimization Success:** Feature selection (Top-65) further reduced EER to **3.43%**.\n*   **Robustness:** The system maintained **\u003e92% accuracy** even when tested on data from a different day (Cross-Day scenario).\n\n---\n\n## 📊 Visualizations Gallery\n\nThe project generates 8 comprehensive visualizations to document system performance. All plots are saved in `results/plots/` directory.\n\n| Plot | Description | Preview |\n|------|-------------|---------|\n| **1. EER Curve (Cross-Day)** | FAR and FRR curves vs. threshold with EER point marked. Shows the trade-off between false acceptance and false rejection rates. | ![EER Curve](results/plots/EER_Curve_CrossDay.png) |\n| **2. Overlap Comparison** | Cross-Day EER comparison between 0% and 50% window overlap. Demonstrates impact of data augmentation. | ![Overlap Comparison](results/plots/CrossDay_EER_0vs50.png) |\n| **3. Variant Comparison** | Performance comparison across Accel-only, Gyro-only, and Combined variants. | ![Variant Comparison](results/plots/Variant_Comparison.png) |\n| **4. Feature Selection** | EER vs. number of features used. Shows optimal feature count (Top-65) for best performance. | ![Feature Selection](results/plots/Feature_Count_vs_EER.png) |\n| **5. Architecture Analysis** | Comparison of different MLP architectures ([64], [128], [128,64], etc.) on Cross-Day scenario. | ![Architecture](results/plots/MLP_Architecture_Comparison.png) |\n| **6. Scenario Comparison** | EER across Same-Day, Cross-Day, and Combined evaluation scenarios. | ![Scenarios](results/plots/Scenario_Comparison.png) |\n| **7. Sample Acceleration Window** | Raw accelerometer signal (X, Y, Z axes) from a 5-second walking segment. | ![Sample Window](results/plots/SampleWindow_Accel.png) |\n| **8. Gait Filtering Impact** | EER comparison between all data vs. gait-filtered data in Cross-Day scenario. | ![Gait vs Non-Gait](results/plots/Gait_vs_NonGait_EER.png) |\n\n### Key Findings from Visualizations\n\n📊 **Plot 1 (EER Curve):** Optimal threshold is ~0.45, achieving EER of 4.45%  \n📊 **Plot 2 (Overlap):** 50% overlap reduces EER compared to 0% overlap  \n📊 **Plot 3 (Variants):** Combined sensors reduce EER by 50% vs. accelerometer-only  \n📊 **Plot 4 (Features):** Top-65 features achieve lowest EER (3.43%), better than using all 112  \n📊 **Plot 5 (Architecture):** Single hidden layer [128] performs comparably to [128,64]  \n📊 **Plot 6 (Scenarios):** Cross-Day is hardest (EER 4.45%), Same-Day easiest (EER 3.05%)  \n📊 **Plot 7 (Raw Signal):** Shows typical gait periodicity in acceleration patterns  \n📊 **Plot 8 (Gait Filtering):** Gait-only segments improve authentication accuracy  \n\n---\n\n## 🚀 How to Run\n\n### Quick Start\n\n1. **Clone/Download** the project\n2. **Open MATLAB** and navigate to project root\n3. **Run scripts in order:**\n\n```matlab\n% Step 1: Feature Extraction (takes ~5-10 minutes)\ncd scripts\nrun('Script1_FeatureExtraction.m')\n\n% Step 2: Template Generation (takes ~1 minute)\nrun('Script2_TemplateGeneration.m')\n\n% Step 3: Classification \u0026 Evaluation (takes ~10-15 minutes)\nrun('Script3_ClassificationEvaluation.m')\n\n% Step 4: Generate Visualizations (takes ~1 minute)\nrun('Plots.m')\n```\n\n### Expected Output\n\n✅ `data_segmented/` - 20 .mat files (segmented data)  \n✅ `features/` - 60 .mat files (time + freq features for 3 variants)  \n✅ `templates/` - 4 .mat files (training-ready datasets)  \n✅ `models/` - 1 .mat file (trained baseline MLP)  \n✅ `results/` - 10+ CSV files + 8 PNG plots  \n\n---\n\n## 📚 Key Insights \u0026 Lessons Learned\n\n### ✅ What Worked Well\n\n1. **Multi-Modal Fusion:** Combining accelerometer and gyroscope reduced EER by 50%\n2. **Feature Selection:** Less is more - 65 features outperformed 112 features\n3. **Gait Filtering:** Removing non-walking segments improved cross-day robustness\n4. **Simple Architecture:** [128, 64] MLP proved sufficient (no need for deep networks)\n5. **Proper Evaluation:** Cross-day testing revealed true real-world performance\n\n### ⚠️ Challenges Encountered\n\n1. **Irregular Sampling:** Raw sensor data required careful resampling\n2. **Class Imbalance:** Minor variations required downsampling\n3. **Temporal Drift:** Cross-day performance naturally lower than same-day\n4. **Feature Redundancy:** Many extracted features were highly correlated\n5. **Overfitting Risk:** Larger networks performed worse due to limited training data\n\n### 🔮 Future Improvements\n\n- [ ] **More Users:** Expand dataset to 20-50 users for better generalization\n- [ ] **Longer Duration:** Collect data over 1-2 weeks to test long-term stability\n- [ ] **Real-Time Processing:** Implement sliding window inference\n- [ ] **Mobile Deployment:** Port model to TensorFlow Lite for smartphone apps\n- [ ] **Additional Activities:** Test robustness with running, stairs, sitting\n- [ ] **Transfer Learning:** Pre-train on large public gait datasets\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Whether you're fixing bugs, adding features, improving documentation, or suggesting enhancements, your help is appreciated.\n\n### How to Contribute\n\n- 🐛 **Report Bugs:** Open an issue with detailed information\n- ✨ **Suggest Features:** Share your ideas for improvements\n- 💻 **Submit Code:** Fork, create a branch, and submit a pull request\n- 📖 **Improve Docs:** Help make documentation clearer and more comprehensive\n\nPlease read our **[CONTRIBUTING.md](CONTRIBUTING.md)** for detailed guidelines on:\n- Code style and standards\n- Development workflow\n- Testing requirements\n- Pull request process\n- Community guidelines\n\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-orange.svg)](CONTRIBUTING.md)\n\n---\n\n## 📄 License \u0026 Usage\n\nThis is a research project. Feel free to use the code and methodology for educational purposes.\n\n---\n\n## 🛠️ Author\n\n**Project Developer**  \n*Date:* November 2025\n\n## 📞 Contact \u0026 Acknowledgments\n\nFor questions about the methodology or implementation details, please refer to the comprehensive code comments in the MATLAB scripts.\n\n**Note:** This project demonstrates the feasibility of behavioral biometric authentication using smartphone sensors and achieves state-of-the-art performance (EER \u003c 5%) suitable for practical deployment.\n\n*For detailed performance graphs and visual analysis, check the `results/plots/` directory.*\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### 🌟 Star History\n\n*If you found this project helpful, please consider giving it a star! ⭐*\n\n---\n\n**Made with ❤️ and MATLAB**\n\n*Transforming Walking Patterns into Secure Authentication* 🚶‍♂️🔐\n\n---\n\n\u003csub\u003e© 2025 • Acceleration-based User Authentication System • Behavioral Biometrics Research\u003c/sub\u003e\n\n\u003csub\u003e[![GitHub](https://img.shields.io/badge/GitHub-View_Code-181717?style=flat\u0026logo=github)](.) [![MATLAB](https://img.shields.io/badge/MATLAB-Documentation-orange?style=flat\u0026logo=mathworks)](https://www.mathworks.com)\u003c/sub\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeaneeth%2Fbehavioral-biometric-authentication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeaneeth%2Fbehavioral-biometric-authentication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeaneeth%2Fbehavioral-biometric-authentication/lists"}