IP Library Granted Patent US 12,423,577
Granted Patent B2
US 12,423,577 · App. 17/691,703 · Granted Sep 23, 2025

Machine-learning for 3D segmentation

Inventors: Ariane Jourdan (Vélizy-villacoublay, FR); Eloi Mehr (Vélizy-villacoublay, FR)
Assignee: DASSAULT SYSTEMES
G06N3/08G06T7/11G06T9/002G06T17/00G06T17/20G06N20/00G06T2200/04G06T2207/20081G06T2207/20084
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,423,577
App. No.
17/691,703
Granted
Sep 23, 2025
Kind
B2
Abstract

A computer-implemented method of machine-learning including obtaining a dataset of training samples. Each training sample includes a pair of 3D modeled object portions labelled with a respective value. The respective value indicates whether or not the two portions belong to a same segment of a 3D modeled object. The method further includes learning a neural network based on the dataset. The neural network takes as input two portions of a 3D modeled object representing a mechanical part and outputs a respective value. The respective value indicates an extent to which the two portions belong to a same segment of the 3D modeled object. The neural network is thereby usable for 3D segmentation. The method constitutes an improved solution for 3D segmentation.

Claims (264)

1. A computer-implemented method of machine-learning, the method comprising:

obtaining a dataset of training samples each including a pair of 3D modeled object portions labelled with a respective value that indicates whether or not two portions belong to a same segment of a 3D modeled object; and

learning a neural network based on the dataset, the neural network being configured to

take as input two portions of a 3D modeled object representing a mechanical part, and

output a respective value that indicates an extent to which the two portions belong to a same segment of the 3D modeled object, the neural network being thereby usable for 3D segmentation,

wherein the learning of the neural network includes minimizing a loss comprising a term penalizing, for pairs of the dataset, a disparity between a respective value that indicates whether or not the two portions of a pair belong to a same segment of a 3D modeled object and a second respective value output by the neural network for the two portions,

wherein the neural network transforms the input two portions each into a corresponding intermediary feature, and the loss further includes another term penalizing, for said pairs of the dataset, a disparity between the respective value that indicates whether or not the two portions of a pair belong to a same segment of a 3D modeled object and a proximity between the intermediary features corresponding to the two portions, and

wherein the term is of a type:

i

=

1

N

d

CE

(

g

w

(

f

w

(

X

i

(

1

)

)

,

f

w

(

X

i

(

2

)

)

)

,

p

i

)

,

where ((X 1 (1) , X 2 (2) ), . . . (X N (1) , X N (2) )) are pairs of the dataset, g w (f w (X i (1) ), f w (X i (2) )) is the respective value outputted by the neural network for the pair (X i (1) , X i (2) ), g w ∘f w is the neural network, p i is the respective value that indicates whether or not portions X i (1) and X i (2) belong to a same segment of a 3D modeled object, and d CE is a loss penalizing a disparity between g w (f w (X i (1) ), f w (X i (2) )) and p i ;

and the other term is of the type:

i

=

1

N

d

M

(

f

w

(

X

i

(

1

)

)

,

f

w

(

X

i

(

2

)

)

,

p

i

)

,

where, f w (X i (1) ) and f w (X i (2) ) are the intermediary features corresponding to portions X i (1) and X i (2) of the pair (X i (1) , X i (2) ), and d M is a loss penalizing a disparity between p i and a proximity between f w (X i (1) ) and f w (X i (2) ).

2. The method of claim 1 , wherein the neural network includes:

an encoding neural network configured to take as input a portion of a 3D modeled object and to encode the portion into a latent vector, and

a predictive neural network configured to take as input a pair of latent vectors outputted by the encoding neural network and to output a respective value that indicates an extent to which the two portions encoded by the latent vectors belong to a same segment of the 3D modeled object.

3. The method of claim 2 , wherein the encoding neural network is configured to take as input a portion of a 3D modeled object and neighboring portions of the input portion.

4. The method of claim 1 , wherein the obtaining of the dataset includes:

