WO2022137509A1 - 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム - Google Patents

物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム Download PDF

Info

Publication number
WO2022137509A1
WO2022137509A1 PCT/JP2020/048760 JP2020048760W WO2022137509A1 WO 2022137509 A1 WO2022137509 A1 WO 2022137509A1 JP 2020048760 W JP2020048760 W JP 2020048760W WO 2022137509 A1 WO2022137509 A1 WO 2022137509A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
point cloud
dimensional
information
region
Prior art date
Application number
PCT/JP2020/048760
Other languages
English (en)
French (fr)
Inventor
卓宏 大和田
峰斗 佐藤
雅嗣 小川
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2020/048760 priority Critical patent/WO2022137509A1/ja
Priority to JP2022570951A priority patent/JP7456521B2/ja
Publication of WO2022137509A1 publication Critical patent/WO2022137509A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Definitions

  • This disclosure relates to an object recognition device, an object recognition method, a non-temporary computer-readable medium, and an object recognition system.
  • Patent Document 1 discloses that the picking device generates three-dimensional point cloud information of a plurality of picking objects as a whole, and outputs the position and orientation of the picking object based on the generated three-dimensional point cloud information.
  • the three-dimensional position / attitude recognition device includes an object recognition unit that has been deeply learned, and the object recognition unit performs object recognition on an image obtained by an image sensor, and the object type and the area in the image. Disclose to identify.
  • Patent Document 1 outputs the position and orientation of one type of picking object. Therefore, when it is desired to specify the position and orientation with respect to a plurality of types of objects, there is a possibility that the position of the object cannot be specified even by using the technique disclosed in Patent Document 1.
  • the technique disclosed in Patent Document 2 uses a deep-learned object identification unit to identify an object type of an object and a region in an image. However, if there are many types of objects and the object recognition unit is not sufficiently learned, it may not be possible to specify the region of the object.
  • One of the purposes of the present disclosure is to solve the above-mentioned problems, and is an object recognition device, an object recognition method, and a non-temporary computer readable capable of accurately specifying the position and orientation of an object.
  • the purpose is to provide a medium and object recognition system.
  • the object recognition device is Based on the 3D point group generated by converting the distance image including the distance information to the object, the object region including the 3D point group indicating the position of the surface of the object is specified, and the object region is set to the object region.
  • a specific means for specifying a reference shape similar to the object based on the included three-dimensional point group and the feature information of the reference shape, and A three-dimensional point cloud included in the object region and an estimation means for estimating a reference position and a posture of the object based on the specified reference shape are provided.
  • the object recognition method is Based on the 3D point group generated by converting the distance image including the distance information to the object, the object region including the 3D point group indicating the position of the surface of the object is specified. Based on the three-dimensional point cloud included in the object region and the feature information of the reference shape, a reference shape similar to the object is specified. It is an object recognition method executed by an object recognition device that estimates a reference position and an attitude of the object based on a three-dimensional point cloud included in the object region and the specified reference shape.
  • Non-temporary computer-readable media relating to this disclosure may be. Based on the 3D point group generated by converting the distance image including the distance information to the object, the object region including the 3D point group indicating the position of the surface of the object is specified. Based on the three-dimensional point cloud included in the object region and the feature information of the reference shape, a reference shape similar to the object is specified.
  • a non-temporary program that causes a computer to execute a process for estimating the reference position and orientation of the object based on the three-dimensional point cloud included in the object region and the specified reference shape. It is a computer-readable medium.
  • the object recognition system related to this disclosure is with the above object recognition device, An input device for inputting object information to be moved and a moving destination position of the object indicated by the object information to be moved. A robot device for moving the object to the destination position, and the like.
  • the object recognition device is It is an object recognition system further comprising a control means for selecting the object from the objects based on the object information.
  • an object recognition device an object recognition method, a non-temporary computer-readable medium, and an object recognition system capable of accurately specifying the position and orientation of an object.
  • FIG. 1 is a diagram showing a configuration example of an object recognition device according to the first embodiment.
  • the object recognition device 1 includes a specific unit 2 and an estimation unit 3.
  • the specifying unit 2 specifies an object region including a three-dimensional point group indicating the position of the surface of the object based on a three-dimensional point group generated by converting a distance image including distance information to the object.
  • the object is an object to be imaged, and may be one object or two or more objects.
  • the distance image includes distance information from the image pickup device (not shown) to the object to be imaged, and is an image showing the distance from the image pickup device to the object and the position of the object based on the position of the image pickup device. Is.
  • the distance image includes a plurality of points, each of which indicates the position of the object with respect to the position of the image pickup device and the distance from the image pickup device to the object.
  • the distance image is an image in which each pixel corresponds to a position in the image pickup region captured by the image pickup device and the distance from the image pickup device to the position is a pixel value.
  • the three-dimensional point cloud is a set of three-dimensional coordinate data indicating a position generated by converting a distance image from a camera coordinate system to a world coordinate system.
  • the camera coordinate system is a three-dimensional Cartesian coordinate system in which the position of the image pickup device is the origin, two axes are provided in the image plane imaged by the image pickup device, and the direction orthogonal to the image plane is the third axis.
  • the world coordinate system is a three-dimensional Cartesian coordinate system whose origin is an arbitrary position in a three-dimensional space.
  • the 3D point cloud may be referred to as 3D point cloud data, 3D point cloud data, or point cloud data. Therefore, in the following description, the 3D point cloud may be described as 3D point cloud data, 3D point cloud data, point cloud data, or 3D point cloud information. Further, each point included in the three-dimensional point cloud is described as point data or a point.
  • the specifying unit 2 identifies a reference shape similar to the object based on the three-dimensional point cloud included in the specified object region and the feature information of the reference shape.
  • the reference shape may include, for example, a rectangular parallelepiped, a cylinder, a sphere, or the like.
  • the feature information may include normal vector related information related to the normal vector of the surface constituting the reference shape.
  • the estimation unit 3 estimates the reference position and posture of the object based on the three-dimensional point cloud included in the object region and the reference shape specified by the specific unit 2.
  • the reference position is a position where the position of the object can be specified.
  • the reference position may be the center position of the object, the position of the object closest to the image pickup device (not shown), the position farthest from the image pickup device, and the average distance from the image pickup device. It may be the position of the value or the median value.
  • the posture is information representing the displacement of each object from the reference state, and may be expressed using a roll angle, a pitch angle, and a yaw angle.
  • the reference state may be, for example, a state in which a predetermined position on the surface of the object is placed on a plane parallel to the horizontal plane, and is a state that can be arbitrarily set.
  • the roll angle, pitch angle, and yaw angle may be simply described as roll, pitch, and yaw, respectively.
  • the object recognition device 1 acquires a distance image, and based on the three-dimensional point group to which the distance image is converted, creates an object region including a three-dimensional point group indicating the position of the surface of the object. Can be identified.
  • the object recognition device 1 identifies a reference shape similar to the object based on the three-dimensional point group included in the specified object region and the feature information of the reference shape, and uses the specified reference shape to identify the target. The reference position and posture of an object can be estimated.
  • the object recognition device 1 can specify the reference position and the posture of the object even if there are a plurality of types of the object by using the feature information of the plurality of reference shapes. That is, the object recognition device 1 can specify the position and orientation of the object even if a plurality of types of objects are included by using the feature information of the plurality of reference shapes. Further, since the object recognition device 1 uses the feature information of the reference shape, the object region including the object can be specified without requiring the information about the object, and the position and orientation of the object can be estimated. Therefore, according to the object recognition device 1 according to the first embodiment, even if a plurality of types of objects are included, the reference position and posture of the objects can be specified, and the objects can be compared with related techniques. The position and posture can be specified accurately.
  • the second embodiment is an embodiment that embodies the first embodiment.
  • ⁇ Configuration example of 3D object recognition device> A configuration example of the three-dimensional object recognition device 100 according to the second embodiment will be described with reference to FIG.
  • FIG. 2 is a block diagram showing a configuration example of the three-dimensional object recognition device according to the second embodiment.
  • the three-dimensional object recognition device 100 is, for example, a device that captures an image of an object placed on a workbench and estimates a reference position and a posture of the object based on the captured image.
  • the three-dimensional object recognition device 100 corresponds to the object recognition device 1 according to the first embodiment.
  • the three-dimensional object recognition device 100 may be applied to, for example, a robot task or a Pick & Place device. Further, the three-dimensional object recognition device 100 is, for example, a moving body such as an automobile or a drone that automatically drives, and may be mounted on a moving body that detects an obstacle.
  • the three-dimensional object recognition device 100 includes a sensor unit 110 and a processing unit 210.
  • the sensor unit 110 is configured to include, for example, an image pickup device such as a stereo camera, a ToF (Time of Flight) camera, a millimeter wave radar, and LiDAR (Light Detection and Ranging Laser Imaging Detection and Ranging).
  • the sensor unit 110 irradiates a predetermined area such as a workbench with a laser beam. At least one object, which is an object to be imaged, is placed on the workbench.
  • the sensor unit 110 receives the laser light reflected by the object among the laser light radiated to the work table, and each point generates a distance image including the distance information from the sensor unit 110 to the object. ..
  • the sensor unit 110 outputs the generated distance image to the processing unit 210.
  • the processing unit 210 identifies an object region including a three-dimensional point group indicating the position of the surface of the imaged object based on the distance image generated by the sensor unit 110, and the reference position and the posture of the imaged object.
  • the reference position is a position where the position of the object can be specified.
  • the reference position may be the center position of the object, the position of the object closest to the sensor unit 110, the position farthest from the sensor unit 110, and the average value of the distances from the sensor unit 110. Alternatively, it may be the position of the median value.
  • the processing unit 210 estimates the reference position of the object based on the generated three-dimensional point cloud using the coordinates of the world coordinate system. In the following description, the reference position will be described as the center position of the object.
  • the processing unit 210 derives the displacement of each object from the reference state as the posture of each object using the roll angle, pitch angle, and yaw angle.
  • the reference state may be, for example, a state in which a predetermined position on the surface of the object is placed on a plane parallel to the horizontal plane, or a state in which it can be arbitrarily set.
  • the processing unit 210 includes a point cloud acquisition unit 201, a separation unit 202, an object identification unit 203, and a position / orientation derivation unit 204.
  • the point cloud acquisition unit 201 inputs the distance image output from the sensor unit 110.
  • the point cloud acquisition unit 201 converts the distance image from the camera coordinate system to the world coordinate system, and generates a three-dimensional point cloud in which each point indicates a position in the three-dimensional space.
  • the three-dimensional point cloud is data representing a set of points shown using three-dimensional Cartesian coordinates, which is a world coordinate system. That is, the three-dimensional point group is data representing a set of three-dimensional coordinates indicating the positions of each point included in the distance image in the three-dimensional space.
  • the three-dimensional object recognition device 100 can be applied to a robot task or the like. Therefore, the point cloud acquisition unit 201 inputs a distance image, converts it from the camera coordinate system to the world coordinate system, and world coordinates so that the positional relationship between the object and the sensor unit 110 and the like becomes clear from a bird's-eye view. Generate a 3D point cloud in the system. The point cloud acquisition unit 201 outputs the generated three-dimensional point cloud to the separation unit 202. Since the point cloud acquisition unit 201 generates a three-dimensional point cloud, it may be referred to as a 3D (three-dimensional) point cloud acquisition unit.
  • each axis of the three-dimensional Cartesian coordinate system which is the world coordinate system, is the X axis, the Y axis, and the Z axis.
  • the world coordinate system will be described as being an XYZ coordinate system.
  • the separation unit 202 inputs the three-dimensional point cloud output from the point cloud acquisition unit 201.
  • the separation unit 202 removes unnecessary three-dimensional point clouds so that the points constituting the object become independent in the three-dimensional space of the XYZ coordinate system.
  • the separation unit 202 removes unnecessary three-dimensional point clouds by, for example, a plane removal method and a method of extracting a contour to remove a point cloud other than a specific region.
  • the separation unit 202 uses, for example, RANSAC (Random Sample Consensus) or the like, and the condition that the coordinates (x, y, z) of the three-dimensional point cloud is "ax + by + cz + d ⁇ 0". Derivation of coefficients a, b, c and d that satisfy.
  • the separation unit 202 may set a threshold value ⁇ for determining that the above conditions are satisfied, and derive coefficients a, b, c and d that satisfy
  • The threshold value ⁇ can be set according to the performance of the camera used in the sensor unit 110 and the environment in which the three-dimensional object recognition device 100 is arranged. Then, the separation unit 202 may remove the three-dimensional point cloud satisfying the condition of ax + by + cz + d ⁇ 0 by using the derived coefficient.
  • the separation unit 202 sets a threshold value ⁇ and a threshold value ⁇ for determining that the above conditions are satisfied, and creates a three-dimensional point cloud (x, y, z) that satisfies ⁇ ⁇ ax + by + cz + d ⁇ . It may be removed.
  • the threshold value ⁇ and the threshold value ⁇ are set so that the performance of the camera used in the sensor unit 110, the environment in which the three-dimensional object recognition device 100 is arranged, and the number of three-dimensional point groups constituting the object are maximized. It may be decided.
  • the separation unit 202 outputs the three-dimensional point cloud after the unnecessary three-dimensional point cloud is removed to the object identification unit 203.
  • the three-dimensional object recognition device 100 includes a sensor unit 110, a point cloud acquisition unit 201, and a separation unit 202, but the sensor unit 110, the point cloud acquisition unit 201, and the separation unit 202 are externally provided. It may be provided.
  • the object identification unit 203 which will be described later, may be provided with an external interface, and the object identification unit 203 may be configured to input the three-dimensional point cloud after the unnecessary three-dimensional point cloud is removed via the external interface. ..
  • the object identification unit 203 corresponds to the specific unit 2 in the first embodiment.
  • the object identification unit 203 inputs a three-dimensional point cloud output from the separation unit 202. Based on the input three-dimensional point group, the object identification unit 203 identifies an object region including the three-dimensional point group indicating the position of the surface of the object imaged by the sensor unit 110. When there are a plurality of captured objects, the object identification unit 203 identifies each of the object regions including the three-dimensional point cloud indicating the position of the surface of each of the objects.
  • the object identification unit 203 identifies a reference shape similar to each of the captured objects based on the three-dimensional point cloud included in the object region and the feature information of the reference shape.
  • the object identification unit 203 classifies the imaged object according to the type of shape so that the objects having the same shape belong to the same type.
  • the object identification unit 203 specifies the number of classified objects for each type of shape.
  • the reference shape includes, for example, a so-called primitive shape such as a rectangular parallelepiped, a cylinder, or a sphere.
  • the feature information includes, for example, normal vector-related information indicating information related to the normal vector of the surface constituting the reference shape.
  • the normal vector-related information is information including at least one of the reference direction of the normal vector of the surface constituting the reference shape and the reference histogram distribution of the normal vector.
  • the reference direction is the direction of the normal vector of the surface constituting the reference shape.
  • the reference histogram distribution is a histogram distribution of the normal vectors of the surfaces constituting the reference shape.
  • the feature information may include length information of each side constituting the surface of the reference shape.
  • the reference shape may include a geometric shape other than a rectangular parallelepiped, a cylinder, or a sphere. In the following description, the reference shape may be described as a primitive shape.
  • FIG. 3 is a diagram showing a detailed configuration example of the object identification unit according to the second embodiment.
  • the object identification unit 203 includes an identification processing execution unit 205, an identification recording unit 206, and an identification result output unit 207.
  • the identification processing execution unit 205 inputs the 3D point cloud after the unnecessary 3D point cloud is removed from the separation unit 202.
  • the identification processing execution unit 205 identifies the object region from the input three-dimensional point cloud based on the distance between the three-dimensional point clouds. Specifically, the identification processing execution unit 205 extracts the three-dimensional point cloud whose distance from the adjacent point is within a predetermined value from the input three-dimensional point cloud, and extracts the extracted three-dimensional point cloud. Specify as an object area.
  • the predetermined value is a value for determining that it is one object area, and may be a value set by a user who uses the three-dimensional object recognition device 100. Alternatively, the predetermined value may be a calculated distance obtained by calculating the distance between points from the resolution (point cloud density) of the sensor unit 110.
  • the identification processing execution unit 205 selects a starting anchor point from the input three-dimensional point cloud, and performs a neighborhood search to search for a neighborhood point whose distance from the anchor point is within a predetermined value. conduct.
  • the identification processing execution unit 205 sets the found neighborhood point as a new anchor point and performs the next neighborhood search.
  • the identification processing execution unit 205 repeatedly performs a neighborhood search until no neighborhood point is found, and identifies an object region.
  • the identification processing execution unit 205 extracts points whose distances from adjacent points are within a predetermined value with respect to all the points in the input three-dimensional point cloud, and specifies a set of the extracted points as an object area. do.
  • the identification processing execution unit 205 extracts the points whose distances from the adjacent points are within a predetermined value with respect to all the points of the input three-dimensional point group, so that the imaged object can be obtained. Even when there are a plurality of objects, the object area in which each of the objects exists can be specified, and the number of objects can be specified.
  • the identification processing execution unit 205 creates a reference shape similar to the object included in the object region based on the three-dimensional point cloud included in the object region and the feature information of the reference shape for the specified object region. Identify. When there are a plurality of specified object regions, the identification processing execution unit 205 specifies a reference shape similar to the object included in the object region for each of the specified object regions.
  • the identification processing execution unit 205 generates a plurality of planes composed of a group of three-dimensional points included in the object region for each of the specified object regions, and generates a normal vector of each of the plurality of planes. do. Specifically, the identification processing execution unit 205 performs a meshing process for connecting points included in the object region to each of the specified object regions to generate a plurality of quadrangular or triangular planes. The identification processing execution unit 205 generates a vector of each side of a plurality of planes generated by the meshing processing.
  • the identification processing execution unit 205 generates a normal vector of a plurality of planes composed of a three-dimensional point cloud included in each of the object regions by obtaining the outer product of the vectors for each side of the plurality of planes. May be good.
  • the identification processing execution unit 205 identifies a reference shape similar to each object based on the generated normal vector and the normal vector-related information included in the feature information of the reference shape. Specifically, the identification processing implementation unit 205 has at least one of the normal vector directions and histogram distributions generated for each plane, and the surface normal vector directions and histogram distributions constituting the reference shape. Calculate the similarity with at least one. The identification processing execution unit 205 identifies a reference shape similar to the object included in the object region based on the calculated similarity.
  • the identification processing implementation unit 205 has a similarity between at least one of the generated normal vector directions and histogram distributions and at least one of the reference directions and reference histogram distributions of the surface normal vectors constituting the reference shape. Is calculated. Then, the identification processing execution unit 205 identifies a reference shape similar to the object included in the object region by using the calculated similarity.
  • the identification processing execution unit 205 When the identification processing execution unit 205 identifies a reference shape similar to the object included in the object area, it assigns a type ID (Identifier) and a shape ID based on the specified reference shape. For example, a unique shape ID is assigned to each reference shape, and the identification processing execution unit 205 assigns a shape ID corresponding to the specified reference shape to an object included in the object region for each of the object regions. assign. In this embodiment, the type of object is determined according to a similar reference shape. Therefore, the identification processing execution unit 205 assigns a type ID corresponding to the shape ID to each object.
  • a type ID Identifier
  • the identification processing execution unit 205 further assigns an individual ID that can be uniquely identified within each type ID to each of the objects to which the same type ID is assigned.
  • the three-dimensional object recognition device 100 can be applied to, for example, a robot task and a Pick & Place device. In robot tasks and Pick & Place devices, there is a high possibility of specifying how many objects of which type are to be moved. Therefore, the identification processing implementation unit 205 assigns a type ID to make it possible to identify which type each object belongs to, and assigns an individual ID to each of the objects of each type.
  • the identification processing execution unit 205 associates the shape ID with the coordinates of the three-dimensional point cloud of the object region including the object for each object to which the type ID and the individual ID are assigned, and the identification recording unit 205. Record at 206.
  • the identification processing execution unit 205 may record the name of the reference shape similar to the object in the identification recording unit 206 in association with the type ID and the individual ID for each object.
  • the identification recording unit 206 stores information about each object according to the control of the identification processing execution unit 205.
  • the identification recording unit 206 stores the type ID, the individual ID, the shape ID, and the coordinates of the three-dimensional point cloud included in the object area in association with each other.
  • the identification processing unit 205 records the name of the specified reference shape in the identification recording unit 206
  • the identification recording unit 206 further stores the name of the reference shape in association with the type ID and the individual ID. May be good.
  • the identification result output unit 207 is a type ID, an individual ID, a shape ID, and a three-dimensional point cloud associated with the three IDs, which are information about each object recorded in the identification recording unit 206.
  • the coordinates and the coordinates are output to the position / orientation deriving unit 204.
  • the position / posture deriving unit 204 corresponds to the estimation unit 3 according to the first embodiment.
  • the position / orientation deriving unit 204 estimates the center position and orientation of the object included in the object region based on the three-dimensional point cloud included in the object region and the reference shape similar to the object included in the object region. do.
  • the position / orientation derivation unit 204 inputs information about the object included in each object area.
  • the position / orientation deriving unit 204 inputs the type ID, the individual ID, the shape ID, and the coordinates of the three-dimensional point cloud included in the object area.
  • the position / orientation deriving unit 204 calculates the center point of the input three-dimensional point group of the input object region for each of the objects specified by the combination of the type ID and the individual ID.
  • the position / orientation deriving unit 204 estimates the calculated center point as the center position of the object.
  • the position / posture deriving unit 204 records the coordinates of the center position in association with the type ID and the individual ID for the object whose center position is estimated in the identification recording unit 206.
  • the position / orientation deriving unit 204 approximates the object included in the object region to the reference shape specified by the object identification unit 203, estimates the axis of the approximated reference shape, and the estimated axis and the object identification unit 203. Estimates the posture of the object based on the reference axis of the reference shape specified by.
  • the reference axis is an axis that constitutes the reference shape when the virtual object of the reference shape specified by the object identification unit 203 is placed on the horizontal plane.
  • the reference axis is predetermined for each reference shape. When the reference shape is a cylinder, the reference axis is in the direction of the central axis (swivel axis).
  • the reference axis is the normal direction of the surface having the largest area.
  • the position / posture deriving unit 204 calculates the angle difference between the estimated axis and the reference axis, and estimates the posture of the object by obtaining the roll angle, pitch angle, and yaw angle based on the calculated angle difference. do.
  • the position / posture deriving unit 204 records the posture of the object whose posture is estimated in the identification recording unit 206 by associating the posture with the type ID and the individual ID.
  • the position / orientation deriving unit 204 identifies a primitive shape similar to the object based on the shape ID.
  • the position / orientation deriving unit 204 approximates the object composed of the three-dimensional point cloud of the input object region to the primitive shape by using the formula expressing the specified primitive shape.
  • the position / orientation deriving unit 204 calculates the attitude from the difference in angle between the axis of the approximate primitive shape and the reference axis of the primitive shape.
  • the formula representing the rectangular parallelepiped which is a primitive shape is the above formula.
  • the position / orientation deriving unit 204 satisfies the above equation by singular value decomposition, least squares method, etc., calculates the values of the coefficients a, b, c, and d including the three-dimensional point group included in the plane of the object, and calculates the values of the coefficients a, b, c, and d, and is a rectangular cuboid. Of these, the plane with the largest area is detected. The plane having the largest area is the plane having the largest surface area that can be imaged (observed) by the sensor unit 110.
  • the position / orientation derivation unit 204 calculates the vertical and horizontal lengths of the detected plane from the direction of the normal vector of the detected plane.
  • the position / orientation deriving unit 204 calculates the vertical and horizontal lengths of the detected plane from the distribution degree representing the spread of the input three-dimensional point cloud with respect to the detected plane.
  • the position / orientation deriving unit 204 is adjacent to the detected plane and is imaged based on the vertical and horizontal lengths of the detected plane and the degree of distribution representing the spread of the distribution of the input three-dimensional point group. Calculate the length of each side of the object and approximate the object to a rectangular cuboid.
  • the position / orientation deriving unit 204 determines whether the detected plane is the upper surface of the rectangular parallelepiped or the side surface of the rectangular parallelepiped from the positional relationship of the three-dimensional point cloud included in the detected plane.
  • the upper surface of the rectangular parallelepiped is a plane parallel to the bottom surface of the rectangular parallelepiped, for example, when the surface closest to the plane of the workbench on which the object is placed is the bottom surface.
  • the side surface of the rectangular parallelepiped is the surface adjacent to the upper surface.
  • the position / posture deriving unit 204 may calculate the depth length (distance) of the rectangular parallelepiped from the distance between the plane of the work table and the upper surface of the rectangular parallelepiped, for example.
  • the depth is the length of the side surface of the rectangular parallelepiped and the side orthogonal to the upper surface of the rectangular parallelepiped when the detected plane is the upper surface of the rectangular parallelepiped.
  • the plane of the workbench can be estimated from the three-dimensional point cloud removed by the separation unit 202. Therefore, the position / orientation deriving unit 204 may calculate the depth of the rectangular parallelepiped based on the distance between the three-dimensional point cloud included in the upper surface of the rectangular parallelepiped and the three-dimensional point cloud removed by the separation unit 202.
  • the position / orientation deriving unit 204 has a sensor among the points included in the detected plane that are farthest from the sensor unit 110 and the points included in the detected plane.
  • the distance from the point closest to the unit 110 may be the depth.
  • the position / orientation deriving unit 204 is a side of the upper surface of the rectangular cuboid based on the distance between the point closest to the sensor unit 110 among the points included in the detected plane and the three-dimensional point group removed by the separation unit 202. And the length of the side orthogonal to the side surface of the rectangular cuboid may be estimated.
  • the position / orientation deriving unit 204 estimates the direction perpendicular to each plane of the approximated rectangular parallelepiped as each axis of the rectangular parallelepiped.
  • the position / posture deriving unit 204 estimates the posture of the object by calculating the angle difference between each axis of the estimated rectangular parallelepiped and each axis of the rectangular parallelepiped when the virtual object of the rectangular parallelepiped is placed on the horizontal plane.
  • the position / orientation derivation unit 204 estimates each axis of the rectangular parallelepiped by performing principal component analysis on the input three-dimensional point group, and all the input three-dimensional points for each axis.
  • An object may be approximated to a rectangular parallelepiped by generating a rectangular parallelepiped containing a group.
  • the primitive shape is a rectangular parallelepiped, but the primitive shape may be a polyhedron which is a generalization of the rectangular parallelepiped.
  • the position / orientation deriving unit 204 can approximate the object to a polyhedron by estimating the length of each side of the adjacent plane based on the length of each side of the detected plane.
  • the position / orientation deriving unit 204 can calculate the attitude from the difference in angle between the approximate axis of the polyhedron and the reference axis of the polyhedron.
  • the position / orientation deriving unit 204 has a circle whose radius is r with the center of the bottom surface of the cylinder as the origin O'and the center axis is the z'axis of the cylinder. Assuming that the point on the bottom surface is (x', y'), the side surface of the cylinder is It can be expressed as.
  • the position / attitude derivation unit 204 The center and radius that most satisfy the above are estimated from Newton's method.
  • the specified reference shape is a cylinder
  • the formula representing the cylinder which is the primitive shape is the above formula.
  • the position / orientation deriving unit 204 performs the same procedure as described above for a point on the central axis that is different from the center of the bottom surface and a point that exists in an arc of a surface parallel to the bottom surface with respect to the point. Estimate the coordinates of a point on the central axis that is different from the center of the bottom. Then, the central axis and radius of the cylinder may be estimated by estimating the vector of the central axis from the coordinates of the center of the estimated bottom surface and the coordinates of the points on the central axis.
  • the position / orientation deriving unit 204 generates a cylinder containing the most points in the input three-dimensional point cloud based on the estimated vector and radius of the central axis, and approximates the cylinder that generated the object.
  • the position / orientation deriving unit 204 estimates the attitude of the object by calculating the angle difference between the vector of the central axis and the central axis when the generated cylinder is placed on the horizontal plane.
  • the position / attitude deriving unit 204 estimates the center and radius that most satisfy the above equation of the sphere by using RANSAC or the like.
  • the formula representing the sphere, which is a primitive shape is the above formula.
  • the position / attitude deriving unit 204 may set a reference posture information for the sphere in advance and estimate the posture of the object based on the set reference posture information.
  • the position / orientation deriving unit 204 specifies the direction of the normal vector based on the average value or the median value of the normal vector.
  • the position / posture deriving unit 204 may estimate the posture of the object whose reference shape is specified as a sphere based on the direction of the normal vector.
  • the reference shape specified by the object identification unit 203 includes at least one of a rectangular parallelepiped other than a sphere and a cylinder
  • the position / posture extraction unit 204 determines the posture of the object specified as the reference shape other than the sphere.
  • the reference shape may be estimated as the posture of the object specified as a sphere.
  • the position / orientation deriving unit 204 performs principal component analysis on the three-dimensional point group included in the object region without approximating the object included in the object region to the primitive shape, and the axis constituting the object. May be estimated. In many cases, the three-dimensional point cloud included in the object region tends to spread in the axial direction according to the shape of the object. Therefore, the position / orientation deriving unit 204 may estimate the axes constituting the object by performing principal component analysis on the input three-dimensional point cloud. Then, the position / posture deriving unit 204 may estimate the posture of the object based on the angle difference between the estimated axis and the reference axis of the reference shape specified for each object.
  • the position / orientation deriving unit 204 may further use the shape information of the reference shape specified for each object when performing the principal component analysis on the input three-dimensional point cloud.
  • the position / orientation deriving unit 204 can easily identify the axis to be estimated by using the shape information of the reference shape when performing the principal component analysis.
  • FIG. 4 is a diagram showing an operation example of the three-dimensional object recognition device according to the second embodiment.
  • the sensor unit 110 images a predetermined area such as a workbench, and each point generates a distance image including distance information from the sensor unit 110 to the object (step S301).
  • the point cloud acquisition unit 201 converts the distance image from the camera coordinate system to the world coordinate system, and generates a three-dimensional point cloud in which each point indicates a position in the three-dimensional space (step S302).
  • the separation unit 202 is an unnecessary three-dimensional object so that the points constituting the object become independent in the three-dimensional space by, for example, a plane removal method and a method of extracting a contour and removing a point cloud other than a specific region.
  • the point cloud is removed (step S303).
  • the object identification unit 203 inputs the three-dimensional point cloud output from the separation unit 202, and specifies the object area including each of the objects based on the input three-dimensional point cloud (step S304).
  • the identification processing execution unit 205 inputs a three-dimensional point cloud from the separation unit 202.
  • the identification processing execution unit 205 extracts points whose distances from adjacent points are within a predetermined value with respect to all the points in the input three-dimensional point cloud, and specifies a set of the extracted points as an object area. do.
  • the detailed operation of step S304 will be described later.
  • the object identification unit 203 identifies a reference shape similar to the object included in the object region based on the three-dimensional point cloud included in the object region and the feature information of the reference shape (step S305).
  • steps S305 to S307 are repeatedly performed for each of the specified object regions.
  • the identification processing execution unit 205 generates a plurality of planes composed of a three-dimensional point cloud included in the object region for each of the specified object regions, and each of the plurality of planes. Generate a normal vector.
  • the identification processing execution unit 205 identifies a reference shape similar to each object based on the generated normal vector and the normal vector-related information.
  • the identification processing execution unit 205 sets the object included in the object region and each reference shape based on the direction of the normal vector generated for each plane and the reference direction of the normal vector of the surface constituting the reference shape. Calculate the similarity of.
  • the identification processing execution unit 205 sets the object included in the object region and each reference shape based on the histogram distribution of the normal vector generated for each plane and the reference histogram distribution of the surface constituting the reference shape. You may calculate the similarity of.
  • the identification processing execution unit 205 identifies a reference shape similar to the object included in the object region based on the calculated similarity.
  • the position / orientation deriving unit 204 estimates the center position of the object included in the object region based on the three-dimensional point cloud included in the object region (step S306). Specifically, the position / orientation derivation unit 204 inputs the type ID, the individual ID, and the coordinates of the three-dimensional point cloud constituting the specified reference shape. The position / orientation deriving unit 204 calculates the center point of the three-dimensional point group of the input object region for each of the objects specified by the combination of the type ID and the individual ID. The position / orientation deriving unit 204 estimates the calculated center point as the center position of the object.
  • the position / posture deriving unit 204 estimates the posture of the object included in the object region based on the three-dimensional point cloud included in the object region and the reference shape similar to the object included in the object region (step). S307). Specifically, the position / orientation derivation unit 204 approximates the object included in the object region to the reference shape specified by the object identification unit 203, estimates the axis of the approximated reference shape, and sets the estimated axis. , The posture of the object is estimated based on the reference axis of the reference shape specified by the object identification unit 203.
  • the three-dimensional object recognition device 100 determines whether or not the user ends the process (step S308). When there is no end command from the user (NO in step S308), the three-dimensional object recognition device 100 re-executes the processes after step S301. On the other hand, when the end command from the user is received (YES in step S308), the three-dimensional object recognition device 100 ends the process.
  • step S304 is described with reference to FIGS. 5 to 9.
  • 5 to 9 are diagrams showing an operation example of the three-dimensional object recognition device according to the second embodiment, and are diagrams for explaining the detailed operation of step S304.
  • step S304 The flowchart shown in FIG. 5 is executed by the identification processing execution unit 205 included in the object identification unit 203.
  • the identification processing execution unit 205 inputs a three-dimensional point cloud from the separation unit 202 (step S401).
  • the identification processing execution unit 205 determines an anchor point that is the starting point of the neighborhood search from the input three-dimensional point cloud (step S402).
  • the identification processing execution unit 205 may determine a point randomly selected from the input three-dimensional point cloud as an anchor point.
  • the identification processing execution unit 205 may determine the center point of the input three-dimensional point cloud as the first anchor point.
  • the identification processing execution unit 205 extracts a region having a high density of the three-dimensional point cloud from the input distribution of the three-dimensional point cloud, and is included in one region selected from the extracted regions.
  • the center of the dimension point cloud may be set as the anchor point.
  • the identification processing execution unit 205 may consider the center point of the extracted three-dimensional point cloud as the center of the observable object surface and determine it as an anchor point. Alternatively, the identification processing execution unit 205 extracts a region having a high density of the three-dimensional point cloud from the input distribution of the three-dimensional point cloud, and the three-dimensional point of one region selected from the extracted regions. The contour of the group may be estimated. Then, the identification processing execution unit 205 may use the center point of the estimated contour as an anchor point.
  • the identification processing execution unit 205 extracts a point whose distance from the anchor point is within a predetermined value from the input three-dimensional point cloud excluding the extracted points as a neighborhood point (step S403). ). The identification processing execution unit 205 determines in step S403 whether or not the neighborhood point has been extracted (step S404).
  • the identification processing execution unit 205 determines the current anchor point as the extracted point and the extracted neighborhood point as the next anchor point (step S405).
  • the identification processing execution unit 205 determines the next anchor point and executes step S403. That is, the identification processing execution unit 205 extracts the neighborhood points of the anchor points based on the determined anchor points.
  • the identification processing execution unit 205 identifies the point extracted as the neighborhood point of the anchor point determined in steps S402 and S405 as the object region (step). S406).
  • the identification processing execution unit 205 uses the anchor point determined in step S402 as the starting point, the point extracted as the neighborhood point until the neighborhood point is no longer extracted, and the point determined as the anchor point in step S402 as one object. Specify as an area.
  • the identification processing execution unit 205 changes the point that is the anchor point in step S406 to the extracted point.
  • step S402 Although the number of anchor points determined in step S402 is one, it is assumed that there will be a plurality of anchor points determined in step S405.
  • the identification processing execution unit 205 executes steps S403 to S405 for each anchor point. If the determination in step S404 is NO for each anchor point, the identification processing execution unit 205 does not execute step S405 for the anchor point. Then, the identification processing execution unit 205 executes step S406 when the neighborhood points cannot be extracted for all the anchor points.
  • the identification processing execution unit 205 does not classify the input three-dimensional point cloud into any of the extracted points, the points as anchor points, and the neighboring points, and the extraction processing is not performed. It is determined whether there is a point (step S407).
  • step S407 When there is an unextracted point (YES in step S407), the identification processing execution unit 205 performs the operation of step S402 and determines an anchor point for specifying the next object region. On the other hand, when there is no unextracted point (NO in step S407), the identification processing execution unit 205 has performed processing on the input three-dimensional point cloud, so that the processing is terminated and step S305 in FIG. 4 is executed. ..
  • FIGS. 6 to 8 represent each point of the three-dimensional point cloud input in step S401 of FIG.
  • FIG. 6 is a diagram for explaining the operation of steps S402 and S403.
  • the identification processing execution unit 205 determines the anchor point from the input three-dimensional point cloud. It is assumed that the identification processing executing unit 205 determines the circles hatched by the diagonal lines in FIG. 6 as anchor points.
  • step S403 the identification processing execution unit 205 extracts a point whose distance from the anchor point is within a predetermined value from the input three-dimensional point cloud excluding the extracted points as a neighborhood point. do.
  • the dotted line in FIG. 6 is a circle centered on the anchor point and representing a position where the distance from the anchor point is a predetermined value.
  • the circles hatched by the vertical lines in FIG. 6 represent the neighborhood points extracted by the identification processing executing unit 205.
  • the identification processing execution unit 205 extracts points in the circle indicated by the dotted line as neighboring points.
  • FIG. 7 is a diagram for explaining steps S404, S405, and S403 of FIG.
  • the identification processing execution unit 205 determines whether or not the neighborhood point has been extracted. As shown in FIG. 6, the identification processing execution unit 205 extracts the neighborhood points. Therefore, in step S405, the identification processing execution unit 205 sets the anchor point of FIG. 6, which is the current anchor point, as the extracted point. The thin dotted circle (small dotted circle) in FIG. 7 indicates the extracted point, and the identification processing execution unit 205 sets the anchor point in FIG. 6 as the extracted point. Then, the identification processing execution unit 205 determines the neighborhood point in FIG. 6 as an anchor point for searching for the next neighborhood point. The identification processing execution unit 205 executes the operation of step S403 and extracts the neighborhood points of the anchor points determined in step S405.
  • FIG. 8 is a diagram for explaining steps S406 and S407.
  • the identification processing execution unit 205 repeatedly executes steps S403 and S405 until no neighboring points are extracted. As shown in FIG. 8, when the distance from the anchor point is within a predetermined value and only the extracted points exist and the neighboring points are not extracted, the identification processing execution unit 205 sets the extracted points in FIG. 8 and the present. It is determined that the object exists in the area including the anchor point of. The identification processing execution unit 205 identifies the extracted points in FIG. 8 and the area including the current anchor point as the object area. Although the unextracted points do not exist in FIG. 8, if the unextracted points are outside the circle of the thick dotted line, the identification processing execution unit 205 returns to step S402 and searches for the next object area. Determine the anchor point for.
  • the neighborhood search refers to the operations of steps S402 to S405 among the operations of FIG.
  • a small circle with a number represents a node and indicates an anchor point.
  • the number described in each node indicates the number of times the neighborhood search is performed, and is a number indicating the number of anchor points in the neighborhood search.
  • the branches (lines) extending downward from each node indicate the neighborhood points extracted from the anchor points. That is, it means that the neighborhood point extracted from a certain anchor point becomes the anchor point in the next neighborhood search.
  • Anchor points for which neighboring points have not been extracted are marked with a cross under the circle indicating the anchor point, and there is no unextracted point at a position where the distance from the anchor point is within a predetermined value. Indicates that the processing for the anchor point has been completed.
  • the identification processing execution unit 205 determines that each of the anchor points for performing the kth (k is an integer of 1 or more) neighborhood search is within a predetermined distance from the anchor point.
  • the neighborhood points are extracted by searching. Then, the identification processing execution unit 205 uses the extracted neighborhood point as an anchor point for performing the (k + 1) th neighborhood search, performs the (k + 1) th neighborhood search, and extracts the neighborhood point.
  • the identification processing execution unit 205 repeatedly performs a neighborhood search for each of the anchor points, and extracts the neighborhood points until the neighborhood points are no longer searched.
  • the identification processing execution unit 205 specifies the points corresponding to all the nodes when the neighborhood points are not extracted from the first time as the object area.
  • the processing load of the three-dimensional object recognition device 100 may increase as the number of neighborhood searches increases. Further, when the input three-dimensional point cloud contains unnecessary points treated as noise, the object area specified by the identification processing executing unit 205 may become an unexpectedly large area. Therefore, the identification processing execution unit 205 sets a threshold value for at least one of the number of times of neighborhood search and the distance from the first anchor point to the extracted neighborhood point, and when the threshold value is exceeded, the neighborhood search processing is performed. May be terminated.
  • the object identification unit 203 can extract an independent 3D point group in space by using the point-to-point distance of the 3D point group based on the distance image, and the photographed object. Only the 3D point group can be used to identify the object region containing the 3D point group indicating the position of the surface of the object. That is, according to the three-dimensional object recognition device 100 according to the second embodiment, the number of objects can be specified by using a three-dimensional point group based on a distance image.
  • the object identification unit 203 identifies a reference shape similar to the object included in the object region by using the reference shape which is a primitive shape, and the position / posture deriving unit 204 uses the specified reference shape. Identify the center position and posture. Since the object identification unit 203 and the position / orientation derivation unit 204 use a reference shape that is a primitive shape, even if a plurality of types of objects are included, they can be classified into types based on a reference shape similar to the object. , The position and orientation of all objects can be estimated. That is, according to the three-dimensional object recognition device 100 according to the second embodiment, even if a plurality of types of objects are included, the position and orientation of the objects can be accurately specified.
  • the three-dimensional object recognition device 100 can specify the position and orientation of the object only by the distance image.
  • a color image such as an RGB image
  • the image contains a lot of noise such as overexposure, and the accuracy of estimating the position and orientation of the object is affected by the illuminance. It gets bigger.
  • the three-dimensional object recognition device 100 according to the second embodiment since the center position and the orientation of the object can be specified only by the distance image, it is robust to the change of lighting and is affected by the illuminance. The center position and posture of the object can be estimated without receiving it.
  • the three-dimensional object recognition device estimates the center position and the posture of the imaged object by using the distance image, but in the third embodiment, the three-dimensional object recognition device is the distance.
  • an RGB image which is a color image, is used to estimate the center position and orientation of the object.
  • FIG. 10 is a block diagram showing a configuration example of the three-dimensional object recognition device according to the third embodiment.
  • the three-dimensional object recognition device 500 is, for example, a device that captures an object placed on a work table and estimates the center position and orientation of the captured object based on the captured color image and distance image. be.
  • the color image will be described as an RGB image, but other color images such as an HSV (Hue, Saturation, Value of Brightness) image may be used.
  • the three-dimensional object recognition device 500 includes a sensor unit 510 and a processing unit 610.
  • the sensor unit 510 is configured to include an image pickup device capable of capturing a distance image and an RGB image.
  • the sensor unit 510 for example, captures a predetermined area including an object placed on a workbench and generates an RGB image and a distance image which are images of the camera coordinate system.
  • the sensor unit 510 outputs the generated RGB image and distance image to the processing unit 610.
  • the sensor unit 510 may be provided outside the three-dimensional object recognition device 500.
  • the processing unit 610 inputs the RGB image and the distance image generated by the sensor unit 510, and estimates the center position and the posture of the imaged object based on the RGB image and the distance image.
  • the processing unit 610 includes a point cloud acquisition unit 601, a segmentation unit 602, a three-dimensional integration unit 603, a separation unit 604, an object identification unit 605, and a position / orientation derivation unit 606.
  • the point cloud acquisition unit 601, the separation unit 604, and the position / attitude derivation unit 606 are basically the same as the point cloud acquisition unit 201, the separation unit 202, and the position / attitude derivation unit 204 in the second embodiment, respectively. be. Further, the object identification unit 605 corresponds to the object identification unit 203 in the second embodiment. The description of the configuration of the point cloud acquisition unit 601, the separation unit 604, the object identification unit 605, and the position / orientation derivation unit 606, which are the same as those in the second embodiment, will be described while being omitted as appropriate.
  • the point cloud acquisition unit 601 inputs the distance image output from the sensor unit 510.
  • the point cloud acquisition unit 601 converts the distance image from the camera coordinate system to the world coordinate system, and generates a three-dimensional point cloud in which each point indicates a position in the three-dimensional space.
  • the point cloud acquisition unit 601 outputs the generated three-dimensional point cloud to the three-dimensional integration unit 603. That is, the point group acquisition unit 601 outputs data representing a set of three-dimensional coordinates indicating the positions of each point included in the distance image in the three-dimensional space to the three-dimensional integration unit 603.
  • the segmentation unit 602 inputs an RGB image which is a color image, and segments the RGB image based on the color information of each pixel included in the RGB image.
  • the segmentation unit 602 inputs an RGB image which is a two-dimensional image output from the sensor unit 510.
  • the segmentation unit 602 segments a region having a characteristic hue from the distribution of RGB values (R value, G value and B value) and the positional relationship of pixels from the RGB image.
  • the segmentation unit 602 performs segmentation by using methods such as machine learning, contour extraction, superpixels, k-means, and x-means.
  • the segmentation unit 602 has an axis indicating the R value, an axis indicating the G value, and an axis indicating the B value based on the RGB values (R value, G value, and B value) of each pixel of the RGB image.
  • a histogram showing the distribution of RGB values is generated using a three-dimensional coordinate system composed of.
  • the segmentation unit 602 identifies at least one characteristic distribution of RGB values from the histogram of RGB values. For example, when red, yellow, and blue are characteristic colors in an RGB image, the segmentation unit 602 finds a set of characteristic RGB hues from the RGB distribution.
  • the segmentation unit 602 identifies each RGB value of at least one characteristic RGB value.
  • the segmentation unit 602 When the segmentation unit 602 identifies a characteristic RGB value (RGB hue), it compares the RGB value of each pixel of the RGB image with the specified RGB value, and concatenates pixels similar to the specified RGB value. The connected pixel area having the specified RGB value is calculated. The segmentation unit 602 associates the specified RGB value with each pixel included in the connected pixel region.
  • RGB hue RGB hue
  • the segmentation unit 602 sets the second pixel different from the first pixel included in the connected pixel area. It is determined whether the distance to the adjacent pixel is within a predetermined value. When the distance is within a predetermined value, the segmentation unit 602 replaces the RGB values of the adjacent pixels with the RGB values associated with the first pixel and the second pixel. The segmentation unit 602 replaces the adjacent pixels with RGB values associated with the first pixel and the second pixel, so that, for example, even if a certain object contains a plurality of colors, the segmentation unit 602 has a plurality of colors among the plurality of colors.
  • the segmentation unit 602 outputs the segmented RGB image to the three-dimensional integration unit 603 with respect to the input RGB image. In other words, the segmentation unit 602 outputs an RGB image in which characteristic RGB values are associated with each pixel in the segmented region to the three-dimensional integration unit 603. If the sensor unit 510 does not acquire the RGB image, such as when the RGB image cannot be acquired, the segmentation unit 602 does not perform the processing.
  • the 3D integration unit 603 generates a 3D point cloud to which color information is added based on the distance image and the color information of the segmented area. Specifically, the three-dimensional integration unit 603 inputs the three-dimensional point cloud from the point cloud acquisition unit 601 and inputs the segmented RGB image from the segmentation unit 602. The three-dimensional integration unit 603 integrates the three-dimensional coordinates of each point included in the three-dimensional point cloud and the segmented RGB image. The 3D integration unit 603 identifies the pixels in the RGB image corresponding to the 3D coordinates of each point included in the 3D point cloud, and the specified pixels are set to the 3D coordinates of each point included in the 3D point cloud.
  • the RGB values of are labeled to generate a RGB-D (Depth) point cloud.
  • the RGB-D point cloud is information in which RGB values are labeled in three-dimensional coordinates.
  • the three-dimensional integration unit 603 generates an RGB-D point cloud, which is a three-dimensional point cloud in which the color information of the segmented region is added to each of the generated three-dimensional point clouds.
  • the three-dimensional integration unit 603 outputs the generated RGB-D point cloud to the separation unit 604.
  • the three-dimensional integration unit 603 indicates that the RGB value indicating that the RGB image was not acquired for the three-dimensional point cloud acquired from the point cloud acquisition unit 601 is not acquired. May generate an RGB-D point cloud labeled with.
  • the RGB value indicating that the RGB image was not acquired may be, for example, an RGB value corresponding to the background color of the work table known to the three-dimensional object recognition device 500, and the R value, the G value, and the B value may be used. May be all 255 RGB values, and all R, G and B values may be 0 RGB values.
  • the separation unit 604 inputs an RGB-D point cloud from the three-dimensional integration unit 603. Unlike the second embodiment, the separation unit 604 is a three-dimensional point cloud labeled with RGB values, but in the same manner as in the second embodiment, unnecessary RGB-D point clouds are removed. The separation unit 604 outputs the RGB-D point cloud after the unnecessary RGB-D point cloud is removed to the object identification unit 605.
  • the object identification unit 605 inputs the RGB-D point cloud from the separation unit 604.
  • the object identification unit 605 captures an imaged object based on the RGB value, which is the color information added to the RGB-D point cloud generated by the three-dimensional integration unit 603, and the distance between the RGB-D point clouds. Identify the included object area.
  • the object identification unit 605, in the same manner as in the second embodiment, is an imaged object based on the RGB-D point cloud included in the object region and the feature information of the reference shape which is the primitive shape. Identify a reference shape similar to each.
  • FIG. 11 is a diagram showing a detailed configuration example of the object identification unit according to the third embodiment.
  • the object identification unit 605 includes a color information identification unit 607 and a shape identification unit 608.
  • the color information identification unit 607 inputs the RGB-D point cloud from the separation unit 604, and the RGB value is based on the RGB value labeled to the three-dimensional coordinates of each point included in the input RGB-D point cloud. Specifies the same color area.
  • the color information identification unit 607 includes an identification processing execution unit 611, an identification recording unit 612, and an identification result output unit 613.
  • the identification processing execution unit 611 is an implementation unit that identifies color information, it may be referred to as a color information identification processing implementation unit.
  • the identification processing execution unit 611 inputs the RGB-D point cloud from the separation unit 604.
  • the identification processing execution unit 611 excludes the RGB values indicating that the RGB image was not acquired from the RGB values labeled for each point included in the RGB-D point cloud.
  • the identification processing execution unit 611 identifies the color region based on the RGB values of the RGB-D point cloud excluding the RGB values indicating that the RGB image was not acquired.
  • the colors corresponding to the RGB values labeled in the RGB-D point cloud are red, green, and blue.
  • the identification processing execution unit 611 is labeled with an RGB-D point group labeled with a red RGB value, an RGB-D point group labeled with a green RGB value, and a blue RGB value.
  • Each RGB-D point group is specified as a color region.
  • the identification processing execution unit 611 assigns a color ID to a color region having the same RGB value.
  • the identification processing execution unit 611 records the color ID, the RGB value, and the RGB-D point cloud included in the color region to which the color ID is assigned in association with each other in the identification recording unit 612.
  • the identification recording unit 612 stores the color ID, the RGB value, and the RGB-D point cloud of the color region to which the color ID is assigned in association with each other under the control of the identification processing execution unit 611.
  • the identification result output unit 613 outputs the color ID, the RGB value, and the RGB-D point cloud of the color region to which the color ID is assigned to the shape identification unit 608.
  • the shape identification unit 608 has a surface of an object for each of the color regions specified by the color information identification unit 607, based on the distance between the RGB-D point clouds of the RGB-D point clouds included in the color region.
  • the object region including the RGB-D point cloud indicating the position of is specified.
  • the shape identification unit 608 determines that the RGB image was not acquired when the color ID is not assigned to all the RGB-D point clouds, and does not consider the color information, and the second embodiment. The same processing as that of the object identification unit 203 in the above is performed.
  • the identification processing execution unit 611 has an RGB-D point cloud labeled with a red RGB value, an RGB-D point cloud labeled with a green RGB value, and an RGB labeled with a blue RGB value.
  • -It is assumed that each of the D point clouds is specified as a color region.
  • the shape identification unit 608 identifies an object region containing each of the objects included in the RGB-D point cloud labeled with the red RGB value.
  • the shape identification unit 608 identifies an object region containing each of the objects included in the RGB-D point cloud labeled with the green RGB value, and RGB-labeled with the blue RGB value.
  • the object area containing each of the objects included in the D point cloud is specified.
  • the shape identification unit 608 identifies a reference shape similar to the object by using the feature information of the reference shape for each of the objects included in the specified object region.
  • the shape identification unit 608 includes an identification processing execution unit 614, an identification recording unit 615, and an identification result output unit 616.
  • the identification processing execution unit 614, the identification recording unit 615, and the identification result output unit 616 correspond to the identification processing execution unit 205, the identification recording unit 206, and the identification result output unit 207, respectively, in the second embodiment.
  • the identification processing execution unit 614 identifies an object region using an RGB-D point cloud, and identifies a reference shape similar to an object contained in the object region. Since the identification processing implementation unit 614 is an implementation unit that specifies the reference shape, it may be referred to as a reference shape identification processing implementation unit.
  • the identification processing execution unit 614 inputs the color ID, the RGB value, and the RGB-D point cloud of the color region to which the color ID is assigned for each color ID from the identification result output unit 613.
  • the identification processing execution unit 614 identifies the object area for each color ID based on the distance between the RGB-D point clouds by using the three-dimensional coordinates included in the RGB-D point cloud to which the color ID is assigned. do.
  • the identification processing execution unit 614 identifies the object region by extracting the points in the input RGB-D point cloud whose distance from the adjacent points is within a predetermined value. ..
  • the identification processing execution unit 614 may input the RGB-D point cloud excluding the RGB value indicating that the RGB image was not acquired from the identification result output unit 613. Then, the identification processing execution unit 614 may specify the object region by determining the anchor point and searching for a nearby point having the same color ID or the same RGB value as the anchor point.
  • the identification processing execution unit 614 specifies a reference shape similar to the object included in each object area. Similar to the second embodiment, the identification processing execution unit 614 has a reference similar to each object based on the generated normal vector and the normal vector-related information included in the feature information of the reference shape. Identify the shape.
  • the identification processing execution unit 614 assigns a shape ID corresponding to the specified reference shape.
  • the identification processing execution unit 614 assigns a different type ID to each combination of the color ID and the shape ID so that the combination of the color ID and the shape ID is unique.
  • the identification processing execution unit 614 assigns individual IDs so that each object having the same type ID is unique.
  • the identification processing execution unit 614 has a type ID, an individual ID, a color ID, a shape ID, an RGB value, and an RGB-D point cloud included in the object region for each object included in the object region. And are recorded in the identification recording unit 615 in association with each other.
  • the identification recording unit 615 determines the type ID, the individual ID, the color ID, the shape ID, and the RGB value for each object included in each of the object regions under the control of the identification processing execution unit 614. , The RGB-D point cloud included in the object area is associated and stored.
  • the identification result output unit 616 outputs the type ID, the individual ID, the color ID, the shape ID, the RGB value, and the RGB-D point cloud included in the object area to the position / attitude derivation unit 606.
  • the position / orientation deriving unit 606 inputs information about an object included in each object area.
  • the position / orientation deriving unit 204 inputs a type ID, an individual ID, a color ID, a shape ID, an RGB value, and an RGB-D point cloud included in the object area.
  • the position / orientation deriving unit 606 calculates the center point of the input three-dimensional point group of the input object region for each of the objects specified by the combination of the type ID and the individual ID.
  • the position / orientation deriving unit 606 estimates the calculated center point as the center position of the object.
  • the position / posture deriving unit 606 records the coordinates of the center position in association with the type ID and the individual ID for the object whose center position is estimated in the identification recording unit 615.
  • the position / orientation deriving unit 606 approximates the object included in the object region to the reference shape specified by the object identification unit 605, and estimates the axis of the approximated reference shape.
  • the position / posture deriving unit 606 estimates the posture of the object based on the estimated axis and the reference axis of the reference shape specified by the object identification unit 605.
  • the position / posture deriving unit 606 calculates the angle difference between the estimated axis and the reference axis, and estimates the posture of the object by obtaining the roll angle, pitch angle, and yaw angle based on the calculated angle difference. do.
  • the position / posture deriving unit 606 records the posture of the object whose posture is estimated by associating the posture with the type ID and the individual ID in the identification recording unit 615.
  • FIG. 12 is a diagram showing an operation example of the three-dimensional object recognition device according to the third embodiment.
  • FIG. 12 is a flowchart corresponding to an operation example of the three-dimensional object recognition device 100 according to the second embodiment shown in FIG.
  • steps S504 and S506 are operations in which steps S303 and S304 of FIG. 4 are replaced, respectively. Therefore, with respect to steps S504 to S506, the same operation as in FIG. 4 will be omitted as appropriate.
  • the sensor unit 510 does not acquire an RGB image
  • the three-dimensional object recognition device 500 operates basically in the same manner as in the second embodiment. Therefore, the description of the operation when the sensor unit 510 does not acquire the RGB image will be omitted.
  • the sensor unit 510 images a predetermined area such as a workbench, and each point generates a distance image including distance information from the sensor unit 510 to the object (step S301).
  • the sensor unit 510 captures a predetermined area such as a workbench and generates an RGB image (step S501). Note that step S501 may be executed after step S301, or may be executed in parallel with step S301.
  • the point cloud acquisition unit 601 converts the distance image from the camera coordinate system to the world coordinate system, and generates a three-dimensional point cloud in which each point indicates a position in the three-dimensional space (step S302).
  • the segmentation unit 602 inputs an RGB image which is a color image, and segments the RGB image based on the color information of each pixel included in the RGB image (step S502). Note that step S502 may be executed after step S302, or may be executed in parallel with step S302.
  • the 3D integration unit 603 integrates the 3D coordinates of each point included in the 3D point cloud and the segmented RGB image, and identifies the pixels as the 3D coordinates of each point included in the 3D point cloud.
  • the RGB value of is labeled, and an RGB-D point cloud is generated (step S503).
  • the three-dimensional integration unit 603 inputs a three-dimensional point cloud from the point cloud acquisition unit 601 and inputs a segmented RGB image from the segmentation unit 602.
  • the three-dimensional integration unit 603 integrates the three-dimensional coordinates of each point included in the three-dimensional point cloud and the segmented RGB image.
  • the 3D integration unit 603 identifies the pixels in the RGB image corresponding to the 3D coordinates of each point included in the 3D point group, and the specified pixels are set to the 3D coordinates of each point included in the 3D point group.
  • the RGB values of are labeled to generate a group of RGB-D points.
  • the separation unit 604 is a three-dimensional point cloud in which the RGB-D point cloud is input from the three-dimensional integration unit 603 and the RGB values are labeled, but as in the second embodiment, unnecessary RGB-D points are used.
  • the point cloud is removed (step S504).
  • the color information identification unit 607 inputs an RGB-D point cloud from the separation unit 604, and the RGB value is based on the RGB value labeled to the three-dimensional coordinates of each point included in the input RGB-D point cloud. Specifies the same color region (step S505).
  • the shape identification unit 608 has a surface of an object for each of the color regions specified by the color information identification unit 607, based on the distance between the RGB-D point clouds of the RGB-D point clouds included in the color region.
  • the object region including the RGB-D point cloud indicating the position of is specified (step S506).
  • the identification processing execution unit 614 inputs the color ID, the RGB value, and the RGB-D point cloud of the color region to which the color ID is assigned for each color ID from the identification result output unit 613.
  • the identification processing execution unit 614 identifies the object area for each color ID based on the distance between the RGB-D point clouds by using the three-dimensional coordinates included in the RGB-D point cloud to which the color ID is assigned. do.
  • the identification processing implementation unit 614 uses an RGB-D point cloud unlike the second embodiment, but the method for specifying the object region is the same as that of the second embodiment.
  • the shape identification unit 608 identifies a reference shape similar to the object by using the feature information of the reference shape for each of the objects included in the specified object region (step S305).
  • the identification processing execution unit 614 specifies a reference shape similar to the object included in each object area.
  • the position / orientation deriving unit 606 estimates the center position of the object included in the object region based on the RGB-D point cloud included in the object region (step S306).
  • the position / posture deriving unit 606 estimates the posture of the object included in the object region based on the RGB-D point cloud included in the object region and the reference shape similar to the object included in the object region (the position / posture deriving unit 606). Step S507).
  • the three-dimensional object recognition device 500 determines whether or not the user ends the process (step S308). When there is no end command from the user (NO in step S308), the three-dimensional object recognition device 500 re-executes the processes after step S301. On the other hand, when the end command from the user is received (YES in step S308), the three-dimensional object recognition device 500 ends the process.
  • the three-dimensional object recognition device 500 also uses the color information of the RGB image to specify the object region including the RGB-D point group indicating the position of the surface of the object. Therefore, the three-dimensional object recognition device 500 can specify the object region more accurately than the three-dimensional object recognition device 100 according to the second embodiment. Therefore, according to the three-dimensional object recognition device 500 according to the third embodiment, the center position and the posture of the imaged object can be estimated more accurately than the three-dimensional object recognition device 100 according to the second embodiment. ..
  • a fourth embodiment is an embodiment illustrating a three-dimensional object recognition system including a three-dimensional object recognition device according to a second embodiment or a third embodiment. Although this embodiment is described with reference to the third embodiment, the second embodiment may be applied.
  • FIG. 13 is a diagram showing a configuration example of the three-dimensional object recognition system according to the fourth embodiment.
  • the three-dimensional object recognition system 1000 includes an input device 700, a recording device 750, and a three-dimensional object recognition device 800.
  • the input device 700 is, for example, a personal computer device, a server device, or the like.
  • the input device 700 is, for example, an input device including a mouse, a keyboard, a display, a touch panel, and the like.
  • the input device 700 includes an interface for inputting detection target color information indicating color information to be detected, which the user wants to be recognized.
  • the input device 700 inputs the detection target color information by the user, and outputs the input detection target color information to the processing unit 810 and the recording device 750 of the three-dimensional object recognition device 800.
  • the input device 700 may allow the user to input the R value, the G value, and the B value, and input the input RGB value as the detection target color information.
  • the input device 700 may input the selected color from the colors displayed on the display, and input the RGB value corresponding to the selected color as the detection target color information.
  • the recording device 750 is a device that records the detection target color information input by the user.
  • the recording device 750 inputs the information obtained from the input device 700.
  • the recording device 750 also records the detection target color information input in the past. By storing the detection target color information registered in the past by the user, the recording device 750 can shorten the input of the color information that the user wants to be recognized.
  • the recording device 750 may output the detection target color information to the processing unit 810. That is, the recording device 750 may be configured so that not only the detection target color information input by the user to the input device 700 but also the detection target color information registered in the past by the user is input to the processing unit 810. .
  • the three-dimensional object recognition device 800 corresponds to the three-dimensional object recognition device 500 according to the third embodiment.
  • the three-dimensional object recognition device 800 estimates the center position and orientation of the captured object based on the distance image and the RGB image generated by the sensor unit 510.
  • the three-dimensional object recognition device 800 inputs detection target color information from the input device 700 and the recording device 750, and estimates the center position and orientation of the captured object having the input detection target color information. do.
  • the three-dimensional object recognition device 800 has basically the same configuration as the three-dimensional object recognition device 500 according to the third embodiment.
  • the three-dimensional object recognition device 800 includes a sensor unit 510 and a processing unit 810. Since the sensor unit 510 is the same as that of the third embodiment, the description thereof will be omitted.
  • the processing unit 810 includes a point cloud acquisition unit 601, a segmentation unit 811, a three-dimensional integration unit 603, a separation unit 604, an object identification unit 605, and a position / orientation derivation unit 606.
  • the processing unit 810 has a configuration in which the segmentation unit 602 in the third embodiment is replaced with the segmentation unit 811 as compared with the processing unit 610 in the third embodiment. Since the point cloud acquisition unit 601, the three-dimensional integration unit 603, the separation unit 604, the object identification unit 605, and the position / orientation derivation unit 606 are basically the same as those in the third embodiment, they overlap with the third embodiment. The description to be made is omitted as appropriate.
  • the segmentation unit 811 inputs an RGB image from the sensor unit 510, and inputs the detection target color information from the input device 700 and the recording device 750. Similar to the third embodiment, the segmentation unit 811 inputs an RGB image which is a color image, and segments the RGB image based on the color information of each pixel included in the RGB image. The segmentation unit 811 generates an RGB image in which characteristic RGB values are associated with each pixel in the segmented region.
  • the segmentation unit 811 compares the RGB value of each pixel in the segmented region with the RGB value included in the detection target color information, and extracts the region having the detection target color information from the segmented regions.
  • the segmentation unit 811 replaces the RGB values other than the extracted region with RGB values indicating that the RGB image was not acquired. In other words, the segmentation unit 811 generates an RGB image including only the region having the detection target color information.
  • the segmentation unit 811 outputs an RGB image including only a region having detection target color information to the three-dimensional integration unit 603.
  • the 3D integration unit 603 inputs the 3D point cloud from the point cloud acquisition unit 601 and inputs the segmented RGB image from the segmentation unit 811.
  • the three-dimensional integration unit 603 integrates the three-dimensional coordinates of each point included in the three-dimensional point cloud and the segmented RGB image.
  • the three-dimensional integration unit 603 identifies the pixels in the RGB image corresponding to the three-dimensional coordinates of each point included in the three-dimensional point group, and the specified pixels are set to the three-dimensional coordinates of each point included in the three-dimensional point group.
  • the RGB values of are labeled to generate a group of RGB-D points.
  • the segmented RGB image includes only the region to which the detection target color information is added.
  • the three-dimensional integration unit 603 generates an RGB-D point cloud, which is a three-dimensional point cloud to which the detection target color information is added.
  • the three-dimensional integration unit 603 sets the RGB value of the region to which the detection target color information is not added in the segmented RGB image as the RGB value indicating that the RGB image was not acquired, which is the RGB-D point cloud. May be generated.
  • the three-dimensional integration unit 603 outputs the generated RGB-D point cloud to the separation unit 604.
  • the object identification unit 605 inputs the RGB-D point cloud from the separation unit 604.
  • the object identification unit 605 identifies a color region based on the RGB values labeled for each point included in the RGB-D point cloud.
  • the object identification unit 605 selects the RGB image in the RGB-D point cloud.
  • the RGB-D point cloud of the RGB value indicating that the image was not acquired is excluded.
  • the object identification unit 605 identifies a color region based on the RGB values of the RGB-D point cloud after the RGB values indicating that the RGB image was not acquired are excluded.
  • the object identification unit 605 captures an imaged object based on the RGB value, which is the color information added to the RGB-D point cloud generated by the three-dimensional integration unit 603, and the distance between the RGB-D point clouds. Identify the included object area. That is, the object identification unit 605 selects an object region including the RGB-D point cloud having the color information desired to be detected by the user and indicating the position of the surface of the object from the RGB-D point cloud having the detection target color information. Identify. Further, the object identification unit 605 identifies a reference shape similar to each of the captured objects based on the RGB-D point cloud included in the object region and the feature information of the reference shape which is the primitive shape.
  • the position / orientation deriving unit 606 is included in the object region based on the three-dimensional point group included in the object region and the reference shape similar to the object included in the object region, as in the third embodiment. Estimate the center position and orientation of the object.
  • the object identification unit 605 identifies an object region including the RGB-D point group having the color information desired to be detected by the user and indicating the position of the surface of the object from the RGB-D point group having the detection target color information. ing. Therefore, the position / orientation deriving unit 606 can estimate the center position and orientation of the imaged object having the detection target color information.
  • FIG. 14 is a diagram showing an operation example of the three-dimensional object recognition device according to the fourth embodiment.
  • FIG. 14 is a flowchart corresponding to an operation example of the three-dimensional object recognition device 500 according to the third embodiment shown in FIG.
  • FIG. 14 is a flowchart in which steps S601 and S602 are added to the flowchart of FIG. Therefore, with respect to the flowchart of FIG. 14, the same operation as that of FIG. 12 will be omitted as appropriate.
  • the sensor unit 510 images a predetermined area such as a workbench, and each point generates a distance image including distance information from the sensor unit 510 to the object (step S301).
  • the sensor unit 510 captures a predetermined area such as a workbench and generates an RGB image (step S501). Note that step S501 may be executed after step S301, or may be executed in parallel with step S301.
  • the point cloud acquisition unit 601 converts the distance image from the camera coordinate system to the world coordinate system, and generates a three-dimensional point cloud in which each point indicates a position in the three-dimensional space (step S302).
  • the segmentation unit 811 inputs the detection target color information from the input device 700 and the recording device 750 (step S601).
  • the segmentation unit 811 inputs an RGB image which is a color image, and segments the RGB image based on the color information of each pixel included in the RGB image (step S502). Note that step S502 may be executed after step S302, or may be executed in parallel with step S302.
  • the segmentation unit 811 compares the RGB value of each pixel of the segmented region with the RGB value included in the detection target color information, and extracts the region having the detection target color information from the segmented region (step). S602).
  • the 3D integration unit 603 integrates the 3D coordinates of each point included in the 3D point cloud and the segmented RGB image, and identifies the pixels as the 3D coordinates of each point included in the 3D point cloud.
  • the RGB value of is labeled, and an RGB-D point cloud is generated (step S503).
  • the separation unit 604 is a three-dimensional point cloud in which the RGB-D point cloud is input from the three-dimensional integration unit 603 and the RGB values are labeled, but as in the second embodiment, unnecessary RGB-D points are used.
  • the point cloud is removed (step S504).
  • the color information identification unit 607 inputs an RGB-D point cloud from the separation unit 604, and the RGB value is based on the RGB value labeled to the three-dimensional coordinates of each point included in the input RGB-D point cloud. Specifies the same color region (step S505).
  • the shape identification unit 608 has a surface of an object for each of the color regions specified by the color information identification unit 607, based on the distance between the RGB-D point clouds of the RGB-D point clouds included in the color region.
  • the object region including the RGB-D point cloud indicating the position of is specified (step S506).
  • the shape identification unit 608 identifies a reference shape similar to the object by using the feature information of the reference shape for each of the objects included in the specified object region (step S305).
  • the position / orientation deriving unit 606 estimates the center position of the object included in the object region based on the RGB-D point cloud included in the object region (step S306).
  • the position / posture deriving unit 606 estimates the posture of the object included in the object region based on the RGB-D point cloud included in the object region and the reference shape similar to the object included in the object region (the position / posture deriving unit 606). Step S507).
  • the three-dimensional object recognition device 800 determines whether or not the user ends the process (step S308). When there is no end command from the user (NO in step S308), the three-dimensional object recognition device 800 re-executes the processes after step S301. On the other hand, when the end command from the user is received (YES in step S308), the three-dimensional object recognition device 800 ends the process.
  • the three-dimensional object recognition device 800 inputs the detection target color information from the input device 700 and the recording device 750, and extracts the RGB-D point group having the detection target color information to detect the detection target color information. It is possible to estimate the center position and orientation of the object having. Therefore, according to the three-dimensional object recognition device 800 according to the fourth embodiment, since the user can arbitrarily select the object to be detected, the center position and the posture of the object can be easily and immediately estimated.
  • the three-dimensional object recognition device 800 has been described by inputting the detection target color information input by the user, but in the three-dimensional object recognition device 800, the user specifies an image area to be detected. , The detected color information may be specified using the image area.
  • the segmentation unit 811 inputs an RGB image from the sensor unit 510 and performs segmentation on the input RGB image.
  • the segmentation unit 811 causes the input device 700 to display the segmented RGB image.
  • the input device 700 specifies a detection target area in the segmented RGB image, and the user inputs the designated detection target area.
  • the input device 700 inputs the detection target area to the segmentation unit 811.
  • the segmentation unit 811 specifies a detection target area in the segmented RGB image.
  • the segmentation unit 811 specifies the detection target color information by selecting the RGB value having the largest number of pixels among the RGB values included in the detection target area.
  • the segmentation unit 811 extracts a region having detection target color information from the segmented regions. Even if such a modification is applied to the fourth embodiment, the same effect as that of the fourth embodiment can be obtained.
  • a fifth embodiment describes an object recognition system for moving an object to be moved to a robot device by using the three-dimensional object recognition device according to any one of the second embodiment to the fourth embodiment. It is an embodiment. Although this embodiment is described with reference to the third embodiment, the second embodiment or the fourth embodiment may be applied.
  • FIG. 15 is a diagram showing a configuration example of the three-dimensional object recognition system according to the fifth embodiment.
  • the three-dimensional object recognition system 1100 includes a three-dimensional object recognition device 900, an input device 1200, and a robot device 1300.
  • the three-dimensional object recognition device 900 corresponds to the three-dimensional object recognition device 500 according to the third embodiment.
  • the three-dimensional object recognition device 900 transmits the object information regarding the object including the imaged center position and orientation of the object to the input device 1200.
  • the object information includes a type ID, an individual ID, a color ID, a shape ID, an RGB value, a center position, and a posture.
  • the three-dimensional object recognition device 900 receives from the input device 1200 the object information about the object to be moved and the moving destination position of the object indicated by the object information to be moved among the captured objects.
  • the object information to be moved is information about an object to be moved by the robot device 1300 from the workbench on which the object is placed to the position of the destination.
  • the object information includes at least one of information regarding a reference shape similar to the object to be moved and information regarding color information of the object to be moved. Further, the object information may include the number of objects to be moved.
  • the moving destination position is the position of the storage location such as a tray after the object to be moved is conveyed (moved) by the robot device 1300.
  • the destination position may be specified by the coordinates of the world coordinate system indicating the position of the storage location.
  • the three-dimensional object recognition device 900 selects a moving object indicated by the object information from the captured objects based on the input object information.
  • the three-dimensional object recognition device 900 identifies the center position and posture of the selected object and the movement destination position.
  • the three-dimensional object recognition device 900 is a movement request for moving the selected object from the workbench to the movement destination position, and transmits a movement request including the specified center position and posture and the movement destination position to the robot device 1300. do.
  • the input device 1200 is, for example, a personal computer device, a server device, or the like.
  • the input device 1200 is an input device including, for example, a mouse, a keyboard, a display, a touch panel, and the like.
  • the input device 1200 receives the object information about the object including the imaged center position and orientation of the object from the three-dimensional object recognition device 900.
  • the input device 1200 displays the input object information on a display, for example.
  • the input device 1200 can selectably display, for example, a reference shape corresponding to the shape ID and a color corresponding to the RGB value.
  • the input device 1200 generates object information based on at least one of the reference shapes and colors selected by the user.
  • the input device 1200 generates object information to be moved, including at least one of a shape ID corresponding to the input reference shape and a color ID corresponding to the input color.
  • the input device 1200 may cause the user to input the number of objects to be moved for each of the reference shape and the color, and may include the input number of objects to be moved in the object information.
  • the input device 1200 may include the RGB value in addition to the color ID in the object information, or may include the RGB value instead of the color ID.
  • the input device 1200 displays a schematic diagram on which the user can grasp the color information of the object, the reference shape similar to the object, and the center position and posture of the object based on the object information. It may be displayed. Then, the user may specify an area including the object to be moved in the schematic diagram, and the input device 1200 may generate object information based on the reference shape and color included in the designated area. Further, the input device 1200 may store the reference shape and color selected by the user in the past, and may generate object information based on the reference shape and color selected by the user in the past.
  • the input device 1200 acquires the movement destination position of the object to be moved from the user based on the information input by the user.
  • the input device 1200 acquires the coordinates input by the user as the movement destination position.
  • the input device 1200 transmits the object information and the movement destination position to the three-dimensional object recognition device 900.
  • the robot device 1300 includes a robot hand that is a gripping portion capable of gripping an object to be moved, and a robot arm that moves the object to be moved from the work table to the destination position by moving the robot hand.
  • the installation position of the robot device 1300 is set in the world coordinate system, and the robot device 1300 is configured so that the position (coordinates) in the world coordinate system can be specified.
  • the robot device 1300 receives a movement request from the three-dimensional object recognition device 900.
  • the robot device 1300 grips the object to be moved according to the received movement request, moves the gripped object to the destination position, and places the gripped object at the destination position.
  • the three-dimensional object recognition device 900 includes a sensor unit 510 and a processing unit 910.
  • the three-dimensional object recognition device 900 has a configuration in which the processing unit 610 according to the third embodiment is replaced with the processing unit 910. Since the sensor unit 510 is the same as that of the third embodiment, the description thereof will be omitted.
  • the processing unit 910 includes a point cloud acquisition unit 601, a segmentation unit 602, a three-dimensional integration unit 603, a separation unit 604, an object identification unit 605, a position / orientation derivation unit 606, and a control unit 911.
  • the processing unit 910 has a configuration in which a control unit 911 is added to the three-dimensional object recognition device 500 according to the third embodiment. Since the configurations of the point cloud acquisition unit 601, the segmentation unit 602, the three-dimensional integration unit 603, the separation unit 604, the object identification unit 605, and the position / orientation derivation unit 606 are the same as those in the third embodiment, the description thereof is omitted. do.
  • the control unit 911 acquires the object information recorded in the identification recording unit 615 and transmits it to the input device 1200.
  • the identification recording unit 615 associates each object with a type ID, an individual ID, a color ID, a shape ID, an RGB value, an RGB-D point cloud included in the object area, a center position, and a posture. It has been recorded.
  • the control unit 911 acquires the type ID, individual ID, color ID, shape ID, RGB value, center position, and posture from the identification recording unit 615.
  • the control unit 911 transmits the object information including the type ID, the individual ID, the color ID, the shape ID, the RGB value, the center position, and the posture to the input device 1200.
  • the control unit 911 receives the object information of the moving target and the moving destination position of the moving target object from the input device 1200 among the objects captured by the sensor unit 510.
  • the object information includes at least one of the shape ID corresponding to the reference shape selected by the user and the color ID corresponding to the color selected by the user in the input device 1200. Further, the object information may include the number of objects to be moved for each of the shape ID reference shape and the color information.
  • the destination position may be specified by coordinates indicating the position of the storage location for storing the object to be moved.
  • the control unit 911 selects an object to be moved based on the input object information.
  • the control unit 911 acquires the center position and the posture of the object to which the same shape ID as the shape ID included in the object information is assigned from the identification recording unit 615.
  • the control unit 911 determines that the reference shape specified to be similar to each object among the objects is the object to be moved. An object having a reference shape similar to that of is selected as an object to be moved.
  • the control unit 911 acquires the object to which the shape ID included in the object information is assigned.
  • the control unit 911 selects the number of objects included in the object information as the object to be moved, in order from the one with the smallest individual ID assigned to the acquired object.
  • the object information includes the number of objects to be moved in addition to the shape ID
  • the number of objects included in the object information is randomly selected from the objects to which the shape ID included in the object information is assigned. You may choose.
  • the control unit 911 acquires the center position and posture of the object to which the same color ID as the color ID included in the object information is assigned from the identification recording unit 615.
  • the control unit 911 is the color added to the RGB-D point group indicating the position of the surface of each object among the objects. An object whose information is the same as the color information of the object to be moved is selected as the object to be moved.
  • the control unit 911 acquires the object to which the color ID included in the object information is assigned.
  • the control unit 911 selects the number of objects included in the object information as the object to be moved, in order from the one with the smallest individual ID assigned to the acquired object.
  • the control unit 911 randomly includes the object to which the color ID included in the object information is assigned in the object information. You may select a number of objects.
  • the control unit 911 transmits a movement request including the center position and posture of the object to be moved and the movement destination position to the robot device 1300.
  • the control unit 911 may store in advance the center of gravity of the reference shape and the gripping points for gripping by the robot device 1300 for each reference shape. Then, the control unit 911 may specify a center of gravity or a gripping point having a reference shape similar to the object to be moved, and may further include the specified center of gravity or the gripping point in the movement request.
  • FIG. 16 is a diagram showing an operation example of the three-dimensional object recognition system according to the fifth embodiment.
  • the three-dimensional object recognition device 900 executes a position / orientation estimation operation and estimates the center position and orientation of the object imaged by the sensor unit 510 (step S901).
  • the position / orientation estimation operation is an operation including steps S301 to S308 and S501 to S507 of the flowchart described with reference to FIG.
  • the control unit 911 acquires the object information (step S902) and transmits the object information to the input device 1200 (step S903).
  • the control unit 911 acquires the object information recorded in the identification recording unit 615 and transmits it to the input device 1200.
  • the control unit 911 acquires the type ID, individual ID, color ID, shape ID, RGB value, center position, and posture from the identification recording unit 615.
  • the control unit 911 transmits the object information including the type ID, the individual ID, the color ID, the shape ID, the RGB value, the center position, and the posture to the input device 1200.
  • the input device 1200 receives the object information from the three-dimensional object recognition device 900.
  • the input device 1200 displays the object information on a display or the like (step S904), and generates the object information about the object to be moved (step S905).
  • the input device 1200 makes it possible to select, for example, a reference shape corresponding to the shape ID and a color corresponding to the RGB value, and displays the input object information.
  • the input device 1200 generates object information based on at least one of the reference shapes and colors selected by the user.
  • the input device 1200 generates object information to be moved, including at least one of a shape ID corresponding to the input reference shape and a color ID corresponding to the input color.
  • the input device 1200 may cause the user to input the number of objects to be moved for each of the reference shape and the color, and may include the input number of objects to be moved in the object information.
  • the input device 1200 transmits the object information and the movement destination position to the three-dimensional object recognition device 900 (step S906).
  • the input device 1200 acquires the movement destination position of the object to be moved from the user based on the information input by the user.
  • the input device 1200 transmits the object information and the movement destination position to the three-dimensional object recognition device 900.
  • the three-dimensional object recognition device 900 receives the object information and the movement destination position.
  • the control unit 911 selects an object to be moved based on the object information (step S907).
  • the control unit 911 selects an object to be moved based on the input object information.
  • the control unit 911 acquires the center position and the posture of the object to which the same shape ID as the shape ID included in the object information is assigned from the identification recording unit 615.
  • the control unit 911 acquires the center position and the posture of the object to which the same color ID as the color ID included in the object information is assigned from the identification recording unit 615.
  • the control unit 911 acquires the objects to which the shape ID and the color ID included in the object information are assigned.
  • the control unit 911 selects the number of objects included in the object information as the moving object in order from the smallest individual ID assigned to the acquired object for each of the shape ID and the color ID. ..
  • the control unit 911 transmits a movement request to the robot device 1300 (step S908).
  • the control unit 911 transmits a movement request including the center position and posture of the object to be moved and the movement destination position to the robot device 1300.
  • the robot device 1300 receives the movement request.
  • the robot device 1300 grips the object to be moved according to the received movement request, and moves the gripped object to the movement destination position (step S909).
  • the three-dimensional object recognition system 1100 using the three-dimensional object recognition device 900 has been described.
  • the 3D object recognition device 900 in the 3D object recognition system 1100 it is possible to accurately estimate the center position and orientation of the captured object based on the distance image and the RGB image. That is, according to the three-dimensional object recognition system 1100 according to the fifth embodiment, even if a plurality of types of objects are included in the imaged object, the center position and posture of the object can be estimated accurately. .. Therefore, according to the three-dimensional object recognition system 1100 according to the fifth embodiment, the center position and the posture of the object can be estimated with high accuracy, and the object to be moved can be moved to the position of the moving destination with high accuracy.
  • FIG. 17 is a block diagram showing a hardware configuration example of the object recognition device 1, the three-dimensional object recognition device 100, 500, 800, and 900 (hereinafter referred to as the object recognition device 1 and the like) described in the above-described embodiment. be.
  • the object recognition device 1 and the like include a network interface 1401, a processor 1402, and a memory 1403.
  • the network interface 1401 is used to communicate with other devices included in the three-dimensional object recognition system, such as an input device and a robot device.
  • the processor 1402 reads software (computer program) from the memory 1403 and executes it to perform processing of the object recognition device 1 and the like described by using the flowchart in the above-described embodiment.
  • the processor 1402 may be, for example, a microprocessor, an MPU (MicroProcessingUnit), or a CPU (CentralProcessingUnit).
  • Processor 1402 may include a plurality of processors.
  • Memory 1403 is composed of a combination of volatile memory and non-volatile memory. Memory 1403 may include storage located away from processor 1402. In this case, the processor 1402 may access the memory 1403 via an I / O (Input / Output) interface (not shown).
  • I / O Input / Output
  • the memory 1403 is used to store the software module group. By reading these software modules from the memory 1403 and executing the processor 1402, the processor 1402 can perform the processing of the object recognition device 1 and the like described in the above-described embodiment.
  • each of the processors included in the object recognition device 1 and the like executes one or a plurality of programs including a set of instructions for causing a computer to perform the algorithm described with reference to the drawings.
  • Non-temporary computer-readable media include various types of tangible storage media.
  • Examples of non-temporary computer-readable media include magnetic recording media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks).
  • examples of non-temporary computer-readable media include CD-ROM (Read Only Memory), CD-R, and CD-R / W.
  • examples of non-temporary computer readable media include semiconductor memory.
  • the semiconductor memory includes, for example, a mask ROM, a PROM (Programmable ROM), an EPROM (Erasable PROM), a flash ROM, and a RAM (Random Access Memory).
  • the program may also be supplied to the computer by various types of temporary computer readable media. Examples of temporary computer readable media include electrical, optical, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • (Appendix 1) Based on the 3D point group generated by converting the distance image including the distance information to the object, the object region including the 3D point group indicating the position of the surface of the object is specified, and the object region is set to the object region.
  • a specific means for specifying a reference shape similar to the object based on the included three-dimensional point group and the feature information of the reference shape and
  • An object recognition device including a three-dimensional point cloud included in the object region and an estimation means for estimating a reference position and a posture of the object based on the specified reference shape.
  • Appendix 2 The object recognition device according to Appendix 1, wherein the specifying means identifies the object region from the generated three-dimensional point cloud based on the distance between the three-dimensional point clouds.
  • the specifying means extracts a three-dimensional point group in which the distance from the adjacent points is within a predetermined value from the generated three-dimensional point group, and specifies the extracted three-dimensional point group as the object region.
  • the object recognition device according to Appendix 2.
  • Appendix 4 The feature information includes normal vector-related information related to the normal vector of the surface constituting the reference shape.
  • the specifying means identifies a reference shape similar to the object based on the normal vector of a plurality of planes composed of a group of three-dimensional points included in the object region and the normal vector-related information.
  • the object recognition device according to any one of Supplementary note 1 to 3. (Appendix 5)
  • the normal vector-related information includes at least one of the reference direction of the normal vector of the surface constituting the reference shape and the reference histogram distribution of the normal vector of the surface constituting the reference shape.
  • the specific means includes the direction of the normal vector of the plurality of planes, the reference direction, and the histogram distribution of the normal vector of the plurality of planes, and the object and the object based on at least one of the reference histogram distributions.
  • the object recognition device which specifies a similar reference shape.
  • the reference position is the center position of the object.
  • the estimation means approximates the object to the specified reference shape, estimates the axis of the approximated reference shape, and sets the estimated axis and the reference axis of the specified reference shape.
  • the object recognition device according to any one of Supplementary note 1 to 6, which estimates the posture based on the above.
  • the estimation means performs principal component analysis on a three-dimensional point cloud included in the object region, estimates the axes constituting the object, and estimates the estimated axes and the reference of the specified reference shape.
  • the object recognition device according to any one of Supplementary note 1 to 6, which estimates the posture based on the axis.
  • a segmentation means for inputting a color image and segmenting the color image based on the color information of each pixel included in the color image. Further provided with an integrated means for generating a three-dimensional point cloud to which color information is added based on the distance image and the color information of the segmented region.
  • the object recognition device according to any one of Supplementary note 1 to 8, wherein the specifying means further uses the color information added to the generated three-dimensional point cloud to specify the object region.
  • the segmentation means inputs the detection target color information indicating the color information of the detection target, extracts the region having the detection target color information from the segmented regions, and then extracts the region.
  • the object recognition device according to Appendix 9, wherein the integrated means generates a three-dimensional point cloud to which the detection target color information is added.
  • the segmentation means inputs a detection target area in the color image, specifies detection target color information based on the detection target area, and has the detection target color information in the segmented area.
  • the object recognition device Extracted, The object recognition device according to Appendix 9, wherein the integrated means generates a three-dimensional point cloud to which the detection target color information is added. (Appendix 12) Based on the 3D point group generated by converting the distance image including the distance information to the object, the object region including the 3D point group indicating the position of the surface of the object is specified. Based on the three-dimensional point cloud included in the object region and the feature information of the reference shape, a reference shape similar to the object is specified. An object recognition method executed by an object recognition device that estimates a reference position and a posture of an object based on a three-dimensional point cloud included in the object region and the specified reference shape.
  • An input device for inputting object information to be moved and a moving destination position of the object indicated by the object information to be moved.
  • a robot device for moving the object to the destination position, and the like.
  • the object recognition device is An object recognition system further comprising a control means for selecting the object from the objects based on the object information.
  • the object information includes a reference shape similar to the object.
  • the object information includes color information of the object.
  • the object recognition device is A segmentation means for inputting a color image and segmenting the color image based on the color information of each pixel included in the color image.
  • the specifying means further uses the color information added to the generated three-dimensional point cloud to specify the object region.
  • the control means selects, among the objects, an object whose color information added to the three-dimensional point group indicating the position of the surface of the object is the same as the color information of the object as the object. ,
  • the object recognition system according to Appendix 14 or 15.
  • Object recognition device 2 Specific unit 3 Estimator unit 100, 500, 800, 900 3D object recognition device 110, 510 Sensor unit 201, 601 Point group acquisition unit 202, 604 Separation unit 203, 605 Object identification unit 204, 606 Position and orientation Derivation unit 205, 611, 614 Identification processing implementation unit 206, 612, 615 Identification recording unit 207, 613, 616 Identification result output unit 210, 610, 810, 910 Processing unit 602, 811 Segmentation unit 603 3D integration unit 607 Color information Identification unit 608 Shape identification unit 700, 1200 Input device 750 Recording device 911 Control unit 1000, 1100 3D object recognition system 1300 Robot device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Abstract

