iYUNDONG Sports App을 사용하여 이벤트 하이라이트 추출하기
iYUNDONG은 마라톤 경주와 같은 이벤트의 더 많은 스포츠 애호가와 참가자를 참여시키는 것을 목표로 하는 인터넷 기업입니다. 스포츠 이벤트 중에 캡처된 미디어를 분석하여 하이라이트를 자동으로 생성할 수 있는 인공지능(AI) 도구를 구축합니다. 예를 들어, 스포츠 이벤트에 참가한 iYUNDONG 스포츠 App 사용자는 셀피를 업로드함으로써 해당 이벤트의 방대한 미디어 데이터셋에서 자신의 사진이나 비디오 클립을 즉시 검색할 수 있습니다.
iYUNDONG App의 핵심 기능 중 하나는 “Find me in motion“이라고 합니다. 사진작가들은 보통 마라톤 경주와 같은 스포츠 이벤트 중에 대량의 사진이나 비디오를 촬영하고, 사진과 비디오를 iYUNDONG 미디어 데이터베이스에 실시간으로 업로드합니다. 자신의 하이라이트 순간을 보고 싶은 마라톤 주자들은 셀피 하나를 업로드하기만 하면 자신이 포함된 사진을 검색할 수 있습니다. iYUNDONG App의 이미지 검색 시스템이 모든 이미지 매칭을 수행하기 때문에 많은 시간을 절약할 수 있습니다. Milvus는 검색 프로세스를 크게 가속화하고 매우 정확한 결과를 반환할 수 있기 때문에 iYUNDONG은 이 시스템을 구동하기 위해 Milvus를 채택했습니다.
바로 이동:
어려움과 해결책
iYUNDONG은 이미지 검색 시스템을 구축할 때 다음과 같은 문제에 직면했고, 그에 맞는 해결책을 성공적으로 찾았습니다.
- 이벤트 사진은 검색을 위해 즉시 사용 가능해야 합니다.
iYUNDONG은 이벤트 사진이 업로드된 직후 검색에 사용될 수 있도록 InstantUpload라는 기능을 개발했습니다.
- 방대한 데이터셋의 저장
사진과 비디오 같은 방대한 데이터가 매 밀리초마다 iYUNDONG 백엔드에 업로드됩니다. 따라서 iYUNDONG은 엄청난 양의 비정형 데이터를 안전하고 빠르며 안정적인 방식으로 처리하기 위해 AWS, S3, Alibaba Cloud Object Storage Service (OSS)를 포함한 클라우드 스토리지 시스템으로 마이그레이션하기로 결정했습니다.
- 즉시 읽기
즉시 읽기를 달성하기 위해 iYUNDONG은 자체 샤딩 미들웨어를 개발하여 수평 확장성을 쉽게 달성하고 디스크 읽기가 시스템에 미치는 영향을 완화했습니다. 또한 Redis는 높은 동시성 상황에서도 일관된 성능을 보장하기 위한 캐싱 레이어로 사용됩니다.
- 얼굴 특징의 즉시 추출
사용자가 업로드한 사진에서 얼굴 특징을 정확하고 효율적으로 추출하기 위해 iYUNDONG은 이미지를 128차원 특징 벡터로 변환하는 독자적인 이미지 변환 알고리즘을 개발했습니다. 또 다른 문제는 많은 사용자와 사진작가가 종종 이미지나 비디오를 동시에 업로드한다는 점이었습니다. 따라서 시스템 엔지니어들은 시스템을 배포할 때 동적 확장성을 고려해야 했습니다. 더 구체적으로, iYUNDONG은 동적 스케일링을 달성하기 위해 클라우드의 탄력적 컴퓨트 서비스(ECS)를 최대한 활용했습니다.
- 빠르고 대규모인 벡터 검색
iYUNDONG은 AI 모델이 추출한 대량의 특징 벡터를 저장하기 위해 벡터 데이터베이스가 필요했습니다. 고유한 비즈니스 애플리케이션 시나리오에 따라 iYUNDONG은 벡터 데이터베이스가 다음을 수행할 수 있기를 기대했습니다:
- 초대형 데이터셋에서 초고속 벡터 검색을 수행합니다.
- 더 낮은 비용으로 대량 저장을 달성합니다.
초기에는 연평균 100만 장의 이미지가 처리되었기 때문에 iYUNDONG은 검색을 위해 모든 데이터를 RAM에 저장했습니다. 그러나 지난 2년 동안 비즈니스가 급성장하면서 비정형 데이터가 기하급수적으로 증가했습니다. 2019년 iYUNDONG의 데이터베이스에 있는 이미지 수는 6,000만 장을 넘어섰으며, 이는 저장해야 할 특징 벡터가 10억 개 이상이라는 의미였습니다. 엄청난 양의 데이터는 필연적으로 iYUNDONG 시스템을 무겁고 리소스 소모가 큰 구조로 만들었습니다. 따라서 높은 성능을 보장하기 위해 하드웨어 설비에 지속적으로 투자해야 했습니다. 구체적으로 iYUNDONG은 더 높은 효율성과 수평 확장성을 달성하기 위해 더 많은 검색 서버, 더 큰 RAM, 더 뛰어난 성능의 CPU를 배치했습니다. 그러나 이 솔루션의 단점 중 하나는 운영 비용을 감당하기 어려울 정도로 높인다는 점이었습니다. 따라서 iYUNDONG은 이 문제에 대한 더 나은 해결책을 모색하기 시작했고, 비용을 절감하고 비즈니스를 더 잘 이끌기 위해 Faiss와 같은 벡터 인덱스 라이브러리를 활용하는 방안을 고민했습니다. 최종적으로 iYUNDONG은 오픈 소스 벡터 데이터베이스 Milvus를 선택했습니다.
Milvus란 무엇인가
Milvus는 사용하기 쉽고, 매우 유연하며, 신뢰할 수 있고, 매우 빠른 오픈 소스 벡터 데이터베이스입니다. 사진 및 음성 인식, 비디오 처리, 자연어 처리와 같은 다양한 딥러닝 모델과 결합하여, Milvus는 다양한 AI 알고리즘을 사용해 벡터로 변환된 비정형 데이터를 처리하고 분석할 수 있습니다. 아래는 Milvus가 모든 비정형 데이터를 처리하는 워크플로입니다:
● 비정형 데이터는 딥러닝 모델 또는 기타 AI 알고리즘에 의해 임베딩 벡터로 변환됩니다.
● 그런 다음 임베딩 벡터는 저장을 위해 Milvus에 삽입됩니다. Milvus는 해당 벡터에 대한 인덱스도 생성합니다.
● Milvus는 다양한 비즈니스 요구에 따라 유사도 검색을 수행하고 정확한 검색 결과를 반환합니다.
Milvus 개요.
Milvus를 선택한 이유
2019년 말부터 iYUNDONG은 이미지 검색 시스템을 구동하기 위해 Milvus를 사용하는 일련의 테스트를 수행했습니다. 테스트 결과, Milvus는 여러 인덱스를 지원하고 RAM 사용량을 효율적으로 줄일 수 있어 벡터 유사도 검색에 소요되는 시간을 크게 단축한다는 점에서 다른 주류 벡터 데이터베이스보다 뛰어난 것으로 나타났습니다.
또한 Milvus의 새 버전은 정기적으로 릴리스됩니다. 테스트 기간 동안 Milvus는 v0.6.0부터 v0.10.1까지 여러 차례 버전 업데이트를 거쳤습니다.
추가로, 활발한 오픈 소스 커뮤니티와 강력한 즉시 사용 가능한 기능을 갖춘 Milvus는 iYUNDONG이 제한된 개발 예산으로 운영할 수 있게 해줍니다.
시스템 및 워크플로
iYUNDONG의 시스템은 먼저 사진작가가 업로드한 이벤트 사진에서 얼굴을 감지하여 얼굴 특징을 추출합니다. 그런 다음 이러한 얼굴 특징은 128차원 벡터로 변환되어 Milvus 라이브러리에 저장됩니다. Milvus는 해당 벡터에 대한 인덱스를 생성하며, 매우 정확한 결과를 즉시 반환할 수 있습니다.
사진 ID 및 사진 속 얼굴 위치를 나타내는 좌표와 같은 기타 추가 정보는 타사 데이터베이스에 저장됩니다.
각 특징 벡터는 Milvus 라이브러리에서 고유한 ID를 가집니다. iYUNDONG은 Meituan 기본 R&D 플랫폼에서 개발한 분산 ID 생성 서비스인 Leaf algorithm을 도입하여 Milvus의 벡터 ID를 다른 데이터베이스에 저장된 해당 추가 정보와 연결했습니다. 특징 벡터와 추가 정보를 결합함으로써 iYUNDONG 시스템은 사용자 검색 시 유사한 결과를 반환할 수 있습니다.
iYUNDONG 앱 인터페이스
일련의 최신 스포츠 이벤트가 홈페이지에 나열됩니다. 이벤트 중 하나를 탭하면 사용자는 전체 세부 정보를 볼 수 있습니다.
사진 갤러리 페이지 상단의 버튼을 탭한 후, 사용자는 자신의 사진을 업로드하여 하이라이트 이미지를 검색할 수 있습니다.
iYUNDONG 앱 인터페이스.
결론
이 글에서는 iYUNDONG App이 해상도, 크기, 선명도, 각도 및 유사도 검색을 복잡하게 만드는 기타 방식에서 다양한 사용자 업로드 사진을 기반으로 정확한 검색 결과를 반환할 수 있는 지능형 이미지 검색 시스템을 구축하는 방법을 소개합니다. Milvus의 도움으로 iYUNDONG App은 6천만 개 이상의 이미지 데이터베이스에서 밀리초 수준의 쿼리를 성공적으로 실행할 수 있습니다. 또한 사진 검색의 정확도는 지속적으로 92% 이상을 유지하고 있습니다. Milvus는 iYUNDONG이 제한된 리소스로 짧은 시간 안에 강력한 엔터프라이즈급 이미지 검색 시스템을 더 쉽게 만들 수 있도록 해줍니다.
Milvus로 무언가를 만드는 방법에 대해 자세히 알아보려면 다른 사용자 사례를 읽어보세요.
계속 읽기

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving faces a data bottleneck. Learn how AI-native vector databases like Zilliz solve scale, cost, and insight challenges across AV pipelines.
Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.



