대규모 환경에서의 안정성: 카메라 헬스 체크
대규모 설비를 운영해 본 사람이라면 진짜 어려움은 셀 하나를 세팅하는 것이 아니라, 사이트 곳곳에 흩어진 쉰 개의 셀이 모두 안정적으로 가동되어야 할 때라는 것을 안다. 새로운 카메라 헬스 체크는 바로 그것을 보장하기 위한 기능이다.
API와 Zivid Studio 양쪽에서 모두 제공되는 카메라 헬스는 온도, 최대 네트워크 속도 같은 지표를 카메라로부터 읽어올 수 있게 해주어, 1) 배포된 카메라의 노후화를 모니터링하고 2) 셀에 문제가 생겼을 때 문제를 진단할 수 있게 한다. 이 기능은 가볍게 설계되어, 기존 모니터링 루프 안에서 원하는 만큼 자주 폴링해도 캡처 처리량에 미치는 영향이 거의 측정되지 않을 정도로 미미하다.
카메라 헬스 체크 예시 영상
내부적으로 헬스 체크는 여러 개별 측정값을 종합한다:
- 최대 전송 속도: 카메라와 호스트 컴퓨터 간의 종단 간 링크 속도
- 온도: 카메라 내부 온도(섭씨)
- 팬: 팬의 상태
- 메모리: 카메라 메모리의 손상 여부
- 인필드 검증: 마지막 검증이 1년 이상 지났는지 여부
위의 모든 점검 항목은 하나의 종합 상태로 취합되며, 이는 개별 항목 중 가장 나쁜 상태를 그대로 반영한다. 따라서 한 번만 살펴봐도 특정 카메라에 관리가 필요한지 알 수 있고, 조금만 더 들여다보면 그 이유도 바로 파악할 수 있다.
구체적인 예로 데이터 케이블 고장을 들 수 있다. 링크 속도가 갑자기 10기가비트에서 100메가비트로 떨어지는 것은 케이블 손상의 전형적인 증상이며, 수작업으로 진단하는 데 몇 시간이 걸릴 수 있는 바로 그런 종류의 간헐적 캡처 실패다. 라인이 저속으로 돌아가는 것을 보고서야 케이블 손상을 발견하는 대신, 대시보드에서 바로 확인할 수 있다.
GPU 직접 접근으로 더 빠른 캡처
카메라에서 포인트 클라우드와 RGB 데이터에 접근하는 과정은 성능을 갉아먹는 우회로를 거쳐야 했다. 먼저 각 프레임을 GPU에서 CPU로 복사한 뒤, 다시 자신의 파이프라인에 공급하기 위해 GPU로 되돌려 보내는 식이다. 이 왕복 과정은 지연 시간을 늘려 사이클 타임을 늦출 수 있었다.
SDK 2.18에서는 이 우회로를 건너뛸 수 있다! 이제 Zivid 프레임을 GPU 메모리에서 직접 사용할 수 있으며, CUDA의 경우 device pointer로, OpenCL의 경우 cl_mem 객체로 노출된다. 2D RGB 이미지와 3D 포인트 클라우드 데이터를 CuPy나 PyTorch 같은 프레임워크에서 그랩 감지나 세그멘테이션 모델로 바로 공급할 수 있다. CPU를 거치며 데이터를 왔다 갔다 복사할 필요가 없어졌다.
그 성과는 낮아진 지연 시간이다. 이러한 왕복 지연을 제거하면 종단 간 캡처 시간에서 눈에 띄는 부분을 덜어내고 CPU와 PCIe 대역폭을 확보할 수 있다. 이는 피스 피킹이나 소포 처리 셀처럼 사이클 타임이 촉박한 환경에서 특히 중요하다.
Nvidia 사용자를 위한 CUDA 설치 프로그램
흔한 일은 아니지만, 가끔은 공짜 점심이 있기 마련이다. 이제 OpenCL과 CUDA, 두 가지 GPU 백엔드를 지원한다. CUDA 패키지는 Nvidia 하드웨어 전용으로 제작되어 처리 과정이 최적화되어 있으며, OpenCL 버전보다 캡처 시간을 단축한다. Nvidia GPU에서 실행 중이라면 CUDA 설치 프로그램을 선택하기만 하면 된다. 코드는 바꿀 필요 없이 더 나은 성능을 얻을 수 있다.
GPU 컴퓨트 백엔드 선택 시 새로 보이는 화면
나만의 파일 카메라 만들기
캡처된 데이터를 실제 카메라가 연결된 것처럼 재생하는 "가상 카메라"인 파일 카메라는 오랫동안 Zivid의 내부 도구였다. 점점 더 많은 분들이 당연한 질문을 던졌다 — "우리도 직접 만들 수 있나요?" SDK 2.18에서는 가능하다.
파일 카메라 기능이 이제 공개되어, Zivid Studio와 API를 통해 저장된 데이터로부터 가상 카메라를 만들 수 있다. 이제 물리적인 카메라를 연결하지 않고도 자동화 테스트, 리그레션 검사, CI를 실행할 수 있으며, 개발자들 사이에 일관된 가상 카메라를 공유해 모두가 같은 데이터를 기준으로 작업할 수 있다. 코드를 개발하고 유지 관리하는 팀에게 이는, 고객 라인이 아니라 커밋 단계에서 리그레션을 잡아내며 모든 변경 사항을 출시 전에 검증할 수 있다는 뜻이다.
![]() |
|
Zivid Studio에서 파일 카메라를 업로드하고 확인할 수 있다.
기타 업데이트
재트리거 없이 Studio에서 관심 영역 조정하기
이제 Zivid Studio에서 캡처를 다시 트리거하지 않고도 관심 영역(ROI)을 손쉽게 조정할 수 있다. "재처리"를 활성화하고 ROI를 조정하기만 하면 된다. 어떤 포인트가 박스 안에 들어오고 어떤 포인트가 밖으로 벗어나는지 확인하기 위해 새로 캡처할 필요가 없다. 박스 바깥의 모든 포인트는 무효값(NaN)으로 설정된다.
ROI 도구의 개선된 조정 기능
핸드-아이 캘리브레이션을 위한 신뢰도 점검
핸드-아이 캘리브레이션에 유용한 안전장치가 추가되었다. 새로운 핸드-아이 상태 열거형은 방금 실행한 캘리브레이션이 실제로 신뢰할 만한지 알려주며, 다음 세 가지 상태 중 하나로 보고한다:
-
OK, 캘리브레이션이 성공했을 때
-
InsufficientMotion, 데이터셋 내 움직임이 부족해 계산된 솔루션이 제대로 정의되지 않았을 때
-
InsufficientDataQuality, 계산된 솔루션의 잔차 오차가 커서 데이터 품질이 낮음을 나타낼 때
이 상태는 피듀셜 마커 기반 캘리브레이션과 체커보드 기반 캘리브레이션 양쪽 모두에서 보고된다.
확장된 바코드 판독 API
바코드 판독 API를 더 유연하게 개편했고, 개발자들이 요청한 몇 가지 기능도 추가했다. 주요 변경 사항은 다음과 같다:
-
검출과 디코딩을 이제 별도 단계로 분리할 수 있다. 바코드 판독을 두 단계로 나눌 수 있으며, 각각 자체 결과 클래스를 가진다 — 검출은 이미지 내 후보 영역을 찾고, 디코딩은 그 후보를 읽어낸다.
-
모든 바코드에 바운딩 박스가 제공된다. 모든 검출 및 디코딩 결과는 이제 픽셀 단위의 x, y, 너비, 높이를 담은 바운딩 박스를 노출한다. 이를 이용해 3D 공간에서 코드의 위치를 파악하고, 그리퍼가 코드 위에 놓이지 않도록 할 수 있다.
-
ITF 바코드 지원. 이제 ITF interleaved 2 of 5 선형 포맷을 지원한다.
Zivid Studio에서의 바코드 판독 예시
요약
정리하자면, SDK 2.18은 안정성, 속도, 그리고 개발자를 위한 배려에 관한 릴리스다. 카메라 헬스 체크는 배포된 시스템을 계속 가동시키고, 문제가 라인을 멈추기 전에 미리 발견하도록 돕는다. GPU 직접 접근과 CUDA 설치 프로그램은 데이터를 카메라에서 더 빠르게 파이프라인으로 옮겨준다. 사용자가 직접 만들 수 있는 파일 카메라는 테스트, CI, 협업을 한결 수월하게 만들어준다.
이번에 함께 준비한 것들이 마음에 드셨기를 바란다. 이제 다시 작업으로 돌아가, 다음 SDK를 준비하겠다.

.png)

