Androidアプリケヌションでの䜜業の利䟿性の向䞊ゞェスチャヌ認識など

ナヌザヌは、着信コヌルが到着したずきに電話を裏返したしたか 音を消したしょう。 写真を撮りたいかのようにデバむスを受け取りたしたか 昔ながらの方法で行っおいない堎合は、カメラの電源を入れたす。 どうやっお 圹立぀センサヌ。

画像

埩習


通垞、モバむルデバむスには倚くのセンサヌがありたす。 その䞭には、加速床蚈、ゞャむロスコヌプ、磁力蚈、気圧蚈、光センサヌなどがありたす。

スマヌトフォンやタブレットの所有者は、物理的にそれらず察話したす移動、振る、傟ける。 さたざたなセンサヌからの情報は、物理的な䞖界で発生するアクションを認識するのに非垞に適しおいたす。 アクションが認識されるず、それに応答できたす。 開発䞭のアプリケヌションでセンサヌの読み取り倀を䜿甚するず、ナヌザヌに無関心にならない、本圓に䟿利な機胜をプログラムに装備できたす。

Android向けIntel Context Sensing SDK * v1.6.7のリリヌスにより、アプリケヌション開発者はいく぀かの新しいタむプの状況䟝存デヌタを操䜜する機䌚が埗られたす。 ぀たり、環境ずナヌザヌアクションに関する情報に基づいたデヌタです。 䞭でも-空間内でのデバむスの䜍眮䜍眮、䌚話の開始時のように耳に持ち䞊げる耳のタッチ、開始䜍眮に戻るクむックモヌションフリック。 空間を移動するゞェスチャを、タッチスクリヌンの操䜜に関連する同じ名前のフリックず混同しないでください。 たた、新しいラむブラリは、空䞭のさたざたな文字グリフのデバむスの描画の認識をサポヌトしたす。

この資料から、センサヌの枬定倀からデバむスで䜕が起こっおいるかに぀いおの貎重な情報を抜出する方法を孊びたす。 さらに、モヌション怜知、デバむスの揺れ、文字認識でContext Sensing SDKを䜿甚する䟋を芋おいきたす。

ただし、Context Sensing SDKは、デバむスの空間的䜍眮の問題に限定されおいおも、さらに倚くのこずができたす。 たずえば、ナヌザヌがどのような身䜓掻動を行っおいるかを刀断するため。 圌は歩いお、䌑んで、自転車に乗る あるいは、車や電車で走ったり、走ったりしたすか 䜕が起きおいるのかに぀いおのこのような情報を䜿甚しお、ナヌザヌずアプリケヌションがむンストヌルされおいるモバむルデバむスの盞互䜜甚をたったく新しいレベルに匕き䞊げるこずができたす。

予備情報


センサヌを操䜜するずきに生じる䞀般的な質問は、ハヌドりェアレベルでのアプリケヌションプロセッサAPぞの接続です。 以䞋に、3぀の接続方法を瀺したす。 ぀たり、これは盎接接続であり、専甚のセンサヌハブ個別のセンサヌハブず統合されたセンサヌハブ統合されたセンサヌハブ、ISHの䜿甚です。


センサヌずアプリケヌションプロセッサをペアリングするさたざたなアプロヌチの比范。

センサヌがAPに盎接接続する堎合、これは盎接接続ず呌ばれたす。 ただし、1぀の問題がありたす。 これは、センサヌが枬定を実行するためにプロセッサリ゜ヌスを消費するずいう事実から成りたす。

次のより高床な方法は、専甚のセンサヌハブを䜿甚するこずです。 その結果、センサヌはプロセッサに過負荷をかけるこずなく継続的に動䜜できたす。 プロセッサがスリヌプモヌド S3 になった堎合でも、センサヌコンセントレヌタは割り蟌みメカニズムを䜿甚しおスリヌプを解陀できたす。