対象物の位置姿勢を精度よく特定することが可能な物体認識装置(1)を提供する。物体認識装置(1)は、対象物までの距離情報を含む距離画像を変換して生成された3次元点群に基づいて、対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、対象物と類似する基準形状を特定する特定部(2)と、物体領域に含まれる3次元点群と、特定された基準形状とに基づいて、対象物の基準位置及び姿勢を推定する推定部(3)と、を備える。

Description

物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム
 本開示は、物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システムに関する。
 近年、物流業界において、労働力不足を背景に、人が行っていた作業をロボットに自動化させる自動化システムが導入され始めている。自動化システムでは、画像処理技術を含む、様々な自動化技術が利用されている。自動化システムに含まれる装置として、例えば、RGB(Red-Green-Blue)-D(Depth)カメラやレーザーレーダによって取得された測距点群を用いて対象物を特定する装置が知られている(例えば、特許文献1及び2)。
 特許文献1は、ピッキング装置が、複数のピッキング対象物全体の3次元点群情報を生成し、生成した3次元点群情報に基づいて、ピッキング対象物の位置姿勢を出力することを開示する。特許文献2は、3次元位置・姿勢認識装置が、深層学習された物体認識部を含み、物体認識部がイメージセンサにより得られた画像に対して物体認識を行い、物体種別と画像内における領域を特定することを開示する。