obtaining an initial dataset of segmented 3D modeled objects; and

for each segmented 3D modeled object of the initial dataset, generating pairs of portions of the segmented 3D modeled object, the portions of a pair belonging either to a same segment of the segmented 3D modeled object or to different segments, each pair including a respective value that indicates whether or not the two portions belong to a same segment of a 3D modeled object.

5. The method of claim 4 , wherein for one or more segmented 3D modeled objects of the initial dataset, the generating of the pairs includes generating pairs of portions for which at least one portion does not belong entirely to a single segment.

6. The method of claim 4 , wherein the obtaining of the dataset further includes creating mini-batches of pairs, the learning being carried out mini-batch by mini-batch.

7. A computer-implemented method of machine-learning for learning a neural network, the method comprising:

obtaining a dataset of training samples each including a pair of 3D modeled object portions labelled with a respective value that indicates whether or not two portions belong to a same segment of a 3D modeled object; and

learning the neural network based on the dataset, the neural network being configured to take as input two portions of a 3D modeled object representing a mechanical part and to output a respective value that indicates an extent to which the two portions belong to a same segment of the 3D modeled object, the neural network being thereby usable for 3D segmentation,

wherein the 3D segmentation comprises:

obtaining a 3D modeled object representing the mechanical part,

applying the neural network to pairs of portions of the 3D modeled object, thereby outputting a set of values, each for a respective pair of portions of the 3D modeled object, each indicating an extent to which the two portions belong to a same segment of the 3D modeled object, and

performing a segmentation of the 3D modeled object based on a set of one or more similarity indicators between neighboring portions of the 3D modeled object, the set of similarity indicators including the set of values,

wherein the learning of the neural network includes minimizing a loss comprising a term penalizing, for pairs of the dataset, a disparity between a respective value that indicates whether or not the two portions of a pair belong to a same segment of a 3D modeled object and a second respective value output by the neural network for the two portions.

wherein the neural network transforms the input two portions each into a corresponding intermediary feature, and the loss further includes another term penalizing, for said pairs of the dataset, a disparity between the respective value that indicates whether or not the two portions of a pair belong to a same segment of a 3D modeled object and a proximity between the intermediary features corresponding to the two portions, and

wherein the term is of a type:

i

=

1

N

d

CE

(

g

w

(

f

w

(

X

i

(

1

)

)

,

f

w

(

X

i

(

2

)

)

)

,

p

i

)

,

where ((X 1 (1) , X 2 (2) ), . . . (X N (1) , X N (2) )) are pairs of the dataset, g w (f w (X i (1) ), f w (X i (2) )) is the respective value outputted by the neural network for the pair (X i (1) , X i (2) ), g w ∘f w is the neural network, p i is the respective value that indicates whether or not portions X i (1) and X i (2) belong to a same segment of a 3D modeled object, and d CE is a loss penalizing a disparity between g w (f w (X i (1) ), f w (X i (2) )) and p i ,

and the other term is of the type:

i

=

1

N

d

M

(

f

w

(

X

i

(

1

)

)

,

f

w

(

X

i

(

2

)

)

,

p

i

)

,

where, f w (X i (1) ) and f w (X i (2) ) are the intermediary features corresponding to portions X i (1) and X i (2) of the pair (X i (1) , X i (2) ), and d M is a loss penalizing a disparity between p i and a proximity between f w (X i (1) ) and f w (X i (2) ).

8. The method of use of claim 7 , wherein the performing of the segmentation further comprises:

performing a network-based segmentation of the 3D modeled object based on the set of values and then another segmentation of the 3D modeled object based on at least one other similarity indicator, or performing said another segmentation and then the network-based segmentation, or

performing the segmentation of the 3D modeled object based only on the set of values, or

performing the segmentation of the 3D modeled object based on the set of values combined with at least one other similarity indicator.

9. A device comprising:

a processor; and

a computer-readable data storage medium having recorded thereon a computer program comprising instructions for machine-learning that when executed by the processor causes the processor to be configured to:

