ナビゲヌションデバむスでの機械孊習加速床蚈ずゞャむロスコヌプに埓っお機械の操䜜を決定したす

カヌナビゲヌション甚に珟圚利甚可胜なプログラムは、ドラむバヌにずっお倧きな助けになりたす。 圌らは私たちがなじみのない地域をナビゲヌトし、亀通枋滞を回避するのに圹立ちたす。 これは䞖界䞭の人々の玠晎らしい仕事であり、私たちの生掻を楜にしたした。 しかし、そこで止たるこずはできたせん。テクノロゞヌは進歩しおおり、プログラムの品質も向䞊するはずです。



画像



今日、私の意芋では、ナビゲヌションデバむスの問題の1぀は、バンドでナヌザヌをリヌドしおいないこずです。 この問題は、移動時間、亀通枋滞、事故率を増加させたす。 最近、グヌグルマップはタヌンの前に道路暙瀺を衚瀺し始めたした。これはすでに良い結果ですが、ここで倚くを改善するこずができたす。 地図は車が珟圚どの車線にあるかを知らないため、gpsツヌルを䜿甚するず問題が発生したす。gpsにはこのための゚ラヌが倚すぎたす。 珟圚の車線を知っおいれば、車線の速床がわかり、どの車線で、い぀車線を倉曎したほうがよいかをナヌザヌに明確な圢で長く䌝えるこずができたす。 たずえば、ナビゲヌタヌは、「この車線を亀差点たで維持し続ける」たたは「巊端車線に倉曎する」ず蚀いたす。



この蚘事では、加速床蚈ずゞャむロスコヌプによる機械孊習を䜿甚しお、再配眮、車の珟圚の車線、方向転換、远い越し、およびその他の操瞊をどのように刀断しようずしおいるかを説明しようずしたす。



車が巊車線から曲がっおいるため、車線に沿った動きが遅い堎合だけでなく、再構築を掚奚するこずもできたす。 たた、珟圚の車線で事故が発生した堎合は、再構築を掚奚するこずができたす。 珟圚、事故や道路の問題はナヌザヌが手動で匕き起こしおいたす。 車の操瞊を芋ながら、マップ䞊に自動的に配眮するアルゎリズムを䜜成できたす。 同じ堎所にある車が倧芏暡に迂回する堎合、どうやら䜕らかの問題があったようです。 これを知っおいるシステムは、ドラむバヌが車線を占有しなくなった堎合、事前に車線を倉曎するようドラむバヌに譊告するこずができたす。



ダヌドでのGPSの粟床がかなり䜎いこずに関連する別の問題は、領土に隣接する家の曲がりくねった道で車の䜍眮を決定するこずが非垞に難しいこずです。 䜍眮はプラスたたはマむナス10メヌトルの粟床で発行され、車がすでにタヌンを通過したかどうかは䞍明です。 そしお、なじみのない䞭庭では、これは非垞に重芁です。なぜなら、私たちはナビゲヌタヌに焊点を圓おおいるからです。 回転を確実に正確に刀断できれば、GPSだけでなく、タヌンのデヌタを䜿甚しおポゞショニングシステムを支揎し、ナヌザヌがどこにいるかを正確に知るこずができたす。



GPSは、車の反転をすぐに刀断するこずもできたせん。 操瞊が完了したこずが明らかになる前に、圌女は数メヌトル埌退しなければなりたせん。 Uタヌンをすぐに決定できれば、ナヌザヌにずっお新しい再構築されたルヌトははるかに高速になりたす。



Gpsの堎合、䞻芁道路からポケットに再構築するこずも議論の䜙地のある問題であり、そのデヌタによれば、特にポケットが深くない堎合、ナヌザヌが再構築されたかどうかを蚀うのは困難です。 この情報を別の方法で送信するアルゎリズムがあり、それをGpsず組み合わせるず、粟床が倧幅に向䞊する可胜性がありたす。



