더북(TheBook)

네트워크는 업샘플링을 수행하고 최종 결과를 얻기 위해 VGG의 풀링 층 출력을 확장합니다. VGG19의 세 번째, 네 번째, 다섯 번째 최대 풀링 층에서 나오는 중간 출력을 추출하고 다른 레벨과 인수로 업샘플링하여 출력과 동일한 모양이지만 픽셀 강도 값 대신 각 위치에 존재하는 각 픽셀의 클래스가 포함된 최종 출력을 얻습니다. 네트워크의 버전에 따라 서로 다른 중간 풀(pool) 층이 추출되고 처리됩니다. 위와 같은 방식으로 각 풀링 층에서 놓칠 수 있는 중요한 특징들을 모두 보존하며 영역 분할을 진행할 수 있습니다.

코드로 구현하면 다음과 같습니다.

input_layer = keras.Input(shape=(INPUT_HEIGHT, INPUT_WIDTH, 3))

vgg_model = keras.applications.vgg19.VGG19(include_top=True, weights="imagenet") # ①

fcn_backbone = keras.models.Model(
    inputs=vgg_model.layers[1].input,
    outputs=[
        vgg_model.get_layer(block_name).output
        for block_name in ["block3_pool", "block4_pool", "block5_pool"]
    ],
) # ②
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.