Chat GPT API를 활용한 파이썬 이미지 분석 초간단 가이드
Chat GPT-4를 사용하면 이미지를 분석할 수 있다는 사실을 알고 계셨나요? 하지만 파이썬에서도 OpenAI API를 활용하면 동일하게 이미지 분석이 가능합니다. 이번 포스팅에서는 OpenAI API를 파이썬 코드에 적용하여 웹에 업로드된 이미지와 로컬에 저장된 이미지를 분석하는 방법을 자세히 알아보겠습니다.
1. 웹에 업로드된 이미지 분석하기
첫 번째로, 웹에 업로드된 이미지를 분석하는 방법을 살펴보겠습니다. 여기서는 OpenAI에서 발급받은 API 키를 코드에 입력하고, 분석할 이미지의 URL을 설정하여 진행합니다. 예시 이미지로는 교복을 입은 여학생 사진을 사용하였습니다. 아래의 코드를 실행하면 GPT-4가 이미지를 분석하여 결과를 반환하는 과정을 확인할 수 있습니다.
from openai import OpenAI
client = OpenAI(
api_key='API암호키를 여기에 입력해주세요'
)
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What’s in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://media.discordapp.net/attachments/1208673167585845258/1223883475841450016/image.png?ex=661b794f&is=6609044f&hm=7689067dfdeb1f8df7fdefc4be7aea8b4eddf2b882f4367c2e57046985525263&=&format=webp&quality=lossless&width=377&height=468",
},
},
],
}
],
max_tokens=300,
)
print(response.choices[0])
2. 컴퓨터에 저장된 이미지 분석하기
두 번째로, 컴퓨터에 저장된 이미지를 분석하는 방법을 알아보겠습니다. 로컬 이미지의 경로와 API 키만 수정하면 OpenAI API를 통해 쉽게 분석할 수 있습니다. 이미지를 Base64 형식으로 인코딩한 후, 이를 GPT 모델로 보내어 분석 결과를 받는 방식입니다.
import base64
import requests
# OpenAI API Key
api_key = "발급받은 API키를 여기에 입력"
# 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 = "파일 제목을 포함한 파일의 경로를 여기에 입력"
# 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",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What’s in this image?"
},
{
"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())
이미지를 분석할 때 주의할 점은 이미지의 해상도가 높을수록 토큰 사용량이 증가할 수 있다는 점입니다. 만약 이미지 분석이 주목적이라면, 분석 전에 이미지의 크기를 조정하는 것이 효율적일 수 있습니다. 이미지 리사이징은 처리 시간을 줄이고, API 호출 비용을 절감하는 데도 도움이 됩니다.
'IT > 코딩' 카테고리의 다른 글
파이썬 셀레니움, 새로운 창 없이 로그인 세션으로 코드 실행 (0) | 2024.10.18 |
---|---|
파이썬으로 네이버 블로그 포스팅 글자수, 이미지수 세는 방법과 감정 분석 (6) | 2024.10.08 |
파일명 일괄 변경하는 방법, 프로그램 다운로드 없이 손쉽게! (1) | 2024.10.01 |
파이썬 활용 네이버 블로그 글자 수, 이미지 수 분석 방법! (1) | 2024.09.15 |
티스토리 자동 목차 쉽게 만드는 법, 복사 붙여넣기로 10분 완성! (3) | 2024.09.14 |
댓글