J'ai des données pour la position latérale de chaque véhicule dans le temps et le numéro de voie comme indiqué dans ces 3 graphiques dans l'image et des exemples de données ci-dessous.
> 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
La position latérale varie dans le temps car un conducteur humain n'a pas un contrôle parfait sur la position du véhicule. La manœuvre de changement de voie commence lorsque la position latérale change radicalement et se termine lorsque la variation redevient «normale». Cela ne peut pas être identifié directement à partir des données. Je dois regarder manuellement le tracé de chaque véhicule pour déterminer les points de début et de fin de la manœuvre de changement de voie afin d'estimer la durée du changement de voie. Mais j'ai des milliers de véhicules dans l'ensemble de données. Pourriez-vous s'il vous plaît me diriger vers un algorithme d'analyse d'image / d'apprentissage automatique pertinent qui pourrait être formé pour identifier ces points? Je travaille dans R. Merci d'avance.
la source
Réponses:
Une dérivée première, en surface, le ferait. Cependant, les données que vous montrez contiennent beaucoup de bruit, nous avons donc besoin d'un moyen d'évaluer la dérivée première d'une manière quelque peu silencieuse, ou au moins dans un domaine de fréquence qui élimine la gigue et préserve le changement dérivé majeur.
L'analyse des ondelettes pourrait vous permettre d'atteindre cet objectif, surtout si vous utilisez la première dérivée d'un gaussien comme ondelette mère. R a quelques paquets d'ondelettes décents (voir r-project.org pour commencer). Si vous effectuez la transformation en ondelettes à de courtes échelles, cela identifiera les emplacements des bits de gigue dans la direction. Si vous le faites à des échelles plus grandes (c'est-à-dire une fréquence plus basse), vous pouvez probablement trouver uniquement les changements de voie et non les petites tremblements.
Si vous entraînez la transformation avec un ensemble de données raisonnable, vous devriez être en mesure d'identifier une échelle ou une plage d'échelles correspondant aux changements de voie. Mais notez que si vous ne comprenez pas cela, c'est quelque chose comme O (n ^ 2), essayez donc de réduire un peu la plage d'échelle pour gagner du temps de calcul.
la source
On dirait que vous pouvez simplement rechercher pendant quelques secondes une dérivée plus élevée que le bruit. Il suffit de calculer la valeur absolue de la différence finie de chaque pas de temps au dernier (ou l'un des premiers) et d'attendre une série de valeurs élevées. C'est alors qu'un changement de voie se produit.
la source
Essayez le package changepoint . Je l'ai utilisé dans un cas similaire.
L'analyse des points de changement est le nom statistique des méthodes qui détectent les changements entre deux "régimes". Une voiture restant dans une voie est une ligne avec un gradient 0 au milieu d'une voie. Vous pouvez facilement adapter un modèle statistique aux voitures roulant dans les voies. Une voiture qui change de voie roule sur une ligne dont la pente n'est pas nulle. Le modèle a changé. L'analyse des points de changement et le package de points de changement sont exactement ce dont vous avez besoin pour déterminer le point où un modèle passe de
y=a' (straight and level) to
y = a + bx` (en montant ou en descendant).la source