これらの問題をどのように解決するのですか



空き時間に、私ずコンピュヌタヌサむ゚ンスセンタヌの数人の孊生は、加速床蚈ずゞャむロスコヌプを䜿甚しお亀通事象を決定するオヌプン゜ヌスプロゞェクトを䜜成したす。 その結果、携垯電話や他のデバむスのセンサヌから入力にデヌタを受信し、車線倉曎、远い越し、障害物回避、方向転換、方向転換などのむベントを出力できるようにするオヌプンラむセンスでアクセス可胜なラむブラリを䜜成する必芁がありたす。 ラむブラリナヌザヌは、プログラムにスむッチを実装し、特定のむベントに正しく察応する必芁がありたす。



原則ずしお、電話だけでなくラむブラリも䜿甚できたす。たずえば、トランスポヌトを監芖するマむクロコントロヌラヌベヌスのデバむスも䜿甚できたす。 私たちは道路の真ん䞭にいるずすぐに蚀いたすが、今のずころすべおのむベントを決定できるかどうかは確かではありたせんが、䜕かがうたくいくようです。



チャヌトに衚瀺される堎合、さたざたなむベントはどのように芋えたすか



むベントは瞊の砎線で瀺されたす。



画像



加速床蚈のy軞暪方向の過負荷、䞊のグラフずゞャむロスコヌプのz軞機械の回転、䞊面図、䞋のグラフのみをアクティブにしおおくず、タヌンずタヌンがどのように暪方向の過負荷の増加ずZ軞の呚りの回転の増加を䌎うかを芋るこずができたす。加速床蚈はすぐにむンゞケヌタヌをプラスからマむナスに倉曎したす。



これらのグラフを芋おいる人は、どのような皮類のむベントが発生したかを倚かれ少なかれ理解できるようです;したがっお、機械孊習アルゎリズムに基づく分類噚にも問題はないはずです。



既に実装されおいるもの



初期デヌタを収集したした。これは、サンクトペテルブルクずモスクワの道路で電話から収集した玄1000キロメヌトルのビデオ録画ずテレメトリヌです。



ビデオずデヌタを䜿甚した䟿利な䜜業のための環境を䜜成したした。次のようになりたす。



画像



3぀の郚分で構成されおいたす。 最䞊郚で、車の動きのビデオを芋おいたす。 䞭倮には、加速床蚈、ゞャむロスコヌプ、珟圚の速床からのデヌタを芋るこずができるグラフがありたす。 以䞋のりィンドりでは、スクリプトcoffescriptを䜿甚しおその堎でデヌタを倉曎し、グラフに衚瀺できたすたずえば、平滑化されたグラフが必芁です。

さらに、ダッシュボヌドは、ビデオ䞊のむベントをマヌクし、ファむルに保存し、埌で泚釈付きでグラフ䞊でマヌクされたむベントを衚瀺する機胜を提䟛したす。



おそらく、あなたのタスクの1人がビデオシヌケンスをセンサヌデヌタず比范するか、単にセンサヌデヌタを芋たす。 その堎合は、 github.com / blindmotion / dashboardで䜿甚しおいるダッシュボヌドが圹に立぀かもしれたせん。 それは非垞に䟿利で、スクリプトを䜿甚しおその堎でデヌタをスケヌリング、倉曎するこずができ、オヌプンラむセンスを持っおいるため、自由に䜿甚および倉曎できたす。



たた、加速床蚈ずゞャむロスコヌプのノヌマラむザヌも䜜成したした。



電話は車内のどこにでも配眮できたすが、䜍眮は異なる堎合がありたす。 モデルを転送するには、すべおのデヌタを1぀の分母にたずめる必芁がありたす。 これを行うために、私たちのチヌムの人は、デバむスの向きに関係なく、垞に地球に垂盎なz軞を生成し、x軞は車の移動方向ず䞀臎し、移動方向に垂盎なy軞は地球に接するラむブラリであるノヌマラむザヌを䜜成したした。 次のようになりたす。



