KR20240070798A - Apparatus and method for surveillance - Google Patents

Apparatus and method for surveillance Download PDF

Info

Publication number
KR20240070798A
KR20240070798A KR1020220152144A KR20220152144A KR20240070798A KR 20240070798 A KR20240070798 A KR 20240070798A KR 1020220152144 A KR1020220152144 A KR 1020220152144A KR 20220152144 A KR20220152144 A KR 20220152144A KR 20240070798 A KR20240070798 A KR 20240070798A
Authority
KR
South Korea
Prior art keywords
image
source
application
npu
cropped
Prior art date
Application number
KR1020220152144A
Other languages
Korean (ko)
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 KR1020220152144A priority Critical patent/KR20240070798A/en
Publication of KR20240070798A publication Critical patent/KR20240070798A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/50Constructional details
    • H04N23/54Mounting of pick-up tubes, electronic image sensors, deviation or focusing coils
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 감시 장치 및 방법에 관한 것으로서, AI 연산 처리가 가능한 인공지능 하드웨어를 구비하여 객체에 대한 감시를 수행하는 감시 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 감시 장치는 감시 영역을 촬영하여 영상을 생성하는 이미지 센서와, 상기 영상에서 객체를 탐지하고, 상기 영상의 영역 중 상기 탐지된 객체가 포함된 객체 영역을 잘라내어 크롭 영상을 생성하는 전처리부와, AI 연산 처리를 수행하는 AI 소스, 및 상기 AI 소스로 하여금 상기 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 상기 영상에 포함된 객체에 대한 AI 분석을 수행하는 AI 어플리케이션과, 상기 AI 소스로 하여금 상기 AI 어플리케이션이 요청하는 AI 연산을 처리하게 하는 NPU 컨트롤러, 및 상기 AI 어플리케이션과 상기 NPU 컨트롤러의 사이에서 상기 AI 어플리케이션의 AI 연산 처리 요청 및 상기 AI 소스의 AI 연산 처리 결과를 전달하고, 상기 AI 어플리케이션과 상기 NPU 컨트롤러 사이의 명령어를 호환 가능하도록 변환하는 NPU 드라이버를 포함한다.
The present invention relates to a monitoring device and method, which performs monitoring of an object by having artificial intelligence hardware capable of AI calculation processing.
A surveillance device according to an embodiment of the present invention includes an image sensor that captures a surveillance area and generates an image, detects an object in the image, and cuts out an object area containing the detected object from the area of the image to produce a cropped image. A preprocessor that generates, an AI source that performs AI calculation processing, and an AI application that performs AI analysis on objects included in the image by having the AI source perform AI calculation processing on the cropped image, An NPU controller that causes the AI source to process an AI operation requested by the AI application, and transmits the AI operation processing request of the AI application and the AI operation processing result of the AI source between the AI application and the NPU controller. and an NPU driver that converts instructions between the AI application and the NPU controller to be compatible.

Figure P1020220152144
Figure P1020220152144

Description

감시 장치 및 방법{Apparatus and method for surveillance}Surveillance device and method {Apparatus and method for surveillance}

본 발명은 감시 장치 및 방법에 관한 것으로서, 더욱 상세하게는 AI 연산 처리가 가능한 인공지능 하드웨어를 구비하여 객체에 대한 감시를 수행하는 감시 장치 및 방법에 관한 것이다.The present invention relates to a monitoring device and method, and more specifically, to a monitoring device and method that performs monitoring of an object by having artificial intelligence hardware capable of AI calculation processing.

목표로 하는 장소에 대한 감시의 용도로서 카메라가 이용될 수 있다. 사용자는 카메라에 의해 촬영된 영상을 참조하여 해당 장소에 대한 감시를 수행할 수 있다.Cameras can be used for surveillance of a target location. Users can perform surveillance on the location by referring to the video captured by the camera.

영상에 포함된 객체를 검출하고 추적하기 위하여 인공지능 알고리즘이 이용될 수 있다. 인공지능 알고리즘을 위한 연산 처리는 별도의 인공지능 하드웨어에 의해 수행될 수 있다.Artificial intelligence algorithms can be used to detect and track objects included in images. Computation processing for artificial intelligence algorithms can be performed by separate artificial intelligence hardware.

일반적으로 인공지능 하드웨어는 사전에 설정된 해상도의 영상에 대한 연산 처리를 수행할 수 있다. 원본 영상이 고해상도의 영상이라고 하더라도 인공지능 하드웨어는 원본 영상의 해상도를 감소시킨 저해상도의 영상에 대한 연산 처리를 수행할 수 있다. 인공지능 하드웨어가 저해상도의 영상에 대한 연산 처리를 수행하기 때문에 인공지능 하드웨어에 의한 연산 처리 결과의 신뢰도가 감소될 수 있다.In general, artificial intelligence hardware can perform computational processing on images of preset resolution. Even if the original image is a high-resolution image, artificial intelligence hardware can perform calculation processing on a low-resolution image that reduces the resolution of the original image. Because artificial intelligence hardware performs computational processing on low-resolution images, the reliability of computational processing results by artificial intelligence hardware may be reduced.

따라서, 인공지능 하드웨어에 의한 연산 처리 결과의 신뢰도를 향상시키는 발명의 등장이 요구된다.Therefore, the emergence of inventions that improve the reliability of computational processing results by artificial intelligence hardware is required.

공개특허공보 10-2022-0094416호 (2022.07.06)Public Patent Publication No. 10-2022-0094416 (2022.07.06)

본 발명이 해결하고자 하는 과제는 AI 연산 처리가 가능한 인공지능 하드웨어를 구비하여 객체에 대한 감시를 수행하는 감시 장치 및 방법을 제공하는 것이다.The problem to be solved by the present invention is to provide a monitoring device and method that performs monitoring of an object equipped with artificial intelligence hardware capable of AI calculation processing.

본 발명의 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the problems mentioned above, and other objects not mentioned will be clearly understood by those skilled in the art from the description below.

상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 감시 장치는 감시 영역을 촬영하여 영상을 생성하는 이미지 센서와, 상기 영상에서 객체를 탐지하고, 상기 영상의 영역 중 상기 탐지된 객체가 포함된 객체 영역을 잘라내어 크롭 영상을 생성하는 전처리부와, AI 연산 처리를 수행하는 AI 소스, 및 상기 AI 소스로 하여금 상기 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 상기 영상에 포함된 객체에 대한 AI 분석을 수행하는 AI 어플리케이션, 상기 AI 소스로 하여금 상기 AI 어플리케이션이 요청하는 AI 연산을 처리하게 하는 NPU 컨트롤러, 및 상기 AI 어플리케이션과 상기 NPU 컨트롤러의 사이에서 상기 AI 어플리케이션의 AI 연산 처리 요청 및 상기 AI 소스의 AI 연산 처리 결과를 전달하고, 상기 AI 어플리케이션과 상기 NPU 컨트롤러 사이의 명령어를 호환 가능하도록 변환하는 NPU 드라이버를 포함한다.In order to achieve the above task, a surveillance device according to an embodiment of the present invention includes an image sensor that captures a surveillance area and generates an image, detects an object in the image, and includes an image sensor in the area of the image that contains the detected object. A preprocessor that cuts out the object area and generates a cropped image, an AI source that performs AI calculation processing, and AI analysis of the object included in the image by having the AI source perform AI calculation processing on the cropped image. An AI application that performs, an NPU controller that causes the AI source to process an AI operation requested by the AI application, and an AI operation processing request of the AI application and the AI source between the AI application and the NPU controller. It includes an NPU driver that delivers AI operation processing results and converts instructions between the AI application and the NPU controller to be compatible.

상기 크롭 영상의 해상도는 상기 영상의 해상도와 동일한 것을 포함한다.The resolution of the cropped image includes the same resolution as the image.

상기 전처리부는 상기 AI 소스에 의해 처리 가능한 영상의 크기에 비하여 작거나 동일한 크기로 상기 크롭 영상을 생성한다.The preprocessor generates the cropped image in a size that is smaller than or equal to the size of the image that can be processed by the AI source.

상기 AI 소스는 복수 개가 구비되고, 상기 NPU 드라이버는 상기 복수의 AI 소스의 자원을 모니터링하고, 상기 모니터링 결과를 참조하여 상기 복수의 AI 소스 중 AI 연산 처리를 수행할 AI 소스를 선정하며, 상기 전처리부는 상기 선정된 AI 소스에 의해 처리 가능한 영상의 크기에 비하여 작거나 동일한 크기로 상기 크롭 영상을 생성한다.The AI source is provided in a plurality, and the NPU driver monitors the resources of the plurality of AI sources, selects an AI source to perform AI operation processing among the plurality of AI sources with reference to the monitoring result, and the preprocessing. The unit generates the cropped image in a size that is smaller than or equal to the size of the image that can be processed by the selected AI source.

상기 전처리부는 상기 AI 어플리케이션으로 상기 크롭 영상의 크롭 정보를 송신하고, 상기 크롭 정보는, 상기 영상의 영역 중 상기 객체 영역이 배치되는 좌표를 나타내는 크롭 위치 정보, 및 상기 영상의 프레임 중 상기 객체 영역이 포함되는 시점을 나타내는 시간 정보를 포함한다.The preprocessor transmits crop information of the cropped image to the AI application, and the crop information includes crop position information indicating coordinates at which the object area is located among the areas of the image, and the object area among the frames of the image. Contains time information indicating the time of inclusion.

본 발명의 실시예에 따른 감시 방법은 AI 연산 처리를 수행하는 AI 소스를 이용하여 영상에 포함된 객체에 대한 AI 분석을 수행하는 감시 방법에 있어서, 감시 영역을 촬영하여 영상을 생성하는 단계와, 상기 영상에서 객체를 탐지하고, 상기 영상의 영역 중 상기 탐지된 객체가 포함된 객체 영역을 잘라내어 크롭 영상을 생성하는 단계와, 상기 AI 소스로 하여금 상기 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 상기 영상에 포함된 객체에 대한 AI 분석을 수행하는 단계를 포함한다.A surveillance method according to an embodiment of the present invention is a surveillance method that performs AI analysis on an object included in an image using an AI source that performs AI calculation processing, comprising: capturing a surveillance area to generate an image; Detecting an object in the image, generating a cropped image by cutting out an object area containing the detected object from an area of the image, and having the AI source perform AI operation processing on the cropped image. It includes performing AI analysis on objects included in the image.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and drawings.

