KR102513803B1 - Method for counting object using artificial neural network, and computing apparatus for performing the same - Google Patents

Method for counting object using artificial neural network, and computing apparatus for performing the same Download PDF

Info

Publication number
KR102513803B1
KR102513803B1 KR1020220033711A KR20220033711A KR102513803B1 KR 102513803 B1 KR102513803 B1 KR 102513803B1 KR 1020220033711 A KR1020220033711 A KR 1020220033711A KR 20220033711 A KR20220033711 A KR 20220033711A KR 102513803 B1 KR102513803 B1 KR 102513803B1
Authority
KR
South Korea
Prior art keywords
center points
counting
objects
image frames
value
Prior art date
Application number
KR1020220033711A
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 주식회사 클로버스튜디오
Application granted granted Critical
Publication of KR102513803B1 publication Critical patent/KR102513803B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/66Analysis of geometric attributes of image moments or centre of gravity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • 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/20081Training; Learning
    • 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/30Subject of image; Context of image processing
    • G06T2207/30242Counting objects in image

Landscapes

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

Abstract

An method for counting an object using artificial neural network comprises: a step of extracting, by the computing device, image frames at regular time intervals from a captured image; a step of recognizing, by the computing device, objects for each image frame; a step of detecting, by the computing device, the center point of objects recognized for each image frame; a step of identifying, by the computing device, center points corresponding to the same object among center points detected in different image frames based on a result of the computing device comparing the positions of center points between consecutive image frames; and a step of performing, by the computing device, object counting based on the number of detected center points and a result of identifying center points corresponding to the same object. Accordingly, the present invention can make the system lighter.

Description

인공신경망을 이용한 객체 카운팅 방법 및 이를 수행하기 위한 컴퓨팅 장치 {METHOD FOR COUNTING OBJECT USING ARTIFICIAL NEURAL NETWORK, AND COMPUTING APPARATUS FOR PERFORMING THE SAME}Object counting method using artificial neural network and computing device for performing the same

본 명세서에서 개시되는 실시예들은 인공신경망을 이용하여 객체를 카운팅하는 방법, 그리고 이를 수행하기 위한 컴퓨팅 장치에 관한 것이다.Embodiments disclosed herein relate to a method for counting objects using an artificial neural network, and a computing device for performing the same.

기술의 발달은 인간을 단순 노동에서 벗어나게 해주었으며, 이러한 흐름은 특히 최근 인공지능 기술의 발달로 가속화되었다.The development of technology has freed humans from simple labor, and this trend has especially accelerated with the recent development of artificial intelligence technology.

예를 들어, 물체의 개수를 카운팅하는 작업은 물체의 크기가 작고 수가 많을수록 작업 수행에 많은 시간이 걸리고 작업 수행자의 피로도가 높아질 수 있어, 인공신경망을 이용한 영상 분석을 통해 자동으로 물체의 개수를 카운팅하는 기술이 사용되고 있다.For example, the task of counting the number of objects takes a lot of time and can increase the fatigue of the task performer as the size of the objects is small and the number of objects increases. technology is being used.

그런데 기존의 인공신경망을 이용한 카운팅 기술은 복잡한 연산으로 인해 많은 리소스를 필요로 하므로 고성능 컴퓨터에서만 실행될 수 있었고, 따라서 보다 경량화되면서 정확도는 높은 수준으로 유지할 수 있는 카운팅 기술의 개발이 필요하게 되었다.However, the counting technology using the existing artificial neural network requires a lot of resources due to complex calculations, so it can be executed only on high-performance computers. Therefore, it is necessary to develop a counting technology that can maintain a high level of accuracy while being lighter.

한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the above-mentioned background art is technical information that the inventor possessed for derivation of the present invention or acquired in the process of derivation of the present invention, and cannot necessarily be said to be known art disclosed to the general public prior to filing the present invention. .

본 명세서에서 개시되는 실시예들은, 제한된 컴퓨팅 환경에서도 실행할 수 있도록 경량화된, 인공신경망을 이용한 객체 카운팅 방법 및 장치를 제공하고자 한다.Embodiments disclosed in this specification are intended to provide a lightweight object counting method and apparatus using an artificial neural network that can be executed even in a limited computing environment.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 인공신경망을 이용한 객체 카운팅 방법은, 컴퓨팅 장치가 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출하는 단계, 상기 컴퓨팅 장치가 상기 이미지 프레임별로 객체들을 인식하는 단계, 상기 컴퓨팅 장치가 상기 이미지 프레임별로 인식된 객체들의 중심점을 검출하는 단계, 상기 컴퓨팅 장치가 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하는 단계 및 상기 컴퓨팅 장치가 상기 검출된 중심점들의 개수와, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 객체 카운팅을 수행하는 단계를 포함할 수 있다.As a technical means for achieving the above-described technical problem, according to an embodiment, an object counting method using an artificial neural network includes the steps of extracting, by a computing device, image frames at predetermined time intervals from a photographed image, the computing device using the image Recognizing objects frame by frame, detecting, by the computing device, the center points of the objects recognized by the image frame, based on a result of comparing the locations of the center points between successive image frames by the computing device, different image frames Identifying center points corresponding to the same object among the center points detected in and performing, by the computing device, object counting based on the number of the detected center points and a result of determining the center points corresponding to the same object. can do.

다른 실시예에 따르면, 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 컴퓨터 프로그램으로서, 인공신경망을 이용한 객체 카운팅 방법은, 컴퓨팅 장치가 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출하는 단계, 상기 컴퓨팅 장치가 상기 이미지 프레임별로 객체들을 인식하는 단계, 상기 컴퓨팅 장치가 상기 이미지 프레임별로 인식된 객체들의 중심점을 검출하는 단계, 상기 컴퓨팅 장치가 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하는 단계 및 상기 컴퓨팅 장치가 상기 검출된 중심점들의 개수와, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 객체 카운팅을 수행하는 단계를 포함할 수 있다.According to another embodiment, as a computer program for performing an object counting method using an artificial neural network, the object counting method using an artificial neural network includes extracting, by a computing device, image frames at predetermined time intervals from a photographed image, the computing device Recognizing objects for each image frame, detecting, by the computing device, center points of objects recognized for each image frame, based on a result of the computing device comparing locations of center points between successive image frames, Identifying center points corresponding to the same object among center points detected in different image frames, and the computing device performing object counting based on the number of the detected center points and a result of determining the center points corresponding to the same object steps may be included.

또 다른 실시예에 따르면, 인공신경망을 이용한 객체 카운팅 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체로서 인공신경망을 이용한 객체 카운팅 방법은, 컴퓨팅 장치가 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출하는 단계, 상기 컴퓨팅 장치가 상기 이미지 프레임별로 객체들을 인식하는 단계, 상기 컴퓨팅 장치가 상기 이미지 프레임별로 인식된 객체들의 중심점을 검출하는 단계, 상기 컴퓨팅 장치가 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하는 단계 및 상기 컴퓨팅 장치가 상기 검출된 중심점들의 개수와, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 객체 카운팅을 수행하는 단계를 포함할 수 있다.According to another embodiment, a computer-readable recording medium on which a program for performing an object counting method using an artificial neural network is recorded, and an object counting method using an artificial neural network, in which a computing device extracts image frames at predetermined time intervals from a photographed image. The computing device recognizing objects for each image frame, the computing device detecting the center points of the recognized objects for each image frame, the computing device comparing the locations of the center points between successive image frames Based on the result, determining center points corresponding to the same object among center points detected in different image frames, and based on the result of the computing device determining the number of the detected center points and the center points corresponding to the same object and performing object counting.

또 다른 실시예에 따르면, 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 컴퓨팅 장치는, 객체들을 촬영한 촬영 영상을 수신하고, 객체 카운팅 결과를 출력하기 위한 입출력부, 상기 촬영 영상으로부터 객체를 카운팅하기 위한 프로그램이 저장되는 저장부 및 적어도 하나의 프로세서를 포함하는 제어부를 포함하며, 상기 제어부는, 상기 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출하고, 상기 이미지 프레임별로 객체들을 인식하고, 상기 이미지 프레임별로 인식된 객체들의 중심점을 검출하고, 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하고, 상기 검출된 중심점들의 개수와, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 객체 카운팅을 수행할 수 있다.According to another embodiment, a computing device for performing an object counting method using an artificial neural network includes an input/output unit for receiving a captured image of objects and outputting an object counting result, and counting objects from the captured image. and a control unit including a storage unit for storing a program for storing a program and at least one processor, wherein the control unit extracts image frames at predetermined time intervals from the photographed image, recognizes objects for each image frame, and recognizes the image frames for each image frame. Detect the center points of objects recognized by each star, determine the center points corresponding to the same object among the center points detected in different image frames based on the result of comparing the positions of the center points between successive image frames, and determine the center points of the detected center points. Object counting may be performed based on the number of objects and the result of identifying center points corresponding to the same object.

전술한 과제 해결 수단 중 어느 하나에 의하면, 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하고, 그 결과를 반영하여 객체 카운팅을 수행함으로써, 리소스를 효율적으로 사용하면서 정확도를 향상시키는 효과를 기대할 수 있다.According to any one of the above-described problem solving means, based on the result of comparing the positions of the center points between successive image frames, center points corresponding to the same object are identified among the center points detected in different image frames, and the result is By reflecting and performing object counting, the effect of improving accuracy while efficiently using resources can be expected.

