DOI QR코드

DOI QR Code

Knowledge Graph of Smartphone Photos

스마트폰 사진들의 지식 그래프

  • 서예원 (한성대학교 컴퓨터공학부) ;
  • 배연서 (한성대학교 컴퓨터공학부) ;
  • 정유정 (한성대학교 컴퓨터공학부) ;
  • 황기태 (한성대학교 컴퓨터공학부)
  • Received : 2024.07.01
  • Accepted : 2024.10.04
  • Published : 2024.10.31

Abstract

Smartphones store a vast amount of personal data, including photos, but they are not organized, making it difficult for users to quickly find necessary information. Therefore, this paper proposed and implemented a system Visualize Me By Photo that makes photos in smartphones into a knowledge graph and easily searches for photos. Using artificial intelligence technology, the knowledge graph was generated by extracting up to 53 types of knowledge from the photos and establishing the relationship between the photo and knowledge in the photo. In addition, this paper implemented a focusing search function that searches for other photos by drawing circles in a specific area of the image and natural language search for easy search. In conclusion, this study has greatly facilitated photo searches as well as the management of photos on smartphones by construction of a knowledge graph of photos.

스마트폰은 사진을 비롯한 방대한 양의 개인 데이터를 저장하고 있지만, 이들이 조직화되어 있지 않아 사용자는 필요한 정보를 신속하게 찾는데 많은 어려움이 있다. 이에 본 논문은 스마트폰 내 사진들을 지식 그래프로 만들고 사진을 쉽게 검색하는 시스템 Visualize Me By Photo를 제안하고 구현하였다. 인공지능 기술을 활용하여 사진들로부터 최대 53가지의 지식들을 추출하고 이들로부터 사진과 사진 속의 지식들의 관계를 설정하는 식으로 지식 그래프를 생성하였다. 또한 본 논문은 사용자의 용이한 검색을 위해 자연어 검색과 이미지의 특정 영역에 원을 표시하여 다른 사진을 검색하는 포커싱 검색 기능을 구현하였다. 결론적으로 본 연구는 사진들을 지식 그래프로 만듦으로써 사진 검색을 매우 용이하게 하였으며 스마트폰 내 사진 관리 또한 쉬워지는 결과를 낳았다.

Keywords

Ⅰ. 서론

사람들은 일상생활에서 스마트폰을 사진, 전화, 문자메시지, 소셜 미디어, 캘린더 등 다양한 용도로 활용하고 있다. 이로 인해 자신에 관한 다양한 형태의 정보가 스마트폰에 저장되어 스마트폰은 자신의 분신과 같은 존재가 되었다[1,2,3].

하지만 스마트폰에 저장된 정보들은 자신과 관련된 정보임에도 불구하고 잘 조직화되어 있지 않아, 많은 사람들은 정보를 찾는 데 어려움을 겪는다. 때로는 원하는 정보가 너무 많기 때문에 스마트폰에 존재하는지조차 모르는 경우가 있다. 게다가 필요한 정보를 찾았다 하더라도 관련 정보가 다른 곳에도 존재할 수 있어 검색의 효과는 떨어진다.

한편 지식 그래프는 개념이나 개체 등의 정보들을 관계를 통해 그래프 형태로 연결하여 정보 검색이나 추론을 용이하게 하는 기술로[4,5], 법이나 과학 논문 지식 등과 같은 특정 도메인 범주의 지식들로 구성되는 지식 그래프와, 구글의 지식 베이스(Knowledge base)[6]나 위키피디아를 지식화한 DBPedia[7]와 같은 범용 지식 그래프로 구분된다.

본 연구팀은 특정 도메인 데이터를 지식화한 지식 그래프 기술을 도입하여, 스마트폰 내 문자 메시지, 캘린더, 메모, 사진 등 다양한 데이터를 지식 그래프로 조직화하는 방법과 검색을 용이하게 하는 시스템의 기술을 연구하고자 시도하고, 일차적으로 개인의 취향과 관심사, 사람 간의 관계가 가장 잘 반영되어 있는 사진들을 지식그래프로 구성하여 검색을 용이하게 하는 기술을 제시하고 구현하였다.