상기한 바와 같은 본 발명의 감시 장치 및 방법에 따르면 원본 영상 중 인공지능 하드웨어에 의한 연산 처리 가능한 해상도의 영역만을 인공지능 하드웨어가 처리하기 때문에 인공지능 하드웨어에 의한 연산 처리 결과의 신뢰도가 향상되는 장점이 있다.According to the monitoring device and method of the present invention as described above, the artificial intelligence hardware processes only the area of the original image with a resolution that can be processed by the artificial intelligence hardware, so the reliability of the computational processing results by the artificial intelligence hardware is improved. there is.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.

도 1은 감시 시스템을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 감시 장치의 블록도이다.
도 3은 도 2에 도시된 NPU 컨트롤러의 기능을 설명하기 위한 도면이다.
도 4는 도 3에 도시된 AI 데이터 처리부의 기능을 설명하기 위한 도면이다.
도 5는 AI 데이터 처리부에 의해 전달되는 데이터 패킷을 나타낸 도면이다.
도 6은 도 3에 도시된 전처리부의 블록도이다.
도 7은 크롭 영상이 생성되는 것을 나타낸 도면이다.
도 8은 AI 어플리케이션의 기능을 설명하기 위한 도면이다.
도 9는 영상에서 객체가 검출된 것을 나타낸 도면이다.
도 10은 복수의 객체를 포함하는 크롭 영상이 생성되는 것을 나타낸 도면이다.
도 11은 해상도가 감소된 크롭 영상에 생성되는 것을 나타낸 도면이다.
도 12는 도 2의 감시 장치를 구현하는 컴퓨팅 장치의 예시도이다.
도 13은 본 발명의 실시예에 따른 감시 방법을 나타낸 흐름도이다.
1 is a diagram showing a monitoring system.
Figure 2 is a block diagram of a monitoring device according to an embodiment of the present invention.
FIG. 3 is a diagram for explaining the function of the NPU controller shown in FIG. 2.
FIG. 4 is a diagram for explaining the function of the AI data processing unit shown in FIG. 3.
Figure 5 is a diagram showing a data packet transmitted by the AI data processing unit.
FIG. 6 is a block diagram of the preprocessor shown in FIG. 3.
Figure 7 is a diagram showing how a cropped image is generated.
Figure 8 is a diagram to explain the function of an AI application.
Figure 9 is a diagram showing an object detected in an image.
Figure 10 is a diagram showing the creation of a cropped image including a plurality of objects.
Figure 11 is a diagram showing what is generated on a cropped image with reduced resolution.
FIG. 12 is an exemplary diagram of a computing device implementing the monitoring device of FIG. 2.
Figure 13 is a flowchart showing a monitoring method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings. The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely intended to ensure that the disclosure of the present invention is complete and to provide common knowledge in the technical field to which the present invention pertains. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.

도 1은 감시 시스템을 나타낸 도면이다.1 is a diagram showing a monitoring system.

도 1을 참조하면, 감시 시스템(10)은 감시 장치(100), 네트워크 비디오 레코더(NVR: network video recorder)(150), 비디오 관리 시스템(VMS: video management system)(160) 및 사용자 단말기(170)를 포함하여 구성된다.Referring to FIG. 1, the surveillance system 10 includes a surveillance device 100, a network video recorder (NVR) 150, a video management system (VMS) 160, and a user terminal 170. ) and consists of

감시 장치(100), 네트워크 비디오 레코더(NVR: network video recorder)(150), 비디오 관리 시스템(VMS: video management system)(160) 및 사용자 단말기(170)는 상호 간에 네트워크(30)를 통해 연결될 수 있다.The surveillance device 100, a network video recorder (NVR) 150, a video management system (VMS) 160, and the user terminal 170 can be connected to each other through the network 30. there is.

감시 장치(100)는 영상을 촬상하는 기능과 AI 연산을 처리하는 기능을 갖는다. 본 발명에서 영상(image)이란 정지 영상(still picture) 및 동영상(moving picture)을 포괄하는 의미로 사용된다. 동영상은 일반적으로 비디오(video)라고도 불린다.The monitoring device 100 has the function of capturing images and processing AI calculations. In the present invention, image is used to encompass still picture and moving picture. Moving pictures are also commonly called videos.

감시 장치(100)는 촬상된 영상과 AI 연산 처리 결과를 기초로 비디오 분석(VA: video analytics)를 수행할 수 있다. VA를 통해 얻어지는 메타데이터는 네트워크 비디오 레코더(150)에 저장될 수 있다.The monitoring device 100 may perform video analysis (VA) based on the captured image and AI operation processing results. Metadata obtained through VA may be stored in the network video recorder 150.

비디오 관리 시스템(160)은 사용자의 검색 요청에 따라 메타데이터를 이용하여 저장된 영상 중에서 이벤트가 발생된 영상을 검색하고, 이벤트에 대응되는 조치(알람, 객체 추적 등)를 취할 수 있다.The video management system 160 can search for an image in which an event occurs among stored images using metadata according to a user's search request and take actions (alarm, object tracking, etc.) corresponding to the event.

사용자 단말 장치(170)는 개인용 컴퓨터, 모바일 단말 등으로 구현될 수 있으며, 네트워크(30)를 통해 감시 장치(100), 네트워크 비디오 레코더(150), 비디오 관리 시스템(160) 등에 접속할 수 있다.The user terminal device 170 may be implemented as a personal computer, mobile terminal, etc., and may be connected to the surveillance device 100, the network video recorder 150, the video management system 160, etc. through the network 30.

이와 같이, 감시 장치(100)는 AI 연산을 통해 VA를 수행할 수 있고, 이를 위해 내부에 다양한 하드웨어(SoC: system on chip) 및 소프트웨어 기반으로 AI 처리 기능을 갖는다. 그러나, 감시 장치(100)의 제조사 마다 고유의 SoC가 사용되고 있으므로 다양한 소프트웨어 기반의 AI 어플리케이션과 직접 호환되지 못하므로 SoC마다 전용의 AI 어플리케이션을 탑재해야 하는 번거로움이 발생할 수 있다.In this way, the monitoring device 100 can perform VA through AI calculation, and for this purpose, it has AI processing functions internally based on various hardware (SoC: system on chip) and software. However, since each manufacturer of the monitoring device 100 uses its own SoC, it is not directly compatible with various software-based AI applications, which may cause the inconvenience of having to install a dedicated AI application for each SoC.

따라서, 본 발명에서 감시 장치(100)는 오픈 플랫폼(Open Platform) 환경에서 소프트웨어 계층에서 AI 처리를 위한 명령어 함수, 예를 들어 API(application programming interface)를 호환 가능하게 변환하고, 하드웨어적으로는 NPU 컨트롤러를 추가하여 다양한 SoC 환경에서 동일한 AI 어플리케이션을 호환 가능하게 사용할 수 있다.Therefore, in the present invention, the monitoring device 100 converts a command function for AI processing, for example, an application programming interface (API), to be compatible in the software layer in an open platform environment, and in hardware, it is an NPU. By adding a controller, the same AI application can be used interchangeably in various SoC environments.

도 2는 본 발명의 일 실시예에 따른 감시 장치(100)의 구성을 도시한 블록도이다.Figure 2 is a block diagram showing the configuration of a monitoring device 100 according to an embodiment of the present invention.

도시된 바와 같이, 감시 장치(100)는 최상위 응용 계층(Layer2), 응용 계층(Layer2) 아래에 위치하는 SW 계층(Layer1), 및 SW 계층(Layer1)의 아래에 위치하는 HW 계층(Layer0)으로 구성될 수 있다.As shown, the monitoring device 100 is divided into a top application layer (Layer2), a SW layer (Layer1) located below the application layer (Layer2), and a HW layer (Layer0) located below the SW layer (Layer1). It can be configured.

여기서, AI 어플리케이션(110)은 응용 계층(Layer2)에 속하고, NPU 드라이버(120)는 SW 계층(Layer1)에 속하며, 감시 장치(100)에 임베드 된 복수의 AI 소스(51, 54, 55, 56) 및 NPU 컨트롤러(130)는 HW 계층(Layer0)에 속한다.Here, the AI application 110 belongs to the application layer (Layer2), the NPU driver 120 belongs to the SW layer (Layer1), and a plurality of AI sources 51, 54, 55, embedded in the monitoring device 100 56) and the NPU controller 130 belong to the HW layer (Layer0).

제어부 내지 CPU(56)는 감시 장치(100)의 다른 구성요소들의 동작을 제어하는 컨트롤러 역할을 한다. 또한, 메모리(미도시)는 CPU(56)에서 수행된 결과를 저장하거나 CPU(150)의 동작을 위해 필요한 데이터를 저장하는 저장 매체로서, 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있다.The control unit or CPU 56 serves as a controller that controls the operations of other components of the monitoring device 100. In addition, memory (not shown) is a storage medium that stores results performed by the CPU 56 or data necessary for the operation of the CPU 150, and may be implemented as volatile memory or non-volatile memory.

먼저, HW 계층(Layer0)를 살펴보면, 이미지 센서(60)는 외부의 피사체로부터 영상을 촬상한다. 예를 들어, 이미지 센서(60)는 감시 영역을 촬영하여 영상을 생성할 수 있다. 이미지 센서(60)는 CCD, CMOS와 같은 알려진 촬상 소자로 구현될 수 있으며, 촬상 영상에 포함된 화소들을 디지털 값으로 출력한다.First, looking at the HW layer (Layer0), the image sensor 60 captures an image from an external subject. For example, the image sensor 60 can generate an image by photographing a surveillance area. The image sensor 60 may be implemented with a known imaging device such as CCD or CMOS, and outputs pixels included in the captured image as digital values.

ISP(Image Signal Processor)(65)는 촬상된 영상을 저장하기 전에 영상에 대한 전처리를 수행할 수 있다. 전처리는 화이트 밸런스, 감마 조정, 업/다운 샘플링 등의 영상 처리를 포함할 수 있다. ISP(65)에 의해 처리된 영상은 입력 비디오로서 NPU 컨트롤러(130)에 제공된다.The Image Signal Processor (ISP) 65 may perform pre-processing on the captured image before storing it. Preprocessing may include image processing such as white balance, gamma adjustment, and up/down sampling. The image processed by the ISP 65 is provided to the NPU controller 130 as input video.