또한, 이미지 프레임 전체가 아닌, 이미지 프레임의 일부 영역을 디텍팅 영역 및 카운팅 영역으로 설정하고, 해당 영역들 내에서만 객체 인식 및 중심점 검출을 수행함으로써 필요한 연산을 줄여 시스템을 경량화하는 효과를 기대할 수 있다.In addition, by setting some areas of the image frame as the detection area and counting area, rather than the entire image frame, and performing object recognition and center point detection only within the corresponding areas, the necessary calculation can be reduced and the effect of lightening the system can be expected. .

개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable from the disclosed embodiments are not limited to those mentioned above, and other effects not mentioned are clear to those skilled in the art from the description below to which the disclosed embodiments belong. will be understandable.

도 1은 일 실시예에 따른 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 시스템을 도시한 도면이다.
도 2는 도 1에 도시된 시스템에 포함된 컴퓨팅 장치의 상세구성을 도시한 도면이다.
도 3 내지 도 6은 실시예들에 따른 인공신경망을 이용한 객체 카운팅 방법을 설명하기 위한 도면들이다.
도 7은 이미지 프레임에 디텍팅 영역 및 카운팅 영역을 설정하고, 객체 인식 및 객체의 중심점 검출을 수행하는 방법을 설명하기 위한 도면이다.
도 8은 연속되는 이미지 프레임 간 중심점들의 위치 비교를 통해 객체들의 개수를 카운팅하는 방법을 자세히 설명하기 위한 도면이다.
도 9 및 도 10은 연속된 두 개의 이미지 프레임 동안에 객체가 이동한 거리를 일정한 기준값 이하로 제한해야 하는 이유를 설명하기 위한 도면들이다.
1 is a diagram illustrating a system for performing an object counting method using an artificial neural network according to an embodiment.
FIG. 2 is a diagram illustrating a detailed configuration of a computing device included in the system shown in FIG. 1 .
3 to 6 are diagrams for explaining an object counting method using an artificial neural network according to embodiments.
7 is a diagram for explaining a method of setting a detection area and a counting area in an image frame, and performing object recognition and object center point detection.
8 is a diagram for explaining in detail a method of counting the number of objects through location comparison of center points between successive image frames.
9 and 10 are diagrams for explaining why the moving distance of an object during two consecutive image frames should be limited to a predetermined reference value or less.

아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. Embodiments described below may be modified and implemented in various different forms. In order to more clearly describe the characteristics of the embodiments, detailed descriptions of matters widely known to those skilled in the art to which the following embodiments belong are omitted. And, in the drawings, parts irrelevant to the description of the embodiments are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a component is said to be “connected” to another component, this includes not only the case of being “directly connected” but also the case of being “connected with another component intervening therebetween”. In addition, when a certain component "includes" a certain component, this means that other components may be further included without excluding other components unless otherwise specified.

본 명세서에서 설명되는 실시예들은 인공신경망을 이용하여 객체를 카운팅하는 방법에 대한 것들이다.Embodiments described herein relate to a method of counting objects using an artificial neural network.

본 명세서에서는 구체적인 예시를 통해 발명에 대한 이해를 높일 수 있도록 '컨베이어 벨트를 통해 이동되는 달걀(객체)의 개수를 카운팅'하는 실시예에 대해서 자세히 설명하고, 이어서 확장 가능한 실시예들에 대해서 설명하기로 한다.In the present specification, an embodiment of 'counting the number of eggs (objects) moved through a conveyor belt' is described in detail to enhance understanding of the invention through specific examples, and then to explain expandable embodiments. do it with

도 1은 일 실시예에 따른 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 시스템을 도시한 도면이다. 도 1을 참고하면, 일 실시예에 따른 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 시스템은, 촬영 장치(10), 컴퓨팅 장치(100) 및 컨베이어 벨트(20)를 포함할 수 있다.1 is a diagram illustrating a system for performing an object counting method using an artificial neural network according to an embodiment. Referring to FIG. 1 , a system for performing an object counting method using an artificial neural network according to an embodiment may include a photographing device 10, a computing device 100, and a conveyor belt 20.

컨베이어 벨트(20)상에는 달걀들이 놓이며, 컨베이어 벨트(20)는 일정한 방향 및 일정한 속도로 이동한다고 가정한다.Eggs are placed on the conveyor belt 20, and it is assumed that the conveyor belt 20 moves in a constant direction and at a constant speed.

촬영 장치(10)는 컨베이어 벨트(20)를 통해 이동되는 달걀들을 촬영하고, 촬영 영상을 컴퓨팅 장치(100)로 전송한다. 이를 위해, 촬영 장치(10)는 컨베이어 벨트(20)의 일정 영역을 촬영하도록 위치가 설정될 수 있다.The photographing device 10 photographs the eggs moving through the conveyor belt 20 and transmits the photographed image to the computing device 100 . To this end, the location of the photographing device 10 may be set to photograph a certain area of the conveyor belt 20 .

컴퓨팅 장치(100)는 촬영 장치(10)로부터 수신한 촬영 영상을 분석함으로써, 컨베이어 벨트(20)를 통해 이동되는 달걀들의 개수를 카운팅할 수 있다. 컴퓨팅 장치(100)는 영상으로부터 객체를 인식하기 위한 인공신경망을 포함하며, 객체를 인식한 결과에 따라 객체의 개수를 카운팅하기 위한 프로그램(객체 카운팅 알고리즘을 실행하기 위한 프로그램)을 저장하고 있을 수 있다. 인공신경망을 이용한 객체 인식, 그리고 객체 카운팅 알고리즘에 대해서는 아래에서 자세히 설명하기로 한다.The computing device 100 may count the number of eggs moving through the conveyor belt 20 by analyzing the captured image received from the photographing device 10 . The computing device 100 may include an artificial neural network for recognizing an object from an image, and may store a program for counting the number of objects (a program for executing an object counting algorithm) according to the object recognition result. . Object recognition using an artificial neural network and an object counting algorithm will be described in detail below.

도 2는 도 1에 도시된 시스템에 포함된 컴퓨팅 장치의 상세구성을 도시한 도면이다. 도 2를 참고하면, 컴퓨팅 장치(100)는 입출력부(110), 제어부(120) 및 저장부(130)를 포함할 수 있다.FIG. 2 is a diagram illustrating a detailed configuration of a computing device included in the system shown in FIG. 1 . Referring to FIG. 2 , the computing device 100 may include an input/output unit 110 , a control unit 120 and a storage unit 130 .

입출력부(110)는 외부의 장치와 데이터를 송수신하거나, 사용자로부터 명령을 수신하고, 작업을 수행한 결과 등을 출력하기 위한 구성이다. 컴퓨팅 장치(100)는 입출력부(110)를 통해 촬영장치(10)로부터 촬영 영상을 수신하며, 촬영 영상 분석을 통해 객체의 개수를 카운팅한 결과를 입출력부(110)를 통해 화면에 표시하거나, 다른 외부 장치에 전송할 수 있다.The input/output unit 110 is a component for transmitting and receiving data with an external device, receiving a command from a user, and outputting a result of performing a task. The computing device 100 receives a captured image from the photographing device 10 through the input/output unit 110, and displays a result of counting the number of objects through the captured image analysis on the screen through the input/output unit 110, or It can be transmitted to other external devices.

제어부(120)는 CPU 등과 같은 적어도 하나의 프로세서를 포함하는 구성으로서 컴퓨팅 장치(100)의 전체적인 동작을 제어한다. 제어부(120)는 후술할 저장부(130)에 저장된 프로그램을 실행시킴으로써, 인공신경망을 이용한 객체 카운팅 방법을 수행할 수 있다. 제어부(120)가 인공신경망을 이용하여 객체 카운팅을 수행하는 자세한 방법에 대해서는 아래에서 다른 도면들을 참조하여 설명한다.The controller 120 is a component including at least one processor such as a CPU and controls the overall operation of the computing device 100 . The controller 120 may perform an object counting method using an artificial neural network by executing a program stored in the storage unit 130 to be described later. A detailed method of performing object counting by the controller 120 using an artificial neural network will be described below with reference to other drawings.

저장부(130)에는 다양한 종류의 프로그램 및 데이터가 저장될 수 있다. 특히, 저장부(130)에는 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 프로그램이 저장될 수 있다.The storage unit 130 may store various types of programs and data. In particular, a program for performing an object counting method using an artificial neural network may be stored in the storage unit 130 .

도 3 내지 도 6은 실시예들에 따른 인공신경망을 이용한 객체 카운팅 방법을 설명하기 위한 도면들이다. 이하에서는, 도 1 및 도 2의 시스템과 장치들을 이용하여 영상으로부터 객체 카운팅을 수행하는 방법에 대해서 자세히 설명한다.3 to 6 are diagrams for explaining an object counting method using an artificial neural network according to embodiments. Hereinafter, a method of performing object counting from an image using the systems and apparatuses of FIGS. 1 and 2 will be described in detail.

