芋えないものを芋る

数幎前、Habréに2぀の蚘事が掲茉されたしたが、その䞭で興味深いアルゎリズムが玹介されたした。 しかし、蚘事は読めたせんでした。 「ニュヌス」 1、2 のスタむルで、サむトぞのリンクはありたしたが、 その堎で詳现に理解するこずができたしたMITのアルゎリズム そしお魔法がありたした。 目に芋えないものを芋るこずができる絶察に魔法のアルゎリズム。 Habréの䞡方の著者はこれに気づかず、アルゎリズムがパルスを芋るこずができるずいう事実に焊点を合わせたした。 最も重芁なこずをスキップしたす。







このアルゎリズムにより、目に芋えない動きを匷化しお、誰も生きおいないものを芋せるこずができたした。 䞊のビデオは、アルゎリズムの2番目の郚分のMIT Webサむトからのプレれンテヌションです。 29秒から開始されるマむクロサッカヌドは、以前は瞳孔に取り付けられたミラヌの反射ずしおのみ芳察されおいたした。 そしお、ここで圌らは目を通しお芋える。

数週間前、私は再びそれらの蚘事に出䌚いたした。 私はすぐに興味を持ちたしたこの2幎間で人々は䜕をしたしたか しかし...空虚。 これにより、来週半の゚ンタヌテむメントが決たりたした。 私は同じアルゎリズムを䜜り、それで䜕ができるのか、そしお少なくずも心拍数を枬定するために、それがただすべおのスマヌトフォンにない理由を把握したいず思っおいたす。



この蚘事には、倚くのマタン、ビデオ、写真、少しのコヌド、質問ぞの回答が含たれたす。



数孊から始めたしょう特定の蚘事には固執したせんが、蚘事をスムヌズにするために、蚘事のさたざたな郚分から干枉したす。 この研究チヌムには、アルゎリズムの郚分に関する2぀の䞻芁な䜜業がありたす。



1 䞖界の埮劙な倉化を明らかにするためのオむラヌビデオの拡倧 。

2 䜍盞ベヌスのビデオモヌション凊理 。



最初の䜜業では、より粗くお高速な振幅アプロヌチが実装されたす。 私はそれを基瀎ずしお取りたした。 2番目の䜜業では、振幅に加えお、信号䜍盞が䜿甚されたす。 これにより、はるかにリアルで鮮明な画像を埗るこずができたす。 䞊蚘のビデオは、この䜜品に特別に添付されたした。 マむナスはより耇雑なアルゎリズムず凊理であり、明らかにビデオカヌドを䜿甚せずにリアルタむムから飛び出したす。



始めたしょう



モヌション゚ンハンスメントずは䜕ですか 動きを匷化するのは、信号がどの方向にミックスされるかを予枬し、この方向にさらに移動するずきです。







1次元のレシヌバヌがあるずしたす。 この受信機では、信号Ix、t= fxが衚瀺されたす。 からの画像は黒で描かれたすある瞬間t次の瞬間、信号Ix、t + 1= fx +Δ青。 この信号を増幅するには、信号I 'x、t + 1= fx +1 +αΔを受信するこずを意味したす。 ここで、αはゲむンです。 テむラヌ玚数に入れるず、次のように衚珟できたす。







させおください







Bずは 倧たかに蚀えば、これはIx、t + 1-Ix、tです。 描く







もちろん、これは正確ではありたせんが、倧たかな近䌌ずしお衚瀺されたす青いグラフは、このような「近䌌」信号の圢状を瀺しおいたす。 Bに1 +αを掛けるず、これが信号の「増幅」になりたす。 取埗したす赀いグラフ







実際のフレヌムでは、いく぀かの動きがあり、それぞれ異なる速床で動きたす。 䞊蚘の方法は線圢予枬であり、䞭断するこずなく䞭断したす。 しかし、仕事で䜿甚されたこの問題を解決するための叀兞的なアプロヌチがありたす-呚波数特性空間的および時間的の䞡方の動きを分解するために。







最初の段階で、画像は空間呚波数に分解されたす。 さらに、この段階では、埮分∂fx/∂xの導出を実装したす。 最初の䜜業では、実装方法に぀いおは説明したせん。 2番目の䜜業では、䜍盞アプロヌチを䜿甚しお、振幅ず䜍盞は異なる次数のガボアフィルタヌず芋なされたした。







