이미지 이해
이미지 이해 (Image understanding)
Gemini가 이미지를 볼 수 있다는 건, 문자로 묘사하는 대신 실제 이미지를 요청에 넣어 그 내용을 이해하게 만드는 것을 말해요. 이 글에서는 Google Cloud 콘솔과 Agent Platform API로 이미지를 Gemini 요청에 첨부하는 방법, 지원 모델, 그리고 좋은 결과를 얻는 팁을 정리해 드릴게요. 이미지를 활용한 멀티모달 추론을 처음 시작하는 분께 맞춘 내용이에요.
출처: Image understanding — Gemini Enterprise Agent Platform | Google Cloud Documentation
지원 모델
이미지 이해를 지원하는 모델과 미디어 세부 사항은 다음과 같아요.
| 모델 | 미디어 세부 사항 | MIME 타입 |
|---|---|---|
| Gemini 3.5 Flash, Gemini 2.5 Flash-Lite | 프롬프트당 최대 이미지 3,000개, 인라인·콘솔 직접 업로드 시 파일당 최대 7MB, Cloud Storage 파일당 최대 30MB, 프롬프트당 출력 이미지 최대 10개 | image/png, image/jpeg, image/webp, image/heic, image/heif |
| Gemini 3.1 Pro, Gemini 3 Flash | 프롬프트당 최대 3,000개, 인라인 7MB, Cloud Storage 30MB | 위와 동일 |
| Gemini 3.1 Flash-Lite, Gemini 2.5 Pro, Gemini 2.5 Flash | 프롬프트당 최대 3,000개, 인라인 7MB, Cloud Storage 30MB | 위와 동일 |
Gemini가 지원하는 전체 언어 목록은 Google 모델 페이지에서 확인할 수 있어요. 모바일·웹 앱에서 바로 Gemini를 쓰고 싶다면 Firebase AI Logic 클라이언트 SDK(Swift, Android, Web, Flutter, Unity)를 살펴보시면 돼요.
요청에 이미지 추가하기
요청에 이미지는 한 장만 넣을 수도, 여러 장을 넣을 수도 있어요. 다음 샘플은 모든 Gemini 멀티모달 모델에서 동작해요.
업로드/URL/Cloud Storage/Drive로 추가
콘솔의 Agent Studio 페이지에서 Open freeform을 클릭하면 대화형으로 이미지를 넣고 모델·파라미터를 조정할 수 있어요. 파일을 업로드하거나, URL을 입력하거나, Cloud Storage 버킷에서 고르거나, Google Drive에서 선택하는 방식이 모두 지원돼요.
Python 샘플은 파일을 FileData 파트로 지정하는 방식이에요.
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.1-pro-preview",
contents=[
types.Part(file_data=types.FileData(
file_uri="gs://cloud-samples-data/generative-ai/image/a-man-and-a-dog.png",
mime_type="image/jpeg",
)),
"What's in this image?",
],
)
print(response.text)
핵심 파라미터
- Temperature: 응답의 무작위성 정도를 조절해요.
0이면 최고 확률 토큰만 골라 대부분 결정적이고, 높일수록 다양하고 창의적인 결과가 나와요. 기본 시작값으로는1.0을 권장해요. 모델이 지나치게 짧거나 장황한 응답을 주면 temperature를 올려보세요. - Output token limit: 응답에서 생성될 토큰 최대치예요. 낮추면 짧은 응답, 높이면 긴 응답을 얻을 수 있어요.
- Top-K / Top-P: 토큰 선택 방식을 조절해요. Top-K가
1이면 그리디 디코딩(가장 확률 높은 토큰)이고, Top-P는 확률 합이 값에 도달할 때까지 가장 확률 높은 토큰부터 고르는 방식이에요. - Media resolution: 이미지 해상도 단계를 지정해 결과 품질을 높일 수 있어요.
좋은 결과를 위한 팁
- 이미지 안의 텍스트를 감지하려면 여러 장보다 단일 이미지 프롬프트가 더 좋아요.
- 프롬프트에 이미지가 한 장이라면, 텍스트 앞에 이미지를 먼저 놓아요.
- 여러 이미지를 놓고 나중에 특정 이미지를 가리킬 때는 각 이미지에
image 1,image 2처럼 인덱스를 붙여 주면 좋아요. - 해상도가 높은 이미지일수록 결과가 좋아요.
- 프롬프트에 예시를 몇 개 포함하고, 이미지를 올바른 방향으로 회전한 뒤, 흐릿한 이미지는 피하는 게 좋아요.
한계
- 콘텐츠 검열: 안전 정책을 위반하는 이미지에는 답을 거부해요.
- 공간 추론: 이미지 속 객체 위치·개수를 정밀하게 잡아내는 데는 약해요. 개수를 어림해서 반환할 수 있어요.
- 의료 용도: 엑스레이·CT 같은 의료 이미지 해석이나 의료 조언에는 적합하지 않아요.
- 사람 인식: 연예인이 아닌 일반인을 식별하는 용도로 쓰면 안 돼요.
- 정확도: 저해상도·회전·극도로 낮은 품질의 이미지나 손글씨 문서를 해석할 때는 환각이나 오류가 생길 수 있어요.