본 논문에서는 다음과 같은 구체적인 구현 목표를 가진다. 첫째, 사진에서 의미 있는 정보를 추출하여 지식화한다. 둘째, 전체 사진의 지식들을 나의 그래프로 연결하여 조직화한다. 셋째, 사용자의 사진 검색을 용이하게 하기 위해 자연어 검색과 사진 상에 여러 개의 원을 활용한 이미지 검색이 가능하도록 한다. 넷째, 지식 그래프를 시각화하고 스마트폰에서 터치로 사진 탐색이 가능하게 한다. 다섯째, 지식 그래프로 사진 속의 인물을 별도로 인지하여 스마트폰 주인과의 애정도를 계산하고 애정도 순으로 앱의 홈 화면에 인물을 배치한다.

Ⅱ. 도메인 특화 지식 그래프

지식 그래프 용어는 구글에서 2012년에 도입하여 범용 지식 기반을 지칭했지만, AI가 시작된 이래로 지식 표현, 지식 획득, 자연어 처리, 온톨로지 엔지니어링, 시맨틱 웹과 같은 분야에서 유사한 접근 방식이 있었다. 지식 그래프는 검색 엔진뿐 아니라 챗봇의 제품 추천과 자율시스템에 이르기까지 광범위하게 사용되고 있는 등 AI의 발전과 함께 급격한 연구가 이루어지고 있으며, 지식 그래프는 크게 특정 도메인의 지식 혹은 사실들을 연결하는 형태와 상식과 같은 사회의 일반적인 데이터를 지식화한 2가지 형태로 나뉜다[8]. 후자의 경우로 대표적인 것이 구글의 지식 베이스(Knowledge Base)와 DBPedia이다. 이들의 경우, 매우 다양한 특성들의 지식들이 연결되다 보니, 그래프의 엔터티들을 연결하는 관계가 매우 다양하고 비정형적이다. 전자의 경우로는 헬스케어, 교육, 보안, 생물, 지리, 투자, 이상거래탐지, 소셜 사이언스, 정치, 문화, 여행, 건설 안전 등 특정 분야에서 사실을 기반으로 한 데이터들로 구성된 지식 그래프들이다[9,10]. 사실에 기반한 이 지식 그래프는 오늘날 RAG(Retrieval Augmented Generation)에서 사용되어 대규모 언어 모델의 추론에서 발생하는 오류를 보완하는 데 매우 유용하다[11].

본 연구에서 구성하고자 하는 지식 그래프는 도메인 특화 지식 그래프에 속하며, 데이터의 범위를 더욱 좁혀 스마트폰의 갤러리에 있는 사진들로부터 뽑아낸 지식들로 제한하여 사진 검색을 용이하도록 시도하였다. 이 과정을 통해 이미지들을 지식화하는 프로세스를 제안하며, 실제 그래프를 구축하고, 그래프를 활용하여 이미지를 검색하는 응용을 포함한 Visualize Me By Photo 시스템을 개발하였다.

III. Visualize Me By Photo 시스템

1. 지식 그래프 생성 워크플로우

본 논문에서는 그림 1과 같이 스마트폰의 갤러리에 저장된 사진들을 바탕으로 지식 그래프를 생성하는 워크플로우를 제안한다. 사진으로부터 메타데이터 추출과 개체 인식 과정을 거치며, 이 과정에서 추출된 지식들을 바탕으로, 50여 가지 속성과의 관계에 따라 트리플을 생성하고 이를 CSV 파일에 저장한다. 이후, CSV 파일을 Neo4j DB에 로드하여 지식 그래프를 생성한다.

OTNBBE_2024_v24n5_203_2_f0001.png 이미지

그림 1. 지식 그래프 생성 과정

Fig. 1. Process of Knowledge Graph Construction

2. 지식 추출

지식 추출은 사진 이미지에서 표 1에 제시된 53가지 속성을 추출하는 과정이다. 본 연구팀은 사전에 사진 분석 테스트를 통해 일관되게 나타나는 53가지 속성을 선정하였다. 이 중 16가지는 사진 파일의 헤더 부분에 포함된 메타데이터 속성이고, 나머지 37가지는 사진 내용에 관한 속성이다. 이 속성은 지식 그래프에서 사진과 개체 사이의 관계를 나타내는 데 활용된다.

