KR20230037991A - 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법 - Google Patents

인공지능 서비스를 제공하는 디바이스 및 그 동작 방법 Download PDF

Info

Publication number
KR20230037991A
KR20230037991A KR1020210121180A KR20210121180A KR20230037991A KR 20230037991 A KR20230037991 A KR 20230037991A KR 1020210121180 A KR1020210121180 A KR 1020210121180A KR 20210121180 A KR20210121180 A KR 20210121180A KR 20230037991 A KR20230037991 A KR 20230037991A
Authority
KR
South Korea
Prior art keywords
neural network
network model
information
artificial intelligence
models
Prior art date
Application number
KR1020210121180A
Other languages
English (en)
Inventor
송민진
류종엽
엘무럿 탈리포브
가기환
박경춘
양자영
이정원
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020210121180A priority Critical patent/KR20230037991A/ko
Priority to PCT/KR2022/011502 priority patent/WO2023038300A1/ko
Publication of KR20230037991A publication Critical patent/KR20230037991A/ko
Priority to US18/600,376 priority patent/US20240211726A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

인공지능 서비스를 제공하는 디바이스 및 그 동작 방법을 제공한다. 본 개시의 일 실시예에 따른 디바이스는, 인공지능 서비스의 제공 목적 및 디바이스의 실행 환경과 관련된 신경망 요구 사항을 식별하고, 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택하고, 선택된 적어도 하나의 신경망 모델을 조합함으로써 인공지능 서비스의 제공을 위한 신경망 모델을 획득하고, 획득된 신경망 모델을 통해 인공지능 서비스를 제공할 수 있다.

Description

