본문 바로가기

IT/개발

chatGPT-4o를 이용하여 이미지 분석하기(gpt-4-turbo, gpt-4o, Image Description, 이미지 해석 예제코드)

반응형

이번에 새로 chatGPT-4o가 발표되었습니다.

 

이미지를 분석하는 비전기능은 예전에 gpt-4-vision-preview 모델을 통해서 할 수 있었는데 이제는 통합 모델로 나오고 있습니다. 

 

2024.05 현재 OpenAI 에서 Vision 기능을 사용할 수 있는 모델은 다음과 같습니다. 

 

1. GPT Vision 모델 

 

 

 

 

상세한 내용은 다음을 참고 하세요

 

https://platform.openai.com/docs/models

 

2. API를 이용하여 이미지 해석 해보기 

 

(1) URL 이미지

 

온라인 이미지를 url 로 접근해서 해석해보겠습니다.

 

 

from openai import OpenAI

client = OpenAI()
#URL을 이용하여 이미지 전달 하기
response = client.chat.completions.create(
  #model="gpt-4-vision-preview",
  model="gpt-4o",
  messages=[
    {
      "role": "user",
      "content": [
        #{"type": "text", "text": "What’s in this image?"},
        {"type": "text", "text": "이 그림을 한글로 설명해줘"},
        {
          "type": "image_url",
          "image_url": {
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0])

 

'이 그림은 넓은 초원 위에 나무 덱 보드워크가 길게 펼쳐져 있는 풍경을 보여줍니다. 보드워크 양쪽에는 푸르른 잔디와 식물들이 무성하게 자라고 있으며, 멀리에는 나무들이 듬성듬성 서 있습니다. 하늘은 맑고 푸르르며, 곳곳에 흰 구름들이 떠 있습니다. 전체적으로 매우 평화롭고 자연이 아름답게 표현된 장면입니다.'

 

(2) 파일 업로드 

 

다음에는 이미지 파일을 로드해서 해석해보도록 하겠습니다.

 

 

#파일을 직접 업로드 하기
import base64
import requests
import os

# OpenAI API Key
#api_key = "YOUR_OPENAI_API_KEY"
api_key = os.environ.get('OPENAI_API_KEY')
print(api_key)

# Function to encode the image
def encode_image(image_path):
  with open(image_path, "rb") as image_file:
    return base64.b64encode(image_file.read()).decode('utf-8')

# Path to your image
image_path = "man-2425121_1280.jpg"

# Getting the base64 string
base64_image = encode_image(image_path)

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {api_key}"
}

payload = {
  #"model": "gpt-4-vision-preview",
  "model": "gpt-4o",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          #"text": "What’s in this image?"
          "text": "이 그림을 한글로 설명해줘"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
          }
        }
      ]
    }
  ],
  "max_tokens": 300
}
 
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

print(response.json())

 

'이 그림은 두 사람이 소파에 앉아 있는 모습입니다. 왼쪽 남자는 검은색 재킷을 입고 있으며 하얀 머그잔을 손에 들고 있고, 오른쪽 여자는 갈색 스카프를 두르고 있으며, 마찬가지로 손에 하얀 머그잔을 들고 있습니다. 두 사람 모두 편안하게 웃고 있습니다. 그들 사이에는 작은 갈색 불독이 앉아 있는 모습도 보입니다. 배경은 나무로 된 벽입니다. 이들은 따뜻하고 편안한 분위기 속에서 휴식을 취하고 있는 것처럼 보입니다.'

 

 

GPT4o는 속도가 정말 이전보다 많이 빨라진것 같네요.

앞으로 어떤 모델들이 나올지 기대됩니다. 

 

 

키등록 및 초기 설정은 다음을 참고하세요. 

 

https://yongeekd01.tistory.com/141

 

OpenAI API 이용 개발 기초(소개, API 사용준비, 기본모델들, ChatGTP)

1. Open AI API 소개 OpenAI API는 거의 모든 작업에 적용 가능 . 다양한 기능과 가격대의 다양한 모델을 제공할 뿐만 아니라 맞춤형 모델을 미세 조정할 수 있는 기능도 제공함 OpenAI에서는 현재 API를

yongeekd01.tistory.com

 

 

반응형