3D스캐너의 이해를 돕기 위한 다양한 자료를 준비하였습니다.

REALITYCAPTURE② RealityCapture 리얼리티 캡처 튜토리얼 2편 - 포토그라메트리를 위한 사진 촬영 조언

세컨트러스트
2021-10-28
조회수 840


1. RealityCapture의 포토그라메트리 프로세스 간단히 알기


RealityCapture를 활용하여 3D모델을 생성할 시 인풋 데이터로 활용되는 것은 '사진'(JPG 혹은 RAW tiff)입니다. 3D모델로 생성할 대상체를 360도로 모든 부분을 촬영한 여러장의 사진은 RealityCapture의 포토그라메트리 기술로 프로세싱되어 3D모델로 생성되며 텍스처 컬러 정보도 입혀질 수 있습니다.


인풋 데이터인 사진은 여러 장비로 촬영될 수 있습니다. 일반 DSLR사진, 핸드폰 사진, 드론으로 촬영한 광대한 지역의 사진과 광대역 3D스캐너의 포인트 클라우드 데이터까지 RealityCapture는 프로세싱이 가능합니다. 이로서 곤충과 같이 매우 작은 대상부터 광범위 지역과 같은 대형 대상체까지 다양한 크기의 3D대상체를 생성할 수 있습니다. 예로서 인체, 사물, 동상, 대형 건축물, 건축물 내부, 광활한 지역, 광범위한 지역, 동굴 등이 해당됩니다.




RealityCapture는 대상체를 여러 각도에서 중첩되게 찍은 사진으로 공통구간을 분석하고 해당 공통 구간의 픽셀 데이터를 X, Y, Z축의 3D 좌표값을 가진 점 데이터로 변환하여 줍니다. 수많은 점군의 데이터(포인트 클라우드 데이터)가 한데 모이고 나면 하나의 점군의 덩어리와 같이 3D로 볼 수 있는 데이터가 생성됩니다.


포인트 클라우드 데이터는 X, Y, Z축의 좌표값을 가진 점과 점의 집합니다. 이들 중 3점을 연결하여 삼각형 면을 만들어 주면 3D메쉬 데이터가 생성됩니다. 보통 3D메쉬 데이터는 STL(단색), OBJ(컬러 텍스처 정보 포함), PLY(컬러 텍스처 정보 포함)와 같은 확장자를 지닙니다.


이러한 방식으로 만들어진 데이터는 다양한 분야의 3D데이터 자산으로 활용됩니다. 또한 3D프린팅을 할 수 있는 기초 3D데이터로도 활용됩니다.




이렇게 RealityCaprture의 포토그라메트리 프로세스는 기초 인풋 데이터인 '사진'을 기반으로 시작되는 만큼, 사진의 품질이 제일 중요합니다. 여기서 말하는 사진의 품질이란 다양 부분을 이야기합니다. 높은 해상도의 사진, 선명하고 흐리지 않은 사진, 쉐도우(그림자)로 인해 대비가 심하지 않은 사진, 단색이 아닌 어느정도 여러가지 색상이 있는 사진, 대상체의 모든 부분을 중첩된 구간이 있게 찍은 사진 등 여러가지 요소가 RealityCapture의 포토그라메트리 프로세스에 영향을 미칩니다.


세컨트러스트는 공식 RealityCapture의 총판사로서 RealityCapture를 위한 사진 촬영 조언과 팁을 드리고자 합니다. 이 글을 통해 사진 촬영 시 지켜야 할 주요 지침을 확인할 수 있습니다.



2. 포토그라메트리 3D스캔의 최상의 결과물을 얻기 위한 사진 촬영 방법 조언


세컨트러스트가 RealityCapture를 위한 사진 촬영 방법에 대해 유용한 팁을 제공해 드리겠습니다. 완전히 기술적인 이야기보다는, 사진을 촬영할 때 하지 말아야 할 일과 해야 할 일 정도로 조언해 드리겠습니다. RealityCapture를 사용하면서 배운 내용, 들은 내용과 직접 경험한 것을 바탕으로 이야기 드립니다.


말씀드리는 '몇가지 규칙'만 준수한다면 상세한 3D모델을 얻을 수 있답니다.


① 첫째, 촬영해야 하는 사진의 수에 대한 조언입니다.


