Storage cabinet comprising one or more shelves, one or more doors for closing the cabinet, and an electromagnetic lock for locking the door or doors; wherein each of said shelves comprises one or more cameras, an opened or closed door state sensor, and a weight sensor arranged to measure weight of products placed on each of said one or more shelves; further comprising a cabinet electronic data processor configured for carrying out a machine learning computer vision method for processing data received from cameras and sensors to identify products removed from said one or more shelves, wherein the cabinet electronic data processor is further configured for: when detecting the cabinet door or doors being in an open state, acquiring image data from the camera or cameras and weight sensor data; when detecting a weight change at a shelf, processing image data acquired including when the weight change occurred, with said machine learning computer vision method; wherein the cabinet electronic data processor is further configured for receiving, as preceding steps, a valid user authorisation and unlocking the electromagnetic lock; and refusing subsequent user authorisations until a previous user has closed the door or doors; wherein the machine learning computer vision method comprises a Convolutional Neural Network, CNN; wherein cabinet electronic data processor is connected to a remote server, configured for carrying out a machine learning computer vision method for processing image data as a redundant processing to that of the cabinet electronic data processor; wherein the cabinet electronic data processor is further configured for sending a list of products identified as removed from said one or more shelves between receiving a valid user authorisation and receiving door state sensor data indicating the door or doors as closed; wherein the cabinet electronic data processor is further configured for comparing weight data before a product is removed from a shelf, with weight data and after a product is returned to a shelf, and triggering an action should a weight difference exceeding a predetermined threshold is detected; wherein the cabinet electronic data processor is further configured for carrying out a machine learning computer vision method for processing data received from cameras comprising a first machine learning computer vision model trained for classifying a product handling event as a product pickup or product return and a second machine learning computer vision model trained for identifying the product being handled in said product handling event, after the first machine learning computer vision model classification. wherein each of said shelves comprises one or more cameras, an opened or closed door state sensor, and a weight sensor arranged to measure weight of products placed on each of said one or more shelves; further comprising a cabinet electronic data processor configured for carrying out a machine learning computer vision method for processing data received from cameras and sensors to identify products removed from said one or more shelves, wherein the cabinet electronic data processor is further configured for: when detecting the cabinet door or doors being in an open state, acquiring image data from the camera or cameras and weight sensor data; when detecting a weight change at a shelf, processing image data acquired including when the weight change occurred, with said machine learning computer vision method; when detecting the cabinet door or doors being in an open state, acquiring image data from the camera or cameras and weight sensor data; when detecting a weight change at a shelf, processing image data acquired including when the weight change occurred, with said machine learning computer vision method; wherein the cabinet electronic data processor is further configured for receiving, as preceding steps, a valid user authorisation and unlocking the electromagnetic lock; and refusing subsequent user authorisations until a previous user has closed the door or doors; wherein the machine learning computer vision method comprises a Convolutional Neural Network, CNN; wherein cabinet electronic data processor is connected to a remote server, configured for carrying out a machine learning computer vision method for processing image data as a redundant processing to that of the cabinet electronic data processor; wherein the cabinet electronic data processor is further configured for sending a list of products identified as removed from said one or more shelves between receiving a valid user authorisation and receiving door state sensor data indicating the door or doors as closed; wherein the cabinet electronic data processor is further configured for comparing weight data before a product is removed from a shelf, with weight data and after a product is returned to a shelf, and triggering an action should a weight difference exceeding a predetermined threshold is detected; wherein the cabinet electronic data processor is further configured for carrying out a machine learning computer vision method for processing data received from cameras comprising a first machine learning computer vision model trained for classifying a product handling event as a product pickup or product return and a second machine learning computer vision model trained for identifying the product being handled in said product handling event, after the first machine learning computer vision model classification.