HW 계층(Layer0)에는 복수의 AI 소스(51~56)가 임베드 될 수 있다. 각각의 AI 소스(51~56)는 NPU 컨트롤러(130)와 통신 가능하게 연결되어 있다. 임베드 된 AI 소스(51~56)는 감시 장치(100) 자체에 내장되어 AI 연산을 처리할 수 있는 기능을 갖는 SoC들로서, NPU(neural processing unit)(51), GPU(graphic processing unit)(54), DSP(digital signal processor)(55) 및 CPU(central processing unit)(56)를 포함할 수 있다.Multiple AI sources (51 to 56) can be embedded in the HW layer (Layer0). Each AI source (51 to 56) is communicatively connected to the NPU controller (130). The embedded AI sources 51 to 56 are SoCs that are built into the monitoring device 100 itself and have the ability to process AI operations, including a neural processing unit (NPU) 51 and a graphic processing unit (GPU) 54. ), a digital signal processor (DSP) 55, and a central processing unit (CPU) 56.

GPU(54)의 원래 목적은 컴퓨터 그래픽 처리이지만, AI 연산 처리용으로 GPU를 쓰는 이유는 그래픽 처리와 AI 연산이 비슷한 방법으로 이뤄지기 때문이다. 예를 들어, 엔비디아 사의 GPU는 쿠다(CUDA)를 이용해 AI 연산의 처리가 가능하고, 다른 제조사의 GPU도 고유한 API를 제공함으로써 AI 연산을 처리할 수 있다.The original purpose of the GPU 54 is computer graphics processing, but the reason GPU is used for AI calculation processing is because graphics processing and AI calculation are performed in similar ways. For example, NVIDIA's GPU can process AI calculations using CUDA, and GPUs from other manufacturers can also process AI calculations by providing their own APIs.

이에 비해, NPU(51)는 AI 연산만을 위한 목적이기 때문에 GPU보다 범용성이 낮지만 AI 연산 전용의 처리를 위한 칩이므로 AI 연산의 처리 속도는 상당히 높다. 다만, NPU(51)는 이와 같은 낮은 범용성으로 인하여 다른 AI 알고리즘을 습득하기 어렵다. 왜냐하면, NPU(51)는 AI 알고리즘의 딥러닝 네트워크를 구성하는 신경망을 하드웨어로 구현했기 때문이다. 따라서, 구조가 다른 알고리즘을 구현할 때 오히려 더 큰 시간과 비용이 들 수 있다. 다만, 원래 용도에서 NPU(51)는 GPU(54)에 대비하여 높은 효율을 보인다. 이러한 NPU(51)의 제조사로는 ARM, 삼성전자, 애플, 퀄컴, 화웨이 등이 있다.In comparison, the NPU 51 is less versatile than the GPU because it is intended only for AI calculations, but since it is a chip for processing dedicated to AI calculations, the processing speed of AI calculations is considerably higher. However, due to the low versatility of the NPU (51), it is difficult to learn other AI algorithms. This is because the NPU (51) implements the neural network that makes up the deep learning network of the AI algorithm in hardware. Therefore, when implementing an algorithm with a different structure, it may take more time and cost. However, in its original purpose, the NPU (51) shows higher efficiency compared to the GPU (54). Manufacturers of such NPU 51 include ARM, Samsung Electronics, Apple, Qualcomm, and Huawei.

한편, 임베드 된 복수의 AI 소스(51~56)로부터 확장하여 감시 장치(100) 외부의 AI 소스(52, 53)도 NPU 컨트롤러(130)에 연결될 수 있다. 이하, 감시 장치(100)에 임베드 된 AI 소스(51, 54, 55, 56)와 외부의 AI 소스(52, 53)를 포괄하여 가용한 AI 소스(50)라 한다.Meanwhile, by expanding from the embedded plurality of AI sources 51 to 56, AI sources 52 and 53 outside the monitoring device 100 may also be connected to the NPU controller 130. Hereinafter, the available AI source 50 includes the AI sources 51, 54, 55, and 56 embedded in the monitoring device 100 and the external AI sources 52 and 53.

분리형 외부 SoC(52)는 접속 소켓(75), 예를 들어 USB 단자를 통해 감시 장치(100)에 직접 유선/무선으로 접속될 수 있는 AI 소스 형태이다. 이러한 분리형 외부 SoC(52)는 별도의 네트워크를 통한 통신이 불필요하므로, 감시 장치(100) 내부에 NPU(51)가 설치되어 있지 않은 환경에서 유용하게 활용될 수 있다.The separate external SoC 52 is in the form of an AI source that can be directly wired/wireless connected to the monitoring device 100 through the connection socket 75, for example, a USB terminal. Since this separate external SoC 52 does not require communication through a separate network, it can be useful in an environment where the NPU 51 is not installed inside the monitoring device 100.

클라우드 서버(53)는 대규모 데이터센터, 엣지 서버(edge server), 게이트웨이(Gateway) 등에 설치되어 네트워크 통신에 의해 감시 장치(100)와 연결될 수 있는 AI 소스의 형태이다. 따라서, 클라우드 서버(53)와의 연결을 위해, 감시 장치(100)는 이더넷, WLAN과 같은 네트워크 인터페이스(70)를 포함할 수 있다.The cloud server 53 is a type of AI source that is installed in a large data center, edge server, gateway, etc. and can be connected to the monitoring device 100 through network communication. Therefore, for connection to the cloud server 53, the monitoring device 100 may include a network interface 70 such as Ethernet or WLAN.

HW 계층(Layer0)의 상위에는 SW 계층(Layer1)이 존재한다. SW 계층(Layer1)에는 소프트웨어로 구성된, NPU 드라이버(120), 윈도우, 안드로이드, IOS와 같은 운영 체제(OS: operating system)(121), SDK(software development kit)(123) 등이 설치된다. Above the HW layer (Layer0), the SW layer (Layer1) exists. In the SW layer (Layer 1), software consisting of an NPU driver (120), an operating system (OS) such as Windows, Android, and IOS (121), and a software development kit (SDK) (123) are installed.

SDK(123)란, 일반적으로 NPU(51)와 같은 하드웨어 플랫폼, 운영체제(121), 프로그래밍 언어의 확장 기능을 사용할 수 있도록 배포되는 개발 도구이다. 본 발명에서 SDK(123)는 NPU(51)의 확장 기능을 위해 사용된다. 일반적으로 운영 체제(121) 뿐만 아니라, SDK(123)에도 API(Application Programming Interface)가 포함되는 것이 일반적이다. 일반적으로, API는 정보 제공자와 정보 사용자 간의 계약으로 지칭되며 소비자에게 필요한 콘텐츠(호출)와 생산자에게 필요한 콘텐츠(응답)를 구성한다. 이러한 API를 통해 사용자는 복잡한 애플리케이션을 더욱 쉽게 개발하게 될 수 있고, 필요에 따라 디버깅하고 새로운 기능을 추가할 수 있게 된다.The SDK (123) is a development tool that is generally distributed to use extended functions of a hardware platform such as the NPU (51), an operating system (121), and a programming language. In the present invention, the SDK (123) is used for the expansion function of the NPU (51). Generally, not only the operating system 121 but also the SDK 123 includes an API (Application Programming Interface). Generally, an API is referred to as a contract between an information provider and an information user and constitutes the content needed by the consumer (call) and the content needed by the producer (response). These APIs make it easier for users to develop complex applications, debug them, and add new features as needed.

NPU 드라이버(120)는 AI 어플리케이션(110)과 NPU 컨트롤러(130)의 사이에서 AI 어플리케이션(110)의 AI 연산 처리 요청 및 AI 소스(50)의 AI 연산 처리 결과를 전달할 수 있다. 또한, NPU 드라이버(120)는 AI 어플리케이션(110)과 NPU 컨트롤러(130) 사이의 명령어를 호환 가능하도록 변환할 수 있다.The NPU driver 120 may transmit the AI operation processing request of the AI application 110 and the AI operation processing result of the AI source 50 between the AI application 110 and the NPU controller 130. Additionally, the NPU driver 120 can convert instructions between the AI application 110 and the NPU controller 130 to be compatible.

이를 위하여, NPU 드라이버(120)는 가용한 AI 소스(50)의 제어를 위하여 이용되는 API(Application Programming Interface)와 확장 API 사이의 변환을 수행할 수 있다. 즉, NPU 드라이버(120)는 AI 소스의 제조사 별로 상이한 API를 AI 어플리케이션(110)에서 이용 가능한 표준화된 형태의 확장 API(EAPI: extended API)로 변환하여 AI 어플리케이션(110)으로 전달할 수 있다. 마찬가지로, NPU 드라이버(120)는 AI 어플리케이션(110)의 요청에 따라 확장 API를 AI 소스의 제조사별로 정의된 API의 형태로 변환하여 NPU 컨트롤러(130)에 제공할 수 있다.To this end, the NPU driver 120 can perform conversion between an API (Application Programming Interface) used to control the available AI source 50 and an extended API. That is, the NPU driver 120 can convert different APIs for each AI source manufacturer into a standardized extended API (EAPI) usable by the AI application 110 and transmit it to the AI application 110. Likewise, the NPU driver 120 may convert the extended API into an API defined for each manufacturer of the AI source at the request of the AI application 110 and provide it to the NPU controller 130.

이러한 NPU 드라이버(120)를 통한 AI 어플리케이션(110)의 요청에 따라, NPU 컨트롤러(130)는 AI 소스로 하여금 AI 어플리케이션(110)이 요청하는 AI 연산을 처리하게 할 수 있다. 본 발명에서 AI 소스(50)는 복수 개가 구비되는데, NPU 컨트롤러(130)는 복수의 AI 소스(50) 중 적어도 하나를 선택하여 AI 연산 처리를 수행할 것을 명령할 수 있다.According to the request of the AI application 110 through the NPU driver 120, the NPU controller 130 can cause the AI source to process the AI operation requested by the AI application 110. In the present invention, a plurality of AI sources 50 are provided, and the NPU controller 130 may select at least one of the plurality of AI sources 50 and command to perform AI operation processing.

