Object dimensioning system
A dimensioning system includes: a depth camera system mounted above a working surface; and a computing device including a processor and memory, the memory storing instructions that, when executed by the processor, cause the processor to: detect a triggering condition when an object is placed on the working surface; control the depth camera system to capture a depth image of the object in response to the triggering condition; segment the object from a background depicted in the depth image to identify a portion of the depth image corresponding to a segmented object; and compute a plurality of dimensions of the object based on the portion of the depth image.
1 . A dimensioning system comprising:
a depth camera system mounted above a working surface; and
a computing device comprising a processor and memory, the memory storing instructions that, when executed by the processor, cause the processor to:
detect a triggering condition when an object is placed on the working surface;
control the depth camera system to capture a depth image of the object in response to the triggering condition;
segment the object from a background depicted in the depth image to identify a portion of the depth image corresponding to a segmented object;
compute a plurality of dimensions of the object based on the portion of the depth image; and
perform a calibration of the depth camera system by:
capturing a calibration depth image of the working surface; and
determining the plane of the working surface based on the calibration depth image,
wherein the memory further stores instructions that, when executed by the processor, cause the processor to periodically perform self-recalibration of the depth camera system between scans when no object is present on the working surface.
2 . The dimensioning system of claim 1 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to transmit the plurality of dimensions of the object to a server computer.
3 . The dimensioning system of claim 1 , further comprising:
a scale mounted underneath the working surface,
wherein the memory further stores instructions that, when executed by the processor, cause the processor to record a weight of the object as measured by the scale.
4 . The dimensioning system of claim 3 , wherein the triggering condition comprises detecting a weight on the scale greater than zero.
5 . The dimensioning system of claim 1 , further comprising a barcode scanner connected to the computing device,
wherein the triggering condition comprises scanning a barcode with the barcode scanner and decoding the barcode by the computing device.
6 . The dimensioning system of claim 1 , wherein the depth camera system comprises a color camera,
wherein the working surface has a solid pattern or color, and
wherein the instructions to segment the object from the background depicted in the depth image comprise instructions to remove portions of the depth image having the solid pattern or color of the working surface.
7 . The dimensioning system of claim 1 , wherein the instructions to segment the object from the background depicted in the depth image comprise instructions to identify portions of the depth image closer to the depth camera system than a plane of the working surface.
8 . The dimensioning system of claim 1 , wherein the memory further stores instructions to periodically perform the calibration of the depth camera system.
9 . The dimensioning system of claim 7 , wherein the instructions to segment the object from the background depicted in the depth image comprise instructions to disregard clusters of pixels of the depth image having a depth closer to the depth camera system than the plane of the working surface than extend to a boundary of a field of view of the depth camera system.
10 . The dimensioning system of claim 1 , wherein the instructions to compute the dimensions of the segmented object comprise instructions to calculate a minimum bounding box that surrounds pixels of the portion of the depth image corresponding to the segmented object.
11 . The dimensioning system of claim 10 , wherein the memory further stores instructions to:
generate user feedback in response to computing the plurality of dimensions of the object.
12 . The dimensioning system of claim 1 , wherein the computing device of the dimensioning system is detachable from the depth camera system, and
wherein the computing device comprises an integrated second depth camera system.
13 . A method for computing dimensions of an object, the method comprising:
detecting, by a computing device comprising a processor and memory, a triggering condition when an object is placed on a working surface;
controlling, by the computing device, a depth camera system to capture a depth image of the object in response to the triggering condition;
segmenting, by the computing device, the object from a background depicted in the depth image to identify a portion of the depth image corresponding to the segmented object;
computing, by the computing device, a plurality of dimensions of the object based on the portion of the depth image corresponding to the segmented object; and
performing a calibration of the depth camera system by:
capturing a calibration depth image of the working surface without the object; and
determining a plane of the working surface based on the calibration depth image,
wherein the method further comprises self-recalibration by periodically performing the calibration of the depth camera system, and
wherein the calibration of the depth camera system is performed between scans when no object is present on the working surface.
14 . The method of claim 13 , further comprising transmitting the plurality of dimensions of the object to a server computer.
15 . The method of claim 13 , wherein a scale is mounted underneath the working surface, and
wherein the method further comprises recording a weight of the object as measured by the scale.
16 . The method of claim 15 , wherein the triggering condition comprises detecting a weight on the scale greater than zero.
17 . The method of claim 13 , wherein the triggering condition comprises detecting scanning of a barcode with a barcode scanner and decoding the barcode by the computing device.