대부분 초보 사용자들은 “사진을 100장 정도 찍었는데, 이정도면 충분하겠지?” 라고 말하는데요, 무조건 사진을 더 많이 찍으세요. 사진 수에 제한을 두지 마시기 바랍니다. 대상체에 대한 사진을 찍지 않았다면, 아래와 같은 상황이 벌어질 수 있답니다.



왼쪽 사진으로 보면 잘 나온 것 같지만, 모델을 돌려 오른쪽 편을 보게 되면 형태가 제대로 잡히지 않고 면이 터지거나 벽이 생기거나 합니다. 이 신발은 단지 11장의 사진으로 프로세싱 한 다소 극단적인 예시일 수 있습니다. 사진이 충분하지 않다면 이와 같은 현상이 일어날 수 있답니다. 이 문제를 RealityCapture 소프트웨어가 해결할 방법은 많지 않습니다. 사진을 충분히 더 찍지 않는 한 말입니다.


RealityCapture에서 100장의 사진을 넣은 후 Align image 버튼을 클릭하면, 100장이 다 사용되지 않을 때가 있습니다. 100장 중 50장만 프로세싱 되고 나머지는 Align이 안될 수 있습니다. 이는 사진이 선명하지 못하거나 흐리고 픽셀값이 잘 보이지 않기 때문에 활용이 안된 것입니다.


그럴 경우에는 사용자가 직접 사진들과의 공통구간을 표시해 주는 기능인, Add Control Point 기능을 활용하여, 정합되지 않은 사진들에게 위치점을 입력해 주고, 정합된 사진들과 공통분모를 강제로 인식시켜 Align이 되게 만들 수 있습니다. 하지만 사진을 충분히 찍지 못했다면 이러한 Add Control Point 기능도 활용할 수 없죠. 그러니 사진은 항상 충분히 많이 찍으셔야 합니다.


사진이 많은 것도 중요하지만 더욱이 중요한 것은, 사진 촬영 시 가능한 사진기가 가진 최고의 해상도를 이용해서 사진을 찍으셔야 합니다. 높은 이미지의 해상도는 더욱 미세한 세부 픽셀 정보를 담고 있어 RealityCapture가 더욱 잘 인식합니다.



② 둘째, 최고로 중요한 사항은 바로 사진의 선명도입니다!


적어도 대상체를 찍은 최소 2장의 사진에서 공통으로 보이는 중첩구간이 확실히, 선명하게 보여야 합니다. 사진은 항상 대상체가 선명하게 촬영되어야 합니다. 사진 촬영을 시작하기 전, 카메라를 들고 테스트로 사진을 촬영한 후 확대하여 사진이 혹시 흐리게(Blurry) 나오고 있는지를 꼭 확인하세요. 흐리게 나온 사진은 RealityCapture가 픽셀을 인식하기 힘듭니다. 이러한 사진들은 Align Image를 프로세싱 할 경우 정합되는 사진에서 제외될 수 있습니다.


아래는 Capturing Reality 홈페이지에서 제공하는 포토그라메트리를 위한 무료 사진 저장소입니다. 해당 링크를 클릭하시어 샘플 테스트를 위한 사진을 다운로드할 수 있습니다. 샘플 사진을 다운로드 하셔서 사진의 선명도를 확인하시기 바랍니다.


https://www.capturingreality.com/SampleDatasets



③ 셋째, 사진을 찍을 때 완전한 360도 루프를 만드세요.


사진 촬영은 항상 시작한 지점에서 끝나야 합니다. 또한 특정 부분의 세부 디테일을 포착하고 싶다면 촬영된 물체에 한번에 너무 가까이 가버리면 안되며, 점진적으로 촬영하면서 특정 부분에 도달하여야 합니다.


물체 주위를 돌면서 촬영하는 경우 시점을 변경하지 마시기 바랍니다. 30도 이상 변경해서는 안됩니다. 한 장소에 서서 여러 방향으로 사진을 찍는다면 파노라마 이미지만 생성될 뿐 3D모델의 생성에는 기여하지 않는 사진만 찍히게 됩니다. 같은 위치에서 두장 이상의 사진을 찍지 마십시오.


또한 사진을 촬영할 때 이미지가 60%에서 80%까지는 겹쳐 공통구간이 있어야 최상의 결과를 얻어낼 수 있습니다. 이렇게 촬영해야 대상체의 어느 한부분도 놓치지 않고 촬영할 수 있답니다.


④ 넷째, 조명, 빛, 조명, 빛, 조명, 빛…… 계속 강조해도 부족하지 않은 조명 환경입니다.