NPU 드라이버(120)는 감시 장치(100)에 임베드 된 AI 소스(51, 54, 55, 56)과 감시 장치(100) 외부의 AI 소스(52, 53)를 포함한 가용한 AI 소스(50)의 현재 자원을 모니터링 할 수 있다. 그리고, NPU 드라이버(120)는 모니터링 결과를 참조하여 복수의 AI 소스(51, 54, 55, 56, 52, 53) 중 AI 연산 처리를 수행할 AI 소스를 선정할 수 있다. 구체적으로, NPU 드라이버(120)는 모니터링되는 현재 자원이 임계치 이상인 AI 소스 중에서 우선 순위가 가장 높은 AI 소스를 선정하고, 선정된 AI 소스에 의해 AI 연산을 처리하게 한다.The NPU driver 120 provides information on available AI sources 50, including AI sources 51, 54, 55, 56 embedded in the monitoring device 100 and AI sources 52, 53 external to the monitoring device 100. Current resources can be monitored. In addition, the NPU driver 120 may refer to the monitoring result and select an AI source to perform AI calculation processing among the plurality of AI sources 51, 54, 55, 56, 52, and 53. Specifically, the NPU driver 120 selects the AI source with the highest priority among AI sources whose current monitored resources are greater than or equal to a threshold, and processes AI calculations by the selected AI source.

또한, NPU 드라이버(120)는 AI 소스를 선정한 후에도, 선정된 AI 소스가 갖는 현재 자원을 모니터링하여, 현재 자원이 임계치를 미달하게 되면, 선정된 AI 소스의 다음 우선 순위를 갖는 AI 소스를 선정할 수 있다. 또는, NPU 드라이버(120)는 현재 자원이 임계치를 미달하게 되면, 선정된 AI 소스 및 그 다음 우선 순위를 갖는 AI 소스를 함께 선정하여 복수의 AI 소스에 AI 연산을 분배하여 처리하게 할 수도 있다.In addition, even after selecting the AI source, the NPU driver 120 monitors the current resources of the selected AI source and, if the current resources fall below the threshold, selects the AI source with the next priority of the selected AI source. You can. Alternatively, when the current resource falls below the threshold, the NPU driver 120 may select the selected AI source and the AI source with the next priority together to distribute and process the AI operation to a plurality of AI sources.

이러한 가용한 AI 소스(50) 중에서, 일단 전용의 AI 연산 처리가 가능하고 감시 장치(100)에 임베드 된 NPU(51)가 가장 높은 우선 순위를 갖는다(제1 그룹). 그 다음으로는 감시 장치(100)의 외부에 있기는 하지만 전용의 NPU를 내장한 분리형 외부 SoC(52) 및 클라우드 서버(53)가 다음의 우선 순위를 갖는다(제2 그룹). 마지막으로, 감시 장치(100) 임베드 된 나머지 SoC인 GPU(54), DSP(55) 및 CPU(56)가 최하위 우선 순위를 갖는다(제3 그룹).Among these available AI sources 50, the NPU 51 capable of dedicated AI calculation processing and embedded in the monitoring device 100 has the highest priority (first group). Next, although external to the monitoring device 100, the separate external SoC 52 and the cloud server 53, which have a dedicated NPU built-in, have the next priority (second group). Finally, the remaining SoCs embedded in the supervisor 100, GPU 54, DSP 55, and CPU 56, have the lowest priority (third group).

이상과 같은 우선 순위로 인하여 NPU 컨트롤러(130)는 현재 자원이 임계치 이상 보장되는 AI 소스 중에서 AI 연산 처리 능력이 높은 순서대로 AI 연산을 수행하고, 이후에 자원 상황이 변경되면 차순위의 AI 소스로 하여금 AI 연산을 수행하게 할 수 있다.Due to the above priorities, the NPU controller 130 performs AI calculations in the order of high AI calculation processing ability among AI sources whose current resources are guaranteed to be above the threshold, and later, when the resource situation changes, the next-priority AI source is selected. AI calculations can be performed.

이와 같이, 3개의 그룹으로 우선순위를 그룹화할 수도 있지만 전체의 개별 AI 소스 별로 우선 순위를 정할 수도 있다. 예를 들어, 개별 우선 순위는 NPU(51), 분리형 외부 SoC(52), 클라우드 서버(53), GPU(54), DSP(55) 및 CPU(56) 순서인 것이 바람직하다.Like this, you can group priorities into three groups, but you can also prioritize by individual AI source overall. For example, the individual priorities are preferably in the following order: NPU (51), separate external SoC (52), cloud server (53), GPU (54), DSP (55), and CPU (56).

또한, SW 계층(Layer1) 위에는 최상위 계층으로서 응용 계층(Layer2)가 위치한다. 최상위 계층(Layer2)에 있는 AI 어플리케이션(110)은, 이미지 센서(60)에 의해 촬상된 영상에 대한 AI 연산을 NPU 드라이버(120)에 요청한다. 그 결과로서, AI 어플리케이션(110)은 NPU 컨트롤러(130) 및 NPU 드라이버(120)를 거쳐서 AI 연산의 처리 결과를 수신한다. AI 어플리케이션은 요청에 따른 AI 처리 결과를 이용하여 촬상된 영상에 대한 비디오 분석(video analytics)을 수행할 수 있다. 이러한 비디오 분석은 입력 비디오에 대해 사람, 동물, 자동차와 같은 객체 및 이벤트를 추출하여, 입력 비디오와 매칭되는 메타데이터를 생성하는 과정이다. 이와 같이 입력 비디오와 메타데이터의 쌍이 생성되면, 전술한 비디오 관리 시스템(170)에 의한 객체 검색 및/또는 이벤트 검색이 가능하다.Additionally, the application layer (Layer2) is located above the SW layer (Layer1) as the highest layer. The AI application 110 in the highest layer (Layer2) requests the NPU driver 120 to perform an AI operation on the image captured by the image sensor 60. As a result, the AI application 110 receives the processing results of the AI operation through the NPU controller 130 and the NPU driver 120. The AI application can perform video analytics on captured images using AI processing results according to the request. This video analysis is a process of extracting objects and events such as people, animals, and cars from the input video and generating metadata that matches the input video. When a pair of input video and metadata is created in this way, object search and/or event search by the video management system 170 described above is possible.

한편, AI 연산을 위해서는 반복된 AI 학습을 위해 학습 모델이 제공될 필요가 있다. 이러한 학습 모델(신경망 모델)은 AI 어플리케이션(110)에 의해 사전에 생성되어 NPU 컨트롤러(130)를 통해 선정된 AI 소스에 제공되는 것이 바람직하다. 그렇지 않으면 입력 비디오를 이용하여 별도의 학습 모델을 확보하는 과정이 필요하기 때문이다. 이와 같이 사전에 AI 학습을 위한 학습 모델을 확보하는 과정은 다음과 같다.Meanwhile, for AI computation, a learning model needs to be provided for repeated AI learning. It is desirable that such a learning model (neural network model) be created in advance by the AI application 110 and provided to the selected AI source through the NPU controller 130. Otherwise, a process of securing a separate learning model using the input video is necessary. The process of securing a learning model for AI learning in advance is as follows.

학습 모델 생성부(111)(도 3 참조)는 신경망 모델에 러닝 데이터로 입력하기 위한 로 데이터(raw data) 내지 트레이닝 데이터로서 사용한다. 학습 모델 생성부(111)는 획득한 트레이닝 데이터를 이용하여 학습 모델이 소정의 데이터를 어떻게 분류하는지 판단하는 기준을 갖도록 학습한다. 이 경우, 학습 모델 생성부(111)는 러닝 데이터의 적어도 일부를 판단 기준으로 하여 감독 학습(supervised learning)을 통해 신경망 모델을 학습시킬 수 있다. 또는, 학습 모델 생성부(111)는 비지도 학습을 통해 신경망 모델을 학습시켜 감독 없이 학습 데이터를 사용하여 자가 학습하여 기준을 발견할 수도 있다. 신경망 모델이 학습되면, 학습 모델 생성부(111)는 최종적으로 학습 모델(신경망 모델)을 메모리에 저장한다. The learning model generator 111 (see FIG. 3) uses raw data or training data to be input as learning data to a neural network model. The learning model generator 111 uses the acquired training data to learn the learning model to have a standard for determining how to classify certain data. In this case, the learning model generator 111 may learn a neural network model through supervised learning using at least part of the learning data as a judgment standard. Alternatively, the learning model generator 111 may learn a neural network model through unsupervised learning and self-learn using learning data without supervision to discover the standard. When the neural network model is learned, the learning model generator 111 finally stores the learning model (neural network model) in memory.

AI 어플리케이션(110)은 생성된 AI 학습 모델을 NPU 컨트롤러(130)에 전달하고, NPU 컨트롤러(130)는 전달된 학습 모델(131)을 선정된 AI 소스에 제공한다. The AI application 110 delivers the generated AI learning model to the NPU controller 130, and the NPU controller 130 provides the delivered learning model 131 to the selected AI source.

도 3은 도 2에 도시된 NPU 컨트롤러의 기능을 설명하기 위한 도면이다.FIG. 3 is a diagram for explaining the function of the NPU controller shown in FIG. 2.

도 3을 참조하면, NPU 컨트롤러(130)는 학습 모델 전송부(131), 전처리부(132), AI 데이터 처리부(133) 및 영상 가공부(135)를 포함하여 구성될 수 있다.Referring to FIG. 3, the NPU controller 130 may be configured to include a learning model transmission unit 131, a preprocessor 132, an AI data processing unit 133, and an image processing unit 135.

전술한 바와 같이, 학습 모델 생성부(111)에 의해 미리 생성된 학습 모델은 NPU 컨트롤러(130)의 학습 모델 전송부(131)에 전달된다. 이 때, 학습 모델 전송부(131)는 전달된 학습 모델을 그대로 AI 소스에 제공하거나 AI 소스에서 사용할 수 있는 AI 파라미터(신경망 파라미터)의 형태로 변환하여 AI 소스에 제공할 수 있다.As described above, the learning model previously created by the learning model generator 111 is transmitted to the learning model transmission unit 131 of the NPU controller 130. At this time, the learning model transmission unit 131 may provide the delivered learning model to the AI source as is, or may convert it into an AI parameter (neural network parameter) that can be used in the AI source and provide it to the AI source.

영상 가공부(135)는 촬상된 영상의 속성을 AI 소스에서 지원하는 속성으로 가공한 후, 가공된 영상을 AI 소스에 제공한다. 이러한 영상의 가공이란, 다양한 영상 속성을 선정된 AI 소스에서 지원 가능한 영상 속성으로 변경하는 과정으로서, 영상 속성으로는 3차원 색공간(color space)(예: RGB, YCbCr 등), 해상도(resolution), 프레임율(frame-rate), 비트율(bitrate), 색 깊이(color depth)(예: 256 컬러, 트루 컬러 등) 중에서 적어도 하나를 포함한다.The image processing unit 135 processes the properties of the captured image into properties supported by the AI source and then provides the processed image to the AI source. Such image processing is the process of changing various image properties into image properties that can be supported by the selected AI source. Image properties include 3D color space (e.g. RGB, YCbCr, etc.) and resolution. , frame-rate, bitrate, and color depth (e.g., 256 colors, true color, etc.).

