Обычно есть ветка, в которую разрабы сливают все свои изменения (у нас это develop). При слаянии develop в f1 разработчик может решить все конфликты и провести тесты в своей ветке. А уже затем отправить pull request в develop.
Если под определением объектов понимается обнаружение и распознаваниt то:
1. Можно взять detection api из tensorflow (python, вроде есть api для c++) или YOLOv2(c? c++, python).
2. Нейронки работают с видео как с последовательностью изображений => для прослеживания и всего прочего данные с нейронки необходимо передавать на трекер (можно использвовать венгерский алгоритм), гуглить в сторону multi object tracking.
Можно сделать на основе kNN, вычисляем ближайших соседей для каждого числа в массиве, а дальше уже работаем с массивами соседей.
Такой подход будет работать и на не отсортированном массиве.
Можно сразу искать границы.
1. cv::Canny. Метод для поиска границ.
2. cv::findContours. находит контуры и сохраняет их в вектор
А дальше, анализируя контуры можно убрать лишнее...
В свое время занимался трекингом подвижных объектов(выделял факт наличия движения а затем уже отслеживал).
Для трекинга использовал Венгерский алгоритм.
Было что-то вроде этого: https://github.com/Smorodov/Multitarget-tracker
Посмотрите содержимое загаловочного файла. GCC определяет компилятор сс или g++ по расширению файла исходного текста. Как дела в Visual С я не знаю.
Пполне возможно, что там код на C++.
Вам известны текущие координаты машины?
Если они известны, то для движения машины по траектории можно испильзовать ПИД регулятор. Если я правильно понял задачу.
Решаем с помощью openCV.
1. Пороговая обработка (все что != цвету рамки -> 0, иначе 1);
2. Находим границы с помощью canny;
3. Находим контуры(findContours с флагом RETR_EXTERNAL) найти самый длинный. Это по идее будет внутренняя сторона рамки.
4. Апроксимируем контур (convexHull)
5. Зная левую верхнюю и правую нижнюю точки, можно найти рамки.
толщина левой = Xmin;
толщина верхней = Ymin;
толщина правой = w - Xmax;
толщина нижней = р - Ymax;