Zero-shot Learning of 3D Point Cloud Objects
Ali Cheraghian Shafin Rahman Lars Petersson





































Zero-shot Learning of 3D Point Cloud Objects
    Ali Cheraghian, Shafin Rahman and Lars Petersson


Australian National  University, Data61-CSIRO


firstname.lastname@anu.edu.au
    December 30, 2023
====================================================================================================================================






§ ABSTRACT


  Recent deep learning architectures can recognize instances of 3D point cloud objects of previously seen classes quite well. At the same time, current 3D depth camera technology allows generating/segmenting a large amount of 3D point cloud objects from an arbitrary scene, for which there is no previously seen training data. A challenge for a 3D point cloud recognition system is, then, to classify objects from new, unseen, classes. This issue can be resolved by adopting a zero-shot learning (ZSL) approach for 3D data, similar to the 2D image version of the same problem. ZSL attempts to classify unseen objects by comparing semantic information (attribute/word vector) of seen and unseen classes. Here, we adapt several recent 3D point cloud recognition systems to the ZSL setting with some changes to their architectures. To the best of our knowledge, this is the first attempt to classify unseen 3D point cloud objects in the ZSL setting. A standard protocol (which includes the choice of datasets and the seen/unseen split) to evaluate such systems is also proposed. Baseline performances are reported using the new protocol on the investigated models. This investigation throws a new challenge to the 3D point cloud recognition community that may instigate numerous future works.





§ INTRODUCTION

In recent years, a number of methods have been introduced addressing the problem of 3D object classification of point clouds <cit.>. They have achieved outstanding accuracy on available 3D datasets, in most cases reaching a greater performance than 90%. This achievement is due to employing deep end-to-end learning on point cloud objects/scenes. Classical attempts of this kind requires numerous pre-processing steps involving voxel representations of 3D models <cit.>, projecting it to 2D spaces <cit.>, using pre-trained networks like VGG <cit.> etc. Those approaches are not only dependent on higher-end hardware but also not extendable to scene understanding/point classification/shape completion. The emergence of end-to-end learning on 3D point cloud data has solved most of the previous problems using one single deep neural network.




Nowadays, thanks to the availability of 3D depth cameras, obtaining 3D models of objects and environments are easier than before  <cit.>. This has opened up the space of potential applications, and also brings with it new challenges. For example, it is a likely scenario that we have access to, or is capturing, 3D models for which we do not have any labels. Making use of such data is a challenge, and we are in this paper exploring whether a zero-shot learning (ZSL) approach can be utilized (See Figure <ref>). To the best of our knowledge, this is the first time ZSL has been applied to 3D object recognition.

In the 2D image domain, on the contrary, there are many works addressing the ZSL problem in the past few years <cit.>.  A general ZSL architecture introduces semantic information (like attributes <cit.> or word vectors <cit.>) of classes to transfer the knowledge from the seen classes to the unseen classes. During training of ZSL, many methods convert image features to the semantic embedding <cit.> or a latent space <cit.>, or vice versa <cit.>. Later, in testing, instances of unseen classes are projected to the same space learned during training, to predict a matching score based on the similarity between the projected embedding and the unseen semantic embedding. With the motivation from the 2D version of the ZSL problem, we use semantic information from classes inside the deep network to classify unseen 3D point cloud objects.

In this paper, we conduct a series of experiments utilising two popular structures traditionally used for feature extraction in 3D point clouds. These are PointNet <cit.> and EdgeConv <cit.>. We combine these with two pooling methods, Maxpooling and NetVlad <cit.>. With the help of these base architectures, we build a new structure that combines point cloud features with word vector semantic features thereby enabling the classification of previously unseen 3D classes.  Theory is here provided as to how to combine semantic word vectors and adapt the previous structure to perform the ZSL task. Moreover, based on our experiments, we demonstrate that our proposed framework for classification of unseen 3D models is useful when the word vector semantic embedding are used during the training stage. Our proposed framework addressing the ZSL task is shown to produce good results on a number of benchmark datasets. In this paper, our main contributions are as follows: 


    
   
  * We present a new challenge to the ZSL community which aims to classify 3D point cloud objects without having previously observed a single instance of the classes they belong to.
   
  * We adapt established 3D point cloud classification methods to perform ZSL which can serve as baseline performance for further research in this direction.
   
  * We introduce a new evaluation protocol for ZSL methods on 3D point clouds which consists of a seen and unseen split of data from the datasets ModelNet40 <cit.>, ModelNet10 <cit.>, Mcgill <cit.> and SHREC2015 <cit.>.




§ RELATED WORK

3D point cloud object recognition architecture: The early methods utilizing deep learning for operating on 3D point clouds used volumetric <cit.> or multi-view <cit.> representations in order to work with 3D data. Recently, the trend in this area has shifted to instead using raw point clouds directly <cit.>, without any preprocessing step. These methods do not suffer to the same degree from scalability issues as the volumetric representation does, and they do not make any a priori assumptions onto which 2D planes, and how many, that the point cloud should be projected on, like the view-based methods do. PointNet <cit.> was the first work that operated on raw point clouds directly at the input of the network. PointNet used a multi-layer perceptron (mlp) <cit.> to extract features from point sets, and max-pooling layers to remove the otherwise inherent issue of permutation from the point clouds. Later, many methods <cit.> were proposed to overcome the limitations of PointNet, which does not utilize local features or a more advanced pooling operation than max-pooling. At the time of writing, only the traditional recognition case where all the classes of interest have been seen at training time, have been considered in the case of 3D point cloud data. The current literature does not address the zero-shot version of the 3D recognition problem. In this paper, for the first time, we perform ZSL on 3D point cloud objects. 






Zero-shot learning on 2D images: In the image recognition literature, zero-shot learning (ZSL) has made reasonable progress over the past few years <cit.>. The objective of such learning is to recognize objects from unseen classes not used during training. To do that, semantic information about the class labels in the form of attributes/word vectors are taken advantage of. Image features are usually transferred to the dimension of the semantic vector to obtain a matching score by comparing it with seen/unseen semantic vectors. Some of the notable research directions in this line of investigation include exploring class attribute association <cit.>, domain adaptation <cit.>, the effect of hubness <cit.>, generalized ZSL <cit.>, inductive vs. transductive ZSL  <cit.>, multi-label ZSL <cit.> etc. In this paper, we apply zero-shot learning on 3D point cloud objects instead of the traditional 2D image.








§ OUR APPROACH






Problem formulation: Suppose we define a set of seen 𝐘^s = { 1,...,S } and a set of unseen 𝐘^u = { S+1,...,S+U } labels, where 𝐘^s∩𝐘^u = ∅, and S and U are the total number of seen and unseen labels respectively. There are associated semantic class embeddings (word vectors) for all samples in both seen and unseen sets, which is defined as 𝐄^s={𝐞_s:s∈𝐘^s} and 𝐄^u={𝐞_u:u∈𝐘^u} respectively, where 𝐞_s,𝐞_u∈ℝ^d. The number of instances for sets of seen and unseen classes are n_s and n_u respectively. The matrices 𝐗^s= [𝐱 _s^1,...,𝐱 _s^n_s ] for s∈𝐘^s, and 𝐗^u= [𝐱 _u^1,...,𝐱 _u^n_u ] for u∈𝐘^u are point cloud features for the seen and unseen classes respectively, where for both seen and unseen instances 𝐱 ={𝐩_1,...,𝐩_n} is an unordered point set, where 𝐩_i∈ℝ^F. In the simplest setting of F=3, each point contains 3D coordinates x, y, and z. To place the problem in a zero-shot setting, it is crucial to mention that, 𝐗^u, 𝐘^u and 𝐄^u are not observed during the training stage. Here, we define the ZSL task addressed in this work: Only point cloud features of seen classes 𝐗_s are used in the training phase. The aim is to assign an unseen class tag u∈𝐘^u to a given unseen 3D point cloud shape using the related feature vector 𝐱_u. 


 


    < g r a p h i c s >



A general framework of the architecture using semantic word vectors. Similar to a traditional 3D point cloud recognition system, it produces a prediction score for every seen object. The inference of unseen classes is made based on those seen predictions.















  



 Training: Given an unordered point set representing an object from a seen class 𝐱_s ={𝐩_1,...,𝐩_n}, a set function is defined such that any permutation of the point set becomes irrelevant,

    f(𝐩_1,𝐩_2,...,𝐩_n) ≈  g(h(𝐩_1,β  )),h(𝐩_2,β  )),...,h(𝐩_n,β  ))

where f is the set function, h is the feature extraction function, g is the pooling function with the ability to remove the effects of permutation of points in a set, and β represents a set of arguments associated with 𝐩_i. The feature extraction function h(𝐩_i,β ) extracts a richer representation from the point cloud in a higher dimension. For feature extraction, two different algorithms for feature extraction, h(𝐩_i,β ), are applied. That is, global feature extraction as done in PointNet <cit.>, and local feature extraction as done in EdgeConv <cit.>. In PointNet, h(𝐩_i,β )=h(𝐩_i) : ℝ^d→ℝ^d^',β={∅}, since each point is considered separately, the extracted feature vector contains global information. In EdgeConv <cit.>, which extracts local features as well as global features, h(𝐩_i,β)=h(𝐩_i,𝐩_j-𝐩_i) : ℝ^d×ℝ^d→ℝ^d^',β ={𝐩_j-𝐩_i}. In this case, point sets are represented by a dynamic graph and edge features based on k-nearest neighbors are calculated. Since point sets are inherently unordered, a function which is invariant to permutation is necessary to pool point features into a feature vector. Here, the Maxpooling operation above, g, is capable of removing the permutation from point clouds. Also, instead of Maxpooling, <cit.> used NetVlad <cit.> as a pooling mechanism to remove permutation from point cloud features.




Finally, via a collection of h(𝐩_i,β ), corresponding values of f can be computed to form a vector 𝐟∈ℝ^m for Maxpooling pooling, and 𝐟∈ℝ^m × c for NetVlad pooling, where c is the number of centers in NetVlad, which represents a feature vector of an input point set. The obtained feature vector removes permutation from the point cloud. In the next step, a few fully-connected layers are applied to the feature vector 𝐟 in order to transform the features into a more discriminative representation, 𝐟'=ϕ(𝐟), where ϕ:ℝ^m→ℝ^d represents three fc layers with a nonlinear relu activation. This function maps the point cloud feature vector 𝐟 to a semantic word vector embedding space by calculating 𝐟'. Then, semantic embedding vectors 𝐄^s, from all seen classes, are inserted into the network by multiplying with the feature vector 𝐟' from the fully connected layers, 𝐟”=𝐄^s.𝐟', where 𝐄^s∈ℝ^ S × d, and 𝐟”∈ℝ^ S. Finally, the following objective function is minimized in order to train the proposed method shown in Figure <ref>:



    L = -∑_i=1^SY_i^slog(y_i))  where,  y_i=e^(E^s.f'_i)/∑_j=1^Se^(E^s.f'_j)




Multiple semantic space fusion: In Figure <ref>, only one semantic representation, w2v or glove, is considered during the training stage. However, it is also possible to fuse both semantic representations and consider them a unit semantic vector by concatenating the two different semantic embedding space representations. Therefore, the new semantic vector is: E^s = concat(E^s_w2v,E^s_glove), where 𝐄^s_w2v={𝐞_s_w2v:s∈𝐘^s},  𝐄^s_glove={𝐞_s_glove:s∈𝐘^s}, and “concat" denotes the concatenation operator.






Inference: During the training stage, a classifier p_s is trained on seen instances 𝐗^s such that it can estimate the probability of a 3D point cloud 𝐱 belonging to a certain seen class label s ∈𝐘^s, denoted p_s(s|𝐱_s), where ∑_s=1^Sp_s(s|𝐱_s)=1. Then, given p_s, we apply a method similar to <cit.>, to transfer those probabilities obtained from training samples to the testing labels. 
Suppose ŝ(𝐱,t) is the t^th most likely label for a point cloud 𝐱:




    ŝ(𝐱,t)=s∈ Y^smax  p_s(s|𝐱_s)




So, p_s(ŝ(𝐱,t)|𝐱) is the t^th largest value in {  p_s(s|𝐱);s ∈ Y^s}. Based on the top T predictions of p_s, the proposed model calculates an embedding semantic feature vector z(𝐱) for an input 𝐱, 




    z(𝐱) = 1/K∑_t=1^Tp_s(ŝ(𝐱,t)|𝐱).e_st




where T is a parameter in order to control the maximum number of embedding vectors that contributes in the inference stage, and K=√(∑_t=1^T( p_s(ŝ(𝐱,t)|𝐱) )^2) is a normalization factor. The significance of using a subset of seen prediction values is to describe unseen classes via only closely related seen classes. Based on the predicted embedding of 𝐱 in the semantic space, z(𝐱), zero-shot classification is applied to find the class which is nearest to the obtained embedding vectors. The top prediction for a point cloud x from the test set, denoted ŷ(𝐱,1), is defined by using the cosine similarity to rank the embedding vectors, 




    ŷ(𝐱,1)=u∈ Y^umax  cos(z(𝐱),E^u)








An alternative approach to adapt ZSL: In this paper, we modified the PointNet <cit.> and EdgeConv <cit.> architectures such that they can consider word vectors during training. This modification helps aligning the point cloud object features to their corresponding semantic space. The output of this architecture still provides a prediction value, p_s(s|𝐱_s) for each seen class which we use during inference in Eq. <ref>. However, as the original PointNet <cit.> and EdgeConv <cit.> architectures can also provide such seen prediction values, one can consider the original framework instead of our modified architecture. Then, the inference follows the same process as mentioned above. We name this alternative process of prediction the basic approach. In the experiments, we find that as this basic approach does not consider word vectors during training, it does not perform well predicting unseen classes (See Table <ref>). However, being free from the noise inside the word vectors, it performs very well recognizing objects of seen classes (See Table <ref>).







§ EXPERIMENT




 §.§ Setup

Dataset: We perform our experiments on three well-known 3D datasets, ModelNet40/Modelnet10 <cit.>, McGill <cit.>, and SHREC2015 <cit.>. The ModelNet40 contains 12,311 CAD models from 40 different classes, and Modelnet10, which is a subset of ModelNet40, consists of 4899 CAD models from 10 different classes. The Modelnet40 contains 9,843 training samples and 2,468 testing samples, and ModelNet10 includes 3991 training samples and 908 testing samples. Moreover, the McGill dataset consists of 456 CAD models of 19 different objects. The SHREC2015 dataset consists of 1200 3D watertight triangle meshes from 50 different classes, where each class contains 24 objects with distinct postures. Each shape in the dataset has approximately 10,000 vertices. Note that, we randomly sample all models to 1,024 points from the mesh faces and normalize them to a unit sphere. We use the (x, y, z) coordinates of the sampled points for all the experiments in this work.


















Seen/Unseen split: We are proposing a suitable and standard split of seen and unseen classes similar to the 2D version of the corresponding ZSL problem. In the 2D case, experiments using established methods of ZSL are performed on a single, well defined, split of seen/unseen classes from datasets like Animals with Attributes (AwA) <cit.>, and Caltech-UCSD Birds (CUB) <cit.>. The idea of using a single split is better than using several random splits as it establishes a common testbed for evaluating other methods. In a real life setting, unseen 3D point cloud objects are likely obtained from an advanced 3D-depth camera or laser scanner. Here, however, we attempt to simulate that scenario by using 3D point cloud objects from a different dataset not included during training. Therefore, we propose to use 30 classes from ModelNet40 as seen and other, disjoint classes, from ModelNet10, McGill and SHREC2015 as unseen. In ModelNet10, which has 10 classes, only testing samples based on the splitting protocol mentioned above, are considered as the unseen set. In McGill <cit.>, 5 classes, which also appear in the seen set, are removed, and the remaining 14 categories are selected. Since we follow the protocol introduced by <cit.>, we only consider their test set, the last third of the instances, as the unseen instances to enable a fair comparison. Finally, in the SHREC2015 <cit.> dataset, those classes that were similar to the seen classes, and those classes for which there were no semantic word vector available, were removed. The remaining 30 of the original 50 classes were chosen as the unseen instances. Moreover, in line with the protocol used in <cit.>, 25% of instances were chosen randomly as unseen samples. 




Semantic features: 
We work with unsupervised word vectors obtained from an unannotated text corpus as semantic information. We used  ℓ_2 normalized, 300 dimensional word2vec <cit.> and Glove <cit.> word vectors. The 2D tSNE visualization <cit.> of those vectors is illustrated in Figure <ref>.

Evaluation: The recognition performance is here measured by top-1 accuracy. It means the class with the highest predicted probability must match the ground truth class to be considered “correct".