도 3을 참고하면, 301 단계에서 컴퓨팅 장치(100)의 제어부(120)는 촬영 장치(10)로부터 수신한 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출한다. 예를 들어, 촬영 영상은 60fps인데, 이미지 프레임 간 시간 간격이 0.033초(30fps에 대응)가 되도록 이미지 프레임들을 추출하고자 한다면, 제어부(120)는 촬영 영상에 포함된 이미지 프레임들을 하나씩 건너뛰면서 추출할 수 있다. 객체의 이동속도나 서로 다른 객체 간 거리 등에 따라서 이미지 프레임 간 시간 간격을 조정할 필요가 있을 수 있는데, 이에 대해서는 아래에서 자세히 설명하도록 한다.Referring to FIG. 3 , in step 301 , the controller 120 of the computing device 100 extracts image frames at regular time intervals from a captured image received from the photographing device 10 . For example, if a captured image is 60 fps, and it is desired to extract image frames such that the time interval between image frames is 0.033 seconds (corresponding to 30 fps), the controller 120 may extract the image frames included in the captured image while skipping one by one. can It may be necessary to adjust the time interval between image frames according to the moving speed of objects or the distance between different objects, which will be described in detail below.

302 단계에서 제어부(120)는 추출된 이미지 프레임별로 객체들을 인식한다. 객체 인식 시 사용되는 신경망이 특별히 한정되는 것은 아니나, 일 실시예에 따르면 제어부(120)는 이미지 인식 분야에서 널리 사용되는 콘볼루션 신경망(CNN)을 이용하여 객체들을 인식할 수 있다. 인식 정확도를 높이기 위해서 인공신경망은 다양한 조건(e.g. 조명)하에서 다양한 상태(e.g. 정상, 불량)의 객체를 촬영한 영상을 통해 미리 학습될 수 있다.In step 302, the controller 120 recognizes objects for each extracted image frame. Although the neural network used for object recognition is not particularly limited, according to an embodiment, the controller 120 may recognize objects using a convolutional neural network (CNN) widely used in the field of image recognition. In order to increase the recognition accuracy, the artificial neural network can be trained in advance through images taken of objects in various states (e.g. normal, defective) under various conditions (e.g. lighting).

제어부(120)는 이미지 프레임 전체에 대해서 객체 인식을 수행할 수도 있지만, 효율성을 높이기 위해서 이미지 프레임 중 일부 영역을 디텍팅 영역(Region of Detecting)으로 설정하고, 디텍팅 영역에 대해서만 객체 인식을 수행할 수도 있다. 디텍팅 영역은 사전에 설정될 수도 있고, 이미지 프레임을 분석한 결과에 따라 실시간으로 설정될 수도 있는데, 디텍팅 영역의 설정에 대해서는 아래에서 도 7을 참조하여 자세히 설명한다.The controller 120 may perform object recognition on the entire image frame, but in order to increase efficiency, a part of the image frame may be set as a region of detection and object recognition may be performed only on the detection region. may be The detection area may be set in advance or may be set in real time according to the result of analyzing the image frame. The setting of the detection area will be described in detail below with reference to FIG. 7 .

303 단계에서 제어부(120)는 이미지 프레임별로 인식된 객체들의 중심점을 검출한다. 제어부(120)는 이미지 프레임에 포함된 모든 객체들의 중심점을 검출할 수도 있지만, 효율성을 높이기 위해서 이미지 프레임 중 일부 영역을 카운팅 영역(Region of Counting)으로 설정하고, 카운팅 영역 내에서만 객체들의 중심점을 검출할 수도 있다. 카운팅 영역은 사전에 설정되거나 실시간으로 설정될 수 있는데, 카운팅 영역의 설정에 대해서는 아래에서 도 7을 참조하여 자세히 설명한다.In step 303, the controller 120 detects the center points of recognized objects for each image frame. The controller 120 may detect the center points of all objects included in the image frame, but in order to increase efficiency, a part of the image frame is set as a region of counting and the center points of objects are detected only within the counting region. You may. The counting area may be set in advance or set in real time, and the setting of the counting area will be described in detail with reference to FIG. 7 below.

이하에서는 도 7을 참조하여 이미지 프레임별로 디텍팅 영역 및 카운팅 영역을 설정하고, 객체 인식 및 객체의 중심점 검출을 수행하는 방법에 대해서 자세히 설명한다.Hereinafter, referring to FIG. 7 , a method of setting a detection area and a counting area for each image frame and performing object recognition and object center point detection will be described in detail.

도 7을 참고하면, 하나의 이미지 프레임(700)상에 디텍팅 영역(710) 및 카운팅 영역(720)이 설정되어 있다. 앞서 설명한 바와 같이 이미지 프레임(700) 전체에 대해서 객체 인식 및 중심점 검출을 수행한다면 연산량이 증가하고 자원이 많이 소모되므로, 제어부(120)는 이미지 프레임(700)의 일부 영역을 디텍팅 영역(710) 및 카운팅 영역(720)으로 설정하고, 설정된 영역 내에서만 객체 인식 및 중심점 검출을 수행할 수 있다.Referring to FIG. 7 , a detecting area 710 and a counting area 720 are set on one image frame 700 . As described above, if object recognition and center point detection are performed on the entire image frame 700, the amount of calculation increases and resources are consumed. and a counting area 720, and object recognition and central point detection can be performed only within the set area.

디텍팅 영역(710) 및 카운팅 영역(720)이 좁게 설정될수록 제어부(120)가 탐색해야 할 대상이 줄어들어 효율성은 높아질 수 있으나, 너무 좁게 설정되면 검출 정확도가 낮아지는 문제점이 발생한다. 따라서, 이하에서는 검출 정확도를 일정 수준 이상으로 유지할 수 있도록 디텍팅 영역(710) 및 카운팅 영역(720)을 설정하는 방법에 대해서 설명한다. 이하에서는 객체들의 이동방향이 디텍팅 영역(710) 및 카운팅 영역(720)의 '길이' 방향이고, 그에 수직인 방향이 디텍팅 영역(710) 및 카운팅 영역(720)의 '폭' 방향이라고 가정한다.As the detection area 710 and the counting area 720 are set narrower, the number of objects to be searched by the control unit 120 decreases and efficiency may increase. However, if they are set too narrowly, detection accuracy decreases. Therefore, hereinafter, a method of setting the detection area 710 and the counting area 720 to maintain detection accuracy at a certain level or higher will be described. Hereinafter, it is assumed that the movement direction of the objects is the 'length' direction of the detection area 710 and the counting area 720, and the direction perpendicular thereto is the 'width' direction of the detection area 710 and the counting area 720. do.

먼저 디텍팅 영역(710)에 관하여 설명한다. 제어부(120)는 디텍팅 영역(710) 내에서만 객체를 인식하도록 구현될 수 있다. 모든 객체가 적어도 하나의 이미지 프레임에서는 완전한 형태로 인식될 수 있도록 하기 위해, 디텍팅 영역(710)의 길이(length_ROD)는 객체의 너비의 최대값(max_R_object)과 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값(max_d_move)의 합보다는 크도록 설정되어야 한다. 즉, 다음의 수학식 1과 같은 관계가 성립한다.First, the detecting area 710 will be described. The controller 120 may be implemented to recognize an object only within the detecting area 710 . In order for all objects to be recognized as complete in at least one image frame, the length (length_ROD) of the detecting area 710 is the maximum value of the object's width (max_R_object) and the object's movement during consecutive image frames. It should be set greater than the sum of the maximum distances (max_d_move). That is, a relationship such as Equation 1 below is established.

Figure 112022029247204-pat00001
Figure 112022029247204-pat00001

이어서 카운팅 영역(720)에 관하여 설명한다. 제어부(120)는 카운팅 영역(720) 내에서만 객체들의 중심점을 검출하도록 구현될 수 있다. 도 7을 참고하면, 카운팅 영역(720) 내에 '중심점이 위치하는' 객체들의 중심점이 검출되었다. 모든 객체들의 중심점이 적어도 하나의 이미지 프레임의 카운팅 영역에서는 검출될 수 있도록 하기 위해, 카운팅 영역(720)의 길이(length_ROC)는 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값(max_d_move)보다는 크도록 설정되어야 한다. 다만, 카운팅 영역(720)의 길이(length_ROC)는 디텍팅 영역의 길이(length_ROD)보다는 작게 설정되어야 한다. 따라서, 다음의 수학식 2와 같은 관계가 성립한다.Next, the counting area 720 will be described. The controller 120 may be implemented to detect center points of objects only within the counting area 720 . Referring to FIG. 7 , the center points of objects 'where the center points are located' in the counting area 720 are detected. In order for the center point of all objects to be detected in the counting area of at least one image frame, the length (length_ROC) of the counting area 720 is greater than the maximum value (max_d_move) of the distance moved by the object during consecutive image frames. should be set. However, the length (length_ROC) of the counting region 720 should be set smaller than the length (length_ROD) of the detecting region. Therefore, a relationship such as Equation 2 below is established.

Figure 112022029247204-pat00002
Figure 112022029247204-pat00002

