A tangible, non-transitory computer-readable medium storing program instructions that, when executed by a computing circuit, cause the computing circuit, or another circuit controlled by the computing circuit:
- to receive an image of products disposed in a display structure having sections;
- to generate respective visual descriptors of pixels within windows of the image, each window having a boundary dimension;
- to compare each of visual descriptors to a visual-descriptor template;
- to generate a respective boundary value in response to each comparison,
- to identify the sections of the display structure by
- generating a boundary signal in response to the boundary values, and
- identifying at least one boundary between the sections of the display structure in response to the boundary signal, the identified at least one boundary extending in the boundary dimension;
- to identify at least one respective product within each two or more identified sections of the display structure;
- to determine an arrangement of the identified products within the two Or more of the identified sections of the display structure;
- to compare the determined arrangement to a product-arrangement template;
- and
- to generate a product-arrangement score in response to the comparing of the determined arrangement to the product-arrangement template.