それは私がフィルタヌを取っお行ったこずです







そしおその倀を正芏化しお







ここで、lはフィルタヌの䞭心からのピクセル距離です。 もちろん、1぀のりィンドり倀σに察しおのみこのようなフィルタヌを䜿甚しお、少しごたかしたした。 これにより、蚈算が倧幅に高速化されたした。 これにより、わずかにがやけた画像になりたすが、高粟床を远求しないこずにしたした。



数匏に戻りたす。 タむムフレヌムシヌケンスの呚波数ωで特性応答を䞎える信号を増幅するずしたす。 σりィンドりを備えた特性空間フィルタヌは既に遞択されおいたす。 これにより、すべおのポむントでおおよその差分が埗られたす。 匏から明らかなように、時間関数のみが残りたす。これは、モヌションずゲむンに応答したす。 増幅したい呚波数のサむンを掛けたすこれが時間応答を䞎える関数になりたす。 取埗するもの







もちろん、元の蚘事よりもはるかに簡単ですが、速床に関する問題は少し少なくなりたす。



コヌドず結果



最初の蚘事の゜ヌスは、Matlabのオヌプンアクセスに掲茉されおいたす。 どうしお車茪を再発明し、自分で曞くのか しかし、䞻にMatlabに関連するいく぀かの理由がありたした。

  1. 埌で合理的で適甚可胜な䜕かを行うこずが頭に浮かんだ堎合、MatlabのコヌドはC ++で数時間で移怍されるC+ OpenCVよりも䜿甚がはるかに困難です。
  2. 元のコヌドは、䞀定のビットレヌトを持぀保存枈みビデオの操䜜に焊点を合わせおいたした。 可倉ビットレヌトのコンピュヌタヌに接続されたカメラを䜿甚するには、ロゞックを倉曎する必芁がありたす。
  3. 元のコヌドは、最も単玔なアルゎリズムを実装しおおり、利点はありたせん。 パンを䜿甚しおもう少し耇雑なバヌゞョンを実装するこずは、すでに䜜業の半分です。 さらに、アルゎリズムがオリゞナルであるずいう事実にもかかわらず、その入力のパラメヌタヌは蚘事ず同じではありたせんでした。
  4. 元のコヌドは定期的にコンピュヌタヌをフリヌズさせたしたブルヌスクリヌンがなくおも。 たぶん私ずだけですが、それは䞍快です。
  5. 元のコヌドでは、コン゜ヌルモヌドのみでした。 Matlabですべおを芖芚的にするこずは、VSよりもはるかに悪いこずですが、すべおを曞き換えるよりもはるかに長くなりたす。


゜ヌスをgithub.comに投皿し、十分に詳现にコメントしたした。 このプログラムは、カメラからのビデオのキャプチャずその分析をリアルタむムで実装したす。 最適化は少し䜙裕をもっお行われたしたが、パラメヌタヌを拡匵するこずでフリヌズを達成できたす。 最適化の名前にクリップされおいるもの
  1. サむズを瞮小したフレヌムを䜿甚しおください。 䜜業を倧幅にスピヌドアップしたす。 フォヌムにサむズコントロヌルを衚瀺したせんでしたが、コヌドを開くず、「_ capture.QueryFrame。Convert <Bgr、float>。PyrDown。PyrDown;」 これです
  2. 1぀の空間フィルタヌのみを䜿甚しおください。 望たしい動きがわかっおいる状況では、損倱は重倧ではありたせん。 フォヌムガボヌルフィルタヌ波長からフィルタヌパラメヌタヌを制埡したす。
  3. 時系列を匷調する、1぀の呚波数のみの䜿甚。 もちろん、パフォヌマンスをほずんど損なうこずなくスペクトルで事前に蚈算されたりィンドりで畳み蟌みを行うこずはできたしたが、この方法もうたく機胜したす。 フォヌムから、スラむダヌたたは制限倀の入力によっお制埡されたす。


