Фильтрация выбросов PCL Огромная разница в производительности Ubuntu против Windows - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь отфильтровать облако точек с 1 600 000 точек, используя pcl :: RadiusOutlier из библиотеки PCL 1.8.1.

Код выглядит следующим образом:

    pcl::RadiusOutlierRemoval<pcl::PointXYZ> 
    radius_outlier_removal;
    radius_outlier_removal.setInputCloud(inCloud);
    radius_outlier_removal.setRadiusSearch(radius); 
    radius_outlier_removal.setMinNeighborsInRadius(requiredNeighbours);

    high_resolution_clock::time_point t1 = high_resolution_clock::now();
    radius_outlier_removal.filter(*result);
    high_resolution_clock::time_point t2 = high_resolution_clock::now();
    auto duration = duration_cast<seconds>(t2 - t1).count();
    cout << "Filtering took " << duration << " seconds." << endl;

Вывод в Microsoft Visual Studio (режим отладки) с включенной поддержкой Open MP.

Filtering took 208 seconds.

Вывод Ubuntu 18.04, также с встроенным режимом отладки, та же версия библиотеки, что и в Windows:

Filtering took 4 seconds.

Я искал другие темы и любую документацию о том, почему производительность может быть такой разной, но ничего не смог найти. Максимум, что я мог найти, - это убедиться, что OpenMP включен при компиляции, что я обязательно включил в Visual Studio.

Буду признателен за любые указания на то, почему Windows работает так медленно и как повысить ее производительность.

...