위 사진은 RealityCapture로 프로세싱 하기 위해 직접 찍은 사진입니다… 맞습니다. 집안에서 찍어 조명이 어디는 밝고 어디는 어둡고 사진 별 다른 그림자(shadow)가 생기기도 하고… 잘못된 촬영된 예시입니다.


어두운 조명 환경에서 사진을 찍을 경우 중요한 점은 대상체의 어느 부분은 노출이 적게 찍히고 밝은 빛을 받는 부분은 더욱 노출이 심하게 찍혀 대비가 심해질 수 있습니다. 이렇게 찍은 사진은 RealityCapture로 프로세싱 하기 힘듭니다. 노출 대비가 적게 촬영할 수 있는 방법을 찾아야 합니다. 그렇다고 ISO 세팅을 변경하며 찍으면 안됩니다. ISO세팅이 이미지마다 다르면 “노이즈 패턴” 혹은 “노이즈 레벨"이 이미지 마다 달라져 RealityCapture로 인식하기 힘듭니다. ISO세팅은 같은 값으로 촬영해 주세요.


실내 사진 촬영의 경우, 특별한 조명환경 부스를 설치하여 대상체를 촬영하는 것도 하나의 방법입니다. 혹은 적절한 빛이 있는 환경에서 사진을 촬영하여야 합니다. 실외의 경우 아주 강한 햇빛 아래서는 그림자가 발생하기 때문에 피하시고 해가 적당히 떨어진 시간대에 촬영하는 것을 추천합니다.


만약 어두운 동굴 안에서 대상체를 촬영해야 한다고 가정할 때는 촬영 순서를 바꾸어 볼 필요도 있습니다. 촬영 대상체가 앞면은 밝고 뒷면은 어두울 경우에는 360도로 원형 루프로 촬영하지 말고, 아래와 같은 방법으로 촬영해 보기를 권장합니다.


1.아래에서 부터 찍으며 중첩구간을 만들어 나가며 윗부분으로 찍기.

2.아주 살짝 한발자국 옆으로 이동하기.

3.다시 윗부분에서 부터 찍으며 다시 아래로 내려오며 중첩구간을 만들어 나가며 찍기.

4.이렇게 촬영하는 경우 피사체의 어두운 면이 노출 부족이 되지 않고 밝은 면이 과다 노출되지 않도록 카메라 설정을 조정할 수 있습니다. 이 과정에서 카메라의 ISO 설정을 변경하지 마십시오.



⑤ 다섯째, 사진 편집 프로그램에서 “사진 보정”을 한다면 더 좋은 결과를 얻을 수 있습니다.


더 나은 사진 정렬 및 3D메쉬와 텍스처를 얻고자 한다면 사진을 RAW로 촬영하고 사진 보정을 하는 것이 좋습니다. 특히 어둡거나 밝은 부분을 보정하여 포토그라메트리 소프트웨어가 더 잘 인식하도록 도와주어야 할 필요가 있습니다.


Adobe Photoshop의 Camera Raw기능을 활용하여 사진을 일괄 보정하는 방법을 추천 드립니다. 아래 블로그에서 Camera Raw기능을 활용하여 일괄 보정하는 방법이 나와 있습니다.


https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nuazi&logNo=220706006231



어두운 부분을 밝게하고 밝은 부분을 어둡게 하려면 노출(Exposure)값을 수정해야 합니다. 색수차도 제거할 수 있습니다. 또한 노이즈를 제거하고 이미지를 선명하게 만들어 주어야 합니다. 그러나 이미지가 왜곡되는 어떠한 작어도 하지는 말아야 합니다. 다시 말하자면, 렌즈 왜곡을 수정하는 것은 엄격하게 금지됩니다. (렌즈 왜곡 보정 기능이 켜져 있다면 강제로 꺼야 합니다)



★ 야외 촬영 대상체의 경우 추천 보정값 예시 ★