obtain a dataset of training samples each including a pair of 3D modeled object portions labelled with a respective value that indicates whether or not two portions belong to a same segment of a 3D modeled object, and

learn a neural network based on the dataset, the neural network being configured to take as input two portions of a 3D modeled object representing a mechanical part and to output a respective value that indicates an extent to which the two portions belong to a same segment of the 3D modeled object, the neural network being thereby usable for 3D segmentation; and/or

implement 3D segmentation by the processor being configured to:

obtain a 3D modeled object representing a mechanical part, apply the neural network to pairs of portions of the 3D modeled object, thereby outputting a set of values, each for a respective pair of portions of the 3D modeled object, each indicating an extent to which the two portions belong to a same segment of the 3D modeled object, and

perform a segmentation of the 3D modeled object based on a set of one or more similarity indicators between neighboring portions of the 3D modeled object, the set of similarity indicators including the set of values,

wherein the processor is further configured to learn the neural network by being configured to minimize a loss comprising a term penalizing, for pairs of the dataset, a disparity between a respective value that indicates whether or not the two portions of a pair belong to a same segment of a 3D modeled object and a second respective value output by the neural network for the two portions,

wherein the neural network transforms the input two portions each into a corresponding intermediary feature, and the loss further includes another term penalizing, for said pairs of the dataset, a disparity between the respective value that indicates whether or not the two portions of a pair belong to a same segment of a 3D modeled object and a proximity between the intermediary features corresponding to the two portions, and

wherein the term is of a type:

i

=

1

N

d

CE

(

g

w

(

f

w

(

X

i

(

1

)

)

,

f

w

(

X

i

(

2

)

)

)

,

p

i

)

,