이때, '연속된 이미지 프레임 동안에 객체가 이동한 거리(d_move)'는 객체의 이동속도와 이미지 프레임 간 시간 간격을 곱한 값이다. 도 7에 도시된 실시예와 같이 컨베이어 벨트를 통해 이동되는 달걀들을 카운팅하는 경우라면, 모든 객체들의 이동속도가 동일하기 때문에 '최대값'을 취할 필요가 없다. 하지만, 추후에 설명할 확장 가능한 실시예들에서는 객체들마다 이동속도가 상이할 수 있으므로 '최대값'을 취해야 한다.In this case, 'distance (d_move) moved by the object during consecutive image frames' is a value obtained by multiplying the moving speed of the object by the time interval between image frames. In the case of counting eggs moving through a conveyor belt as in the embodiment shown in FIG. 7 , there is no need to take the 'maximum value' because the moving speed of all objects is the same. However, in expandable embodiments to be described later, since moving speeds may be different for each object, a 'maximum value' should be taken.

제어부(120)는 실시간으로 디텍팅 영역 및 카운팅 영역을 설정할 수도 있다. 예를 들어, 제어부(120)는 이미지 프레임을 분석함으로써 객체의 너비의 최대값(max_R_object)이나 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값(max_d_move)을 측정하고, 측정 결과를 수학식 1 및 2에 대입함으로써 실시간으로 디텍팅 영역 및 카운팅 영역의 길이를 설정할 수도 있다.The controller 120 may set the detection area and the counting area in real time. For example, the control unit 120 measures the maximum value of the width of an object (max_R_object) or the maximum value of the distance (max_d_move) of a distance moved by an object during consecutive image frames by analyzing the image frame, and calculates the measurement result using Equation 1 and 2, the length of the detecting area and counting area may be set in real time.

다시 도 3으로 돌아와서, 304 단계에서 제어부(120)는 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점을 파악한다. 자세하게는 제어부(120)는 연속된 이미지 프레임 간 중심점들의 이격거리를 산출하고, 산출된 이격거리가 미리 설정된 기준값보다 작은 경우에는 해당 이격거리에 대응되는 중심점들이 동일 객체에 대한 중심점인 것으로 판단한다. 기준값의 설정과 관련해서는 아래에서 자세히 설명하도록 한다.Returning to FIG. 3 , in step 304, the controller 120 determines the center point corresponding to the same object among the center points detected in different image frames based on the result of comparing the locations of the center points between successive image frames. In detail, the controller 120 calculates the separation distances of center points between successive image frames, and if the calculated separation distance is smaller than a preset reference value, it is determined that center points corresponding to the separation distances are center points of the same object. The setting of the reference value will be described in detail below.

이하에서는 도 8을 참조하여 연속된 이미지 프레임 간 중심점들의 이격거리를 기준값과 비교함으로써 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점을 파악하는 방법에 대해서 자세히 설명한다.Hereinafter, referring to FIG. 8 , a method of identifying a center point corresponding to the same object among center points detected in different image frames by comparing the separation distance between the center points between successive image frames with a reference value will be described in detail.

도 8에는 연속된 3개의 이미지 프레임의 카운팅 영역(810, 820, 830)이 도시되었다. 설명의 편의를 위해, 첫 번째 이미지 프레임의 카운팅 영역(810)을 제1 카운팅 영역이라고 하고, 두 번째 이미지 프레임의 카운팅 영역(820)을 제2 카운팅 영역이라고 하고, 세 번째 이미지 프레임의 카운팅 영역(830)을 제3 카운팅 영역이라고 한다. 각각의 카운팅 영역(810, 820, 830)에는 검정색으로 채워진 점들과 점선으로 표시된 점들이 있는데, 검정색으로 채워진 점들은 해당 이미지 프레임에서 검출된 중심점들이고, 점선으로 표시된 점들은 바로 이전의 이미지 프레임에서 검출된 중심점들이다. 도 8에서는 객체(달걀)들은 생략하고 객체들의 중심점만을 도시하였다.8 shows counting areas 810, 820, and 830 of three consecutive image frames. For convenience of explanation, the counting area 810 of the first image frame is referred to as a first counting area, the counting area 820 of the second image frame is referred to as a second counting area, and the counting area of the third image frame ( 830) is referred to as a third counting area. In each of the counting areas 810, 820, and 830, there are dots filled with black and dots marked with dotted lines. The dots filled with black are center points detected in the corresponding image frame, and the dots marked with dotted lines are detected in the immediately previous image frame. are the central points. In FIG. 8, objects (eggs) are omitted and only the center points of the objects are shown.

도 8을 참고하면, 제어부(120)는 제2 카운팅 영역(820)에서 검출된 중심점들(P21, P23)과 제1 카운팅 영역(810)에서 검출된 중심점들(P11, P12)의 위치를 비교하여 중심점들 간 이격거리를 산출한다. 이때, 제어부(120)는 현재의 이미지 프레임의 제2 카운팅 영역(820)에서 검출된 모든 중심점들(P21, P23) 각각에 대해서, 이전 이미지 프레임의 제1 카운팅 영역(810)에서 검출된 모든 중심점들(P11, P12)과의 이격거리를 산출한다. 즉, 제어부(120)는 P21에 대해서 P11 및 P12와의 이격거리를 각각 산출하고, P23에 대해서도 P11 및 P12와의 이격거리를 각각 산출한다. 제어부(120)는 산출된 중심점 간 이격거리 중에서 미리 설정된 기준값보다 작은 것이 있는지를 판단하고, 기준값보다 작은 이격거리에 대응되는 중심점들은 동일 객체에 대한 중심점인 것으로 판단한다.Referring to FIG. 8 , the controller 120 compares the positions of the center points P21 and P23 detected in the second counting area 820 and the center points P11 and P12 detected in the first counting area 810. to calculate the separation distance between the center points. At this time, the controller 120 controls all center points detected in the first counting area 810 of the previous image frame for each of the center points P21 and P23 detected in the second counting area 820 of the current image frame. Calculate the separation distance with the fields (P11, P12). That is, the control unit 120 calculates the separation distances from P11 and P12 for P21, respectively, and calculates the separation distances from P11 and P12 for P23, respectively. The controller 120 determines whether there is a distance smaller than a preset reference value among the calculated distances between center points, and determines that center points corresponding to distances smaller than the reference value are center points of the same object.

도 8의 제2 카운팅 영역(820)에서 P21과 P11 사이의 이격거리는 기준값보다 작고, 나머지 중심점들 간 이격거리는 모두 기준값보다 크다고 가정한다. 이 경우, 제어부(120)는 P21과 P11은 동일 객체에 해당되는 중심점인 것으로 판단한다.It is assumed that the separation distance between P21 and P11 in the second counting area 820 of FIG. 8 is smaller than the reference value, and the separation distances between the other center points are all greater than the reference value. In this case, the controller 120 determines that P21 and P11 are central points corresponding to the same object.

도 8의 제3 카운팅 영역(830)에 대해서 살펴보면, 제어부(120)는 제3 카운팅 영역(830)에서 검출된 중심점(P33)과 제2 카운팅 영역(820)에서 검출된 중심점들(P21, P23)의 위치를 비교하여 중심점들 간 이격거리를 산출한다. 제3 카운팅 영역(830)에서 P33과 P23 사이의 이격거리는 기준값보다 작고, 나머지 중심점들 간 이격거리는 모두 기준값보다 크다고 가정한다. 이 경우, 제어부(120)는 P33과 P23은 동일 객체에 해당하는 중심점인 것으로 판단한다.Referring to the third counting area 830 of FIG. 8 , the controller 120 determines the center point P33 detected in the third counting area 830 and the center points P21 and P23 detected in the second counting area 820. ) to calculate the separation distance between the center points. It is assumed that the separation distance between P33 and P23 in the third counting area 830 is smaller than the reference value, and the separation distances between the other center points are all greater than the reference value. In this case, the controller 120 determines that P33 and P23 are central points corresponding to the same object.

연속된 이미지 프레임 간 중심점들의 이격거리와 비교되는 기준값은, 객체의 형태나 특성, 그리고 요구되는 정확도의 수준 등에 따라서 적절한 값으로 설정될 수 있는데, 기준값을 설정하는 구체적인 예시들에 대해서 아래에서 설명한다.The reference value compared with the distance between the center points of successive image frames may be set to an appropriate value according to the shape or characteristics of the object, the level of accuracy required, etc. Specific examples of setting the reference value will be described below. .

일 실시예에 따르면, 기준값은 동일 이미지 프레임 내에서 서로 다른 객체들의 중심점 간 이격거리의 최소값(이하, '객체 간 최소 이격거리')에 0.5를 곱한 값으로 설정될 수 있다.According to an embodiment, the reference value may be set to a value obtained by multiplying a minimum distance between center points of different objects (hereinafter referred to as 'minimum distance between objects') by 0.5.

카운팅의 대상이 되는 객체가 달걀과 같이 크기 및 형태가 거의 동일하고, 객체들이 서로 맞닿은 상태로 놓일 수 있는 경우라면, 객체 간 최소 이격거리는 '객체의 너비의 최소값(min_R_object)'이 될 수 있다. 따라서, 컨베이어 벨트를 통해 이동되는 달걀을 카운팅하는 실시예에서 기준값은 '달걀(객체)의 너비의 최소값(min_R_object)에 0.5를 곱한 값'이 될 수 있다. 이때, 객체의 너비의 최소값(min_R_object)은, 제어부(120)가 이미지 프레임을 분석함으로써 검출할 수도 있다.In the case where objects to be counted have almost the same size and shape, such as eggs, and the objects can be placed in contact with each other, the minimum separation distance between objects may be 'the minimum value of the object width (min_R_object)'. Accordingly, in an embodiment of counting eggs moving through a conveyor belt, the reference value may be 'a value obtained by multiplying the minimum value (min_R_object) of the width of an egg (object) by 0.5'. At this time, the minimum value (min_R_object) of the width of the object may be detected by the controller 120 analyzing the image frame.

