IP Library Granted Patent US 11,389,119
Granted Patent B2
US 11,389,119 · App. 16/828,479 · Granted Jul 19, 2022

Generating a breathing alert

Inventors: Jacob Gunther (North Logan, UT); Nathan E. Ruben (Smithfield, UT)
Assignee: Photorithm, Inc.
A61B5/743A61B5/0816A61B5/107A61B5/4815A61B5/4818A61B5/7264A61B5/741A61B5/746A61B5/747G06T7/0012G06T7/13G06T7/143G06T7/194G06T7/44G06T2207/10016G06T2207/20076G06T2207/30088
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,389,119
App. No.
16/828,479
Granted
Jul 19, 2022
Kind
B2
Abstract

For generating a breathing alert is disclosed, a method receives a video stream of a subject. The method further estimates a breathing signal from the video stream. The method determines one of a large-scale motion and/or a breathing event of the subject based on the breathing signal. The method generates an alert if both no breathing event is identified and no large-scale motion of the subject is identified within an event time interval.

Claims (83)

1. A method comprising:

receiving, by a processing apparatus, a video stream of a subject;

estimating, by the processing apparatus, a breathing signal from the video stream by:

filtering, by the processing apparatus, non-moving objects from each image frame to yield a removed image;

decomposing, by the processing apparatus, each removed image into a plurality of frame regions, wherein a first frame region covers a feature of the subject;

calculating, by the processing apparatus, a pixel weight for each pixel of each frame region, wherein each pixel weight is one of a positive weight or a negative scalar;

coherently combining, by the processing apparatus, the pixel weights for each frame region as a scalar time signal for each frame region;

calculating, by the processing apparatus, a low order subspace decomposition of the scalar time signal; and

estimating, by the processing apparatus, a decomposition frequency of the low order subspace decomposition for each frame region as the breathing signal;

determining, by the processing apparatus, one of a large-scale motion and/or a breathing event of the subject based on the breathing signal; and

generating, by the processing apparatus, an alert if both no breathing event is identified and no large-scale motion of the subject is identified within an event time interval.

2. The method of claim 1 , wherein the breathing signal is estimated using a logistic regression classifier, and the logistic regression classifier is trained on video streams of a plurality of subjects.

3. The method of claim 2 , wherein the logistic regression classifier receives a feature vector comprising a D energy signal from the low order subspace decomposition, an average of D[1] and D[2] energy signals from the low order subspace decomposition, an average of D[3] and D[4] energy signals from the low order subspace decomposition, a square root of a sum of the squares of Y[1] and Y[2] output signals from the low order subspace decomposition, and/or a square root of a sum of the squares of Y[3] and Y[4] output signals from the low order subspace decomposition and generates an output probability of the large-scale motion, the breathing event, and/or no motion.

4. The method of claim wherein filtering the non-moving objects comprises:

calculating a low rank matrix L representing non-moving objects;

calculating a sparse matrix S representing moving objects by removing the low rank matrix L from the video stream.

5. The method of claim 4 , wherein the low rank matrix L is calculated as a matrix of joint probability estimations.

6. The method of claim wherein the pixel weights are coherently combined using subspace tracking.

7. The method of claim 1 wherein the pixel weights are coherently combined using beamforming.

8. The method of claim 1 , the method further comprising:

training, by the processing apparatus, a breathing model on training video streams of a plurality of subjects;

estimating, by the processing apparatus, the breathing signal from the video stream using the breathing model; and

determining, by the processing apparatus, the large-scale motion from the video stream using the breathing model.

9. The method of claim 1 , the method further comprising:

maximizing, by the processing apparatus, a gray scale range of a first image frame using a contrast correction and a gamma correction;

generating, by the processing apparatus, a binary mask for the video stream by applying an edge detector to the first image frame;

trimming, by the processing apparatus, the binary mask to accept a maximum number of values;

applying, by the processing apparatus, the binary mask to subsequent image frames.

10. The method of claim 1 , the method further comprising filtering a face of the subject from the video stream by:

mapping, by the processing apparatus, a color value to a probability transform that the color value corresponds to skin of the subject;

generating, by the processing apparatus, a skin mask by applying the probability transforms during an initialization period;

filtering, by the processing apparatus, the video stream with the probability transforms during the initialization period;

generating, by the processing apparatus, a skin histogram from the filtered video stream during the initialization period; and

filtering, by the processing apparatus, for a color value based on the skin histogram.

11. The method of claim 1 , the method further comprising filtering out a background signal from the video stream with a background signal filter, wherein the background signal filter is calculated by:

calculating, by the processing apparatus, a kernel matrix from sampled points of the video stream with a variable variance;