표 1. 53가지 사진 속성

Table 1. Fifty-three Photo Properties

OTNBBE_2024_v24n5_203_3_t0001.png 이미지

사진 메타데이터는 사진 파일의 헤더 부분에서 추출되고, 사진의 내용 속성은 Google Vision API와 DeepFace를 활용하여 추출된다. 그림 2는 사진으로부터 지식들이 추출된 사례를 보여준다. 모든 사진에 53가지의 속성이 존재하는 것은 아니다.

OTNBBE_2024_v24n5_203_3_f0001.png 이미지

그림 2. 사진으로부터 추출된 지식 사례

Fig. 2. Example of Knowledge Extracted from a Photo

3. 트리플 생성

추출된 지식을 바탕으로 <사진 이름, 속성, 속성값>의 형태로 구성된 트리플을 생성한다. 그림 3은 생성된 트리플의 사례를 보여주며, 사진에서 지식을 추출하여 트리플을 생성하는 알고리즘은 그림 4와 같다.

OTNBBE_2024_v24n5_203_3_f0002.png 이미지

그림 3. 트리플 생성 사례

Fig. 3. Example of Triple Construction

OTNBBE_2024_v24n5_203_3_f0003.png 이미지

그림 4. 지식 추출 및 트리플 생성 알고리즘

Fig. 4. Algorithm of Knowledge Extraction and Triple Construction

4. 지식 그래프 생성

지식 그래프 생성은 사진에서 추출한 트리플들이 담긴 CSV 파일을 Neo4j에 그래프 형태로 저장하는 과정이며, 그림 5는 생성된 지식 그래프의 한 사례 중 일부이다.

OTNBBE_2024_v24n5_203_3_f0004.png 이미지

그림 5. 지식 그래프 사례

Fig. 5. Example of Knowledge Graph

5. 지식 그래프 검색

본 연구팀은 2가지 사진 검색 기능을 제안한다.

가. 자연어 검색

자연어 검색은 사용자가 일상 언어를 사용하여 사진을 검색하는 기능이다. 한 사례로 그림 6은 “여름 밤에 성북구에서 찍은 음식 사진”을 입력받아 사진을 검색하는 과정이다.

OTNBBE_2024_v24n5_203_4_f0001.png 이미지

그림 6. 자연어 검색 과정

Fig. 6. Process of Natural language Search

본 연구팀은 GPT를 활용하여 문장에서 객체를 추출하기 위해 예시 문장과 결과로 구성된 5개 쌍을 프롬프트로 사용하였다. 본 팀이 사용한 프롬프트는 그림 7과 같다.

OTNBBE_2024_v24n5_203_4_f0002.png 이미지

그림 7. 객체 추출을 위한 프롬프트

Fig. 7. Prompt for Object Extraction

자연어 검색 알고리즘은 그림 8과 같이 사용자가 입력한 검색 문장과 프롬프트를 GPT-3.5-Turbo에 전달한다. GPT는 프롬프트를 바탕으로 문장에서 객체를 추출한다. 추출된 객체는 Neo4j로 전달되고, Neo4j는 지식 그래프에서 해당 객체를 속성으로 갖는 사진을 찾아 해당 사진 이름을 반환한다. VizMe 앱은 이를 기반으로 갤러리에서 사진을 찾아 자연어 검색 결과 사진들을 출력한다.

OTNBBE_2024_v24n5_203_4_f0003.png 이미지

그림 8. 자연어 검색 알고리즘

Fig. 8. Algorithm of Search in Natural Language

나. 포커싱 검색

포커싱 검색은 사진 속 원하는 객체 이미지 위에 직접 원을 그려 해당 객체가 들어있는 사진을 검색하는 기능이다. 사진의 원 속에 들어있는 객체들은 Google Vision API와 DeepFace를 사용하여 추출된다. 이후 검색 과정은 자연어 검색과 동일하게 진행된다.

6. 지식 그래프 시각화