AI 데이터 처리부(133)는 NPU 드라이버(120)와 가용한 AI 소스(50) 사이에서 명령어를 하향 또는 상향으로 전달하는 역할을 한다. AI 어플리케이션(110)의 AI 입출력 처리부(113)는 AI 연산을 요청할 때 확장된 API(EAPI)를 NPU 드라이버(120)에 전달하고, NPU 드라이버(120)는 EAPI를 가용한 AI 소스(50)에서 지원하는 API로 변환하여 AI 데이터 처리부(133)에 전달한다. 이후, AI 데이터 처리부(133)는 변환된 API를 가용한 AI 소스(50) 중에서 선정된 AI 소스에 제공한다.The AI data processing unit 133 serves to transmit commands downward or upward between the NPU driver 120 and the available AI source 50. The AI input/output processing unit 113 of the AI application 110 transmits the extended API (EAPI) to the NPU driver 120 when requesting an AI operation, and the NPU driver 120 transmits EAPI from the available AI source 50. It is converted into a supported API and delivered to the AI data processing unit 133. Afterwards, the AI data processing unit 133 provides the converted API to an AI source selected from among the available AI sources 50.

선정된 AI 소스에서 AI 연산을 수행하여 얻은 처리 결과는 AI 데이터 처리부(133)에 제공된다. 이 때, AI 데이터 처리부(133)는 처리 결과를 표준화된 데이터 패킷으로 생성하여 NPU 드라이버(120)를 통해 AI 어플리케이션(110)의 AI 입출력 처리부(113)에 제공한다. 이러한 데이터 패킷의 구체적인 예시는 도 5를 참조하여 후술하기로 한다.The processing results obtained by performing AI calculations on the selected AI source are provided to the AI data processing unit 133. At this time, the AI data processing unit 133 generates the processing result as a standardized data packet and provides it to the AI input/output processing unit 113 of the AI application 110 through the NPU driver 120. Specific examples of such data packets will be described later with reference to FIG. 5.

NPU 컨트롤러(130)는 가용한 AI 소스(50)에 학습 모델, AI 연산 요청(API 형태) 및 가공된 영상을 제공하고, 가용한 AI 소스(50)로부터 AI 연산의 처리 결과를 수신한다.The NPU controller 130 provides a learning model, AI operation request (API format), and processed image to the available AI source 50, and receives the processing results of the AI operation from the available AI source 50.

한편, AI 소스(50)는 제한된 크기의 영상에 대한 연산 처리만을 수행할 수 있다. 예를 들어, AI 소스(50)는 600Х600의 이하인 크기를 갖는 영상에 대해서만 연산 처리를 수행할 수 있는 것으로서 연산 처리 가능한 영상의 크기는 AI 소스(50)별로 상이할 수 있다.Meanwhile, the AI source 50 can only perform calculation processing on images of limited size. For example, the AI source 50 can perform calculation processing only on images having a size of 600Х600 or less, and the size of the image that can be processed may be different for each AI source 50.

이미지 센서(60)에 의해 촬영된 영상의 크기가 AI 소스(50)에 의해 처리 가능한 영상의 크기를 초과하는 경우 AI 어플리케이션(110)는 촬영 영상을 축소시켜 AI 소스(50)에 전달하여야 한다. 크기가 축소된 영상은 해상도가 감소된 것으로서 이를 기초로 AI 연산 처리를 수행하는 경우 영상 분석에 대한 신뢰도가 감소될 수 있다.If the size of the image captured by the image sensor 60 exceeds the size of the image that can be processed by the AI source 50, the AI application 110 must reduce the captured image and transmit it to the AI source 50. Images that have been reduced in size have reduced resolution, and if AI processing is performed based on this, the reliability of image analysis may be reduced.

영상 분석에 대한 신뢰도의 감소를 방지하기 위하여, 본 발명의 실시예에 따른 감시 장치(100)는 전처리부(132)를 구비할 수 있다. 전처리부(132)는 영상에서 객체를 탐지하고, 영상의 영역 중 탐지된 객체가 포함된 객체 영역을 잘라내어 크롭 영상을 생성할 수 있다. 전처리부(132)는 AI 소스(50)에 의해 처리 가능한 영상의 크기에 비하여 작거나 동일한 크기로 크롭 영상을 생성할 수 있다. 이에, 크롭 영상의 해상도는 이미지 센서(60)의 의해 생성된 영상의 해상도와 동일한 것일 수 있다. 전술한 바와 같이, NPU 드라이버(120)는 복수의 AI 소스(50) 중 AI 연산 처리를 수행할 일부를 선정할 수 있다. 전처리부(132)는 NPU 드라이버(120)에 의해 선정된 AI 소스(50)의 AI 영상 크기보다 작거나 동일한 크기로 크롭 영상을 생성할 수 있다. 전처리부(132)의 세부 구성에 대해서는 도 6을 통하여 후술하기로 한다.In order to prevent a decrease in reliability of image analysis, the monitoring device 100 according to an embodiment of the present invention may be provided with a preprocessor 132. The preprocessor 132 may detect an object in an image and generate a cropped image by cutting out an object area containing the detected object from the area of the image. The preprocessor 132 may generate a cropped image with a size smaller than or equal to the size of the image that can be processed by the AI source 50. Accordingly, the resolution of the cropped image may be the same as the resolution of the image generated by the image sensor 60. As described above, the NPU driver 120 may select a portion of the plurality of AI sources 50 to perform AI calculation processing. The preprocessor 132 may generate a cropped image with a size smaller than or equal to the AI image size of the AI source 50 selected by the NPU driver 120. The detailed configuration of the preprocessing unit 132 will be described later with reference to FIG. 6.

AI 어플리케이션(110)는 AI 소스(50)로 하여금 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 영상에 포함된 객체에 대한 AI 분석을 수행할 수 있다. 해상도가 감소되지 않은 크롭 영상에 대하여 AI 소스(50)가 AI 연산 처리를 수행함에 따라 영상 분석에 대한 신뢰도가 향상될 수 있다.The AI application 110 can perform AI analysis on objects included in the image by having the AI source 50 perform AI calculation processing on the cropped image. As the AI source 50 performs AI calculation processing on cropped images whose resolution has not been reduced, reliability of image analysis can be improved.

도 4는 도 3의 NPU 컨트롤러(130)에 포함된 AI 데이터 처리부(133)의 구성을 보다 자세히 도시한 블록도이다.FIG. 4 is a block diagram showing in more detail the configuration of the AI data processing unit 133 included in the NPU controller 130 of FIG. 3.

AI 데이터 처리부(133)는 가용한 AI 소스(50)로부터 AI 연산의 처리 결과를 수신하여 NPU 드라이버(120)에 표준화된 데이터 패킷의 형태로 제공한다.The AI data processing unit 133 receives the processing results of AI operations from available AI sources 50 and provides them to the NPU driver 120 in the form of standardized data packets.

호환성 판단부(136)는 선정된 AI 소스로부터 AI 처리 결과를 수신한 후, AI 처리 결과를 나타내는 데이터 포맷의 호환성을 판단한다. 판단 결과에 따라 데이터 포맷에 호환성이 없는 경우 포맷 가공부(137)는 AI 연산의 처리 결과를 가공하고, 패킷화부(139)는 가공된 데이터 패킷을 생성한다. 반면에, 판단 결과에 따라 데이터 포맷에 호환성이 있는 경우 패킷화부(139)는 가공 없이 그대로 패킷화하여 얻어진 데이터 패킷을 NPU 드라이버(120)에 전달할 수 있다.The compatibility determination unit 136 receives the AI processing result from the selected AI source and then determines the compatibility of the data format representing the AI processing result. If the data format is not compatible according to the determination result, the format processing unit 137 processes the processing result of the AI operation, and the packetization unit 139 generates a processed data packet. On the other hand, if there is compatibility in the data format according to the determination result, the packetization unit 139 can transmit the data packet obtained by packetizing it as is without processing to the NPU driver 120.

여기서, 호환성이란 AI 연산의 처리 결과가 AI 어플리케이션(110)이 인식할 수 있는 양식의 데이터인지 여부를 의미한다. 일반적으로 AI 연산의 처리 결과는 AI 소스에 의존적이며 표준화되어 있지 않다. 예를 들어, 어떤 AI 소스가 제공하는 처리 결과의 데이터 필드 수 자체가 다른 AI 소스와 다를 수도 있고, 객체나 이벤트의 분류 기준이나 분류 개수가 상이할 수도 있다. 또한, 동일한 객체나 이벤트를 다른 명칭으로 정의하는 경우도 있다.Here, compatibility refers to whether the processing result of the AI operation is data in a format that the AI application 110 can recognize. In general, the processing results of AI operations are dependent on the AI source and are not standardized. For example, the number of data fields in the processing results provided by one AI source may be different from that of other AI sources, and the classification criteria or number of classifications for objects or events may be different. Additionally, there are cases where the same object or event is defined with a different name.

이러한 호환성 문제를 고려하여, 포맷 가공부(137)는 호환성이 없는 AI 연산의 처리 결과를 호환성이 있는 데이터로 가공하여, 패킷화부(139)에 전달하고 패킷화부(139)는 항상 표준화된 데이터 패킷의 형태로 NPU 드라이버(120)에 제공한다.Considering these compatibility issues, the format processing unit 137 processes the processing results of incompatible AI operations into compatible data and transmits it to the packetization unit 139, and the packetization unit 139 always produces standardized data packets. It is provided to the NPU driver 120 in the form of.

도 5는 AI 데이터 처리부에 의해 전달되는 데이터 패킷을 나타낸 도면이다.Figure 5 is a diagram showing a data packet transmitted by the AI data processing unit.

데이터 패킷(90)은 기본적으로 헤더(91)와 페이로드(92)로 구성된다. 헤더(91)는 AI 처리 결과를 갖는 데이터 패킷임을 표시하는 AI 식별자(예: 0x0919)를 포함한다. AI 식별자는 데이터 패킷(90)이 AI 처리 결과를 포함하고 있음을 나타내고, 다른 다양한 데이터 패킷들의 종류와 구분하기 위해 사용된다.The data packet 90 basically consists of a header 91 and a payload 92. The header 91 includes an AI identifier (e.g. 0x0919) indicating that it is a data packet with AI processing results. The AI identifier indicates that the data packet 90 contains AI processing results and is used to distinguish it from various other types of data packets.

