Спасибо за замечание. Действительно, объекты, которые были недавно обнаружены, стоит рассматривать отдельно. Однако, это вопрос вторичной обработки. На практике для каждого объекта подсчитываются время наблюдения, время в прогнозе, стабильность во времени и другие характеристики, которые позволяют принять решение о возможности сопровождения объекта. Между тем, с точки зрения рассматриваемого в статье алгоритма, объекты с малым временем жизни не отличаются от устойчивых объектов. Для них также необходимо искать соответствия с сегментами на текущем кадре и, в случае нахождения соответствия, уточнять их положение и другие параметры. Таким объектам можно присваивать уникальные метки только по прошествии какого-то времени, можно просто не показывать треки или что-то еще придумать. Это, на мой взгляд, зависит от конкретной задачи.
Что касается слияния и разделения треков. Давайте посмотрим, что происходит сейчас при заслонении объектов. Один из объектов (причем заранее не ясно какой) остается наблюдаемым (с точки зрения алгоритма), другой уходит в прогноз. При этом алгоритм может перепутать объекты и для объекта, который едет влево, строить прогноз в правую сторону. Наоборот, для объекта, который алгоритм считает наблюдаемым (тот который на самом деле едет вправо), он начинает обновлять параметры фильтра Калмана таким образом, что искажает реальное положение дел. Кроме того, даже в случае правильной работы алгоритма, при слишком долгом слиянии или маневрах объектов для того из них, который находится в прогнозе, сам прогноз может оказаться уже некорректным и перезахвата не произойдет — объекту будет присвоена новая метка (что не совсем соответсвует желаемому результату).
В этой ситуации представляется правильным, детектировать ситуации, связанные со слиянием и разделением объектов (заслонением одного объекта другим). Объединенному сегменту можно давать новую метку или метку одного из объектов, а метку другого (или обоих) запоминать. После разделения сегментов можно возвращать старые метки, анализируя некоторую предысторию.
Что касается слияния и разделения треков. Давайте посмотрим, что происходит сейчас при заслонении объектов. Один из объектов (причем заранее не ясно какой) остается наблюдаемым (с точки зрения алгоритма), другой уходит в прогноз. При этом алгоритм может перепутать объекты и для объекта, который едет влево, строить прогноз в правую сторону. Наоборот, для объекта, который алгоритм считает наблюдаемым (тот который на самом деле едет вправо), он начинает обновлять параметры фильтра Калмана таким образом, что искажает реальное положение дел. Кроме того, даже в случае правильной работы алгоритма, при слишком долгом слиянии или маневрах объектов для того из них, который находится в прогнозе, сам прогноз может оказаться уже некорректным и перезахвата не произойдет — объекту будет присвоена новая метка (что не совсем соответсвует желаемому результату).
В этой ситуации представляется правильным, детектировать ситуации, связанные со слиянием и разделением объектов (заслонением одного объекта другим). Объединенному сегменту можно давать новую метку или метку одного из объектов, а метку другого (или обоих) запоминать. После разделения сегментов можно возвращать старые метки, анализируя некоторую предысторию.