Чи існують методи машинного навчання для визначення точок на ділянках / зображеннях?


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

Бічне положення змінюється з часом, оскільки водій людини не має ідеального контролю над положенням транспортного засобу. Маневр зміни смуги руху починається, коли бічне положення різко змінюється, і закінчується, коли зміна знову стає «нормальною». Це неможливо ідентифікувати безпосередньо з даних. Я повинен вручну переглянути графік кожного транспортного засобу, щоб визначити початкову та кінцеву точки маневру зміни смуги руху, щоб оцінити тривалість зміни смуги руху. Але я маю тисячі транспортних засобів у наборі даних. Чи можете ви, будь ласка, направити мене на будь-який відповідний алгоритм аналізу зображень / машинного навчання, який би міг бути навчений ідентифікувати ці моменти? Я працюю в Р. Дякую заздалегідь.


Ви намагалися математично визначити, що ви робите, коли вручну класифікуєте маневри зміни смуги руху? Ви широко шукаєте зміну від періоду стабільного близького до нуля градієнта функції положення смуги з подальшим великим збільшенням градієнта, що призводить до іншого періоду, близького до нульового градієнта, або до кінця даних?
image_doctor

Чи є у вас кілька оригінальних зображень, з якими ми могли експериментувати?
image_doctor

Вісь та масштаб є легендами, які не особливо узгоджуються на прикладі зображень, чи є спосіб стандартизації сюжетів, чи у вас немає контролю над створенням зображення?
image_doctor

1
Так, я розумію, що ви хочете визначити кінець маневру смуги змін, але якщо ви вже маєте смугу руху транспортного засобу кожного разу, виявити ці зміни не важко. Я б почав з визначення того, коли ми повинні врахувати, що транспортний засіб вже не змінює смуги руху (наприклад, через задану кількість секунд, їздивши по одній смузі). Ви можете використовувати вікно для виявлення сегментів, у яких транспортний засіб зберігає однакову смугу руху, а точки на початку та в кінці таких сегментів описують відповідно ваш "початок зміни смуги руху" та "кінець зміни смуги руху".
Роберт Сміт

1
Чудово. Я подумав, що у вас немає початкової та цільової смуги, але якщо у вас їх завжди є, ваше рішення повинно працювати і додатково використовувати дані, які ви вже маєте побудувати для визначення зміни смуги руху.
Роберт Сміт

Відповіді:


2

Перша похідна на поверхні зробила б це. Однак дані, які ви показуєте, в них сильно шумують, тому нам потрібен спосіб оцінити першу похідну дещо безшумно або, принаймні, в частотній області, що виключає тремтіння і зберігає основні зміни похідних.

Аналіз вейвлетів міг би досягти цього для вас, особливо якщо ви використовуєте першу похідну Гаусса як вейвлет своєї матері. R має кілька пристойних пакетів вейвлетів ( для початківців див. R-project.org ). Якщо ви зробите вейвлет-перетворення в коротких масштабах, це визначить розташування бітів тремтіння в кермі. Якщо ви робите це в більших масштабах (тобто з меншою частотою), ви, ймовірно, можете знайти лише зсуви смуги руху, а не маленькі тремтіння.

Якщо ви тренуєте трансформацію за допомогою розумного набору даних, ви повинні мати можливість визначити масштаб або діапазон шкал, що відповідає змінам смуги. Але зауважте, що якщо ви цього не зрозумієте, це щось на зразок O (n ^ 2), тому спробуйте трохи звузити діапазон масштабів, щоб заощадити час обчислення.


1

Схоже, ви могли просто шукати на кілька секунд вищі, ніж похідні від шуму. Просто обчисліть абсолютне значення кінцевої різниці від кожного часового кроку до останнього (або одного з попередніх) і чекайте ряду високих значень. Ось тоді відбувається зміна смуги руху.


Це насправді те, що я зробив в першу чергу. Проблема полягає в тому, що поріг різниці та "високі" значення є дуже суб'єктивними, оскільки подорож кожного транспортного засобу різна.
umair durrani

1

Спробуйте пакет зміни . Я використовував це в подібному випадку.

Аналіз змінних змін - це статистична назва методів, що виявляють зміни між двома "режимами". Автомобіль, що перебуває на смузі руху, - це лінія з градієнтом 0 в середній точці смуги руху. Ви легко зможете прилаштувати статистичну модель до автомобілів, що рухаються по смугах. Автомобіль, що змінюється, рухається по лінії з нахилом, який не дорівнює 0. Модель змінилася. Аналіз змінної точки та пакет змін - це саме те, що вам потрібно визначити, коли модель змінюється на y=a' (straight and level) toy = a + bx` (йде вгору або вниз).


Це, по суті, відповідь, що стосується лише посилання, і, як правило, не відштовхується від SE. Можливо, ви можете розробити, що це таке, і чому це корисно.
Шон Оуен

@AlbertoD Архаїчна мова віньєтки, якою ви поділилися, не є корисною для когось нового в концепції аналізу точок зміни.
umair durrani

@AlbertoD Чи можете ви надати будь-який приклад того, як ви використовували пакет cp у своєму випадку?
umair durrani
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.