Coder Social home page Coder Social logo

oxygen's Introduction

Oximetry-phone-cam-data

Purpose

Open source data for smartphone camera oximetry, sensing SpO2 and hypoxemia risk on a clinically relevant spread of data

This repository contains the open source data from the smartphone camera oximetry study by Hoffman et al in 2022. It can be used to attempt to infer blood oxygen saturation (SpO2) and classify risk of hypoxemia using videos gathered via a smartphone camera using machine learning or analytical methods. The data is the first gathered using a smartphone camera on a clinically relevant spread of SpO2 levels (70%-100%).

The data was gathered by researchers at the University of Washington and the University of California, San Diego, and is provided free and open source for the community to use for future projects. More information can be found in the publication

Getting Started

Clone the repo and run examples/visualization.ipynb to get started!

More example code can be found in the examples directory using the preprocessed data. If you want to use the raw video data, please see the "Data Format" section below for info on how to download it.

Needed packages:

  • pytorch
  • sklearn
  • scipy
  • pandas
  • matplotlib
  • jupyter

Data Format

There were 6 subjectss in this study (numbered 10001-10006).

The smartphone oximetry data was collected in the form of MP4 videos, downloadable from: http://bit.ly/oxy-raw-z. Each frame's R, G, and B values were averaged to create the csv files in data/ppg-csv.

The ground truth data was collected from four standard pulse oximeters attached to the subjects' other fingers. That data can be found in data/gt.

Data Format Notes

  • Camera framerate = 30 Hz
  • Ground truth pulse oximeters framerate = 1 Hz
  • Recording was started and stopped on the camera and the pulse oximeters at the same time

Background

We performed a Varied Fractional Inspired Oxygen (Varied FiO2) study, which is a clinical development validation study in which test subjects are administered a controlled mixture of oxygen and nitrogen to lower their SpO2 level over a period of 12-16 minutes. The patients had one finger from each hand on a phone camera, while the camera flash transmitted light through their fingertips for reflectance photoplethysmography at the Red, Green, and Blue wavelengths.

Ideas

Go ahead and try different models:

  • Analytical (eg. ratio-of-ratios)
  • Deep Learning
  • Linear Regression
  • Or, think of your own!

Ground Truth Labels

A metadata file can be found in data/gt/metadata.csv, which describes the fields listed in the metadata files. A table is also included below:

Label Description
SpO2 1 SpO2 reading from PPG of pulse ox 1 (3900P TT+ 9.000/11.000) (%)
SpO2 2 SpO2 reading from PPG of pulse ox 2 (Nellcor N-600X V 1.6.0.0) (%)
SpO2 3 Unfilled signal from pulse ox 3 (Safety Oxim 3 ECG Datex-Ohmeda S5)
SpO2 4 SpO2 reading from PPG of pulse ox 4 (Nellcor N-600X V 1.6.0.0) (%)
SpO2 5 SpO2 reading from PPG of pulse ox 5 (Masimo Radical 7 Rainbow II) (%)
Pulse 1 Heart rate from PPG of pulse ox 1 (3900P TT+ 9.000/11.000) (bpm)
Pulse 2 Heart rate from PPG of pulse ox 2 (Nellcor N-600X V 1.6.0.0) (bpm)
Pulse 3 Unfilled signal from pulse ox 3 (Safety Oxim 3 ECG Datex-Ohmeda S5)
Pulse 4 Heart rate from PPG of pulse ox 4 (Nellcor N-600X V 1.6.0.0) (bpm)
Pulse 5 Heart rate from PPG of pulse ox 5 (Masimo Radical 7 Rainbow II) (bpm)
PI 1 Perfusion Index from PPG of pulse ox 1 (3900P TT+ 9.000/11.000)
PI 2 Perfusion Index from PPG of pulse ox 2 (Nellcor N-600X V 1.6.0.0)
PI 3 Unfilled signal from pulse ox 3 (Safety Oxim 3 ECG Datex-Ohmeda S5)
PI 4 Perfusion Index from PPG of pulse ox 4 (Nellcor N-600X V 1.6.0.0)
PI 5 Perfusion Index from PPG of pulse ox 5 (Masimo Radical 7 Rainbow II)
ECG 3 Heart rate from ECG of pulse ox 3 (Safety Oxim 3 ECG Datex-Ohmeda S5)
Rig FiO2 Percentage of oxygen delivered to subjec in gas mixture (%)

Citation

If you use this data or code in your project, please cite it. Here's the ACM format:

  • [Add citation later when it's ready.]

License

This data is provided open-source via the MIT license. For more details, see the LICENSE file. We want you to use it for whatever creative projects you can come up with!

oxygen's People

Contributors

jasonhof avatar sherryxzhao avatar edwardwq301 avatar caiwet avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.