A fiber optic shelving system comprising: a shelf including a plurality of holes on a top surface of the shelf; a plurality of fiber optic filaments, each of the plurality of fiber optic filaments having a first end and a second end, and the first end being coupled to one of the plurality of holes; characterized in that the fiber optic shelving system further comprises: a holder configured to hold the second ends of the plurality of fiber optic filaments, the holder exposing terminal surfaces of the second ends of the plurality of fiber optic filaments; a first camera configured to capture an image of the terminal surfaces of the second ends of the plurality of fiber optic filaments; a second camera configured to capture an image of a side of one or more products on the shelf; one or more processors communicatively coupled to the first camera and the second camera; one or more memory components communicatively coupled to the one or more processors; and machine readable instructions stored in the one or more memory components that, when executed by the one or more processors, cause the fiber optic shelving system to: determine a number of products on the shelf based on the captured image of the terminal surfaces of the second ends of the plurality of fiber optic filaments and the captured image of the side of one or more products on the shelf. a shelf including a plurality of holes on a top surface of the shelf; a plurality of fiber optic filaments, each of the plurality of fiber optic filaments having a first end and a second end, and the first end being coupled to one of the plurality of holes; characterized in that the fiber optic shelving system further comprises: a holder configured to hold the second ends of the plurality of fiber optic filaments, the holder exposing terminal surfaces of the second ends of the plurality of fiber optic filaments; a first camera configured to capture an image of the terminal surfaces of the second ends of the plurality of fiber optic filaments; a second camera configured to capture an image of a side of one or more products on the shelf; one or more processors communicatively coupled to the first camera and the second camera; one or more memory components communicatively coupled to the one or more processors; and machine readable instructions stored in the one or more memory components that, when executed by the one or more processors, cause the fiber optic shelving system to: determine a number of products on the shelf based on the captured image of the terminal surfaces of the second ends of the plurality of fiber optic filaments and the captured image of the side of one or more products on the shelf. a holder configured to hold the second ends of the plurality of fiber optic filaments, the holder exposing terminal surfaces of the second ends of the plurality of fiber optic filaments; a first camera configured to capture an image of the terminal surfaces of the second ends of the plurality of fiber optic filaments; a second camera configured to capture an image of a side of one or more products on the shelf; one or more processors communicatively coupled to the first camera and the second camera; one or more memory components communicatively coupled to the one or more processors; and machine readable instructions stored in the one or more memory components that, when executed by the one or more processors, cause the fiber optic shelving system to: determine a number of products on the shelf based on the captured image of the terminal surfaces of the second ends of the plurality of fiber optic filaments and the captured image of the side of one or more products on the shelf.