한편 카운팅의 대상이 되는 객체가 사람인 경우(e.g. 사람들이 존재하는 공간을 위에서 촬영한 영상을 분석함으로써 사람의 수를 카운팅하는 경우)에는 객체들의 크기 및 형태가 조금씩 다를 뿐만 아니라, 서로 다른 사람들 간에는 일반적으로 어느 정도 거리가 유지되므로, 제어부(120)는 달걀을 카운팅하는 경우와 같이 객체 너비의 최소값을 이용하여 기준값을 결정할 수 없다. 이 경우에는 사용자가 사람 사이의 최소 간격이라고 생각되는 값을 객체 간 최소 이격거리로서 컴퓨팅 장치(100)에 입력하면, 제어부(120)는 그에 따라 기준값을 결정할 수 있다.On the other hand, when the object to be counted is a person (e.g. counting the number of people by analyzing an image taken from above in a space where people exist), not only are the objects slightly different in size and shape, but also there is a general difference between different people. Since the distance is maintained to a certain extent, the controller 120 cannot determine the reference value using the minimum value of the object width as in the case of counting eggs. In this case, when the user inputs a value considered to be the minimum distance between people to the computing device 100 as the minimum distance between objects, the controller 120 may determine the reference value accordingly.

연속된 이미지 프레임 간 중심점들의 이격거리를 기준값과 비교하여 동일 객체 여부를 판단하기 위해서는, 연속된 이미지 프레임 동안 객체가 이동한 거리의 최대값(max_d_move)은 기준값보다 작도록 제어되어야만 한다. 그 이유에 대해서는 아래에서 도 9 및 도 10을 참조하여 설명한다.In order to compare the separation distances of center points between successive image frames with a reference value to determine whether they are the same object, the maximum value (max_d_move) of the distance moved by an object during successive image frames must be controlled to be smaller than the reference value. The reason for this will be described with reference to FIGS. 9 and 10 below.

도 9 및 도 10은 연속된 두 개의 이미지 프레임 동안에 객체가 이동한 거리의 최대값(max_d_move)을 일정한 기준값 이하로 제한해야 하는 이유를 설명하기 위한 도면들이다. 도 9 및 도 10 모두 두 개의 달걀(객체)이 서로 인접한 상태로 이동되는 상황을 도시하였고, 다만 달걀의 이동속도만이 상이하다.9 and 10 are diagrams for explaining why the maximum value (max_d_move) of a distance moved by an object during two consecutive image frames must be limited to a predetermined reference value or less. 9 and 10 both show a situation in which two eggs (objects) are moved adjacent to each other, but only the moving speed of the eggs is different.

도 9 및 도 10을 참조하여 설명하면, 객체들(910a, 920a) 간 최소 이격거리는 P1a와 P2a 사이의 거리인 d이고, 이 값은 달걀들의 크기 및 형태가 동일하다고 가정할 때 객체의 너비의 최소값(min_R_object)과 같다. 따라서, 기준값은 (d * 0.5)로 설정될 수 있다.Referring to FIGS. 9 and 10 , the minimum separation distance between objects 910a and 920a is d, which is the distance between P1a and P2a, and this value is the width of the object assuming that the eggs have the same size and shape. Same as the minimum value (min_R_object). Therefore, the reference value may be set to (d * 0.5).

도 9에는 n번째 이미지 프레임에서 인식된 객체들(910a, 920a)과, (n+1)번째 이미지 프레임에서 인식된 객체들(910b, 920b)을 도시하였다. 도면에서 확인할 수 있는 바와 같이 연속된 두 개의 이미지 프레임 동안에 객체가 이동한 거리(d_move)는 기준값인 (d * 0.5)보다 크다. 그 결과 중심점들 간 이격거리를 살펴보면, 동일한 객체(910a, 910b)에 대응되는 중심점들(P1a, P1b) 간 이격거리인 d91이, 서로 다른 객체(910b, 920a)에 대응되는 중심점들(P1b, P2a) 간 이격거리인 d92보다 크게 되었다. 즉, 서로 다른 객체의 중심점들 간 이격거리가 동일 객체의 중심점들 간 이격거리보다 작아지는 경우가 발생할 수 있어, 중심점들 간 이격거리에 기초하여 동일 객체 여부를 판단하는 것이 불가능하다.9 illustrates objects 910a and 920a recognized in the nth image frame and objects 910b and 920b recognized in the (n+1)th image frame. As can be seen in the drawing, the distance (d_move) that the object moves during two consecutive image frames is greater than the reference value (d * 0.5). As a result, looking at the distance between the center points, d91, which is the distance between the center points P1a and P1b corresponding to the same object 910a and 910b, is the center point P1b and P1b corresponding to different objects 910b and 920a. P2a) became larger than d92, the separation distance between them. That is, since the separation distance between the center points of different objects may be smaller than the separation distance between the center points of the same object, it is impossible to determine whether the object is the same based on the separation distance between the center points.

도 10에는 n번째 이미지 프레임에서 인식된 객체들(1010a, 1020a)과, (n+1)번째 이미지 프레임에서 인식된 객체들(1010b, 1020b)을 도시하였다. 도면에서 확인할 수 있는 바와 같이 연속된 두 개의 이미지 프레임 동안에 객체가 이동한 거리(d_move)는 기준값인 (d * 0.5)보다 작다. 그 결과, 동일한 객체(1010a, 1010b)에 대응되는 중심점들(P1a, P1b) 간 이격거리인 d101이, 서로 다른 객체(1010b, 1020a)에 대응되는 중심점들(P1b, P2a) 간 이격거리인 d102보다 작다. 이와 같이, 동일 객체의 중심점들 간 이격거리가 항상 서로 다른 객체의 중심점들 간 이격거리보다 작게 유지되므로, 제어부(120)는 중심점들 간 이격거리에 기초하여 동일 객체 여부를 판단할 수 있다.10 illustrates objects 1010a and 1020a recognized in the nth image frame and objects 1010b and 1020b recognized in the (n+1)th image frame. As can be seen in the figure, the distance (d_move) that the object moves during two consecutive image frames is smaller than the reference value (d * 0.5). As a result, d101, which is the distance between the center points P1a and P1b corresponding to the same object 1010a and 1010b, is d102, which is the distance between the center points P1b and P2a corresponding to different objects 1010b and 1020a. smaller than As such, since the distance between center points of the same object is always kept smaller than the distance between center points of different objects, the controller 120 can determine whether the object is the same based on the distance between center points.

연속된 두 개의 이미지 프레임 동안에 객체가 이동한 거리의 최대값(max_d_move)을 일정한 기준값 이하로 제한하는 방법은 다양하게 구현될 수 있다. 예를 들어, 객체의 이동속도를 낮춤으로써 (max_d_move)를 감소시킬 수 있고, 만약 객체의 이동속도 변경이 불가하거나, 객체 간 최소 이격거리가 너무 작아 객체의 이동속도 변경만으로는 충분하지 않은 상황이라면 301 단계에서 추출되는 이미지 프레임들 간 시간 간격을 짧게 함으로써 (max_d_move)를 감소시킬 수도 있다.A method of limiting a maximum value (max_d_move) of a distance moved by an object during two consecutive image frames to a predetermined reference value or less may be implemented in various ways. For example, (max_d_move) can be reduced by lowering the object's movement speed. If the object's movement speed cannot be changed or the minimum separation distance between objects is too small, changing the object's movement speed is not sufficient. 301 (max_d_move) may be reduced by shortening the time interval between image frames extracted in the step.

다시 도 3으로 돌아와서, 305 단계에서 제어부(120)는 검출된 중심점들의 개수와, 동일 객체에 해당되는 중심점들을 파악한 결과를 이용하여 객체 카운팅을 수행한다.Returning to FIG. 3 again, in step 305, the controller 120 performs object counting using the number of detected center points and the result of identifying center points corresponding to the same object.

기본적으로 제어부(120)는 이미지 프레임들에서 검출된 중심점들의 개수를 합함으로써 촬영 영상에 등장하는 객체들의 개수를 카운팅할 수 있다. 그런데, 동일한 객체가 복수의 이미지 프레임들에 걸쳐서 등장할 수 있고, 따라서 이미지 프레임들에서 검출된 중심점들의 개수를 단순히 모두 합하기만 한다면 일부 동일한 객체를 중복으로 카운팅하는 결과를 가져오게 된다. 일 실시예에 따른 카운팅 알고리즘에 따르면 위와 같은 문제를 방지하기 위해, 제어부(120)는 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점을 파악하고, 그 결과를 반영하여 카운팅 값을 보정할 수 있다.Basically, the controller 120 may count the number of objects appearing in a captured image by summing the number of center points detected in image frames. However, the same object may appear over a plurality of image frames, and therefore, if the number of center points detected in the image frames is simply summed up, some identical objects may be counted redundantly. According to the counting algorithm according to an embodiment, in order to prevent the above problem, the control unit 120 determines the same object among the center points detected in different image frames based on the result of comparing the locations of the center points between successive image frames. The corresponding center point may be identified, and the counting value may be corrected by reflecting the result.