ちょっずした発蚀。 すべおの結果は、自宅の埓来のりェブカメラで取埗されたした。 適切なパラメヌタヌ+䞉脚+適切な照明+ 50 Hz干枉の抑制を備えたカメラを䜿甚するず、品質が倧幅に向䞊したす。 私の目暙は、矎しい写真や改良されたアルゎリズムを埗るこずではありたせんでした。 目暙は、自宅で結果を達成するこずです。 たあ、ボヌナスずしお、Starctaft 2をプレむするずきのパルスも蚘録したいず思いたす。



その結果、䜜業のロゞックは次のようになりたす。







すべおが恥ずべきこずです。 たずえば、フレヌムで増分を合蚈するこずは、䞀般的に次のように実装されたす。



for (int x = 0; x < Ic[ccp].I.Width; x++) for (int y = 0; y < Ic[ccp].I.Height; y++) { FF2.Data[y, x, 0] = Alpha * FF2.Data[y, x, 0] / counter; ImToDisp.Data[y, x, 0] = (byte)Math.Max(0, Math.Min((FF2.Data[y, x, 0] + ImToDisp.Data[y, x, 0]), 255)); }
      
      





はい、OpenCVではこれが最良の方法ではないこずを知っおいたす。



コヌドの90がコアではない堎所に、キットがありたす。 しかし、カヌネルの実装は良い結果をもたらしたす。 呌吞䞭に胞が数十センチ膚匵する様子、静脈が膚匵する様子、頭が脈拍に合わせお揺れる様子を芋るこずができたす。











ここでは、なぜ頭がパルスで揺れるのかを詳しく説明したす。 実際、これは心の詰たりの埩掻です







矎しさに぀いお少し



もちろん、MITは矎しい結果が倧奜きです。 そしお、したがっお、それらをできるだけ矎しくするようにしおください。 その結果、芋る人は、この特殊性が党䜓であるずいう印象を持っおいたす。 残念ながらいいえ。 腫れた静脈は、適切に蚭定された照明でのみ芋るこずができたす圱は肌の暡様を描くはずです。 顔色の倉化-適切な光ず心臓に明らかな困難を抱えおいる人ビデオではこれは倪りすぎの男性ず未熟児で、自動補正なしの良いカメラでのみ。 たずえば、すべおが心臓で問題ない黒人男性の䟋では、肌の明るさの倉動は芋られたせんが、埮動による圱の倉化の匷化が芋られたす圱は䞊から䞋にきちんずありたす。



定量的特性



しかし、ただ。 ビデオは、呌吞ず脈拍をはっきりず瀺しおいたす。 それらを取埗しおみたしょう。 頭に浮かぶ最も簡単なこずは、隣接するフレヌム間の差の合蚈です。 呌吞䞭はほが党身が振動するため、この特性は顕著です。

フヌリ゚倉換を介しおグラフを実行し、スペクトルを蚈算したす16秒のセグメントにわたっお蚈算されたスペクトルを合蚈するこずにより、統蚈が玄5分間グラフに収集されたす。







ノむズの特性ではなく、0.6〜1.3の呚波数で明確なピヌクが芋られたす。 呌吞は正匊波のプロセスではなく、2぀の明らかなバヌスト吞入-呌気䞭があるプロセスであるため、差分画像の呚波数は呌吞の2倍の呚波数に等しくなければなりたせん。 私の呌吞数は30秒で10呌吞0.3 HZ前埌でした。 圌女の倍増は0.6HZです。 これは、怜出されたスペクトログラムの最倧倀にほが等しくなりたす。 しかし、もちろん、正確な倀に぀いお話す必芁はありたせん。 呌吞に加えお、身䜓の倚くの现かい運動胜力が䌞ばされおおり、それが写真を著しく台無しにしおいる。

2.625HZに興味深いピヌクがありたす。 どうやらこれはグリッドの先端を突き抜けおマトリックスに到達しおいるようです。 マトリックスに沿っおストラむプがクロヌルし、この呚波数で最倧倀が埗られたす。



ずころで、ダブルハヌトレヌトはほが同じ範囲にある必芁がありたす。぀たり、この方法では動䜜したせん。 そしお本圓に







このようなスペクトルでパルスを芋぀けるこずはできたせん。



MITの研究の1぀では、心拍数を枬定するための別の方法が瀺されおいたす。顔の光束を蚈算し、この光束の呚波数によっお決定するこずです。 だから私はやったスペクトルもグラフ䞊にある









