The Bigger Picture
We are comparing the location of objects on shelves.
We have two pictures of shelves and are comparing the items on them. We want to locate which items are missing and which items are in the wrong location.
We have completed the object detection part of the project, the final part is to compare the results.
So we have a planogram of what is expected on the shelves and we are comparing that against the object detections in an image.
We a looking for a generic solution so we do not have to write a new algorithm for each plannogram.
We have two lists of objects, one list of the expected objects (planogram) and one list of the detected objects. Both list contain x and y locations of the objects.
We require the results of the algorithm to report two things:
1.) Detect what objects are missing and the approximate location where they are expected.
2.) Detect any objects out of sequence and report which object it was expecting there.
- The size of the images can be different sizes
- Objects of the same type can be different sizes.
- Objects will only ever be rectangles
- As the objects can be displayed on racking, they will not be in clean columns or rows.
- Many objects maybe missing (See [login to view URL])
The attached CSV's (In the zip file) contains the list of the detections. Also included is the visual representation of that data as an image. Unfortunately we cannot provide actual images
What we would like is a project that accepts two lists and compares the lists.
The lists will contain the data with in the CSV files.
We would like a list returned, a CSV in this case, that contains a row for each discrepancy.
Each discrepancy should state:
- Expected ObjectClassId
- Expected X and Y co-ordinates of expected/missing object
- Actual ObjectClassId (Empty if reporting missing object)
Please understand this is a geometry problem, not an image recognition or image processing problem. We will use the results of this solution to complete our own image processing.
C# or python are the preferred languages, other languages considered.
Any limitations or further assumptions made should also be documented.