컴퓨터 비전

RoboDK는컴퓨터비전시스템을시뮬레이션, 개발및배포할수있는다양한유틸리티를제공합니다. RoboDK를사용하면2D 및 3D 카메라를시뮬레이션하여컴퓨터비전알고리즘을개발하고훈련할수있습니다. 실제 2D 및 3D 카메라를통합할수도있습니다.

이문서에서는카메라를시뮬레이션하는몇가지단계를안내합니다.

Computer Vision - 영상 1

시뮬레이션 카메라

시뮬레이션카메라를사용하면카메라가어떻게보이는지확인할수있습니다. 센서크기, 픽셀크기, 시야각과같은카메라매개변수를지정할수있으며카메라의시뮬레이션된모습을볼수있습니다. 로봇에카메라를부착하거나고정된상태로유지할수있습니다.

카메라 보기 추가하기

카메라를추가하려면앵커포인트에카메라를부착하여위치를결정해야합니다. 이작업은일반적으로참조프레임을사용하여수행합니다.

1.프로그램➔ 참조 프레임 선택하여새좌표계를만듭니다. 자세한내용은 시작하기 섹션을 참조하세요.

2.원하는카메라위치에프레임을배치합니다. 여기서 XYZ 좌표는카메라위치, Z+ 축은조준방향, Y+ 축은아래쪽방향을나타냅니다.

3.연결➔ 2D 카메라 시뮬레이션을 선택하고기준프레임을선택합니다.

이제앵커포인트에기본카메라가연결되었습니다.

카메라 미리보기 창

카메라미리보기창을통해카메라가어떻게보이는지확인할수있습니다. 이창은새카메라가추가되면자동으로열립니다.

카메라미리보기창을다시열려면트리에서카메라항목을더블클릭하면됩니다. 트리에서마우스오른쪽버튼으로클릭하고카메라 표시를 선택할수도있습니다. 기본적으로미리보기창은크기를조정하거나최소화하거나닫을수있습니다(자세한옵션은다음섹션참조).

Computer Vision - 영상 2

미리보기창이열리면카메라작업영역에도 3D 환경이표시됩니다. 카메라를마우스오른쪽버튼으로클릭하고카메라 작업 영역 표시를 선택하면카메라작업영역을비활성화할수있습니다.

카메라 설정

카메라설정을사용하면카메라의매개변수를사용자지정하여 RoboDK의시뮬레이션환경에서카메라를사실적으로볼수있습니다.

카메라의설정을편집하려면트리에서카메라를마우스오른쪽버튼으로클릭하고카메라 설정을 선택합니다. RoboDK는새로추가된카메라에대해다음과같은기본설정을제공합니다:

카메라: 앵커이름(프레임 1)을입력합니다.

초점거리(mm): 초점거리, 밀리미터(5.00) 단위입니다. 렌즈의가상광학중심과가상카메라이미지센서사이의거리입니다. 이값을변경하면픽셀크기에영향을줍니다.

픽셀크기(μm): 픽셀크기, 마이크로미터(2.481) 단위입니다. 이값을변경하면시야에영향을미칩니다.

시야각(도): 시야각(FOV), 도단위(30.0)입니다. 이는카메라가인식할수있는영역의크기에영향을줍니다. 이값을변경하면픽셀크기에영향을미칩니다.

작동거리(mm): 작동거리, 밀리미터(2000.0) 단위입니다. 카메라가환경을인식할수있는거리로, 이거리를벗어난물체는이미지에포함되지않습니다.

센서크기고정: 이옵션을선택하지않으면카메라센서크기(또는해상도)가카메라미리보기창의크기로설정되며, 사용자가크기를조정할수있습니다.

카메라센서크기입니다: 고정센서크기의경우카메라의너비와높이를픽셀단위로입력합니다. 미리보기창크기를조정해도크기에는영향을미치지않습니다.

창크기조정허용: 사용자가센서크기에영향을주지않고미리보기창크기를조정할수있도록허용합니다. 예를들어해상도를 4K로유지하면서창크기를 720p로조정할수있습니다.