特開2019-181573号公報 特開2020-101437号公報
 特許文献1に開示された技術は、1種類のピッキング対象物の位置姿勢を出力している。そのため、複数種類の対象物に対して位置姿勢を特定したい場合、特許文献1に開示された技術を用いても対象物の位置を特定できない可能性がある。特許文献2に開示された技術は、深層学習された物体識別部を用いて、対象物の物体種別と画像内における領域を特定する。しかしながら、対象物の種類が多数存在し、物体認識部が十分に学習されていない場合、対象物の領域を特定できない場合があり得る。
 本開示の目的の1つは、上記課題を解決するためになされたものであり、対象物の位置姿勢を精度よく特定することが可能な物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システムを提供することにある。
 本開示にかかる物体認識装置は、
 対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定する特定手段と、
 前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する推定手段と、を備える。
 本開示にかかる物体認識方法は、
 対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、
 前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定し、
 前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する、物体認識装置により実行される物体認識方法である。
 本開示にかかる非一時的なコンピュータ可読媒体は、
 対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、
 前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定し、
 前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する、処理をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体である。
 本開示にかかる物体認識システムは、
 上記の物体認識装置と、
 移動対象の物体情報と、前記移動対象の物体情報が示す物体の移動先位置とを入力する入力装置と、
 前記物体を前記移動先位置に移動させるロボット装置と、を含み、
 前記物体認識装置は、
 前記物体情報に基づいて、前記対象物のうち、前記物体を選択する制御手段をさらに備える、物体認識システムである。
 本開示によれば、対象物の位置姿勢を精度よく特定することが可能な物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システムを提供できる。