이하에서는 도 4 및 도 8을 참조하여 카운팅 영역 내 중심점 검출을 통해 객체를 카운팅하는 알고리즘에 대해서 자세히 설명한다.Hereinafter, with reference to FIGS. 4 and 8 , an algorithm for counting objects by detecting a center point within a counting area will be described in detail.

도 4는 도 3의 305 단계에 포함되는 세부 단계들을 도시한 순서도이다.FIG. 4 is a flowchart illustrating detailed steps included in step 305 of FIG. 3 .

401 단계에서 제어부(120)는 이미지 프레임별로 검출된 중심점들의 개수를 예비 카운팅 값으로 결정한다. 도 8에서 제1 카운팅 영역(810)에서 검출된 중심점들(P11, P12)은 2개 이므로, 제1 카운팅 영역(810)에 대한 예비 카운팅 값은 2가 된다. 동일한 방식에 따라 제2 카운팅 영역(820) 및 제3 카운팅 영역(830)의 예비 카운팅 값은 각각 2 및 1이 된다.In step 401, the controller 120 determines the number of center points detected for each image frame as a preliminary counting value. In FIG. 8 , since the number of center points P11 and P12 detected in the first counting area 810 is two, the preliminary counting value for the first counting area 810 is 2. According to the same method, preliminary counting values of the second counting area 820 and the third counting area 830 become 2 and 1, respectively.

402 단계에서 제어부(120)는 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 이미지 프레임별로 카운팅 보정값을 결정한다. 자세하게는, 제어부(120)는 현재 이미지 프레임에서 검출된 중심점들 중에서, 이전 이미지 프레임에서 이미 중심점이 검출된 객체에 대응되는 것이 발견될 때마다 카운팅 보정값을 -1씩 증가시킨다. 구체적인 예시는 아래를 참고한다.In step 402, the controller 120 determines a counting correction value for each image frame based on a result of identifying center points corresponding to the same object. In detail, the controller 120 increases the counting correction value by -1 whenever it is found that among the center points detected in the current image frame, the object corresponding to the center point already detected in the previous image frame is found. See below for specific examples.

도 8의 제2 카운팅 영역(820)에 대해서 살펴보면, 앞서 살펴본 바와 같이 제2 카운팅 영역(820)에서 검출된 중심점들(P21, P23) 중에서 P21은, 제1 카운팅 영역(810)에서 이미 중심점(P11)이 검출된 객체에 대응되므로, 제어부(120)는 제2 카운팅 영역(820)에 대한 카운팅 보정값을 -1로 설정한다.Looking at the second counting area 820 of FIG. 8 , as described above, among the center points P21 and P23 detected in the second counting area 820, P21 is the center point ( Since P11) corresponds to the detected object, the controller 120 sets the counting correction value for the second counting area 820 to -1.

도 8의 제3 카운팅 영역(830)에 대해서 살펴보면, 앞서 살펴본 바와 같이 제3 카운팅 영역(830)에서 검출된 중심점(P33)은, 제2 카운팅 영역(820)에서 이미 중심점(P23)이 검출된 객체에 대응되므로, 제어부(120)는 제3 카운팅 영역(830)에 대한 카운팅 보정값을 -1로 설정한다.Looking at the third counting area 830 of FIG. 8 , as described above, the center point P33 detected in the third counting area 830 is the center point P23 already detected in the second counting area 820. Since it corresponds to the object, the controller 120 sets the counting correction value for the third counting area 830 to -1.

403 단계에서 제어부(120)는 모든 이미지 프레임들에 대해서 예비 카운팅 값 및 카운팅 보정값을 합하여 최종 카운팅 값을 산출한다.In step 403, the controller 120 calculates a final counting value by summing the preliminary counting value and the counting correction value for all image frames.

도 8을 참고하면, 제1 카운팅 영역(810)에 대해서는 카운팅 보정값이 존재하지 않으므로, 제1 카운팅 영역(810)에 대한 카운팅 값은 예비 카운팅 값과 동일하게 2가 된다. 제2 카운팅 영역(820)에 대한 카운팅 값은 예비 카운팅 값(2)과 카운팅 보정값(-1)을 합한 결과인 1이 된다. 제3 카운팅 영역(830)에 대한 카운팅 값은, 예비 카운팅 값(1)과 카운팅 보정값(-1)을 합한 결과인 0이 된다. 제어부(120)는 제1 내지 3 카운팅 영역(810, 820, 830)에 대한 카운팅 값을 모두 합함으로써 최종 카운팅 값 3을 얻게 된다.Referring to FIG. 8 , since a counting correction value does not exist for the first counting area 810, the counting value for the first counting area 810 becomes 2, the same as the preliminary counting value. The counting value for the second counting area 820 becomes 1, which is the result of adding the preliminary counting value (2) and the counting correction value (-1). The counting value for the third counting area 830 becomes 0, which is the result of adding the preliminary counting value (1) and the counting correction value (-1). The controller 120 obtains a final counting value of 3 by summing the counting values for the first to third counting areas 810, 820, and 830.

이상 설명한 실시예에서는 컨베이어 벨트를 통해 달걀들이 이동되므로 모든 객체들의 이동방향 및 이동속도가 동일하다. 하지만, 객체들의 이동방향 및 이동속도가 상이한 경우까지 실시예를 확장하는 것이 가능하다.In the embodiment described above, since the eggs are moved through the conveyor belt, the moving direction and moving speed of all objects are the same. However, it is possible to extend the embodiment to a case where the moving directions and moving speeds of the objects are different.

도 3의 304 단계에서 동일 객체에 해당되는 중심점들을 파악했으면, 제어부(120)는 그 결과에 기초하여 각 객체들의 이동방향 및 이동속도를 측정할 수 있기 때문이다.This is because if center points corresponding to the same object are determined in step 304 of FIG. 3 , the controller 120 can measure the moving direction and moving speed of each object based on the result.

구체적인 실시예로서, 양방향으로 이동하는 차량들을 위에서 촬영하고, 촬영 영상을 분석함으로써 각 방향으로 이동한 차량들의 개수를 카운팅할 수 있다. 도 5에는 이러한 실시예에 대응되는, 도 3의 305 단계의 세부단계들을 도시하였다.As a specific embodiment, the number of vehicles moving in each direction may be counted by photographing vehicles moving in both directions from above and analyzing the captured image. FIG. 5 shows detailed steps of step 305 of FIG. 3 corresponding to this embodiment.

501 단계에서 제어부(120)는 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 중심점들 각각의 이동방향을 파악한다. 502 단계에서 제어부(120)는 파악된 이동방향별로 객체의 개수를 카운팅한다. 본 실시예도 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 카운팅 보정값을 결정하고, 이를 반영하여 최종 카운팅 값을 도출하는 점은 앞서 도 8을 참조하여 설명한 바와 같다.In step 501, the control unit 120 determines the movement direction of each center point based on the result of finding center points corresponding to the same object. In step 502, the controller 120 counts the number of objects for each identified movement direction. In this embodiment, the counting correction value is determined based on the result of identifying the center points corresponding to the same object, and the final counting value is derived by reflecting this, as described above with reference to FIG. 8 .

또 다른 실시예로서, 출입구를 통해 드나드는 사람들의 수를 카운팅함으로써 특정 공간 내에 존재하는 사람들의 수를 파악할 수도 있다. 도 6에는 이러한 실시예에 대응되는, 도 3의 305 단계의 세부단계들을 도시하였다.As another embodiment, the number of people present in a specific space may be determined by counting the number of people entering and exiting through a doorway. FIG. 6 shows detailed steps of step 305 of FIG. 3 corresponding to this embodiment.

601 단계에서 제어부(120)는 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 중심점들 각각의 이동방향을 파악한다. 602 단계에서 제어부(120)는 파악된 이동방향에 기초하여 출입구를 통해 드나든 객체의 개수를 카운팅한다. 본 실시예에서 제어부(120)는 출입구 주변에서의 객체들의 이동방향에 기반하여, 출입구를 통해 나가는 사람의 수와 출입구를 통해 들어오는 사람의 수를 각각 카운팅할 수 있고, 출입구를 통해 들어온 사람의 수에서 출입구를 통해 나간 사람의 수를 뺌으로써 해당 공간 내에 머무르는 사람들의 수를 계산할 수 있다. 본 실시예도 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 카운팅 보정값을 결정하고, 이를 반영하여 최종 카운팅 값을 도출하는 점은 앞서 도 8을 참조하여 설명한 바와 같다.In step 601, the control unit 120 determines the movement direction of each center point based on the result of finding center points corresponding to the same object. In step 602, the controller 120 counts the number of objects entering and exiting through the doorway based on the identified movement direction. In this embodiment, the control unit 120 may count the number of people exiting through the doorway and the number of people entering through the doorway, respectively, based on the moving direction of objects around the doorway, and the number of people entering through the doorway. We can calculate the number of people staying in the space by subtracting the number of people leaving through the doorway. In this embodiment, the counting correction value is determined based on the result of identifying the center points corresponding to the same object, and the final counting value is derived by reflecting this, as described above with reference to FIG. 8 .

