已合并
整改维度信息 #13
xbyb26创建于 19 天前
整改维度信息 #13
已合并
共 12 个文件变更+156-156
| @@ -38,12 +38,12 @@ Renders 3D Gaussian point clouds to 2D images. | |||
| 38 | 38 | ||
| 39 | **Return Values**: | 39 | **Return Values**: |
| 40 | 40 | ||
| 41 | -- `render_colors` (Tensor): Rendered color image, shape (C, 3, H, W) | 41 | +- `render_colors` (Tensor): Rendered color image, shape (C, H, W, 3) |
| 42 | -- `render_depth` (Tensor): Rendered depth image, shape (C, 1, H, W) | 42 | +- `render_depth` (Tensor): Rendered depth image, shape (C, H, W, 1) |
| 43 | - `info` (dict): Metadata dictionary, containing: | 43 | - `info` (dict): Metadata dictionary, containing: |
| 44 | - `gaussian_ids`: Gaussian point IDs (currently None) | 44 | - `gaussian_ids`: Gaussian point IDs (currently None) |
| 45 | - - `means2d`: 2D projection coordinates | 45 | + - `means2d`: 2D projection coordinates, shape (B, C, 2, N) |
| 46 | - - `radii`: Projection radii | 46 | + - `radii`: Projection radii, shape (B, C, 2, N) |
| 47 | - `width`: Image width | 47 | - `width`: Image width |
| 48 | - `height`: Image height | 48 | - `height`: Image height |
| 49 | - `n_cameras`: Number of cameras | 49 | - `n_cameras`: Number of cameras |
| @@ -73,7 +73,7 @@ render_colors, render_depth, info = rasterizer.rasterization( | |||
| 73 | **Parameters**: | 73 | **Parameters**: |
| 74 | 74 | ||
| 75 | - `means` (Tensor): Gaussian center positions, shape (B, N, 3) | 75 | - `means` (Tensor): Gaussian center positions, shape (B, N, 3) |
| 76 | -- `colors` (Tensor): Color values, shape (B, N, 3) or (B, C, N, 3) | 76 | +- `colors` (Tensor): Color values, shape (B, 3, N) |
| 77 | - `covars` (Tensor, optional): Covariance matrix, shape (B, N, 3, 3). Mutually exclusive with quat/scales | 77 | - `covars` (Tensor, optional): Covariance matrix, shape (B, N, 3, 3). Mutually exclusive with quat/scales |
| 78 | - `quat` (Tensor, optional): Quaternions for rotation, shape (B, N, 4). Mutually exclusive with covars | 78 | - `quat` (Tensor, optional): Quaternions for rotation, shape (B, N, 4). Mutually exclusive with covars |
| 79 | - `scales` (Tensor, optional): Scale parameters, shape (B, N, 3). Used together with quat | 79 | - `scales` (Tensor, optional): Scale parameters, shape (B, N, 3). Used together with quat |
| @@ -90,14 +90,14 @@ render_colors, render_depth, info = rasterizer.rasterization( | |||
| 90 | 90 | ||
| 91 | **Return Values**: | 91 | **Return Values**: |
| 92 | 92 | ||
| 93 | -- `means2d` (Tensor): 2D projection coordinates, shape (B, C, N, 2) | 93 | +- `means2d` (Tensor): 2D projection coordinates, shape (B, C, 2, N) |
| 94 | - `depths` (Tensor): Depth values, shape (B, C, N) | 94 | - `depths` (Tensor): Depth values, shape (B, C, N) |
| 95 | -- `conics` (Tensor): 2D covariance inverse matrix (conic parameters), shape (B, C, N, 3) | 95 | +- `conics` (Tensor): 2D covariance inverse matrix (conic parameters), shape (B, C, 3, N) |
| 96 | - `opacities` (Tensor): Filtered opacities, shape (B, C, N) | 96 | - `opacities` (Tensor): Filtered opacities, shape (B, C, N) |
| 97 | -- `radius` (Tensor): Projection radii, shape (B, C, N) | 97 | +- `radius` (Tensor): Projection radii, shape (B, C, 2, N) |
| 98 | -- `covars2d` (Tensor): 2D covariance matrices, shape (B, C, N, 2, 2) | 98 | +- `covars2d` (Tensor): 2D covariance matrices, shape (B, C, 3, N) |
| 99 | -- `colors` (Tensor): Filtered colors, shape (B, C, N, 3) | 99 | +- `colors` (Tensor): Filtered colors, shape (B, C, 3, N) |
| 100 | -- `cnt` (Tensor): Number of valid Gaussian points | 100 | +- `cnt` (Tensor): Number of valid Gaussian points, shape (B, C) |
| 101 | 101 | ||
| 102 | **Example**: | 102 | **Example**: |
| 103 | 103 | ||
| @@ -133,17 +133,17 @@ means2d, depths, conics, opacities, radius, covars2d, colors, cnt = \ | |||
| 133 | - `opacities` (Tensor): Opacities, shape (1, N) | 133 | - `opacities` (Tensor): Opacities, shape (1, N) |
| 134 | - `colors` (Tensor): Colors, shape (3, N) | 134 | - `colors` (Tensor): Colors, shape (3, N) |
| 135 | - `depths` (Tensor, optional): Depth values, shape (1, N). If None, depth is not rendered | 135 | - `depths` (Tensor, optional): Depth values, shape (1, N). If None, depth is not rendered |
| 136 | -- `tile_coords` (Tensor): Tile coordinates | 136 | +- `tile_coords` (Tensor): Tile coordinates, shape (tileNum, 2, nPixel) |
| 137 | -- `offsets` (Tensor): Offsets | 137 | +- `offsets` (Tensor): Offsets, shape(vectorCnt + (TileNum * 2)) |
| 138 | -- `sorted_gs_ids` (Tensor): Sorted Gaussian point IDs | 138 | +- `sorted_gs_ids` (Tensor): Sorted Gaussian point IDs, shape (totalGauss) |
| 139 | 139 | ||
| 140 | **Return Values**: | 140 | **Return Values**: |
| 141 | 141 | ||
| 142 | - If `depths` is provided: | 142 | - If `depths` is provided: |
| 143 | - - `color` (Tensor): Rendered color image | 143 | + - `color` (Tensor): Rendered color image, shape (3, tileNum, nPixel) |
| 144 | - - `depth` (Tensor): Rendered depth image | 144 | + - `depth` (Tensor): Rendered depth image, shape (1, tileNum, nPixel) |
| 145 | - If `depths` is not provided: | 145 | - If `depths` is not provided: |
| 146 | - - `color` (Tensor): Rendered color image | 146 | + - `color` (Tensor): Rendered color image, shape (3, tileNum, nPixel) |
| 147 | 147 | ||
| 148 | **Example**: | 148 | **Example**: |
| 149 | 149 | ||
| @@ -178,7 +178,7 @@ render_colors, render_depths = gauss_splat.calc_render( | |||
| 178 | 178 | ||
| 179 | **Return Values**: | 179 | **Return Values**: |
| 180 | 180 | ||
| 181 | -- `output` (Tensor): Computed color values, shape (B, N, 3) | 181 | +- `output` (Tensor): Computed color values, shape (B, 3, N) |
| 182 | 182 | ||
| 183 | **Example**: | 183 | **Example**: |
| 184 | 184 | ||
| @@ -200,16 +200,16 @@ colors = gauss_splat.spherical_harmonics( | |||
| 200 | 200 | ||
| 201 | **Parameters**: | 201 | **Parameters**: |
| 202 | 202 | ||
| 203 | -- `lb_sched` (Tensor): Load balancing scheduling tensor | 203 | +- `lb_sched` (Tensor): Load balancing scheduling tensor, shape(B, C, schedule_num) |
| 204 | -- `gaussian_cnt` (Tensor): Gaussian point count per tile | 204 | +- `gaussian_cnt` (Tensor): Gaussian point count per tile, shape(B, C, tile_num, 1) |
| 205 | -- `depths` (Tensor): Depth values | 205 | +- `depths` (Tensor): Depth values, shape(B, C, tile_num, N) |
| 206 | -- `gs_ids` (Tensor): Gaussian point IDs | 206 | +- `gs_ids` (Tensor): Gaussian point IDs, shape(B, C, tile_num, N) |
| 207 | -- `sorted_offset` (Tensor): Sorting offset | 207 | +- `sorted_offset` (Tensor): Sorting offset, shape(B*C) |
| 208 | - `max_tile_gauss` (int): Maximum number of Gaussian points per tile | 208 | - `max_tile_gauss` (int): Maximum number of Gaussian points per tile |
| 209 | 209 | ||
| 210 | **Return Values**: | 210 | **Return Values**: |
| 211 | 211 | ||
| 212 | -- `sorted_gs_ids` (Tensor): Sorted Gaussian point IDs | 212 | +- `sorted_gs_ids` (Tensor): Sorted Gaussian point IDs, shape(totalGauss) |
| 213 | 213 | ||
| 214 | **Example**: | 214 | **Example**: |
| 215 | 215 | ||
| @@ -234,11 +234,11 @@ sorted_gs_ids = gauss_splat.gaussian_sort( | |||
| 234 | 234 | ||
| 235 | **Parameters**: | 235 | **Parameters**: |
| 236 | 236 | ||
| 237 | -- `means2d` (Tensor): 2D projection coordinates, shape (B, C, N, 2) | 237 | +- `means2d` (Tensor): 2D projection coordinates, shape (B, C, 2, N) |
| 238 | -- `opacity` (Tensor): Opacities, shape (B, C, N) | 238 | +- `opacity` (Tensor): Opacities, shape (B, C, 1, N) |
| 239 | -- `conics` (Tensor): Covariance inverse matrix, shape (B, C, N, 3) | 239 | +- `conics` (Tensor): Covariance inverse matrix, shape(B, C, 3, N) |
| 240 | -- `covars2d` (Tensor): 2D covariance matrix, shape (B, C, N, 2, 2) | 240 | +- `covars2d` (Tensor): 2D covariance matrix, shape(B, C, 3, N) |
| 241 | -- `depths` (Tensor): Depth values, shape (B, C, N) | 241 | +- `depths` (Tensor): Depth values, shape (B, C, 1, N) |
| 242 | - `cnt` (Tensor): Valid Gaussian point count, shape (B, C) | 242 | - `cnt` (Tensor): Valid Gaussian point count, shape (B, C) |
| 243 | - `tile_grid` (Tensor): Tile grid coordinates | 243 | - `tile_grid` (Tensor): Tile grid coordinates |
| 244 | - `image_width` (int): Image width | 244 | - `image_width` (int): Image width |
| @@ -247,10 +247,10 @@ sorted_gs_ids = gauss_splat.gaussian_sort( | |||
| 247 | 247 | ||
| 248 | **Return Values**: | 248 | **Return Values**: |
| 249 | 249 | ||
| 250 | -- `tile_sum` (Tensor): Gaussian point sum per tile | 250 | +- `tile_sum` (Tensor): Gaussian point sum per tile, shape (B, C, tile_num, 1) |
| 251 | -- `tile_offset` (Tensor): Tile offsets | 251 | +- `tile_offset` (Tensor): Tile offsets, shape (B, C, tile_num, 1) |
| 252 | -- `tile_depths` (Tensor): Tile depths | 252 | +- `tile_depths` (Tensor): Tile depths, shape (B, C, tile_num, N) |
| 253 | -- `gauss_index` (Tensor): Gaussian point indices | 253 | +- `gauss_index` (Tensor): Gaussian point indices, shape (B, C, tile_num, N) |
| 254 | 254 | ||
| 255 | **Example**: | 255 | **Example**: |
| 256 | 256 | ||
| @@ -280,16 +280,16 @@ tile_sums, tile_offsets, tile_depths, tile_gauss_ids = \ | |||
| 280 | 280 | ||
| 281 | **Parameters**: | 281 | **Parameters**: |
| 282 | 282 | ||
| 283 | -- `means` (Tensor): 3D Gaussian center positions | 283 | +- `means` (Tensor): 3D Gaussian center positions, shape(B, 3, N) |
| 284 | -- `colors` (Tensor): Color values | 284 | +- `colors` (Tensor): Color values, shape(B, 3, N) |
| 285 | -- `det` (Tensor): Covariance determinant | 285 | +- `det` (Tensor): Covariance determinant, shape(B, C, N) |
| 286 | -- `opacities` (Tensor): Opacities | 286 | +- `opacities` (Tensor): Opacities, shape(B, N) |
| 287 | -- `means2d` (Tensor): 2D projection coordinates | 287 | +- `means2d` (Tensor): 2D projection coordinates, shape(B, C, 2, N) |
| 288 | -- `depths` (Tensor): Depth values | 288 | +- `depths` (Tensor): Depth values, shape(B, C, N) |
| 289 | -- `radius` (Tensor): Projection radii | 289 | +- `radius` (Tensor): Projection radii, shape(B, C, 2, N) |
| 290 | -- `conics` (Tensor): Covariance inverse matrix | 290 | +- `conics` (Tensor): Covariance inverse matrix, shape(B, C, 3, N) |
| 291 | -- `covars2d` (Tensor): 2D covariance matrix | 291 | +- `covars2d` (Tensor): 2D covariance matrix, shape(B, C, 3, N) |
| 292 | -- `compensations` (Tensor, optional): Compensation factors | 292 | +- `compensations` (Tensor, optional): Compensation factors, shape(B, C, N) |
| 293 | - `width` (int): Image width | 293 | - `width` (int): Image width |
| 294 | - `height` (int): Image height | 294 | - `height` (int): Image height |
| 295 | - `near_plane` (float): Near plane distance | 295 | - `near_plane` (float): Near plane distance |
| @@ -297,16 +297,16 @@ tile_sums, tile_offsets, tile_depths, tile_gauss_ids = \ | |||
| 297 | 297 | ||
| 298 | **Return Values**: | 298 | **Return Values**: |
| 299 | 299 | ||
| 300 | -- `means_culling`: Filtered 3D coordinates | 300 | +- `means_culling`: Filtered 3D coordinates, shape(B, C, 3, N) |
| 301 | -- `colors_culling`: Filtered colors | 301 | +- `colors_culling`: Filtered colors, shape(B, C, 3, N) |
| 302 | -- `means2d_culling`: Filtered 2D coordinates | 302 | +- `means2d_culling`: Filtered 2D coordinates, shape(B, C, 2, N) |
| 303 | -- `depths_culling`: Filtered depths | 303 | +- `depths_culling`: Filtered depths, shape(B, C, N) |
| 304 | -- `radius_culling`: Filtered radii | 304 | +- `radius_culling`: Filtered radii, shape(B, C, 2, N) |
| 305 | -- `covars2d_culling`: Filtered 2D covariances | 305 | +- `covars2d_culling`: Filtered 2D covariances, shape(B, C, 3, N) |
| 306 | -- `conics_culling`: Filtered covariance inverse matrices | 306 | +- `conics_culling`: Filtered covariance inverse matrices, shape(B, C, 3, N) |
| 307 | -- `opacities_culling`: Filtered opacities | 307 | +- `opacities_culling`: Filtered opacities, shape(B, C, N) |
| 308 | -- `proj_filter`: Projection filter | 308 | +- `proj_filter`: Projection filter, shape(B, C, ceil(N/8)) |
| 309 | -- `cnt`: Number of valid points | 309 | +- `cnt`: Number of valid points, shape(B, C) |
| 310 | 310 | ||
| 311 | --- | 311 | --- |
| 312 | 312 | ||
| @@ -318,12 +318,12 @@ tile_sums, tile_offsets, tile_depths, tile_gauss_ids = \ | |||
| 318 | 318 | ||
| 319 | **Parameters**: | 319 | **Parameters**: |
| 320 | 320 | ||
| 321 | -- `nums_tensor` (Tensor): Number of Gaussian points per tile | 321 | +- `nums_tensor` (Tensor): Number of Gaussian points per tile, shape(B, C, T) |
| 322 | - `num_bins` (int): Number of bins (number of vector processors) | 322 | - `num_bins` (int): Number of bins (number of vector processors) |
| 323 | 323 | ||
| 324 | **Return Values**: | 324 | **Return Values**: |
| 325 | 325 | ||
| 326 | -- `lb_sched_tensor` (Tensor): Load balancing scheduling tensor | 326 | +- `lb_sched_tensor` (Tensor): Load balancing scheduling tensor, shape(B, C, M) |
| 327 | 327 | ||
| 328 | **Example**: | 328 | **Example**: |
| 329 | 329 | ||
| @@ -408,8 +408,8 @@ render_colors, render_depths, info = rasterizer.rasterization( | |||
| 408 | camera_model="pinhole" | 408 | camera_model="pinhole" |
| 409 | ) | 409 | ) |
| 410 | 410 | ||
| 411 | -print(f"Rendered color shape: {render_colors.shape}") # (1, 3, 1080, 1920) | 411 | +print(f"Rendered color shape: {render_colors.shape}") # (1, 1080, 1920, 3) |
| 412 | -print(f"Rendered depth shape: {render_depths.shape}") # (1, 1, 1080, 1920) | 412 | +print(f"Rendered depth shape: {render_depths.shape}") # (1, 1080, 1920, 1) |
| 413 | ``` | 413 | ``` |
| 414 | 414 | ||
| 415 | --- | 415 | --- |
| @@ -148,7 +148,7 @@ aclnnStatus aclnnCalcRenderBwdVarClipGsids( | |||
| 148 | <td>Empty tensors are not supported.</td> | 148 | <td>Empty tensors are not supported.</td> |
| 149 | <td>INT64</td> | 149 | <td>INT64</td> |
| 150 | <td>ND</td> | 150 | <td>ND</td> |
| 151 | - <td>(totalGauss)</td> | 151 | + <td>(tileNum + totalGauss)</td> |
| 152 | <td>Yes</td> | 152 | <td>Yes</td> |
| 153 | </tr> | 153 | </tr> |
| 154 | <tr> | 154 | <tr> |
| @@ -158,7 +158,7 @@ aclnnStatus aclnnCalcRenderBwdVarClipGsids( | |||
| 158 | <td>Empty tensors are not supported.</td> | 158 | <td>Empty tensors are not supported.</td> |
| 159 | <td>UINT8</td> | 159 | <td>UINT8</td> |
| 160 | <td>ND</td> | 160 | <td>ND</td> |
| 161 | - <td>(nPixel)</td> | 161 | + <td>(totalGauss, 2)</td> |
| 162 | <td>Yes</td> | 162 | <td>Yes</td> |
| 163 | </tr> | 163 | </tr> |
| 164 | <tr> | 164 | <tr> |
| @@ -135,7 +135,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 135 | <td>Empty tensors are not supported.</td> | 135 | <td>Empty tensors are not supported.</td> |
| 136 | <td>FLOAT</td> | 136 | <td>FLOAT</td> |
| 137 | <td>ND</td> | 137 | <td>ND</td> |
| 138 | - <td>(camera_num, 4, 4)</td> | 138 | + <td>(batch_size, camera_num, 4, 4)</td> |
| 139 | <td>Yes</td> | 139 | <td>Yes</td> |
| 140 | </tr> | 140 | </tr> |
| 141 | <tr> | 141 | <tr> |
| @@ -145,7 +145,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 145 | <td>Empty tensors are not supported.</td> | 145 | <td>Empty tensors are not supported.</td> |
| 146 | <td>FLOAT</td> | 146 | <td>FLOAT</td> |
| 147 | <td>ND</td> | 147 | <td>ND</td> |
| 148 | - <td>(camera_num, 3, 3)</td> | 148 | + <td>(batch_size, camera_num, 3, 3)</td> |
| 149 | <td>Yes</td> | 149 | <td>Yes</td> |
| 150 | </tr> | 150 | </tr> |
| 151 | <tr> | 151 | <tr> |
| @@ -165,7 +165,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 165 | <td>Empty tensors are not supported.</td> | 165 | <td>Empty tensors are not supported.</td> |
| 166 | <td>FLOAT</td> | 166 | <td>FLOAT</td> |
| 167 | <td>ND</td> | 167 | <td>ND</td> |
| 168 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 168 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 169 | <td>Yes</td> | 169 | <td>Yes</td> |
| 170 | </tr> | 170 | </tr> |
| 171 | <tr> | 171 | <tr> |
| @@ -185,7 +185,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 185 | <td>Empty tensors are not supported.</td> | 185 | <td>Empty tensors are not supported.</td> |
| 186 | <td>FLOAT</td> | 186 | <td>FLOAT</td> |
| 187 | <td>ND</td> | 187 | <td>ND</td> |
| 188 | - <td>(batch_size, 3, gaussian_num)</td> | 188 | + <td>(batch_size, camera_num, 3, gaussian_num)</td> |
| 189 | <td>Yes</td> | 189 | <td>Yes</td> |
| 190 | </tr> | 190 | </tr> |
| 191 | <tr> | 191 | <tr> |
| @@ -195,7 +195,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 195 | <td>Empty tensors are not supported.</td> | 195 | <td>Empty tensors are not supported.</td> |
| 196 | <td>FLOAT</td> | 196 | <td>FLOAT</td> |
| 197 | <td>ND</td> | 197 | <td>ND</td> |
| 198 | - <td>(batch_size, gaussian_num)</td> | 198 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 199 | <td>Yes</td> | 199 | <td>Yes</td> |
| 200 | </tr> | 200 | </tr> |
| 201 | <tr> | 201 | <tr> |
| @@ -205,7 +205,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 205 | <td>Empty tensors are not supported.</td> | 205 | <td>Empty tensors are not supported.</td> |
| 206 | <td>UINT8</td> | 206 | <td>UINT8</td> |
| 207 | <td>ND</td> | 207 | <td>ND</td> |
| 208 | - <td>(batch_size, camera_num, gaussian_num)</td> | 208 | + <td>(batch_size, camera_num, ceil(gaussian_num/8))</td> |
| 209 | <td>Yes</td> | 209 | <td>Yes</td> |
| 210 | </tr> | 210 | </tr> |
| 211 | <tr> | 211 | <tr> |
| @@ -215,7 +215,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 215 | <td>Optional input, can pass nullptr.</td> | 215 | <td>Optional input, can pass nullptr.</td> |
| 216 | <td>FLOAT</td> | 216 | <td>FLOAT</td> |
| 217 | <td>ND</td> | 217 | <td>ND</td> |
| 218 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 218 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 219 | <td>Yes</td> | 219 | <td>Yes</td> |
| 220 | </tr> | 220 | </tr> |
| 221 | <tr> | 221 | <tr> |
| @@ -245,7 +245,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 245 | <td>Empty tensors are not supported.</td> | 245 | <td>Empty tensors are not supported.</td> |
| 246 | <td>FLOAT</td> | 246 | <td>FLOAT</td> |
| 247 | <td>ND</td> | 247 | <td>ND</td> |
| 248 | - <td>(batch_size, 3, gaussian_num)</td> | 248 | + <td>(batch_size, gaussian_num, 3)</td> |
| 249 | <td>Yes</td> | 249 | <td>Yes</td> |
| 250 | </tr> | 250 | </tr> |
| 251 | <tr> | 251 | <tr> |
| @@ -255,7 +255,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 255 | <td>Empty tensors are not supported.</td> | 255 | <td>Empty tensors are not supported.</td> |
| 256 | <td>FLOAT</td> | 256 | <td>FLOAT</td> |
| 257 | <td>ND</td> | 257 | <td>ND</td> |
| 258 | - <td>(batch_size, 4, gaussian_num)</td> | 258 | + <td>(batch_size, gaussian_num, 4)</td> |
| 259 | <td>Yes</td> | 259 | <td>Yes</td> |
| 260 | </tr> | 260 | </tr> |
| 261 | <tr> | 261 | <tr> |
| @@ -265,7 +265,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 265 | <td>Empty tensors are not supported.</td> | 265 | <td>Empty tensors are not supported.</td> |
| 266 | <td>FLOAT</td> | 266 | <td>FLOAT</td> |
| 267 | <td>ND</td> | 267 | <td>ND</td> |
| 268 | - <td>(batch_size, 3, gaussian_num)</td> | 268 | + <td>(batch_size, gaussian_num, 3)</td> |
| 269 | <td>Yes</td> | 269 | <td>Yes</td> |
| 270 | </tr> | 270 | </tr> |
| 271 | <tr> | 271 | <tr> |
| @@ -275,7 +275,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 275 | <td>Empty tensors are not supported.</td> | 275 | <td>Empty tensors are not supported.</td> |
| 276 | <td>FLOAT</td> | 276 | <td>FLOAT</td> |
| 277 | <td>ND</td> | 277 | <td>ND</td> |
| 278 | - <td>(batch_size, 3, 3, gaussian_num)</td> | 278 | + <td>(batch_size, camera_num, 3, 3)</td> |
| 279 | <td>Yes</td> | 279 | <td>Yes</td> |
| 280 | </tr> | 280 | </tr> |
| 281 | <tr> | 281 | <tr> |
| @@ -142,7 +142,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 142 | <td>Empty tensors are not supported.</td> | 142 | <td>Empty tensors are not supported.</td> |
| 143 | <td>FLOAT</td> | 143 | <td>FLOAT</td> |
| 144 | <td>ND</td> | 144 | <td>ND</td> |
| 145 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 145 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 146 | <td>Yes</td> | 146 | <td>Yes</td> |
| 147 | </tr> | 147 | </tr> |
| 148 | <tr> | 148 | <tr> |
| @@ -182,7 +182,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 182 | <td>Optional input, can pass nullptr.</td> | 182 | <td>Optional input, can pass nullptr.</td> |
| 183 | <td>FLOAT</td> | 183 | <td>FLOAT</td> |
| 184 | <td>ND</td> | 184 | <td>ND</td> |
| 185 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 185 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 186 | <td>Yes</td> | 186 | <td>Yes</td> |
| 187 | </tr> | 187 | </tr> |
| 188 | <tr> | 188 | <tr> |
| @@ -262,7 +262,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 262 | <td>Empty tensors are not supported.</td> | 262 | <td>Empty tensors are not supported.</td> |
| 263 | <td>FLOAT</td> | 263 | <td>FLOAT</td> |
| 264 | <td>ND</td> | 264 | <td>ND</td> |
| 265 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 265 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 266 | <td>Yes</td> | 266 | <td>Yes</td> |
| 267 | </tr> | 267 | </tr> |
| 268 | <tr> | 268 | <tr> |
| @@ -312,7 +312,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 312 | <td>Empty tensors are not supported.</td> | 312 | <td>Empty tensors are not supported.</td> |
| 313 | <td>UINT8</td> | 313 | <td>UINT8</td> |
| 314 | <td>ND</td> | 314 | <td>ND</td> |
| 315 | - <td>(batch_size, camera_num, gaussian_num)</td> | 315 | + <td>(batch_size, camera_num, ceil(gaussian_num/8))</td> |
| 316 | <td>Yes</td> | 316 | <td>Yes</td> |
| 317 | </tr> | 317 | </tr> |
| 318 | <tr> | 318 | <tr> |
| @@ -115,7 +115,7 @@ aclnnStatus aclnnGaussianSort( | |||
| 115 | <td>Empty tensors are not supported.</td> | 115 | <td>Empty tensors are not supported.</td> |
| 116 | <td>INT64</td> | 116 | <td>INT64</td> |
| 117 | <td>ND</td> | 117 | <td>ND</td> |
| 118 | - <td>(batch_size, camera_num, ...)</td> | 118 | + <td>(batch_size * camera_num)</td> |
| 119 | <td>Yes</td> | 119 | <td>Yes</td> |
| 120 | </tr> | 120 | </tr> |
| 121 | <tr> | 121 | <tr> |
| @@ -135,7 +135,7 @@ aclnnStatus aclnnGaussianSort( | |||
| 135 | <td>Empty tensors are not supported.</td> | 135 | <td>Empty tensors are not supported.</td> |
| 136 | <td>INT32</td> | 136 | <td>INT32</td> |
| 137 | <td>ND</td> | 137 | <td>ND</td> |
| 138 | - <td>(batch_size, camera_num, ...)</td> | 138 | + <td>(totalGauss)</td> |
| 139 | <td>Yes</td> | 139 | <td>Yes</td> |
| 140 | </tr> | 140 | </tr> |
| 141 | <tr> | 141 | <tr> |
| @@ -101,7 +101,7 @@ aclnnStatus aclnnSphericalHarmonicsBwd( | |||
| 101 | <td>degree</td> | 101 | <td>degree</td> |
| 102 | <td>Input</td> | 102 | <td>Input</td> |
| 103 | <td>Spherical harmonics degree used.</td> | 103 | <td>Spherical harmonics degree used.</td> |
| 104 | - <td>Supports 0 to 3.</td> | 104 | + <td>Supports 0 to 4.</td> |
| 105 | <td>INT64</td> | 105 | <td>INT64</td> |
| 106 | <td>-</td> | 106 | <td>-</td> |
| 107 | <td>-</td> | 107 | <td>-</td> |
| @@ -170,7 +170,7 @@ aclnnStatus aclnnSphericalHarmonicsBwd( | |||
| 170 | <tr> | 170 | <tr> |
| 171 | <td>ACLNN_ERR_PARAM_INVALID</td> | 171 | <td>ACLNN_ERR_PARAM_INVALID</td> |
| 172 | <td>161002</td> | 172 | <td>161002</td> |
| 173 | - <td>The data types and formats of dirs, coeffs, vColors, vDirs, and vCoeffs are not within the supported range, or degree is not within the range of 0 to 3.</td> | 173 | + <td>The data types and formats of dirs, coeffs, vColors, vDirs, and vCoeffs are not within the supported range, or degree is not within the range of 0 to 4.</td> |
| 174 | </tr> | 174 | </tr> |
| 175 | </tbody> | 175 | </tbody> |
| 176 | </table> | 176 | </table> |
| @@ -38,12 +38,12 @@ | |||
| 38 | 38 | ||
| 39 | **返回值**: | 39 | **返回值**: |
| 40 | 40 | ||
| 41 | -- `render_colors` (Tensor): 渲染的颜色图像,形状 (C, 3, H, W) | 41 | +- `render_colors` (Tensor): 渲染的颜色图像,形状 (C, H, W, 3) |
| 42 | -- `render_depth` (Tensor): 渲染的深度图像,形状 (C, 1, H, W) | 42 | +- `render_depth` (Tensor): 渲染的深度图像,形状 (C, H, W, 1) |
| 43 | - `info` (dict): 元数据字典,包含: | 43 | - `info` (dict): 元数据字典,包含: |
| 44 | - `gaussian_ids`: 高斯点ID(当前为None) | 44 | - `gaussian_ids`: 高斯点ID(当前为None) |
| 45 | - - `means2d`: 2D投影坐标 | 45 | + - `means2d`: 2D投影坐标,形状 (B, C, 2, N) |
| 46 | - - `radii`: 投影半径 | 46 | + - `radii`: 投影半径,形状 (B, C, 2, N) |
| 47 | - `width`: 图像宽度 | 47 | - `width`: 图像宽度 |
| 48 | - `height`: 图像高度 | 48 | - `height`: 图像高度 |
| 49 | - `n_cameras`: 相机数量 | 49 | - `n_cameras`: 相机数量 |
| @@ -73,7 +73,7 @@ render_colors, render_depth, info = rasterizer.rasterization( | |||
| 73 | **参数**: | 73 | **参数**: |
| 74 | 74 | ||
| 75 | - `means` (Tensor): 高斯中心位置,形状 (B, N, 3) | 75 | - `means` (Tensor): 高斯中心位置,形状 (B, N, 3) |
| 76 | -- `colors` (Tensor): 颜色值,形状 (B, N, 3) 或 (B, C, N, 3) | 76 | +- `colors` (Tensor): 颜色值,形状 (B, 3, N) |
| 77 | - `covars` (Tensor, optional): 协方差矩阵,形状 (B, N, 3, 3)。与quat/scales互斥 | 77 | - `covars` (Tensor, optional): 协方差矩阵,形状 (B, N, 3, 3)。与quat/scales互斥 |
| 78 | - `quat` (Tensor, optional): 四元数表示旋转,形状 (B, N, 4)。与covars互斥 | 78 | - `quat` (Tensor, optional): 四元数表示旋转,形状 (B, N, 4)。与covars互斥 |
| 79 | - `scales` (Tensor, optional): 缩放参数,形状 (B, N, 3)。与quat一起使用 | 79 | - `scales` (Tensor, optional): 缩放参数,形状 (B, N, 3)。与quat一起使用 |
| @@ -90,14 +90,14 @@ render_colors, render_depth, info = rasterizer.rasterization( | |||
| 90 | 90 | ||
| 91 | **返回值**: | 91 | **返回值**: |
| 92 | 92 | ||
| 93 | -- `means2d` (Tensor): 2D投影坐标,形状 (B, C, N, 2) | 93 | +- `means2d` (Tensor): 2D投影坐标,形状 (B, C, 2, N) |
| 94 | - `depths` (Tensor): 深度值,形状 (B, C, N) | 94 | - `depths` (Tensor): 深度值,形状 (B, C, N) |
| 95 | -- `conics` (Tensor): 2D协方差逆矩阵(锥形参数),形状 (B, C, N, 3) | 95 | +- `conics` (Tensor): 2D协方差逆矩阵(锥形参数),形状 (B, C, 3, N) |
| 96 | - `opacities` (Tensor): 过滤后的不透明度,形状 (B, C, N) | 96 | - `opacities` (Tensor): 过滤后的不透明度,形状 (B, C, N) |
| 97 | -- `radius` (Tensor): 投影半径,形状 (B, C, N) | 97 | +- `radius` (Tensor): 投影半径,形状 (B, C, 2, N) |
| 98 | -- `covars2d` (Tensor): 2D协方差矩阵,形状 (B, C, N, 2, 2) | 98 | +- `covars2d` (Tensor): 2D协方差矩阵,形状 (B, C, 3, N) |
| 99 | -- `colors` (Tensor): 过滤后的颜色,形状 (B, C, N, 3) | 99 | +- `colors` (Tensor): 过滤后的颜色,形状 (B, C, 3, N) |
| 100 | -- `cnt` (Tensor): 有效高斯点数量 | 100 | +- `cnt` (Tensor): 有效高斯点数量, 形状 (B, C) |
| 101 | 101 | ||
| 102 | **示例**: | 102 | **示例**: |
| 103 | 103 | ||
| @@ -133,17 +133,17 @@ means2d, depths, conics, opacities, radius, covars2d, colors, cnt = \ | |||
| 133 | - `opacities` (Tensor): 不透明度,形状 (1, N) | 133 | - `opacities` (Tensor): 不透明度,形状 (1, N) |
| 134 | - `colors` (Tensor): 颜色,形状 (3, N) | 134 | - `colors` (Tensor): 颜色,形状 (3, N) |
| 135 | - `depths` (Tensor, optional): 深度值,形状 (1, N)。如为None则不渲染深度 | 135 | - `depths` (Tensor, optional): 深度值,形状 (1, N)。如为None则不渲染深度 |
| 136 | -- `tile_coords` (Tensor): 分块坐标 | 136 | +- `tile_coords` (Tensor): 分块坐标,形状 (tileNum, 2, nPixel) |
| 137 | -- `offsets` (Tensor): 偏移量 | 137 | +- `offsets` (Tensor): 偏移量,形状 (vectorCnt + (TileNum * 2)) |
| 138 | -- `sorted_gs_ids` (Tensor): 排序后的高斯点ID | 138 | +- `sorted_gs_ids` (Tensor): 排序后的高斯点ID,形状 (totalGauss) |
| 139 | 139 | ||
| 140 | **返回值**: | 140 | **返回值**: |
| 141 | 141 | ||
| 142 | - 如果提供`depths`: | 142 | - 如果提供`depths`: |
| 143 | - - `color` (Tensor): 渲染的颜色图像 | 143 | + - `color` (Tensor): 渲染的颜色图像,形状 (3, tileNum, nPixel) |
| 144 | - - `depth` (Tensor): 渲染的深度图像 | 144 | + - `depth` (Tensor): 渲染的深度图像,形状 (1, tileNum, nPixel) |
| 145 | - 如果不提供`depths`: | 145 | - 如果不提供`depths`: |
| 146 | - - `color` (Tensor): 渲染的颜色图像 | 146 | + - `color` (Tensor): 渲染的颜色图像,形状 (3, tileNum, nPixel) |
| 147 | 147 | ||
| 148 | **示例**: | 148 | **示例**: |
| 149 | 149 | ||
| @@ -178,7 +178,7 @@ render_colors, render_depths = gauss_splat.calc_render( | |||
| 178 | 178 | ||
| 179 | **返回值**: | 179 | **返回值**: |
| 180 | 180 | ||
| 181 | -- `output` (Tensor): 计算得到的颜色值,形状 (B, N, 3) | 181 | +- `output` (Tensor): 计算得到的颜色值,形状 (B, 3, N) |
| 182 | 182 | ||
| 183 | **示例**: | 183 | **示例**: |
| 184 | 184 | ||
| @@ -200,16 +200,16 @@ colors = gauss_splat.spherical_harmonics( | |||
| 200 | 200 | ||
| 201 | **参数**: | 201 | **参数**: |
| 202 | 202 | ||
| 203 | -- `lb_sched` (Tensor): 负载均衡调度张量 | 203 | +- `lb_sched` (Tensor): 负载均衡调度张量,形状 (B, C, schedule_num) |
| 204 | -- `gaussian_cnt` (Tensor): 每个tile的高斯点计数 | 204 | +- `gaussian_cnt` (Tensor): 每个tile的高斯点计数,形状 (B, C, tile_num, 1) |
| 205 | -- `depths` (Tensor): 深度值 | 205 | +- `depths` (Tensor): 深度值,形状 (B, C, tile_num, N) |
| 206 | -- `gs_ids` (Tensor): 高斯点ID | 206 | +- `gs_ids` (Tensor): 高斯点ID,形状 (B, C, tile_num, N) |
| 207 | -- `sorted_offset` (Tensor): 排序偏移量 | 207 | +- `sorted_offset` (Tensor): 排序偏移量,形状 (B*C) |
| 208 | - `max_tile_gauss` (int): 单个tile最大高斯点数 | 208 | - `max_tile_gauss` (int): 单个tile最大高斯点数 |
| 209 | 209 | ||
| 210 | **返回值**: | 210 | **返回值**: |
| 211 | 211 | ||
| 212 | -- `sorted_gs_ids` (Tensor): 排序后的高斯点ID | 212 | +- `sorted_gs_ids` (Tensor): 排序后的高斯点ID,一维展平张量,形状 (totalGauss) |
| 213 | 213 | ||
| 214 | **示例**: | 214 | **示例**: |
| 215 | 215 | ||
| @@ -234,11 +234,11 @@ sorted_gs_ids = gauss_splat.gaussian_sort( | |||
| 234 | 234 | ||
| 235 | **参数**: | 235 | **参数**: |
| 236 | 236 | ||
| 237 | -- `means2d` (Tensor): 2D投影坐标,形状 (B, C, N, 2) | 237 | +- `means2d` (Tensor): 2D投影坐标,形状 (B, C, 2, N) |
| 238 | -- `opacity` (Tensor): 不透明度,形状 (B, C, N) | 238 | +- `opacity` (Tensor): 不透明度,形状 (B, C, 1, N) |
| 239 | -- `conics` (Tensor): 协方差逆矩阵,形状 (B, C, N, 3) | 239 | +- `conics` (Tensor): 协方差逆矩阵,形状 (B, C, 3, N) |
| 240 | -- `covars2d` (Tensor): 2D协方差矩阵,形状 (B, C, N, 2, 2) | 240 | +- `covars2d` (Tensor): 2D协方差矩阵,形状 (B, C, 3, N) |
| 241 | -- `depths` (Tensor): 深度值,形状 (B, C, N) | 241 | +- `depths` (Tensor): 深度值,形状 (B, C, 1, N) |
| 242 | - `cnt` (Tensor): 有效高斯点计数,形状 (B, C) | 242 | - `cnt` (Tensor): 有效高斯点计数,形状 (B, C) |
| 243 | - `tile_grid` (Tensor): tile网格坐标 | 243 | - `tile_grid` (Tensor): tile网格坐标 |
| 244 | - `image_width` (int): 图像宽度 | 244 | - `image_width` (int): 图像宽度 |
| @@ -247,10 +247,10 @@ sorted_gs_ids = gauss_splat.gaussian_sort( | |||
| 247 | 247 | ||
| 248 | **返回值**: | 248 | **返回值**: |
| 249 | 249 | ||
| 250 | -- `tile_sum` (Tensor): 每个tile的高斯点和 | 250 | +- `tile_sum` (Tensor): 每个tile的高斯点和,形状(B, C, tile_num, 1) |
| 251 | -- `tile_offset` (Tensor): tile偏移量 | 251 | +- `tile_offset` (Tensor): tile偏移量,形状(B, C, tile_num, 1) |
| 252 | -- `tile_depths` (Tensor): tile深度 | 252 | +- `tile_depths` (Tensor): tile深度,形状(B, C, tile_num, N) |
| 253 | -- `gauss_index` (Tensor): 高斯点索引 | 253 | +- `gauss_index` (Tensor): 高斯点索引,形状(B, C, tile_num, N) |
| 254 | 254 | ||
| 255 | **示例**: | 255 | **示例**: |
| 256 | 256 | ||
| @@ -280,16 +280,16 @@ tile_sums, tile_offsets, tile_depths, tile_gauss_ids = \ | |||
| 280 | 280 | ||
| 281 | **参数**: | 281 | **参数**: |
| 282 | 282 | ||
| 283 | -- `means` (Tensor): 3D高斯中心位置 | 283 | +- `means` (Tensor): 3D高斯中心位置,形状 (B, 3, N) |
| 284 | -- `colors` (Tensor): 颜色值 | 284 | +- `colors` (Tensor): 颜色值,形状 (B, 3, N) |
| 285 | -- `det` (Tensor): 协方差行列式 | 285 | +- `det` (Tensor): 协方差行列式,形状 (B, C, N) |
| 286 | -- `opacities` (Tensor): 不透明度 | 286 | +- `opacities` (Tensor): 不透明度,形状 (B, N) |
| 287 | -- `means2d` (Tensor): 2D投影坐标 | 287 | +- `means2d` (Tensor): 2D投影坐标,形状 (B, C, 2, N) |
| 288 | -- `depths` (Tensor): 深度值 | 288 | +- `depths` (Tensor): 深度值,形状 (B, C, N) |
| 289 | -- `radius` (Tensor): 投影半径 | 289 | +- `radius` (Tensor): 投影半径,形状 (B, C, 2, N) |
| 290 | -- `conics` (Tensor): 协方差逆矩阵 | 290 | +- `conics` (Tensor): 协方差逆矩阵,形状 (B, C, 3, N) |
| 291 | -- `covars2d` (Tensor): 2D协方差矩阵 | 291 | +- `covars2d` (Tensor): 2D协方差矩阵,形状 (B, C, 3, N) |
| 292 | -- `compensations` (Tensor, optional): 补偿因子 | 292 | +- `compensations` (Tensor, optional): 补偿因子,形状 (B, C, N) |
| 293 | - `width` (int): 图像宽度 | 293 | - `width` (int): 图像宽度 |
| 294 | - `height` (int): 图像高度 | 294 | - `height` (int): 图像高度 |
| 295 | - `near_plane` (float): 近平面距离 | 295 | - `near_plane` (float): 近平面距离 |
| @@ -297,16 +297,16 @@ tile_sums, tile_offsets, tile_depths, tile_gauss_ids = \ | |||
| 297 | 297 | ||
| 298 | **返回值**: | 298 | **返回值**: |
| 299 | 299 | ||
| 300 | -- `means_culling`: 过滤后的3D坐标 | 300 | +- `means_culling`: 过滤后的3D坐标,形状 (B, C, 3, N) |
| 301 | -- `colors_culling`: 过滤后的颜色 | 301 | +- `colors_culling`: 过滤后的颜色,形状 (B, C, 3, N) |
| 302 | -- `means2d_culling`: 过滤后的2D坐标 | 302 | +- `means2d_culling`: 过滤后的2D坐标,形状 (B, C, 2, N) |
| 303 | -- `depths_culling`: 过滤后的深度 | 303 | +- `depths_culling`: 过滤后的深度,形状 (B, C, N) |
| 304 | -- `radius_culling`: 过滤后的半径 | 304 | +- `radius_culling`: 过滤后的半径,形状 (B, C, 2, N) |
| 305 | -- `covars2d_culling`: 过滤后的2D协方差 | 305 | +- `covars2d_culling`: 过滤后的2D协方差,形状 (B, C, 3, N) |
| 306 | -- `conics_culling`: 过滤后的协方差逆矩阵 | 306 | +- `conics_culling`: 过滤后的协方差逆矩阵,形状 (B, C, 3, N) |
| 307 | -- `opacities_culling`: 过滤后的不透明度 | 307 | +- `opacities_culling`: 过滤后的不透明度,形状 (B, C, N) |
| 308 | -- `proj_filter`: 投影过滤器 | 308 | +- `proj_filter`: 投影过滤器,形状 (B, C, ceil(N/8)) |
| 309 | -- `cnt`: 有效点数量 | 309 | +- `cnt`: 有效点数量,形状 (B, C) |
| 310 | 310 | ||
| 311 | --- | 311 | --- |
| 312 | 312 | ||
| @@ -318,12 +318,12 @@ tile_sums, tile_offsets, tile_depths, tile_gauss_ids = \ | |||
| 318 | 318 | ||
| 319 | **参数**: | 319 | **参数**: |
| 320 | 320 | ||
| 321 | -- `nums_tensor` (Tensor): 每个tile的高斯点数量 | 321 | +- `nums_tensor` (Tensor): 每个tile的高斯点数量,形状 (B, C, T) |
| 322 | - `num_bins` (int): 分箱数量(向量处理器数量) | 322 | - `num_bins` (int): 分箱数量(向量处理器数量) |
| 323 | 323 | ||
| 324 | **返回值**: | 324 | **返回值**: |
| 325 | 325 | ||
| 326 | -- `lb_sched_tensor` (Tensor): 负载均衡调度张量 | 326 | +- `lb_sched_tensor` (Tensor): 负载均衡调度张量,形状 (B, C, M) |
| 327 | 327 | ||
| 328 | **示例**: | 328 | **示例**: |
| 329 | 329 | ||
| @@ -408,8 +408,8 @@ render_colors, render_depths, info = rasterizer.rasterization( | |||
| 408 | camera_model="pinhole" | 408 | camera_model="pinhole" |
| 409 | ) | 409 | ) |
| 410 | 410 | ||
| 411 | -print(f"渲染颜色形状: {render_colors.shape}") # (1, 3, 1080, 1920) | 411 | +print(f"渲染颜色形状: {render_colors.shape}") # (1, 1080, 1920, 3) |
| 412 | -print(f"渲染深度形状: {render_depths.shape}") # (1, 1, 1080, 1920) | 412 | +print(f"渲染深度形状: {render_depths.shape}") # (1, 1080, 1920, 1) |
| 413 | ``` | 413 | ``` |
| 414 | 414 | ||
| 415 | --- | 415 | --- |
| @@ -148,7 +148,7 @@ aclnnStatus aclnnCalcRenderBwdVarClipGsids( | |||
| 148 | <td>不支持空tensor。</td> | 148 | <td>不支持空tensor。</td> |
| 149 | <td>INT64</td> | 149 | <td>INT64</td> |
| 150 | <td>ND</td> | 150 | <td>ND</td> |
| 151 | - <td>(totalGauss)</td> | 151 | + <td>(tileNum + totalGauss)</td> |
| 152 | <td>√</td> | 152 | <td>√</td> |
| 153 | </tr> | 153 | </tr> |
| 154 | <tr> | 154 | <tr> |
| @@ -158,7 +158,7 @@ aclnnStatus aclnnCalcRenderBwdVarClipGsids( | |||
| 158 | <td>不支持空tensor。</td> | 158 | <td>不支持空tensor。</td> |
| 159 | <td>UINT8</td> | 159 | <td>UINT8</td> |
| 160 | <td>ND</td> | 160 | <td>ND</td> |
| 161 | - <td>(nPixel)</td> | 161 | + <td>(totalGauss, 2)</td> |
| 162 | <td>√</td> | 162 | <td>√</td> |
| 163 | </tr> | 163 | </tr> |
| 164 | <tr> | 164 | <tr> |
| @@ -135,7 +135,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 135 | <td>不支持空tensor。</td> | 135 | <td>不支持空tensor。</td> |
| 136 | <td>FLOAT</td> | 136 | <td>FLOAT</td> |
| 137 | <td>ND</td> | 137 | <td>ND</td> |
| 138 | - <td>(camera_num, 4, 4)</td> | 138 | + <td>(batch_size, camera_num, 4, 4)</td> |
| 139 | <td>√</td> | 139 | <td>√</td> |
| 140 | </tr> | 140 | </tr> |
| 141 | <tr> | 141 | <tr> |
| @@ -145,7 +145,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 145 | <td>不支持空tensor。</td> | 145 | <td>不支持空tensor。</td> |
| 146 | <td>FLOAT</td> | 146 | <td>FLOAT</td> |
| 147 | <td>ND</td> | 147 | <td>ND</td> |
| 148 | - <td>(camera_num, 3, 3)</td> | 148 | + <td>(batch_size, camera_num, 3, 3)</td> |
| 149 | <td>√</td> | 149 | <td>√</td> |
| 150 | </tr> | 150 | </tr> |
| 151 | <tr> | 151 | <tr> |
| @@ -165,7 +165,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 165 | <td>不支持空tensor。</td> | 165 | <td>不支持空tensor。</td> |
| 166 | <td>FLOAT</td> | 166 | <td>FLOAT</td> |
| 167 | <td>ND</td> | 167 | <td>ND</td> |
| 168 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 168 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 169 | <td>√</td> | 169 | <td>√</td> |
| 170 | </tr> | 170 | </tr> |
| 171 | <tr> | 171 | <tr> |
| @@ -185,7 +185,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 185 | <td>不支持空tensor。</td> | 185 | <td>不支持空tensor。</td> |
| 186 | <td>FLOAT</td> | 186 | <td>FLOAT</td> |
| 187 | <td>ND</td> | 187 | <td>ND</td> |
| 188 | - <td>(batch_size, 3, gaussian_num)</td> | 188 | + <td>(batch_size, camera_num, 3, gaussian_num)</td> |
| 189 | <td>√</td> | 189 | <td>√</td> |
| 190 | </tr> | 190 | </tr> |
| 191 | <tr> | 191 | <tr> |
| @@ -195,7 +195,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 195 | <td>不支持空tensor。</td> | 195 | <td>不支持空tensor。</td> |
| 196 | <td>FLOAT</td> | 196 | <td>FLOAT</td> |
| 197 | <td>ND</td> | 197 | <td>ND</td> |
| 198 | - <td>(batch_size, gaussian_num)</td> | 198 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 199 | <td>√</td> | 199 | <td>√</td> |
| 200 | </tr> | 200 | </tr> |
| 201 | <tr> | 201 | <tr> |
| @@ -205,7 +205,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 205 | <td>不支持空tensor。</td> | 205 | <td>不支持空tensor。</td> |
| 206 | <td>UINT8</td> | 206 | <td>UINT8</td> |
| 207 | <td>ND</td> | 207 | <td>ND</td> |
| 208 | - <td>(batch_size, camera_num, gaussian_num)</td> | 208 | + <td>(batch_size, camera_num, ceil(gaussian_num/8))</td> |
| 209 | <td>√</td> | 209 | <td>√</td> |
| 210 | </tr> | 210 | </tr> |
| 211 | <tr> | 211 | <tr> |
| @@ -215,7 +215,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 215 | <td>可选输入,可传入nullptr。</td> | 215 | <td>可选输入,可传入nullptr。</td> |
| 216 | <td>FLOAT</td> | 216 | <td>FLOAT</td> |
| 217 | <td>ND</td> | 217 | <td>ND</td> |
| 218 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 218 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 219 | <td>√</td> | 219 | <td>√</td> |
| 220 | </tr> | 220 | </tr> |
| 221 | <tr> | 221 | <tr> |
| @@ -245,7 +245,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 245 | <td>不支持空tensor。</td> | 245 | <td>不支持空tensor。</td> |
| 246 | <td>FLOAT</td> | 246 | <td>FLOAT</td> |
| 247 | <td>ND</td> | 247 | <td>ND</td> |
| 248 | - <td>(batch_size, 3, gaussian_num)</td> | 248 | + <td>(batch_size, gaussian_num, 3)</td> |
| 249 | <td>√</td> | 249 | <td>√</td> |
| 250 | </tr> | 250 | </tr> |
| 251 | <tr> | 251 | <tr> |
| @@ -255,7 +255,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 255 | <td>不支持空tensor。</td> | 255 | <td>不支持空tensor。</td> |
| 256 | <td>FLOAT</td> | 256 | <td>FLOAT</td> |
| 257 | <td>ND</td> | 257 | <td>ND</td> |
| 258 | - <td>(batch_size, 4, gaussian_num)</td> | 258 | + <td>(batch_size, gaussian_num, 4)</td> |
| 259 | <td>√</td> | 259 | <td>√</td> |
| 260 | </tr> | 260 | </tr> |
| 261 | <tr> | 261 | <tr> |
| @@ -265,7 +265,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 265 | <td>不支持空tensor。</td> | 265 | <td>不支持空tensor。</td> |
| 266 | <td>FLOAT</td> | 266 | <td>FLOAT</td> |
| 267 | <td>ND</td> | 267 | <td>ND</td> |
| 268 | - <td>(batch_size, 3, gaussian_num)</td> | 268 | + <td>(batch_size, gaussian_num, 3)</td> |
| 269 | <td>√</td> | 269 | <td>√</td> |
| 270 | </tr> | 270 | </tr> |
| 271 | <tr> | 271 | <tr> |
| @@ -275,7 +275,7 @@ aclnnStatus aclnnFullyFusedProjectionBwd( | |||
| 275 | <td>不支持空tensor。</td> | 275 | <td>不支持空tensor。</td> |
| 276 | <td>FLOAT</td> | 276 | <td>FLOAT</td> |
| 277 | <td>ND</td> | 277 | <td>ND</td> |
| 278 | - <td>(batch_size, 3, 3, gaussian_num)</td> | 278 | + <td>(batch_size, camera_num, 3, 3)</td> |
| 279 | <td>√</td> | 279 | <td>√</td> |
| 280 | </tr> | 280 | </tr> |
| 281 | <tr> | 281 | <tr> |
| @@ -142,7 +142,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 142 | <td>不支持空tensor。</td> | 142 | <td>不支持空tensor。</td> |
| 143 | <td>FLOAT</td> | 143 | <td>FLOAT</td> |
| 144 | <td>ND</td> | 144 | <td>ND</td> |
| 145 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 145 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 146 | <td>√</td> | 146 | <td>√</td> |
| 147 | </tr> | 147 | </tr> |
| 148 | <tr> | 148 | <tr> |
| @@ -182,7 +182,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 182 | <td>可选输入,可传入nullptr。</td> | 182 | <td>可选输入,可传入nullptr。</td> |
| 183 | <td>FLOAT</td> | 183 | <td>FLOAT</td> |
| 184 | <td>ND</td> | 184 | <td>ND</td> |
| 185 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 185 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 186 | <td>√</td> | 186 | <td>√</td> |
| 187 | </tr> | 187 | </tr> |
| 188 | <tr> | 188 | <tr> |
| @@ -262,7 +262,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 262 | <td>不支持空tensor。</td> | 262 | <td>不支持空tensor。</td> |
| 263 | <td>FLOAT</td> | 263 | <td>FLOAT</td> |
| 264 | <td>ND</td> | 264 | <td>ND</td> |
| 265 | - <td>(batch_size, camera_num, 1, gaussian_num)</td> | 265 | + <td>(batch_size, camera_num, gaussian_num)</td> |
| 266 | <td>√</td> | 266 | <td>√</td> |
| 267 | </tr> | 267 | </tr> |
| 268 | <tr> | 268 | <tr> |
| @@ -312,7 +312,7 @@ aclnnStatus aclnnGaussianFilter( | |||
| 312 | <td>不支持空tensor。</td> | 312 | <td>不支持空tensor。</td> |
| 313 | <td>UINT8</td> | 313 | <td>UINT8</td> |
| 314 | <td>ND</td> | 314 | <td>ND</td> |
| 315 | - <td>(batch_size, camera_num, gaussian_num)</td> | 315 | + <td>(batch_size, camera_num, ceil(gaussian_num/8))</td> |
| 316 | <td>√</td> | 316 | <td>√</td> |
| 317 | </tr> | 317 | </tr> |
| 318 | <tr> | 318 | <tr> |
| @@ -115,7 +115,7 @@ aclnnStatus aclnnGaussianSort( | |||
| 115 | <td>不支持空tensor。</td> | 115 | <td>不支持空tensor。</td> |
| 116 | <td>INT64</td> | 116 | <td>INT64</td> |
| 117 | <td>ND</td> | 117 | <td>ND</td> |
| 118 | - <td>(batch_size, camera_num, ...)</td> | 118 | + <td>(batch_size * camera_num)</td> |
| 119 | <td>√</td> | 119 | <td>√</td> |
| 120 | </tr> | 120 | </tr> |
| 121 | <tr> | 121 | <tr> |
| @@ -135,7 +135,7 @@ aclnnStatus aclnnGaussianSort( | |||
| 135 | <td>不支持空tensor。</td> | 135 | <td>不支持空tensor。</td> |
| 136 | <td>INT32</td> | 136 | <td>INT32</td> |
| 137 | <td>ND</td> | 137 | <td>ND</td> |
| 138 | - <td>(batch_size, camera_num, ...)</td> | 138 | + <td>(totalGauss)</td> |
| 139 | <td>√</td> | 139 | <td>√</td> |
| 140 | </tr> | 140 | </tr> |
| 141 | <tr> | 141 | <tr> |
| @@ -101,7 +101,7 @@ aclnnStatus aclnnSphericalHarmonicsBwd( | |||
| 101 | <td>degree</td> | 101 | <td>degree</td> |
| 102 | <td>输入</td> | 102 | <td>输入</td> |
| 103 | <td>使用的球谐阶数。</td> | 103 | <td>使用的球谐阶数。</td> |
| 104 | - <td>支持0~3。</td> | 104 | + <td>支持0~4。</td> |
| 105 | <td>INT64</td> | 105 | <td>INT64</td> |
| 106 | <td>-</td> | 106 | <td>-</td> |
| 107 | <td>-</td> | 107 | <td>-</td> |
| @@ -170,7 +170,7 @@ aclnnStatus aclnnSphericalHarmonicsBwd( | |||
| 170 | <tr> | 170 | <tr> |
| 171 | <td>ACLNN_ERR_PARAM_INVALID</td> | 171 | <td>ACLNN_ERR_PARAM_INVALID</td> |
| 172 | <td>161002</td> | 172 | <td>161002</td> |
| 173 | - <td>dirs、coeffs、vColors、vDirs、vCoeffs的数据类型和数据格式不在支持的范围内,或degree不在0~3范围内。</td> | 173 | + <td>dirs、coeffs、vColors、vDirs、vCoeffs的数据类型和数据格式不在支持的范围内,或degree不在0~4范围内。</td> |
| 174 | </tr> | 174 | </tr> |
| 175 | </tbody> | 175 | </tbody> |
| 176 | </table> | 176 | </table> |