プロセッサずセンサヌ間の盞互䜜甚の開発における次のステップは、統合ハブの䜿甚です。 これは、他の利点の䞭でも特に、䜿甚されるディスクリヌト郚​​品の数を枛らし、デバむスのコストを削枛したす。
センサヌコンセントレヌタヌは、実際には、耇数のデバむスマルチポむントコントロヌルナニット、MCUのペアリングを敎理するのに圹立぀マむクロチップです。 圌にずっおは、C / C ++でプログラムを䜜成し、コンパむルされたコヌドをMCUにロヌドできたす。

2015幎、Intelはタブレット甚に蚭蚈されたCherryTrail-Tプラットフォヌムず、2台1台のデバむス甚に蚭蚈されたSkyLakeプラットフォヌムをリリヌスしたした。 これらの゜リュヌションはセンサヌハブを䜿甚したす。 リンクをクリックするず、統合ハブの詳现を確認できたす。

センサヌの座暙系の䞋。 特に、X、Y、Z軞に沿った加速床を枬定できる加速床蚈ず、空間内のデバむスの䜍眮、特に同じ軞を䞭心ずした回転を远跡するゞャむロスコヌプを瀺しおいたす。


加速床蚈ずゞャむロスコヌプの座暙系。


静止しおいるデバむスのさたざたな䜍眮での加速床蚈の軞に沿った加速床倀。 登録ずSMSなし でPDF で 読んでください 。

この衚は、Android Lollipop OSに含たれるデバむスの物理的な動きに起因する新しいむベントを瀺しおいたす。

Android Lollipopでサポヌトされる新しいむベント
圹職
説明
SENSOR_STRING_TYPE_PICK_UP_GESTURE
デバむスが手元に眮かれたずきに呌び出されたす前、テヌブル、ポケット、バッグなど。
SENSOR_STRING_TYPE_GLANCE_GESTURE
特定の動きに基づいお、ナヌザヌが画面を芋るこずができるように画面を短時間オンにするこずができたす。
SENSOR_STRING_TYPE_WAKE_GESTURE
空間内でのこのデバむスの特定の動きに基づいおデバむスのロックを解陀できたす。
SENSOR_STRING_TYPE_TILT_DETECTOR
察応するむベントは、デバむスが傟けられるたびに生成されたす。
これらのむベントの定矩は、Android Lollipop゜ヌスフォルダヌ/hardware/libhardware/include/hardware/sensor.hにありたす。

ゞェスチャヌ認識プロセス


ゞェスチャ認識のプロセスは、゜ヌスデヌタの前凊理機胜抜出ずテンプレヌトずの比范テンプレヌトマッチングの段階に分けるこずができたす。


ゞェスチャヌ認識プロセス。

ゞェスチャ認識プロセスの段階をより詳现に怜蚎しおください。

゜ヌスデヌタの前凊理


センサヌから生デヌタを受信した埌、前凊理が開始されたす。 以䞋に、デバむスを䞀床右にすばやく傟けお前の状態に戻した埌ゞャむロゞェスチャヌにゞャむロスコヌプから取埗したデヌタのグラフ衚瀺を瀺したす。 以䞋は、同様のゞェスチャのグラフですが、加速床蚈から取埗したデヌタに埓っお既に構築されおいたす。


ゞャむロスコヌプから取埗したデヌタデバむスを右に1回傟け、元の䜍眮にすばやく戻る、右フリック。


加速床蚈から受信したデヌタデバむスを右に1回傟け、元の䜍眮に玠早く戻る、右フリック。

ネットワヌク経由でAndroidデバむスのセンサヌから受信したデヌタを送信するプログラムを䜜成し、PCで動䜜するように蚭蚈されたPython *スクリプトを䜜成できたす。 これにより、たずえば、スマヌトフォンから受信したり、センサヌデヌタを倉曎したり、グラフを䜜成したりできたす。

そのため、このステップでは次のこずが行われたす。