tightening, by the processing apparatus, the variable variance of the kernel matrix in response to detecting motion; and

determining, by the processing apparatus, a mean vector generated by the kernel matrix is the background signal.

12. The method of claim 1 , the method further comprising presenting, by the processing apparatus, the video stream, a breathing report, and/or an audio stream, wherein the breathing report comprises a numerical representation, a heat map, a graph, and/or a streaming sinusoidal graph of a breath rate, a maximum inter- breath interval, a minimum inter-breath interval, inter-breath interval statistics, an inter-breath interval histogram, motion frequency, motion magnitude, motion duration, sleep length, sleep quality, sleep intervals, a sleep position, a sleep status, and/or apnea event data.

13. The method of claim 1 , the method further comprising:

training, by a processing apparatus, a crying model on a plurality of subjects crying;

receiving, by the processing apparatus, an audio stream; and

identifying, by the processing apparatus, the subject crying from the audio stream using the crying model.

14. The method of claim 1 , the method further comprising:

training, by a processing apparatus, a smiling model on a plurality of subjects smiling; and

identifying, by the processing apparatus, the subject smiling using the smiling model.

15. The method of claim 1 , the method further comprising:

measuring, by a processing apparatus, ambient light; and

in response to the ambient light being less than a light threshold, activating, by the processing apparatus, an infrared light, wherein a video stream captures the subject in infrared.

16. The method of claim 1 , the method further comprising:

detecting, by a processing apparatus, a sleep position and/or a sleep status of the subject, wherein the sleep position comprises thrashing, a stomach orientation, a back orientation, and/or a side orientation and the sleep status comprises asleep and awake;

communicating, by the processing apparatus, a notification in response to a specified sleep position, a specified sleep status, a change of the sleep position, and/or a change of sleep status.

17. The method of claim 1 , the method further comprising:

detecting, by the processing apparatus, a face;

scaling, by the processing apparatus, a face region comprising the face to a specified pixel size;

calculating, by the processing apparatus, a skin histogram on a color space of face region;

selecting, by the processing apparatus, vectors of pixels based on the skin histogram;

iteratively generating, by the processing apparatus, a skin mask from the vectors; and

iteratively tracking, by the processing apparatus, the face.

18. An apparatus comprising:

a processing apparatus;

a memory storing code executable by the processing apparatus to perform:

receiving a video stream of a subject;

estimating a breathing signal from the video stream by,

filtering non-moving objects from each image frame to yield a removed image;

decomposing each removed image into a plurality of frame regions, wherein a first frame region covers a feature of the subject;

calculating a pixel weight for each pixel of each frame region, wherein each pixel weight is one of a positive weight or a negative scalar;

coherently combining the pixel weights for each frame region as a scalar time signal for each frame region;

calculating a low order subspace decomposition of the scalar time signal; and

estimating a decomposition frequency of the low order subspace decomposition for each frame region as the breathing signal;

determining one of a large-scale motion and/or a breathing event of the subject based on the breathing signal; and

generating an alert if both no breathing event is identified and no large-scale motion of the subject is identified within an event time interval.

19. A program product comprising a non-transitory computer readable storage medium that stores code executable by a processor to perform:

receiving a video stream of a subject;

estimating a breathing signal from the video stream by;

filtering non-moving objects from each image frame to yield a removed image;

decomposing each removed image into a plurality of frame regions, wherein a first frame region covers a feature of the subject;

calculating a pixel weight for each pixel of each frame region, wherein each pixel weight is one of a positive weight or a negative scalar;

coherently combining the pixel weights for each frame region as a scalar time signal for each frame region;

calculating a low order subspace decomposition of the scalar time signal, and

estimating a decomposition frequency of the low order subspace decomposition for each frame region as the breathing signal;

determining one of a large-scale motion and/or a breathing event of the subject based on the breathing signal; and

generating an alert if both no breathing event is identified and no large-scale motion of the subject is identified within an event time interval.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2026
From: PHOTORITHM, INC.
To: NANOBEBE LTD
Reel/Frame 074694/0647 →
SECURITY INTEREST Recorded May 22, 2023
From: PHOTORITHM INC.
To: ARBEL FUND 2, LIMITED PARTNERSHIP; ARBEL FUND 2B, LIMITED PARTNERSHIP
Reel/Frame 063722/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2020
From: GUNTHER, JACOB; RUBEN, NATHAN E
To: PHOTORITHM, INC.
Reel/Frame 052213/0715 →
Continuity (3)
Continuation In Part 15697220 · Sep 6, 2017
Provisional Application 62383769 · Sep 6, 2016
Related Publication 20200229775A1 · Jul 23, 2020