(RealityCapture 전문 유저 Vlad Kuzmin 제공 사진:https://www.artstation.com/ssh4)





● Exposure: from +0.0 to +1.5 (대부분 찍은 사진들은 Exposure값이 부족할 때가 많습니다)

● Lights: from -50 to -100 ● Shadows: from +50 to +100 ● Whites: from -50 to -100

● Blacks: from +20 to +100


Clarity, Vibrance 혹은 Dehaze로 미세 대비를 더 추가할 수도 있습니다. 좋은 상태의 낮은 ISO이미지의 경우에는 단지 denoise 혹은 sharpen 보정만으로도 충분합니다. 하지만 Detail 세팅은 0으로 두어야 합니다.


사진 보정의 기본 아이디어는 그림자진 부분의 세부 디테일을 살려내고 가시성을 높여주는 것과 어두운 부분을 밝게 그리고 밝은 부분을 죽이고 대비값을 미세하게 높여주는 것입니다. RAW로 촬영하여 보정하고 내보낼 경우, 모든 프로세스는 16비트로 수행하고 16비트 tiff 혹은 png로 내보내 주어야 합니다. 혹은 100% 품질의 8비트 JPG도 사용이 가능합니다.


⑥ 여섯째, 사진 촬영시 대상체는 절대 움직여서는 안됩니다.


찾아보시면 나무를 포토그라메트리 방식으로 3D데이터 생성을 한 사례가 많지 않습니다. 나무 줄기 혹은 나무 기둥은 포토그라메트리로 3D생성한 사례가 있지만, 나뭇잎은 항상 바람에 의해 움직이기 때문에 포토그라메트리 방식으로 생성하지 못합니다. 사람의 얼굴을 촬영할 경우에도 마찬가지입니다. 눈이나 얼굴 근육의 움직임이 있어서는 안됩니다. 그래서 웃거나 눈을 깜빡이지 않아야 하고 웃지 않고 찍는것이 좋습니다. 하지만 포토스캔 부스(일괄적으로 360도 인체 혹은 얼굴 사진을 1초만에 다중 촬영하는 방법)를 활용한다면 얼굴의 웃는 형태 혹은 포즈가 가능하기도 합니다.


⑦ 일곱번째, 단순한 하나의 색상의 바닥 혹은 텍스처가 없는 바닥에 물체를 놓고 찍는 것은 좋지 않습니다.



그래서 세컨트러스트의 경우에는 대상체 아래에 신문지를 깔아 주고 사진을 촬영한답니다. 신문지는 여러 색상 정보를 가진 텍스처가 많아 RealityCapture가 신문지 위의 대상체의 사진의 위치정보를 쉽게 파악할 수 있도록 돕습니다.



⑧ 여덟번째, 유리잔 혹은 창문과 같이 투명한 대상체 혹은 광이 심하게 나는 재질의 경우에는 포토그라메트리 방식이 적용되기 힘들 수 있습니다.


 하지만 방법은 있답니다.그래도 프로세싱 할 수 있는 방법이 있습니다만 바로 현상액을 뿌리고 사진을 촬영하는 방법입니다. 현상액을 뿌리면 표면이 하얀 미세입자의 가루로 도포되기 때문에 광이나 투명한 부분이 사라집니다. 하지만 사진에 명확한 형상이 안보여 RealityCapture가 형상을 못잡을 수 있습니다. 그럴 때에는 현상액을 뿌린 표면 위에 검정색 물감을 튀기거나 산개하여 도포하여 억지로 텍스처를 만들어 내고 사진 촬영할 수도 있습니다. 이 방법에 대한 더 자세한 사항은 아래 링크를 확인하세요.


▼ 투명한 유리 형상의 대상체를 RealityCapture로 프로세싱 하는 방법 ▼

https://www.3dscanstore.com/blog/3d-scanning-reflective-objects


위 여덟가지 룰을 지킨다면 RealityCapture로 좋은 품질의 3D모델을 생성할 수 있으실 겁니다. 이상 포토그라메트리를 위한 간략한 사진 촬영 방법에 대한 팁을 전해 드렸습니다. 세컨트러스트는 RealityCapture의 공식 총판사로서 RealityCapture Enterprise 버전을 판매하고 있습니다. 해당 버전은 영구 라이선스 버전으로서 처음 구매 시 가격 지불 후에 추가 결제 없이 사용할 수 있습니다.


세컨트러스트를 통해 RealityCapture를 구매하시면 전문 한글 메뉴얼도 제공하고 방문 교육(추가 비용 발생)도 지원합니다. 세컨트러스트의 공식 블로그를 통해서 RealityCapture의 사용법에 대한 간략한 팁을 드릴 수는 있지만, RealityCapture Entrerprise 구매자에 한해 더욱 자세한 전문 메뉴얼 제공 및 맞춤형 교육을 통해 서비스를 제공하고 있답니다.


RealityCapture Enterprise 의 제품 라이선스 구매에 관한 문의는 Contact란에 문의 주시기 바랍니다.