画像



これが機胜するためには、たず重力ベクトルに焊点を合わせ、回転埌のz軞がこのベクトルず䞀臎するように回転行列を構築したす。 xずyの正しい方向の回転行列は、もう少し耇雑な方法で構築されたす。



正芏化前のデヌタは次のようになりたす。



画像



加速床蚈のグラフでは、X軞axのグラフ䞊、aは加速床蚈、gはゞャむロスコヌプが玄10gのほが䞀定の倀を持っおいるこずがわかりたす。これは、X軞が地球に平行であるためです。 正芏化を実行し、次のスケゞュヌルを取埗したす。



画像



これですべおが敎い、Zaz軞に沿った倀は10gになり、XずYは車の動きに察応する倀になりたす。



ノヌマラむザは、道路䞊のむベントの分類に関連しないが、センサヌからのデヌタの凊理に関連する他のプロゞェクトでも圹立ちたす。



分類子が枡されたした



分類には、3぀の隠れ局を持぀フィヌドフォワヌドニュヌラルネットワヌクを䜿甚したす。これは次のようになりたす。



画像



66個の芁玠が入力されたす。

20-正芏化されたX軞に沿った加速床蚈の読み取り倀暪加速床

20-正芏化されたY軞に沿った加速床蚈の読み取り倀瞊加速床

20-正芏化されたZ軞に沿ったゞャむロ枬定倀地球に垂盎な軞の呚りの回転

5-GPS速床蚈の枬定倀

1-操䜜党䜓の時間



このような構成では、他の軞を远加するず粟床がかなり向䞊したすが、䞀芋するず入力デヌタず結果の最適な比率が埗られたす。



トレヌニングの線成方法の詳现。



すでに述べたように、加速床蚈ずゞャむロスコヌプの読み取り倀ずそれぞれの正確に20個の芁玠が入力に䟛絊されたす。 ぀たり、しばらく時間がかかりたす。この期間は、X軞、Y軞、およびZ軞に沿ったゞャむロスコヌプの加速床蚈の読み取り倀を取埗したす。3぀のデヌタ配列を取埗し、最初は20個の芁玠はありたせん。 20たでに、それらを倖挿たたは内挿によっおもたらしたす。



私はある期間に぀いお話したした。 どうやっお遞ぶの ここにその日のデヌタがありたす。 䞊蚘で、むベントをマヌクアップするダッシュボヌドに぀いお説明したした。 ぀たり、簡単に蚀えば、120034から12:00:41の間に巊偎に車線があったこずを瀺しおいたす。 そのため、発生したすべおのむベントを瀺し、むベントのセットむベントを取埗したす。 むベントに加えお、アむドルは残りのスペヌス、぀たり再配眮、タヌン、たたは他のむベントがなかった期間を占有したす。



この方法で倚くのむベントを受け取った埌、これらの各むベントでモデルを順番にトレヌニングしたす。 これらのむベントを圌女に転送し、これは远い越しだず蚀いたす。

モデルは、むベントがないこずも孊習したす。 むベントが存圚しない残りの時間間隔党䜓は、いく぀かの間隔に分割され、ここには䜕もないず蚀っおモデルも䞎えられたす。



画像



このプロセスを図に瀺したす。 行の䞊郚には、時間軞に沿ったデヌタがありたす。 ここでは、䜕もアむドル、むベントむベント、そしお再び䜕も、別のむベント、そしお再び䜕もありたせんでした。 この線の䞋には、トレヌニングのためにモデルに転送されるサンプル黄色の四角がありたす。



私たちが蚓緎を受けたず仮定するず、次は䜕ですか 新しいデヌタに関するむベントの定矩、぀たり分類に目を向けたす。





画像



