A system for controlling a faucet for directing fluid into a sink, the system comprising: a spout configured to direct fluid into the sink; a camera arranged to capture images of the sink; a processing circuit including a processor and memory, the memory storing instructions that, when executed by the processor, cause the processor to perform operations, the operations comprising: receiving an image from the camera, the image including an object positioned beneath the spout; analyzing the image received from the camera to assign a classification to the object included in the image; and causing the spout to direct fluid into the sink with fluid flow characteristics that correspond to the classification of the object in the image; characterized in that the system further comprises a ranging sensor configured to generate data corresponding to the relative depths of two or more surfaces of an object positioned beneath the spout; and in that the operations performed by the processor further comprise determining, based on data from the ranging sensor as fluid from the spout fills the object, a relative depth between an edge of the object and the fluid contained in the object, and wherein causing the spout to direct fluid into the sink with fluid flow characteristics that correspond to the classification of the object in the image comprises: causing the spout to direct fluid into the sink to fill the object until the relative depth satisfies a threshold relative depth. a spout configured to direct fluid into the sink; a camera arranged to capture images of the sink; a processing circuit including a processor and memory, the memory storing instructions that, when executed by the processor, cause the processor to perform operations, the operations comprising: receiving an image from the camera, the image including an object positioned beneath the spout; analyzing the image received from the camera to assign a classification to the object included in the image; and causing the spout to direct fluid into the sink with fluid flow characteristics that correspond to the classification of the object in the image; characterized in that the system further comprises a ranging sensor configured to generate data corresponding to the relative depths of two or more surfaces of an object positioned beneath the spout; receiving an image from the camera, the image including an object positioned beneath the spout; analyzing the image received from the camera to assign a classification to the object included in the image; and causing the spout to direct fluid into the sink with fluid flow characteristics that correspond to the classification of the object in the image; characterized in that the system further comprises a ranging sensor configured to generate data corresponding to the relative depths of two or more surfaces of an object positioned beneath the spout; and in that the operations performed by the processor further comprise determining, based on data from the ranging sensor as fluid from the spout fills the object, a relative depth between an edge of the object and the fluid contained in the object, and wherein causing the spout to direct fluid into the sink with fluid flow characteristics that correspond to the classification of the object in the image comprises: causing the spout to direct fluid into the sink to fill the object until the relative depth satisfies a threshold relative depth.