Почему моя функция зависает при использовании многопроцессорной обработки в Python с Open3D?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему моя функция зависает при использовании многопроцессорной обработки в Python с Open3D?

Сообщение Anonymous »

Я пытаюсь использовать модуль multiprocessing в Python для запуска функции, которая обрабатывает облака точек с помощью библиотеки Open3D. Однако когда я пытаюсь запустить эту функцию в отдельном процессе, она зависает и не завершается.
Вот упрощенная версия моего кода:

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

import multiprocessing
import numpy as np
import open3d as o3d

def foo():
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(np.array([[0, 0, 0], [1, 1, 1], [2, 2, 2]]))
pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30))
print("normal", np.asarray(pcd.normals))

if __name__ == '__main__':
print("RUN foo")
foo()

print("RUN foo with multiprocessing")
p = multiprocessing.Process(target=foo)
p.start()
p.join()
Когда я запускаю код, функция foo() выполняется правильно при прямом вызове, но когда я пытаюсь запустить ее с многопроцессорной обработкой, она зависает после запуска процесса.

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

**Versions**:
- numpy==1.24.2
- open3d==0.18.0
- python==3.10.15

Я не смог найти решения, поэтому пришел сюда.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ith-open3d
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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