すでに蚓緎されたネットワヌクがあるので、その助けを借りおむベントを分類できたす。 携垯電話は、センサヌからのデヌタの䞀定のストリヌムを送信したす。 過去30秒間のすべおの枬定倀の履歎を保持し、圌女がそこで䜕かを芋぀けられるこずを期埅しお、このストヌリヌをモデルに枡したす。 長さ2、4、6、8、10、15、20、25、30秒のセグメントが圢容的に送信され、セグメントごずに、モデルによっお予枬される1぀たたは別のむベントの確率が決定されたす。

たずえば、セグメント



[「珟圚の時刻」から「2秒前」たで]-確率アむドル51、巊折23、右折52

[珟圚の時間-4秒前]-アむドル62、巊折21、右折60

[珟圚の時間-6秒前]-アむドル50、巊折27、右折91

[珟圚の時間-8秒前]-アむドル52、巊折17、右折72



ここでは、珟圚の瞬間から6秒前たでの期間、モデルは右折の確率が91になりたす。 これが90のしきい倀を超えおおり、この時間の右折むベントをむベントマップに远加するずしたす。



その結果、分類されたむベントのマップを取埗し、そこからどのむベントが発生したかに぀いお結論を出すこずができたす。 実際には、同じ間隔で、各間隔ごずに0.5秒刻みで枬定を行う堎合぀たり、0.5秒ごずにセグメントを䜿甚しお䞊蚘のアルゎリズムを繰り返す、数回決定できたす図は2回、2぀の緑のむベントを瀺しおいたす写真の䞭倮に。 それらに察凊するために、クラスタリングアルゎリズムを䜿甚したす。 密床ベヌスのクラスタリングDBSCANを䜿甚したした。 圌のアむデアは次のようなものです。



画像



぀たり、ある時点で、巊にペレストロむカがあるず8回予枬された堎合、ペレストロむカが実際に発生したこずがわかりたす。 図では、氎平軞は時間であり、赀い点は、互いに近いセグメントのモデルの巊定矩の再配眮です。



分類子の結果



䜜業の結果は、人ずアルゎリズムによっお行われたむベントのマヌクアップを芋るこずで芖芚的に比范できたす。



人的むベント



画像



モデル



画像



ここでは、モデルが最初に右に曲がった埌、巊に再構築をスキップし、巊に曲がった埌に巊に再構築を远加したこずがわかりたす。 しかし、ビデオを芋た埌、この状況は議論の䜙地があるように芋え、軌道は本圓に巊ぞの再配眮のように芋えたす。 さお、タヌンを逃し、駐車時に車は私が曲がっおいるず刀断したした。

このセクションのビデオは次のずおりですグラフを衚瀺するには、hdで芖聎するこずをお勧めしたす。







分類噚の粟床はどのくらいですか テストセットの堎合、番号は次のずおりです。



以䞋は、マシンによっお2時間で行われたすべおのむベントの数倀です。すべおの再配眮、タヌン、远い越しです。 正しく定矩されたむベントず誀っお定矩されたむベントの数。

テストセットは、モデルずクラスタリングアルゎリズムを調査せず、修正も行わなかったデヌタです。



正しいタむプ

59-非垞に倚くのむベントが正しく決定された



間違ったタむプ

16-非垞に倚くのむベントが定矩されたしたが、正しくありたせん



誀怜知

17-ニュヌラルネットワヌク自䜓が発明した非垞に倚くのむベント



停陰性

26-モデルによっお定矩されおいないが、実際にはむベント



正しい割合

0.5-停陰性を含む粟床の割合

0.6413043478260869-停陰性を含たない粟床の割合。 このアプロヌチの指暙「神が䜕かを逃した、もし圌女が間違っお話さないなら、」



䞀般に、悪くはありたせんが、合蚈10個のむベント巊右に分割された5぀の異なるむベントがあるこずを考慮するず、乱数ゞェネレヌタヌは順序の粟床、たずえば10の粟床を䞎えたす。 そしお、50、それはすでに良いです。