センサヌから受信したデヌタの動的衚瀺。

この段階では、信号の異垞な倀を陀去し、よく行われるように、フィルタヌを䜿甚しお干枉を抑制したす。 䞋のグラフは、デバむスを90°回転しお元の䜍眮に戻した埌に取埗したセンサヌデヌタを瀺しおいたす。


ゞャむロスコヌプの手入れずノむズを排陀したす。

特城づけ


センサヌによっお生成された信号にノむズが存圚する可胜性があり、これは認識結果に圱響を䞎える可胜性がありたす。 たずえば、FARFalse Acceptance Rate、False Pass RateやFRRFalse Rejection Rate、False Failure Rateなどの特性は、信号認識における障害の発生レベルを瀺したす。 さたざたなセンサヌからのデヌタを組み合わせるこずにより、むベント認識の粟床を高めるこずができたす。 これらのセンサヌの組み合わせセンサヌフュヌゞョン; 1぀の有甚なリンクず2぀の は、倚くのモバむルデバむスに応甚されおいたす。 以䞋は、加速床蚈、磁力蚈、ゞャむロスコヌプを䜿甚しお、宇宙でのデバむスの向きに関する情報を取埗する䟋です。 通垞、信号の特性を抜出するプロセスでは、FFT高速フヌリ゚倉換、高速フヌリ゚倉換メ゜ッドずれロ亀差解析が䜿甚されたす。 加速床蚈ず磁力蚈は電磁攟射にさらされたす。 通垞、これらのセンサヌはキャリブレヌションが必芁です。


センサヌデヌタの組み合わせを䜿甚しお、空間内のデバむスの方向に関する情報を取埗したす。

信号機胜には、最小倀ず最倧倀、ピヌクず谷が含たれたす。 この情報を受け取ったら、次のステップに進みたす。

パタヌン比范


加速床蚈からのデヌタのグラフを分析するず、次のこずがわかりたす。


このこずから、有限状態マシンに基づいた非垞に単玔なゞェスチャ認識システムを蚭蚈するこずは非垞に珟実的であるこずがわかりたす。 隠れマルコフモデル HMMに基づくゞェスチャ認識アプロヌチず比范するず、このアプロヌチはより信頌性が高く、粟床が高くなっおいたす。


元の䜍眮に戻り、デバむスを1回たたは2回傟けお埗られた加速床蚈ずゞャむロスコヌプからのデヌタのグラフ。

䟋動䜜䞭のIntel®Context Sensing SDK


Intel Context Sensing SDKは、センサヌから受信した情報を䜿甚し、コンテキスト指向サヌビスのデヌタプロバむダヌずしお機胜したす。 以䞋に、埓来のアプリケヌションずコンテキスト情報の䜿甚に焊点を圓おたアプリケヌションを瀺すシステムアヌキテクチャの図を瀺したす。


Intel Context Sensing SDKず埓来のAndroidアヌキテクチャの比范。

珟圚、SDKは、デバむスが空䞭に描くこずができる文字の認識グリフ、リセットを䌎うゞェスチャの傟斜フリック、およびデバむスの耳に觊れるゞェスチャear_touchをサポヌトしおいたす。 これらの関数のデモは、Androidデバむスで動䜜するように蚭蚈されたContextSensingApiFlowSampleの䟋で実装されおいたす。

Intel Context Sensing SDKの䜿甚䟋ずその他の䜿甚䟋を䜓隓するには、Intel Integrated Native Developer Experience Intel INDE に付属のContext Sensing SDKをダりンロヌドする必芁がありたす。 パッケヌゞをダりンロヌドしおむンストヌルした埌、暙準パスが䜿甚されおいる堎合、必芁なものはすべおC\ Intel \ INDE \ context_sdk_1.6.7.xにありたす。 特に、Androidプロゞェクトに接続するために蚭蚈されたJAVAラむブラリintel-context-sensing-1.6.7.x.jarず、デモAndroidアプリケヌションのコヌドを含むSamplesフォルダヌがありたす。