第1の実施形態にかかる物体認識装置の構成例を示す図である。 第2の実施形態にかかる3次元物体認識装置の構成例を示すブロック図である。 第2の実施形態にかかる物体識別部の詳細構成例を示す図である。 第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第3の実施形態にかかる3次元物体認識装置の構成例を示すブロック図である。 第3の実施形態にかかる物体識別部の詳細構成例を示す図である。 第3の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第4の実施形態にかかる3次元物体認識システムの構成例を示す図である。 第4の実施形態にかかる3次元物体認識装置の動作例を示す図である。 第5の実施形態にかかる3次元物体認識システムの構成例を示す図である。 第5の実施形態にかかる3次元物体認識システムの動作例を示す図である。 各実施形態にかかる物体認識等のハードウェア構成例を示す図である。
 以下、図面を参照して本開示の実施の形態について説明する。なお、以下の記載及び図面は、説明の明確化のため、適宜、省略及び簡略化がなされている。また、以下の各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
(第1の実施形態)
 図1を用いて、第1の実施形態にかかる物体認識装置1の構成例について説明する。図1は、第1の実施形態にかかる物体認識装置の構成例を示す図である。物体認識装置1は、特定部2と、推定部3とを備える。
 特定部2は、対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、対象物の表面の位置を示す3次元点群が含まれる物体領域を特定する。対象物は、撮像対象の物体であり、1つの物体でもよく、2つ以上の物体でもよい。距離画像は、撮像装置(不図示)から撮像対象である対象物までの距離情報を含み、撮像装置から対象物までの距離と、撮像装置の位置を基準とした対象物の位置とを示す画像である。距離画像は、複数の点を含み、複数の点の各々が、撮像装置の位置を基準とする対象物の位置と、撮像装置から対象物までの距離とを示す。距離画像に含まれる点を画素とすると、距離画像は、各画素が、撮像装置から撮像された撮像領域内の位置に対応し、撮像装置から当該位置までの距離を画素値とする画像である。3次元点群は、距離画像をカメラ座標系から世界座標系に変換して生成された位置を示す3次元座標の集合データである。カメラ座標系は、撮像装置の位置を原点とし、撮像装置が撮像する画像平面に2軸が設けられ、かつ当該画像平面に直交した方向を3軸目の軸とする3次元直交座標系である。世界座標系は、3次元空間における任意の位置を原点とする3次元直交座標系である。
 なお、3次元点群は、3次元点群データと称されてもよく、3D点群データと称されてもよく、点群データと称されてもよい。そのため、以降の説明において、3次元点群を、3次元点群データ、3D点群データ、点群データ、又は3次元点群情報として記載することがある。また、3次元点群に含まれる各点を、点データ又は点として記載する。
 特定部2は、特定された物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、対象物と類似する基準形状を特定する。基準形状は、例えば、直方体、円柱及び球等を含んでもよい。特徴情報は、基準形状を構成する表面の法線ベクトルに関連する法線ベクトル関連情報を含んでもよい。
 推定部3は、物体領域に含まれる3次元点群と、特定部2が特定した基準形状とに基づいて、対象物の基準位置及び姿勢を推定する。基準位置は、対象物の位置を特定可能な位置である。基準位置は、対象物の中心位置でもよく、対象物の位置のうち、撮像装置(不図示)に最も近い点の位置でもよく、撮像装置から最も遠い位置でもよく、撮像装置との距離の平均値又は中央値の位置でもよい。姿勢は、各対象物の基準状態からの変位を表す情報であり、ロール角、ピッチ角及びヨー角を用いて表されてもよい。基準状態は、例えば、対象物の表面上の所定位置が、水平面と平行な面に載置された状態でもよく、任意に設定可能な状態である。なお、以降の説明では、ロール角、ピッチ角及びヨー角を、それぞれ、単に、ロール、ピッチ及びヨーとして記載することがある。
 以上説明したように、物体認識装置1は、距離画像を取得し、距離画像が変換された3次元点群に基づいて、対象物の表面の位置を示す3次元点群が含まれる物体領域を特定できる。物体認識装置1は、特定した物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、対象物が類似する基準形状を特定し、特定された基準形状を用いて、対象物の基準位置及び姿勢を推定できる。
 ここで、上述した特許文献1では、1種類の対象物の位置姿勢を特定する。これに対して、物体認識装置1は、複数の基準形状の特徴情報を用いることで、対象物が複数種類であったとしても、対象物の基準位置及び姿勢を特定できる。つまり、物体認識装置1は、複数の基準形状の特徴情報を用いることで、複数種類の対象物が含まれていたとしても、対象物の位置姿勢を特定できる。また、物体認識装置1は、基準形状の特徴情報を用いるため、対象物に関する情報を必要とせずに、対象物が含まれる物体領域を特定でき、対象物の位置姿勢も推定できる。したがって、第1の実施形態にかかる物体認識装置1によれば、複数種類の対象物が含まれていたとしても、対象物の基準位置及び姿勢を特定でき、関連技術と比較して対象物の位置姿勢を精度よく特定することができる。
(第2の実施形態)
 続いて、第2の実施形態について説明する。第2の実施形態は、第1の実施形態を具体的にした実施形態である。