투시보기: 이옵션을선택취소하면카메라가직교카메라로전환되어원근감이제거됩니다.

뷰유형: 컬러, 그레이스케일또는깊이와같은카메라보기유형을결정합니다. 보기유형에따라관련데이터에따라출력이미지가변경됩니다.

도킹된보기: 미리보기창을떠다니는창이아닌도구모음으로드래그할수있습니다.

조명색상을설정합니다: 기본조명색상을사용자지정조명색상(앰비언트, 확산및스페큘러조명색상)으로재정의합니다. 배경색에는영향을주지않으며색상보기유형과만호환됩니다.

배경색: 미지의색, 무한대의색입니다. 카메라센서에서작동거리까지물체가없는경우사용되는색상입니다.

Computer Vision - 영상 3

API를 통해 시뮬레이션된 카메라 이미지에 액세스하기

API를통해모든보기유형에대한카메라이미지에액세스할수있습니다. 예를들어컬러이미지(8비트), 그레이스케일이미지(8비트), 심도맵(8비트또는 32비트)을디스크파일또는일반데이터로검색할수있습니다.

시뮬레이션된카메라의데이터에액세스하면타사이미징라이브러리또는자체이미징라이브러리를통해외부에서데이터를처리할수있습니다.

RoboDK는이미징라이브러리를제공하지않거나이미징라이브러리와연결되어있지않지만, Python API는 2D 및 3D 이미지데이터를처리하기위한샘플코드를제공합니다. 다음주제를다룹니다:

이미지데이터를가져와서라이브스트림으로표시합니다.

체스판패턴을사용하여핀홀카메라를보정합니다.

지원되는패턴을사용하여카메라포즈를추정합니다.

증강현실을위해하드웨어카메라피드에시뮬레이션된카메라이미지를적용합니다.

바코드및 QR 코드를읽습니다.

블롭, 참조이미지, 표면적, 윤곽선, 이미지순간등과같은특징을감지합니다.

뎁스맵을검색하고, 포인트클라우드로처리하고, 메시를재구성하고, 3D 라이브스트림을생성합니다.

Python API 예제에액세스하려면다음링크를참조하세요: https://robodk.com/doc/en/PythonAPI/examples.html.

손과 눈의 시력 보정

핸드-아이보정은로봇플랜지또는도구에대한카메라의위치를보정하는프로세스입니다.

RoboDK를사용하면핸드-아이보정프로세스를시뮬레이션할수있습니다. 동일한절차를사용하여로봇플랜지또는도구와관련하여실제카메라를보정할수있습니다.

Computer Vision - 영상 4

Python용 RoboDK API의예제섹션(https://robodk.com/doc/en/PythonAPI/examples.html#camera-hand-eye-calibration)에서완전히작동하는예제를찾을수있습니다.

카메라 시뮬레이션 예제

이섹션에서는컴퓨터비전과제조프로세스를통합하는몇가지예를제공합니다.

컴퓨터비전을통합하는대부분의예제에서는컴퓨터비전알고리즘의잠재력을최대한활용하기위해약간의코딩이필요합니다.

바코드 판독

RoboDK의시뮬레이션카메라를사용하여 QR코드, EAN-13 및UPC-A 1D 바코드를포함한바코드를자동으로판독할수있습니다.

RoboDK에서바코드이미지를끌어다놓으면바코드를가리키는새로운시뮬레이션카메라를만들수있습니다.

예제는 RoboDK Python API 섹션에서찾을수있습니다(https://robodk.com/doc/en/PythonAPI/examples.html#qr-codes-and-barcodes).

Computer Vision - 영상 5

객체 감지

RoboDK에서시뮬레이션카메라를사용하여물체의위치추정치(2D 포즈)를얻을수있습니다.

예제는 RoboDK API 예제섹션에서찾을수있습니다: https://robodk.com/doc/en/PythonAPI/examples.html#object-detection

Computer Vision - 영상 6