ПредишенСледващото

Какво е укрепването на движението? Укрепване на движение е, когато ние прогнозираме, в каква посока сигналът е смесен и да го премести в тази посока по-нататък.

виж невидим

Да предположим, че имаме едномерна приемник. В приемника, виждаме сигнал I (х, у) = F (х). В снимката изготвен на черен (за някои точки т) .В следващ път сигнал I (х, т + 1) = F (х + Δ) (синьо). Amplify този сигнал, което означава приемане на сигнал Г (х, т + 1) = F (х + (1 + α) Δ). Тук а - печалба. това разширяване на някои от неговите Тейлър може да се изрази като:

Нека:

Какво е Б? Грубо казано тази I (х, т + 1) - I (х, у). изготвят:

виж невидим

Разбира се, това е неточно, но тъй като доста приблизително спускане (синьо pokazyaet форма графика такава "priblizhenongo" сигнал). Ако се размножават Б от (1 + α), и това е "усилване" на сигнала. Спечелете (в червено):

виж невидим

В реалните рамки може да бъде няколко движения, всяко от които ще отидат с различна скорост. Горният метод - линеен проекция, без никакви изменения, той ще се скъса. Но, има класически подход за решаване на този проблем, който се използва в работата - да се разпространява движението на честотни характеристики (и двете пространствени и времеви).

виж невидим

В първия етап, изображението на честотата разлагане пространствен. Този етап се осъществява получи диференциална ∂f (х) / ∂x. В първото проучване не обясни как са го приложат. Във второто изследване, при използване на поетапен подход, амплитуда и фаза филтри Gabbora считат различен ред:

виж невидим

За това, което направих, като филтъра:

И се нормализират, като стойността му за

Тук л - разстояние на пиксела от центъра на филтъра. Разбира се, аз съм малко фалшиви, като такъв филтър за само една стойност на σ прозорец. Това е значително ускоряване на изчисленията. Това дава малко по-размазани снимка, но реших да не се стремим към по-висока степен на точност.
Нека се върнем към формули. Да предположим, че искаме да усилва сигнала, като характерна реакция на честота со във временните рамки. Ние вече вдигна характерен пространствен филтър с σ прозорец. Това ни дава приблизителна диференциал във всяка точка. Както се разбира от формулите - там е само временно функция даване на обратна връзка на нашето движение и печалба. Умножена по синуса на честотата, която искате да се засили (тя ще функционира като време за реакция). получаваме:

Разбира се, много по-лесно, отколкото в оригиналната статия, но малко по-малък проблем с висока скорост.

Код и резултат.

Източници на първата статия, публикувана на обществено достъпен в Matlab. Тя ще изглежда, защо изобретяваме колелото и пиша за себе си? Но имаше и по редица причини, до голяма степен обвързани с Matlab:

  1. Използването на рамката с намален размер. Значително ускорява. Във формуляра не виждам контрола на изображението размер, но ако отворите кода, линията: "_capture.QueryFrame () Конвертиране.. () .PyrDown () PyrDown () "е
  2. Използването на само един пространствен филтър. За ситуация, в която ние знаем, загубата на желаното движение не са от решаващо значение. форма контролен параметър филтър (дължина на вълната на филтъра Gabor).
  3. Използването само на една честота, подчертава времеви редове. Разбира се, бихте могли да направите с предварително изчислена намотка прозорец на спектъра, почти без загуба на производителност, но този метод също работи добре. С двете форми на контролиран плъзгач, или чрез въвеждане на пределно допустимите стойности.

Една малка забележка. Всички резултати са получени и при конвенционален уеб камера у дома. При използване на камера с добри параметри статив + + + добро качество потискане смущения осветление 50Hz подобрява значително. Целта ми не е била да се получи красива картина или подобрен алгоритъм. Целта - да се постигне резултат у дома си. Е, като бонус, бих искал да запише повече сърце, когато играя Starctaft 2 ... Интересното е, че по отношение на е-спорта след спорт.
В резултат на това се получава логиката:

виж невидим

Толкова е просто да грозота. Например с сумиране на частичното рамка обикновено изпълнява, както следва:

(Да, знам, че с OpenCV това не е най-оптималния начин)
Около 90% от кода не е ядрото, аз престилка около него. Но реализацията на ядрото вече дава добър резултат. Това може да се види как напомпани гърдите за няколко десетки сантиметра по време на дишане, се вижда как се подува Виена като се хванат от главата по време с пулса.


Тук се обяснява подробно защо поклаща глава от сърце. В действителност това е кръвта се връща към сърцето на плънката:

Още малко за красотата

количествени характеристики

Видим ясно връх при честота от 0.6-1.3, не е характерно за шум. Тъй като синусоидална процес на дишане, процесът като два отделни разрушаване (вдишване-издишване), честотата на разлика трябва да бъде двойна честота изображения дишане. дихателна честота, имах някъде 10 вдишвания за 30 секунди (0.3 Hz). Нейният удвояване - 0.6HZ. Това е приблизително равна на разкрил следа максимум. Но, разбира се, не може да се говори за точното значение. Освен дишане извади много фина моторика на тялото, което значително разваля картината.
Има един интересен връх в 2.625HZ. Очевидно това прави пътя си към матрица изравняване власт. матрица пълзи лента, която успешно се получи максимална при тази честота.
Между другото, процентът на двойно пулса трябва да лежи приблизително в същия обхват, и по тази причина, този метод не трябва да работят по него. И наистина:

Този спектър не може да намери импулс.
В един от намалената работа MIT друг метод за измерване на сърдечната честота: изчисляване на оптичен поток по лицето и да се определи честотата на този поток. Така и направих (също спектри на графиката):

Най-добър се вижда на графиката, на която сложих на броя на спектрални пикове:

Защо максималната честота на пулса 3 * Не знам как да обясня, но това е максималното и точно обвързани с пулса :)
Трябва да се отбележи, че само за пулса по този начин трябва да седи изправен и не се движат. С игра Starcraft не е възможно, честотата не може да бъде отстранена. О ... И тази идея! Ще трябва да се пулсомер сега, защото стана интересно!

По този начин, в резултат

Нищо ново под слънцето

И накрая: програмист, бъдете внимателни!

Алгоритъмът според бележките в сайта, е патентована. Използването е разрешено за образователни цели. Разбира се, в Русия не съществува патентовани алгоритми. Но бъдете внимателни, ако не се направи нещо въз основа на нея. Извън Русия, може да е незаконно.

Z.YU. И ми кажете пулсомер, които биха могли да хвърлят данните на компютъра и, за предпочитане, интерфейс резба за Android са?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!