데이터 분석/머신러닝

이미지 벡터화 - VGG16 / VGG19

Family in August 2023. 5. 26. 17:48
반응형

이미지를 벡터화한 후, 이미지 벡터를 다른 용도로 사용하고 싶다면 image_vector 변수를 해당 용도에 맞게 활용하시면 됩니다.
예를 들어, 이미지 간 유사도를 계산하거나 이미지 검색에 활용할 수 있습니다.

import numpy as np
from keras.applications.vgg19 import VGG19, preprocess_input
from keras.preprocessing import image
from keras.models import Model

def vectorize_image(image_path):
    # 이미지 불러오기
    img = image.load_img(image_path, target_size=(224, 224))
    
    # 이미지 전처리
    x = image.img_to_array(img)
    x = np.expand_dims(x, axis=0)
    x = preprocess_input(x)
    
    # VGG19 모델 불러오기
    base_model = VGG19(weights='imagenet')
    
    # VGG19의 마지막 fully connected layer 이전의 layer 가져오기
    model = Model(inputs=base_model.input, outputs=base_model.get_layer('fc2').output)
    
    # 이미지 벡터화
    features = model.predict(x)
    vectorized_image = features.flatten()
    
    return vectorized_image

# 이미지 경로 지정
image_path = '이미지_파일_경로.jpg'

# 이미지 벡터화
image_vector = vectorize_image(image_path)

# 벡터 출력
print(image_vector)


반응형