페이로드(92)는 표준화된 다수의 데이터 필드로 구성될 수 있다. 페이로드(92)는 구체적으로, 비디오 프레임의 순서를 나타내는 필드(93), 비디오 프레임이 생성된 시간을 나타내는 필드(94), 비디오 프레임 내에서 식별된 객체의 종류를 나타내는 필드(95), 식별된 객체가 정확할 확률을 표시하는 필드(96) 및 비디오 프레임 내에서 식별된 객체의 위치를 나타내는 필드(97, 98)를 포함할 수 있다. 또한, 페이로드(92)는 사용자 정의에 따른 추가적인 데이터를 기록하기 위한 필드(99)를 포함할 수 있다.Payload 92 may consist of a number of standardized data fields. The payload 92 specifically includes a field 93 indicating the order of video frames, a field 94 indicating the time when the video frame was created, a field 95 indicating the type of object identified within the video frame, and an identification field 95. It may include a field 96 indicating the probability that the identified object is correct and fields 97 and 98 indicating the location of the identified object within the video frame. Additionally, the payload 92 may include a field 99 for recording additional data according to user definition.

도 6은 도 3에 도시된 전처리부의 블록도이다.FIG. 6 is a block diagram of the preprocessor shown in FIG. 3.

도 6을 참조하면, 전처리부(132)는 정보 수집부(132a) 및 정보 생성부(132b)를 포함하여 구성된다.Referring to FIG. 6, the preprocessing unit 132 includes an information collection unit 132a and an information generation unit 132b.

정보 수집부(132a)는 AI 소스(50)에 의해 연산 처리 가능한 영상의 크기 정보(이하, AI 영상 크기라 한다)를 수집할 수 있다. AI 영상 크기는 AI 소스(50)로부터 수신될 수 있다. 이를 위하여, AI 소스(50)는 AI 영상 크기를 저장할 수 있으며, 정보 수집부(132a)의 요청 또는 별도 이벤트에 의해 해당 AI 영상 크기를 정보 수집부(132a)로 송신할 수 있다.The information collection unit 132a may collect image size information (hereinafter referred to as AI image size) that can be processed by the AI source 50. AI image size may be received from AI source 50. To this end, the AI source 50 can store the AI image size and transmit the corresponding AI image size to the information collection unit 132a at the request of the information collection unit 132a or in a separate event.

본 발명에서 AI 소스(50)는 복수 개가 구비되고, 각 AI 소스(50)별로 AI 영상 크기가 상이할 수 있다. 정보 수집부(132a)는 복수의 AI 소스(50)로부터 각각의 AI 영상 크기를 수신할 수 있다.In the present invention, a plurality of AI sources 50 are provided, and the AI image size for each AI source 50 may be different. The information collection unit 132a may receive the size of each AI image from a plurality of AI sources 50.

정보 생성부(132b)는 AI 분석을 위하여 AI 어플리케이션(110)에 의해 이용 가능한 정보를 생성할 수 있다. 정보 생성부(132b)는 객체 탐지부(132c), 크롭 정보 생성부(132d) 및 크롭 영상 생성부(132e)를 포함하여 구성된다.The information generator 132b may generate information that can be used by the AI application 110 for AI analysis. The information generator 132b includes an object detection unit 132c, a crop information generator 132d, and a crop image generator 132e.

객체 탐지부(132c)는 이미지 센서(110)에 의해 생성된 영상에서 객체를 탐지할 수 있다. 예를 들어, 객체 탐지부(132c)는 FAST(Features from Accelerated Segment Test), SIFT(Scale Invariant Feature Transform) 또는 SURF(Speed Up Robust Feature) 등의 알고리즘을 이용하여 영상에서 객체를 탐지할 수 있다. AI 어플리케이션(110)이 영상에서 객체를 탐지하기 이전에 객체 탐지부(132c)가 우선적으로 객체를 탐지하는 것이다.The object detection unit 132c may detect an object in the image generated by the image sensor 110. For example, the object detection unit 132c may detect an object in an image using an algorithm such as Features from Accelerated Segment Test (FAST), Scale Invariant Feature Transform (SIFT), or Speed Up Robust Feature (SURF). The object detection unit 132c first detects the object before the AI application 110 detects the object in the image.

크롭 정보 생성부(132d)는 객체 탐지부(132c)에 의해 탐지된 객체에 객체 영역을 설정하고, 객체 영역에 대한 크롭 정보를 생성할 수 있다. 객체 영역은 사전에 설정된 크기를 갖거나 선택된 객체의 전체가 포함되도록 실시간으로 그 크기가 설정될 수 있다. 어떠한 경우에도 객체 영역의 크기는 AI 소스(50)에 의해 처리 가능한 AI 영상 크기보다 작거나 동일하게 설정될 수 있다. 전술한 바와 같이, NPU 드라이버(120)는 복수의 AI 소스(50) 중 AI 연산 처리를 수행할 일부를 선정하는데, 크롭 정보 생성부(132d)는 NPU 드라이버(120)에 의해 선정된 AI 소스(50)의 AI 영상 크기보다 작거나 동일한 크기로 객체 영역의 크기를 설정할 수 있다.The crop information generator 132d may set an object area for the object detected by the object detection unit 132c and generate crop information for the object area. The object area may have a preset size or its size may be set in real time to include the entire selected object. In any case, the size of the object area may be set to be smaller than or equal to the AI image size that can be processed by the AI source 50. As described above, the NPU driver 120 selects a portion of the plurality of AI sources 50 to perform AI calculation processing, and the crop information generator 132d selects the AI source selected by the NPU driver 120 ( The size of the object area can be set to be smaller or the same size as the AI image size in 50).

크롭 정보는 영상에서 객체 영역에 대응하는 부분 영상을 추출하기 위하여 이용되는 정보를 나타낸다. 크롭 정보는 크롭 위치 정보 및 시간 정보를 포함할 수 있다. 크롭 위치 정보는 영상의 영역 중 객체 영역이 배치되는 좌표를 나타내고, 시간 정보는 비디오 영상의 프레임 중 객체 영역이 포함되는 시점을 나타낸다. 예를 들어, 시간 정보는 객체 영역이 설정된 타임스탬프일 수 있다.Crop information represents information used to extract a partial image corresponding to an object area from an image. Crop information may include crop location information and time information. The crop position information indicates the coordinates at which the object area is placed in the area of the video, and the time information indicates the point in time at which the object area is included in the frame of the video image. For example, the time information may be a timestamp when the object area is set.

크롭 영상 생성부(132e)는 크롭 정보를 참조하여 크롭 영상을 생성할 수 있다. 크롭 영상은 영상의 영역 중 객체 영역에 대응하는 부분의 영상을 나타낸다. 크롭 영상 생성부(132e)는 크롭 위치 정보를 참조하여 객체 영역을 확인하고, 해당 객체 영역에 포함된 영상 데이터를 추출하여 크롭 영상을 생성할 수 있다. 또한, 크롭 영상 생성부(132e)는 시간 정보를 참조하여 영상의 프레임 중 특정 프레임에 객체 영역을 적용하여 크롭 영상을 생성할 수 있다.The cropped image generator 132e may generate a cropped image by referring to the cropped information. The cropped image represents the image of the portion of the image area corresponding to the object area. The crop image generator 132e may check the object area with reference to the crop position information, extract image data included in the corresponding object area, and generate a crop image. Additionally, the crop image generator 132e may generate a crop image by applying the object area to a specific frame among the frames of the image with reference to time information.

전처리부(132)는 크롭 정보 생성부(132d)에 의해 생성된 크롭 정보 및 크롭 영상 생성부(132e)에 의해 생성된 크롭 영상을 AI 어플리케이션(110)으로 송신할 수 있다. 크롭 정보 및 크롭 영상은 NPU 드라이버(120)를 통하여 AI 어플리케이션(110)으로 전달될 수 있다. AI 어플리케이션(110)은 크롭 정보 및 크롭 영상을 이용하여 영상에 포함된 객체에 대한 AI 분석을 수행할 수 있다.The preprocessor 132 may transmit the crop information generated by the crop information generator 132d and the crop image generated by the crop image generator 132e to the AI application 110. Crop information and cropped images can be transmitted to the AI application 110 through the NPU driver 120. The AI application 110 can perform AI analysis on objects included in the image using crop information and cropped images.

이상은 전처리부(132)에 의해 크롭 영상이 생성되는 것을 설명하였으나, 본 발명의 몇몇 실시예에 따르면 크롭 영상은 AI 어플리케이션(110)에 의해 생성될 수도 있다. 이러한 경우 크롭 영상 생성부(132e)는 AI 어플리케이션(110)에 구비될 수 있다.The above has explained that the cropped image is generated by the preprocessor 132, but according to some embodiments of the present invention, the cropped image may also be generated by the AI application 110. In this case, the crop image generator 132e may be provided in the AI application 110.

전처리부(132)는 영상에서 객체를 탐지하고, 영상의 영역 중 탐지된 객체가 포함된 객체 영역을 확인할 수 있다. AI 어플리케이션(110)은 영상에서 객체 영역을 잘라내어 크롭 영상을 생성하고, AI 소스(50)로 하여금 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 영상에 포함된 객체에 대한 AI 분석을 수행할 수 있다. 이하, 전처리부(132)에서 크롭 영상이 생성되는 것을 위주로 설명하기로 한다.The preprocessor 132 can detect an object in an image and identify an object area that includes the detected object among the areas of the image. The AI application 110 creates a cropped image by cutting out the object area in the image, and allows the AI source 50 to perform AI operation processing on the cropped image to perform AI analysis on the object included in the image. . Hereinafter, the description will focus on the generation of the cropped image in the pre-processing unit 132.

도 7은 크롭 영상이 생성되는 것을 나타낸 도면이다.Figure 7 is a diagram showing how a cropped image is generated.

도 7을 참조하면, 영상(500)은 적어도 하나의 객체(510)를 포함할 수 있다.Referring to FIG. 7, the image 500 may include at least one object 510.