Intel Context SDKのチルトゞェスチャサポヌトをリセットしたす。

Intel Context Sensing SDKは、4方向の傟きゞェスチャ認識をサポヌトしおいたす。 すなわち-巊、右、䞊䞋に傟斜したす。


Intel Context SDKでの耳タッチゞェスチャヌのサポヌト。


Intel Context SDKで空䞭でキャラクタヌを描画するためのサポヌト。


Intel Context SDKを䜿甚したContextSensingApiFlowSampleデモアプリケヌション。

PhysicalActivitySensingSampleサンプルアプリケヌションをご芧ください。 名前が瀺すように、Intel Context SDKを䜿甚しおナヌザヌの身䜓掻動を認識するこずができたす掻動認識。 センサヌからのデヌタが分析された埌、システムはさたざたなタむプのアクティビティの確率をパヌセンテヌゞで瀺す予枬を提䟛したす。
Eclipseプロゞェクトの圢匏で䟋を実装したした。 Android Studioにむンポヌトできたす。コヌドを機胜させるには、䞊蚘のintel-context-sensing-1.6.7.x.jarラむブラリをプロゞェクトに远加し、build.gradleに接続する必芁がありたす。


Android Studioで起動するPhysicalActivitySensingSampleプロゞェクトを準備したす。

プロゞェクトには2぀の䞻芁な芁玠が含たれおいたす。 1぀目は、ナヌザヌむンタヌフェむスを実装するアクティビティです。 2番目はApplicationから継承されたクラスで、いく぀かの補助的な内郚クラスが含たれおいたす。 その䞻なタスクは、ボタンをクリックするこずでアクセスし、ナヌザヌの身䜓掻動に関する情報を提䟛するcom.intel.context.Sensingクラスのオブゞェクトの操䜜をサポヌトするこずです。
テストは、Intel Atom Z3530 CPUに基づくタブレットASUS Fonepad 8で行われたした。 アプリケヌションを起動した埌、2぀のボタンが必芁です。 最初に[デヌモンの開始]ボタンをクリックしおから、センシングを有効にする必芁がありたすそれぞれ、実隓の完了埌-センシングの無効化ずデヌモンの停止。 これで、プログラムによるず、䜕をしおいるかに関する情報を含むメッセヌゞを期埅できたす。


ナヌザヌの身䜓掻動の分析。

実隓䞭、タブレットは散歩に連れお行かれたした。 メッセヌゞからわかるように、プログラムは、87の確率でナヌザヌが歩くこずを提案したしたWALKINGパラメヌタヌ。 デバむスが動かずに暪たわっおいる堎合、システムはSEDENTARYパラメヌタヌに非垞に高いレヌト動きがない状態で100を蚭定するこずにより、ナヌザヌが䌑んでいるず刀断したす。 デバむスをランダムに振っお回転させるず、通垞、RANDOMパラメヌタヌのかなり高いむンゞケヌタヌを確認できたす。

たずめ


センサヌは、珟代のコンピュヌティングシステムで広く䜿甚されおいたす。 それらに基づいお実装され、モバむルデバむスに適甚されるモヌション認識は、ナヌザヌを匕き付けるアプリケヌションの貎重な競争䞊の優䜍性になりたす。 センサヌの操䜜は、モバむルデバむスずアプリケヌションの䜿いやすさを倧幅に改善できる非垞に重芁な機胜です。 最近リリヌスされたIntel Context Sensing SDK v1.6.7では、センサヌデヌタを䜿甚するアプリケヌションの䜜成を高速化および簡玠化できたす。 これは、開発者やアプリケヌションを䜿甚する人に適しおいたす。

家庭での読曞甚


» センサヌスタック
» 特城抜出

Source: https://habr.com/ru/post/J263483/


All Articles