Skip to content

Multipage

Mltipage 기능은 1 또는 3 채널 이미지 여러 장을 채널 방향으로 쌓은 뒤 n채널의 이미지 1장인 것처럼 사용하는 기능입니다.

일반적으로 동일한 제품에 대해 조명을 변경하면서 여러 이미지를 촬영하는 경우 활용됩니다.

라벨은 합쳐진 n채널 이미지에 대해 정의되기 때문에 이미지 1장인 경우와 동일합니다.

API 사용법


Multipage 기능은 추가적인 함수가 존재하지 않고, 기존 API의 입력 타입이나 config를 변경해 사용할 수 있습니다.

Trainer.build()에 전달하는 config에서 multipage 섹션을 세팅합니다.

{
    "network_type": str,
    ...
    "multipage": {
        "image_mode": List[str],  # multipage 이미지들의 모드 리스트. 리스트 길이 = 병합할 이미지 수.
                                  # 모드는 "RGB" 또는 "L" 사용 가능.
                                  # ex) ["RGB", "L", "RGB", ...] - 첫 번째 이미지는 color, 두 번째 이미지는 gray, ...
    }

}

Trainer.build()에 전달하는 data에서 path 값을 str -> List[str] 으로 변경합니다.

  • 이때 list에 들어있는 이미지의 순서대로 채널을 쌓기 때문에 이미지의 순서는 항상 동일해야합니다.

InferenceHandler.infer_and_postprocess() 입력 값을 List[List[str]] 혹은 List[List[np.ndarray]] 으로 사용합니다.

InferenceHandler.set_analysis_data() 입력 image 데이터 중 path 값을 str -> List[str] 으로 변경합니다.

RGB 2장 pair 모델 (v2p_*)


v2p_*가 아닌 network type에서는 multipage 이미지가 첫 번째 conv 입력 채널만 늘린 인코더 1개에 들어갑니다.

v2p_fast / v2p_standard / v2p_accurate는 RGB 이미지 2장을 3채널 공유 인코더 1개로 각각 처리합니다. 두 이미지의 stage별 feature를 채널 방향으로 합쳐 decoder에 넣습니다.

network type backbone · decoder init weight
v2p_fast resnet18 · FPN v2_fast와 같음
v2p_standard regnet_x_3_2gf · FPN v2_standard와 같음
v2p_accurate resnet101 · FCN8s v2_accurate와 같음
  • multipage를 반드시 설정해야 하고, image_mode는 ["RGB", "RGB"]만 지원합니다. 설정하지 않거나 다른 값이면 Trainer.build()가 에러 코드 -412306(ConfigMultipageImageModeError)을 반환합니다.
  • 입력·출력 형식은 다른 multipage 사용과 같습니다.
  • 두 이미지를 batch로 묶어 인코더에 넣으므로 학습과 추론의 GPU 메모리와 시간이 대응하는 v2_*보다 늘어납니다.