<3次元物体認識装置の構成例>
 図2を用いて、第2の実施形態にかかる3次元物体認識装置100の構成例を説明する。図2は、第2の実施形態にかかる3次元物体認識装置の構成例を示すブロック図である。3次元物体認識装置100は、例えば、作業台に載置された対象物を撮像し、撮像された画像に基づいて、対象物の基準位置及び姿勢を推定する装置である。3次元物体認識装置100は、第1の実施形態にかかる物体認識装置1に対応する。
 3次元物体認識装置100は、例えば、ロボットタスクに適用されてもよく、Pick&Place装置に適用されてもよい。また、3次元物体認識装置100は、例えば、自動運転を行う自動車、ドローン等の移動体であり、障害物を検知する移動体に搭載されてもよい。
 3次元物体認識装置100は、センサ部110と、処理部210とを備える。
 センサ部110は、例えば、ステレオカメラ、ToF(Time of Flight)カメラ、ミリ波レーダー、LiDAR(Light Detection and Ranging Laser Imaging Detection and Ranging)等の撮像装置を含むように構成される。センサ部110は、例えば、作業台等の所定領域に対してレーザ光を照射する。作業台には、撮像対象の物体である、少なくとも1つの対象物が載置されている。センサ部110は、作業台に照射したレーザ光のうち、当該対象物にて反射されたレーザ光を受光し、各点が、センサ部110から対象物までの距離情報を含む距離画像を生成する。センサ部110は、生成した距離画像を処理部210に出力する。
 処理部210は、センサ部110が生成した距離画像に基づいて、撮像された対象物の表面の位置を示す3次元点群を含む物体領域を特定し、撮像された対象物の基準位置及び姿勢を推定する。基準位置は、対象物の位置を特定可能な位置である。基準位置は、対象物の中心位置でもよく、対象物の位置のうち、センサ部110に最も近い点の位置でもよく、センサ部110から最も遠い位置でもよく、センサ部110との距離の平均値又は中央値の位置でもよい。処理部210は、生成された3次元点群に基づいて、対象物の基準位置を、世界座標系の座標を用いて推定する。なお、以降の説明では、基準位置は、対象物の中心位置であることとして説明する。
 処理部210は、各対象物の基準状態からの変位を、ロール角、ピッチ角及びヨー角を用いて、各対象物の姿勢として導出する。基準状態は、例えば、対象物の表面上の所定位置が、水平面と平行な面に載置された状態でもよく、任意に設定可能な状態でもよい。
 処理部210は、点群取得部201と、セパレーション部202と、物体識別部203と、位置姿勢導出部204とを備える。
 点群取得部201は、センサ部110から出力された距離画像を入力する。点群取得部201は、距離画像をカメラ座標系から世界座標系に変換し、各点が3次元空間上の位置を示す3次元点群を生成する。3次元点群は、世界座標系である3次元直交座標を用いて示される点の集合を表すデータである。つまり、3次元点群は、距離画像に含まれる各点の3次元空間上の位置を示す3次元座標の集合を表すデータである。
 上述したように、3次元物体認識装置100は、ロボットタスク等に適用され得る。そのため、対象物、及びセンサ部110等の位置関係が俯瞰的に明確になるように、点群取得部201は、距離画像を入力し、カメラ座標系から世界座標系に変換して、世界座標系での3次元点群を生成する。点群取得部201は、生成した3次元点群をセパレーション部202に出力する。なお、点群取得部201は、3次元点群を生成するため、3D(three-dimensional)点群取得部と称されてもよい。また、以降の説明において、世界座標系である3次元直交座標系の各軸は、X軸、Y軸、及びZ軸であることとして説明する。換言すると、世界座標系は、XYZ座標系であることとして説明する。
 セパレーション部202は、点群取得部201から出力された3次元点群を入力する。セパレーション部202は、XYZ座標系の3次元空間において、対象物を構成する点が独立するように、不要な3次元点群を除去する。セパレーション部202は、例えば、平面除去法、及び輪郭を抽出して特定領域以外の点群を除去する方法により、不要な3次元点群を除去する。セパレーション部202が平面除去法を用いる場合、セパレーション部202は、例えば、RANSAC(Random Sample Consensus)等を用いて、3次元点群の座標(x,y,z)が「ax+by+cz+d≒0」の条件を満たす係数a、b、c及びdを導出する。
 セパレーション部202は、上記の条件を満たすことを判定するための閾値θを設定し、|ax+by+cz+d|<θを満たす係数a、b、c及びdを導出してもよい。なお、閾値θは、センサ部110に使用されるカメラの性能及び3次元物体認識装置100が配置される環境に応じて設定することができる。そして、セパレーション部202は、導出した係数を用いてax+by+cz+d≒0の条件を満たす3次元点群を除去してもよい。もしくは、セパレーション部202は、上記条件を満たすことを判定するための2つの閾値である閾値ρ及び閾値εを設定し、ρ<ax+by+cz+d<εを満たす3次元点群(x,y,z)を除去してもよい。なお、閾値ρ及び閾値εは、センサ部110に使用されるカメラの性能及び3次元物体認識装置100が配置される環境、並びに対象物を構成する3次元点群の数が最大となるように決定されてもよい。セパレーション部202は、不要な3次元点群が除去された後の3次元点群を物体識別部203に出力する。
 なお、3次元物体認識装置100は、センサ部110と、点群取得部201と、セパレーション部202とを備える構成としているが、センサ部110、点群取得部201、及びセパレーション部202が外部に設けられてもよい。この場合、後述する物体識別部203が外部インタフェースを備え、物体識別部203が、不要な3次元点群が除去された後の3次元点群を、外部インタフェースを介して入力する構成としてもよい。
 物体識別部203は、第1の実施形態における特定部2に対応する。物体識別部203は、セパレーション部202から出力された3次元点群を入力する。物体識別部203は、入力した3次元点群に基づいて、センサ部110が撮像した対象物の表面の位置を示す3次元点群が含まれる物体領域を特定する。物体識別部203は、撮像された対象物が複数存在する場合、対象物の各々の表面の位置を示す3次元点群が含まれる物体領域の各々を特定する。
 また、物体識別部203は、物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、撮像された対象物の各々と類似する基準形状を特定する。物体識別部203は、撮像された対象物を、同様の形状を有する対象物が同一種類に属するように、形状の種類ごとに対象物を分類する。物体識別部203は、形状の種類毎に、分類された対象物の個数を特定する。
 基準形状は、例えば、直方体、円柱、球等のいわゆるプリミティブ形状を含む。特徴情報は、例えば、基準形状を構成する表面の法線ベクトルに関連する情報を示す法線ベクトル関連情報を含む。法線ベクトル関連情報は、基準形状を構成する表面の法線ベクトルの基準方向、及び当該法線ベクトルの基準ヒストグラム分布の少なくとも1つを含む情報である。基準方向は、基準形状を構成する表面の法線ベクトルの方向である。基準ヒストグラム分布は、基準形状を構成する表面の法線ベクトルのヒストグラム分布である。なお、特徴情報は、基準形状が有する表面を構成する各辺の長さ情報を含んでもよい。また、基準形状は、直方体、円柱、球以外の幾何学形状を含んでもよい。以降の説明において、基準形状を、プリミティブ形状として記載することがある。
 ここで、図3を用いて、物体識別部203の詳細な構成について説明する。図3は、第2の実施形態にかかる物体識別部の詳細構成例を示す図である。物体識別部203は、識別処理実施部205と、識別記録部206と、識別結果出力部207とを備える。
 識別処理実施部205は、セパレーション部202から、不要な3次元点群が除去された後の3次元点群を入力する。識別処理実施部205は、3次元点群間の距離に基づいて、入力された3次元点群から物体領域を特定する。具体的には、識別処理実施部205は、入力された3次元点群のうち、隣接する点との距離が所定値以内にある3次元点群を抽出し、抽出された3次元点群を物体領域として特定する。所定値は、1つの物体領域であると判定するための値であり、3次元物体認識装置100を利用するユーザが設定した値でもよい。もしくは、所定値は、センサ部110の分解能(点群密度)から、点と点との距離を計算し、計算された距離でもよい。
 より具体的には、識別処理実施部205は、入力された3次元点群から起点となるアンカーポイントを選択し、当該アンカーポイントからの距離が所定値以内にある近傍点を探索する近傍探索を行う。識別処理実施部205は、見つかった近傍点を新たなアンカーポイントに設定して次の近傍探索を行う。識別処理実施部205は、近傍点が見つからなくなるまで近傍探索を繰り返し行い、物体領域を特定する。識別処理実施部205は、入力された3次元点群の全ての点に対して、隣接する点との距離が所定値以内にある点を抽出し、抽出された点の集合を物体領域として特定する。このように、識別処理実施部205は、入力した3次元点群の全ての点に対して、隣接する点との距離が所定値以内にある点を抽出することで、撮像された対象物が複数存在する場合でも、対象物の各々が存在する物体領域を特定でき、対象物の個数を特定できる。
 識別処理実施部205は、特定された物体領域に対して、物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、物体領域に含まれる対象物と類似する基準形状を特定する。特定された物体領域が複数存在する場合、識別処理実施部205は、特定された物体領域の各々に対して、物体領域に含まれる対象物と類似する基準形状を特定する。
 識別処理実施部205は、特定された物体領域の各々に対して、物体領域に含まれる3次元点群により構成される複数の平面を生成し、当該複数の平面の各々の法線ベクトルを生成する。具体的には、識別処理実施部205は、特定された物体領域の各々に対して、物体領域に含まれる点同士をつなげ、四角形又は三角形の平面を複数生成するメッシュ化処理を行う。識別処理実施部205は、メッシュ化処理により生成された複数の平面の各辺のベクトルを生成する。識別処理実施部205は、例えば、複数の平面の各辺に対するベクトルの外積を求めることで、物体領域の各々に含まれる3次元点群により構成される複数の平面の法線ベクトルを生成してもよい。
 識別処理実施部205は、生成された法線ベクトルと、基準形状の特徴情報に含まれる、法線ベクトル関連情報とに基づいて、各対象物と類似する基準形状を特定する。具体的には、識別処理実施部205は、各平面に対して生成した法線ベクトルの方向及びヒストグラム分布のうち少なくとも1つと、基準形状を構成する表面の法線ベクトルの方向及びヒストグラム分布のうち少なくとも1つとの類似度を算出する。識別処理実施部205は、算出した類似度に基づいて、物体領域に含まれる対象物と類似する基準形状を特定する。
 例えば、直方体であれば、直方体の表面から計算される法線ベクトルは、表面に対して垂直な成分を有するベクトルが多い。センサ部110の性能により距離画像にノイズや歪みが生じ、メッシュ化処理及び法線ベクトルを生成する際に誤差が生じる。そのため、理想的には直方体の表面から計算される法線ベクトルは全て表面に対して垂直となる。しかし、上記誤差により、計算された法線ベクトルは表面に対して垂直成分を有するベクトルが多くなる。また、例えば、円柱であれば、円柱の側面から計算される法線ベクトルは、全体的にあらゆる角度の成分を持ったベクトルが多い。そのため、識別処理実施部205は、生成した法線ベクトルの方向及びヒストグラム分布のうち少なくとも1つと、基準形状を構成する表面の法線ベクトルの基準方向及び基準ヒストグラム分布のうち少なくとも1つとの類似度を算出する。そして、識別処理実施部205は、算出した類似度を用いて、物体領域に含まれる対象物と類似する基準形状を特定する。
 識別処理実施部205は、物体領域に含まれる対象物と類似する基準形状を特定すると、特定した基準形状に基づいて、種類ID(Identifier)及び形状IDを割り当てる。例えば、基準形状毎に、一意の形状IDが割り当てられており、識別処理実施部205は、物体領域の各々に対して、特定した基準形状に対応する形状IDを物体領域に含まれる対象物に割り当てる。本実施形態では、対象物の種類は、類似する基準形状に応じて決定される。そのため、識別処理実施部205は、形状IDに対応する種類IDを、各対象物に割り当てる。
 また、識別処理実施部205は、同一種類IDが割り振られた対象物の各々に対して、各種類ID内で一意に識別可能な個別IDをさらに割り当てる。3次元物体認識装置100は、例えば、ロボットタスク及びPick&Place装置に適用され得る。ロボットタスク、及びPick&Place装置では、どの種類の物体を何個移動させるかを指定する可能性が高い。そのため、識別処理実施部205は、各対象物がどの種類に属するかを特定可能とするために種類IDを付与するとともに、各種類の対象物の各々に対して個別IDを付与する。
 識別処理実施部205は、種類ID及び個別IDが割り当てられた各対象物に対して、形状IDと、当該対象物が含まれる物体領域の3次元点群の座標とを対応付けて識別記録部206に記録する。なお、識別処理実施部205は、各対象物に対して、対象物と類似する基準形状の名称を、種類ID及び個別IDにさらに対応付けて識別記録部206に記録してもよい。
 識別記録部206は、識別処理実施部205の制御に応じて、各対象物に関する情報を記憶する。識別記録部206は、種類IDと、個別IDと、形状IDと、物体領域に含まれる3次元点群の座標とを対応付けて記憶する。なお、識別記録部206は、識別処理実施部205が、特定した基準形状の名称を識別記録部206に記録する場合、基準形状の名称を、種類ID及び個別IDにさらに対応付けて記憶してもよい。
 識別結果出力部207は、識別記録部206に記録された、各対象物に関する情報である、種類IDと、個別IDと、形状IDと、当該3つのIDに対応付けられた3次元点群の座標とを位置姿勢導出部204に出力する。
 図2に戻り、位置姿勢導出部204について説明する。
 位置姿勢導出部204は、第1の実施形態にかかる推定部3に対応する。位置姿勢導出部204は、物体領域に含まれる3次元点群と、当該物体領域に含まれる対象物と類似する基準形状とに基づいて、物体領域に含まれる対象物の中心位置及び姿勢を推定する。
 位置姿勢導出部204は、各物体領域に含まれる対象物に関する情報を入力する。位置姿勢導出部204は、種類IDと、個別IDと、形状IDと、物体領域に含まれる3次元点群の座標とを入力する。
 位置姿勢導出部204は、種類ID及び個別IDの組み合わせで特定される対象物の各々に対して、入力された物体領域の3次元点群の中心点を算出する。位置姿勢導出部204は、算出した中心点を、対象物の中心位置として推定する。位置姿勢導出部204は、中心位置を推定した対象物に対して、種類ID及び個別IDに中心位置の座標を対応付けて識別記録部206に記録する。
 位置姿勢導出部204は、物体領域に含まれる対象物を、物体識別部203が特定した基準形状に近似し、近似された基準形状の軸を推定し、推定された軸と、物体識別部203が特定した基準形状の基準軸とに基づいて、対象物の姿勢を推定する。基準軸は、物体識別部203が特定した基準形状の仮想物体が、水平面に載置された場合の基準形状を構成する軸である。基準軸は、基準形状毎に予め定められている。基準形状が円柱の場合、基準軸は、中心軸(旋回軸)方向である。基準形状が直方体の場合、基準軸は、面積が最も大きい表面の法線方向である。位置姿勢導出部204は、推定された軸と、基準軸との角度差を算出し、算出された角度差に基づいて、ロール角、ピッチ角及びヨー角を求めることで対象物の姿勢を推定する。位置姿勢導出部204は、姿勢を推定した対象物に対して、種類ID及び個別IDに姿勢を対応付けて識別記録部206に記録する。
 位置姿勢導出部204は、形状IDに基づいて、対象物と類似するプリミティブ形状を特定する。位置姿勢導出部204は、特定したプリミティブ形状を表す式を用いて、入力された物体領域の3次元点群により構成される対象物をプリミティブ形状に近似する。位置姿勢導出部204は、近似したプリミティブ形状の軸と、プリミティブ形状の基準軸との角度の差から姿勢を算出する。
 例えば、特定された基準形状が直方体である場合、位置姿勢導出部204は、平面を表す式ax+by+cz+d=0の係数を外れ値の影響をなるべく受けないように、入力した3次元点群からサンプリングする。特定された基準形状が直方体である場合、プリミティブ形状である直方体を表す式は上記式となる。位置姿勢導出部204は、特異値分解及び最小二乗法等により、上記式を満たし、対象物の平面に含まれる3次元点群を含む係数a、b、c及びdの値を算出し、直方体のうち、最も面積が大きい平面を検出する。最も面積が大きい平面とは、センサ部110が撮像(観測)できる表面の面積が最も大きい平面である。
 位置姿勢導出部204は、検出した平面の法線ベクトルの方向から、検出した平面の縦及び横の長さを計算する。位置姿勢導出部204は、検出した平面に対して、入力された3次元点群の分布の広がりを表す分布度から、検出した平面の縦及び横の長さを計算する。位置姿勢導出部204は、検出した平面の縦及び横の長さと、入力された3次元点群の分布の広がりを表す分布度とに基づいて、検出した平面と隣り合い、かつ撮像された平面の各辺の長さを計算し、対象物を直方体に近似する。
 また、位置姿勢導出部204は、検出した平面に含まれる3次元点群の位置関係から、検出した平面が、直方体の上面であるのか、又は直方体の側面であるのかを決定する。直方体の上面は、直方体の平面のうち、例えば、対象物が載置された作業台の平面に最も近い面を底面としたときに、底面と平行な面である。直方体の側面は、上面と隣り合う面である。
 位置姿勢導出部204は、検出した平面が直方体の上面である場合、例えば、作業台の平面と、直方体の上面との距離から、直方体の奥行きの長さ(距離)を算出してもよい。奥行きは、検出した平面が直方体の上面である場合、直方体の側面の辺であり、かつ直方体の上面と直交する辺の長さである。作業台の平面は、セパレーション部202が除去した3次元点群から推定可能である。そのため、位置姿勢導出部204は、直方体の上面に含まれる3次元点群と、セパレーション部202が除去した3次元点群との距離に基づいて、直方体の奥行きを算出してもよい。
 位置姿勢導出部204は、検出した平面が直方体の側面である場合、検出した平面に含まれる点のうち、センサ部110から最も遠い位置の点と、検出した平面に含まれる点のうち、センサ部110から最も近い位置の点と、の距離を奥行きとしてもよい。位置姿勢導出部204は、検出した平面に含まれる点のうち、センサ部110から最も近い位置の点と、セパレーション部202が除去した3次元点群との距離に基づいて、直方体の上面の辺であり、かつ直方体の側面と直交する辺の長さを推定してもよい。
 位置姿勢導出部204は、近似した直方体の各平面に対して垂直な方向を、直方体の各軸として推定する。位置姿勢導出部204は、推定した直方体の各軸と、直方体の仮想物体が水平面に載置された場合の直方体の各軸との角度差を算出することで、対象物の姿勢を推定する。なお、位置姿勢導出部204は、入力された3次元点群に対して主成分分析を行うことで、直方体の各軸を推定し、各軸に対して、入力された、全ての3次元点群が含まれる直方体を生成することで対象物を直方体に近似してもよい。
 なお、上記説明は、説明を便宜的に行うために、プリミティブ形状は直方体であるとしたが、プリミティブ形状は、直方体を一般化した多面体でもよい。この場合、位置姿勢導出部204は、検出した平面の各辺の長さを基準に、隣接する平面の各辺の長さを推定することで対象物を多面体に近似可能である。位置姿勢導出部204は、近似した多面体の軸と、多面体の基準軸との角度の差から姿勢を算出可能である。
 例えば、特定された基準形状が円柱である場合、位置姿勢導出部204は、円柱の底面の中心を原点O’とする半径をrの円を底面とし、中心軸をz’軸とし、円柱の底面における点を(x’,y’)とすると、円柱の側面は、
Figure JPOXMLDOC01-appb-I000001
と表すことができる。円柱の底面の中心の座標を(x0,y0,z0)とし、円柱の底面の円弧に存在する点(xi,yi,zi)(i=1~m、m:2以上の整数)としたとき、位置姿勢導出部204は、
Figure JPOXMLDOC01-appb-I000002
を最も満たす中心及び半径をニュートン法等から推定する。特定された基準形状が円柱である場合、プリミティブ形状である円柱を表す式は上記式となる。位置姿勢導出部204は、底面の中心とは異なる、中心軸上の点と、当該点を基準に底面と平行な面の円弧に存在する点に対して、上記内容と同様のことを行い、底面の中心とは異なる、中心軸上の点の座標を推定する。そして、推定した底面の中心の座標及び中心軸上の点の座標から中心軸のベクトルを推定することにより、円柱の中心軸及び半径を推定してもよい。位置姿勢導出部204は、推定した中心軸のベクトル及び半径に基づいて、入力された3次元点群のうち、最も多く点が含まれる円柱を生成し、対象物を生成した円柱に近似する。位置姿勢導出部204は、中心軸のベクトルと、生成した円柱が水平面に載置された場合の中心軸との角度差を算出することで、対象物の姿勢を推定する。
 例えば、特定された基準形状が球である場合、位置姿勢導出部204は、球の中心の座標を(e,f,g)とし、半径をrとし、球に存在する点(xi,yi,zi)(i=1~m、m:2以上の整数)としたときに、
Figure JPOXMLDOC01-appb-I000003
を最も満たす中心及び半径を推定する。位置姿勢導出部204は、RANSAC等を用いて、上記の球の式を最も満たす中心と半径を推定する。特定された基準形状が球である場合、プリミティブ形状である球を表す式は上記式となる。位置姿勢導出部204は、例えば、予め球に対して基準となる姿勢情報を設定し、設定した基準となる姿勢情報をもとに、対象物の姿勢を推定してもよい。もしくは、位置姿勢導出部204は、法線ベクトルの平均値又は中央値に基づいて、法線ベクトルの方向を特定する。位置姿勢導出部204は、法線ベクトルの方向に基づいて、基準形状が球として特定された対象物の姿勢として推定してもよい。もしくは、物体識別部203が特定した基準形状に球以外の直方体、及び円柱のうち、少なくとも1つを含む場合、位置姿勢導出部204は、球以外の基準形状として特定された対象物の姿勢を、基準形状が球として特定された対象物の姿勢として推定してもよい。
 なお、位置姿勢導出部204は、物体領域に含まれる対象物を、プリミティブ形状に近似せずに、物体領域に含まれる3次元点群に対して主成分分析を行い、対象物を構成する軸を推定してもよい。物体領域に含まれる3次元点群は、多くの場合、対象物の形状に応じた軸方向に広がる傾向がある。そのため、位置姿勢導出部204は、入力された3次元点群に対して主成分分析を行うことで、対象物を構成する軸を推定してもよい。そして、位置姿勢導出部204は、推定した軸と、各対象物に対して特定された基準形状の基準軸との角度差に基づいて、対象物の姿勢を推定してもよい。また、位置姿勢導出部204は、入力された3次元点群に対して主成分分析を行う際に、各対象物に対して特定された基準形状の形状情報をさらに用いてもよい。位置姿勢導出部204は、主成分分析を行う際に、基準形状の形状情報を用いることで、推定する軸を特定し易くできる。
