Downsample

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

Introduction

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

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 표현을 유지하면서 공간 해상도를 줄이는 것입니다. 일반적으로 데이터를 관리하기 쉬운 크기로 변환하여 저장 및 처리 요구 사항을 줄이는 데 사용됩니다.

There are two ways to downsample a point cloud with Zivid SDK:

  1. Via the setting Settings::Processing::Resampling (Resampling), which means it’s controlled via the capture settings.

  2. Via the API PointCloud::downsample.

In both cases the same operation is applied to the point cloud. Via the API version you can choose to downsample in-place or get a new point cloud instance with the downsampled data.

Problem

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

Solution

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

참고

This article discusses downsampling applied during post-processing; for a hardware-based subsampling method that reduces resolution and, by that, also the acquisition and capture time, please refer to the Monochrome Capture.

Downsample API

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

소스로 이동

소스

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

소스

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

소스

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

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

소스로 이동

소스

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

소스

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

소스

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 더 많은 정보를 위해서.

이 문서에서는 Zivid 포인트 클라우드를 올바르게 다운샘플링하는 방법을 설명합니다. 구현에 관심이 있는 경우 다운샘플링 코드 샘플을 확인하십시오. C++, C#, Python, MATLAB.

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

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

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

Sample: downsample.py

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

다운샘플링을 수행하는 방법과 이것이 간단하지 않은 이유에 대해 자세히 알아보려면 참조 문서를 확인하세요. Downsampling Theory.

Version History

SDK

Changes

2.12.0

Downsampling can now also be done via Zivid::Settings::Resampling.

2.10.0

Monochrome Capture introduces a faster alternative to downsampling.

2.1.0

Downsampling API가 추가되었습니다.