이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term '~unit' used in the above embodiments means software or a hardware component such as a field programmable gate array (FPGA) or ASIC, and '~unit' performs certain roles. However, '~ part' is not limited to software or hardware. '~bu' may be configured to be in an addressable storage medium and may be configured to reproduce one or more processors. Therefore, as an example, '~unit' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, and procedures. , subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.

구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.Functions provided within components and '~units' may be combined into smaller numbers of components and '~units' or separated from additional components and '~units'.

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, components and '~units' may be implemented to play one or more CPUs in a device or a secure multimedia card.

도 3 내지 도 6을 통해 설명된 실시예에 따른 인공신경망을 이용한 객체 카운팅 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다.The object counting method using an artificial neural network according to the embodiment described with reference to FIGS. 3 to 6 may be implemented in the form of a computer-readable medium storing instructions and data executable by a computer. In this case, instructions and data may be stored in the form of program codes, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation. Also, computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, a computer-readable medium may be a computer recording medium, which is a volatile and non-volatile memory implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. It can include both volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as HDD and SSD, an optical recording medium such as CD, DVD, and Blu-ray disc, or a memory included in a server accessible through a network.

또한 도 3 내지 도 6을 통해 설명된 실시예에 따른 인공신경망을 이용한 객체 카운팅 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다.In addition, the object counting method using an artificial neural network according to the embodiment described with reference to FIGS. 3 to 6 may be implemented as a computer program (or computer program product) including instructions executable by a computer. A computer program includes programmable machine instructions processed by a processor and may be implemented in a high-level programming language, object-oriented programming language, assembly language, or machine language. . Also, the computer program may be recorded on a tangible computer-readable recording medium (eg, a memory, a hard disk, a magnetic/optical medium, or a solid-state drive (SSD)).

따라서 도 3 내지 도 6을 통해 설명된 실시예에 따른 인공신경망을 이용한 객체 카운팅 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다.Therefore, the object counting method using the artificial neural network according to the embodiment described with reference to FIGS. 3 to 6 can be implemented by executing the computer program as described above by a computing device. A computing device may include at least some of a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to a low-speed bus and a storage device. Each of these components are connected to each other using various buses and may be mounted on a common motherboard or mounted in any other suitable manner.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다.Here, the processor may process commands within the computing device, for example, to display graphic information for providing a GUI (Graphic User Interface) on an external input/output device, such as a display connected to a high-speed interface. Examples include instructions stored in memory or storage devices. As another example, multiple processors and/or multiple buses may be used along with multiple memories and memory types as appropriate. Also, the processor may be implemented as a chipset comprising chips including a plurality of independent analog and/or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다.Memory also stores information within the computing device. In one example, the memory may consist of a volatile memory unit or a collection thereof. As another example, the memory may be composed of a non-volatile memory unit or a collection thereof. Memory may also be another form of computer readable medium, such as, for example, a magnetic or optical disk.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다.Also, the storage device may provide a large amount of storage space to the computing device. A storage device may be a computer-readable medium or a component that includes such a medium, and may include, for example, devices in a storage area network (SAN) or other components, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, flash memory, or other semiconductor memory device or device array of the like.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above-described embodiments are for illustrative purposes, and those skilled in the art to which the above-described embodiments belong can easily transform into other specific forms without changing the technical spirit or essential features of the above-described embodiments. You will understand. Therefore, it should be understood that the above-described embodiments are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 명세서를 통해 보호받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.The scope to be protected through this specification is indicated by the following claims rather than the detailed description above, and should be construed to include all changes or modifications derived from the meaning and scope of the claims and equivalent concepts thereof. .

10: 촬영 장치 100: 컴퓨팅 장치
110: 입출력부 120: 제어부
130: 저장부
10: photographing device 100: computing device
110: input/output unit 120: control unit
130: storage unit

Claims (20)