객체 탐지부(132c)는 영상(500)을 스캔하여 객체(510)를 탐지할 수 있다. 그리하여, 영상(500)에 객체(510)가 포함된 경우 크롭 정보 생성부(132d)는 각 객체(510)별로 객체 영역(520)을 설정할 수 있다. 객체(510)의 탐지를 위하여 객체 탐지부(132c)는 별도의 탐지 알고리즘을 이용할 수 있다. 탐지 알고리즘에 의해 객체 탐지부(132c)는 사전에 설정된 사물을 객체(510)로서 탐지할 수 있다. 따라서, 사전에 설정된 사물이 영상(500)에 포함되어 있지 않은 경우 객체 탐지부(132c)는 객체(510)를 탐지하지 않으면, 크롭 정보 생성부(132d)로 객체 영역(520)을 설정하지 않을 수 있다.The object detection unit 132c may detect the object 510 by scanning the image 500. Thus, when the image 500 includes the object 510, the crop information generator 132d can set the object area 520 for each object 510. To detect the object 510, the object detection unit 132c may use a separate detection algorithm. The object detection unit 132c can detect a preset object as the object 510 by using a detection algorithm. Therefore, if a preset object is not included in the image 500, the object detection unit 132c does not detect the object 510, and the crop information generation unit 132d does not set the object area 520. You can.

크롭 영상 생성부(132e)는 객체 영역(520)에 포함된 영상 데이터를 참조하여 크롭 영상(600)을 생성할 수 있다. 도 7은 영상에 3개의 객체(510)가 포함된 것을 도시하고 있는데, 이러한 경우 크롭 영상 생성부(132e)는 3개의 크롭 영상(600)을 생성할 수 있다.The crop image generator 132e may generate the crop image 600 by referring to the image data included in the object area 520. FIG. 7 shows that the image includes three objects 510. In this case, the crop image generator 132e can generate three crop images 600.

도 8은 AI 어플리케이션의 기능을 설명하기 위한 도면이고, 도 9는 영상에서 객체가 검출된 것을 나타낸 도면이다.Figure 8 is a diagram for explaining the function of the AI application, and Figure 9 is a diagram showing an object detected in an image.

도 8을 참조하면, AI 어플리케이션(110)은 원본 영상, 크롭 영상 및 크롭 정보를 참조하여 영상에 대한 분석을 수행할 수 있다.Referring to FIG. 8, the AI application 110 may perform analysis on the image by referring to the original image, cropped image, and crop information.

AI 어플리케이션(110)은 이미지 센서(110)에 의해 생성된 원본 영상, 크롭 영상 생성부(132e)에 의해 생성된 크롭 영상 및 크롭 정보 생성부(132d)에 의해 생성된 크롭 정보를 수신할 수 있다.The AI application 110 may receive the original image generated by the image sensor 110, the cropped image generated by the crop image generator 132e, and the crop information generated by the crop information generator 132d. .

AI 어플리케이션(110)은 AI 모델을 이용하여 영상에 포함된 객체에 대한 AI 분석을 수행할 수 있다. 예를 들어, AI 어플리케이션(110)은 객체 검출 모델을 이용하여 영상에서 객체를 검출하고 추적할 수 있다. AI 어플리케이션(110)은 객체 검출 모델로서 R-CNN 또는 욜로(YOLO; You Only Look Once) 알고리즘을 이용하여 영상에서 객체를 검출할 수 있다. 욜로 알고리즘은 영상에서 객체를 검출하는 속도가 상대적으로 빠르기 때문에 실시간 동영상을 처리하는 감시 카메라에 적당한 AI 알고리즘이다.The AI application 110 can perform AI analysis on objects included in the image using an AI model. For example, the AI application 110 can detect and track an object in an image using an object detection model. The AI application 110 can detect objects in an image using R-CNN or YOLO (You Only Look Once) algorithm as an object detection model. The YOLO algorithm is an AI algorithm suitable for surveillance cameras that process real-time video because the speed of detecting objects in video is relatively fast.

AI 모델을 이용하여 영상을 분석하는 데에는 많은 양의 연산 처리가 필요하다. AI 어플리케이션(110)은 영상 데이터에 대한 연산 처리는 AI 소스(50)가 수행하도록 할 수 있다. 이를 위하여, AI 어플리케이션(110)은 크롭 영상의 영상 데이터를 AI 소스(50)로 전달할 수 있다. AI 소스(50)는 전달된 영상 데이터에 대한 AI 연산 처리를 수행하고, 그 결과를 AI 어플리케이션(110)으로 전달할 수 있다. AI 어플리케이션(110)은 AI 소스(50)의 처리 결과를 참조하여 AI 분석을 수행할 수 있다. 예를 들어, AI 어플리케이션(110)은 해당 객체가 사람인지, 자동차인지 또는 오토바이인지 등을 판단할 수 있다.Analyzing images using AI models requires a large amount of computational processing. The AI application 110 may allow the AI source 50 to perform calculation processing on image data. To this end, the AI application 110 may transmit image data of the cropped image to the AI source 50. The AI source 50 may perform AI operation processing on the delivered image data and deliver the results to the AI application 110. The AI application 110 may perform AI analysis by referring to the processing results of the AI source 50. For example, the AI application 110 may determine whether the object in question is a person, a car, or a motorcycle.

AI 소스(50)의 처리 결과를 참조하여 AI 어플리케이션(110)은 객체 검출이 완료된 영상(이하, 객체 검출 영상이라 한다)(700)을 생성할 수 있다. 도 9를 참조하여 설명하면, 객체 검출 영상(700)은 객체(710) 및 검출 영역(720)을 포함할 수 있다. 검출 영역(720)은 객체(710)의 가장자리를 감싸는 사각형 박스의 형태로 제공될 수 있다. 사용자는 검출 영역(720)을 참조하여 객체(710)의 크기 및 위치를 확인할 수 있다.With reference to the processing results of the AI source 50, the AI application 110 may generate an image 700 in which object detection has been completed (hereinafter referred to as an object detection image). When described with reference to FIG. 9 , the object detection image 700 may include an object 710 and a detection area 720. The detection area 720 may be provided in the form of a square box surrounding the edge of the object 710. The user can check the size and location of the object 710 by referring to the detection area 720.

객체(710)가 이동하는 경우 객체와 함께 검출 영역(720)이 이동할 수 있다. 이에, 사용자는 이동하는 객체(710)를 간편하게 추적할 수 있다.When the object 710 moves, the detection area 720 may move along with the object. Accordingly, the user can easily track the moving object 710.

도 10은 복수의 객체를 포함하는 크롭 영상이 생성되는 것을 나타낸 도면이다.Figure 10 is a diagram showing the creation of a cropped image including a plurality of objects.

도 10을 참조하면, 크롭 정보 생성부(132d)는 복수의 객체(510)에 대하여 객체 영역(530)을 설정할 수 있다.Referring to FIG. 10 , the crop information generator 132d may set an object area 530 for a plurality of objects 510 .

객체 영역(530)의 크기는 AI 영상 크기와 동일하거나 작은 것일 수 있다. 객체 탐지부(132c)에 의해 복수의 객체(510)가 탐지되는 경우 크롭 정보 생성부(132d)는 모든 객체(510)가 포함되도록 객체 영역(530)을 설정할 수 있다.The size of the object area 530 may be the same as or smaller than the AI image size. When a plurality of objects 510 are detected by the object detection unit 132c, the crop information generator 132d may set the object area 530 to include all objects 510.

크롭 영상 생성부(132e)는 객체 영역(530)에 포함된 영상 데이터를 참조하여 크롭 영상(620)을 생성할 수 있다. 크롭 영상(620)은 AI 어플리케이션(110)으로 전달되고, AI 어플리케이션(110)은 크롭 영상(620)의 영상 데이터를 AI 소스(50)로 전달할 수 있다. 크롭 영상(620)의 크기가 AI 소스(50)에 의해 연산 처리 가능한 AI 영상 크기와 동일하거나 작기 때문에 AI 소스(50)는 해상도가 감소되지 않은 영상에 대한 AI 연산 처리를 수행할 수 있다.The crop image generator 132e may generate the crop image 620 by referring to the image data included in the object area 530. The cropped image 620 is transmitted to the AI application 110, and the AI application 110 can transmit the image data of the cropped image 620 to the AI source 50. Since the size of the cropped image 620 is the same as or smaller than the size of the AI image that can be processed by the AI source 50, the AI source 50 can perform AI calculation processing on the image whose resolution has not been reduced.

도 11은 해상도가 감소된 크롭 영상에 생성되는 것을 나타낸 도면이다.Figure 11 is a diagram showing what is generated on a cropped image with reduced resolution.

도 11을 참조하면, 크롭 정보 생성부(132d)는 복수의 객체(510)에 대하여 객체 영역(510)을 설정할 수 있다.Referring to FIG. 11 , the crop information generator 132d may set an object area 510 for a plurality of objects 510 .

객체 영역(510)의 크기는 AI 영상 크기에 비하여 크게 설정될 수 없다. 따라서, 복수의 객체(510)의 분포 상황에 따라 복수의 객체(510) 모두가 객체 영역(510)에 포함되지 않을 수 있다. 이러한 경우 크롭 영상 생성부(132e)는 복수의 객체(510)가 모두 포함되는 확장 객체 영역(540)을 설정하고, 확장 객체 영역(540)의 크기를 AI 영상 크기만큼 축소시켜 크롭 영상(630)을 생성할 수 있다. 크롭 영상(630)은 원본 영상(500)에 비하여 해상도가 감소된 영상의 영상 데이터가 포함될 수 있다.The size of the object area 510 cannot be set larger than the AI image size. Accordingly, depending on the distribution situation of the plurality of objects 510, not all of the plurality of objects 510 may be included in the object area 510. In this case, the cropped image generator 132e sets an extended object area 540 that includes all of the plurality of objects 510, and reduces the size of the extended object area 540 by the AI image size to create a cropped image 630. can be created. The cropped image 630 may include image data of an image with reduced resolution compared to the original image 500.

해상도가 일부 감소되기는 하였으나 원본 영상(500)의 전체를 축소시킨 것에 비하여 해상도의 감소가 작기 때문에 영상 분석에 대한 신뢰 효율이 향상될 수 있다.Although the resolution is partially reduced, the reliability of image analysis can be improved because the reduction in resolution is smaller than when the entire original image 500 is reduced.

도 13은 본 발명의 실시예에 따른 감시 방법을 나타낸 흐름도이다.Figure 13 is a flowchart showing a monitoring method according to an embodiment of the present invention.

도 13을 참조하면, 본 발명의 실시예에 따른 감시 장치(100)의 이미지 센서(110)는 감시 영역을 촬영하여 영상을 생성할 수 있다(S810).Referring to FIG. 13, the image sensor 110 of the monitoring device 100 according to an embodiment of the present invention can generate an image by photographing the surveillance area (S810).

