Более быстрая вокселизация с обратными индексамиPython

Программы на Python
Anonymous
Более быстрая вокселизация с обратными индексами

Сообщение Anonymous »

Я использую следующий фрагмент кода для получения вокселизированного облака точек с обратными индексами, чтобы можно было вычислить, например, замаскируйте облако точек с пониженной дискретизацией, а затем примените ее к исходному облаку точек, получив исходные точки через обратные индексы.

Код: Выделить всё

def voxelize(points, voxel_size):
voxel_indices = np.floor(points / voxel_size).astype(np.int32)
unique_voxel_indices, inverse_indices = np.unique(
voxel_indices, axis=0, return_inverse=True
)
voxel_centers = (unique_voxel_indices + 0.5) * voxel_size
return voxel_indices, unique_voxel_indices, voxel_centers, inverse_indices
Однако этот код становится для меня узким местом, поскольку он выполняется тысячи раз.
Похожие вопросы, которые я нашел, предложило решение, чтобы ускорить это но без обратных индексов. В Numba также не реализована эта версия np.unique. Есть ли какой-либо метод, который мне не хватает, который значительно быстрее, но также обеспечивает расчет индексов.

Подробнее здесь: https://stackoverflow.com/questions/790 ... se-indices

Вернуться в «Python»