<3次元物体認識装置の動作例>
 次に、3次元物体認識装置100の動作例について説明する。まず、図4を用いて、3次元物体認識装置100の全体動作について説明する。図4は、第2の実施形態にかかる3次元物体認識装置の動作例を示す図である。
 センサ部110は、作業台等の所定領域を撮像し、各点が、センサ部110から対象物までの距離情報を含む距離画像を生成する(ステップS301)。
 点群取得部201は、距離画像をカメラ座標系から世界座標系に変換し、各点が3次元空間上の位置を示す3次元点群を生成する(ステップS302)。
 セパレーション部202は、例えば、平面除去法、及び輪郭を抽出して特定領域以外の点群を除去する方法により、3次元空間において、対象物を構成する点が独立するように、不要な3次元点群を除去する(ステップS303)。
 物体識別部203は、セパレーション部202から出力された3次元点群を入力し、入力した3次元点群に基づいて、対象物の各々が含まれる物体領域を特定する(ステップS304)。
 具体的には、識別処理実施部205は、セパレーション部202から3次元点群を入力する。識別処理実施部205は、入力された3次元点群の全ての点に対して、隣接する点との距離が所定値以内にある点を抽出し、抽出された点の集合を物体領域として特定する。なお、ステップS304の詳細動作については後述する。
 物体識別部203は、物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、物体領域に含まれる対象物と類似する基準形状を特定する(ステップS305)。なお、ステップS304において特定された物体領域が複数存在する場合、ステップS305~S307は、特定された各物体領域に対して繰り返し実施される。
 具体的には、識別処理実施部205は、特定された物体領域の各々に対して、物体領域に含まれる3次元点群により構成される複数の平面を生成し、当該複数の平面の各々の法線ベクトルを生成する。識別処理実施部205は、生成された法線ベクトルと、法線ベクトル関連情報とに基づいて、各対象物と類似する基準形状を特定する。識別処理実施部205は、各平面に対して生成した法線ベクトルの方向及び基準形状を構成する表面の法線ベクトルの基準方向に基づいて、物体領域に含まれる対象物と、各基準形状との類似度を算出する。さらに、識別処理実施部205は、各平面に対して生成した法線ベクトルのヒストグラム分布及び基準形状を構成する表面の基準ヒストグラム分布に基づいて、物体領域に含まれる対象物と、各基準形状との類似度を算出してもよい。識別処理実施部205は、算出した類似度に基づいて、物体領域に含まれる対象物と類似する基準形状を特定する。
 位置姿勢導出部204は、物体領域に含まれる3次元点群に基づいて、物体領域に含まれる対象物の中心位置を推定する(ステップS306)。
 具体的には、位置姿勢導出部204は、種類IDと、個別IDと、特定した基準形状を構成する3次元点群の座標とを入力する。位置姿勢導出部204は、種類ID及び個別IDの組み合わせで特定される対象物の各々に対して、入力された物体領域の3次元点群の中心点を算出する。位置姿勢導出部204は、算出した中心点を、対象物の中心位置として推定する。
 位置姿勢導出部204は、物体領域に含まれる3次元点群と、当該物体領域に含まれる対象物と類似する基準形状とに基づいて、物体領域に含まれる対象物の姿勢を推定する(ステップS307)。
 具体的には、位置姿勢導出部204は、物体領域に含まれる対象物を、物体識別部203が特定した基準形状に近似し、近似された基準形状の軸を推定し、推定された軸と、物体識別部203が特定した基準形状の基準軸とに基づいて、対象物の姿勢を推定する。
 3次元物体認識装置100は、ユーザが処理を終了するかを判定する(ステップS308)。
 ユーザから終了の命令がない場合(ステップS308のNO)、3次元物体認識装置100は、ステップS301以降の処理を再度実行する。
 一方、ユーザからの終了の命令を受け付けた場合(ステップS308のYES)、3次元物体認識装置100は、処理を終了する。
 次に、図5~図9を用いて、ステップS304で実施される詳細動作について説明する。図5~図9は、第2の実施形態にかかる3次元物体認識装置の動作例を示す図であり、ステップS304の詳細動作を説明するための図である。
 まず、図5に示すフローチャートを用いて、ステップS304で実施される詳細動作を説明する。図5に示すフローチャートは、物体識別部203に含まれる識別処理実施部205が実行する。
 識別処理実施部205は、セパレーション部202から3次元点群を入力する(ステップS401)。
 識別処理実施部205は、入力された3次元点群から近傍探索の起点となるアンカーポイントを決定する(ステップS402)。
 識別処理実施部205は、入力された3次元点群からランダムに選択された点をアンカーポイントに決定してもよい。もしくは、識別処理実施部205は、入力された3次元点群の中心点を最初のアンカーポイントに決定してもよい。もしくは、識別処理実施部205は、入力された3次元点群の分布から、3次元点群の密度が高い領域を抽出し、抽出された領域のうちから選択された1つの領域に含まれる3次元点群の中心をアンカーポイントに設定してもよい。抽出された領域に含まれる3次元点群は、対象物の表面のうち、撮像可能な(観測できる)対象物の表面であるため、抽出された3次元点群の中心点は、観測できる物体表面の中心と推測できる。そのため、識別処理実施部205は、抽出された3次元点群の中心点を、観測できる物体表面の中心と見なして、アンカーポイントとして決定してもよい。もしくは、識別処理実施部205は、入力された3次元点群の分布から、3次元点群の密度が高い領域を抽出し、抽出された領域のうちから選択された1つの領域の3次元点群の輪郭を推定してもよい。そして、識別処理実施部205は、推定された輪郭の中心点をアンカーポイントとしてもよい。
 識別処理実施部205は、入力された3次元点群のうち、抽出済みの点を除く3次元点群から、アンカーポイントとの距離が所定値以内である点を近傍点として抽出する(ステップS403)。
 識別処理実施部205は、ステップS403において、近傍点が抽出されたか否かを判定する(ステップS404)。
 近傍点が抽出された場合(ステップS404のYES)、識別処理実施部205は、現在のアンカーポイントを抽出済みの点とし、抽出された近傍点を次のアンカーポイントとして決定する(ステップS405)。
 識別処理実施部205は、次のアンカーポイントを決定し、ステップS403を実行する。つまり、識別処理実施部205は、決定したアンカーポイントを基準として、当該アンカーポイントの近傍点を抽出する。
 一方、近傍点が抽出されなかった場合(ステップS404のNO)、識別処理実施部205は、ステップS402及びS405において決定されたアンカーポイントの近傍点として抽出された点を物体領域として特定する(ステップS406)。
 識別処理実施部205は、ステップS402で決定されたアンカーポイントを起点として、近傍点が抽出されなくなるまでに近傍点として抽出された点、及びステップS402でアンカーポイントとして決定された点を1つの物体領域として特定する。識別処理実施部205は、ステップS406においてアンカーポイントになっている点を抽出済みの点に変更する。
 なお、ステップS402で決定したアンカーポイントは1つであるが、ステップS405で決定されたアンカーポイントが複数となることが想定される。アンカーポイントが複数ある場合、識別処理実施部205は、各アンカーポイントに対して、ステップS403~S405を実施する。識別処理実施部205は、各アンカーポイントに対してステップS404の判定がNOとなった場合、当該アンカーポイントについてはステップS405を実行しない。そして、識別処理実施部205は、全てのアンカーポイントに対して、近傍点が抽出されなくなった場合、ステップS406を実行する。
 識別処理実施部205は、入力された3次元点群に、抽出済みの点、アンカーポイントとしての点、及び近傍点のいずれにも分類されず、抽出処理が行われていない点である未抽出点があるかを判定する(ステップS407)。
 未抽出点がある場合(ステップS407のYES)、識別処理実施部205は、ステップS402の動作を実施し、次の物体領域を特定するためのアンカーポイントを決定する。
 一方、未抽出点がない場合(ステップS407のNO)、識別処理実施部205は、入力された3次元点群に対して処理を行ったため、処理を終了し、図4のステップS305を実行する。
 次に、図6~図8を用いて、図5で説明した各ステップにおける3次元点群の状態について説明する。前提として、図6~図8に示す丸印は、図5のステップS401において入力された3次元点群の各点を表したものである。
 図6は、ステップS402及びS403の動作を説明するための図である。ステップS402において、識別処理実施部205は、入力された3次元点群からアンカーポイントを決定する。識別処理実施部205が、図6の斜線でハッチングされた丸印をアンカーポイントとして決定したとする。
 ステップS403において、識別処理実施部205は、入力された3次元点群のうち、抽出済みの点を除く3次元点群から、アンカーポイントとの距離が所定値以内である点を近傍点として抽出する。図6の点線は、アンカーポイントを中心として、アンカーポイントからの距離が所定値の位置を表す円である。図6の縦線でハッチングした丸印は、識別処理実施部205が抽出した近傍点を表している。識別処理実施部205は、点線で示す円内にある点を近傍点として抽出する。
 次に、図7について説明する。図7は、図5のステップS404、S405及びS403を説明するための図である。ステップS404において、識別処理実施部205は、近傍点が抽出されたか否かを判定する。図6に示したように、識別処理実施部205は、近傍点を抽出している。そのため、ステップS405において、識別処理実施部205は、現在のアンカーポイントである図6のアンカーポイントを抽出済みの点とする。図7の細い点線の丸印(点線の小さな円)は、抽出済みの点を示しており、識別処理実施部205は、図6のアンカーポイントを抽出済みの点とする。そして、識別処理実施部205は、図6の近傍点を次の近傍点を探索するためのアンカーポイントに決定する。識別処理実施部205は、ステップS403の動作を実行し、ステップS405で決定したアンカーポイントの近傍点を抽出する。
 次に、図8について説明する。図8は、ステップS406及びS407を説明するための図である。識別処理実施部205は、ステップS403及びS405を近傍点が抽出されなくなるまで繰り返し実施する。図8に示すように、アンカーポイントからの距離が所定値以内に抽出済みの点しか存在せず、近傍点が抽出されない場合、識別処理実施部205は、図8の抽出済みの点、及び現在のアンカーポイントを含む領域に対象物が存在すると判断する。識別処理実施部205は、図8の抽出済みの点、及び現在のアンカーポイントを含む領域を物体領域として特定する。なお、図8では、未抽出点が存在していないが、仮に、未抽出点が太い点線の円の外にある場合、識別処理実施部205は、ステップS402に戻り、次の物体領域を探すためのアンカーポイントを決定する。
 次に、図9を用いて、ツリー表示を用いて、近傍探索によりアンカーポイントの近傍点を抽出する様子を説明する。なお、近傍探索は、図5の動作のうち、ステップS402~S405の動作を言う。図9のうち、数字が書かれた小さな円は、ノードを表しており、アンカーポイントを示している。各ノードに記載された数字は、近傍探索を行う回数を示しており、何回目の近傍探索におけるアンカーポイントであるかを表す数字である。各ノードから下に延びている枝(線)は、アンカーポイントから抽出された近傍点を示している。つまり、あるアンカーポイントから抽出された近傍点は、次の近傍探索においてアンカーポイントになることを表している。近傍点が抽出されなかったアンカーポイントには、当該アンカーポイントを示す円の下に×印を記載しており、アンカーポイントからの距離が所定値以内の位置に未抽出点が存在せず、このアンカーポイントに対する処理が終了したことを示している。
 図9に示すように、識別処理実施部205は、第k(kは1以上の整数)回目の近傍探索を行うためのアンカーポイントの各々に対して、アンカーポイントから所定距離以内にある点を探索することで近傍点を抽出する。そして、識別処理実施部205は、抽出した近傍点を第(k+1)回目の近傍探索を行うためのアンカーポイントとし、第(k+1)回目の近傍探索を行い、近傍点を抽出する。識別処理実施部205は、アンカーポイントの各々に対して近傍探索を繰り返し行い、近傍点が探索されなくなるまで近傍点を抽出する。識別処理実施部205は、全てのアンカーポイントに対して近傍点が抽出されなくなった場合、第1回目から近傍点が抽出されなくなったときの全てのノードに対応する点を物体領域として特定する。
 なお、近傍探索の回数が多くなればなるほど、3次元物体認識装置100の処理負荷が高くなる可能性がある。また、入力された3次元点群にノイズとして扱われる不要な点が含まれている場合、識別処理実施部205が特定する物体領域が想定外に大きな領域となってしまう可能性がある。そのため、識別処理実施部205は、近傍探索を行う回数、及び最初のアンカーポイントから、抽出された近傍点までの距離のうち、少なくとも1つに閾値を設けて閾値を超過した場合に近傍探索処理を終了させてもよい。
 以上説明したように、物体識別部203は、距離画像に基づく3次元点群の点と点との距離を用いて、空間上で独立した3次元点群を抽出でき、撮影された対象物の3次元点群のみを用いて、対象物の表面の位置を示す3次元点群が含まれる物体領域を特定できる。つまり、第2の実施形態にかかる3次元物体認識装置100によれば、距離画像に基づく3次元点群を用いて、対象物の数を特定できる。
 また、物体識別部203は、プリミティブ形状である基準形状を用いて、物体領域に含まれる対象物と類似する基準形状を特定し、位置姿勢導出部204は、特定された基準形状を用いて、中心位置及び姿勢を特定する。物体識別部203及び位置姿勢導出部204は、プリミティブ形状である基準形状を用いているため、複数種類の対象物が含まれていたとしても、対象物と類似する基準形状に基づく種類に分類でき、全ての対象物の位置姿勢を推定できる。すなわち、第2の実施形態にかかる3次元物体認識装置100によれば、複数種類の対象物が含まれていたとしても、対象物の位置姿勢を精度よく特定できる。
 さらに、3次元物体認識装置100は、距離画像のみで、対象物の位置姿勢を特定できる。一般的に、RGB画像等の色画像を用いる場合、照度の影響が強い環境では、画像に白飛びといったノイズが多く含まれてしまい、対象物の位置姿勢を推定する精度が、照度の影響が大きくなってしまう。これに対して、第2の実施形態にかかる3次元物体認識装置100によれば、距離画像のみで対象物の中心位置及び姿勢を特定できるため、照明の変化にロバストであり、照度の影響を受けずに対象物の中心位置及び姿勢を推定できる。
(第3の実施形態)
 続いて、第3の実施形態について説明する。第2の実施形態では、3次元物体認識装置は、距離画像を用いて、撮像された対象物の中心位置及び姿勢を推定したが、第3の実施形態では、3次元物体認識装置は、距離画像に加えて、色画像であるRGB画像を用いて、対象物の中心位置及び姿勢を推定する。
<3次元物体認識装置の構成例>
 図10を用いて、第3の実施形態にかかる3次元物体認識装置500の構成例について説明する。図10は、第3の実施形態にかかる3次元物体認識装置の構成例を示すブロック図である。3次元物体認識装置500は、例えば、作業台に載置された対象物を撮像し、撮像された色画像及び距離画像に基づいて、撮像された対象物の中心位置及び姿勢を推定する装置である。なお、以降の説明では、色画像は、RGB画像であることとして説明するが、HSV(Hue、Saturation、Value of Brightness)画像等の他の色画像でもよい。
 3次元物体認識装置500は、センサ部510と、処理部610とを備える。
 センサ部510は、距離画像及びRGB画像を撮像可能な撮像装置を含むように構成される。センサ部510は、例えば、作業台に載置された対象物を含む所定領域を撮像し、カメラ座標系の画像であるRGB画像及び距離画像を生成する。センサ部510は、生成したRGB画像及び距離画像を処理部610に出力する。なお、本実施形態においても、センサ部510が3次元物体認識装置500の外部に設けられてもよい。
 処理部610は、センサ部510が生成したRGB画像及び距離画像を入力し、RGB画像及び距離画像に基づいて、撮像された対象物の中心位置及び姿勢を推定する。処理部610は、点群取得部601と、セグメンテーション部602と、3次元統合部603と、セパレーション部604と、物体識別部605と、位置姿勢導出部606とを備える。
 なお、点群取得部601、セパレーション部604、及び位置姿勢導出部606は、それぞれ、第2の実施形態における点群取得部201、セパレーション部202、及び位置姿勢導出部204と基本的に同様である。また、物体識別部605は、第2の実施形態における物体識別部203に対応する。点群取得部601、セパレーション部604、物体識別部605、及び位置姿勢導出部606の構成について、第2の実施形態と同様である記載は適宜割愛しながら説明する。
 点群取得部601は、センサ部510から出力された距離画像を入力する。点群取得部601は、距離画像をカメラ座標系から世界座標系に変換し、各点が3次元空間上の位置を示す3次元点群を生成する。点群取得部601は、生成した3次元点群を3次元統合部603に出力する。つまり、点群取得部601は、距離画像に含まれる各点の3次元空間上の位置を示す3次元座標の集合を表すデータを3次元統合部603に出力する。
 セグメンテーション部602は、色画像であるRGB画像を入力し、RGB画像に含まれる各画素の色情報に基づいて、RGB画像をセグメンテーションする。セグメンテーション部602は、センサ部510から出力された、2次元画像であるRGB画像を入力する。セグメンテーション部602は、RGB画像からRGB値(R値、G値及びB値)の分布及び画素の位置関係から、特徴的な色合いを有する領域をセグメンテーションする。セグメンテーション部602は、機械学習、輪郭抽出、スーパーピクセル、k-means、x-means等の方法を用いることでセグメンテ-ションを行う。
 具体的には、セグメンテーション部602は、RGB画像の各画素のRGB値(R値、G値及びB値)に基づいて、R値を示す軸、G値を示す軸、及びB値を示す軸から構成される3次元座標系を用いて、RGB値の分布を示すヒストグラムを生成する。セグメンテーション部602は、RGB値のヒストグラムから、少なくとも1つの特徴的なRGB値の分布を特定する。例えば、RGB画像中に赤色、黄色及び青色が特徴的な色である場合、セグメンテーション部602は、RGBの分布から特徴的なRGBの色合いの集合を見つける。セグメンテーション部602は、少なくとも1つの特徴的なRGB値の各々のRGB値を特定する。
 セグメンテーション部602は、特徴的なRGB値(RGBの色合い)を特定すると、RGB画像の各画素のRGB値と、特定したRGB値とを比較し、特定したRGB値と類似する画素を連結し、特定したRGB値を有する連結画素領域を算出する。セグメンテーション部602は、連結画素領域に含まれる各画素に、特定したRGB値を対応付ける。
 セグメンテーション部602は、連結画素領域に含まれる第1の画素に隣接する隣接画素のRGB値が、特定したRGB値と類似しない場合、連結画素領域に含まれる第1画素と異なる第2画素と、隣接画素との距離が所定値以内であるかを判断する。セグメンテーション部602は、上記距離が所定値以内である場合、隣接画素のRGB値を、第1画素及び第2画素に対応付けたRGB値に置換する。セグメンテーション部602は、隣接画素を第1画素及び第2画素に対応付けたRGB値に置換することで、例えば、ある対象物に複数の色が含まれていたとしても、複数の色のうち、特徴的な色を用いて対象物の物体領域が特定できるようにする。例えば、赤色の領域の中に、白色の点が含まれているとする。白色の画素が、赤色の連結画素領域と近接する画素である場合、セグメンテーション部602は、当該白色の画素を赤色に置換するために、隣接画素と、連結画素領域内の画素との距離を判断する。そして、距離が所定値以内である場合、セグメンテーション部602は、隣接画素のRGB値を、連結画素領域のRGB値と置換する。
 セグメンテーション部602は、入力されたRGB画像に対して、セグメンテーションされたRGB画像を3次元統合部603に出力する。換言すると、セグメンテーション部602は、セグメンテーションされた領域の各画素に、特徴的なRGB値が対応付けられたRGB画像を3次元統合部603に出力する。なお、センサ部510がRGB画像を取得できない場合等、RGB画像を取得しなかった場合、セグメンテーション部602は、処理を行わない。
 3次元統合部603は、距離画像と、セグメンテーションされた領域の色情報とに基づいて、色情報が付加された3次元点群を生成する。具体的には、3次元統合部603は、3次元点群を点群取得部601から入力し、セグメンテーションされたRGB画像をセグメンテーション部602から入力する。3次元統合部603は、3次元点群に含まれる各点の3次元座標と、セグメンテーションされたRGB画像とを統合する。3次元統合部603は、3次元点群に含まれる各点の3次元座標に対応するRGB画像中の画素を特定し、3次元点群に含まれる各点の3次元座標に、特定した画素のRGB値をラベル付けし、RGB-D(Depth)点群を生成する。RGB-D点群は、3次元座標に、RGB値がラベル付けされた情報である。このように、3次元統合部603は、生成された3次元点群の各々に、セグメンテーションされた領域の色情報が付加された3次元点群であるRGB-D点群を生成する。3次元統合部603は、生成したRGB-D点群をセパレーション部604に出力する。
 なお、センサ部510がRGB画像を取得しなかった場合、3次元統合部603は、点群取得部601から取得した3次元点群に対して、RGB画像を取得しなかったことを表すRGB値をラベル付けした、RGB-D点群を生成してもよい。RGB画像を取得しなかったことを表すRGB値は、例えば、3次元物体認識装置500が既知である作業台の背景色に対応するRGB値であってもよく、R値、G値及びB値が全て255のRGB値でもよく、R値、G値及びB値が全て0のRGB値でもよい。
 セパレーション部604は、3次元統合部603からRGB-D点群を入力する。セパレーション部604は、第2の実施形態と異なり、RGB値がラベル付けされた3次元点群であるが、第2の実施形態と同様にして、不要なRGB-D点群を除去する。セパレーション部604は、不要なRGB-D点群が除去された後のRGB-D点群を物体識別部605に出力する。
 物体識別部605は、RGB-D点群をセパレーション部604から入力する。物体識別部605は、3次元統合部603が生成したRGB-D点群に付加された色情報であるRGB値と、RGB-D点群間の距離とに基づいて、撮像された対象物が含まれる物体領域を特定する。また、物体識別部605は、第2の実施形態と同様にして、物体領域に含まれるRGB-D点群と、プリミティブ形状である基準形状の特徴情報とに基づいて、撮像された対象物の各々と類似する基準形状を特定する。
 ここで、図11を用いて物体識別部605の詳細を説明する。図11は、第3の実施形態にかかる物体識別部の詳細構成例を示す図である。図11に示すように、物体識別部605は、色情報識別部607と、形状識別部608とを備える。
 色情報識別部607は、RGB-D点群をセパレーション部604から入力し、入力されたRGB-D点群に含まれる各点の3次元座標にラベル付けされたRGB値に基づいて、RGB値が同一の色領域を特定する。色情報識別部607は、識別処理実施部611と、識別記録部612と、識別結果出力部613とを備える。
 識別処理実施部611は、色情報を識別する実施部であるため、色情報識別処理実施部と称されてもよい。識別処理実施部611は、RGB-D点群をセパレーション部604から入力する。識別処理実施部611は、RGB-D点群に含まれる各点にラベル付けされたRGB値のうち、RGB画像を取得しなかったことを表すRGB値を除外する。識別処理実施部611は、RGB画像を取得しなかったことを表すRGB値が除外されたRGB-D点群のRGB値に基づいて色領域を特定する。
 例えば、RGB-D点群にラベル付けされたRGB値に対応する色が赤色、緑色、及び青色であったとする。この場合、識別処理実施部611は、赤色のRGB値がラベル付けされたRGB-D点群、緑色のRGB値がラベル付けされたRGB-D点群、及び青色のRGB値がラベル付けされたRGB-D点群をそれぞれ色領域として特定する。
 識別処理実施部611は、同一のRGB値の色領域に対して、色IDを割り当てる。識別処理実施部611は、色IDと、RGB値と、色IDが割り当てられた色領域に含まれるRGB-D点群と、を対応付けて識別記録部612に記録する。
 識別記録部612は、識別処理実施部611の制御に応じて、色IDと、RGB値と、色IDが割り当てられた色領域のRGB-D点群とを対応付けて記憶する。
 識別結果出力部613は、色IDと、RGB値と、色IDが割り当てられた色領域のRGB-D点群とを形状識別部608に出力する。
 形状識別部608は、色情報識別部607が特定した色領域の各々に対して、当該色領域に含まれるRGB-D点群のRGB-D点群間の距離に基づいて、対象物の表面の位置を示すRGB-D点群を含む物体領域を特定する。なお、形状識別部608は、全てのRGB-D点群に対して色IDが割り当てられていない場合、RGB画像が取得されなかったと判断して、色情報を考慮せず、第2の実施形態における物体識別部203と同様の処理を行う。
 例えば、識別処理実施部611が、赤色のRGB値がラベル付けされたRGB-D点群、緑色のRGB値がラベル付けされたRGB-D点群、及び青色のRGB値がラベル付けされたRGB-D点群をそれぞれ色領域として特定したとする。この場合、形状識別部608は、赤色のRGB値がラベル付けされたRGB-D点群に含まれる対象物のそれぞれが含まれる物体領域を特定する。形状識別部608は、同様に、緑色のRGB値がラベル付けされたRGB-D点群に含まれる対象物のそれぞれが含まれる物体領域を特定し、青色のRGB値がラベル付けされたRGB-D点群に含まれる対象物のそれぞれが含まれる物体領域を特定する。
 形状識別部608は、特定した物体領域に含まれる対象物の各々に対して、基準形状の特徴情報を用いて、対象物と類似する基準形状を特定する。
 形状識別部608は、識別処理実施部614と、識別記録部615と、識別結果出力部616とを備える。識別処理実施部614、識別記録部615、及び識別結果出力部616は、それぞれ、第2の実施形態における、識別処理実施部205、識別記録部206及び識別結果出力部207に対応する。
 識別処理実施部614は、RGB-D点群を用いて、物体領域を特定し、物体領域に含まれる対象物と類似する基準形状を特定する。識別処理実施部614は、基準形状を特定する実施部であるため、基準形状識別処理実施部と称されてもよい。識別処理実施部614は、識別結果出力部613から、色ID毎に、色IDと、RGB値と、色IDが割り当てられた色領域のRGB-D点群とを入力する。識別処理実施部614は、色ID毎に、当該色IDが割り当てられたRGB-D点群に含まれる3次元座標を用いて、RGB-D点群間の距離に基づいて、物体領域を特定する。識別処理実施部614は、第2の実施形態と同様に、入力されたRGB-D点群のうち、隣接する点との距離が所定値以内にある点を抽出することで物体領域を特定する。なお、識別処理実施部614は、RGB画像を取得しなかったことを表すRGB値が除外されたRGB-D点群を識別結果出力部613から入力してもよい。そして、識別処理実施部614は、アンカーポイントを決定し、アンカーポイントと同一色ID又は同一RGB値を有する近傍点を探索することで物体領域を特定してもよい。
 識別処理実施部614は、色ID毎に、物体領域を特定すると、各物体領域に含まれる対象物と類似する基準形状を特定する。識別処理実施部614は、第2の実施形態と同様に、生成された法線ベクトルと、基準形状の特徴情報に含まれる、法線ベクトル関連情報とに基づいて、各対象物と類似する基準形状を特定する。
 識別処理実施部614は、物体領域の各々に含まれる対象物に対して、基準形状を特定すると、特定された基準形状に対応する形状IDを割り当てる。識別処理実施部614は、色IDと、形状IDとの組み合わせが一意になるように、色IDと、形状IDとの組み合わせ毎に、異なる種類IDを割り当てる。識別処理実施部614は、種類IDが同一の対象物の各々が一意になるように、個別IDを割り当てる。識別処理実施部614は、物体領域に含まれる各対象物に対して、種類IDと、個別IDと、色IDと、形状IDと、RGB値と、当該物体領域に含まれるRGB-D点群とを対応付けて識別記録部615に記録する。
 識別記録部615は、識別処理実施部614の制御に応じて、物体領域の各々に含まれる各対象物に対して、種類IDと、個別IDと、色IDと、形状IDと、RGB値と、当該物体領域に含まれるRGB-D点群とを対応付けて記憶する。
 識別結果出力部616は、種類IDと、個別IDと、色IDと、形状IDと、RGB値と、当該物体領域に含まれるRGB-D点群とを位置姿勢導出部606に出力する。
 図10に戻り、位置姿勢導出部606について説明する。
 位置姿勢導出部606は、各物体領域に含まれる対象物に関する情報を入力する。位置姿勢導出部204は、種類IDと、個別IDと、色IDと、形状IDと、RGB値と、当該物体領域に含まれるRGB-D点群とを入力する。
 位置姿勢導出部606は、種類ID及び個別IDの組み合わせで特定される対象物の各々に対して、入力された物体領域の3次元点群の中心点を算出する。位置姿勢導出部606は、算出した中心点を、対象物の中心位置として推定する。位置姿勢導出部606は、中心位置を推定した対象物に対して、種類ID及び個別IDに中心位置の座標を対応付けて識別記録部615に記録する。
 位置姿勢導出部606は、第2の実施形態と同様に、物体領域に含まれる対象物を、物体識別部605が特定した基準形状に近似し、近似された基準形状の軸を推定する。位置姿勢導出部606は、推定された軸と、物体識別部605が特定した基準形状の基準軸とに基づいて、対象物の姿勢を推定する。位置姿勢導出部606は、推定された軸と、基準軸との角度差を算出し、算出された角度差に基づいて、ロール角、ピッチ角及びヨー角を求めることで対象物の姿勢を推定する。位置姿勢導出部606は、姿勢を推定した対象物に対して、種類ID及び個別IDに姿勢を対応付けて識別記録部615に記録する。