인공지능 서비스를 제공하는 디바이스 및 그 동작 방법 {THE DEVICE FOR PROVIDING AN ARTIFICIAL INTELLIGENCE SERVICE AND THE METHOD FOR OPERATING THE SAME}
본 개시는 인공지능(Artificial Intelligence; AI) 서비스를 제공하는 디바이스 및 그 동작 방법에 관한 것이다. 구체적으로, 본 개시는 인공지능 서비스의 제공 목적 및 디바이스의 실행 환경에 따라 구성된 신경망 모델을 이용하여, 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법에 관한 것이다.
최근에는, 인공지능(예를 들어, 기계 학습(Machine Learning), 딥 러닝(Deep learning)) 등의 기술이 발전함으로써, 음성, 이미지, 동영상 또는 텍스트 등의 데이터를 자동으로 인식하여 데이터와 연관된 정보를 제공하거나 데이터와 관련된 서비스를 제공하는 지능형 서비스(Intelligent Service)가 다양한 분야에서 사용되고 있다.
인공 지능 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥 러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예를 들어, 딥 러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소 기술은 딥 러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
디바이스는 실행 환경(예를 들어, 디바이스가 사용되는 위치 또는 시점)에 기초하여 인공지능 서비스의 제공 목적에 적합한 신경망 모델을 이용하여 입력 데이터에 관한 추론 결과를 제공할 수 있다. 여기서, '입력 데이터'는 디바이스의 주변 환경으로부터 센싱된 이미지, 동영상, 또는 텍스트 등의 데이터일 수 있다.
서버를 경유하지 않는 온-디바이스 방식의 인공지능 서비스는 디바이스에 설치된 서비스 애플리케이션 또는 컴퓨팅 프로그램에 포함된 신경망 모델을 이용하여 입력 데이터에 관한 추론을 수행한다. 이 경우, 추론에 이용되는 신경망 모델은 서비스 애플리케이션에 고정적으로(static) 배포 및 관리되고, 디바이스 내에 설치된 복수의 서비스 애플리케이션 간에 서로 공유되지 않는다. 따라서, 디바이스의 실행 환경에 따라 적합한 신경망 모델이 변경되는 경우, 신경망 모델의 변경에 따라 서비스 애플리케이션도 변경되어야 하는 한계점이 있다. 또한, 신경망 모델이 서비스 애플리케이션에 종속되므로, 2개 이상의 복수의 신경망 모델을 조합하여 사용할 수 없는 문제점이 있다.
본 개시는 인공지능 서비스의 제공 목적 및 디바이스의 실행 환경에 따라 선택적으로 조합함으로써 구성된 신경망 모델을 이용하여 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법에 관한 것이다.
상술한 기술적 과제를 해결하기 위하여 본 개시는 일 실시예는, 디바이스가 인공지능(AI) 서비스를 제공하는 방법을 제공한다. 상기 방법은, 인공지능 서비스의 제공 목적 및 상기 디바이스의 실행 환경과 관련된 신경망 요구 사항을 식별하는 단계, 기 등록된 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여, 상기 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택하는 단계, 상기 선택된 적어도 하나의 신경망 모델을 이용하여, 상기 인공지능 서비스의 제공을 위한 신경망 모델을 획득하는 단계, 및 상기 획득된 신경망 모델을 통해 상기 인공지능 서비스를 제공하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 방법은 외부 서버 또는 상기 디바이스 내의 메모리에 저장된 복수의 신경망 모델에 관한 상기 신경망 모델 정보를 획득하는 단계, 및 상기 획득된 신경망 모델 정보를 상기 메모리에 저장함으로써 상기 복수의 신경망 모델을 등록하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에서, 상기 신경망 모델 정보는 상기 복수의 신경망 모델 각각의 식별 정보, 성능 정보, 설치 정보, 및 평가 정보 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 신경망 요구 사항을 식별하는 단계는 상기 디바이스가 상기 인공지능 서비스를 제공하는 위치 및 시점에서, 상기 신경망 모델을 이용하여 인식하고자 하는 인식 대상 객체에 기초하여 상기 신경망 요구 사항을 결정하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 신경망 요구 사항을 식별하는 단계는 상기 디바이스의 실행 환경 정보, 상기 인공지능 서비스의 제공 목적에 따라 인식하고자 하는 인식 대상 객체 정보, 및 상기 인공지능 서비스를 제공하는 상기 디바이스의 하드웨어 리소스 특성 정보 중 적어도 하나에 기초하여 상기 신경망 요구 사항을 결정하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 실행 환경 정보는 상기 디바이스에 포함되는 센서를 이용하여 상기 디바이스의 내부 또는 외부의 사용 환경을 감지함으로써 획득한 정보, 통신 인터페이스를 통해 서버 또는 외부 디바이스로부터 수신된 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 신경망 모델을 선택하는 단계는, 상기 복수의 신경망 모델 각각의 인식 정확도(accuracy) 및 지연 시간(latency)에 관한 정보를 포함하는 성능 정보에 기초하여 상기 적어도 하나의 신경망 모델을 선택하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 방법은 외부 서버 또는 외부 데이터베이스로부터 상기 복수의 신경망 모델을 다운로드하여 상기 디바이스의 메모리에 저장하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 신경망 모델을 선택하는 단계는, 상기 신경망 요구 사항을 만족하는 복수의 신경망 모델을 선택하는 단계를 포함하고, 상기 신경망 모델을 획득하는 단계는, 상기 선택된 복수의 신경망 모델을 순차 구조, 병렬 구조, 또는 상기 순차 구조와 병렬 구조를 조합한 하이브리드(hybrid) 구조 중 어느 하나의 구조로 조합함으로써 상기 신경망 모델을 구성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 획득된 신경망 모델을 통해 상기 인공지능 서비스를 제공하는 단계는, 카메라를 이용하여 상기 디바이스의 주변을 촬영함으로써, 이미지 데이터를 획득하는 단계, 및 상기 획득된 신경망 모델에 상기 이미지 데이터를 적용함으로써, 상기 인공지능 서비스의 제공 목적에 대응하는 객체를 인식하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위하여 본 개시의 다른 실시예는, 온-디바이스(on-device) 인공지능(AI) 서비스를 제공하는 디바이스를 제공한다. 상기 디바이스는 적어도 하나의 명령어들(instructions)를 저장하는 메모리, 및 상기 적어도 하나의 명령어들을 실행하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는 상기 인공지능 서비스의 제공 목적 및 상기 디바이스의 실행 환경과 관련된 신경망 요구 사항을 식별하고, 기 등록된 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여 상기 복수의 신경망 모델 중 상기 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택하고, 상기 선택된 적어도 하나의 신경망 모델을 이용하여 상기 인공지능 서비스의 제공을 위한 신경망 모델을 획득하고, 상기 획득된 신경망 모델을 통해 상기 인공지능 서비스를 제공할 수 있다.
본 개시의 일 실시예에서, 상기 디바이스는 통신 인터페이스를 더 포함하고, 상기 적어도 하나의 프로세서는 상기 통신 인터페이스를 이용하여, 외부 서버로부터 상기 신경망 모델 정보를 획득하거나, 또는 상기 디바이스 내의 신경망 모델 저장부에 저장된 상기 복수의 신경망 모델로부터 상기 신경망 모델 정보를 획득하고, 상기 획득된 신경망 모델 정보를 상기 메모리에 저장함으로써 상기 복수의 신경망 모델을 등록할 수 있다.
본 개시의 일 실시예에서, 상기 신경망 모델 정보는 상기 복수의 신경망 모델 각각의 식별 정보, 성능 정보, 설치 정보, 및 평가 정보 중 적어도 하나의 정보를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서는 상기 디바이스의 실행 환경 정보, 상기 인공지능 서비스 제공 목적에 따라 인식하고자 하는 인식 대상 객체 정보, 및 상기 인공지능 서비스를 제공하는 상기 디바이스의 하드웨어 리소스 특성 정보 중 적어도 하나에 기초하여 상기 신경망 요구 사항을 결정할 수 있다.
본 개시의 일 실시예에서, 상기 디바이스는 통신 인터페이스, 및 상기 디바이스의 내부 또는 외부의 사용 환경을 감지하는 센서를 더 포함하고, 상기 적어도 하나의 프로세서는 상기 센서를 이용하여 획득된 상기 디바이스의 내부 또는 외부의 사용 환경에 관한 정보, 상기 통신 인터페이스를 통해 서버 또는 외부 디바이스로부터 수신된 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 포함하는 상기 실행 환경 정보를 획득할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서는 상기 복수의 신경망 모델 각각의 인식 정확도(accuracy) 및 지연 시간(latency)에 관한 정보를 포함하는 성능 정보에 기초하여 상기 적어도 하나의 신경망 모델을 선택할 수 있다.
본 개시의 일 실시예에서, 상기 디바이스는 통신 인터페이스를 더 포함하고, 상기 적어도 하나의 프로세서는 외부 서버 또는 외부 데이터베이스로부터 상기 복수의 신경망 모델을 다운로드하도록 상기 통신 인터페이스를 제어하고, 상기 다운로드된 복수의 신경망 모델을 상기 메모리에 저장할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서는 상기 신경망 요구 사항을 만족하는 복수의 신경망 모델을 선택하고, 상기 선택된 복수의 신경망 모델을 순차 구조, 병렬 구조, 또는 상기 순차 구조와 병렬 구조를 조합한 하이브리드(hybrid) 구조 중 어느 하나의 구조로 조합함으로써 상기 신경망 모델을 구성할 수 있다.
본 개시의 일 실시예에서, 상기 디바이스는 카메라를 더 포함하고, 상기 적어도 하나의 프로세서는 상기 카메라를 이용하여 주변을 촬영함으로써 이미지 데이터를 획득하고, 상기 획득된 신경망 모델에 상기 이미지 데이터를 적용함으로써, 상기 인공지능 서비스의 제공 목적에 대응하는 객체를 인식할 수 있다.
상술한 기술적 과제를 해결하기 위하여, 본 개시의 다른 실시예는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1a는 종래 기술에 따른 디바이스의 일부 구성을 도시한 블록도이다.
도 1b는 본 개시의 일 실시예에 따른 디바이스의 일부 구성을 도시한 블록도이다.
도 2는 본 개시의 일 실시예에 따른 디바이스의 구성 요소를 도시한 블록도이다.
도 3은 본 개시의 일 실시예에 따른 디바이스에 포함되는 구성 간의 데이터 흐름을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 디바이스의 동작 방법을 도시한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 디바이스가 신경망 모델을 구성하는 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 디바이스가 신경망 모델을 등록하는 방법을 도시한 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 디바이스가 신경망 모델의 등록 과정에서 획득한 신경망 모델 정보를 도시한 도면이다.
도 8a는 본 개시의 일 실시예에 따른 디바이스에 의해 단일 구조로 구성된 신경망 모델을 도시한 도면이다.
도 8b는 본 개시의 일 실시예에 따른 디바이스에 의해 복수의 신경망 모델을 순차적으로 조합하여 구성된 신경망 모델을 도시한 도면이다.
도 8c는 본 개시의 일 실시예에 따른 디바이스에 의해 복수의 신경망 모델을 병렬 구조로 조합하여 구성된 신경망 모델을 도시한 도면이다.
도 8d는 본 개시의 일 실시예에 따른 디바이스에 의해 복수의 신경망 모델을 병렬 구조로 조합하여 구성된 신경망 모델을 도시한 도면이다.
도 8e는 본 개시의 일 실시예에 따른 디바이스에 의해 복수의 신경망 모델을 하이브리드 구조로 조합하여 구성된 신경망 모델을 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른 디바이스가 인공지능 서비스를 제공하는 방법을 도시한 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 디바이스 내의 복수의 구성 간의 동작을 도시한 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 디바이스 및 서버의 동작을 도시한 흐름도이다.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 개시 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 시스템"이라는 표현은, 그 시스템이 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
또한, 본 개시에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
본 개시에서 '인공지능(Artificial Intelligence; AI) 서비스'는 디바이스가 인공지능 기술(예를 들어, 인공 신경망 모델(Artificial Neural Network; ANN), 심층 신경망 모델(Deep Neural Network), 강화 학습(Reinforcement Learning), 의사 결정 트리 학습, 분류기 모델(classification model))을 이용하여 입력 데이터에 관한 추론 결과를 제공하는 기능 및/또는 동작을 의미한다. 본 개시에서, '입력 데이터'는 이미지 데이터, 사운드 신호, 센서 감지 데이터, 인터넷으로부터 수집된 데이터, 또는 이들의 조합 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에서, 인공지능 서비스는 디바이스에 의해 실행되는 서비스 애플리케이션에 의해 제공될 수 있다.
본 개시에서 '서비스 애플리케이션'은 인공지능 서비스의 제공 목적에 따른 서비스를 제공하는 소프트웨어이다. 본 개시의 일 실시예에서, 서비스 애플리케이션은 신경망 모델을 이용하여 입력 데이터로부터 추론 결과를 획득하고, 추론 결과에 따라 하나 이상의 기능 및/또는 동작을 수행할 수 있다. 본 개시의 일 실시예에서, 서비스 애플리케이션은 실행 환경에 따라 트리거링 이벤트(triggering event)(예를 들어, 카메라를 이용하여 이미지 데이터를 획득, 센서를 이용하여 주변 환경을 스캔함으로써 센싱 데이터 획득, 또는 커맨드 수신 등)를 검출하고, 트리거링 이벤트에 응답하여 신경망 모델을 이용하여 추론 데이터를 획득할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 개시의 실시예들을 상세하게 설명한다.
도 1a는 일반적인 디바이스(100)의 일부 구성을 도시한 블록도이다.
도 1a를 참조하면, 디바이스(100)는 복수의 서비스 애플리케이션(122-1, 122-2, 122-3)을 포함할 수 있다. 복수의 서비스 애플리케이션(122-1, 122-2, 122-3)은 디바이스(100)에 설치된 소프트웨어 프로그램으로서, 디바이스(100)의 메모리 내에 저장될 수 있다.
복수의 서비스 애플리케이션(122-1, 122-2, 122-3)은 신경망 모델을 이용하여 입력 데이터에 따른 추론 결과를 획득하고, 추론 결과에 따라 하나 이상의 기능 및/또는 동작을 수행하는 소프트웨어이다. 복수의 서비스 애플리케이션(122-1, 122-2, 122-3)은 하나의 신경망 모델(124-1, 124-2, 124-3)을 각각 포함할 수 있다. 도 1a를 참조하면, 제1 서비스 애플리케이션(122-1)은 제1 신경망 모델(124-1)을 포함하고, 제2 서비스 애플리케이션(122-2)은 제2 신경망 모델(124-2)을 포함하며, 제3 서비스 애플리케이션(122-3)은 제3 신경망 모델(124-3)을 포함할 수 있다. 도 1a에서는 하나의 서비스 애플리케이션이 하나의 신경망 모델만을 포함하는 것으로 도시되었으나, 이에 한정되는 것은 아니다.
디바이스(100)는 서비스 애플리케이션을 실행함으로써, 신경망 모델을 이용하여 획득된 추론 결과에 따른 기능 및/또는 동작을 수행할 수 있다.
도 1a에 도시된 일반적인 디바이스(100)의 경우, 신경망 모델(124-1, 124-2, 124-3)이 복수의 서비스 애플리케이션(122-1, 122-2, 122-3)에 각각 고정적으로(static) 배포 및 관리되고, 신경망 모델(124-1, 124-2, 124-3)이 복수의 서비스 애플리케이션(122-1, 122-2, 122-3) 사이에서 서로 공유되지 않는다. 따라서, 디바이스(100)의 실행 환경에 따라 적합한 신경망 모델이 변경되는 경우, 신경망 모델의 변경에 따라 서비스 애플리케이션도 변경되어야 하는 한계점이 있다.
또한, 디바이스(100)가 메모리 등 내부에 저장된 신경망 모델(124-1, 124-2, 124-3)을 이용하여 인공지능 서비스를 제공하는 온-디바이스(on-device) 방식의 경우, 신경망 모델(124-1, 124-2, 124-3)은 디바이스(100)의 프로세서, 메모리 등의 하드웨어 리소스 및 연산 능력에 따라 신경망 모델의 용량 및 기능이 제한된 경량화된 모델일 수 있다. 도 1a에 도시된 일반적인 디바이스(100)의 경우, 신경망 모델(124-1, 124-2, 124-3)이 복수의 서비스 애플리케이션(122-1, 122-2, 122-3)에 종속되므로, 2개 이상의 복수의 신경망 모델을 조합하여 사용할 수 없으므로, 추론 결과의 정확도가 낮고, 처리 시간이 오래 걸리는 단점이 있다.
도 1b는 본 개시의 일 실시예에 따른 디바이스(1000)의 일부 구성을 도시한 블록도이다.
도 1b를 참조하면, 디바이스(1000)는 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3) 및 신경망 모델 저장부(1240)를 포함할 수 있다.
복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3)은 디바이스(1000)에 설치된 소프트웨어 프로그램으로서, 디바이스(1000)의 메모리(1200, 도 2 참조) 내에 저장될 수 있다. 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3)은 신경망 모델을 이용하여 입력 데이터에 따른 추론 결과를 획득하고, 추론 결과에 따라 하나 이상의 기능 및/또는 동작을 수행하는 소프트웨어이다.
신경망 모델 저장부(1240)는 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)을 저장할 수 있다. 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)은 영상 인식, 음성 인식, 또는 센서 인식 등 인공지능 서비스 제공 목적에 따라 트레이닝(training)된 기계 학습 모델이다. 일 실시예에서, 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)은 컨볼루션 신경망(convolution neural network; CNN, 순환 신경망(recurrent neural network; RNN), SVM(Support Vector Machine), 선형 회귀(linear regression), 로지스틱 회귀(logistic regression), 나이브 베이즈 분류(Naive Bayes), 랜덤 포레스트(random forest), decision tree, 또는 k-nearest neighbor algorithm 중 적어도 하나의 모델로 구성될 수 있다. 또는, 전술한 것의 조합 또는 이와 다른 인공지능 모델일 수도 있다. 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)은 예를 들어, Efficientdet-B3, Efficientnet-B0, YOLO-v4, RefineDet, 또는 M2Det 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
디바이스(1000)는 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3)의 신경망 요구 사항을 식별하고, 신경망 요구 사항에 기초하여 신경망 모델(1240a, 1240b, 1240c)을 획득할 수 있다. 여기서, '신경망 요구 사항'은 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3)의 실행을 통해 제공되는 인공지능 서비스의 목적 및 디바이스(1000)가 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3) 중 어느 하나의 서비스 애플리케이션을 실행하는 실행 환경과 관련하여 신경망 모델을 구성하기 위한 요건을 나타낸다. 일 실시예에서, 신경망 요구 사항은 디바이스(1000)가 인공지능 서비스를 제공하기 위하여 서비스 애플리케이션을 실행하는 위치 및 시점에서, 신경망 모델을 이용하여 인식하고자 하는 인식 대상 객체에 기초하여 결정될 수 있다. 다른 실시예에서, 신경망 요구 사항은 디바이스(1000)의 실행 환경(예를 들어, 실행 위치 및 시점), 인식 대상 객체, 및 디바이스(1000)의 하드웨어 리소스 중 적어도 하나에 기초하여 결정될 수 있다.
'인공지능 서비스의 제공 목적'은 디바이스(1000)가 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3)을 실행함으로써 수행하는 기능 및/또는 동작을 통해 제공되는 서비스의 목적을 나타낸다. 도 1b에 도시된 실시예에서, 제1 서비스 애플리케이션(1220-1)은 펫 케어(pet care) 애플리케이션으로서, 제1 서비스 애플리케이션(1220-1)의 인공지능 서비스 제공 목적은 강아지, 고양이, 햄스터, 토끼 등 반려 동물의 동작 모니터링 및 관리일 수 있다. 제2 서비스 애플리케이션(1220-2)은 청소 애플리케이션으로서, 제2 서비스 애플리케이션(1220-2)의 인공지능 서비스 제공 목적은 청소를 위한 장애물 감지 및 장애물 회피일 수 있다.
디바이스(1000)는 신경망 요구 사항에 기초하여, 신경망 모델 저장부(1240)에 저장된 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n) 중 적어도 하나의 신경망 모델을 선택하고, 선택된 신경망 모델을 이용하여 복수의 신경망 모델(1240a, 1240b, 1240c)을 획득할 수 있다. 일 실시예에서, 디바이스(1000)는 신경망 모델 정보를 이용하여, 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택할 수 있다. 신경망 모델 정보는 예를 들어, 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)의 식별 정보, 성능 정보(capability), 설치 정보, 및 평가 정보 중 적어도 하나를 포함할 수 있다. 도 1b에 도시된 실시예에서, 디바이스(1000)는 제1 서비스 애플리케이션(1220-1)의 신경망 모델 정보에 기초하여, 신경망 요구 사항을 만족하는 신경망 모델로서 제1 신경망 모델(1240-1), 제2 신경망 모델(1240-2) 및 제3 신경망 모델(1240-3)을 선택할 수 있다. 또한, 디바이스(1000)는 제2 서비스 애플리케이션(1220-2)의 신경망 모델 정보에 기초하여, 신경망 요구 사항을 만족하는 신경망 모델로서 제3 신경망 모델(1240-3) 및 제n 신경망 모델(1240-n)을 선택하고, 제3 서비스 애플리케이션(1220-3)에 대해서는 제1 신경망 모델(1240-1), 제3 신경망 모델(1240-3)을 선택할 수 있다.
디바이스(1000)는 선택된 적어도 하나의 신경망 모델을 이용하여 인공지능 서비스 제공을 위한 신경망 모델(1240a, 1240b, 1240c)를 획득할 수 있다. 일 실시예에서, 디바이스(1000)는 선택된 적어도 하나의 신경망 모델이 하나인 경우 단일 구조로 이용하고, 선택된 적어도 하나의 신경망 모델이 복수 개인 경우 순차 구조 또는 병렬 구조로 조합함으로써, 인공지능 서비스 제공을 위한 신경망 모델(1240a, 1240b, 1240c)을 구성할 수 있다. 도 1b에 도시된 실시예에서, 신경망 모델 A(1240a)는 제1 신경망 모델(1240-1), 제2 신경망 모델(1240-2) 및 제3 신경망 모델(1240-3)의 조합을 통해 구성될 수 있다. 마찬가지로, 신경망 모델 B(1240b)는 제3 신경망 모델(1240-3) 및 제n 신경망 모델(1240-n)의 조합에 의해 구성되고, 신경망 모델 C(1240c)는 제1 신경망 모델(1240-1) 및 제3 신경망 모델(1240-3)의 조합에 의해 구성될 수 있다.
디바이스(1000)는 실행 환경에 따라 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3) 중 어느 하나의 서비스 애플리케이션을 실행함으로써, 신경망 모델(1240a, 1240b, 1240c)를 이용한 추론 결과에 따른 기능 및/또는 동작을 수행할 수 있다. 예를 들어, 디바이스(1000)는 펫 케어(pet care) 애플리케이션인 제1 서비스 애플리케이션(1220-1)을 실행함으로써, 신경망 모델 A(1240a)를 이용하여 주변 환경 이미지로부터 강아지, 고양이, 햄스터, 또는 토끼 등 반려 동물을 인식 결과로서 출력하고, 출력 결과에 따른 펫 케어 관련 기능 및/또는 동작을 수행할 수 있다. 다른 예를 들어, 디바이스(1000)는 청소 애플리케이션인 제2 서비스 애플리케이션(1220-2)을 실행함으로써, 신경망 모델 B(1240b)를 이용하여 실내 공간을 촬영한 이미지로부터 실내 공간 내 장애물을 검출하고, 검출된 장애물을 회피하는 청소 동작을 수행할 수 있다.
도 1b에 도시된 실시예에 따른 디바이스(1000)는 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3)의 신경망 요구 사항을 식별하고, 신경망 요구 사항에 기초하여 적어도 하나의 신경망 모델을 선택하며, 선택된 적어도 하나의 신경망 모델을 이용하여 인공지능 서비스 제공을 위한 신경망 모델(1240a, 1240b, 1240c)을 획득할 수 있다. 도 1b에 도시된 실시예에서, 신경망 모델 저장부(1240)에 저장된 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)은 서비스 애플리케이션(1220-1, 1220-2, 1220-3)에 따라 종속되지 않고, 신경망 요구 사항에 기초하여 선택적으로 조합될 수 있으므로, 디바이스(1000)의 실행 환경에 따라 신경망 모델이 변경되더라도 서비스 애플리케이션이 변경될 필요가 없다.
또한, 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)은 복수의 서비스 애플리케이션(1220-1, 1220-2, 1220-3) 사이에서 공유되고, 선택적으로 교체될 수도 있다. 따라서, 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n)이 디바이스(1000)의 하드웨어 리소스 및 연산 능력에 따라 경량화된 모델이라도, 복수의 신경망 모델(1240-1, 1240-2, 1240-3, ... , 1240-n) 중 적어도 하나의 신경망 모델이 조합됨으로써 구성된 신경망 모델(1240a, 1240b, 1240c)은 높은 추론 정확도를 제공하고, 추론에 소요되는 처리 시간(processing time)을 단축시킬 수 있다.
도 2는 본 개시의 일 실시예에 따른 디바이스(1000)의 구성 요소를 도시한 블록도이다.
디바이스(1000)는 서비스 애플리케이션(1220-1 내지 1220-n)을 실행함으로써 인공지능 서비스를 제공하는 장치이다. 디바이스(1000)는 예를 들어, 스마트 폰(smart phone), 태블릿 PC, 노트북 컴퓨터(laptop computer), 디지털 카메라, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 또는 MP3 플레이어를 포함하는 모바일 단말 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 디바이스(1000)는 가전기기로 구성될 수 있다. 디바이스(1000)는 예를 들어, TV, 세탁기, 냉장고, 김치 냉장고, 에어컨, 공기 청정기, 청소기, 의류 관리기, 오븐, 전자레인지, 인덕션, 오디오 출력 장치, 또는 스마트 홈 허브 장치 중 어느 하나일 수 있다. 일 실시예에서, 디바이스(1000)는 청소 로봇일 수 있다.
도 2를 참조하면, 디바이스(1000)는 프로세서(1100) 및 메모리(1200)를 포함할 수 있다.
프로세서(1100)는 메모리(1200)에 저장된 프로그램의 하나 이상의 명령어들(instructions)을 실행할 수 있다. 프로세서(1100)는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행하는 하드웨어 구성 요소로 구성될 수 있다. 프로세서(1100)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 및 FPGAs(Field Programmable Gate Arrays) 중 적어도 하나로 구성될 수 있으나, 이에 한정되는 것은 아니다.
도 2에는 프로세서(1100)가 하나의 엘리먼트로 도시되었으나, 이에 한정되는 것은 아니다. 일 실시예에서, 프로세서(1100)는 하나 또는 하나 이상의 복수 개로 구성될 수 있다.
일 실시예에서, 프로세서(1100)는 인공 지능(Artificial Intelligence; AI) 학습을 수행하는 AI 프로세서를 포함할 수 있다. 이 경우, AI 프로세서는 인공지능(AI) 시스템의 신경망 모델을 이용하는 추론을 수행할 수 있다. AI 프로세서는, 인공 지능(AI)을 위한 전용 하드웨어 칩 형태(예를 들어, NPU(Neural Processing Unit))로 제작될 수도 있고, 또는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 그래픽 전용 프로세서(예를 들어, GPU)의 일부로 제작되어 디바이스(1000)에 탑재될 수도 있다.
메모리(1200)는 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 또는 광 디스크 중 적어도 하나의 타입의 저장매체로 구성될 수 있다.
메모리(1200)에는 프로세서(1100)가 판독할 수 있는 명령어들, 알고리즘(algorithm), 데이터 구조, 및 프로그램 코드(program code) 중 적어도 하나가 저장될 수 있다. 메모리(1200)에 저장되는 명령어들, 알고리즘, 데이터 구조, 및 프로그램 코드는 예를 들어, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 
메모리(1200)는 신경망 정보 등록 모듈(1210), 복수의 서비스 애플리케이션(1220-1 내지 1220-n), 미들웨어(1230), 신경망 모델 저장부(1240), 및 AI 시스템 드라이버(1250)를 포함할 수 있다. 메모리(1200)에 포함되는 구성 요소는 프로세서(1100)에 의해 수행되는 기능이나 동작을 처리하는 단위를 의미하고, 이는 명령어들 또는 프로그램 코드와 같은 소프트웨어로 구현될 수 있다.
이하의 실시예에서, 프로세서(1100)는 메모리(1200)에 저장된 프로그램의 명령어들 또는 프로그램 코드들을 실행함으로써 구현될 수 있다.
신경망 정보 등록 모듈(1210)은 복수의 신경망 모델에 관한 신경망 모델 정보를 미들웨어(1230)에 제공함으로써, 복수의 신경망 모델을 미들웨어(1230)에 등록하도록 구성되는 소프트웨어 모듈이다.
신경망 모델은 영상 인식, 음성 인식, 또는 센서 인식 등 인공지능 서비스 제공 목적에 따라 트레이닝(training)된 기계 학습 모델이다. 일 실시예에서, 신경망 모델은 컨볼루션 신경망(convolution neural network; CNN, 순환 신경망(recurrent neural network; RNN), SVM(Support Vector Machine), 선형 회귀(linear regression), 로지스틱 회귀(logistic regression), 나이브 베이즈 분류(Naive Bayes), 랜덤 포레스트(random forest), decision tree, 또는 k-nearest neighbor algorithm 중 적어도 하나의 모델로 구성될 수 있다. 또는, 전술한 것의 조합 또는 이와 다른 인공지능 모델일 수도 있다. 신경망 모델은 예를 들어, Efficientdet-B3, Efficientnet-B0, YOLO-v4, RefineDet, 또는 M2Det 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
프로세서(1100)는 신경망 정보 등록 모듈(1210)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 복수의 신경망 모델에 관한 신경망 모델 정보를 획득하고, 획득된 신경망 모델 정보를 미들웨어(1230)에 등록할 수 있다. 여기서, '등록'은 신경망 모델 정보를 미들웨어(1230)에 제공하고, 미들웨어(1230)에서 접근 가능한 저장 공간에 저장하는 동작을 의미한다. 프로세서(1100)는 디바이스(1000)가 실행되고 있는 동안 1회 이상 등록 과정을 실행할 수 있다.
신경망 모델 정보는, 복수의 신경망 모델에 관한 식별 정보, 성능 정보, 설치 정보, 및 평가 정보를 포함할 수 있다. 식별 정보는 신경망 모델의 식별자(id 정보), 버전 정보를 포함할 수 있다. 성능 정보는 신경망 모델이 수행할 수 있는 기능에 관한 정보를 나타내고, 신경망 특성, 신경망 종류, 사용 환경, 지원 시스템, 입력 형식, 결과 형식, 정확도, 및 지연 시간에 관한 정보를 포함할 수 있다. 설치 정보는 신경망 모델이 설치된 위치에 관한 정보로서, 저장 경로 및 배포 방법에 관한 정보를 포함할 수 있다. 평가 정보는 신경망 모델이 제공하는 기능에 관한 성능 평가 결과 지표에 관한 정보를 포함할 수 있다.
일 실시예에서, 프로세서(1100)는 신경망 모델 저장부(1240)에 저장된 복수의 신경망 모델로부터 신경망 모델 정보를 획득할 수 있지만, 이에 한정되는 것은 아니다. 다른 실시예에서, 디바이스(1000)는 외부 서버와 유선 또는 무선 통신 네트워크를 통해 데이터를 송수신할 수 있는 통신 인터페이스(미도시)를 더 포함하고, 프로세서(1100)는 통신 인터페이스를 통해 외부 서버로부터 복수의 신경망 모델의 신경망 모델 정보를 수신할 수도 있다. 외부 서버는 디바이스(1000)의 제조사와 동일한 주체에 의해 운영되는 서버일 수 있지만, 이에 한정되지 않고, 공동의 사용 목적을 위하여 타사에 의해 운영되는 퍼블릭 서버(public server)일 수도 있다. 퍼블릭 서버에 의해 제공되는 복수의 신경망 모델은 여러 주체에 의해 사용되도록 허용된 공개된 모델(public model)일 수 있다.
신경망 모델 정보는 전술한 바와 같이 명시적으로 제공될 수도 있지만, 이에 한정되는 것은 아니다. 일 실시예에서, 신경망 모델 정보는 자동으로 생성될 수도 있다.
프로세서(1100)가 신경망 정보 등록 모듈(1210)을 이용하여, 복수의 신경망 모델을 등록하는 실시예에 대해서는 도 6 및 도 7에서 상세하게 설명하기로 한다.
복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 미들웨어(1230)에 의해 구성된 신경망 모델을 이용하여 입력 데이터에 따른 추론 결과를 획득하고, 추론 결과에 따라 하나 이상의 기능 및/또는 동작을 수행하는 소프트웨어이다. 복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 서로 다른 서비스 제공 목적에 따라 기능을 제공할 수 있다. 예를 들어, 제1 서비스 애플리케이션(1220-1)은 강아지, 고양이, 햄스터, 토끼 등 반려 동물의 동작 모니터링 및 관리 목적의 소프트웨어이고, 제2 서비스 애플리케이션(1220-2)은 청소 동작을 수행하기 위하여 장애물(예를 들어, 바닥에 놓여있는 전선, 양말, 장난감, 걸레 등)을 감지 및 회피하여 청소하는 목적을 갖는 소프트웨어일 수 있다.
복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 디바이스(1000)의 실행 환경에 관한 정보를 획득하고, 실행 환경 및 인공지능 서비스 제공 목적에 기초하여 신경망 요구 사항을 결정할 수 있다. 일 실시예에서, 디바이스(1000)는 센서를 포함하고, 프로세서(1100)는 센서를 이용하여 디바이스(1000)의 실행 환경과 관련된 정보를 획득할 수 있다. 예를 들어, 프로세서(1100)는 센서를 이용하여 디바이스(1000)가 실행되고 있는 위치 및 시점에 관한 정보뿐만 아니라, 조도, 온도 또는 습도에 관한 정보를 획득할 수 있다. 일 실시예에서, 프로세서(1100)는 센서를 이용하여 획득된 정보뿐만 아니라, 유선 또는 무선 네트워크를 통해 인터넷으로부터 획득한 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 포함하는 사용 환경 정보를 획득할 수 있다. 복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 실행 환경 정보 및 인공지능 서비스 제공 목적뿐만 아니라, 디바이스(1000)의 하드웨어 리소스 및 연산 능력에 기초하여 신경망 요구 사항을 결정할 수 있다. '하드웨어 리소스'는 프로세서(1100)의 연산, 추론 능력 및 메모리(1200)의 용량에 관한 하드웨어 정보를 포함할 수 있다.
일 실시예에서, 복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 신경망 모델 정보에 포함되는 신경망 모델의 정확도(accuracy) 및 지연 시간(latency)에 관하여 설정된 기준 값에 관한 정보에 기초하여 신경망 요구 사항을 결정할 수 있다. 예를 들어, 복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 신경망 모델에 대하여 기대하는 추론 성능 및 추론 정확도를 얻기 위하여, 신경망 모델의 정확도에 관한 최소 기준값 및 지연 시간에 관한 최대 기준 시간을 설정하고, 정확도에 관하여 설정된 최소 기준값 및 지연 시간에 관한 최대 기준 시간에 기초하여 신경망 요구 사항을 결정할 수 있다.
복수의 서비스 애플리케이션(1220-1 내지 1220-n)은 신경망 요구 사항과 함께, 신경망 모델의 제공을 요청하는 신경망 요청 신호를 미들웨어(1230)에 제공할 수 있다.
미들웨어(middleware)(1230)는 신경망 모델의 선택 및 조합과 복수의 서비스 애플리케이션(1220-1 내지 1220-n)의 실행을 관리 및 제어하는 소프트웨어이다. 미들웨어(1230)는 신경망 모델 정보를 저장 및 관리하고, 신경망 모델 정보를 이용하여 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다. 신경망 모델 정보는 미들웨어(middleware)(1230)에서 사용 가능한 시스템 저장 공간에서 관리될 수 있다.
프로세서(1100)는 미들웨어(1230)와 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 신경망 모델 저장부(1240)에 저장된 복수의 신경망 모델 중 적어도 하나의 신경망 모델을 선택하고, 선택된 적어도 하나의 신경망 모델을 이용하여 인공지능 서비스 제공을 위한 신경망 모델을 획득할 수 있다.
프로세서(1100)는 미들웨어(1230)에 등록된 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여, 복수의 서비스 애플리케이션(1220-1 내지 1220-n)에 의해 제공된 서비스 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택할 수 있다. 일 실시예에서, 프로세서(1100)는 신경망 요구 사항에 포함되는 디바이스(1000)의 실행 환경 정보 및 인공지능 서비스의 제공 목적뿐만 아니라, 신경망 모델의 인식 정확도 및 지연 시간에 기초하여, 신경망 모델 저장부(1240)에 저장된 복수의 신경망 모델 중 적어도 하나의 신경망 모델을 선택할 수 있다. 일 실시예에서, 프로세서(1100)는 신경망 요구 사항에 포함되는 인식 정확도에 관하여 설정된 최소 기준값 및 지연 시간에 관하여 설정된 최대 지연 시간을 만족하는 적어도 하나의 신경망 모델을 선택할 수 있다.
프로세서(1100)는 선택된 적어도 하나의 신경망 모델을 이용하여 인공지능 서비스 제공을 위한 신경망 모델을 획득할 수 있다. 일 실시예에서, 프로세서(1100)는 하나의 신경망 모델만을 선택할 수 있고, 이 경우 단일 구조로 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다. 다른 실시예에서, 프로세서(1100)는 복수의 신경망 모델을 선택하고, 선택된 복수의 신경망 모델을 병렬 구조(parallel), 순차 구조(sequential), 및 하이브리드(hybrid) 구조 중 적어도 하나의 구조로 조합하여 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다. 프로세서(1100)가 하나의 신경망 모델을 단일 구조로 이용하거나, 또는 복수의 신경망 모델을 조합하여 인공지능 서비스 제공을 위한 신경망 모델을 구성하는 구체적인 실시예에 대해서는 도 8a 내지 도 8e를 참조하여 상세하게 설명하기로 한다.
신경망 모델 저장부(1240)는 복수의 신경망 모델을 저장하는 저장부(storage)이다. 일 실시예에서, 신경망 모델 저장부(1240)는 비휘발성 메모리로 구성될 수 있다. 비휘발성 메모리(Non-volatile memory)는 전원이 공급되지 않은 상태에서도 정보를 저장 및 유지하고, 전원이 공급되면 다시 저장된 정보를 사용할 수 있는 기억 매체를 의미한다. 비휘발성 메모리는 예를 들어, 플래시 메모리(flash memory), 하드디스크(hard disk), SSD(Solid State Drive), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 롬(Read Only Memory; ROM), 자기 디스크, 또는 광디스크 중 적어도 하나를 포함할 수 있다.
도 2에서 신경망 모델 저장부(1240)는 메모리(1200)에 포함되는 구성 요소로 도시되었지만, 이에 한정되는 것은 아니다. 일 실시예에서, 신경망 모델 저장부(1240)는 메모리(1200)와는 별개의 구성 요소로서 디바이스(1000) 내에 포함되거나, 또는 디바이스(1000)에 포함되지 않은 외장 메모리 형태로 구현될 수 있다. 그러나, 이에 한정되는 것은 아니고, 신경망 모델 저장부(1240)는 통신 인터페이스(미도시)를 통해 유무선 통신 네트워크를 통해 연결되는 웹 기반 저장 매체로 구현될 수도 있다.
프로세서(1100)는 통신 인터페이스를 이용하여 외부 서버 또는 외부 데이터베이스로부터 복수의 신경망 모델을 다운로드(download)하고, 다운로드된 복수의 신경망 모델을 신경망 모델 저장부(1240)에 저장할 수 있다. 일 실시예에서, 프로세서(1100)는 복수의 서비스 애플리케이션(1220-1 내지 1220-n) 중 어느 하나의 서비스 애플리케이션이 실행되는 런 타임(run time)에 복수의 신경망 모델을 다운로드할 수 있다. 그러나, 이에 한정되는 것은 아니고, 프로세서(1100)는 디바이스(1000)의 전원이 온(on)되는 시점 또는 복수의 서비스 애플리케이션(1220-1 내지 1220-n)으로부터 신경망 요청 신호를 수신하는 시점에 복수의 신경망 모델을 다운로드 할 수 있다.
AI 시스템 드라이버(1250)는 인공지능 서비스 제공을 위해 구성된 신경망 모델이 프로세서(1100)에 의해 실행될 수 있도록 하는 소프트웨어이다. 일 실시예에서, 프로세서(1100)는 신경망 모델을 이용하는 추론을 수행할 수 있는 AI 프로세서(1110, 도 3 참조)를 포함하고, AI 시스템 드라이버(1250)는 AI 프로세서(1110)에 의해 신경망 모델이 구동될 수 있도록 신경망 모델을 AI 프로세서(1110)에 제공할 수 있다.
프로세서(1100)는 신경망 모델을 이용하여 인공지능 서비스를 제공할 수 있다. 프로세서(1100)는 신경망 모델에 입력 데이터를 적용하고, 추론을 수행함으로써 출력값을 획득할 수 있다. '입력 데이터'는 이미지 데이터, 사운드 신호, 센서 감지 데이터, 인터넷으로부터 수집된 데이터, 또는 이들의 조합 중 적어도 하나를 포함할 수 있다. 입력 데이터는 예를 들어, 카메라를 이용하여 촬영하여 획득된 주변 환경에 관한 이미지 데이터일 수 있다.
일 실시예에서, 디바이스(1000)는 주변 환경을 촬영함으로써 이미지 데이터를 획득하는 카메라를 더 포함할 수 있다. 프로세서(1100)는 카메라로부터 획득한 주변 환경의 이미지 데이터를 신경망 모델에 입력 데이터로 적용하고, 신경망 모델을 이용하는 추론을 수행함으로써 이미지 데이터로부터 객체를 인식할 수 있다. 프로세서(1100)는 인식된 객체를 이용하여 인공지능 서비스 제공 목적에 따른 기능 및/또는 동작을 수행할 수 있다. 예를 들어, 프로세서(1100)는 복수의 서비스 애플리케이션(1220-1 내지 1220-n) 중 어느 하나의 서비스 애플리케이션을 실행함으로써, 펫 케어(pet care) 서비스, 청소 동작, 에어컨 온도 제어, 또는 공기 청정기의 실내 공기질 모니터링 등 인공지능 서비스를 제공할 수 있다.
프로세서(1100)가 신경망 모델을 이용하여 인공지능 서비스를 제공하는 구체적인 실시예에 대해서는 도 9를 참조하여 상세하게 설명하기로 한다.
도 3은 본 개시의 일 실시예에 따른 디바이스(1000)에 포함되는 구성 간의 데이터 흐름을 설명하기 위한 도면이다.
도 3을 참조하면, 디바이스(1000)는 AI 프로세서(1110), 신경망 정보 등록 모듈(1210), 서비스 애플리케이션(1220), 미들웨어(1230), 신경망 모델 저장부(1240), 및 AI 시스템 드라이버(1250)를 포함할 수 있다. 도 3에 도시된 신경망 정보 등록 모듈(1210), 서비스 애플리케이션(1220), 미들웨어(1230), 신경망 모델 저장부(1240), 및 AI 시스템 드라이버(1250)은 도 2에 도시된 신경망 정보 등록 모듈(1210), 서비스 애플리케이션(1220), 미들웨어(1230), 신경망 모델 저장부(1240), 및 AI 시스템 드라이버(1250)과 각각 동일하므로, 각 구성에 관한 중복되는 설명은 생략한다.
단계 S310에서, 신경망 정보 등록 모듈(1210)은 신경망 모델 정보를 미들웨어(1230)에 제공한다. 일 실시예에서, 신경망 모델 정보는 복수의 신경망 모델(1240-1 내지 1240-n)에 관한 식별 정보, 성능 정보, 설치 정보, 및 평가 정보를 포함할 수 있다. 식별 정보는 복수의 신경망 모델(1240-1 내지 1240-n)의 식별자(id 정보), 버전 정보를 포함할 수 있다. 성능 정보는 복수의 신경망 모델(1240-1 내지 1240-n)이 수행할 수 있는 기능에 관한 정보를 나타내고, 신경망 특성, 신경망 종류, 사용 환경, 지원 시스템, 입력 형식, 결과 형식, 정확도, 및 지연 시간에 관한 정보를 포함할 수 있다. 설치 정보는 복수의 신경망 모델(1240-1 내지 1240-n)이 설치된 위치에 관한 정보로서, 저장 경로 및 배포 방법에 관한 정보를 포함할 수 있다. 평가 정보는 복수의 신경망 모델(1240-1 내지 1240-n)이 제공하는 기능에 관한 성능 평가 결과 지표에 관한 정보를 포함할 수 있다.
신경망 정보 등록 모듈(1210)은 신경망 모델 정보를 미들웨어(1230)에 제공함으로써, 복수의 신경망 모델(1240-1 내지 1240-n)을 미들웨어(1230)에 등록할 수 있다. 신경망 정보 등록 모듈(1210)은 신경망 모델 저장부(1240)에 저장된 제1 신경망 모델(1240-1)에 관한 제1 신경망 모델 정보(1242-1), 제2 신경망 모델(1240-2)에 관한 제2 신경망 모델 정보(1242-2), ... , 및 제n 신경망 모델(1240-n)에 관한 제n 신경망 모델 정보(1242-n)를 미들웨어(1230)에 제공함으로써, 복수의 신경망 모델(1240-1 내지 1240-n)을 등록할 수 있다. 미들웨어(1230)는 제1 신경망 모델 정보(1242-1) 내지 제n 신경망 모델 정보(1242-n)를 저장할 수 있다.
단계 S320에서, 서비스 애플리케이션(1220)은 신경망 요청 신호를 미들웨어(1230)에 전송한다. 일 실시예에서, 서비스 애플리케이션(1220)은 신경망 요청 신호와 함께 신경망 요구 사항을 미들웨어(1230)에 전송할 수 있다. 신경망 요구 사항은 디바이스(1000)의 실행 환경(예를 들어, 디바이스(1000)가 서비스 애플리케이션(1220)을 실행하는 위치 및 시점에 관한 정보), 인공지능 서비스의 제공 목적, 및 디바이스(1000)의 하드웨어 리소스 특성 중 적어도 하나에 관한 정보에 기초하여 결정될 수 있다.
미들웨어(1230)는 서비스 애플리케이션(1220)으로부터 수신한 신경망 요청 신호에 응답하여 복수의 신경망 모델(1240-1 내지 1240-n)을 선택적으로 조합함으로써 인공지능 서비스 제공을 위한 신경망 모델(1240a)을 획득할 수 있다. 일 실시예에서, 미들웨어(1230)는 기 등록된 복수의 신경망 모델(1240-1 내지 1240-n)에 관한 신경망 모델 정보(1242-1 내지 1242-n)를 이용하여, 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택하고, 선택된 적어도 하나의 신경망 모델을 단일 구조로 이용하거나, 또는 조합함으로써 인공지능 서비스 제공을 위한 신경망 모델(1240a)을 구성할 수 있다. 미들웨어(1230)의 기능 및/또는 동작에 대해서는 도 2에서 설명한 것과 동일하므로, 중복되는 설명은 생략한다.
단계 S330에서, 서비스 애플리케이션(1220)은 입력 데이터를 AI 프로세서(1110)에 제공한다. 일 실시예에서, 서비스 애플리케이션(1220)은 인공지능 서비스 제공 목적에 따라 획득된 입력 데이터를 AI 프로세서(1110)에 제공할 수 있다. 여기서, '입력 데이터'는 이미지 데이터, 사운드 신호, 센서 감지 데이터, 인터넷으로부터 수집된 데이터, 또는 이들의 조합 중 적어도 하나를 포함할 수 있다. 입력 데이터는 예를 들어, 카메라를 이용하여 촬영하여 획득된 주변 환경에 관한 이미지 데이터일 수 있다.
단계 S340에서, 미들웨어(1230)는 구성된 신경망 모델(1240a)을 AI 시스템 드라이버(1250)에 제공한다. AI 시스템 드라이버(1250)는 신경망 모델(1240a)이 AI 프로세서(1110)에 의해 실행될 수 있도록, 신경망 모델(1240a)을 프로그램 코드 또는 명령어들로 변환할 수 있다.
단계 S350에서, 신경망 모델(1240a)을 이용한 추론을 수행하기 위한 명령어들을 AI 프로세서(1110)에 제공한다. 일 실시예에서, AI 프로세서(1110)는 신경망 모델(1240a)에 포함되는 곱셈 및 덧셈 연산을 수행하기 위한 전용 하드웨어 칩일 수 있다. AI 프로세서(1110)는 예를 들어, NPU(Neural Processing Unit)로 구성될 수 있다. 그러나, 이에 한정되는 것은 아니고, AI 프로세서(1110)는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 그래픽 전용 프로세서(예를 들어, GPU)의 일부로 구성될 수도 있다.
AI 프로세서(1110)는 AI 시스템 드라이버(1250)로부터 제공된 신경망 모델(1240a)을 구동하기 위한 명령어들을 실행함으로써, 추론을 수행할 수 있다. AI 프로세서(1110)는 신경망 모델(1240a)에 서비스 애플리케이션(1220)으로부터 제공받은 입력 데이터를 입력으로 적용하는 추론을 수행하고, 추론 결과 출력값을 획득할 수 있다. 일 실시예에서, 추론 결과에 따른 출력값은 신경망 모델을 이용한 추론 결과, 입력 데이터로부터 인식된 객체의 타입에 관한 라벨 값(label)일 수 있다.
단계 S360에서, AI 프로세서(1110)는 신경망 모델(1240a)에 의한 추론 결과 획득된 출력값을 서비스 애플리케이션(1220)에 제공한다.
서비스 애플리케이션(1220)는 AI 프로세서(1110)로부터 제공받은 신경망 모델(1240a)의 출력값을 이용하여, 입력 데이터로부터 인식된 객체에 관한 정보를 획득하고, 인식된 객체와 관련된 기능 및/또는 동작을 수행할 수 있다.
도 4는 본 개시의 일 실시예에 따른 디바이스(1000)의 동작 방법을 도시한 흐름도이다.
단계 S410에서, 디바이스(1000)는 인공지능(AI) 서비스의 제공 목적 및 디바이스(1000)의 실행 환경과 관련된 신경망 요구 사항을 식별한다. 일 실시예에서, 인공지능 서비스 제공 목적은 서비스 애플리케이션에 의해 결정될 수 있다. 예를 들어, 제1 서비스 애플리케이션이 강아지, 고양이, 햄스터, 토끼 등 반려 동물의 동작 모니터링 및 관리 목적의 펫 케어(pet care) 소프트웨어인 경우, 제1 서비스 애플리케이션에 의한 인공지능 서비스 제공 목적은 주변 환경에 존재하는 반려 동물을 인식하는 것일 수 있다. 다른 예를 들어, 제2 서비스 애플리케이션이 청소 로봇을 제어하여 청소 동작을 수행하게 하는 청소 애플리케이션인 경우, 제2 서비스 애플리케이션에 의한 인공지능 서비스 제공 목적은 장애물(예를 들어, 바닥에 놓여있는 전선, 양말, 장난감, 걸레 등) 인식일 수 있다.
일 실시예에서, 디바이스(1000)는 센서를 포함하고, 센서를 이용하여 디바이스(1000)의 실행 환경과 관련된 정보를 획득할 수 있다. 예를 들어, 디바이스(1000)는 센서를 이용하여 디바이스(1000)가 실행되고 있는 위치 및 시점에 관한 정보뿐만 아니라, 조도, 온도 또는 습도에 관한 정보를 획득할 수 있다. 일 실시예에서, 디바이스(1000)는 통신 인터페이스를 이용하여, 유선 또는 무선 네트워크를 통해 인터넷으로부터 획득한 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 획득할 수 있다.
디바이스(1000)는 서비스 애플리케이션에 의해 제공되는 인공지능 서비스 제공 목적 및 디바이스(1000)의 실행 환경에 기초하여 신경망 요구 사항을 결정될 수 있다. 일 실시예에서, 인공지능 서비스 제공 목적은 신경망 모델을 이용하여 인식하려고 하는 인식 대상 객체일 수 있다.
다른 실시예에서, 디바이스(1000)는 인공지능 서비스의 제공 목적에 따라 인식하고자 하는 인식 대상 객체, 디바이스의 실행 환경, 및 디바이스(1000)의 하드웨어 리소스 특성 중 적어도 하나에 관한 정보에 기초하여, 신경망 요구 사항을 결정할 수도 있다. 디바이스(1000)의 '하드웨어 리소스 특성'은 프로세서(1100, 도 2 참조)의 연산, 추론 능력 및 메모리(1200, 도 2 참조)의 용량에 관한 하드웨어 정보를 포함할 수 있다.
단계 S420에서, 디바이스(1000)는 기 등록된 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여, 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택한다. 일 실시예에서, 디바이스(1000)는 복수의 신경망 모델 각각의 신경망 모델 정보를 저장함으로써, 복수의 신경망 모델을 등록할 수 있다. 일 실시예에서, 신경망 모델 정보는 복수의 신경망 모델에 관한 식별 정보, 성능 정보, 설치 정보, 및 평가 정보를 포함할 수 있다.
디바이스(1000)는 신경망 요구 사항에 포함되는 디바이스(1000)의 실행 환경 정보 및 인공지능 서비스의 제공 목적뿐만 아니라, 신경망 모델의 인식 정확도 및 지연 시간에 기초하여, 신경망 모델 저장부(1240, 도 2 참조)에 저장된 복수의 신경망 모델 중 적어도 하나의 신경망 모델을 선택할 수 있다. 일 실시예에서, 디바이스(1000)는 신경망 요구 사항에 포함되는 인식 정확도에 관하여 설정된 최소 기준값 및 지연 시간에 관하여 설정된 최대 지연 시간을 만족하는 적어도 하나의 신경망 모델을 선택할 수 있다.
단계 S430에서, 디바이스(1000)는 선택된 적어도 하나의 신경망 모델을 이용하여 인공지능 서비스 제공을 위한 신경망 모델을 획득한다. 일 실시예에서, 디바이스(1000)는 하나의 신경망 모델만을 선택할 수 있고, 이 경우 단일 구조로 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다. 다른 실시예에서, 디바이스(1000)는 복수의 신경망 모델을 선택하고, 선택된 복수의 신경망 모델을 병렬 구조(parallel), 순차 구조(sequential), 및 하이브리드(hybrid) 구조 중 적어도 하나의 구조로 조합하여 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다.
단계 S440에서, 디바이스(1000)는 획득된 신경망 모델을 이용하여 인공지능 서비스를 제공한다. 일 실시예에서, 디바이스(1000)는 카메라를 이용하여 주변 환경을 촬영함으로써, 이미지 데이터를 획득할 수 있다. 디바이스(1000)는 획득된 이미지 데이터를 신경망 모델에 입력 데이터로 적용하고, 신경망 모델을 이용하는 추론을 수행함으로써 이미지 데이터로부터 객체를 인식할 수 있다. 디바이스(1000)는 인식된 객체와 관련된 인공지능 서비스를 제공할 수 있다.
도 5는 본 개시의 일 실시예에 따른 디바이스(1000)가 인공지능(AI) 서비스 제공을 위한 신경망 모델(530)을 구성하는 동작을 설명하기 위한 도면이다.
도 5를 참조하면, 디바이스(1000)는 복수의 신경망 모델(500)에 관한 신경망 모델 정보를 저장함으로써, 복수의 신경망 모델(500)을 등록할 수 있다. 신경망 모델 정보는, 복수의 신경망 모델(500)에 관한 식별 정보, 성능 정보, 설치 정보, 및 평가 정보를 포함할 수 있다. 도 5에 도시된 실시예에서, 신경망 모델 정보는 복수의 신경망 모델(500)의 인공지능 서비스 제공 목적에 따른 인식 대상 객체, 정확도(accuracy), 및 지연 시간(latency) 중 적어도 하나에 관한 정보를 포함할 수 있다.
복수의 신경망 모델(500)은 제1 신경망 모델(500-1), 제2 신경망 모델(500-2), 및 제3 신경망 모델(500-3)을 포함할 수 있다. 도 5에 도시된 실시예를 참조하면, 제1 신경망 모델(500-1)은 개와 고양이 등 동물을 인식할 수 있는 신경망 모델이다. 제1 신경망 모델(500-1)의 신경망 모델 정보를 참조하면, 인식 대상 객체는 개와 고양이이고, 입력 데이터로부터 개를 인식하는 정확도는 72%이고, 고양이를 인식하는 정확도는 76%일 수 있다. 또한, 제1 신경망 모델(500-1)이 인식 대상 객체 중 개를 인식하는데 소요되는 지연 시간은 200ms이고, 고양이를 인식하는데 소요되는 지연 시간은 300ms일 수 있다. 제2 신경망 모델(500-2)은 개, 고양이, 및 사람을 인식할 수 있는 객체 인식 모델이다. 제2 신경망 모델(500-2)의 신경망 모델 정보를 참조하면, 인식 대상 객체는 개, 고양이, 및 사람이고, 개를 인식하는 정확도는 69%, 고양이를 인식하는 정확도는 78%, 사람을 인식하는 정확도는 75%일 수 있다. 또한, 제2 신경망 모델(500-2)이 인식 대상 객체 중 개와 고양이를 인식하는데 소요되는 지연 시간은 200ms이고, 사람을 인식하는데 소요되는 지연 시간은 250ms일 수 있다. 제3 신경망 모델(500-3)은 의자 및 에어컨 등 객체를 인식할 수 있는 객체 인식 모델이다. 제3 신경망 모델(500-3)의 신경망 모델 정보를 참조하면, 인식 대상 객체는 의자 및 에어컨이고, 의자를 인식하는 정확도는 77%, 에어컨을 인식하는 정확도는 80%일 수 있다. 또한, 제3 신경망 모델(500-3)이 인식 대상 객체 중 의자를 인식하는데 소요되는 지연 시간은 150ms이고, 에어컨을 인식하는데 소요되는 지연 시간은 200ms일 수 있다
디바이스(1000)는 신경망 요구 사항(510)을 식별할 수 있다. 신경망 요구 사항(510)은 실행 환경(512), 인식 대상 객체(514), 정확도(516), 및 지연 시간(518) 중 적어도 하나에 관한 요구 사항 정보를 포함할 수 있다. 도 5에 도시된 실시예에서, 신경망 요구 사항(510) 중 실행 환경(512)은 '실내'이고, 인식 대상 객체(514)는 '개'와 '고양이'이고, 정확도(516)는 개의 경우 최소 기준값이 '70%'이고 고양이의 경우 최소 기준값이 '77%'이며, 지연 시간(518)의 최대 기준값은 250ms일 수 있다.
디바이스(1000)는 복수의 신경망 모델(500)의 신경망 모델 정보에 기초하여, 신경망 요구 사항(510)을 만족하는 적어도 하나의 신경망 모델을 선택할 수 있다. 도 5에 도시된 실시예에서, 제1 신경망 모델(500-1)은 인식 대상 객체 중 개의 경우 정확도가 신경망 요구 사항의 정확도에 관한 최소 기준값인 70%를 초과하였고, 지연 시간도 최대 기준값인 250ms 미만이므로, 신경망 요구 사항을 만족한다. 그러나, 인식 대상 객체가 고양이인 경우, 정확도가 76%로서 신경망 요구 사항의 정확도에 관한 최소 기준값인 77% 미만이므로, 디바이스(1000)는 제1 신경망 모델(500-1)에서 '고양이'는 인식 대상 객체에서 제외하고, 인식 대상 객체가 '개'인 경우만 선택할 수 있다. 선택 결과, 제1 신경망 모델(500-1)은 '개'를 인식 대상 객체로서 포함하는 제1 신경망 모델(520-1)로 재구성될 수 있다. 마찬가지로, 제2 신경망 모델(500-2)은 인식 대상 객체 중 개의 경우 정확도가 신경망 요구 사항의 정확도에 관한 최소 기준값인 70% 미만이다. 또한, '사람'은 신경망 요구 사항에서 인식 대상 객체가 아니므로, 디바이스(1000)는 제2 신경망 모델(500-2)에서 '개'와 '사람'을 인식 대상 객체에서 제외하고, 인식 대상 객체가 '고양이'인 경우만 선택할 수 있다. 제2 신경망 모델(500-2)은 '고양이'만을 인식 대상 객체로 포함하는 제2 신경망 모델(520-2)로 재구성될 수 있다.
제3 신경망 모델(500-3)은 인식 대상 객체가 '의자' 및 '에어컨'이므로, 신경망 요구 사항을 만족하지 못한다. 따라서, 디바이스(1000)는 제3 신경망 모델(500-3)은 선택하지 않을 수 있다.
디바이스(1000)는 선택된 적어도 하나의 신경망 모델을 조합함으로써, 인공지능 서비스 제공을 위한 신경망 모델을 획득할 수 있다. 도 5에 도시된 실시예에서, 디바이스(1000)는 선택된 제1 신경망 모델(520-1) 및 제2 신경망 모델(520-2)를 병렬 구조로 조합함으로써, 인공지능 서비스 제공을 위한 신경망 모델(530)을 구성할 수 있다. 그러나, 이에 한정되는 것은 아니고, 디바이스(1000)는 제1 신경망 모델(520-1)과 제2 신경망 모델(520-2)를 순차적으로 캐스케이드(cascade) 형태로 결합하여 인공지능 서비스 제공을 위한 신경망 모델(530)을 구성할 수도 있다.
도 6은 본 개시의 일 실시예에 따른 디바이스(1000)가 신경망 모델을 등록하는 방법을 도시한 흐름도이다.
도 6에 도시된 단계 S610 및 S620은 도 4에 도시된 단계 S410이 수행되기 전에 수행될 수 있다.
단계 S610에서, 디바이스(1000)는 외부 서버 또는 디바이스(1000) 내의 메모리(1200, 도 2 참조)에 저장된 복수의 신경망 모델에 관한 신경망 모델 정보를 획득한다. 일 실시예에서, 디바이스(1000)는 외부 서버 또는 외부 데이터베이스와 유무선 통신 네트워크를 이용하여 데이터 송수신을 수행하는 통신 인터페이스를 포함할 수 있다. 통신 인터페이스는 예를 들어, 유선 랜, 무선 랜(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wireless Broadband Internet, Wibro), 와이맥스(World Interoperability for Microwave Access, WiMAX), SWAP(Shared Wireless Access Protocol), 와이기그(Wireless Gigabit Allicance, WiGig), 레거시 네트워크(예를 들어, 3G 통신 네트워크, LTE), 5G 통신 네트워크, 및 RF 통신 중 적어도 하나의 데이터 통신 네트워크를 이용하여 외부 서버 또는 외부 데이터베이스와 데이터 송수신을 수행할 수 있다. 디바이스(1000)는 통신 인터페이스를 이용하여, 외부 서버로부터 복수의 신경망 모델의 신경망 모델 정보를 수신할 수 있다. 외부 서버는 디바이스(1000)의 제조사와 동일한 주체에 의해 운영되는 서버일 수 있지만, 이에 한정되지 않고, 공동의 사용 목적을 위하여 타사에 의해 운영되는 퍼블릭 서버(public server)일 수도 있다. 퍼블릭 서버에 의해 제공되는 복수의 신경망 모델은 여러 주체에 의해 사용되도록 허용된 공개된 모델(public model)일 수 있다.
다른 실시예에서, 디바이스(1000)는 메모리(1200, 도 2 참조) 내의 신경망 모델 저장부(1240, 도 2 참조)에 저장된 복수의 신경망 모델로부터 신경망 모델 정보를 획득할 수 있다. 신경망 모델 정보는 명시적으로 제공될 수도 있지만, 이에 한정되는 것은 아니다. 일 실시예에서, 신경망 모델 정보는 자동으로 생성될 수도 있다.
도 7은 본 개시의 일 실시예에 따른 디바이스(1000)가 신경망 모델의 등록 과정에서 획득한 신경망 모델 정보(700)를 도시한 도면이다. 도 7을 도 6의 단계 S610과 함께 참조하면, 신경망 모델 정보(700)는 신경망 모델의 식별 정보(710), 성능 정보(720), 설치 정보(730), 및 평가 정보(740)를 포함할 수 있다.
식별 정보(710)는 신경망 모델의 식별자(711), 및 버전 정보(712)를 포함할 수 있다. 식별자(711)는 신경망 모델을 식별하기 위한 정보이다. 식별자(711)는 예를 들어, 신경망 모델의 id 정보일 수 있다. 버전 정보(712)는 신경망 모델을 구성하는 파일의 버전 정보를 나타낸다. 버전 정보(712)는 최종 업데이트 일시에 관한 정보를 포함할 수 있다.
성능 정보(720)는 신경망 모델의 모델 특성(721), 모델 종류(722), 사용 환경(723), 지원 시스템(724), 입력 형식(725), 인식 객체(726), 결과 형식(727), 정확도(728), 및 지연 시간(729)에 관한 정보를 포함할 수 있다.
모델 특성(721)은 신경망 모델을 기능에 따라 분류하기 위한 특성을 나타내는 정보로서, 예를 들어 영상 인식 모델, 음성 인식 모델, 센서 인식 모델, 또는 커스텀 모델 등 신경망 모델의 기능을 나타내는 특성 정보를 포함할 수 있다.
모델 종류(722)는 신경망 모델의 종류를 나타내는 정보를 포함한다. 모델 종류(722)는 예를 들어, Efficientdet-B3, Efficientnet-B0, YOLO-v4, RefineDet, 또는 M2Det 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
사용 환경(723)은 신경망 모델이 트레이닝된 환경 정보를 나타내는 정보를 포함한다. 사용 환경(723)은 예를 들어, 부엌, 도로, 학교, 공장, 또는 공원일 수 있으나, 이에 한정되는 것은 아니다.
지원 시스템(724)은 신경망 모델이 실행될 수 있는 하드웨어 리소스 정보를 포함한다. 일 실시예에서, 지원 시스템(724)은 AI 프로세서(1110, 도 3 참조), 미들웨어(1230, 도 3 참조), 및 AI 시스템 드라이버(1250, 도 3 참조)에 관한 정보를 포함한다. 지원 시스템(724)은 예를 들어, AI 프로세서(1110)의 연산 및 추론 능력(capability), 미들웨어(1230)의 버전, 및 AI 시스템 드라이버(1250)의 버전 중 적어도 하나에 관한 정보를 포함할 수 있다. 그러나, 이에 한정되는 것은 아니다.
입력 형식(725)은 신경망 모델을 이용하여 추론을 수행하는 경우, 신경망 모델에 입력되는 입력 데이터의 포맷(format)에 관한 정보이다. 입력 형식(725)은 예를 들어, 신경망 모델에 이미지 데이터가 입력 데이터로 적용되는 경우, JPEG 320 ×320, PCM signed 16bit 2channel, 또는 Exif, 일 수 있다. 다른 예를 들어, 신경망 모델에 음성 데이터가 입력 데이터로 적용되는 경우, 입력 형식(725)은 wav, mp3, AAC(Advanced Audio Codec), 또는 ATRAC 등일 수 있다.
인식 객체(726)는 신경망 모델의 추론 결과 인식될 수 있는 객체에 관한 정보를 포함한다. 인식 객체(726)는 예를 들어, 사람, 반려 동물(예를 들어, 개, 고양이, 토끼 등), 장애물, 또는 식자재 등일 수 있으나, 이에 한정되는 것은 아니다.
결과 형식(727)은 신경망 모델에 의한 추론 결과를 파싱(parsing)하기 위한 정보를 포함한다. 결과 형식(727)은 예를 들어, 인식 객체, 위치, 또는 신뢰도(confidence) 중 적어도 하나에 관한 정보를 포함할 수 있다.
정확도(728)는 신경망 모델의 추론 결과에 관한 정확도에 관한 정보를 포함한다.
지연 시간(latency)(729)은 신경망 모델을 실행하는 경우 소요되는 시간에 관한 정보를 포함한다. 지연 시간(729)은 지원 시스템(724)에 관한 정보, 즉 디바이스(1000)의 하드웨어 리소스에 따라 달라질 수 있다. 일 실시예에서, 지연 시간(729)은 신경망 모델에 의한 추론 실행 후 실행 환경에 따라 업데이트될 수 있다.
설치 정보(730)는 저장 경로(731) 및 배포 방법(732)에 관한 정보를 포함할 수 있다.
저장 경로(731)는 신경망 모델이 저장된 위치에 관한 정보를 포함한다. 저장 경로(731)는 예를 들어, 신경망 모델이 저장된 디바이스(1000)의 식별 정보 또는 서버의 주소 정보(예를 들어, IP 주소)를 포함할 수 있다.
배포 방법(732)은 신경망 모델을 공급하는 주체 또는 공급 방법에 관한 정보를 포함한다. 배포 방법(732)은 예를 들어, 신경망 모델이 공개된 공공(public) 모델인지 또는 특정 업체에 의해 제공된 모델인지에 관한 공급 주체 정보를 포함할 수 있다.
평가 정보(740)는 신경망 모델의 성능에 따른 평가 결과 지표에 관한 정보를 포함한다. 평가 정보(740)는 신경망 모델을 이용한 사용자 또는 업체에 의한 추천 정보(741)를 포함할 수 있다. 추천 정보(741)는 신경망 모델에 대한 평점 정보를 포함할 수 있다.
다시 도 6을 참조하면, 단계 S620에서, 디바이스(1000)는 획득된 신경망 모델 정보를 저장함으로써, 복수의 신경망 모델을 등록한다. 디바이스(1000)는 획득된 신경망 모델 정보를 메모리(1200, 도 2 참조)에 저장할 수 있다. 일 실시예에서, 디바이스(1000)는 신경망 모델 저장부(1240, 도 2 참조)에 저장된 복수의 신경망 모델에 관한 신경망 모델 정보를 미들웨어(1230, 도 2 참조)에서 접근 가능한 메모리(1200)의 일부 영역에 저장함으로써, 신경망 모델을 등록할 수 있다. 여기서, '등록'은 신경망 모델 정보를 미들웨어(1230)에 제공하고, 미들웨어(1230)가 접근 가능한 메모리(1200)의 일부 영역에 저장하는 동작을 의미한다.
도 8a는 본 개시의 일 실시예에 따른 디바이스(1000)에 의해 단일 구조로 구성된 신경망 모델(810)을 도시한 도면이다.
도 8a를 참조하면, 디바이스(1000)는 하나의 신경망 모델(810)을 단일 구조로 이용할 수 있다. 디바이스(1000)는 단일 구조의 신경망 모델(810)에 입력 데이터(800)를 적용하여 출력값(802)을 획득할 수 있다.
도 8b는 본 개시의 일 실시예에 따른 디바이스(1000)에 의해 복수의 신경망 모델(810, 820)을 순차적으로 조합하여 구성된 신경망 모델(800b)을 도시한 도면이다.
도 8b를 참조하면, 디바이스(1000)는 제1 신경망 모델(810) 및 제2 신경망 모델(820)을 순차적으로(sequentially) 조합함으로써 인공지능 서비스 제공을 위한 신경망 모델(800b)을 구성할 수 있다. 신경망 모델(800b)은 제1 신경망 모델(810)의 출력값이 제2 신경망 모델(820)의 입력 데이터로 적용되도록 캐스케이드(cascade) 형태로 조합된 모델일 수 있다.
디바이스(1000)가 입력 데이터(800)를 신경망 모델(800b)에 입력 데이터로 적용하면, 입력 데이터(800)는 제1 신경망 모델(810)에 입력되고, 제1 신경망 모델(810)은 입력 데이터에 관한 추론 결과인 중간 출력값(802)을 출력할 수 있다. 중간 출력값(802)은 제2 신경망 모델(820)에 입력 데이터로서 적용되고, 제2 신경망 모델(820)에 의한 추론 결과인 최종 출력값(804)이 획득될 수 있다.
일 실시예에서, 신경망 모델(800b)에 포함되는 제1 신경망 모델(810)은 객체 인식 모델이고, 제2 신경망 모델(820)은 제1 신경망 모델(810)에 의해 인식된 객체의 서브 카테고리에 해당되는 객체를 인식하도록 트레이닝된 객체 인식 모델일 수 있다. 예를 들어, 제1 신경망 모델(810)은 이미지 데이터로부터 개를 인식하도록 트레이닝된 모델이고, 제2 신경망 모델(820)은 개의 품종(예를 들어, 리트리버, 푸들, 비숑, 시추, 말티즈 등)을 인식하도록 트레이닝된 모델일 수 있다. 도 8b에 도시된 실시예에서, 입력 데이터(800)가 개를 포함하는 이미지 데이터인 경우, 제1 신경망 모델(810)에 의한 추론 결과, 중간 결과값(802)은 개를 나타내는 라벨값을 포함할 수 있다. 중간 출력값(802)이 제2 신경망 모델(820)에 입력 데이터로 입력되면, 제2 신경망 모델(820)에 의한 추론 결과인 최종 출력값(804)으로 개의 품종에 관한 라벨값이 획득될 수 있다.
도 8c는 본 개시의 일 실시예에 따른 디바이스(1000)에 의해 복수의 신경망 모델(810, 820)을 병렬 구조로 조합하여 구성된 신경망 모델(800c)을 도시한 도면이다.
도 8c를 참조하면, 디바이스(1000)는 제1 신경망 모델(810) 및 제2 신경망 모델(820)을 병렬 구조(parallel)로 조합함으로써 인공지능 서비스 제공을 위한 신경망 모델(800c)을 구성할 수 있다.
디바이스(1000)가 제1 입력 데이터(800-1) 및 제2 입력 데이터(800-2)를 신경망 모델(800c)에 입력 데이터로 적용하면, 제1 입력 데이터(800-1)는 제1 신경망 모델(810)에 입력되고, 제2 입력 데이터(800-2)는 제2 신경망 모델(820)에 입력될 수 있다. 제1 신경망 모델(810)에 의한 추론 결과에 따른 제1 출력값(802-1)이 획득되고, 제2 신경망 모델(820)에 의한 추론 결과에 따른 제2 출력값(802-2)이 획득될 수 있다.
일 실시예에서, 신경망 모델(800c)은 제1 신경망 모델(810)과 제2 신경망 모델(820)에 의한 추론을 시간 순서에 따라 순차적으로 수행하도록 구성될 수 있다. 예를 들어, 디바이스(1000)는 제1 신경망 모델(810)을 이용하여 제1 입력 데이터(800-1)에 관한 추론을 먼저 수행하고, 이후에 제2 신경망 모델(820)을 이용하여 제2 입력 데이터(800-2)에 관한 추론을 수행할 수 있다. 그러나, 이에 한정되는 것은 아니고, 디바이스(1000)는 제2 신경망 모델(820)에 의한 추론을 먼저 수행하고, 이후 제1 신경망 모델(810)에 의한 추론을 수행할 수도 있다. 또한, 디바이스(1000)는 제1 신경망 모델(810)에 의한 추론과 제2 신경망 모델(820)에 의한 추론을 동시에 수행할 수도 있다.
일 실시예에서, 신경망 모델(800c)에 포함되는 제1 신경망 모델(810)과 제2 신경망 모델(820)은 서로 다른 객체를 인식하는 객체 인식 모델일 수 있다. 예를 들어, 제1 신경망 모델(810)은 이미지 데이터로부터 개를 인식하도록 트레이닝된 모델이고, 제2 신경망 모델(820)은 이미지 데이터로부터 고양이를 인식하도록 트레이닝된 모델일 수 있다. 도 8c에 도시된 실시예에서, 제1 입력 데이터(800-1)가 개를 포함하는 이미지 데이터인 경우, 제1 신경망 모델(810)에 의한 추론 결과 제1 출력값(802-1)은 개를 나타내는 라벨값일 수 있다. 제2 입력 데이터(800-2)가 고양이를 포함하는 이미지 데이터인 경우, 제2 신경망 모델(820)에 의한 추론 결과 제2 출력값(802-2)은 고양이를 나타내는 라벨값일 수 있다.
도 8d는 본 개시의 일 실시예에 따른 디바이스(1000)에 의해 복수의 신경망 모델(810, 820)을 병렬 구조로 조합하여 구성된 신경망 모델(800d)을 도시한 도면이다.
도 8d를 참조하면, 디바이스(1000)는 제1 신경망 모델(810) 및 제2 신경망 모델(820)을 병렬 구조(parallel)로 조합함으로써 인공지능 서비스 제공을 위한 신경망 모델(800d)을 구성할 수 있다.
신경망 모델(800d)은 제1 신경망 모델(810)의 추론 결과값과 제2 신경망 모델(820)의 추론 결과값을 더하는 연산을 통해 최종 출력값(806)을 획득하도록 구성될 수 있다. 디바이스(1000)가 입력 데이터(800)를 신경망 모델(800d)에 입력 데이터로 적용하면, 입력 데이터(800)는 제1 신경망 모델(810) 및 제2 신경망 모델(820)에 입력되고, 제1 신경망 모델(810)에 의한 추론 결과에 따른 제1 중간 출력값(802-1) 및 제2 신경망 모델(820)에 의한 추론 결과에 따른 제2 중간 출력값(802-2)이 출력될 수 있다. 신경망 모델(800d)은 제1 중간 출력값(802-1)과 제2 중간 출력값(802-2)를 더하는 연산을 통해 최종 출력값(806)을 획득할 수 있다.
일 실시예에서, 신경망 모델(800d)에 포함되는 제1 신경망 모델(810)과 제2 신경망 모델(820)은 서로 다른 객체를 인식하는 객체 인식 모델일 수 있다. 이 경우, 신경망 모델(800d)은 제1 신경망 모델(810)의 추론 결과에 의한 제1 중간 출력값(802-1)과 제2 신경망 모델(820)의 추론 결과에 의한 제2 중간 출력값(802-2)을 모두 획득하기 위한 모델일 수 있다. 예를 들어, 제1 신경망 모델(810)은 이미지 데이터로부터 개를 인식하도록 트레이닝된 모델이고, 제2 신경망 모델(820)은 이미지 데이터로부터 고양이를 인식하도록 트레이닝된 모델인 경우, 신경망 모델(800d)은 이미지 데이터로부터 개와 고양이를 모두 인식하기 위한 모델일 수 있다.
도 8e는 본 개시의 일 실시예에 따른 디바이스(1000)에 의해 복수의 신경망 모델(810, 820, 830)을 하이브리드(hybrid) 구조로 조합하여 구성된 신경망 모델(800e)을 도시한 도면이다.
도 8e를 참조하면, 디바이스(1000)는 제2 신경망 모델(820) 및 제3 신경망 모델(830)을 병렬 구조(parallel)로 조합하고, 조합된 제2 신경망 모델(820) 및 제3 신경망 모델(830)을 제1 신경망 모델(810)과 순차적으로 연결하는 하이브리드 구조로 조합함으로써, 인공지능 서비스 제공을 위한 신경망 모델(800e)을 구성할 수 있다.
신경망 모델(800e)은 제1 신경망 모델(810)의 추론 결과값을 제2 신경망 모델(820)과 제3 신경망 모델(830)의 입력 데이터로 적용하고, 제2 신경망 모델(820) 및 제3 신경망 모델(830) 각각의 추론 결과 획득된 출력값을 더하여 최종 출력값(808)을 획득하도록 구성된 모델이다. 디바이스(1000)가 입력 데이터(800)를 신경망 모델(800e)에 입력 데이터로 적용하면, 입력 데이터(800)는 제1 신경망 모델(810)에 입력되고, 제1 신경망 모델(810)에 의한 추론 결과에 따른 중간 출력값(802)이 출력될 수 있다. 신경망 모델(800e)은 중간 출력값(802)을 제2 신경망 모델(820)과 제3 신경망 모델(830)에 각각 입력 데이터로 적용하고, 제2 신경망 모델(820)을 통한 추론 결과 제1 중간 출력값(806-1)을, 제3 신경망 모델(830)을 통한 추론 결과 제2 중간 출력값(806-2)을 출력할 수 있다. 신경망 모델(800e)은 제1 중간 출력값(806-1)과 제2 중간 출력값(806-2)를 더하는 연산을 통해 최종 출력값(808)을 획득할 수 있다.
도 9는 본 개시의 일 실시예에 따른 디바이스(1000)가 인공지능 서비스를 제공하는 방법을 도시한 흐름도이다.
도 9에 도시된 단계들 S910, S920, 및 S930은 도 4에 도시된 단계 S440을 구체화한 단계들이다. 도 9의 단계 S910은 도 4에 도시된 단계 S430이 수행된 이후 수행될 수 있다.
단계 S910에서, 디바이스(1000)는 카메라를 이용하여 주변 환경을 촬영함으로써, 이미지 데이터를 획득한다. 예를 들어, 디바이스(1000)가 청소 로봇인 경우, 디바이스(1000)는 실내 공간 내를 주행하면서 카메라를 이용하여 주변 영역을 촬영함으로써, 실내 공간에 관한 이미지 데이터를 획득할 수 있다.
단계 S920에서, 디바이스(1000)는 획득된 신경망 모델에 이미지 데이터를 적용하여, 이미지 데이터로부터 객체를 인식한다. 일 실시예에서, 디바이스(1000)는 단계 S430에서 획득된 신경망 모델에 이미지 데이터를 입력 데이터로서 적용하고, 신경망 모델을 이용하는 추론을 수행할 수 있다. 디바이스(1000)는 추론 결과에 따라 이미지 데이터로부터 객체를 인식할 수 있다. 신경망 모델은 예를 들어, Efficientdet-B3, Efficientnet-B0, YOLO-v4, RefineDet, 또는 M2Det 등과 같은 객체 인식 모델이고, 디바이스(1000)는 신경망 모델을 이용하여 이미지 데이터로부터 강아지, 고양이 등 반려 동물을 객체로서 인식하거나 또는 바닥에 존재하는 장애물(예를 들어, 바닥에 놓여있는 전선, 양말, 장난감, 걸레 등)을 인식할 수 있다.
단계 S930에서, 디바이스(1000)는 인식된 객체와 관련된 인공지능 서비스를 제공한다. 일 실시예에서, 디바이스(1000)는 인식된 객체를 이용하여 인공지능 서비스의 제공 목적에 따른 기능 및/또는 동작을 수행할 수 있다. 예를 들어, 인공지능 서비스의 제공 목적이 펫 케어(pet care)인 경우, 디바이스(1000)는 신경망 모델을 이용하여 이미지 데이터로부터 강아지를 인식하고, 강아지의 동작 모니터링 및 관리 동작을 수행할 수 있다. 다른 예를 들어, 인공지능 서비스 제공 목적이 청소 로봇에 의한 청소인 경우, 디바이스(1000)는 신경망 모델을 이용하여 이미지 데이터로부터 실내 공간 내의 장애물을 인식하고, 장애물을 회피 및 청소 동작을 수행할 수 있다.
그러나, 본 개시의 신경망 모델이 객체 인식 모델로 한정되는 것은 아니다. 일 실시예에서, 인공지능 서비스 제공 목적에 따라 구성된 신경망 모델은 에어컨의 온도 제어 모델이거나, 또는 실내 공기 질 모니터링 모델일 수 있다. 이 경우, 디바이스(1000)는 신경망 모델을 이용하여 에어컨의 설정 온도를 자동으로 제어하거나, 공기 청정기의 실내 공기 질 모니터링 등 인공지능 서비스를 제공할 수 있다.
도 10은 본 개시의 일 실시예에 따른 디바이스(1000) 내의 복수의 구성 간의 동작을 도시한 흐름도이다.
도 10을 참조하면, 디바이스(1000)는 프로세서(1100) 및 메모리(1200)를 포함할 수 있다. 프로세서(1100)는 AI 프로세서(1110)를 포함하고, 메모리(1200)는 신경망 모델 등록 모듈(1210), 서비스 애플리케이션(1220), 및 미들웨어(1230)를 포함할 수 있다. 신경망 모델 등록 모듈(1210), 서비스 애플리케이션(1220), 및 미들웨어(1230)은 도 3에 도시된 신경망 모델 등록 모듈(1210, 도 3 참조), 서비스 애플리케이션(1220, 도 3 참조), 및 미들웨어(1230, 도 3 참조)와 각각 동일하므로, 중복되는 설명은 생략한다.
단계 S1010에서, 신경망 모델 등록 모듈(1210)은 신경망 모델 정보 및 신경망 등록 요청 신호를 미들웨어(1230)에 전송한다. 신경망 모델 정보는 복수의 신경망 모델에 관한 식별 정보, 성능 정보, 설치 정보, 및 평가 정보를 포함할 수 있다. 신경망 모델 등록 모듈(1210)은 복수의 신경망 모델에 관한 신경망 모델 정보를 미들웨어(1230)에 제공하고, 신경망 모델을 등록해줄 것을 요청하는 신호를 전송할 수 있다.
단계 S1020에서, 미들웨어(1230)는 신경망 모델을 등록한다. 일 실시예에서, 미들웨어(1230)는 신경망 등록 요청 신호에 응답하여, 신경망 모델 등록 모듈(1210)로부터 획득한 신경망 모델 정보를 저장함으로써, 신경망 모델을 등록할 수 있다. 여기서, '등록'은 신경망 모델 정보를 미들웨어(1230)가 접근할 수 있는 메모리(1200, 도 2 참조)의 일부 영역에 저장하는 동작을 의미한다.
단계 S1030에서, 서비스 애플리케이션(1220)은 디바이스(1000)의 실행 환경 정보를 획득한다. 일 실시예에서, 디바이스(1000)는 센서를 포함하고, 서비스 애플리케이션(1220)은 디바이스(1000)의 센서를 이용하여 디바이스(1000)의 실행 환경과 관련된 정보를 획득하도록 디바이스(1000)를 제어할 수 있다. 예를 들어, 서비스 애플리케이션(1220)은 센서를 이용하여 디바이스(1000)가 실행되는 위치 및 시점에 관한 정보를 획득할 수 있다. 그러나, 이에 한정되는 것은 아니고, 서비스 애플리케이션(1220)은 디바이스(1000)가 실행되고 있는 환경의 조도, 온도, 또는 습도에 관한 정보를 획득하도록 디바이스(1000)를 제어할 수 있다.
단계 S1032에서, 서비스 애플리케이션(1220)은 신경망 요청 신호를 미들웨어(1230)에 전송한다. 일 실시예에서, 서비스 애플리케이션(1220)은 신경망 요청 신호와 함께 신경망 요구 사항을 미들웨어(1230)에 전송할 수 있다. 신경망 요구 사항은 디바이스(1000)의 실행 환경, 인공지능 서비스의 제공 목적, 및 디바이스(1000)의 하드웨어 리소스 특성 중 적어도 하나에 관한 정보에 기초하여 결정될 수 있다.
단계 S1040에서, 미들웨어(1230)는 신경망 모델 정보를 이용하여, 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택한다.
단계 S1050에서, 미들웨어(1230)는 적어도 하나의 신경망 모델 각각을 단일 구조 또는 병합 구조로 조합함으로써 신경망 모델을 구성한다. 단계 S1040 및 S1050에 관한 미들웨어(1230)의 동작은 도 2에 도시된 미들웨어(1230, 도 2 참조)의 동작과 동일하므로, 중복되는 설명은 생략한다.
단계 S1060에서, 서비스 애플리케이션(1220)은 이미지 데이터를 획득한다. 일 실시예에서, 디바이스(1000)는 카메라를 포함하고, 서비스 애플리케이션(1220)은 카메라를 이용하여 주변 환경을 촬영함으로써, 주변 환경에 관한 이미지 데이터를 획득할 수 있다.
단계 S1062에서, 서비스 애플리케이션(1220)은 이미지 데이터를 AI 프로세서(1110)에 제공한다.
AI 프로세서(1110)는 신경망 모델에 포함되는 곱셈 및 덧셈 연산을 수행하기 위한 전용 하드웨어 칩일 수 있다. AI 프로세서(1110)는 예를 들어, NPU(Neural Processing Unit)로 구성될 수 있다. 그러나, 이에 한정되는 것은 아니고, AI 프로세서(1110)는 기존의 범용 프로세서(예를 들어, CPU 또는 application processor) 또는 그래픽 전용 프로세서(예를 들어, GPU)의 일부로 구성될 수도 있다.
단계 S1070에서, AI 프로세서(1110)는 이미지 데이터를 구성된 신경망 모델에 입력하여 추론을 수행한다. 일 실시예에서, AI 프로세서(1110)는 미들웨어(1230)에 의해 구성된 신경망 모델을 실행하고, 이미지 데이터를 신경망 모델에 입력 데이터로 적용하는 추론을 수행할 수 있다.
AI 프로세서(1110)는 추론 결과에 따른 출력값을 획득할 수 있다. 일 실시예에서, 추론 결과에 따른 출력값은, 신경망 모델을 이용한 추론 결과 입력 데이터로부터 인식된 객체의 타입에 관한 라벨 값(label)일 수 있다.
단계 S1072에서, AI 프로세서(1110)는 추론 결과에 따른 출력 값을 제공한다. 일 실시예에서, AI 프로세서(1110)는 추론 결과에 따른 라벨 값을 서비스 애플리케이션(1220)에 제공하고, 서비스 애플리케이션(1220)은 신경망 모델의 추론 결과 출력된 라벨값을 식별하여 객체를 인식할 수 있다.
단계 S1080에서, 서비스 애플리케이션(1220)은 인식된 객체와 관련된 인공지능 서비스를 제공한다. 서비스 애플리케이션(1220)은 미들웨어(1230)로부터 제공된 객체에 관한 정보를 이용하여, 인공지능 서비스 제공 목적에 따른 기능 및/또는 동작을 수행할 수 있다. 단계 S1080은 도 9에 도시된 단계 S930과 동일하므로, 중복되는 설명은 생략한다.
도 11은 본 개시의 일 실시예에 따른 디바이스(1000) 및 서버(2000)의 동작을 도시한 흐름도이다.
도 11에 도시된 실시예에서, 디바이스(1000)는 서버(2000)와 데이터 송수신을 수행하는 통신 인터페이스를 포함할 수 있다. 통신 인터페이스는 예를 들어, 유선 랜, 무선 랜(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wireless Broadband Internet, Wibro), 와이맥스(World Interoperability for Microwave Access, WiMAX), SWAP(Shared Wireless Access Protocol), 와이기그(Wireless Gigabit Allicance, WiGig), 레거시 네트워크(예를 들어, 3G 통신 네트워크, LTE), 5G 통신 네트워크, 및 RF 통신 중 적어도 하나의 데이터 통신 네트워크를 이용하여 서버(2000)와 데이터 송수신을 수행할 수 있다.
도 11에 도시된 실시예는 도 1 내지 도 10에 도시된 실시예와는 달리, 디바이스(1000)에는 복수의 신경망 모델 및 신경망 모델 정보가 저장되지 않고, 서버(2000)에 복수의 신경망 모델이 등록되어 있고, 신경망 모델 정보가 저장되어 있을 수 있다.
단계 S1110에서, 디바이스(1000)는 센서를 이용하여 디바이스(1000)의 실행 환경에 관한 정보를 획득한다. 일 실시예에서, 디바이스(1000)는 센서를 포함하고, 센서를 이용하여 디바이스(1000)의 실행 환경과 관련된 정보를 획득할 수 있다. 예를 들어, 디바이스(1000)는 센서를 이용하여 디바이스(1000)가 실행되고 있는 위치 및 시점에 관한 정보뿐만 아니라, 조도, 온도 또는 습도에 관한 정보를 획득할 수 있다. 일 실시예에서, 디바이스(1000)는 통신 인터페이스를 이용하여, 유선 또는 무선 네트워크를 통해 인터넷으로부터 획득한 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 획득할 수 있다.
단계 S1120에서, 디바이스(1000)는 실행 환경 정보 및 인공지능(AI) 서비스의 제공 목적에 기초하여, 신경망 요구 사항을 결정한다. 일 실시예에서, 디바이스(1000)는 실행되고 있는 서비스 애플리케이션에 의해 제공되는 인공지능 서비스의 제공 목적 및 디바이스(1000)의 실행 환경에 기초하여 신경망 요구 사항을 결정할 수 있다. 일 실시예에서, 인공지능 서비스의 제공 목적은 신경망 모델을 이용하여 인식하려고 하는 인식 대상 객체일 수 있다.
다른 실시예에서, 디바이스(1000)는 인공지능 서비스의 제공 목적에 따라 인식하고자 하는 인식 대상 객체, 디바이스의 실행 환경, 및 디바이스(1000)의 하드웨어 리소스 특성 중 적어도 하나에 관한 정보에 기초하여, 신경망 요구 사항을 결정할 수도 있다. 디바이스(1000)의 '하드웨어 리소스 특성'은 프로세서(1100, 도 2 참조)의 연산, 추론 능력 및 메모리(1200, 도 2 참조)의 용량에 관한 하드웨어 정보를 포함할 수 있다.
단계 S1130에서, 서버(2000)는 신경망 모델 정보를 이용하여, 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택한다. 서버(2000)에는 복수의 신경망 모델의 신경망 모델 정보가 저장되어 있을 수 있다. 일 실시예에서, 신경망 모델 정보는 복수의 신경망 모델에 관한 식별 정보, 성능 정보, 설치 정보, 및 평가 정보를 포함할 수 있다. 서버(2000)는 신경망 요구 사항에 포함되는 디바이스(1000)의 실행 환경 정보 및 인공지능 서비스의 제공 목적뿐만 아니라, 신경망 모델의 인식 정확도 및 지연 시간에 기초하여, 서버(2000)의 메모리(또는 데이터베이스) 내에 저장된 복수의 신경망 모델 중 적어도 하나의 신경망 모델을 선택할 수 있다. 일 실시예에서, 서버(2000)는 신경망 요구 사항에 포함되는 인식 정확도에 관하여 설정된 최소 기준값 및 지연 시간에 관하여 설정된 최대 지연 시간을 만족하는 적어도 하나의 신경망 모델을 선택할 수 있다.
단계 S1150에서, 서버(2000)는 적어도 하나의 신경망 모델을 단일 구조 또는 병합 구조로 조합함으로써, 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다. 일 실시예에서, 서버(2000)는 하나의 신경망 모델만을 선택할 수 있고, 이 경우 단일 구조로 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다. 다른 실시예에서, 서버(2000)는 복수의 신경망 모델을 선택하고, 선택된 복수의 신경망 모델을 병렬 구조(parallel), 순차 구조(sequential), 및 하이브리드(hybrid) 구조 중 적어도 하나의 구조로 조합하여 인공지능 서비스 제공을 위한 신경망 모델을 구성할 수 있다.
단계 S1160에서, 서버(2000)는 구성된 신경망 모델을 디바이스(1000)에 제공한다.
단계 S1170에서, 디바이스(1000)는 카메라를 이용하여 주변 환경을 촬영함으로써, 이미지 데이터를 획득한다.
단계 S1180에서, 디바이스(1000)는 이미지 데이터를 신경망 모델에 적용하여, 이미지 데이터로부터 객체를 인식한다.
단계 S1190에서, 디바이스(1000)는 인식된 객체와 관련된 서비스를 제공한다. 단계 S1170 내지 S1190은 도 9에 도시된 단계 S910 내지 S930과 동일하므로, 중복되는 설명은 생략한다.
본 개시에서 설명된 디바이스(1000)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장되는 경우를 구분하지 않는다. 예를 들어, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
또한, 본 명세서에 개시된 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예를 들어, 삼성 갤럭시 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 디바이스(1000)의 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 디바이스(1000), 및/또는 서버(2000, 도 11 참조)로 구성되는 시스템에서, 서버(2000)의 저장매체 또는 디바이스(1000)의 저장매체를 포함할 수 있다. 또는, 디바이스(1000)와 통신 연결되는 제3 장치(예를 들어, 모바일 디바이스)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 디바이스(1000)로부터 제3 장치로 전송되거나, 제3 장치로부터 디바이스(1000)로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.
이 경우, 디바이스(1000), 서버(2000), 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 디바이스(1000), 서버(2000), 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 디바이스(1000)가 메모리(1200, 도 2 참조)에 저장된 컴퓨터 프로그램 제품을 실행하여, 디바이스(1000)과 통신 연결된 타 전자 장치(예를 들어, 모바일 디바이스)가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 전자 장치가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 디바이스(1000)로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드(pre-load)된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (20)

  1. 디바이스가 인공지능 서비스를 제공하는 방법에 있어서,
    상기 인공지능 서비스의 제공 목적 및 상기 디바이스의 실행 환경과 관련된 신경망 요구 사항을 식별하는 단계;
    기 등록된 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여, 상기 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택하는 단계;
    상기 선택된 적어도 하나의 신경망 모델을 이용하여, 상기 인공지능 서비스의 제공을 위한 신경망 모델을 획득하는 단계; 및
    상기 획득된 신경망 모델을 통해 상기 인공지능 서비스를 제공하는 단계;
    를 포함하는, 방법.
  2. 제1 항에 있어서,
    외부 서버 또는 상기 디바이스 내의 메모리에 저장된 복수의 신경망 모델에 관한 상기 신경망 모델 정보를 획득하는 단계; 및
    상기 획득된 신경망 모델 정보를 상기 메모리에 저장함으로써 상기 복수의 신경망 모델을 등록하는 단계;
    를 더 포함하는, 방법.
  3. 제2 항에 있어서,
    상기 신경망 모델 정보는, 상기 복수의 신경망 모델 각각의 식별 정보, 성능 정보, 설치 정보, 및 평가 정보 중 적어도 하나를 포함하는, 방법.
  4. 제1 항에 있어서,
    상기 신경망 요구 사항을 식별하는 단계는,
    상기 디바이스가 상기 인공지능 서비스를 제공하는 위치 및 시점에서, 상기 신경망 모델을 이용하여 인식하고자 하는 인식 대상 객체에 기초하여 상기 신경망 요구 사항을 결정하는 단계;
    를 포함하는, 방법.
  5. 제1 항에 있어서,
    상기 신경망 요구 사항을 식별하는 단계는,
    상기 디바이스의 실행 환경 정보, 상기 인공지능 서비스의 제공 목적에 따라 인식하고자 하는 인식 대상 객체 정보, 및 상기 인공지능 서비스를 제공하는 상기 디바이스의 하드웨어 리소스 특성 정보 중 적어도 하나에 기초하여 상기 신경망 요구 사항을 결정하는 단계;
    를 포함하는, 방법.
  6. 제5 항에 있어서,
    상기 실행 환경 정보는,
    상기 디바이스에 포함되는 센서를 이용하여 상기 디바이스의 내부 또는 외부의 사용 환경을 감지함으로써 획득한 정보, 통신 인터페이스를 통해 서버 또는 외부 디바이스로부터 수신된 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 포함하는, 방법.
  7. 제1 항에 있어서,
    상기 적어도 하나의 신경망 모델을 선택하는 단계는,
    상기 복수의 신경망 모델 각각의 인식 정확도(accuracy) 및 지연 시간(latency)에 관한 정보를 포함하는 성능 정보에 기초하여 상기 적어도 하나의 신경망 모델을 선택하는 단계;
    를 포함하는, 방법.
  8. 제1 항에 있어서,
    외부 서버 또는 외부 데이터베이스로부터 상기 복수의 신경망 모델을 다운로드하여 상기 디바이스의 메모리에 저장하는 단계;
    를 더 포함하는, 방법.
  9. 제1 항에 있어서,
    상기 적어도 하나의 신경망 모델을 선택하는 단계는,
    상기 신경망 요구 사항을 만족하는 복수의 신경망 모델을 선택하는 단계;
    를 포함하고,
    상기 신경망 모델을 획득하는 단계는,
    상기 선택된 복수의 신경망 모델을 순차 구조, 병렬 구조, 또는 상기 순차 구조와 병렬 구조를 조합한 하이브리드(hybrid) 구조 중 어느 하나의 구조로 조합함으로써 상기 신경망 모델을 구성하는 단계;
    를 포함하는, 방법.
  10. 제1 항에 있어서,
    상기 획득된 신경망 모델을 통해 상기 인공지능 서비스를 제공하는 단계는,
    카메라를 이용하여 상기 디바이스의 주변을 촬영함으로써, 이미지 데이터를 획득하는 단계; 및
    상기 획득된 신경망 모델에 상기 이미지 데이터를 적용함으로써, 상기 인공지능 서비스의 제공 목적에 대응하는 객체를 인식하는 단계;
    를 포함하는, 방법.
  11. 온-디바이스(on-device) 인공지능(AI) 서비스를 제공하는 디바이스에 있어서,
    적어도 하나의 명령어들(instructions)를 저장하는 메모리; 및
    상기 적어도 하나의 명령어들을 실행하는 적어도 하나의 프로세서;
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 인공지능 서비스의 제공 목적 및 상기 디바이스의 실행 환경과 관련된 신경망 요구 사항을 식별하고, 기 등록된 복수의 신경망 모델에 관한 신경망 모델 정보에 기초하여 상기 복수의 신경망 모델 중 상기 신경망 요구 사항을 만족하는 적어도 하나의 신경망 모델을 선택하고, 상기 선택된 적어도 하나의 신경망 모델을 이용하여 상기 인공지능 서비스의 제공을 위한 신경망 모델을 획득하고, 상기 획득된 신경망 모델을 통해 상기 인공지능 서비스를 제공하는, 디바이스.
  12. 제11 항에 있어서,
    통신 인터페이스; 를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 통신 인터페이스를 이용하여, 외부 서버로부터 상기 신경망 모델 정보를 획득하거나, 또는 상기 디바이스 내의 신경망 모델 저장부에 저장된 상기 복수의 신경망 모델로부터 상기 신경망 모델 정보를 획득하고,
    상기 획득된 신경망 모델 정보를 상기 메모리에 저장함으로써 상기 복수의 신경망 모델을 등록하는, 디바이스.
  13. 제12 항에 있어서,
    상기 신경망 모델 정보는, 상기 복수의 신경망 모델 각각의 식별 정보, 성능 정보, 설치 정보, 및 평가 정보 중 적어도 하나의 정보를 포함하는, 디바이스.
  14. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 디바이스의 실행 환경 정보, 상기 인공지능 서비스 제공 목적에 따라 인식하고자 하는 인식 대상 객체 정보, 및 상기 인공지능 서비스를 제공하는 상기 디바이스의 하드웨어 리소스 특성 정보 중 적어도 하나에 기초하여 상기 신경망 요구 사항을 결정하는, 디바이스.
  15. 제14 항에 있어서,
    통신 인터페이스; 및
    상기 디바이스의 내부 또는 외부의 사용 환경을 감지하는 센서;
    를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 센서를 이용하여 획득된 상기 디바이스의 내부 또는 외부의 사용 환경에 관한 정보, 상기 통신 인터페이스를 통해 서버 또는 외부 디바이스로부터 수신된 정보, 시스템 동작과 관련된 신택스(syntax) 정보, 사용자 정보, 및 입력 정보 중 적어도 하나를 포함하는 상기 실행 환경 정보를 획득하는, 디바이스.
  16. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 복수의 신경망 모델 각각의 인식 정확도(accuracy) 및 지연 시간(latency)에 관한 정보를 포함하는 성능 정보에 기초하여 상기 적어도 하나의 신경망 모델을 선택하는, 디바이스.
  17. 제11 항에 있어서,
    통신 인터페이스; 를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    외부 서버 또는 외부 데이터베이스로부터 상기 복수의 신경망 모델을 다운로드하도록 상기 통신 인터페이스를 제어하고,
    상기 다운로드된 복수의 신경망 모델을 상기 메모리에 저장하는, 디바이스.
  18. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 신경망 요구 사항을 만족하는 복수의 신경망 모델을 선택하고,
    상기 선택된 복수의 신경망 모델을 순차 구조, 병렬 구조, 또는 상기 순차 구조와 병렬 구조를 조합한 하이브리드(hybrid) 구조 중 어느 하나의 구조로 조합함으로써 상기 신경망 모델을 구성하는, 디바이스.
  19. 제11 항에 있어서,
    카메라;
    를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 카메라를 이용하여 주변을 촬영함으로써 이미지 데이터를 획득하고,
    상기 획득된 신경망 모델에 상기 이미지 데이터를 적용함으로써, 상기 인공지능 서비스의 제공 목적에 대응하는 객체를 인식하는, 디바이스.
  20. 제1 항 내지 제10 항 중 어느 하나의 항에 기재된 방법을 구현하기 위한 적어도 하나의 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020210121180A 2021-09-10 2021-09-10 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법 KR20230037991A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210121180A KR20230037991A (ko) 2021-09-10 2021-09-10 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법
PCT/KR2022/011502 WO2023038300A1 (ko) 2021-09-10 2022-08-03 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법
US18/600,376 US20240211726A1 (en) 2021-09-10 2024-03-08 Artificial intelligence service providing device, and operation method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210121180A KR20230037991A (ko) 2021-09-10 2021-09-10 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20230037991A true KR20230037991A (ko) 2023-03-17

Family

ID=85506708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210121180A KR20230037991A (ko) 2021-09-10 2021-09-10 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법

Country Status (3)

Country Link
US (1) US20240211726A1 (ko)
KR (1) KR20230037991A (ko)
WO (1) WO2023038300A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102572411B1 (ko) * 2023-07-19 2023-08-29 정우재 인공지능 기반의 물건 보관 시스템, 물건 보관 전략생성 서버 및 방법
KR102662500B1 (ko) * 2023-09-15 2024-05-03 (주)유알피 추론 응답 시간을 기반으로 한 딥러닝 모델 동적 전환 시스템
KR102662498B1 (ko) * 2023-09-15 2024-05-03 (주)유알피 사용자 질의에 대한 추론 응답 시간에 따라 딥러닝 모델을 동적으로 전환하는 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235673A (en) * 1991-04-18 1993-08-10 International Business Machines Corporation Enhanced neural network shell for application programs
JP6632770B1 (ja) * 2018-06-05 2020-01-22 三菱電機株式会社 学習装置、学習推論装置、方法、及びプログラム
KR102277172B1 (ko) * 2018-10-01 2021-07-14 주식회사 한글과컴퓨터 인공 신경망 선택 장치 및 방법
KR102234651B1 (ko) * 2019-06-20 2021-04-01 (주)헬스허브 인공지능 플랫폼 시스템 및 이를 제공하기 위한 방법
KR102185358B1 (ko) * 2019-08-27 2020-12-01 (주)데이터리퍼블릭 유저 데이터 및 서비스 항목 데이터를 활용한 서비스 구현 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102572411B1 (ko) * 2023-07-19 2023-08-29 정우재 인공지능 기반의 물건 보관 시스템, 물건 보관 전략생성 서버 및 방법
KR102662500B1 (ko) * 2023-09-15 2024-05-03 (주)유알피 추론 응답 시간을 기반으로 한 딥러닝 모델 동적 전환 시스템
KR102662498B1 (ko) * 2023-09-15 2024-05-03 (주)유알피 사용자 질의에 대한 추론 응답 시간에 따라 딥러닝 모델을 동적으로 전환하는 방법

Also Published As

Publication number Publication date
WO2023038300A1 (ko) 2023-03-16
US20240211726A1 (en) 2024-06-27

Similar Documents

Publication Publication Date Title
KR20230037991A (ko) 인공지능 서비스를 제공하는 디바이스 및 그 동작 방법
Felfernig et al. An overview of recommender systems in the internet of things
US20200118010A1 (en) System and method for providing content based on knowledge graph
US8452451B1 (en) Methods and systems for robotic command language
US8380652B1 (en) Methods and systems for autonomous robotic decision making
US11892925B2 (en) Electronic device for reconstructing an artificial intelligence model and a control method thereof
US9026248B1 (en) Methods and systems for multirobotic management
US11170778B2 (en) Conversational control system and method for registering external device
KR102135674B1 (ko) 상품 리뷰의 키워드 추출 신경망 모델 기반의 맞춤형 상품 추천 장치, 방법 및 이를 위한 기록매체
KR102669026B1 (ko) 전자 장치 및 이의 제어 방법
US20180367616A1 (en) Reusable device management in machine-to-machine systems
CN109976172B (zh) 集合条件生成的方法、装置、电子设备以及存储介质
EP3961988A1 (en) Scenario operating method and apparatus, electronic device, and computer readable medium
US20190028545A1 (en) Declarative machine-to-machine application programming
US20200401853A1 (en) Smart video surveillance system using a neural network engine
US11902043B2 (en) Self-learning home system and framework for autonomous home operation
KR20230023704A (ko) 전자 장치 및 그의 제어 방법
CN113223514A (zh) 基于IoT环境中的非语音声音的语音命令解析方法及装置
KR20210049564A (ko) 공기 조화 장치 및 이의 제어 방법
US11249871B2 (en) Device and method for providing response to device usage inquiry
NL2028971B1 (en) System and method for recognizing dynamic anomalies of multiple livestock equipment in smart farm system
KR20210004184A (ko) 마킹 정보의 식별 기반의 가축 관리 방법 및 이를 수행하는 컴퓨팅 장치와 서버
US20230225290A1 (en) Operating an automated and adaptive animal behavioral training system using machine learning
US20210004702A1 (en) System and method for generating information for interaction with a user
Kiljander et al. Enabling end-users to configure smart environments