プロット/画像上の点を特定するための機械学習技術はありますか?


8

次の画像とサンプルデータの3つのプロットに示すように、時間と車線番号に対する各車両の横位置のデータがあります。

ここに画像の説明を入力してください

> a
   Frame.ID   xcoord Lane
1       452 27.39400    3
2       453 27.38331    3
3       454 27.42999    3
4       455 27.46512    3
5       456 27.49066    3

人間のドライバーは車両の位置を完全に制御できないため、横方向の位置は時間とともに変化します。車線変更操作は、横方向の位置が急激に変化したときに始まり、変化が再び「正常」になったときに終了します。これは、データから直接識別することはできません。車線変更の所要時間を推定するには、各車両のプロットを手動で見て、車線変更操作の開始点と終了点を決定する必要があります。しかし、私はデータセットに何千もの車両を持っています。これらのポイントを特定するためにトレーニングできる関連する画像分析/機械学習アルゴリズムを教えていただけませんか?私はRで働いています。よろしくお願いします。


車線変更操作を手動で分類するときに、何をしているのか数学的に特定しようとしましたか?車線位置関数のゼロに近い安定した勾配の期間からの変化を大まかに探しています。その後、勾配の大きさが大幅に増加し、ゼロに近い勾配の別の期間またはデータの終わりに至っていますか?
image_doctor

私たちが実験するための元の画像はたくさんありますか?
image_doctor

軸とスケールは凡例であり、サンプル画像全体で特に一貫していません。プロットを標準化する方法はありますか、または画像の作成を制御できませんか?
image_doctor

1
はい、変更車線の操縦の終了を特定したいと思いますが、すでに車両の車線がその時点でわかっている場合は、それらの変更を検出することは難しくありません。まず、車両が車線を変更していないと見なす時期を定義することから始めます(たとえば、同じ車線で所定の秒数運転した後)。ウィンドウを使用して、車両が同じ車線を維持しているセグメントを検出できます。このようなセグメントの始点と終点のポイントは、それぞれ「車線変更の開始」と「車線変更の終了」を示します。
Robert Smith

1
すごい。起点と目標車線がないと思いましたが、常にそれらがある場合は、ソリューションが機能し、車線変更の定義を構築するためにすでに持っているデータをさらに使用する必要があります。
ロバート・スミス、

回答:


2

一次導関数は、表面的にはそれを行います。ただし、表示するデータには大量のノイズが含まれているため、多少ノイズのない方法で、または少なくとも周波数領域内で1次導関数を評価して、ジッターを排除し、主要な導関数の変化を維持する方法が必要です。

特にマザーウェーブレットとしてガウスの1次導関数を使用する場合、ウェーブレット分析でこれを実現できます。Rには適切なウェーブレットパッケージがいくつかあります(初心者についてはr-project.orgを参照してください)。短いスケールでウェーブレット変換を行うと、ステアリングのジッタービットの場所が特定されます。スケールを大きくして(つまり、周波数を低くして)いくと、レーンシフトだけが見つかり、ジッターが少なくなる可能性があります。

適切なデータセットを使用して変換をトレーニングすると、車線の変更に対応する縮尺または縮尺の範囲を特定できるはずです。ただし、それがわからない場合は、O(n ^ 2)のようになるため、スケール範囲を少し狭めて計算時間を節約してください。


1

ノイズ誘導体の数秒よりも高い数秒を探すだけのようです。各タイムステップから最後(または前者の1つ)までの有限差分の絶対値を計算し、一連の高い値を待つだけです。それは車線変更が発生したときです。


これは私が最初にやったことです。問題は、各車両の移動量が異なるため、差のしきい値と「高い」値が非常に主観的であることです。
umair durrani 2015

1

changepointパッケージを試してください。同様のケースで使用しました。

変化点分析は、2つの「レジーム」間の変化を検出する方法の統計的な名前です。車線に留まっている車は、車線の中点で勾配0の線です。車線を走行する車に統計モデルを簡単に適合させることができます。車を変更する車線が、0以外の勾配で直線に沿って走行しています。モデルが変更されました。チェンジポイント分析とチェンジポイントパッケージは、モデルがy=a' (straight and level) toy = a + bx` から変化する(上昇または下降する)時点を決定するために必要なものです。


これは本質的にリンクのみの回答であり、SEでは推奨されない傾向があります。それが何であるか、なぜそれが役立つのかを詳しく説明できるかもしれません。
Sean Owen、

@AlbertoDあなたが共有したビネットの古風な言語は、変化点分析の概念に慣れていない人には役に立ちません。
umair durrani 2015

@AlbertoDあなたのケースでcpパッケージをどのように使用したかの例を教えていただけませんか?
umair durrani 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.