인공신경망을 이용한 객체 카운팅 방법에 있어서,
컴퓨팅 장치가 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출하는 단계;
상기 컴퓨팅 장치가 상기 이미지 프레임별로 객체들을 인식하는 단계;
상기 컴퓨팅 장치가 상기 이미지 프레임별로 인식된 객체들의 중심점을 검출하는 단계;
상기 컴퓨팅 장치가 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하는 단계; 및
상기 컴퓨팅 장치가 상기 검출된 중심점들의 개수와, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 객체 카운팅을 수행하는 단계를 포함하며,
상기 객체들을 인식하는 단계는, 상기 이미지 프레임들의 일부 영역을 디텍팅 영역으로 설정하는 단계; 및 상기 디텍팅 영역 내에서만 상기 객체들을 인식하는 단계를 포함하며,
상기 디텍팅 영역의 길이는, 상기 객체들의 너비의 최대값과 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값의 합보다는 크게 설정되고,
상기 객체들의 중심점을 검출하는 단계는, 상기 이미지 프레임들의 일부 영역을 카운팅 영역으로 설정하는 단계, 및 상기 카운팅 영역 내에서만 상기 객체들의 중심점을 검출하는 단계를 포함하며,
상기 카운팅 영역의 길이는, 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값보다는 크고, 상기 디텍팅 영역의 길이보다는 작게 설정되는, 방법.
In the object counting method using an artificial neural network,
extracting, by a computing device, image frames at predetermined time intervals from a photographed image;
recognizing objects by the image frame by the computing device;
detecting, by the computing device, center points of objects recognized for each image frame;
determining, by the computing device, center points corresponding to the same object among center points detected in different image frames, based on a result of comparing locations of the center points between successive image frames; and
Performing, by the computing device, object counting based on the number of the detected center points and a result of identifying center points corresponding to the same object;
Recognizing the objects may include setting some areas of the image frames as a detecting area; And recognizing the objects only within the detecting area,
The length of the detection area is set to be greater than the sum of the maximum value of the widths of the objects and the maximum value of the distance moved by the object during consecutive image frames,
The detecting of the center points of the objects includes setting a partial area of the image frames as a counting area, and detecting the center points of the objects only within the counting area,
The length of the counting area is set to be larger than the maximum value of the distance moved by the object during consecutive image frames and smaller than the length of the detecting area.
제1항에 있어서,
상기 동일 객체에 해당되는 중심점들을 파악하는 단계는,
상기 연속된 이미지 프레임 간 중심점들의 이격거리를 산출하는 단계;
상기 산출된 이격거리가 미리 설정된 기준값보다 작다면, 상기 이격거리에 대응되는 중심점들이 동일 객체에 대한 중심점인 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 방법.
According to claim 1,
The step of identifying the center points corresponding to the same object,
Calculating a separation distance between center points between the consecutive image frames;
and determining that center points corresponding to the separation distance are center points of the same object if the calculated separation distance is smaller than a preset reference value.
제2항에 있어서,
상기 기준값은, 동일 이미지 프레임 내에서 서로 다른 객체들의 중심점 간 이격거리의 최소값에 0.5를 곱한 값으로 설정되는 것을 특징으로 하는 방법.
According to claim 2,
The reference value is set to a value obtained by multiplying 0.5 by a minimum value of a separation distance between center points of different objects within the same image frame.
제2항에 있어서,
상기 기준값은, 상기 객체들의 너비의 최소값에 0.5를 곱한 값으로 설정되는 것을 특징으로 하는 방법.
According to claim 2,
The reference value is set to a value obtained by multiplying the minimum value of the width of the objects by 0.5.
삭제delete 삭제delete 제1항에 있어서,
상기 객체 카운팅을 수행하는 단계는,
상기 이미지 프레임별로 검출된 중심점들의 개수를 예비 카운팅 값으로 결정하는 단계;
상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 상기 이미지 프레임별로 카운팅 보정값을 결정하는 단계; 및
모든 이미지 프레임들에 대해서 상기 예비 카운팅 값 및 상기 카운팅 보정값을 합하여 최종 카운팅 값을 산출하는 단계를 포함하는 것을 특징으로 하는 방법.
According to claim 1,
The step of performing the object counting,
determining the number of center points detected for each image frame as a preliminary counting value;
determining a counting correction value for each image frame based on a result of identifying center points corresponding to the same object; and
and calculating a final counting value by summing the preliminary counting value and the counting correction value for all image frames.
제1항에 있어서,
상기 객체 카운팅을 수행하는 단계는,
상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 중심점들 각각의 이동방향을 파악하는 단계; 및
상기 파악된 이동방향별로 객체의 개수를 카운팅하는 단계를 포함하는 것을 특징으로 하는 방법.
According to claim 1,
The step of performing the object counting,
determining the movement direction of each center point based on a result of identifying center points corresponding to the same object; and
and counting the number of objects for each identified movement direction.
제1항에 있어서,
상기 객체 카운팅을 수행하는 단계는,
상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 중심점들 각각의 이동방향을 파악하는 단계; 및
상기 파악된 이동방향에 기초하여 출입구를 드나든 객체의 개수를 카운팅하는 단계를 포함하는 것을 특징으로 하는 방법.
According to claim 1,
The step of performing the object counting,
determining the movement direction of each center point based on a result of identifying center points corresponding to the same object; and
and counting the number of objects entering and exiting the entrance based on the identified movement direction.
컴퓨터에 제1항에 기재된 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a program for executing the method according to claim 1 is recorded on a computer. 컴퓨팅 장치에 의해 수행되며, 제1항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.A computer program executed by a computing device and stored in a medium for performing the method according to claim 1 . 인공신경망을 이용한 객체 카운팅 방법을 수행하기 위한 컴퓨팅 장치에 있어서,
객체들을 촬영한 촬영 영상을 수신하고, 객체 카운팅 결과를 출력하기 위한 입출력부;
상기 촬영 영상으로부터 객체를 카운팅하기 위한 프로그램이 저장되는 저장부; 및
적어도 하나의 프로세서를 포함하는 제어부를 포함하며,
상기 제어부는,
상기 촬영 영상으로부터 일정 시간 간격의 이미지 프레임들을 추출하고, 상기 이미지 프레임별로 객체들을 인식하고, 상기 이미지 프레임별로 인식된 객체들의 중심점을 검출하고, 연속된 이미지 프레임 간 중심점들의 위치를 비교한 결과에 기초하여, 서로 다른 이미지 프레임에서 검출된 중심점들 중에서 동일 객체에 해당되는 중심점들을 파악하고, 상기 검출된 중심점들의 개수와, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 객체 카운팅을 수행하며,
상기 제어부는 상기 객체들을 인식함에 있어서, 상기 이미지 프레임들의 일부 영역을 디텍팅 영역으로 설정하고, 상기 디텍팅 영역 내에서만 상기 객체들을 인식하며 상기 디텍팅 영역의 길이는, 상기 객체들의 너비의 최대값과 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값의 합보다 크게 설정되고,
상기 제어부는 상기 객체들의 중심점을 검출함에 있어서, 상기 이미지 프레임들의 일부 영역을 카운팅 영역으로 설정하고, 상기 카운팅 영역 내에서만 상기 객체들의 중심점을 검출하며, 상기 카운팅 영역의 길이는, 연속된 이미지 프레임 동안에 객체가 이동한 거리의 최대값보다는 크고, 상기 디텍팅 영역의 길이보다는 작게 설정되는, 컴퓨팅 장치.
A computing device for performing an object counting method using an artificial neural network,
an input/output unit for receiving a photographed image of objects and outputting an object counting result;
a storage unit storing a program for counting objects from the photographed image; and
A control unit including at least one processor,
The control unit,
Based on a result of extracting image frames at a predetermined time interval from the captured image, recognizing objects for each image frame, detecting the center points of the recognized objects for each image frame, and comparing the locations of the center points between consecutive image frames. So, among the center points detected in different image frames, center points corresponding to the same object are identified, and object counting is performed based on the number of the detected center points and the result of determining the center points corresponding to the same object,
In recognizing the objects, the control unit sets a partial area of the image frames as a detection area, recognizes the objects only within the detection area, and the length of the detection area is the maximum value of the width of the objects. It is set greater than the sum of the maximum values of the distances the object has moved during continuous image frames,
In detecting the center points of the objects, the control unit sets a partial area of the image frames as a counting area, detects the center points of the objects only within the counting area, and the length of the counting area is determined during consecutive image frames. The computing device, which is set to be greater than the maximum value of the distance moved by the object and smaller than the length of the detecting area.
제12항에 있어서,
상기 제어부는 상기 동일 객체에 해당되는 중심점들을 파악함에 있어서,
상기 연속된 이미지 프레임 간 중심점들의 이격거리를 산출하고, 상기 산출된 이격거리가 미리 설정된 기준값보다 작다면, 상기 이격거리에 대응되는 중심점들이 동일 객체에 대한 중심점인 것으로 판단하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 12,
In determining the center points corresponding to the same object, the controller
Calculating the separation distance of the center points between the consecutive image frames, and determining that the center points corresponding to the separation distance are center points of the same object if the calculated separation distance is smaller than a preset reference value. .
제13항에 있어서,
상기 기준값은, 동일 이미지 프레임 내에서 서로 다른 객체들의 중심점 간 이격거리의 최소값에 0.5를 곱한 값으로 설정되는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 13,
The reference value is set to a value obtained by multiplying 0.5 by a minimum value of a separation distance between center points of different objects within the same image frame.
제13항에 있어서,
상기 기준값은, 상기 객체들의 너비의 최소값에 0.5를 곱한 값으로 설정되는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 13,
The reference value is set to a value obtained by multiplying a minimum value of the width of the objects by 0.5.
삭제delete 삭제delete 제12항에 있어서,
상기 제어부는 상기 객체 카운팅을 수행함에 있어서,
상기 이미지 프레임별로 검출된 중심점들의 개수를 예비 카운팅 값으로 결정하고, 상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 상기 이미지 프레임별로 카운팅 보정값을 결정하고, 모든 이미지 프레임들에 대해서 상기 예비 카운팅 값 및 상기 카운팅 보정값을 합하여 최종 카운팅 값을 산출하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 12,
In performing the object counting, the controller
The number of center points detected for each image frame is determined as a preliminary counting value, a counting correction value is determined for each image frame based on a result of identifying center points corresponding to the same object, and the preliminary counting Computing device, characterized in that for calculating a final counting value by summing the value and the counting correction value.
제12항에 있어서,
상기 제어부는 상기 객체 카운팅을 수행함에 있어서,
상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 중심점들 각각의 이동방향을 파악하고, 상기 파악된 이동방향별로 객체의 개수를 카운팅하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 12,
In performing the object counting, the controller
Based on a result of identifying the center points corresponding to the same object, a moving direction of each of the center points is determined, and the number of objects is counted for each of the determined moving directions.
제12항에 있어서,
상기 제어부는 상기 객체 카운팅을 수행함에 있어서,
상기 동일 객체에 해당되는 중심점들을 파악한 결과에 기초하여 중심점들 각각의 이동방향을 파악하고, 상기 파악된 이동방향에 기초하여 출입구를 드나든 객체의 개수를 카운팅하는 것을 특징으로 하는 컴퓨팅 장치.
According to claim 12,
In performing the object counting, the controller
Based on a result of identifying the center points corresponding to the same object, a movement direction of each center point is identified, and the number of objects that have entered and exited the entrance is counted based on the identified movement direction.
KR1020220033711A 2021-11-11 2022-03-18 Method for counting object using artificial neural network, and computing apparatus for performing the same KR102513803B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210154588 2021-11-11
KR20210154588 2021-11-11

Publications (1)

Publication Number Publication Date
KR102513803B1 true KR102513803B1 (en) 2023-03-27

Family

ID=85799868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220033711A KR102513803B1 (en) 2021-11-11 2022-03-18 Method for counting object using artificial neural network, and computing apparatus for performing the same

Country Status (1)

Country Link
KR (1) KR102513803B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007065878A (en) * 2005-08-30 2007-03-15 Central Res Inst Of Electric Power Ind Moving object counting method on water surface or underwater, and counting device and counting program
JP2012048476A (en) * 2010-08-26 2012-03-08 Canon Inc Image processing apparatus
JP2019125217A (en) * 2018-01-18 2019-07-25 日本信号株式会社 Vehicle detection counting device and parking lot management system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007065878A (en) * 2005-08-30 2007-03-15 Central Res Inst Of Electric Power Ind Moving object counting method on water surface or underwater, and counting device and counting program
JP2012048476A (en) * 2010-08-26 2012-03-08 Canon Inc Image processing apparatus
JP2019125217A (en) * 2018-01-18 2019-07-25 日本信号株式会社 Vehicle detection counting device and parking lot management system

Similar Documents

Publication Publication Date Title
US20200082549A1 (en) Efficient object detection and tracking
US20160275721A1 (en) 3d face model reconstruction apparatus and method
US10846515B2 (en) Efficient face detection and tracking
KR102476022B1 (en) Face detection method and apparatus thereof
US20190138821A1 (en) Camera blockage detection for autonomous driving systems
US10540540B2 (en) Method and device to determine landmark from region of interest of image
KR101969623B1 (en) Face recognition with parallel detection and tracking, and/or grouped feature motion shift tracking
JP7365055B2 (en) video object detection
US10347100B2 (en) Information processing system, method and computer readable medium for determining whether moving bodies appearing in first and second videos are the same or not
KR20160033800A (en) Method for counting person and counting apparatus
US20220051413A1 (en) Object tracking device, object tracking method, and recording medium
KR20160086605A (en) Method of recognizing object and apparatus thereof
KR20180109658A (en) Apparatus and method for image processing
US10691956B2 (en) Information processing apparatus, information processing system, information processing method, and storage medium having determination areas corresponding to waiting line
KR101821242B1 (en) Method for counting vehicles based on image recognition and apparatus using the same
KR102513803B1 (en) Method for counting object using artificial neural network, and computing apparatus for performing the same
US11288816B2 (en) Image detection device, image detection method and storage medium storing program
KR101412369B1 (en) Method and apparatus for decting object in image
KR102581154B1 (en) Method and Apparatus for Object Detection Using Model Ensemble
JP7063267B2 (en) Image processing equipment, image processing systems, image processing methods and computer programs
CN113869163B (en) Target tracking method and device, electronic equipment and storage medium
KR102343348B1 (en) Method of acquiring infrared image data, apparatus for acquiring infrared image data, and computer program for the method
US11620812B2 (en) Online distillation using frame cache
WO2019003709A1 (en) Information processing device, control method, and program
JP7279892B2 (en) FACE POSITION DETECTION DEVICE, FACE POSITION DETECTION METHOD, AND PROGRAM

Legal Events

Date Code Title Description
AMND Amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant