Spaces:
Build error
Build error
| from sklearn.decomposition import PCA | |
| import plotly.graph_objects as go | |
| import torch | |
| def visualize_features_PCA( | |
| xyz: torch.Tensor, | |
| features: torch.Tensor, | |
| ): | |
| """visualize the features using PCA | |
| Args: | |
| xyz (torch.Tensor): [num_points, 3] | |
| features (torch.Tensor): [num_points, feature_dim] | |
| """ | |
| xyz = xyz.cpu().numpy() | |
| features = features.cpu().numpy() | |
| pca = PCA(n_components=3) | |
| pca_result = pca.fit_transform(features) # (N, channel) | |
| # Normalize the results between 0 and 1 for color mapping | |
| pca_result -= pca_result.min(axis=0) | |
| pca_result /= pca_result.max(axis=0) | |
| # Scale to 0-255 for RGB | |
| pca_result = (pca_result * 255).astype(int) | |
| # Convert to a format Plotly understands | |
| color = ["rgb({},{},{})".format(r, g, b) for r, g, b in pca_result] | |
| # Create interactive 3D scatter plot | |
| fig = go.Figure( | |
| data=[ | |
| go.Scatter3d( | |
| x=xyz[:, 0], | |
| y=xyz[:, 1], | |
| z=xyz[:, 2], | |
| mode="markers", | |
| marker=dict( | |
| size=5, | |
| color=color, # set color to an array/list of desired values | |
| opacity=0.8, | |
| ), | |
| ) | |
| ] | |
| ) | |
| fig.show() | |