Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

In C++ please --- For this assignment, develop a simple object tracker to track the three target types that we discussed during lecture (i.e., car,

In C++ please

---

For this assignment, develop a simple object tracker to track the three target types that we discussed during lecture (i.e., car, truck, motorcycle or you can choose any targets that you want). The tracker will read in a file containing detections. Detections are essentially moving objects on the ground that are seen by an airborne sensor using some type of sensor. For this exercise, lets assume that the sensor is an Electro Optics (EO) sensor. Processing has already been done to convert whats seen in the EO image into a bunch of (x,y) positions on the ground where the targets were seen in the image. Of course, some of the (x,y) points may not correspond to a real target (i.e., could be remnant of the processing, noise, etc.). The detection file will also contain the type of target. An example of the detection.dat file looks like: Scan 1 1 1 1 car 1 2 2 truck 1 3 3 motorcycle 1 4 4 unknown 1 5 5 car 1 6 6 car Scan 2 2 2 2 car 2 3 3 truck 2 5 5 motorcycle Etc... Where each Scan # represents the results from processing one EO image. The format is: (Time x y type). For this assignment, make things simple by assuming that the target is moving at constant speed, i.e. the new position (X(t+1), Y(t+1)) = (X(t), Y(t)) + speed*direction*time The speed and direction will be calculated by your tracker and saved to the track. The basic idea of a tracker is to try to associate all the detections from the same target together into a single track. The basic processing flow is as followed:

1. Read the first Scan and initialize the track using time, position, and target ID. Initialize the speed and direction to some random number 2. Read the next Scan and compute the distance between the position of each new detection with each of the track positions. A 2-D array should be generated containing the distance between every track and every detection from the new scan 3. Run Munkres algorithm to find the best track vs. detection pair (Munkres code is provided). 4. Once you have at least two pairs of positions associated with each track, go back and calculate the speed and direction and save these values to the track. 5. Read in the next Scan. With the saved speed and direction, predict the new track position using the kinematics model described above. Once you predict the next track position, use the predicted track position and compute the distance as in step 2. 6. Repeat steps 3-5 So thats the basic processing to develop a simple tracker. To represent the track in your code, you should use either a vector or linked list STL to store a superclass vehicle as we did in lecture. Have the car, truck, motorcycle inherit from vehicle so that your tracks can store the different target types.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Understanding Oracle APEX 5 Application Development

Authors: Edward Sciore

2nd Edition

1484209893, 9781484209899

Students also viewed these Databases questions