Research this problem: 

  We have a lot of images taken from wing-type UAV by camera with at least FullHD resolution. Resolution of each photo could be up to 6200*4100 for the whole flight, but for other flight could be FullHD, f.e.
Photos are taken and named consecutively within 100 meters distance between each other.
We know only starting GPS coordinates. We need to determine coordinates of centers of each image. And also coordinates of the center of any object on these photos. We can use external satellite provider for ground check the existing photos

  System should process these data samples. They are for references only:

  AD000001.jpg, AD000002.jpg, AD000003.jpg, AD000004.jpg, AD000005.jpg, AD000006.jpg, AD000007.jpg, AD000008.jpg, AD000009.jpg, AD000010.jpg, AD000011.jpg, AD000012.jpg, AD000013.jpg, AD000014.jpg, AD000015.jpg, AD000016.jpg, AD000017.jpg, AD000018.jpg, AD000019.jpg, AD000020.jpg, AD000021.jpg, AD000022.jpg, AD000023.jpg, AD000024.jpg, AD000025.jpg, AD000026.jpg, AD000027.jpg, AD000028.jpg, AD000029.jpg, AD000030.jpg, AD000031.jpg, AD000032.jpg, AD000033.jpg, AD000034.jpg, AD000035.jpg, AD000036.jpg, AD000037.jpg, AD000038.jpg, AD000039.jpg, AD000040.jpg, AD000041.jpg, AD000042.jpg, AD000043.jpg, AD000044.jpg, AD000045.jpg, AD000046.jpg, AD000047.jpg, AD000048.jpg, AD000049.jpg, AD000050.jpg, AD000051.jpg, AD000052.jpg, AD000053.jpg, AD000054.jpg, AD000055.jpg, AD000056.jpg, AD000057.jpg, AD000058.jpg, AD000059.jpg, AD000060.jpg, coordinates.csv


  We have next restrictions for the input data:  

- Photos are taken by only airplane type UAVs.
 - Photos are taken by the camera pointing downwards and fixed, but it is not autostabilized.
 - The flying range is restricted by eastern and southern part of Ukraine (To the left of Dnipro river)
 - The image resolution could be from FullHd to 6252*4168
 - Altitude is prefefined and no more than 1km
 - Flights are done mostly in sunny weather
 - We can use satellite providers, but we're limited right now to Google Maps, which could be possibly outdated for some regions
 - Number of photos could be up to 3000, usually in 500-1500 range
 - During the flight UAV can make sharp turns, so that it is possible that next photo is absolutely different from the previous one (no  same objects), but it is rather exception than the rule

  Output of our system should meet these acceptance criteria:  

- System should find out GPS of centers of 80% of the photos from the flight within error no more than 50 meters in comparison to the real GPS
- System should find out GPS of centers of 60% of the photos from the flight within error no more than 20 meters in comparison to the real GPS
- System should correctly continue the work even in a presence of up to 350 meters outlier photo between 2 consecutive photos en route. This could happen due to tilt of the plane.
- System should correctly continue the work even during sharp turns, where the next photo doesn't overlap at all, or overlaps in less than 5%. Next photo should be in less than 150m drift and angle less than 50%
- Number of outliers during the satellite provider images ground check should be less than 10%
- In case of absolute incapable of the system to determine next, second next, and third next images gps, by any methods, (these 20% of the route), then it should ask user for an input for the next image, so that user can specify location
- Less than 2 seconds for processing one image
- Image Registration Rate > 95%. System can find enough matching features to confidently calculate the camera's 6-DoF pose (position and orientation) and "stitch" that image into the final trajectory
- Mean Reprojection Error (MRE) < 1.0 pixels. The distance, in pixels, between the original pixel location of the object and the re-projected pixel location.

 Find out all the state of the art solutions for this problem and produce the resulting solution draft in the next format:
  - Product solution description
  - Architecture approach that meet restrictions and acceptance criteria
  - Testing strategy. Research the best approaches to cover all the acceptance criteria, functional and non-functional tests