지식 그래프 시각화는 웹 페이지에 지식 그래프를 출력하여 시각적으로 확인하고 탐색할 수 있도록 하는 기능이다. 알고리즘은 그림 9와 같으며, Neo4j 지식 그래프 데이터를 활용하여 웹 페이지를 생성하고 사용자에게 제공한다.

OTNBBE_2024_v24n5_203_4_f0004.png 이미지

그림 9. 지식 그래프 시각화 알고리즘

Fig. 9. Algorithm of Knowledge Graph Visualization

7. 인물 랭킹

인물 랭킹은 사진에서의 인물 빈도수와 인물과의 통화량을 바탕으로 인물들과 나와의 친밀도를 보여주는 기능이다. 인물들은 랭킹 순으로 정렬되어 홈 화면 상단에 배치된다. 친밀도는 두 값을 동일한 기준으로 비교하기 위해 값을 0과 1 사이로 정규화하고, 정규화된 두 값의 평균으로 계산된다. 정규화를 위해 인물 i에 필요한 값들은 다음과 같이 정의한다.

• fregi : 인물 i의 빈도수

• teli : 인물 i의 통화량 (시간)

• maxfregi : fregi의 최댓값

• minfregi : fregi의 최솟값

• maxteli : teli의 최댓값

• minteli : teli의 최솟값

인물 i의 등장 빈도수를 정규화한 값 norfregi는 식 (1)과 같고, 인물 i의 통화량을 정규화한 값 norteli는 식(2)와 같이 계산된다. 또한 정규화된 인물 i의 등장 빈도수와 통화량의 평균값인 avgfregi,teli는 식(3)과 같이 계산된다.

\(\begin{align}nor_{\text {freg }_{i}}=\frac{\text { freg }_{i}-\min _{\text {freg }_{i}}}{\max _{\text {freg }_{i}}-\min _{\text {freg }_{i}}}\end{align}\)       (1)

\(\begin{align}n o r_{t e l_{i}}=\frac{t e l_{i}-\min _{t e l_{i}}}{\max _{\text {tel }_{i}}-\min _{\text {tel }_{i}}}\end{align}\)       (2)

\(\begin{align}\operatorname{avg}_{\text {freg }_{i}, \text { tel }_{i}}=\frac{\text { nor }_{\text {freg }_{i}}+\text { nor }_{\text {tel }_{i}}}{2}\end{align}\)       (3)

IV. 시스템 구현

1. 시스템 구조

Visualize Me By Photo 시스템은 그림 10과 같이 클라이언트-서버 모델로 구성된다. VizMe 앱은 Java 언어로 작성된 안드로이드 앱이다. 지식 추출 서버는 리눅스 운영체제에서 실행되며, Python 언어로 작성되고 Flask 프레임워크를 사용한다. 지식 그래프 관리 서버는 Windows 10 운영체제에서 Node.js를 기반으로 JavaScript 언어로 작성되었다. 그래프 DB로는 Neo4j를 사용하였다.

OTNBBE_2024_v24n5_203_5_f0001.png 이미지

그림 10. Visualize Me By Photo 시스템 구조

Fig. 10. Software architecture of Visualize Me By Photo System

2. 지식 그래프 생성 및 시각화

본 연구에서 구현된 시스템의 테스트를 위해 500장의 사진을 사용하였다. 그림 11(a)은 생성된 지식 그래프를 보여준다. 여기서 화면을 터치하여 그림 11(b)과 같이 지식 그래프를 조작하고 탐색할 수 있다.

OTNBBE_2024_v24n5_203_5_f0002.png 이미지

그림 11. 지식 그래프 시각화

Fig. 11. Visualization of Knowledge Graph

3. 사진 검색

사진을 검색하는 사례는 그림 12와 같다. 그림 12(a)는 “성북구에서 여름 밤에 찍은 음식 사진 찾아줘.”라고 자연어 문장으로 검색한 결과이다. 그림 12(b)는 ‘강아지’와 ‘리모컨’에 원을 그려 검색하는 포커싱 검색의 결과이다.

OTNBBE_2024_v24n5_203_6_f0001.png 이미지

그림 12. 사진 검색 결과

