Die Herzfrequenz von einem einfachen Video abrufen: Code innen

8

Ich versuche eine Herzfrequenz aus einem Video meiner Haut zu finden. Um dies zu tun, nehme ich ein beschnittenes Rechteck von Pixeln von meinem Videoframe und mittle die rote (oder grüne) Komponente in all diesen Pixeln (dann natürlich, wenn man sieht, wie sich dieser Durchschnitt von Frame zu Frame ändert).

Ich nehme eine schnelle Fourier-Transformation des Vektors (der durchschnittliche Farbwert jedes abgeschnittenen Ausschnitts), um zu sehen, welche Frequenzen am auffälligsten sind. Ich hoffe, die ruhende menschliche Herzfrequenz, ~ 1 Hz, als sehr prominent zu sehen.

Als Test habe ich ein Video von nur einer Wand oder anderen Objekten genommen, die keine periodische Farbänderung haben sollten. Ich benutzte ein Stativ und drei verschiedene Kameras verschiedener Marken. Jeder von ihnen hat ähnliche, wenn nicht sogar identische Hintergrundfrequenzspitzen, insbesondere bei 1 Hz, 2 Hz, 5 Hz und 10 Hz. Ich habe unter natürlichem Licht und fluoreszierend geschossen und es tritt immer noch auf.

Mein oberstes Ziel ist es, mit dieser Analyse lebende Haut von nicht vaskularisierter Haut zu unterscheiden. Also verstehe ich, warum ich diese Frequenzspitzen für unbelebte Objekte bekomme, VITAL.

Könnte jemand von euch diesen Code auf Ihren eigenen Videos ausführen und erklären, ob ich einfach ein Idiot bin?

Kameraaufnahmen:

Kodak Spieleportage

1920x1080 30fps (60i) importiert als mp4

Canon Vixia HF200 1440x1080 30fps (60i) 12mbps Bitrate Importe als .mts, die ich zu mp4 reencode

Code basiert auf:

Ссылка

%Vor%     
user3734804 12.06.2014, 17:18
quelle

1 Antwort

1

Ihr Ziel ist es, "eine Herzfrequenz aus einem Video meiner Haut zu finden" und "... mit dieser Analyse lebende Haut von nicht vaskularisierter Haut zu unterscheiden", aber Ihr Ansatz lautet: "Video aufnehmen ... crop ... durchschnittliche rote (oder grüne) Komponente .. schau, wie es sich ändert ".

Ich denke, es gibt ein Problem mit der Prämisse. Average bedeutet, dass das Mehrheitssignal dominiert. Die menschliche Sicht ist ein (erstaunlicher) Prozessor visueller Daten, und normalerweise braucht es jahrzehntelange harte Arbeit, um eine Maschine in die Lage zu versetzen, auch nur in eine kleine Größenordnung zu kommen. Wenn Sie nicht 90% der Menschen um Sie herum mit Ihren Augen sehen und ihre Herzfrequenz messen können, dann ist ein Mittelungs-Ansatz möglicherweise nicht der richtige Weg.

Es gibt eine unendliche Anzahl von Statistiken, die Sie verwenden können, um zu sehen, wie sich eine Verteilung im Laufe der Zeit ändert, und meine Bedeutung ist nur eine davon. Wenn Sie nur auf den Mittelwert schauen, vermissen Sie möglicherweise die Information.

Wie würde ich das tun:

  1. Ich würde bei Frame-zu-Frame-Unterschieden arbeiten.
  2. Die meisten Video-Codecs haben einen ungleichmäßigen Zeitabstand. Ich würde diese Werte bekommen, so dass ich Änderungen über die tatsächliche (nicht angenommene) Zeit verfolgen könnte. Ihre aktuellen (vermutlich falschen) Signale könnten sowohl vom CODEC als auch von der Hardware kommen.
  3. Ich würde einen Film so machen, dass jeder neue Rahmen der Unterschied zwischen ihm und dem vorherigen Rahmen ist. Ich würde es 20 Mal sehen und sehen, ob mein (erstaunliches) menschliches visuelles Verarbeitungssystem etwas deutlich Herzschlagbezogen oder eindeutig NICHT sehen kann.
  4. Für das "NOT" entfernen Sie sie von der Verarbeitung, durch Maske, Filter oder ähnliches. Finden Sie für Verwandte, um sie zu der Region von Interesse zu machen alles andere entfernen, Pixelintensitätshistogramm abschneiden, oder andere Bildverbesserungen (Weichzeichnen, Scharfzeichnen, Neu einfärben, Kanten, Drehen so Das größte Signal ist entlang der aktualisierten Pixelachsen und dann verarbeiten ..)

NACHDEM der menschliche Sehapparat ein gutes Signal bekommen kann, dann würde ich daran arbeiten, Mathematik / Computer das Signal mit dem klaren Wissen zu erhalten, dass der menschliche Apparat überlegen ist.

Wenn ich Punkte / Features verfolgen würde, die sich im Laufe der Zeit bewegen, würde ich mir Metriken für Sub-Pixel-Metrologie ansehen. Ich habe einige davon vor einem Jahrzehnt ( These ) gemacht, und obwohl ich denke, dass der Inhalt relevant sein könnte, könnte es auch anders genug sein, um einen zu verdienen Erstes Durchlesen vor dem Kopieren und Ausführen von Code.

Viel Glück.

    
EngrStudent 16.10.2015 15:50
quelle