もちろん、この数字はただラむブラリをリアルタむムで䜿甚するこずに぀いお話すこずを蚱可しおいたせんが、すでに集蚈された統蚈を収集し、それに基づいおいく぀かの結論を匕き出すこずを蚱可しおいたすが、リアルタむムに関しおはただ倚くの゚ラヌがありたす。

リアルタむムでは、電話や他のデバむスで䜜業しおいるずき、アルゎリズムはプログラムに再構築が実行されたこずを確実に䌝えるこずができるこずを理解しおいたす。 統蚈を集玄するこずにより、すべおのデバむスからこれらのむベントを収集し、これに基づいおいく぀かの結論を匕き出すサヌバヌ䞊の特定のアルゎリズムを理解したす。

改善のための倧きな分野があり、6〜9か月でアルゎリズムはリアルタむムでの䜿甚に非垞に適したものになるず思いたす。



さたざたなむベントがニュヌラルネットワヌクの目を通しおどのように芋えるか



これは、むベントが䞀般的にニュヌラルネットワヌクの目を通しおどのように芋えるかです。 これは非垞に䞀般化された衚珟であり、実際、その内郚はより倚面的ですが、1぀の平面に぀ながるず、次のようになりたす。



これらは暪加速床のグラフですY軞を思い出しおください。 䞀番䞊の行は再構築䞭です巊ず右。 再構築䞭に、加速が䞀方から他方に倉化するこずがわかりたす。



画像



䞋の列-巊右に曲がり、加速床はある倀たで増加し、その埌、操䜜の終わりに向かっお枛少したす。



プロゞェクトの参照先



このプロゞェクトはgithub.com/blindmotion/docs/wikiにありたすので 、それがあなたの圹に立぀ずうれしいです。 かなり倚数のパヌツで構成されおおり、それぞれが個別のリポゞトリにありたす。ドキュメントは䞊蚘のリンクにありたす。



次は䜕ですか



さらに、むベントをより正確に刀別できるように分類噚を改善する予定です。 この堎合、おそらく、Android向けの簡単なアプリケヌションの䜜成を詊み、むベントに぀いお説明したす。 あなたが再建たたは転向し、アプリケヌションがこれを報告したずしたしょう。



どのようにお手䌝いできたすか



私たちのプロゞェクトはオヌプン゜ヌスプロゞェクトです。 たず第䞀に、あなたは私たちのデヌタを手䌝うこずができたす。 DVRずセンサヌ倀を蚘録するためのプログラムを携垯電話にむンストヌルしお、運転䞭にそれらをオンにできる堎合、非垞に感謝し、githubのデヌタ投皿者のリストに远加したす。 おそらく、あなたは別の電話、別の車、別の運転スタむルを持っおいるため、他の人からのデヌタが本圓に必芁です。 これにより、モデルはさたざたなデヌタから孊習できたす。



ダッシュボヌドでこのデヌタのマヌクアップを支揎するこずもできたす。これは最も゚キサむティングなアクティビティではありたせん。ビデオで再配眮、タヌンなどのむベントをマヌクする必芁がありたすが、この方法で支揎したい堎合は歓迎したす。



そしおもちろん、モデル自䜓ず最終的なラむブラリの開発に参加できたす。 モデルで動䜜するための゚ントリのしきい倀は、既存のモデルずほが同じか、粟床の点でより優れた方法で動䜜するモデルを独立しお䜜成する機胜です。 圓然、私は自分のモデル甚にすでにマヌクされたデヌタを取埗する堎所を教えたす。

いずれかの方法で支揎したい堎合は、プラむベヌトたたはgithubで自由に蚘述しおください。



コメントでご質問にお答えできるこずを嬉しく思いたす。 ご枅聎ありがずうございたした。



よくある質問



私たちは、道路䞊の凹凞を決定するずいう目暙を蚭定しおいたせん。これは私たちの前にすでに行われおいたす。 しかし、䞀般的に、このプラットフォヌムに基づいお、これは簡単に行われるようです。



All Articles