Fig. 12. Results of Photo Search

4. 인물 확인하기

사진 분석을 통해 추출된 인물들은 나와의 친밀도를 기준으로 그림 13과 같이 홈 화면 상단에 표시된다.

OTNBBE_2024_v24n5_203_6_f0002.png 이미지

그림 13. 홈 화면 상단의 내가 좋아하는 사람들

Fig. 13. Favorite Persons at the Top of the Home Screen

V. 결론

본 논문은 스마트폰 내의 모든 사진들을 지식화하여 지식 그래프를 생성하는 워크플로우를 제안하고, 실제 지식 그래프를 생성하며 사진 검색을 용이하도록 하는 Visualize Me By Photo 시스템을 구현한 사례를 소개하였다. 사진 검색을 용이하도록 자연어 검색과 사진 이미지 위에 여러 개의 원을 표시하면 원 속의 객체들을 포함하는 사진을 검색하는 포커싱 검색 기능을 구현하였다.

현재 본 지식 그래프에서 사용자의 자연어 질의를 분석하여 지식 그래프에서 사진을 찾는 데 걸리는 시간은 약 1초 정도로 분석되었지만, 향후, 본 시스템에서 지식 검색 정확도와 검색에 걸리는 시간 등에 관한 성능 평가를 추진하여 시스템의 실용성을 검증하고자 한다. 또한 사진 데이터가 매우 많은 경우 여러 그래프로 분절하여 지식 그래프를 생성하고 이들을 연결하여 사용하는 방법을 시도할 예정이다. 또한 사진뿐만 아니라 카카오톡이나 문자 메시지와 같은 다른 형식의 데이터를 포함하여 현재의 지식 그래프를 확장할 예정이다.

References

  1. https://www.rd.com/list/things-smartphone-knows-about-you/, 13 Creepy Things Your Smartphone Knows About You
  2. https://citymagazine.si/en/13-very-disturbing-things-your-smartphone-knows-about-you/
  3. Chae-Won Park, et. al., "Camera App of Smartphone with Multi-Focus Shooting and Focus Post-processing Functions", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 24, No. 1, pp.189-196, 2024. DOI: https://doi.org/10.7236/JIIBC.2024.24.1.189
  4. https://www.ontotext.com/knowledgehub/fundamentals/what-is-a-knowledge-graph/, What is a KnowledgeGraph?
  5. https://www.ontotext.com/knowledgehub/white_paper/knowledge-graphs-in-the-enterprise-story-behind-the-hype/?hsCtaTracking=f5c8e589-2110-43bd-a28b-751fd360f2dd%7Cf0c3e4f6-da82-44ef-b395-2ef40123 d62c, Knowledge Graphs in the Enterprise: The Story Behind the Hype
  6. https://en.wikipedia.org/wiki/Google_Knowledge_Graph
  7. Jens Lehmann, el al., DBpedia - A Large-scale, Multilingual Knowledge Base Extracted from Wikipedia. Semantic Web Journal. Vol. 6, pp. 1-5, 2014. DOI: http://doi.org/10.3233/SW-140134
  8. Bilal Abu-Salih, Domain-specific knowledge graphs: A survey. Journal of Network and Computer Applications. Vol. 185. 2021. DOI: http://doi.org/103076.10.1016/j.jnca.2021.103076.
  9. Yi Luan, Luheng He, Mari Ostendorf, and Hannaneh Hajishirzi. Multi-Task Identification of Entities, Relations, and Coreference for Scientific Knowledge Graph Construction. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pp. 3219-3232, 2018. DOI: http://doi.org/10.18653/v1/D18-1360
  10. Woo Hyuk Kim, Jung Won Lee, Seungjun Ahn, Proposal of a Workflow Model for Generating a Construction Safety Guideline Knowledge Graph, Vol.1, No. 4, pp. 46-54, 2022. DOI: https://doi.org/10.55785/JCAR.1.4.46
  11. Edge, Darren et al. "From Local to Global: A Graph RAG Approach to Query-Focused Summarization." ArXiv abs/2404.16130, 2024. DOI: https://doi.org/10.48550/arXiv.2404.16130