핵심 요약
대규모 사진 컬렉션에서 수동 태깅이나 단순 폴더 구조로 원하는 사진을 찾는 것은 한계가 있다. 이 아티클은 Amazon Rekognition으로 얼굴과 사물을 인식하고, Amazon Neptune으로 인물 간 관계를 그래프로 모델링하며, Amazon Bedrock으로 맥락에 맞는 캡션을 생성하는 서버리스 아키텍처를 제안한다. 이를 통해 '생일 파티에서 조부모님과 손주가 함께 있는 사진'과 같은 자연어 쿼리로 복잡한 관계 중심의 검색이 가능해진다. 결과적으로 단순 메타데이터를 넘어 시각적 맥락과 관계를 이해하는 지능형 사진 탐색 환경을 제공한다.
배경
AWS 계정 및 기본 서비스 권한, AWS CDK 및 Python 개발 환경, Amazon Bedrock의 Claude 3.5 Sonnet 모델 액세스 권한, 그래프 데이터베이스 및 서버리스 아키텍처에 대한 기초 지식
대상 독자
AWS 기반 지능형 미디어 관리 시스템을 구축하려는 솔루션 아키텍트 및 ML 엔지니어
의미 / 영향
이 시스템은 단순 이미지 분류를 넘어 데이터 간의 '관계'를 지식 그래프화함으로써 엔터프라이즈 자산 관리나 개인화된 서비스에서 고도화된 검색 경험을 제공한다. 특히 서버리스 결합을 통해 초기 인프라 부담 없이 지능형 검색 기능을 도입할 수 있음을 보여준다.
섹션별 상세

config = {
"people": [
{"name": "alice", "gender": "woman", "role": "mother"},
{"name": "jane", "gender": "girl", "role": "daughter"}
],
"relationships": [
{"from": "alice", "to": "jane", "type": "parent_of", "subtype": "mother_of"},
{"from": "jane", "to": "david", "type": "sibling_of", "bidirectional": True}
]
}JSON 설정을 통해 인물 정보와 관계 유형을 정의하는 예시
for rel in relationships_data:
g.V().has('name', rel["from"]).addE(rel["type"]).to(
__.V().has('name', rel["to"])
).property('type', rel["subtype"]).next()Gremlin 쿼리를 사용하여 Neptune 그래프에 인물 간 관계 엣지를 생성하는 코드


response = rekognition.detect_labels(
Image={'Bytes': image_bytes},
MaxLabels=20,
MinConfidence=70
)
for label in response.get('Labels', []):
label_name = label['Name']
categories = [cat['Name'] for cat in label.get('Categories', [])]
# Neptune에 belongs_to 관계 생성 로직 실행Amazon Rekognition으로 레이블을 감지하고 카테고리 계층을 추출하는 과정


실무 Takeaway
- Amazon Neptune의 그래프 구조를 활용하면 단순 키워드 검색으로는 불가능한 인물 간 관계 기반의 복잡한 자연어 검색 쿼리를 구현할 수 있다.
- Amazon Rekognition의 레이블 카테고리 데이터를 Neptune의 계층 구조로 변환하여 사물 간의 의미론적 연결과 상위 개념 필터링을 강화할 수 있다.
- Amazon Bedrock에 인식된 인물 이름과 관계 정보를 프롬프트로 전달함으로써 단순 이미지 분석보다 훨씬 구체적이고 맥락이 풍부한 캡션을 자동 생성할 수 있다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.