<3次元物体認識装置の動作例>
 次に、図12を用いて、第3の実施形態にかかる3次元物体認識装置500の動作例について説明する。図12は、第3の実施形態にかかる3次元物体認識装置の動作例を示す図である。
 図12は、図4で示した第2の実施形態にかかる3次元物体認識装置100の動作例に対応するフローチャートである。図12のうち、図4と同様の動作に対して、同一の参照符号を付与しており、図4の同様の動作については適宜説明を割愛する。また、図12のうち、ステップS504及びS506は、それぞれ図4のステップS303及びS304が置き換わった動作である。そのため、ステップS504~S506について、図4と同様の動作についても適宜説明を割愛する。なお、センサ部510がRGB画像を取得しない場合、3次元物体認識装置500は、第2の実施形態と基本的に同様の動作となる。そのため、センサ部510がRGB画像を取得しない場合の動作については説明を割愛する。
 センサ部510は、作業台等の所定領域を撮像し、各点が、センサ部510から対象物までの距離情報を含む距離画像を生成する(ステップS301)。
 センサ部510は、作業台等の所定領域を撮像し、RGB画像を生成する(ステップS501)。なお、ステップS501は、ステップS301の後に実行されてもよく、ステップS301と並列に実行されてもよい。
 点群取得部601は、距離画像をカメラ座標系から世界座標系に変換し、各点が3次元空間上の位置を示す3次元点群を生成する(ステップS302)。
 セグメンテーション部602は、色画像であるRGB画像を入力し、RGB画像に含まれる各画素の色情報に基づいて、RGB画像をセグメンテーションする(ステップS502)。なお、ステップS502は、ステップS302の後に実行されてもよく、ステップS302と並列に実行されてもよい。
 3次元統合部603は、3次元点群に含まれる各点の3次元座標と、セグメンテーションされたRGB画像とを統合し、3次元点群に含まれる各点の3次元座標に、特定した画素のRGB値をラベル付けし、RGB-D点群を生成する(ステップS503)。
 3次元統合部603は、3次元点群を点群取得部601から入力し、セグメンテーションされたRGB画像をセグメンテーション部602から入力する。3次元統合部603は、3次元点群に含まれる各点の3次元座標と、セグメンテーションされたRGB画像とを統合する。3次元統合部603は、3次元点群に含まれる各点の3次元座標に対応するRGB画像中の画素を特定し、3次元点群に含まれる各点の3次元座標に、特定した画素のRGB値をラベル付けし、RGB-D点群を生成する。
 セパレーション部604は、3次元統合部603からRGB-D点群を入力し、RGB値がラベル付けされた3次元点群であるが、第2の実施形態と同様にして、不要なRGB-D点群を除去する(ステップS504)。
 色情報識別部607は、セパレーション部604からRGB-D点群を入力し、入力されたRGB-D点群に含まれる各点の3次元座標にラベル付けされたRGB値に基づいて、RGB値が同一の色領域を特定する(ステップS505)。
 形状識別部608は、色情報識別部607が特定した色領域の各々に対して、当該色領域に含まれるRGB-D点群のRGB-D点群間の距離に基づいて、対象物の表面の位置を示すRGB-D点群を含む物体領域を特定する(ステップS506)。
 識別処理実施部614は、識別結果出力部613から、色ID毎に、色IDと、RGB値と、色IDが割り当てられた色領域のRGB-D点群とを入力する。識別処理実施部614は、色ID毎に、当該色IDが割り当てられたRGB-D点群に含まれる3次元座標を用いて、RGB-D点群間の距離に基づいて、物体領域を特定する。なお、識別処理実施部614は、第2の実施形態と異なり、RGB-D点群を用いるが、物体領域の特定方法は第2の実施形態と同様である。
 形状識別部608は、特定した物体領域に含まれる対象物の各々に対して、基準形状の特徴情報を用いて、対象物と類似する基準形状を特定する(ステップS305)。
 識別処理実施部614は、色ID毎に、物体領域を特定すると、各物体領域に含まれる対象物と類似する基準形状を特定する。
 位置姿勢導出部606は、物体領域に含まれるRGB-D点群に基づいて、物体領域に含まれる対象物の中心位置を推定する(ステップS306)。
 位置姿勢導出部606は、物体領域に含まれるRGB-D点群と、当該物体領域に含まれる対象物と類似する基準形状とに基づいて、物体領域に含まれる対象物の姿勢を推定する(ステップS507)。
 3次元物体認識装置500は、ユーザが処理を終了するかを判定する(ステップS308)。
 ユーザから終了の命令がない場合(ステップS308のNO)、3次元物体認識装置500は、ステップS301以降の処理を再度実行する。
 一方、ユーザからの終了の命令を受け付けた場合(ステップS308のYES)、3次元物体認識装置500は、処理を終了する。
 以上のように、3次元物体認識装置500は、RGB画像の色情報も用いて、対象物の表面の位置を示すRGB-D点群が含まれる物体領域を特定する。そのため、3次元物体認識装置500は、第2の実施形態にかかる3次元物体認識装置100よりも、精度良く物体領域を特定できる。したがって、第3の実施形態にかかる3次元物体認識装置500によれば、第2の実施形態にかかる3次元物体認識装置100よりも、撮像された対象物の中心位置及び姿勢を精度良く推定できる。
(第4の実施形態)
 続いて、第4の実施形態について説明する。第4の実施形態は、第2の実施形態又は第3の実施形態にかかる3次元物体認識装置を含む3次元物体認識システムについて説明する実施形態である。なお、本実施形態は、第3の実施形態を用いて説明されるが、第2の実施形態が適用されてもよい。
<3次元物体認識システムの構成例>
 図13を用いて、第4の実施形態にかかる3次元物体認識システム1000の構成例について説明する。図13は、第4の実施形態にかかる3次元物体認識システムの構成例を示す図である。3次元物体認識システム1000は、入力装置700と、記録装置750と、3次元物体認識装置800とを備える。
 入力装置700は、例えば、パーソナルコンピュータ装置、サーバ装置等である。入力装置700は、例えば、マウス、キーボード、ディスプレイ、タッチパネル等を備える入力装置である。入力装置700は、ユーザが認識して欲しい、検出対象の色情報を示す検出対象色情報を入力するインタフェースを備える。入力装置700は、ユーザが、検出対象色情報を入力し、入力された検出対象色情報を、3次元物体認識装置800の処理部810及び記録装置750に出力する。
 入力装置700は、ユーザが、R値、G値、及びB値を入力し、入力されたRGB値を検出対象色情報として入力してもよい。もしくは、入力装置700は、ユーザが、ディスプレイに表示された色のうち、選択した色を入力し、選択された色に対応するRGB値を検出対象色情報として入力してもよい。
 記録装置750は、ユーザが入力した検出対象色情報を記録する装置である。記録装置750は、入力装置700から得られた情報を入力する。また、記録装置750は、過去に入力された検出対象色情報も記録する。記録装置750は、ユーザが過去に登録していた検出対象色情報を記憶することで、ユーザが認識して欲しい色情報の入力を短縮することができる。記録装置750は、入力装置700から入力された検出対象色情報と異なる検出対象色情報が記録されている場合、当該検出対象色情報を処理部810に出力してもよい。つまり、記録装置750は、ユーザが、入力装置700に入力した検出対象色情報だけでなく、ユーザが、過去に登録した検出対象色情報も処理部810に入力されるように構成されてもよい。
 3次元物体認識装置800は、第3の実施形態にかかる3次元物体認識装置500に対応する。3次元物体認識装置800は、センサ部510が生成した距離画像及びRGB画像に基づいて、撮像した対象物の中心位置及び姿勢を推定する。3次元物体認識装置800は、入力装置700及び記録装置750から、検出対象色情報を入力し、撮像した対象物のうち、入力された検出対象色情報を有する対象物の中心位置及び姿勢を推定する。
<3次元物体認識装置の構成例>
 次に、3次元物体認識装置800の構成例について説明する。3次元物体認識装置800は、第3の実施形態にかかる3次元物体認識装置500と基本的に同様の構成をしている。3次元物体認識装置800は、センサ部510と、処理部810とを備える。センサ部510は、第3の実施形態と同様であるため、説明を割愛する。
 処理部810は、点群取得部601と、セグメンテーション部811と、3次元統合部603と、セパレーション部604と、物体識別部605と、位置姿勢導出部606とを備える。処理部810は、第3の実施形態における処理部610と比較すると、第3の実施形態におけるセグメンテーション部602が、セグメンテーション部811に置き換わった構成である。点群取得部601、3次元統合部603、セパレーション部604、物体識別部605、及び位置姿勢導出部606は、基本的に第3の実施形態と同様であるため、第3の実施形態と重複する記載は適宜割愛する。
 セグメンテーション部811は、RGB画像をセンサ部510から入力し、検出対象色情報を入力装置700及び記録装置750から入力する。セグメンテーション部811は、第3の実施形態と同様に、色画像であるRGB画像を入力し、RGB画像に含まれる各画素の色情報に基づいて、RGB画像をセグメンテーションする。セグメンテーション部811は、セグメンテーションされた領域の各画素に、特徴的なRGB値が対応付けられたRGB画像を生成する。
 セグメンテーション部811は、セグメンテーションされた領域の各画素のRGB値と、検出対象色情報に含まれるRGB値とを比較し、セグメンテーションされた領域のうち、検出対象色情報を有する領域を抽出する。セグメンテーション部811は、抽出された領域以外のRGB値を、RGB画像を取得しなかったことを表すRGB値に置換する。換言すると、セグメンテーション部811は、検出対象色情報を有する領域のみが含まれるRGB画像を生成する。セグメンテーション部811は、検出対象色情報を有する領域のみが含まれるRGB画像を3次元統合部603に出力する。
 3次元統合部603は、3次元点群を点群取得部601から入力し、セグメンテーションされたRGB画像をセグメンテーション部811から入力する。3次元統合部603は、3次元点群に含まれる各点の3次元座標と、セグメンテーションされたRGB画像とを統合する。3次元統合部603は、3次元点群に含まれる各点の3次元座標に対応するRGB画像中の画素を特定し、3次元点群に含まれる各点の3次元座標に、特定した画素のRGB値をラベル付けし、RGB-D点群を生成する。セグメンテーションされたRGB画像は、検出対象色情報が付加された領域のみが含まれる。そのため、3次元統合部603は、検出対象色情報が付加された3次元点群であるRGB-D点群を生成する。なお、3次元統合部603は、セグメンテーションされたRGB画像において、検出対象色情報が付加されていない領域のRGB値を、RGB画像を取得しなかったことを表すRGB値とするRGB-D点群を生成してもよい。3次元統合部603は、生成したRGB-D点群をセパレーション部604に出力する。
 物体識別部605は、RGB-D点群をセパレーション部604から入力する。物体識別部605は、RGB-D点群に含まれる各点にラベル付けされたRGB値に基づいて、色領域を特定する。なお、検出対象色情報が付加されていない領域のRGB値が、RGB画像を取得しなかったことを表すRGB値である場合、物体識別部605は、RGB-D点群のうち、RGB画像を取得しなかったことを表すRGB値のRGB-D点群を除外する。物体識別部605は、RGB画像を取得しなかったことを表すRGB値が除外された後のRGB-D点群のRGB値に基づいて色領域を特定する。
 物体識別部605は、3次元統合部603が生成したRGB-D点群に付加された色情報であるRGB値と、RGB-D点群間の距離とに基づいて、撮像された対象物が含まれる物体領域を特定する。つまり、物体識別部605は、検出対象色情報を有するRGB-D点群から、ユーザが検出したい色情報を有し、かつ対象物の表面の位置を示すRGB-D点群を含む物体領域を特定する。また、物体識別部605は、物体領域に含まれるRGB-D点群と、プリミティブ形状である基準形状の特徴情報とに基づいて、撮像された対象物の各々と類似する基準形状を特定する。
 位置姿勢導出部606は、第3の実施形態と同様に、物体領域に含まれる3次元点群と、当該物体領域に含まれる対象物と類似する基準形状とに基づいて、物体領域に含まれる対象物の中心位置及び姿勢を推定する。物体識別部605は、検出対象色情報を有するRGB-D点群から、ユーザが検出したい色情報を有し、かつ対象物の表面の位置を示すRGB-D点群を含む物体領域を特定している。そのため、位置姿勢導出部606は、撮像された対象物のうち、検出対象色情報を有する対象物の中心位置及び姿勢を推定できる。
<3次元物体認識装置の動作例>
 図14を用いて、第4の実施形態にかかる3次元物体認識装置800の動作例について説明する。図14は、第4の実施形態にかかる3次元物体認識装置の動作例を示す図である。
 図14は、図12で示した第3の実施形態にかかる3次元物体認識装置500の動作例に対応するフローチャートである。図14は、図12のフローチャートにステップS601及びS602が追加されたフローチャートである。そのため、図14のフローチャートについて、図12と同様である動作については適宜説明を割愛する。
 センサ部510は、作業台等の所定領域を撮像し、各点が、センサ部510から対象物までの距離情報を含む距離画像を生成する(ステップS301)。
 センサ部510は、作業台等の所定領域を撮像し、RGB画像を生成する(ステップS501)。なお、ステップS501は、ステップS301の後に実行されてもよく、ステップS301と並列に実行されてもよい。
 点群取得部601は、距離画像をカメラ座標系から世界座標系に変換し、各点が3次元空間上の位置を示す3次元点群を生成する(ステップS302)。
 セグメンテーション部811は、入力装置700及び記録装置750から、検出対象色情報を入力する(ステップS601)。
 セグメンテーション部811は、色画像であるRGB画像を入力し、RGB画像に含まれる各画素の色情報に基づいて、RGB画像をセグメンテーションする(ステップS502)。なお、ステップS502は、ステップS302の後に実行されてもよく、ステップS302と並列に実行されてもよい。
 セグメンテーション部811は、セグメンテーションされた領域の各画素のRGB値と、検出対象色情報に含まれるRGB値とを比較し、セグメンテーションされた領域のうち、検出対象色情報を有する領域を抽出する(ステップS602)。
 3次元統合部603は、3次元点群に含まれる各点の3次元座標と、セグメンテーションされたRGB画像とを統合し、3次元点群に含まれる各点の3次元座標に、特定した画素のRGB値をラベル付けし、RGB-D点群を生成する(ステップS503)。
 セパレーション部604は、3次元統合部603からRGB-D点群を入力し、RGB値がラベル付けされた3次元点群であるが、第2の実施形態と同様にして、不要なRGB-D点群を除去する(ステップS504)。
 色情報識別部607は、セパレーション部604からRGB-D点群を入力し、入力されたRGB-D点群に含まれる各点の3次元座標にラベル付けされたRGB値に基づいて、RGB値が同一の色領域を特定する(ステップS505)。
 形状識別部608は、色情報識別部607が特定した色領域の各々に対して、当該色領域に含まれるRGB-D点群のRGB-D点群間の距離に基づいて、対象物の表面の位置を示すRGB-D点群を含む物体領域を特定する(ステップS506)。
 形状識別部608は、特定した物体領域に含まれる対象物の各々に対して、基準形状の特徴情報を用いて、対象物と類似する基準形状を特定する(ステップS305)。
 位置姿勢導出部606は、物体領域に含まれるRGB-D点群に基づいて、物体領域に含まれる対象物の中心位置を推定する(ステップS306)。
 位置姿勢導出部606は、物体領域に含まれるRGB-D点群と、当該物体領域に含まれる対象物と類似する基準形状とに基づいて、物体領域に含まれる対象物の姿勢を推定する(ステップS507)。
 3次元物体認識装置800は、ユーザが処理を終了するかを判定する(ステップS308)。
 ユーザから終了の命令がない場合(ステップS308のNO)、3次元物体認識装置800は、ステップS301以降の処理を再度実行する。
 一方、ユーザからの終了の命令を受け付けた場合(ステップS308のYES)、3次元物体認識装置800は、処理を終了する。
 以上のように、3次元物体認識装置800は、入力装置700及び記録装置750から検出対象色情報を入力し、検出対象色情報を有するRGB-D点群を抽出することで、検出対象色情報を有する対象物の中心位置及び姿勢を推定できる。したがって、第4の実施形態にかかる3次元物体認識装置800によれば、ユーザが任意で検出したい対象物を選択できるため、対象物の中心位置及び姿勢を容易にかつ即時に推定できる。
(変形例)
 上述した実施形態では、3次元物体認識装置800が、ユーザが入力した検出対象色情報を入力することで説明をしたが、3次元物体認識装置800は、検出対象の画像領域をユーザが指定し、当該画像領域を用いて検出色情報を特定してもよい。
 この場合、セグメンテーション部811は、センサ部510からRGB画像を入力し、入力されたRGB画像に対してセグメンテーションを行う。セグメンテーション部811は、セグメンテーションされたRGB画像を入力装置700に表示させる。入力装置700は、ユーザが、セグメンテーションされたRGB画像における検出対象領域を指定し、指定した検出対象領域を入力する。入力装置700は、セグメンテーション部811に検出対象領域を入力する。
 セグメンテーション部811は、セグメンテーションされたRGB画像における検出対象領域を特定する。セグメンテーション部811は、検出対象領域に含まれるRGB値のうち、画素数が最も多いRGB値を選択することで、検出対象色情報を特定する。セグメンテーション部811は、セグメンテーションされた領域のうち、検出対象色情報を有する領域を抽出する。第4の実施形態に対して、このような変形を施しても、第4の実施形態と同様の効果を得ることができる。
(第5の実施形態)
 続いて、第5の実施形態について説明する。第5の実施形態は、第2の実施形態~第4の実施形態のいずれかにかかる3次元物体認識装置を用いて、ロボット装置に、移動対象の対象物を移動させる物体認識システムについて説明する実施形態である。なお、本実施形態は、第3の実施形態を用いて説明されるが、第2の実施形態又は第4の実施形態が適用されてもよい。
<3次元物体認識システムの構成例>
 図15を用いて、第5の実施形態にかかる3次元物体認識システム1100の構成例について説明する。図15は、第5の実施形態にかかる3次元物体認識システムの構成例を示す図である。3次元物体認識システム1100は、3次元物体認識装置900と、入力装置1200と、ロボット装置1300とを備える。
 3次元物体認識装置900は、第3の実施形態にかかる3次元物体認識装置500に対応する。3次元物体認識装置900は、撮像された対象物の中心位置及び姿勢を含む対象物に関する対象物情報を入力装置1200に送信する。対象物情報は、種類ID、個別ID、色ID、形状ID、RGB値、中心位置、及び姿勢を含む。
 3次元物体認識装置900は、撮像された対象物のうち、移動対象の物体に関する物体情報と、移動対象の物体情報が示す物体の移動先位置とを入力装置1200から受信する。移動対象の物体情報は、対象物が載置された作業台から移動先位置まで、ロボット装置1300が移動させる物体に関する情報である。物体情報は、移動対象の物体に類似する基準形状に関する情報、及び移動対象の物体の色情報に関する情報のうち、少なくとも1つを含む。また、物体情報は、移動対象の物体の個数を含んでもよい。移動先位置は、移動対象の物体をロボット装置1300により搬送(移動)させた後のトレイ等の格納場所の位置である。移動先位置は、当該格納場所の位置を示す世界座標系の座標で指定されてもよい。
 3次元物体認識装置900は、入力された物体情報に基づいて、撮像された対象物のうち、物体情報が示す移動対象の物体を選択する。3次元物体認識装置900は、選択された物体の中心位置及び姿勢と、移動先位置とを特定する。3次元物体認識装置900は、選択された物体を作業台から移動先位置まで移動させる移動要求であって、特定した中心位置及び姿勢と、移動先位置とを含む移動要求をロボット装置1300に送信する。
 入力装置1200は、例えば、パーソナルコンピュータ装置、サーバ装置等である。入力装置1200は、例えば、マウス、キーボード、ディスプレイ、タッチパネル等を備える入力装置である。入力装置1200は、撮像された対象物の中心位置及び姿勢を含む対象物に関する対象物情報を3次元物体認識装置900から受信する。入力装置1200は、入力した対象物情報を、例えば、ディスプレイに表示する。入力装置1200は、例えば、形状IDに対応する基準形状、及びRGB値に対応する色を選択可能に表示する。
 入力装置1200は、ユーザが選択した、基準形状及び色のうち、少なくとも1つに基づいて物体情報を生成する。入力装置1200は、入力した基準形状に対応する形状ID、及び入力した色に対応する色IDのうち、少なくとも1つを含む、移動対象の物体情報を生成する。入力装置1200は、ユーザに、基準形状、及び色の各々に対して、移動対象の物体の個数を入力させ、入力された移動対象の物体の個数を物体情報に含めてもよい。また、入力装置1200は、物体情報に、色IDに加えてRGB値を含めてもよく、色IDの代わりにRGB値を含めてもよい。
 なお、入力装置1200は、対象物情報に基づいて、ユーザが、対象物の色情報と、対象物と類似する基準形状と、対象物の中心位置及び姿勢とを把握可能な概略図をディスプレイに表示してもよい。そして、ユーザが、当該概略図において、移動対象の物体を含む領域を指定し、入力装置1200が、指定された領域に含まれる基準形状及び色に基づいて、物体情報を生成してもよい。また、入力装置1200は、ユーザが過去に選択した基準形状及び色を記憶し、ユーザが過去に選択した基準形状及び色に基づいて、物体情報を生成してもよい。
 入力装置1200は、ユーザから、移動対象の物体の移動先位置をユーザが入力した情報に基づいて取得する。入力装置1200は、ユーザが入力した座標を移動先位置として取得する。入力装置1200は、物体情報と、移動先位置とを3次元物体認識装置900に送信する。
 ロボット装置1300は、移動対象の物体を把持可能な把持部であるロボットハンドと、ロボットハンドを移動させることで、移動対象の物体を作業台から移動先位置まで移動させるロボットアームとを備える。ロボット装置1300は、ロボット装置1300の設置位置が、世界座標系で設定されておりロボット装置1300は、世界座標系における位置(座標)を特定できるように構成される。ロボット装置1300は、移動要求を3次元物体認識装置900から受信する。ロボット装置1300は、受信した移動要求にしたがって、移動対象の物体を把持し、把持した物体を移動先位置に移動させ、移動先位置に把持した物体を載置する。
