Tenho dados para a posição lateral de cada veículo ao longo do tempo e o número da faixa, como mostrado nessas três parcelas na imagem e nos dados de amostra abaixo.
> 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
A posição lateral varia ao longo do tempo, porque um motorista humano não tem controle perfeito sobre a posição do veículo. A manobra de mudança de faixa começa quando a posição lateral muda drasticamente e termina quando a variação se torna 'normal' novamente. Isso não pode ser identificado diretamente dos dados. Eu tenho que olhar manualmente para a plotagem de cada veículo para determinar os pontos inicial e final da manobra de mudança de faixa para estimar a duração da mudança de faixa. Mas eu tenho milhares de veículos no conjunto de dados. Você poderia me indicar um algoritmo relevante de análise de imagem / aprendizado de máquina que pudesse ser treinado para identificar esses pontos? Eu trabalho na R. Agradecemos antecipadamente.
fonte
Respostas:
Uma primeira derivada, na superfície, faria isso. No entanto, os dados que você mostra têm bastante ruído, portanto, precisamos de uma maneira de avaliar a primeira derivada de uma maneira um tanto silenciosa ou, pelo menos, dentro de um domínio de frequência que elimine a instabilidade e preserve a principal alteração da derivada.
A análise da wavelet pode conseguir isso para você, especialmente se você usar a primeira derivada de um gaussiano como sua wavelet de mãe. O R possui alguns pacotes decentes de wavelet (consulte r-project.org para iniciantes). Se você transformar a wavelet em escalas curtas, isso identificará os locais dos bits de tremulação na direção. Se você fizer isso em escalas maiores (ou seja, com frequência mais baixa), provavelmente poderá encontrar apenas as mudanças de faixa e não os pequenos tremores.
Se você treinar a transformação com um conjunto de dados razoável, poderá identificar uma escala ou um intervalo de escalas que corresponda às mudanças de faixa. Mas observe que, se você não descobrir isso, é algo como O (n ^ 2); portanto, tente reduzir um pouco o intervalo de escala para economizar tempo de computação.
fonte
Parece que você pode procurar por alguns segundos mais alto que o derivado de ruído. Apenas calcule o valor absoluto da diferença finita de cada passo no tempo até o último (ou um dos primeiros) e aguarde uma série de valores altos. É quando uma mudança de faixa ocorre.
fonte
Experimente o pacote do ponto de mudança . Eu usei em um caso semelhante.
Análise de ponto de mudança é o nome estatístico para métodos que detectam alterações entre dois "regimes". Um carro que fica em uma faixa é uma linha com gradiente 0 no ponto médio de uma faixa. Você pode ajustar facilmente um modelo estatístico aos carros que circulam nas faixas. Uma faixa de mudança de carro está dirigindo ao longo de uma linha com um gradiente que não é 0. O modelo mudou. A análise do ponto de mudança e o pacote do ponto de mudança são exatamente o que você precisa para determinar o ponto em que um modelo muda de
y=a' (straight and level) to
y = a + bx` (subindo ou descendo).fonte