Ripples from Ambient Light Interference

Problem

포인트 클라우드의 잔물결이나 파도 패턴으로 인해 객체 모양이 왜곡되어 나타납니다.

../_images/steel-caps-ripples.png

Potential causes

Interference from ambient light

이 장면은 교류(AC) 전원 공급 장치로 작동하는 강한 주변광에 의해 비춰집니다. 이 조명은 전력망 주파수로 인해 깜박이며, 2D 노출 설정은 이 주파수를 보상하도록 조정되지 않았습니다. 결과적으로 ambient light interference 은 포인트 클라우드에 잔물결이나 파동을 발생시킵니다.

Interreflections

포인트 클라우드의 잔물결은 빈 벽이나 근처 물체에서의 상호 반사로 인해 발생할 수도 있습니다. Ripples from Interreflections 을 참조하여 처리하세요.

Potential solution

캡처 설정 수정

먼저, 해당 지역의 주변광(격자) 주파수를 확인하세요.

Zivid Studio를 열고 카메라에 연결합니다. Capture 섹션의 세 개의 점을 클릭합니다. 그런 다음 Measure scene lighting conditions 을 클릭합니다. 소프트웨어가 감지된 주변광 플리커 주파수를 표시합니다.

../_images/studio-measure-ambient-light.png

또는 SDK를 사용하여 주변광 상태를 측정할 수 있습니다. 이 방법은 주변광의 상당한 깜빡임이 감지되는지, 그리고 50Hz 또는 60Hz 전력망에 해당하는지 보고합니다.

소스로 이동

source

std::cout << "Measuring scene conditions" << std::endl;
auto sceneConditions = camera.measureSceneConditions();
auto flickerClassification = sceneConditions.ambientLight().flickerClassification().toString();
std::cout << "Flicker classification: " << flickerClassification << std::endl;
    auto flickerFrequency = sceneConditions.ambientLight().flickerFrequency();
    std::cout << "Measured flickering frequency in the scene: " << flickerFrequency << " Hz." << std::endl;
소스로 이동

source

Console.WriteLine("Measuring scene conditions");
var sceneConditions = camera.MeasureSceneConditions();
var flickerClassification = sceneConditions.AmbientLight.FlickerClassification.ToString();
Console.WriteLine("Flicker classification: " + flickerClassification);
    var flickerFrequency = sceneConditions.AmbientLight.FlickerFrequency;
    Console.WriteLine($"Measured flickering frequency in the scene: {flickerFrequency} Hz.");
소스로 이동

source

print("Measuring scene conditions")
scene_conditions = camera.measure_scene_conditions()
flicker_classification = scene_conditions.ambient_light.flicker_classification
print(f"Flicker classification: {flicker_classification}")
    flicker_frequency = scene_conditions.ambient_light.flicker_frequency
    print(f"The measured flickering frequency in the scene: {flicker_frequency} Hz.")

적절한 Presets을 사용하세요

Presets을 사용하는 경우 50Hz 또는 60Hz에 맞는 Presets을 선택하세요. Presets은 Zivid Studio 또는 Presets 페이지에서 찾을 수 있습니다.

설정을 수동으로 조정하세요

수동으로 설정을 구성한 경우 노출 시간이 해당 지역의 그리드 주파수와 동기화되었는지 확인하세요.

강한 깜빡임 주변광이 있는 경우 그리드 주기의 배수로 샘플링 속도(노출 시간)를 사용합니다.

  • 50Hz 그리드 주파수가 있는 경우 10,000µs의 배수입니다.

  • 60Hz 그리드 주파수가 있는 경우 8,333µs의 배수입니다.

이 방법을 사용하면 아래 이미지와 같이 포인트 클라우드의 잔물결 현상이 제거됩니다. 그리드 주파수에 맞춰 노출 시간을 보정한 설정을 사용하면 촬영 시간이 길어질 수 있다는 점에 유의하세요.

../_images/steel-caps-no-ripples.png

필터 수정

캡처 시간을 늘릴 여유가 없다면 다음 필터를 조정해 보세요.

  • Noise Filter Suppression: 이 필터를 활성화하여 잔물결이 제거되거나 줄어드는지 확인하세요.

  • Gaussian Smoothing: 잔물결이 지속되면 잔물결이 제거되거나 충분히 줄어들 때까지 sigma 값을 점차 늘립니다.

../_images/steel-caps-ripples-gaussian-and-noise-suppression.png

주변광 차단

주변광을 처리하는 가장 좋은 방법은 주변광을 없애는 것입니다.

Zivid 카메라 근처의 불필요한 광원을 끄세요.

광원을 제거할 수 없는 경우, 장면 주변에 빛 차단막을 설치하여 빛을 차단합니다. 차단막은 꼭 단단할 필요는 없으며, 어두운 커튼이나 비슷한 재질이면 충분합니다.

주변광 변경

주변광을 제거하는 것이 불가능하다면 AC 전원 공급 장치로 인해 깜박임이 발생하지 않는 광원을 사용하는 것을 고려하세요.

주파수가 1kHz 이상인 스포트라이트 또는 LED와 같은 DC 전원 조명을 선택하세요. 이렇게 하면 깜박임을 줄이고 이미지의 색상 불일치를 방지할 수 있습니다.