Downsample

웹 세미나 Getting your point cloud ready for your application 에서는 Downsample을 부분적으로 다룹니다.

Introduction

이 기사에서는 다운샘플링의 개념을 소개하고 그것이 가치 있는 이유를 설명하며 Zivid 포인트 클라우드를 다운샘플링하는 방법을 보여줍니다.

Zivid 3 cameras use a sensor with 8 MP (2816 x 2816) to capture point clouds of a scene. The point cloud consists of XYZ (3D), RGB (color), and SNR data. The generated point cloud consists of 8 million points.

Zivid 2+ 카메라는 5 MP (2448 x 2048) 센서를 사용하여 장면의 포인트 클라우드를 캡처합니다. 포인트 클라우드는 XYZ(3D), RGB(색상) 및 SNR 데이터로 구성됩니다. 생성된 포인트 클라우드는 5백만 개의 포인트로 구성됩니다.

Zivid 2 카메라는 2.3 MP (1944 x 1200) 센서를 사용하여 장면의 포인트 클라우드를 캡처합니다. 포인트 클라우드는 XYZ(3D), RGB(색상) 및 SNR 데이터로 구성됩니다. 생성된 포인트 클라우드는 230만 포인트로 구성되어 있습니다.

일부 애플리케이션에는 고밀도 포인트 클라우드 데이터가 필요하지 않습니다. 예를 들어 상자 표면에 평면을 맞추는 상자 감지와 물체가 뚜렷하고 쉽게 식별할 수 있는 기능이 있는 CAD 일치가 있습니다. 또한 이 데이터 양은 머신 비전 알고리즘이 애플리케이션에 필요한 속도로 처리하기에는 너무 큰 경우가 많습니다. 포인트 클라우드 다운샘플링이 작동하는 애플리케이션입니다.

포인트 클라우드 컨텍스트의 다운샘플링은 동일한 3D 표현을 유지하면서 공간 해상도를 줄이는 것입니다. 일반적으로 데이터를 관리하기 쉬운 크기로 변환하여 저장 및 처리 요구 사항을 줄이는 데 사용됩니다.

Zivid SDK를 사용하여 포인트 클라우드를 다운샘플링하는 방법에는 두 가지가 있습니다.

  1. Settings::Processing::Resampling (Resampling) 을 통해 제어됩니다. 즉, 캡처 설정을 통해 제어됩니다.

  2. API PointCloud::downsample 을 통해 제어됩니다.

두 경우 모두 포인트 클라우드에 동일한 작업이 적용됩니다. API 버전을 통해 그 자리에서 다운샘플링하거나 다운샘플링된 데이터를 사용하여 새로운 포인트 클라우드 인스턴스를 생성할 수 있습니다.

Problem

포인트 클라우드의 크기 또는 해상도(밀도)가 너무 큽니다.

Solution

Zivid 포인트 클라우드를 다운샘플링하여 크기와 해상도를 줄입니다.

참고

이 문서에서는 후처리 과정에서 적용되는 다운샘플링에 대해 설명합니다. 해상도를 줄이고, 그에 따라 획득 및 캡처 시간도 단축하는 하드웨어 기반 서브샘플링 방법에 대해서는 Sampling (3D) 문서를 참조하세요.

Downsample API

다운샘플링은 현재 포인트 클라우드를 수정하는 그때 바로 수행할 수 있습니다.

소스로 이동

소스

pointCloud.downsample(Zivid::PointCloud::Downsampling::by2x2);
소스로 이동

소스

pointCloud.Downsample(Zivid.NET.PointCloud.Downsampling.By2x2);
소스로 이동

source

point_cloud.downsample(zivid.PointCloud.Downsampling.by2x2)

다운샘플링된 포인트 클라우드를 기존 포인트 클라우드를 변경하지 않는 새로운 포인트 클라우드 인스턴스로 얻을 수도 있습니다.

소스로 이동

소스

auto downsampledPointCloud = pointCloud.downsampled(Zivid::PointCloud::Downsampling::by2x2);
소스로 이동

소스

var downsampledPointCloud = pointCloud.Downsampled(Zivid.NET.PointCloud.Downsampling.By2x2);
소스로 이동

source

downsampled_point_cloud = point_cloud.downsampled(zivid.PointCloud.Downsampling.by2x2)

Zivid SDK는 다음과 같은 다운샘플링 비율을 지원합니다. by2x2, by3x3, 그리고 by4x4, 다운샘플링을 여러 번 수행할 수 있습니다.

참고

Zivid SDK의 다운샘플링 API는 GPU에서 병렬로 수행되기 때문에 속도가 빠르며 포인트 클라우드 데이터는 여전히 GPU 메모리에 있습니다. 타사 라이브러리를 사용한 다운샘플링 구현은 시간이 더 많이 소요될 수 있습니다. 일반적으로 CPU 계산은 훨씬 느리고 GPU 계산에는 다른 복사본이 필요합니다. 보다 Point Cloud Capture Process 더 많은 정보를 위해서.

If you are interested in the implementation, check out our downsampling code samples in C++, C#, and Python.

  • 포인트 클라우드 데이터가 GPU 메모리에 있는 동안 GPU가 이러한 모든 계산을 수행하기 때문에 성능상의 이유로 Downsample API를 Transform API 및 Normals API와 함께 사용합니다.

  • 가장 빠른 구현을 위해 먼저 포인트 클라우드를 다운샘플링한 다음 변환(Trarnsform)합니다.

포인트 클라우드의 다운샘플링이 필요하다면 코드 샘플을 참조해주십시오.

Sample: downsample.py

python /path/to/downsample.py --zdf-path /path/to/file.zdf

Version History

SDK

Changes

2.12.0

Zivid::Settings::Resampling 통해서도 다운샘플링을 할 수 있습니다.

2.10.0

Monochrome Capture 다운샘플링에 대한 더 빠른 대안을 소개합니다.

2.1.0

Downsampling API가 추가되었습니다.