전처리부(132)는 이미지 센서(110)에 의해 생성된 영상에서 객체(510)를 탐지하고, 영상의 영역 중 탐지된 객체(510)가 포함된 객체 영역을 잘라내어 크롭 영상을 생성할 수 있다(S820). 여기서, 객체 영역의 크기는 AI 영상 크기에 비하여 작거나 동일한 것으로서, 크롭 영상의 해상도는 영상의 해상도와 동일할 수 있다.The preprocessor 132 may detect the object 510 in the image generated by the image sensor 110 and generate a cropped image by cutting out the object area containing the detected object 510 from the area of the image ( S820). Here, the size of the object area is smaller than or equal to the AI image size, and the resolution of the cropped image may be the same as the resolution of the image.

전처리부(132)에 의해 생성된 크롭 영상은 AI 어플리케이션(110)으로 전달되고, AI 어플리케이션(110)은 AI 소스(50)로 하여금 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 영상에 포함된 객체(510)에 대한 AI 분석을 수행할 수 있다(S830). 크롭 영상의 해상도가 원본 영상의 해상도와 동일하기 때문에 영상 분석에 대한 신뢰도가 향상될 수 있다.The cropped image generated by the preprocessor 132 is transmitted to the AI application 110, and the AI application 110 causes the AI source 50 to perform AI operation processing on the cropped image to determine the objects included in the image. AI analysis can be performed on (510) (S830). Because the resolution of the cropped image is the same as the resolution of the original image, the reliability of image analysis can be improved.

이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although embodiments of the present invention have been described with reference to the above and the attached drawings, those skilled in the art will understand that the present invention can be implemented in other specific forms without changing its technical idea or essential features. You will understand that it exists. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive.

10: 감시 시스템 30: 네트워크
50: AI 소스 60: 이미지 센서
100: 감시 장치 110: AI 어플리케이션
111: 학습 모델 생성부 113: AI 입출력 처리부
120: NPU 드라이버 130: NPU 컨트롤러
131: 학습 모델 전송부 132: 전처리부
132a: 정보 수집부 132b: 정보 생성부
132c: 객체 탐지부 132d: 크롭 정보 생성부
132e: 크롭 영상 생성부 133: AI 데이터 처리부
135: 영상 가공부 136: 호환성 판단부
137: 포맷 가공부 139: 패킷화부
150: 네트워크 비디오 레코더 160: 비디오 관리 시스템
170: 사용자 단말기
10: surveillance system 30: network
50: AI source 60: Image sensor
100: Monitoring device 110: AI application
111: Learning model creation unit 113: AI input/output processing unit
120: NPU driver 130: NPU controller
131: Learning model transmission unit 132: Preprocessing unit
132a: Information collection unit 132b: Information generation unit
132c: object detection unit 132d: crop information generation unit
132e: Crop image generation unit 133: AI data processing unit
135: Image processing unit 136: Compatibility determination unit
137: Format processing unit 139: Packetization unit
150: network video recorder 160: video management system
170: User terminal

Claims (6)

감시 영역을 촬영하여 영상을 생성하는 이미지 센서;
상기 영상에서 객체를 탐지하고, 상기 영상의 영역 중 상기 탐지된 객체가 포함된 객체 영역을 잘라내어 크롭 영상을 생성하는 전처리부;
AI 연산 처리를 수행하는 AI 소스;
상기 AI 소스로 하여금 상기 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 상기 영상에 포함된 객체에 대한 AI 분석을 수행하는 AI 어플리케이션;
상기 AI 소스로 하여금 상기 AI 어플리케이션이 요청하는 AI 연산을 처리하게 하는 NPU 컨트롤러; 및
상기 AI 어플리케이션과 상기 NPU 컨트롤러의 사이에서 상기 AI 어플리케이션의 AI 연산 처리 요청 및 상기 AI 소스의 AI 연산 처리 결과를 전달하고, 상기 AI 어플리케이션과 상기 NPU 컨트롤러 사이의 명령어를 호환 가능하도록 변환하는 NPU 드라이버를 포함하는 감시 장치.
An image sensor that captures the surveillance area and generates an image;
a preprocessor that detects an object in the image and generates a cropped image by cutting out an object area containing the detected object from an area of the image;
AI source that performs AI computational processing;
An AI application that performs AI analysis on objects included in the image by causing the AI source to perform AI calculation processing on the cropped image;
an NPU controller that causes the AI source to process AI operations requested by the AI application; and
An NPU driver that transmits the AI operation processing request of the AI application and the AI operation processing result of the AI source between the AI application and the NPU controller, and converts instructions between the AI application and the NPU controller to be compatible. Monitoring devices, including.
제1 항에 있어서,
상기 크롭 영상의 해상도는 상기 영상의 해상도와 동일한 것을 포함하는 감시 장치.
According to claim 1,
A surveillance device wherein the resolution of the cropped image is the same as the resolution of the image.
제1 항에 있어서,
상기 전처리부는 상기 AI 소스에 의해 처리 가능한 영상의 크기에 비하여 작거나 동일한 크기로 상기 크롭 영상을 생성하는 감시 장치.
According to claim 1,
The preprocessor is a surveillance device that generates the cropped image in a size that is smaller than or equal to the size of the image that can be processed by the AI source.
제1 항에 있어서,
상기 AI 소스는 복수 개가 구비되고,
상기 NPU 드라이버는 상기 복수의 AI 소스의 자원을 모니터링하고, 상기 모니터링 결과를 참조하여 상기 복수의 AI 소스 중 AI 연산 처리를 수행할 AI 소스를 선정하며,
상기 전처리부는 상기 선정된 AI 소스에 의해 처리 가능한 영상의 크기에 비하여 작거나 동일한 크기로 상기 크롭 영상을 생성하는 감시 장치.
According to claim 1,
The AI source is provided in plural numbers,
The NPU driver monitors the resources of the plurality of AI sources and selects an AI source to perform AI operation processing among the plurality of AI sources with reference to the monitoring results,
The preprocessor is a monitoring device that generates the cropped image in a size that is smaller than or equal to the size of the image that can be processed by the selected AI source.
제1 항에 있어서,
상기 전처리부는 상기 AI 어플리케이션으로 상기 크롭 영상의 크롭 정보를 송신하고,
상기 크롭 정보는,
상기 영상의 영역 중 상기 객체 영역이 배치되는 좌표를 나타내는 크롭 위치 정보; 및
상기 영상의 프레임 중 상기 객체 영역이 포함되는 시점을 나타내는 시간 정보를 포함하는 감시 장치.
According to claim 1,
The preprocessor transmits crop information of the cropped image to the AI application,
The crop information is,
Crop position information indicating coordinates at which the object area is located among the areas of the image; and
A monitoring device including time information indicating a point in time at which the object area is included in a frame of the image.
AI 연산 처리를 수행하는 AI 소스를 이용하여 영상에 포함된 객체에 대한 AI 분석을 수행하는 감시 방법에 있어서,
감시 영역을 촬영하여 영상을 생성하는 단계;
상기 영상에서 객체를 탐지하고, 상기 영상의 영역 중 상기 탐지된 객체가 포함된 객체 영역을 잘라내어 크롭 영상을 생성하는 단계;
상기 AI 소스로 하여금 상기 크롭 영상에 대한 AI 연산 처리를 수행하도록 하여 상기 영상에 포함된 객체에 대한 AI 분석을 수행하는 단계를 포함하는 감시 방법.
In a surveillance method of performing AI analysis on objects included in an image using an AI source that performs AI calculation processing,
Generating an image by photographing the surveillance area;
Detecting an object in the image, and generating a cropped image by cutting out an object area containing the detected object from an area of the image;
A surveillance method comprising performing AI analysis on an object included in the image by having the AI source perform AI calculation processing on the cropped image.
KR1020220152144A 2022-11-15 2022-11-15 Apparatus and method for surveillance KR20240070798A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220152144A KR20240070798A (en) 2022-11-15 2022-11-15 Apparatus and method for surveillance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220152144A KR20240070798A (en) 2022-11-15 2022-11-15 Apparatus and method for surveillance

Publications (1)

Publication Number Publication Date
KR20240070798A true KR20240070798A (en) 2024-05-22

Family

ID=91330016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220152144A KR20240070798A (en) 2022-11-15 2022-11-15 Apparatus and method for surveillance

Country Status (1)

Country Link
KR (1) KR20240070798A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220094416A (en) 2020-12-29 2022-07-06 (주)에이아이매틱스 System for predicting position of objection near future

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220094416A (en) 2020-12-29 2022-07-06 (주)에이아이매틱스 System for predicting position of objection near future

Similar Documents

Publication Publication Date Title
US10489660B2 (en) Video processing with object identification
US11354901B2 (en) Activity recognition method and system
EP2688296B1 (en) Video monitoring system and method
WO2021236296A9 (en) Maintaining fixed sizes for target objects in frames
CA3077517A1 (en) Method and system for classifying an object-of-interest using an artificial neural network
JP6237804B2 (en) Abnormal situation detection method and apparatus
KR20190054702A (en) Method and apparatus for detecting action of object in viedio stream
US11367196B2 (en) Image processing method, apparatus, and storage medium
US20120308123A1 (en) Apparatus and method for estimating the number of objects included in an image
WO2022041484A1 (en) Human body fall detection method, apparatus and device, and storage medium
Sismananda et al. Performance comparison of yolo-lite and yolov3 using raspberry pi and motioneyeos
EP4287145A1 (en) Statistical model-based false detection removal algorithm from images
KR20240070798A (en) Apparatus and method for surveillance
KR20200111104A (en) Camera to analyze video based on artificial intelligence and method of operating thereof
CN108596068B (en) Method and device for recognizing actions
CN116723295A (en) GPGPU chip-based multi-camera monitoring management system
EP4332910A1 (en) Behavior detection method, electronic device, and computer readable storage medium
KR20230099369A (en) Occlusion detection and object coordinate correction for estimatin the position of an object
KR20230064959A (en) Surveillance Camera WDR(Wide Dynamic Range) Image Processing Using Object Detection Based on Artificial Intelligence
KR20230173667A (en) Controlling the shutter value of a surveillance camera through AI-based object recognition
US20230409389A1 (en) Ai operation processing method on input image and camera device using the same
JP5033412B2 (en) Monitoring system, monitoring method, and program
US20240119598A1 (en) Image processing system, imaging device, terminal device, and image processing method
US20240205239A1 (en) Methods and systems for fraud detection using relative movement of facial features
JP2015158745A (en) Behavior identifier generation apparatus, behavior recognition apparatus, and program