Implementation details: We use the Adam optimizer and a batch size of 16.  We also use Relu and Batch normalization(BN) <cit.> for each layer. We implemented the architecture using TensorFlow and executed on an NVIDIA GTX1080Ti. For PointNet, we employed five shared mlp layers (64,64,64,128,1024). Also, for EdgeConv, which consists of two feature extraction blocks, the first block used three shared mlp layers (64,64,64) and the second block consisted of a shared mlp of size (128). Then, a shared mlp of size 1024 was used to concatenate all features together. Finally, for aggregation, we also used either max pooling or NetVlad. In the case of max pooling, we got a feature vector of size 1024. In the case of NetVlad, the number of cluster centers was set to 128 and the last mlp layer was set to size 128, from which we got a feature vector of size 128×128. 










    < g r a p h i c s >



Per-class recognition rate of unseen ModelNet10 classes.







 §.§ Recognition results


Unseen recognition: In this subsection, the top-1 accuracy performance of four different structures based on the combinations of feature extraction modules PointNet and EdgeConv, and the pooling layers Maxpooling and NetVlad, are evaluated. Moreover, for each structure, four different experiments, basic, w2v, glove, and concatenation of w2v and glove, are conducted. It is important to mention that in the basic experiments, non semantic word vector embeddings are used during the training stage. As shown in Table <ref>, the winning architecture for point cloud zero-shot learning is the combination of PointNet and NetVlad, which achieves an accuracy of 28.9%, 16.1%, and 6.8% for the ModelNet10, McGill, and SHREC2015 datasets respectively. Based on the obtained results, we can make the following observations: 1) PointNet, in comparison to EdgeConv, has the advantage and performs better on the ZSL task, which can be due to the fact that the vanilla PointNet version has a simpler structure and fewer parameters to be learned. However, the EdgeConv module is better suited to the non-ZSL, point cloud recognition task than PointNet. 2) NetVlad works better than Maxpooling. Although Maxpooling is robust to permutation, it is a greedy operation which removes much useful information. In comparison to the Maxpooling layer, NetVlad keeps more features and, similarly, it ignores permutation in point cloud data. 3) Zero-shot 3D object recognition benefits from using a semantic word vector embedding in all investigated structures in comparison to the basic model. 4) Concatenation of w2v and glove helped to improve the performance of the proposed method on the McGill and SHREC2015 datasets.

Per-class results: In Figure <ref>, we report individual class performance of unseen ModelNet10 classes using PointNet + Maxpooling/NetVlad. Our architecture performs better on ModelNet10 classes (e.g., sofa, table, dresser, and bathtub) for which there are sufficiently similar classes in the seen set. However, one can find that the architecture cannot classify some unseen classes at all (for example toilet, crab, dinosaur etc). This is due to the hubness problem in high dimensional space Zhang et al. <cit.>.

Seen recognition: To investigate the effect of using semantic feature vectors during the training stage, in the case of the traditional non-ZSL task, we also evaluated seen class performance (see Table <ref>). To this end, the test set of seen classes of the ModelNet40 splitting protocol are considered. Also, we tested basic models with 30 and 40 seen classes. However, the performance of the basic model is slightly better than the models which used semantic word vectors during training. Reasonably, being obtained in an unsupervised way, word vectors insert noise in the training which reduces the seen recognition rate but helps the unseen recognition rate.








    < g r a p h i c s >



The effect of varying T, the number of embedding vectors in Eq. <ref>.






































Parameter Dependency: Eq. <ref> allows us to vary the number of embedding vectors from the seen classes that contribute in the inference stage. In Figure <ref>, we see the result when varying this number from 5 to 30. Note that, in Fig. <ref>, the ModelNet10 vectors reside within the distribution of the ModelNet40 vectors . Hence, most seen ModelNet40 vectors contribute to describing unseen ModelNet10 objects. Therefore, ModelNet10 performs better with a large number of seen vectors.







 

















§ CONCLUSION

Traditional recognition systems have achieved superior performance on 3D point cloud objects. However, due to the advancement of 3D depth camera technology, obtaining 3D point cloud representations of scenes has become much more accessible than before. Hence, we will more than likely encounter many unseen objects to which our traditional 3D point cloud recognition gets no training. Therefore, it is time for 3D point cloud recognition systems to adapt zero-shot settings, aiming to recognize those unseen objects. To this end, this paper proposed a new challenge and a useful evaluation testbed/protocol for pushing forward with this new line of investigation. We also modified some established 3D point cloud recognition systems to work in the zero-shot setting in order to report a set of baseline performance results with respect to this problem. Overall, we believe that this research has the potential to motivate numerous further works to create a more robust 3D point cloud recognition system.




































ieee