<3次元物体認識装置の構成例>
 次に、3次元物体認識装置900の構成例について説明する。3次元物体認識装置900は、センサ部510と、処理部910とを備える。3次元物体認識装置900は、第3の実施形態にかかる処理部610が、処理部910に置き換わった構成である。センサ部510は、第3の実施形態と同様であるため、説明を割愛する。
 処理部910は、点群取得部601と、セグメンテーション部602と、3次元統合部603と、セパレーション部604と、物体識別部605と、位置姿勢導出部606と、制御部911とを備える。処理部910は、第3の実施形態にかかる3次元物体認識装置500に、制御部911が追加された構成である。なお、点群取得部601、セグメンテーション部602、3次元統合部603、セパレーション部604、物体識別部605及び位置姿勢導出部606の構成については、第3の実施形態と同様であるため説明を割愛する。
 制御部911は、識別記録部615に記録された対象物情報を取得し、入力装置1200に送信する。識別記録部615には、各対象物に対して、種類ID、個別ID、色ID、形状ID、RGB値、当該物体領域に含まれるRGB-D点群、中心位置、及び姿勢が対応付けて記録されている。制御部911は、種類ID、個別ID、色ID、形状ID、RGB値、中心位置、及び姿勢を識別記録部615から取得する。制御部911は、種類ID、個別ID、色ID、形状ID、RGB値、中心位置、及び姿勢を含む対象物情報を入力装置1200に送信する。
 制御部911は、センサ部510が撮像した対象物のうち、移動対象の物体情報と、移動対象の物体の移動先位置とを入力装置1200から受信する。物体情報は、入力装置1200において、ユーザに選択された基準形状に対応する形状ID、及びユーザに選択された色に対応する色IDのうち、少なくとも1つを含む。また、物体情報は、形状ID基準形状、及び色情報の各々に対して、移動対象の物体の個数を含んでもよい。移動先位置は、移動対象の物体を格納する格納場所の位置を示す座標で指定されてもよい。
 制御部911は、入力された物体情報に基づいて、移動対象の物体を選択する。物体情報に形状IDが含まれている場合、制御部911は、識別記録部615から、物体情報に含まれる形状IDと同一の形状IDが割り当てられた対象物の中心位置及び姿勢を取得する。換言すると、物体情報に、移動対象の物体と類似する基準形状が含まれている場合、制御部911は、対象物のうち、各対象物に類似すると特定された基準形状が、移動対象の物体に類似する基準形状である対象物を、移動対象の物体として選択する。
 また、物体情報に形状IDに加えて移動対象の物体の個数が含まれている場合、制御部911は、物体情報に含まれる形状IDが割り当てられた対象物を取得する。制御部911は、取得した対象物に割り当てられた個別IDが小さい方から順に、物体情報に含まれる個数の対象物を、移動対象の物体として選択する。なお、物体情報に形状IDに加えて移動対象の物体の個数が含まれている場合、物体情報に含まれる形状IDが割り当てられた対象物からランダムに、物体情報に含まれる個数の対象物を選択してもよい。
 物体情報に色IDが含まれている場合、制御部911は、識別記録部615から、物体情報に含まれる色IDと同一の色IDが割り当てられた対象物の中心位置及び姿勢を取得する。換言すると、物体情報に、移動対象の物体の色情報が含まれている場合、制御部911は、対象物のうち、各対象物の表面の位置を示すRGB-D点群に付加された色情報が、移動対象の物体の色情報と同一である対象物を、移動対象の物体として選択する。
 また、物体情報に色IDに加えて移動対象の物体の個数が含まれている場合、制御部911は、物体情報に含まれる色IDが割り当てられた対象物を取得する。制御部911は、取得した対象物に割り当てられた個別IDが小さい方から順に、物体情報に含まれる個数の対象物を、移動対象の物体として選択する。なお、物体情報に色IDに加えて移動対象の物体の個数が含まれている場合、制御部911は、物体情報に含まれる色IDが割り当てられた対象物からランダムに、物体情報に含まれる個数の対象物を選択してもよい。
 制御部911は、移動対象の物体の中心位置及び姿勢と、移動先位置とを含む移動要求をロボット装置1300に送信する。なお、制御部911は、基準形状毎に、基準形状の重心及びロボット装置1300が把持するための把持ポイントを予め記憶してもよい。そして、制御部911は、移動対象の物体と類似する基準形状の重心又は把持ポイントを特定し、移動要求に、特定した重心又は把持ポイントをさらに含めてもよい。
<3次元物体認識システムの動作例>
 次に、図16を用いて、第5の実施形態にかかる3次元物体認識システム1100の動作例について説明する。図16は、第5の実施形態にかかる3次元物体認識システムの動作例を示す図である。
 3次元物体認識装置900は、位置姿勢推定動作を実行し、センサ部510で撮像した対象物の中心位置及び姿勢を推定する(ステップS901)。位置姿勢推定動作は、図12を用いて説明したフローチャートのステップS301~S308、及びS501~S507を含む動作である。
 制御部911は、対象物情報を取得し(ステップS902)、対象物情報を入力装置1200に送信する(ステップS903)。
 制御部911は、識別記録部615に記録された対象物情報を取得し、入力装置1200に送信する。具体的には、制御部911は、種類ID、個別ID、色ID、形状ID、RGB値、中心位置、及び姿勢を識別記録部615から取得する。制御部911は、種類ID、個別ID、色ID、形状ID、RGB値、中心位置、及び姿勢を含む対象物情報を入力装置1200に送信する。入力装置1200は、対象物情報を3次元物体認識装置900から受信する。
 入力装置1200は、対象物情報をディスプレイ等に表示し(ステップS904)、移動対象の物体に関する物体情報を生成する(ステップS905)。
 入力装置1200は、例えば、形状IDに対応する基準形状、及びRGB値に対応する色を選択可能にして、入力した対象物情報を表示する。入力装置1200は、ユーザが選択した、基準形状及び色のうち、少なくとも1つに基づいて物体情報を生成する。入力装置1200は、入力した基準形状に対応する形状ID、及び入力した色に対応する色IDのうち、少なくとも1つを含む、移動対象の物体情報を生成する。入力装置1200は、ユーザに、基準形状、及び色の各々に対して、移動対象の物体の個数を入力させ、入力された移動対象の物体の個数を物体情報に含めてもよい。
 入力装置1200は、物体情報及び移動先位置を3次元物体認識装置900に送信する(ステップS906)。
 入力装置1200は、ユーザから、移動対象の物体の移動先位置をユーザが入力した情報に基づいて取得する。入力装置1200は、物体情報と、移動先位置とを3次元物体認識装置900に送信する。3次元物体認識装置900は、物体情報と、移動先位置とを受信する。
 制御部911は、物体情報に基づいて、移動対象の物体を選択する(ステップS907)。
 制御部911は、入力された物体情報に基づいて、移動対象の物体を選択する。物体情報に形状IDが含まれている場合、制御部911は、識別記録部615から、物体情報に含まれる形状IDと同一の形状IDが割り当てられた対象物の中心位置及び姿勢を取得する。物体情報に色IDが含まれている場合、制御部911は、識別記録部615から、物体情報に含まれる色IDと同一の色IDが割り当てられた対象物の中心位置及び姿勢を取得する。また、物体情報に移動対象の物体の個数が含まれている場合、制御部911は、物体情報に含まれる形状ID及び色IDが割り当てられた対象物をそれぞれ取得する。制御部911は、形状ID及び色IDの各々に対して、取得した対象物に割り当てられた個別IDが小さい方から順に、物体情報に含まれる個数の対象物を、移動対象の物体として選択する。
 制御部911は、移動要求をロボット装置1300に送信する(ステップS908)。
 制御部911は、移動対象の物体の中心位置及び姿勢と、移動先位置とを含む移動要求をロボット装置1300に送信する。ロボット装置1300は、移動要求を受信する。
 ロボット装置1300は、受信した移動要求にしたがって、移動対象の物体を把持し、把持した物体を移動先位置に移動させる(ステップS909)。
 以上のように、本実施形態では、3次元物体認識装置900を用いた3次元物体認識システム1100について説明した。3次元物体認識システム1100に、3次元物体認識装置900を用いることで、距離画像及びRGB画像に基づいて、撮像された対象物の中心位置及び姿勢を精度良く推定できる。すなわち、第5の実施形態にかかる3次元物体認識システム1100によれば、複数種類の対象物が撮像された対象物に含まれていたとしても、対象物の中心位置及び姿勢を精度よく推定できる。したがって、第5の実施形態にかかる3次元物体認識システム1100によれば、対象物の中心位置及び姿勢を精度良く推定でき、移動対象の物体を精度良く移動先の位置に移動させることができる。
(他の実施の形態)
 図17は、上述した実施形態において説明した物体認識装置1、3次元物体認識装置100、500、800、及び900(以下、物体認識装置1等と称する)のハードウェア構成例を示すブロック図である。図17を参照すると、物体認識装置1等は、ネットワーク・インターフェース1401、プロセッサ1402、及びメモリ1403を含む。ネットワーク・インターフェース1401は、入力装置、ロボット装置等、3次元物体認識システムに含まれる他の装置と通信するために使用される。
 プロセッサ1402は、メモリ1403からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明された物体認識装置1等の処理を行う。プロセッサ1402は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)、又はCPU(Central Processing Unit)であってもよい。プロセッサ1402は、複数のプロセッサを含んでもよい。
 メモリ1403は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ1403は、プロセッサ1402から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1402は、図示されていないI/O (Input/Output)インタフェースを介してメモリ1403にアクセスしてもよい。
 図17の例では、メモリ1403は、ソフトウェアモジュール群を格納するために使用される。プロセッサ1402は、これらのソフトウェアモジュール群をメモリ1403から読み出して実行することで、上述の実施形態において説明された物体認識装置1等の処理を行うことができる。
 図17を用いて説明したように、物体認識装置1等が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む1または複数のプログラムを実行する。
 上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、非一時的なコンピュータ可読媒体の例は、CD-ROM(Read Only Memory)、CD-R、CD-R/Wを含む。さらに、非一時的なコンピュータ可読媒体の例は、半導体メモリを含む。半導体メモリは、例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、本開示は、それぞれの実施の形態を適宜組み合わせて実施されてもよい。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定する特定手段と、
 前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する推定手段と、を備える物体認識装置。
 (付記2)
 前記特定手段は、3次元点群間の距離に基づいて、前記生成された3次元点群から前記物体領域を特定する、付記1に記載の物体認識装置。
 (付記3)
 前記特定手段は、前記生成された3次元点群のうち、隣接する点との距離が所定値以内にある3次元点群を抽出し、前記抽出された3次元点群を前記物体領域として特定する、付記2に記載の物体認識装置。
 (付記4)
 前記特徴情報は、前記基準形状を構成する表面の法線ベクトルに関連する法線ベクトル関連情報を含み、
 前記特定手段は、前記物体領域に含まれる3次元点群により構成される複数の平面の法線ベクトルと、前記法線ベクトル関連情報とに基づいて、前記対象物と類似する基準形状を特定する、付記1~3のいずれか1項に記載の物体認識装置。
 (付記5)
 前記法線ベクトル関連情報は、前記基準形状を構成する表面の法線ベクトルの基準方向、及び前記基準形状を構成する表面の法線ベクトルの基準ヒストグラム分布のうち、少なくとも1つを含み、
 前記特定手段は、前記複数の平面の法線ベクトルの方向及び前記基準方向、並びに前記複数の平面の法線ベクトルのヒストグラム分布前記基準ヒストグラム分布のうち、少なくとも1つに基づいて、前記対象物と類似する基準形状を特定する、付記4に記載の物体認識装置。
 (付記6)
 前記基準位置は、前記対象物の中心位置であり、
 前記推定手段は、前記物体領域に含まれる3次元点群の中心位置を、前記対象物の中心位置として推定する、付記1~5のいずれか1項に記載の物体認識装置。
 (付記7)
 前記推定手段は、前記対象物を、前記特定された基準形状に近似し、前記近似された基準形状の軸を推定し、前記推定された軸と、前記特定された基準形状の基準軸とに基づいて、前記姿勢を推定する、付記1~6のいずれか1項に記載の物体認識装置。
 (付記8)
 前記推定手段は、前記物体領域に含まれる3次元点群に対して主成分分析を行い、前記対象物を構成する軸を推定し、前記推定された軸と、前記特定された基準形状の基準軸とに基づいて、前記姿勢を推定する、付記1~6のいずれか1項に記載の物体認識装置。
 (付記9)
 色画像を入力し、前記色画像に含まれる各画素の色情報に基づいて、前記色画像をセグメンテーションするセグメンテーション手段と、
 前記距離画像と、前記セグメンテーションされた領域の色情報とに基づいて、色情報が付加された3次元点群を生成する統合手段と、をさらに備え、
 前記特定手段は、前記生成された3次元点群に付加された色情報をさらに用いて、前記物体領域を特定する、付記1~8のいずれか1項に記載の物体認識装置。
 (付記10)
 前記セグメンテーション手段は、検出対象の色情報を示す検出対象色情報を入力し、前記セグメンテーションされた領域のうち、前記検出対象色情報を有する領域を抽出し、
 前記統合手段は、前記検出対象色情報が付加された3次元点群を生成する、付記9に記載の物体認識装置。
 (付記11)
 前記セグメンテーション手段は、前記色画像のうち、検出対象領域を入力し、前記検出対象領域に基づいて、検出対象色情報を特定し、前記セグメンテーションされた領域のうち、前記検出対象色情報を有する領域を抽出し、
 前記統合手段は、前記検出対象色情報が付加された3次元点群を生成する、付記9に記載の物体認識装置。
 (付記12)
 対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、
 前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定し、
 前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する、物体認識装置により実行される物体認識方法。
 (付記13)
 対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、
 前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定し、
 前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する、処理をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
 (付記14)
 付記1~8のいずれか1項に記載の物体認識装置と、
 移動対象の物体情報と、前記移動対象の物体情報が示す物体の移動先位置とを入力する入力装置と、
 前記物体を前記移動先位置に移動させるロボット装置と、を含み、
 前記物体認識装置は、
 前記物体情報に基づいて、前記対象物のうち、前記物体を選択する制御手段をさらに備える、物体認識システム。
 (付記15)
 前記物体情報は、前記物体に類似する基準形状を含み、
 前記制御手段は、前記対象物のうち、前記特定された基準形状が、前記物体に類似する基準形状である対象物を前記物体として選択する、付記14に記載の物体認識システム。
 (付記16)
 前記物体情報は、前記物体の色情報を含み、
 前記物体認識装置は、
 色画像を入力し、前記色画像に含まれる各画素の色情報に基づいて、前記色画像をセグメンテーションするセグメンテーション手段と、
 前記距離画像と、前記セグメンテーションされた領域の色情報とに基づいて、色情報が付加された3次元点群を生成する統合手段と、をさらに備え、
 前記特定手段は、前記生成された3次元点群に付加された色情報をさらに用いて、前記物体領域を特定し、
 前記制御手段は、前記対象物のうち、前記対象物の表面の位置を示す3次元点群に付加された色情報が、前記物体の色情報と同一である対象物を、前記物体として選択する、付記14又は15に記載の物体認識システム。
 1 物体認識装置
 2 特定部
 3 推定部
 100、500、800、900 3次元物体認識装置
 110、510 センサ部
 201、601 点群取得部
 202、604 セパレーション部
 203、605 物体識別部
 204、606 位置姿勢導出部
 205、611、614 識別処理実施部
 206、612、615 識別記録部
 207、613、616 識別結果出力部
 210、610、810、910 処理部
 602、811 セグメンテーション部
 603 3次元統合部
 607 色情報識別部
 608 形状識別部
 700、1200 入力装置
 750 記録装置
 911 制御部
 1000、1100 3次元物体認識システム
 1300 ロボット装置

Claims (16)

  1.  対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定する特定手段と、
     前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する推定手段と、を備える物体認識装置。
  2.  前記特定手段は、3次元点群間の距離に基づいて、前記生成された3次元点群から前記物体領域を特定する、請求項1に記載の物体認識装置。
  3.  前記特定手段は、前記生成された3次元点群のうち、隣接する点との距離が所定値以内にある3次元点群を抽出し、前記抽出された3次元点群を前記物体領域として特定する、請求項2に記載の物体認識装置。
  4.  前記特徴情報は、前記基準形状を構成する表面の法線ベクトルに関連する法線ベクトル関連情報を含み、
     前記特定手段は、前記物体領域に含まれる3次元点群により構成される複数の平面の法線ベクトルと、前記法線ベクトル関連情報とに基づいて、前記対象物と類似する基準形状を特定する、請求項1~3のいずれか1項に記載の物体認識装置。
  5.  前記法線ベクトル関連情報は、前記基準形状を構成する表面の法線ベクトルの基準方向、及び前記基準形状を構成する表面の法線ベクトルの基準ヒストグラム分布のうち、少なくとも1つを含み、
     前記特定手段は、前記複数の平面の法線ベクトルの方向及び前記基準方向、並びに前記複数の平面の法線ベクトルのヒストグラム分布及び前記基準ヒストグラム分布のうち、少なくとも1つに基づいて、前記対象物と類似する基準形状を特定する、請求項4に記載の物体認識装置。
  6.  前記基準位置は、前記対象物の中心位置であり、
     前記推定手段は、前記物体領域に含まれる3次元点群の中心位置を、前記対象物の中心位置として推定する、請求項1~5のいずれか1項に記載の物体認識装置。
  7.  前記推定手段は、前記対象物を、前記特定された基準形状に近似し、前記近似された基準形状の軸を推定し、前記推定された軸と、前記特定された基準形状の基準軸とに基づいて、前記姿勢を推定する、請求項1~6のいずれか1項に記載の物体認識装置。
  8.  前記推定手段は、前記物体領域に含まれる3次元点群に対して主成分分析を行い、前記対象物を構成する軸を推定し、前記推定された軸と、前記特定された基準形状の基準軸とに基づいて、前記姿勢を推定する、請求項1~6のいずれか1項に記載の物体認識装置。
  9.  色画像を入力し、前記色画像に含まれる各画素の色情報に基づいて、前記色画像をセグメンテーションするセグメンテーション手段と、
     前記距離画像と、前記セグメンテーションされた領域の色情報とに基づいて、色情報が付加された3次元点群を生成する統合手段と、をさらに備え、
     前記特定手段は、前記生成された3次元点群に付加された色情報をさらに用いて、前記物体領域を特定する、請求項1~8のいずれか1項に記載の物体認識装置。
  10.  前記セグメンテーション手段は、検出対象の色情報を示す検出対象色情報を入力し、前記セグメンテーションされた領域のうち、前記検出対象色情報を有する領域を抽出し、
     前記統合手段は、前記検出対象色情報が付加された3次元点群を生成する、請求項9に記載の物体認識装置。
  11.  前記セグメンテーション手段は、前記色画像のうち、検出対象領域を入力し、前記検出対象領域に基づいて、検出対象色情報を特定し、前記セグメンテーションされた領域のうち、前記検出対象色情報を有する領域を抽出し、
     前記統合手段は、前記検出対象色情報が付加された3次元点群を生成する、請求項9に記載の物体認識装置。
  12.  対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、
     前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定し、
     前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する、物体認識装置により実行される物体認識方法。
  13.  対象物までの距離情報含む距離画像を変換して生成された3次元点群に基づいて、前記対象物の表面の位置を示す3次元点群が含まれる物体領域を特定し、
     前記物体領域に含まれる3次元点群と、基準形状の特徴情報とに基づいて、前記対象物と類似する基準形状を特定し、
     前記物体領域に含まれる3次元点群と、前記特定された基準形状とに基づいて、前記対象物の基準位置及び姿勢を推定する、処理をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
  14.  請求項1~8のいずれか1項に記載の物体認識装置と、
     移動対象の物体情報と、前記移動対象の物体情報が示す物体の移動先位置とを入力する入力装置と、
     前記物体を前記移動先位置に移動させるロボット装置と、を含み、
     前記物体認識装置は、
     前記物体情報に基づいて、前記対象物のうち、前記物体を選択する制御手段をさらに備える、物体認識システム。
  15.  前記物体情報は、前記物体に類似する基準形状を含み、
     前記制御手段は、前記対象物のうち、前記特定された基準形状が、前記物体に類似する基準形状である対象物を前記物体として選択する、請求項14に記載の物体認識システム。
  16.  前記物体情報は、前記物体の色情報を含み、
     前記物体認識装置は、
     色画像を入力し、前記色画像に含まれる各画素の色情報に基づいて、前記色画像をセグメンテーションするセグメンテーション手段と、
     前記距離画像と、前記セグメンテーションされた領域の色情報とに基づいて、色情報が付加された3次元点群を生成する統合手段と、をさらに備え、
     前記特定手段は、前記生成された3次元点群に付加された色情報をさらに用いて、前記物体領域を特定し、
     前記制御手段は、前記対象物のうち、前記対象物の表面の位置を示す3次元点群に付加された色情報が、前記物体の色情報と同一である対象物を、前記物体として選択する、請求項14又は15に記載の物体認識システム。
     
PCT/JP2020/048760 2020-12-25 2020-12-25 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム WO2022137509A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2020/048760 WO2022137509A1 (ja) 2020-12-25 2020-12-25 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム
JP2022570951A JP7456521B2 (ja) 2020-12-25 2020-12-25 物体認識装置、物体認識方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/048760 WO2022137509A1 (ja) 2020-12-25 2020-12-25 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム

Publications (1)

Publication Number Publication Date
WO2022137509A1 true WO2022137509A1 (ja) 2022-06-30

Family

ID=82157627

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/048760 WO2022137509A1 (ja) 2020-12-25 2020-12-25 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム

Country Status (2)

Country Link
JP (1) JP7456521B2 (ja)
WO (1) WO2022137509A1 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0788791A (ja) * 1993-09-20 1995-04-04 Mitsubishi Electric Corp ロボット装置およびその周辺装置
JP2019056966A (ja) * 2017-09-19 2019-04-11 株式会社東芝 情報処理装置、画像認識方法および画像認識プログラム
JP2019153309A (ja) * 2018-03-05 2019-09-12 株式会社アールティ 画像処理装置、ビンピッキングシステム、画像処理方法、画像処理プログラム
JP2019185347A (ja) * 2018-04-09 2019-10-24 株式会社デンソー 物体認識装置、及び、物体認識方法
US20190392602A1 (en) * 2018-06-21 2019-12-26 Hand Held Products, Inc. Methods, systems, and apparatuses for computing dimensions of an object using range images
JP2020075340A (ja) * 2018-11-08 2020-05-21 株式会社東芝 作動システム、制御装置、およびプログラム
JP2020180914A (ja) * 2019-04-26 2020-11-05 オムロン株式会社 対象物の位置姿勢を検出する装置、方法およびプログラム
JP2020195336A (ja) * 2019-06-04 2020-12-10 本田技研工業株式会社 位置姿勢推定装置及び位置姿勢推定方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0788791A (ja) * 1993-09-20 1995-04-04 Mitsubishi Electric Corp ロボット装置およびその周辺装置
JP2019056966A (ja) * 2017-09-19 2019-04-11 株式会社東芝 情報処理装置、画像認識方法および画像認識プログラム
JP2019153309A (ja) * 2018-03-05 2019-09-12 株式会社アールティ 画像処理装置、ビンピッキングシステム、画像処理方法、画像処理プログラム
JP2019185347A (ja) * 2018-04-09 2019-10-24 株式会社デンソー 物体認識装置、及び、物体認識方法
US20190392602A1 (en) * 2018-06-21 2019-12-26 Hand Held Products, Inc. Methods, systems, and apparatuses for computing dimensions of an object using range images
JP2020075340A (ja) * 2018-11-08 2020-05-21 株式会社東芝 作動システム、制御装置、およびプログラム
JP2020180914A (ja) * 2019-04-26 2020-11-05 オムロン株式会社 対象物の位置姿勢を検出する装置、方法およびプログラム
JP2020195336A (ja) * 2019-06-04 2020-12-10 本田技研工業株式会社 位置姿勢推定装置及び位置姿勢推定方法

Also Published As

Publication number Publication date
JPWO2022137509A1 (ja) 2022-06-30
JP7456521B2 (ja) 2024-03-27

Similar Documents

Publication Publication Date Title
JP6430064B2 (ja) データを位置合わせする方法及びシステム
JP5297403B2 (ja) 位置姿勢計測装置、位置姿勢計測方法、プログラムおよび記憶媒体
JP6955783B2 (ja) 情報処理方法、装置、クラウド処理デバイス及びコンピュータプログラム製品
EP3376433B1 (en) Image processing apparatus, image processing method, and image processing program
JP2022028860A (ja) ビジョンシステムにより画像特徴におけるエッジと法線を同時に考慮するためのシステム及び方法
JP7394347B2 (ja) 候補エッジを処理するための方法及び計算システム
JP2018091656A (ja) 情報処理装置、計測装置、システム、算出方法、プログラムおよび物品の製造方法
US11321953B2 (en) Method and apparatus for posture, dimension and shape measurements of objects in 3D scenes
JP2018128897A (ja) 対象物の姿勢等を検出する検出方法、検出プログラム
JP6817742B2 (ja) 情報処理装置およびその制御方法
CN111476841A (zh) 一种基于点云和图像的识别定位方法及***
JP5794427B2 (ja) マーカ生成装置、マーカ生成検出システム、マーカ生成検出装置、マーカ、マーカ生成方法及びそのプログラム
CN112734783B (zh) 用于处理候选边缘的方法和计算***
JP2019211981A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP7298687B2 (ja) 物体認識装置及び物体認識方法
JP7066671B2 (ja) 干渉判定装置、干渉判定方法、プログラム及びシステム
JP7373700B2 (ja) 画像処理装置、ビンピッキングシステム、画像処理方法、画像処理プログラム、制御方法及び制御プログラム
US20230100238A1 (en) Methods and systems for determining the 3d-locations, the local reference frames and the grasping patterns of grasping points of an object
WO2022137509A1 (ja) 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム
JP2018146347A (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
CN114897974B (zh) 一种目标物空间定位方法、***、存储介质及计算机设备
CN114972495A (zh) 针对纯平面结构的物体的抓取方法、装置及计算设备
CN113592976A (zh) 地图数据的处理方法、装置、家用电器和可读存储介质
JP2020087155A (ja) 情報処理装置、情報処理方法及びプログラム
JP2016218920A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20966995

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022570951

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20966995

Country of ref document: EP

Kind code of ref document: A1