スペクトルの最倧数を延期したグラフでよく芋られたす。







なぜ脈拍数での最倧倀* 3私は説明する方法がわかりたせんが、この最倧倀は間違いなくそこにあり、脈拍に結び぀いおいたす:)

この方法で脈拍を埗るには、動かずにたっすぐに座る必芁があるこずにのみ泚意したいず思いたす。 スタヌクラフトをプレむするずき、これは䞍可胜であり、呚波数は削陀されたせん。 ええず...そしお、そのようなアむデア 興味深いこずになったので、心拍数モニタヌを入手する必芁がありたす



だから、結果



その結果、アルゎリズムの境界に぀いお自分の意芋を明確に圢成し、どのような制限があるのか​​が明らかになりたした。

心拍数の枬定で人気が出なかったのはなぜですか コンピュヌタヌのWebカメラの品質は、囜境で​​十分であるか、十分ではありたせん。 Androidには十分なパフォヌマンスがありたせん。 専門的な枬定のための特別な機噚は残っおいたす。 しかし、それらは非垞に高䟡で、倖郚条件フレア、明滅する光、暗闇、揺れに察しお䞍安定であり、品質は実瞟のあるパルスシュヌティングデバむスの品質よりも䜎くなりたす。

アルゎリズムが家、橋、クレヌンの倉動を評䟡するために䜿甚されないのはなぜですか たた。 特別な機噚は安䟡で、粟床が高くなりたす。

しかし、それはどこで䜿甚でき、たったく可胜ですか 可胜だず思いたす。 可芖性が必芁なすべおの堎所。 科孊ビデオ、教育プログラム。 粟神科医、心理孊者、 お迎えの男性のトレヌニング人の最も小さな動きが芋え、衚情が増幅されたす。 亀枉を分析するため。 もちろん、この堎合、アルゎリズムの単玔なバヌゞョンではなく、最埌の䜜業で䜿甚されおいるフェヌズアプロヌチに基づいたバヌゞョンを䜿甚する必芁がありたす。 同時に、すべおをvidyuheで䞊列化しない限り、これをすべおリアルタむムで確認するこずは難しく、パフォヌマンスは十分ではありたせん。 しかし、あなたは事実の埌に芋るこずができたす。



月の䞋に新しいものは䜕もない



仲間の䜜品を読んでビデオを芋るず、疑念が忍び蟌んでくる。 どこかでそれを芋た。 芋お、考えお、考えおください。 そしお、同じアルゎリズムを䜿甚しお、月の動きを取り、安定させ、倧気ノむズを陀去する方法のビデオを瀺したす。 そしお、それはフラッシュのようなものです。「はい、これはノむズ䜎枛アルゎリズムであり、正のフィヌドバックのみを備えおいたす!!」 そしお、寄生的な動きを抑える代わりに、それらを匷化したす。 α<0をずるず、接続は再び負になり、動きはなくなりたす

もちろん、動きや揺れを抑えるアルゎリズムの数孊ずアプロヌチは少し異なりたす。 しかし、結局のずころ、本質的には時空管のたったく同じスペクトル分析です。

ここでアルゎリズムがハングしたず蚀うのは銬鹿げおいたすが。 MITは、1぀の小さな興味深い機胜に本圓に気づき、それを開発し、そのような矎しく魔法の絵で党䜓の理論を埗たした。



そしお最埌にプログラマヌ、泚意しおください



このアルゎリズムは、サむト䞊のマヌクによっお刀断され、特蚱を取埗しおいたす。 教育目的での䜿甚は蚱可されおいたす。 もちろん、ロシアではアルゎリズムの特蚱はありたせん。 ただし、それに基づいお䜕かを行う堎合は泚意しおください。 ロシア以倖では、これは違法になる可胜性がありたす。



地䞋宀



亀通補匷に関するMIT研究に関するサむト 。

私の゜ヌス 。



Z.Yu。 そしお、心拍数モニタヌに぀いお教えおください。これは、コンピュヌタヌ䞊のデヌタを砎棄する可胜性があり、できればAndroidむンタヌフェヌスにはどのスレッドがありたすか



All Articles