where ((X 1 (1) , X 2 (2) ), . . . (X N (1) , X N (2) )) are pairs of the dataset, g w (f w (X i (1) ), f w (X i (2) )) where ((x ( 1 ), x ( 2 )) . . . is the respective value outputted by the neural network for the pair (X i (1) , X i (2) ), g w ∘f w is the neural network, p i is the respective value that indicates whether or not portions X i (1) and X i (2) belong to a same segment of a 3D modeled object, and d CE is a loss penalizing a disparity between g w (f w (X i (1) ), f w (X i (2) )) and p i ,

and the other term is of the type:

i

=

1

N

d

M

(

f

w

(

X

i

(

1

)

)

,

f

w

(

X

i

(

2

)

)

,

p

i

)

,

where, f w (X i (1) ) and f w (X i (2) ) are the intermediary features corresponding to portions X i (1) and X i (2) of the pair (X i (1) , X i (2) ), and d M is a loss penalizing a disparity between p i and a proximity between f w (X i (1) ) and f w (X i (2) ).

10. The device of claim 9 , wherein the neural network includes:

an encoding neural network configured to take as input a portion of a 3D modeled object and for encoding the portion into a latent vector, and

a predictive neural network configured to take as input a pair of latent vectors outputted by the encoding neural network and to output a respective value that indicates an extent to which the two portions encoded by the latent vectors belong to a same segment of the 3D modeled object.

11. The device of claim 10 , wherein the encoding neural network is configured to take as input a portion of a 3D modeled object and neighboring portions of the input portion.

12. The device of claim 9 , wherein the processor is further configured to obtain the dataset by being further configured to:

obtain an initial dataset of segmented 3D modeled objects, and

for each segmented 3D modeled object of the initial dataset, generate pairs of portions of the segmented 3D modeled object, the portions of a pair belonging either to a same segment of the segmented 3D modeled object or to different segments, each pair including a respective value that indicates whether or not the two portions belong to a same segment of a 3D modeled object.

13. The device of claim 12 , wherein for one or more segmented 3D modeled objects of the initial dataset, the processor is further configured to generate the pairs by being configured to generate pairs of portions for which at least one portion does not belong entirely to a single segment.

14. The device of claim 12 , wherein the processor is further configured to obtain the dataset by being configured to create mini-batches of pairs, the learning being carried out mini-batch by mini-batch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2022
From: JOURDAN, ARIANE; MEHR, ELOI
To: DASSAULT SYSTEMES
Reel/Frame 059580/0120 →
Priority Claims (1)
EP 21305293 · Mar 10, 2021 · regional
Continuity (1)
Related Publication 20220292352A1 · Sep 15, 2022
References Cited (21)
Li Yi, Deep Part Induction from Articulated Object Pairs, Sep. 19, 2018, arXiv:1809.07417v1, 18. [cited by examiner]
Q. Wu, Constructing 3D CSG Models from 3D Raw Point Clouds, Computer Graphics Forum, 2018⋅Wiley Online Library, 221-232. [cited by examiner]
The extended European search report issued Aug. 31, 2021, in European Application No. 21305293.9, citing documents AB-AC therein, 8 pgs. [cited by applicant]
Ling Zhang et al., Unsupervised Feature Learning for Point Cloud Understanding by Contrasting and Clustering Using Graph Convolutional Neural Networks, 2019 International Conference on 3D Vision (3DV). IEEE, Sep. 16, 20… [cited by applicant]
Li Yi et al., Deep Part Induction from Articulated Object Pairs, ACM Trans. Graph., vol. 37, No. 6, Article 209, Nov. 2018, 15 pgs. [cited by applicant]
L. Li, M., et al., Supervised Fitting of Geometric Primitives to 3D Point Clouds. In CVPR, 2019, 11 pgs. [cited by applicant]
K. Mo, et al., PartNet: A Large-scale Benchmark for Fine-grained and Hierarchical Pan-level 30 Object Understanding. In CVPR, 2019, 23 pgs. [cited by applicant]
W. Wang, et al., SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation. In CVPR, 2018, 13 pgs. [cited by applicant]
T. Luo, et al., Learning to Group: A Bottom-Up Framework for 3D Part Discovery in Unseen Categories. In ICLR, 2020, 23 pgs. [cited by applicant]
C. Qi, et al., Deep Hough Voting for 3D Object Detection in Point Clouds. In ICCV, 2019, 14 pgs. [cited by applicant]
C. Qi, et al., PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. In CVPR, 2017, 19 pgs. [cited by applicant]
C. Qi, et al., PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space. In NIPS, 2017, 10 pgs. [cited by applicant]
Y. Wang, et al., Dynamic Graph CNN for Learning on Point Clouds. In ACM, 2019, 13 pgs. [cited by applicant]
R. Hanocka, et al., MeshCNN: A Network with an Edge. In ACM, 2019, 12 pgs. [cited by applicant]
Kaiser A. et al., A Survey of Simple Geometric Primitives Detection Methods for Captured 3D Data, Computer Graphics Forum, ,Volum 00 (2018), No. 00, 30 pgs. [cited by applicant]
Wu. Q et al., Constructing 3D CSG Models from 3D Raw Point Clouds, Computer Graphics Forum 2018, vol. 37, No. 5. 12 pgs. [cited by applicant]
Shapiro V. et al., Separation for Boundary to CSG Conversion, ACM Transactions on Graphics, vol. 12, No. 1, Jan. 1993, pp. 35-55, 21 pgs. [cited by applicant]
P. Benko et al., Algorithm for reverse engineering boundary representation models, Computer-Aided Design 33 (2001), 839-851. 13 pgs. [cited by applicant]
A. Tumanin, Polygonal Mesh to B-Rep Solid Conversion: Algorithm Details and C++ Code Samples, posted on Sep. 4, 2019 on the Habr.com website, 11 pgs. [cited by applicant]
Benière et al., Recovering Primitives in 3D CAD meshes, Proceedings of SPIE, 2011, 9 pgs. [cited by applicant]
T. Du et al., InverseCSG: Automatic Conversion of 3D Models to CSG Trees, ACM transaction on Graphics, vol. 37, No. 6, Article 213, Nov. 2018, 16 pgs. [cited by applicant]