KR101829231B1 - System and method for blob detecting - Google Patents
System and method for blob detecting Download PDFInfo
- Publication number
- KR101829231B1 KR101829231B1 KR1020160083352A KR20160083352A KR101829231B1 KR 101829231 B1 KR101829231 B1 KR 101829231B1 KR 1020160083352 A KR1020160083352 A KR 1020160083352A KR 20160083352 A KR20160083352 A KR 20160083352A KR 101829231 B1 KR101829231 B1 KR 101829231B1
- Authority
- KR
- South Korea
- Prior art keywords
- blob
- line
- list
- information
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
이미지에 포함되어 있는 블롭을 고속/저비용으로 검출함으로써 저가의 임베디드 보드에서도 구현이 가능한 블롭 검출 방법 및 시스템이 개시된다. 본 발명의 일 측면에 따르면, N개의 행(row)으로 구성되는 판별 대상 이미지에 포함된 블롭(blob)을 판별하는 블롭 검출 방법으로서, 블롭 검출 시스템이, 블롭 리스트를 초기화하는 단계 및 상기 블롭 검출 시스템이, 상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행하는 단계를 포함하되, 상기 판별 대상 이미지의 i번째 행(1<=i<=N)에 대한 행 처리 단계는, (a) 상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 정보를 생성하는 단계; 및 (b) 상기 각각의 블롭 파트에 대하여, 상기 블롭 리스트에 포함되어 있는 블롭 중 상기 블롭 파트와 연결된 연결 블롭을 판단하고, 상기 블롭 파트와 연결된 연결 블롭이 존재하지 않는 경우, 상기 블롭 파트의 정보를 상기 블롭 리스트에 추가하고, 상기 블롭 파트와 연결된 연결 블롭이 존재하는 경우, 상기 블롭 파트와 상기 연결 블롭을 결합한 결합 블롭의 정보를 생성하고, 상기 결합 블롭의 정보를 상기 결합 블롭의 정보를 상기 블롭 리스트에 추가하고, 상기 연결 블롭의 정보를 상기 블롭 리스트에서 제거하는 단계를 포함하는 블롭 검출 방법이 제공된다.A blob detection method and system capable of being implemented in a low-cost embedded board by detecting the blob included in the image at a high speed / low cost. According to an aspect of the present invention, there is provided a blob detection method for determining a blob included in a discrimination target image composed of N rows, the blob detection system including a step of initializing a blob, The system comprising a step of performing a row processing step for each of the first row to the Nth row of the discrimination target image, wherein the row for the i-th row (1 < = i < = N) The processing step includes the steps of: (a) generating information of a blob part constituted by each line included in the i-th row; And (b) for each of the blob parts, determining a connection blob connected to the blob part of the blob included in the blob list, and if there is no connection blob connected to the blob part, To the blob list, and if there is a connection blob connected to the blob part, generates information of a combination blob that combines the blob part and the connection blob, Adding to the blob list, and removing information of the connecting blob from the blob list.
Description
본 발명은 이미지에 포함되어 있는 블롭을 검출하는 시스템 및 방법에 관한 것이다. 보다 상세하게는 이미지에 포함되어 있는 블롭을 고속/저비용으로 검출함으로써 저가의 임베디드 보드에서도 구현이 가능한 블롭 검출 방법 및 시스템에 관한 것이다.The present invention relates to a system and method for detecting blobs included in an image. And more particularly, to a blob detection method and system that can be implemented in a low-cost embedded board by detecting blobs included in an image at a high speed / low cost.
컴퓨터 비전 분야에서, 블롭 검출 방법(blob detection method)은 디지털 이미지에서 주변 영역과 구분될 수 있는 속성(예를 들면, 밝기(brightness), 색상(color) 등)을 가지는 영역을 검출하는 방법을 말하며, 오브젝트 인식, 오브젝트 추적과 같은 응용 분야에서 널리 사용되고 있다.In the field of computer vision, the blob detection method refers to a method of detecting an area having attributes (e.g., brightness, color, etc.) that can be distinguished from surrounding areas in a digital image , Object recognition, object tracking, and the like.
종래의 블롭 검출 장치들은 카메라에서 촬영되는 전체 영상을 수신하여 이로부터 블롭을 검출하는 방식을 이용하는 것이 일반적인데, 이러한 방식의 경우 대용량의 데이터를 처리해야 하므로 처리 비용(예를 들면, 컴퓨팅 파워, 처리 시간 등)이 매우 높아지게 된다. 또한 이미지를 촬영하는 카메라 장치로부터 블롭 검출 장치로 이미지 데이터를 전송하기 위해서는 높은 대역폭을 가지는 고속의 인터페이스를 이용해야 한다.Conventional blob detection devices generally use a method of receiving a whole image photographed by a camera and detecting a blob therefrom. In this method, since a large amount of data must be processed, the processing cost (for example, Time, etc.) becomes very high. In addition, in order to transfer image data from a camera device that captures an image to a blob detection device, a high-speed interface having a high bandwidth must be used.
본 발명이 해결하고자 하는 기술적 과제는 고속/저비용으로 이미지에 포함된 블롭을 검출함으로써 저가의 임베디드 보드에서도 구현이 가능한 블롭 검출 방법 및 시스템을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a blob detection method and system that can be implemented in a low-cost embedded board by detecting blobs included in an image at high speed and low cost.
본 발명의 일 측면에 따르면, N개의 행(row)으로 구성되는 판별 대상 이미지에 포함된 블롭(blob)을 판별하는 블롭 검출 방법으로서, 블롭 검출 시스템이, 블롭 리스트를 초기화하는 단계 및 상기 블롭 검출 시스템이, 상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행하는 단계를 포함하되, 상기 판별 대상 이미지의 i번째 행(1<=i<=N)에 대한 행 처리 단계는, (a) 상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 생성하는 단계 및 (b) 상기 각각의 블롭 파트에 대하여, 상기 블롭 리스트에 포함되어 있는 블롭 중 상기 블롭 파트와 연결된 연결 블롭을 판단하고, 상기 블롭 파트와 연결된 연결 블롭이 존재하지 않는 경우, 상기 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 블롭 파트와 연결된 연결 블롭이 존재하는 경우, 상기 블롭 파트와 상기 연결 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 연결 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하는 단계를 포함하는 블롭 검출 방법이 제공된다.According to an aspect of the present invention, there is provided a blob detection method for determining a blob included in a discrimination target image composed of N rows, the blob detection system including a step of initializing a blob, The system comprising a step of performing a row processing step for each of the first row to the Nth row of the discrimination target image, wherein the row for the i-th row (1 < = i < = N) The processing step includes the steps of: (a) generating blob data of a blob part constituted by each line included in the i-th row; and (b) calculating, for each blob part, Determining a connection blob connected to the blob part and adding the blob data of the blob part to the blob list when the connection blob connected to the blob part does not exist, The method comprising: generating blob data of a combined blob that combines the blob part and the concatenated blob when the concatenated concatenated blob exists, adding blob data of the concatenated blob to the blob list, In the blob detection method.
일 실시예에서, 상기 블롭 리스트를 초기화하는 단계는, 상기 블롭 리스트, 제1라인 리스트 및 제2라인 리스트를 초기화하는 단계를 포함하고, 상기 (b) 단계는,상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하는 단계, 상기 i번째 행에 포함된 각 라인의 라인 정보가 포함되도록 상기 제1 라인 리스트를 구성하는 단계-여기서, 상기 라인 정보는 해당 라인의 위치, 길이 및 해당 라인이 속해 있는 블롭 정보를 포함함-, 상기 제1라인 리스트에 포함된 각각의 제1 라인 정보 및 상기 제2라인 리스트에 포함된 각각의 제2라인 정보에 대하여, 상기 제1라인 정보에 해당하는 제1라인과 상기 제2라인 정보에 해당하는 제2라인이 연결되어 있는지 여부를 판단하고, 연결된 경우 상기 제1라인 정보에 포함된 블롭 정보 및 상기 제2라인 정보에 포함된 블롭 정보에 기초하여 상기 제1라인이 속해 있는 블롭과 상기 제2라인이 속해 있는 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 제1라인이 속해 있는 블롭의 블롭 데이터와 상기 제2라인이 속해 있는 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하고, 상기 제1라인 정보의 블롭 정보 및 상기 제2라인 정보의 블롭 정보를 결합 블롭의 블롭 정보로 대체하는 단계 및 상기 제2라인 리스트가 제1라인 리스트에 포함된 항목을 포함하도록 상기 제2라인 리스트를 재구성하는 단계를 포함할 수 있다.In one embodiment, the step of initializing the bloblist includes initializing the blob list, the first line list and the second line list, and the step (b) includes the steps of: Adding the blob data of the blob part constituting the line to the blob list, and constructing the first line list so that the line information of each line included in the i-th row is included therein, Wherein the first line information includes a position and a length of a line, and blob information to which the line belongs, for each first line information included in the first line list and each second line information included in the second line list, And determines whether a first line corresponding to the first line information and a second line corresponding to the second line information are connected to each other. If the first line corresponds to the blob information included in the first line information Generates blob data of a combined blob in which a bloom to which the first line belongs and a bloom to which the second line belongs is generated based on the blob information included in the second line information, And removes blob data of the bloom to which the first line belongs and blob data of the blob to which the second line belongs from the blob list, and adds the blob information of the first line information and the second line information Replacing the blob information of the first line list with the blob information of the combining blob, and reconstructing the second line list so that the second line list includes items included in the first line list.
일 실시예에서, 카메라에 설치되는 이미지 처리 시스템이, 상기 카메라가 촬영한 판별 대상 이미지에 상응하는 로우 데이터(Raw Data)를 런 렝스 인코딩(Run Length Encoding)하는 단계 및 상기 이미지 처리 시스템이, 런 렝스 인코딩된 데이터를 소정의 인터페이스를 통해 상기 블롭 검출 시스템으로 전송하는 단계를 더 포함할 수 있다.In one embodiment, an image processing system installed in a camera performs Run Length Encoding of raw data corresponding to an image to be discriminated which is photographed by the camera, And transmitting the length encoded data to the blob detection system through a predetermined interface.
일 실시예에서, 상기 이미지 처리 시스템이, 상기 카메라가 촬영한 판별 대상 이미지에 상응하는 로우 데이터를 런 렝스 인코딩하는 단계는, 상기 카메라가 촬영한 판별 대상 이미지를 그레이 스케일로 변환하는 단계 및 그레이 스케일로 변환된 이미지의 로우 데이터를 런 렝스 인코딩하는 단계를 포함할 수 있다.In one embodiment, the step of the image processing system performing run length encoding of raw data corresponding to the discrimination target image photographed by the camera includes the steps of converting the discrimination target image photographed by the camera into grayscale, Lt; RTI ID = 0.0 > RL < / RTI >
일 실시예에서, 상기 런 렝스 인코딩된 데이터는, 상기 판별 대상 이미지에 포함된 각 수평 라인에 상응하는 런 렝스 코드로 구성되며, 상기 런 렝스 코드는, 해당 수평 라인의 위치 정보 및 길이 정보를 포함할 수 있다.In one embodiment, the run-length-encoded data is composed of a run-length code corresponding to each horizontal line included in the discrimination target image, and the run-length code includes positional information and length information of the corresponding horizontal line can do.
본 발명의 다른 일 측면에 따르면, 데이터 처리장치에 설치되며 상술한 방법을 수행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공된다.According to another aspect of the present invention, a computer program installed in a data processing apparatus and stored in a computer-readable recording medium for performing the above-described method is provided.
본 발명의 다른 일 측면에 따르면, 블롭 검출 시스템으로서, 프로세서 및 상기 프로세서에 의하여 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하며, 상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 블롭 검출 시스템이 상술한 방법을 수행하도록 하는 블롭 검출 시스템이 제공된다.According to another aspect of the present invention there is provided a blob detection system comprising a processor and a memory for storing a computer program executed by the processor, wherein the computer program, when executed by the processor, A blob detection system is provided for causing the method described above to be performed.
본 발명의 다른 일 측면에 따르면, N개의 행으로 구성되는 판별 대상 이미지에 포함된 블롭(blob)을 판별하는 블롭 검출 시스템으로서, 상기 판별 대상 이미지에 상응하는 데이터를 저장하는 저장모듈, 블롭 리스트를 초기화하고, 상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행하는 제어모듈을 포함하되, 상기 판별 대상 이미지의 i번째 행(1<=i<=N)에 대한 행 처리 단계는, (a) 상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 생성하는 단계 및 (b) 상기 각각의 블롭 파트에 대하여, 상기 블롭 리스트에 포함되어 있는 블롭 중 상기 블롭 파트와 연결된 연결 블롭을 판단하고, 상기 블롭 파트와 연결된 연결 블롭이 존재하지 않는 경우, 상기 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 블롭 파트와 연결된 연결 블롭이 존재하는 경우, 상기 블롭 파트와 상기 연결 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 연결 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하는 단계를 포함하는 블롭 검출 시스템이 제공된다.According to another aspect of the present invention, there is provided a blob detection system for discriminating a blob included in a discrimination target image composed of N rows, comprising: a storage module for storing data corresponding to the discrimination object image; And performing a row processing step for each of the first row to the N-th row of the discrimination target image, wherein the i-th row (1 <= i <= N) of the discrimination target image The row processing step includes the steps of: (a) generating blob data of a blob part constituted by each line included in the i-th row; and (b) calculating, for each blob part, Determining a connecting blob connected to the blob part, adding blob data of the blob part to the blob list when there is no connecting blob connected to the blob part, Generating blob data of a combined blob in which the blob part and the connecting blob are combined, adding the blob data of the combining blob to the blob list when the connecting blob connected to the blob part exists, Removing from the blob list. ≪ Desc /
일 실시예에서, 상기 제어모듈은, 제1라인 리스트 및 제2라인 리스트를 더 초기화하고, 상기 (b) 단계는, 상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하는 단계, 상기 i번째 행에 포함된 각 라인의 라인 정보가 포함되도록 상기 제1 라인 리스트를 구성하는 단계-여기서, 상기 라인 정보는 해당 라인의 위치, 길이 및 해당 라인이 속해 있는 블롭 정보를 포함함- 및 상기 제1라인 리스트에 포함된 각각의 제1 라인 정보 및 상기 제2라인 리스트에 포함된 각각의 제2라인 정보에 대하여, 상기 제1라인 정보에 해당하는 제1라인과 상기 제2라인 정보에 해당하는 제2라인이 연결되어 있는지 여부를 판단하고, 연결된 경우 상기 제1라인 정보에 포함된 블롭 정보 및 상기 제2라인 정보에 포함된 블롭 정보에 기초하여 상기 제1라인이 속해 있는 블롭과 상기 제2라인이 속해 있는 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 제1라인이 속해 있는 블롭의 블롭 데이터와 상기 제2라인이 속해 있는 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하고, 상기 제1라인 정보의 블롭 정보 및 상기 제2라인 정보의 블롭 정보를 결합 블롭의 블롭 정보로 대체하는 단계를 포함할 수 있다.In one embodiment, the control module further initializes a first line list and a second line list, and the step (b) further comprises the steps of: (i) initializing the blob data of the blob part constituted by each line included in the i- Forming a first line list including line information of each line included in the i-th row, wherein the line information includes a position and a length of the corresponding line, Blob information, and for each of the first line information included in the first line list and each second line information included in the second line list, a first line corresponding to the first line information Based on the blob information included in the first line information and the blob information included in the second line information when the first line information and the second line corresponding to the second line information are connected, Generating blob data of a combined blob that combines the bloom to which the first line belongs and the bloom to which the second line belongs, adds the blob data of the combined blob to the blob list, And replacing the blob information of the first line information and the blob information of the second line information with the blob information of the combined blob, . ≪ / RTI >
일 실시예에서, 상기 판별 대상 이미지에 상응하는 데이터는, 카메라에 설치되는 이미지 처리 시스템으로부터 수신되는 런 렝스 인코딩된 데이터이며, 상기 이미지 처리 시스템은, 상기 카메라가 촬영한 판별 대상 이미지에 상응하는 로우 데이터를 런 렝스 인코딩하고, 런 렝스 인코딩된 데이터를 소정의 인터페이스를 통해 상기 블롭 검출 시스템으로 전송할 수 있다.In one embodiment, the data corresponding to the discrimination target image is run length encoded data received from an image processing system installed in the camera, and the image processing system includes: Run length encoding the data, and transmit the run length encoded data to the blob detection system over a predetermined interface.
일 실시예에서, 상기 이미지 처리 시스템은, 상기 카메라가 촬영한 판별 대상 이미지를 그레이 스케일로 변환하고, 그레이 스케일로 변환된 이미지의 로우 데이터를 런 렝스 인코딩할 수 있다.In one embodiment, the image processing system may convert the discrimination target image photographed by the camera into grayscale, and run-length encode the raw data of the grayscale-converted image.
일 실시예에서, 상기 런 렝스 인코딩된 데이터는, 상기 판별 대상 이미지에 포함된 각 수평 라인에 상응하는 런 렝스 코드로 구성되며, 상기 런 렝스 코드는, 해당 수평 라인의 위치 정보 및 길이 정보를 포함할 수 있다.In one embodiment, the run-length-encoded data is composed of a run-length code corresponding to each horizontal line included in the discrimination target image, and the run-length code includes positional information and length information of the corresponding horizontal line can do.
본 발명의 일 실시예에 따르면, 고속/저비용으로 이미지에 포함된 블롭을 검출할 수 있다. 따라서, 구현 비용이 저렴한 임베디드 보드에서도 구현이 가능한 블롭 검출 방법 및 시스템을 제공할 수 있다.According to one embodiment of the present invention, it is possible to detect blobs included in an image at high / low cost. Therefore, it is possible to provide a blob detection method and system that can be implemented in an embedded board having a low implementation cost.
또한 본 발명의 일 실시예에 따르면, 런 렝쓰 인코딩된 데이터만을 이용하여 손쉽게 블롭을 검출할 수 있다. 따라서, 카메라에서 블롭 검출 시스템 측으로 이미지 데이터를 전송하기 위하여 높은 비용을 가지는 고속의 인터페이스를 사용하는 대신 대역폭이 낮은 저속의 인터페이스를 사용할 수 있는 장점이 있다.Also, according to an embodiment of the present invention, it is possible to easily detect a blob using only run-length encoded data. Therefore, there is an advantage that a low-speed interface having a low bandwidth can be used instead of using a high-speed interface having a high cost in order to transmit image data from the camera to the blob detection system.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 블롭 판별 방법의 동작 환경을 개략적으로 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블롭 판별 시스템의 개략적인 구조를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 블롭 판별 시스템이 수행하는 블롭 판별 방법을 나타내는 흐름도이다.
도 4는 판별 대상 이미지의 일 예를 도시한 도면이며, 도 5는 본 발명의 일 실시예에 따른 블롭 판별 시스템이 도 4에 도시된 판별 대상 이미지를 대상으로 블롭 디텍션을 수행하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 블롭 판별 방법을 보다 구체적으로 나타낸 흐름도이다.BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited in the description of the invention.
FIG. 1 is a view for schematically explaining an operation environment of a blob discrimination method according to an embodiment of the present invention.
2 is a block diagram showing a schematic structure of a blob discrimination system according to an embodiment of the present invention.
3 is a flowchart illustrating a blob discrimination method performed by the blob discrimination system according to an embodiment of the present invention.
FIG. 4 illustrates an example of an image to be discriminated. FIG. 5 illustrates a process of performing a blob detection on the discrimination target image shown in FIG. 4 according to an exemplary embodiment of the present invention. FIG.
6 is a flowchart illustrating a method for determining a blob according to an embodiment of the present invention.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of features, numbers, steps, operations, components, parts, or combinations thereof.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.Also, in this specification, when any one element 'transmits' data to another element, the element may transmit the data directly to the other element, or may be transmitted through at least one other element And may transmit the data to the other component. Conversely, when one element 'directly transmits' data to another element, it means that the data is transmitted to the other element without passing through another element in the element.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, the present invention will be described in detail with reference to the embodiments of the present invention with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.
도 1은 본 발명의 일 실시예에 따른 블롭 판별 방법의 동작 환경을 개략적으로 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 일 실시예에 따른 블롭 판별 방법을 구현하기 위하여, 블롭 판별 시스템(100)이 구비될 수 있다.FIG. 1 is a view for schematically explaining an operation environment of a blob discrimination method according to an embodiment of the present invention. Referring to FIG. 1, a
일 실시예에서, 상기 블롭 판별 시스템(100)은 프로그래머블 논리 요소와 프로그래밍 가능한 내부선, 메모리 블록으로 된 메모리 요소가 포함된 반도체 소자인 FPGA(Field-Programmable Gate Array) 또는 FPGA를 내장한 임베디드 시스템으로 구현될 수 있다.In one embodiment, the
상기 블롭 판별 시스템(100)은 디지털 이미지에 포함된 블롭을 판별하는 블롭 디텍션(blog detection)을 수행할 수 있다. 블롭 디텍션은 디지털 이미지에서 주변 영역과 구분될 수 있는 속성(예를 들면, 밝기(brightness), 색상(color) 등)을 가지는 영역을 검출하는 방법을 의미할 수 있다. 하나의 이미지 내에서 블롭은 동일하거나 근사적으로 동일한 속성을 가질 수 있다.The
일 실시예에서 상기 블롭 판별 시스템(100)은, 도 1에 도시된 바와 같이, 카메라 또는 카메라 모듈(300)이 촬영한 이미지에 대한 블롭 디텍션을 수행할 수 있다.In one embodiment, the
일 실시예에서, 상기 카메라(300)에는 상기 카메라(300)에 의해 촬영된 이미지에 대한 변환, 전처리 및/또는 인코딩을 수행하는 이미지 처리 시스템(300)이 설치되어 있을 수 있다. 상기 이미지 처리 시스템(100) 역시 FPGA(Field-Programmable Gate Array) 또는 FPGA를 내장한 임베디드 시스템으로 구현될 수 있다.In one embodiment, the
일 실시예에서 상기 블롭 판별 시스템(100)은, 도 1에 도시된 바와 같이, 상기 이미지 처리 시스템(200)과 소정의 통신 인터페이스를 통해 연결되어 본 발명의 기술적 사상을 구현하는데 필요한 각종 정보, 데이터 및/또는 신호를 교환할 수 있다. 상기 블롭 판별 시스템(100)과 상기 이미지 처리 시스템(200)을 연결하는 통신 인터페이스는 USB 3.0과 같은 고속의 유선 인터페이스일 수도 있으며, USB 2.0이나 UART와 같은 저속의 유선 인터페이스일 수도 있다. 또는 경우에 따라 상기 통신 인터페이스는 무선 인터페이스일 수도 있다.1, the
상기 이미지 처리 시스템(100)은 상기 카메라에 의해 촬영된 이미지에 상응하는 로우 데이터(raw data)을 전처리(예를 들면, 변환 혹은 인코딩)한 후에 전처리된 데이터를 상기 블롭 판별 시스템(100)으로 전송할 수 있다.The
일 실시예에서, 상기 이미지 처리 시스템(200)은 전송되는 이미지 데이터의 용량을 대폭으로 줄이기 위하여 상기 카메라(300)가 촬영한 이미지에 상응하는 로우 데이터를 런 렝스 인코딩(run length encoding)할 수 있으며 런 렝스 인코딩된 데이터를 상기 블롭 판별 시스템(100)으로 전송할 수 있다.In one embodiment, the
다른 일 실시예에서, 상기 이미지 처리 시스템(200)은 상기 카메라가 촬영한 이미지를 그레이 스케일로 변환하고, 그레이 스케일로 변환된 이미지의 로우 데이터를 런 렝스 인코딩하여 상기 블롭 판별 시스템(100)으로 전송할 수도 있다. 그레이 스케일로 변환하는 과정을 거치는 경우 이미지의 용량을 더욱 줄일 수 있지만 블롭의 판별에는 큰 영향이 없기 때문이다.In another embodiment, the
이 경우 런 렝스 인코딩된 데이터는 이미지에 포함된 각 수평 라인에 상응하는 런 렝스 코드로 구성되며, 상기 런 렝스 코드는 해당 수평 라인의 위치 정보 및 길이 정보를 포함할 수 있다. 예를 들어, 런 렝스 코드는 다음의 <표 1>와 같은 구조를 가질 수 있다.In this case, the run length encoded data is composed of a run length code corresponding to each horizontal line included in the image, and the run length code may include positional information and length information of the corresponding horizontal line. For example, the run-length code may have a structure as shown in Table 1 below.
이러한 구조를 가지는 경우 런 렝스 코드 <32, 42, 15>는 (32, 42)에서 시작하는 길이 15의 수평 라인을 의미할 수 있다. 이하에서는 설명의 편의를 위하여 상기 블롭 판별 시스템(100)으로 전송되는 이미지 데이터가 <시작픽셀의 x좌표, 시작픽셀의 y좌표, 길이>의 구조를 가지는 런 렝스 코드로 구성되는 예에 대하여 설명한다. 그러나 본 발명의 기술적 사상이 이에 한정되는 것이 아님은 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 자명하게 이해할 수 있을 것이다.In this case, the run-length code <32, 42, 15> may mean a horizontal line of
한편, 도 1에서는 카메라(300)에 설치된 이미지 처리 시스템(200)과 상기 블롭 판별 시스템(100)이 소정의 통신 인터페이스를 통하여 서로 통신하는 예에 대하여 도시하고 있으나, 구현 예에 따라서는 이와 달리 상기 이미지 처리 시스템(200)과 상기 블롭 판별 시스템(100)이 하나의 시스템으로 통합된 형태로 구현될 수도 있다. 이러한 구현 예에서 상기 이미지 처리 시스템(200)은 상기 블롭 판별 시스템(100)에 포함된 모듈(예를 들면 이미지 처리 모듈)의 형태일 수 있으며, 상기 블롭 검출 시스템은 카메라(300)에 설치되거나 직접 연결되는 형태일 수 있다.1 illustrates an example in which the
한편 본 발명의 기술적 사상에 따른 블롭 판별 시스템(100) 및 블롭 판별 방법은 3D 스캐너에 이용될 수 있다. 이 경우 상기 블롭 판별 시스템(100)은 2 이상의 카메라로부터 촬영되는 이미지 데이터를 수신하여 블롭을 검출할 수 있으며, 검출된 블롭의 정보를 소정의 3D 스캐닝 장치에 제공할 수 있다. 또는 2 이상의 블롭 판별 시스템이 각각 서로 다른 카메라로부터 촬영되는 이미지 데이터를 수신하여 블롭을 검출하고 이를 3D 스캐닝 장치에 제공할 수도 있다.Meanwhile, the
또한 도 1과 달리 상기 블롭 판별 시스템(100)은 카메라(300)에 의해 촬영된 이미지가 아닌 다른 이미지 제공 장치로부터 제공된 이미지에 대한 블롭 디텍션을 수행할 수 있음은 물론이다.Also, unlike FIG. 1, it is needless to say that the
도 2는 본 발명의 일 실시예에 따른 블롭 판별 시스템(100)의 개략적인 구조를 나타내는 블록도이다. 도 2을 참조하면, 상기 블롭 판별 시스템(100)은 저장모듈(110) 및 제어모듈(120)을 포함할 수 있다. 본 발명의 실시예에 따라서는, 상기 블롭 판별 시스템(100)은 이보다 더 많은 구성요소를 포함할 수도 있음은 물론이다. 예를 들어 상기 블롭 판별 시스템(100)은 상기 이미지 처리 시스템(200)과 통신하기 위한 통신모듈(미도시)을 더 포함할 수도 있다.2 is a block diagram showing a schematic structure of a
상기 블롭 판별 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 블롭 판별 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 블롭 판별 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다. 예컨대, 저장모듈(110) 및 제어모듈(120)은 서로 다른 물리적 장치에 위치할 수도 있고, 동일한 물리적 장치에 위치할 수도 있다.The
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.In this specification, a module may mean a functional and structural combination of hardware for carrying out the technical idea of the present invention and software for driving the hardware. For example, the module may mean a logical unit of a predetermined code and a hardware resource for executing the predetermined code, and it does not necessarily mean a physically connected code or a kind of hardware. Can be easily deduced to the average expert in the field of < / RTI >
상기 제어모듈(130)은 본 발명의 일 실시예에 따른 블롭 판별 시스템(100)에 포함된 다른 구성들(예컨대, 상기 저장모듈 (110) 등)의 기능 및/또는 리소스를 제어할 수 있으며, 필요에 따라 상기 이미지 처리 시스템(200)의 기능 및/또는 리소스를 제어할 수도 있다.The control module 130 may control the functions and / or resources of other configurations (e.g., the storage module 110) included in the
상기 저장모듈(110)은 블롭 디텍션의 대상이 되는 판별 대상 이미지에 상응하는 데이터를 저장할 수 있다. 예를 들어 상기 저장모듈(110)은 상기 이미지 처리 시스템(200)으로부터 수신한 이미지 데이터를 저장할 수 있다. 상기 판별 대상 이미지는 N개의 행(N은 정수)으로 구성될 수 있으며, 상기 저장모듈(110)이 저장하는 데이터는 상술한 바와 같이 런 렝스 인코딩된 데이터일 수 있다.The
상기 제어모듈(120)은 상기 저장모듈(110)이 저장한 이미지의 데이터에 기초하여 상기 판별 대상 이미지에 포함된 블롭을 판별할 수 있으며, 판별한 블롭의 데이터를 포함하는 블롭 리스트를 생성할 수 있다.The
이하에서는 도 3을 참조하여 상기 제어모듈(120)이 수행하는 과정을 보다 상세하게 설명하기로 한다. 도 3은 본 발명의 일 실시예에 따른 제어모듈(130)이 수행하는 블롭 판별 방법을 나타내는 흐름도이다.Hereinafter, the process performed by the
도 3을 참조하면, 상기 제어모듈(120)은 먼저 블롭 리스트 blob_list를 초기화할 수 있다(S100).Referring to FIG. 3, the
블롭 리스트는 적어도 하나의 블롭 데이터를 저장할 수 있으며, 배열, 집합, 연결 리스트 기타 적어도 하나의 자료를 저장하고 탐색할 수 있는 자료구조일 수 있다. 블롭 리스트에 저장되는 블롭 데이터는 블롭의 위치, 크기 및/또는 형태에 관한 정보를 포함할 수 있다. 예를 들어, 블롭 데이터는 다음 <표 2>와 같은 구조를 가질 수 있다.A bloblist may store at least one blob data, and may be a data structure that can store and retrieve at least one data item such as an array, a set, a linked list, and so on. The blob data stored in the bloblist may include information about the location, size, and / or type of the blob. For example, the blob data may have a structure as shown in Table 2 below.
이하에서는 설명의 편의를 위하여 블롭 리스트에 저장되는 블롭 데이터가 <중심픽셀의 x좌표, 중심픽셀의 y좌표, 크기>의 구조를 가지는 예에 대하여 설명한다. 그러나 본 발명의 기술적 사상이 이에 한정되는 것이 아님은 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 자명하게 이해할 수 있을 것이다.Hereinafter, for convenience of description, an example will be described in which the blob data stored in the blob list has a structure of <x coordinate of the center pixel, y coordinate of the center pixel, and size>. However, it will be understood by those skilled in the art that the technical idea of the present invention is not limited thereto.
다시 도 3을 참조하면 상기 제어모듈(120)은 상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행할 수 있다(S110).Referring again to FIG. 3, the
이때, 상기 판별 대상 이미지의 i번째(1<=i<=N) 행 Row(i)에 대한 행 처리 단계를 수행하는 과정은 도 3의 S120 내지 S130을 포함할 수 있다.At this time, the process of performing the row processing step for the i-th (1 <= i <= N) row Row (i) of the determination target image may include S120 to S130 of FIG.
S120 단계에서, 상기 제어모듈(120)은 상기 i번째 행 Row(i)에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 생성할 수 있다.In step S120, the
하나의 라인은 동일한 속성을 가지는 연속된 픽셀로 구성될 수 있다. 따라서, 각각의 라인은 그에 상응하는 블롭 파트를 구성할 수 있으며, 블롭 파트의 형태는 그에 상응하는 라인의 형태와 동일할 수 있다.One line may consist of consecutive pixels having the same attributes. Thus, each line may constitute a corresponding blob part, and the shape of the blob part may be the same as the shape of the corresponding line.
만약 판별 대상 이미지가 상술한 런 렝스 인코딩되어 있는 경우, 상기 제어모듈(120)은 매우 간단한 계산을 통해 블롭 파트의 블롭 데이터를 생성할 수 있다. 특정 라인을 나타내는 런 렝쓰 코드를 RLC라고 하고, 해당 라인이 구성하는 블롭 파트의 블롭 데이터를 Blob라고 하면, 해당 라인이 구성하는 블롭 파트의 블롭 데이터는 다음과 같은 방식으로 생성할 수 있다.If the discrimination target image is run length encoded as described above, the
Blob.X = (RLC.X + RLC.Length-1)/2Blob.X = (RLC.X + RLC.Length-1) / 2
Blob.Y = RLC.YBlob.Y = RLC.Y
Blob.Size = RLC.LengthBlob.Size = RLC.Length
상기 제어모듈은 Row(i)에 포함된 모든 라인에 대하여 위와 같은 방법으로 해당 라인에 상응하는 블롭 파트의 블롭 데이터를 생성할 수 있다.The control module may generate blob data of the blob part corresponding to the corresponding line for all the lines included in Row (i).
각 라인에 상응하는 블롭 파트는 이미지 전체에서 볼 때, 독립된 블롭일 수도 있으며 다른 블롭의 일부일 수도 있다.The blob part corresponding to each line may be an independent blob, or a part of another blob, as viewed from the overall image.
한편, S130 단계에서, 상기 제어모듈(120)은 상기 각각의 블롭 파트 BP(j) 에 대하여(1<=j<=Row(i)의 블롭 파트의 개수), 상기 블롭 리스트 blob_list에 이미 포함되어 있는 블롭 중에서 상기 블롭 파트BP(j)와 연결된 연결 블롭이 존재하는지 여부를 판단할 수 있다(S140).On the other hand, in step S130, the
상기 제어모듈(120)은 특정 블롭의 마지막 행을 구성하는 라인의 가로 범위와 블롭 파트의 가로 범위가 겹치는 경우, 해당 블롭과 블롭 파트는 연결되어 있다고 판단할 수 있다.If the horizontal range of the line constituting the last row of the specific blob overlaps the horizontal range of the blob part, the
또한 상기 제어모듈(120)은 상기 블롭 리스트에 포함되어 있는 블롭 중 상기 블롭 파트와 연결된 연결 블롭이 존재하지 않는 경우, 상기 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가할 수 있다(S150, S160).Also, the
만약 상기 블롭 파트 BP(j)와 연결된 연결 블롭이 존재하는 경우, 상기 제어모듈(120)은 블롭 파트 BP(j)가 이미 존재하는 블롭과 연결되어 있는 경우 연결된 블롭에 상기 블롭 파트 BP(j)를 결합할 수 있다. 즉 상기 제어모듈(120)은 상기 블롭 파트 BP(j)와 상기 연결 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고(S170), 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트 blob_list에 추가하고(S180), 상기 연결 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거할 수 있다(S190).If there is a connection blob connected to the blob part BP (j), the
이하에서는 도 4 및 도 5를 참조하여, 상술한 과정의 예에 대하여 설명하기로 한다. 도 4는 판별 대상 이미지의 일 예를 도시한 도면이며, 도 5는 상기 제어모듈(150)이 도 4에 도시된 판별 대상 이미지를 대상으로 블롭 디텍션을 수행하여 2개의 블롭(10, 20)을 판별하는 과정을 설명하기 위한 도면이다.Hereinafter, an example of the above-described process will be described with reference to FIGS. 4 and 5. FIG. FIG. 4 illustrates an example of an image to be discriminated. FIG. 5 illustrates a case where the control module 150 performs a blob detection on the discrimination target image shown in FIG. 4 to detect two
도 4에 도시된 바와 같이, 판별 대상 이미지의 3번째 행 Row(3)에는 2 개의 블롭 파트(31, 32)가 포함되어 있으며, 4번째 행 Row(4)에는 3개의 블롭 파트(41, 42, 43)가 포함되어 있으며, 5번째 행 Row(5)에는 2개의 블롭 파트(51, 52)가 포함되어 있으며, 6번째 행 Row(6)에는 1개의 블롭 파트(61)가 포함되어 있으며, 7번째 행 Row(7)에는 2개의 블롭 파트(71, 72)가 포함되어 있다.4, two
만약 상기 제어모듈(120)이 도 4에 도시되어 있는 판별 대상 이미지를 대상으로 블롭 디텍션을 수행하는 경우, 판별 대상 이미지의 첫 번째 및 두 번째 행에는 라인(즉, 블롭 파트)이 존재하지 않으므로 blob_list에 아무런 변화가 생기지 않을 것이다.If the
도 5(a)는 상기 제어모듈(120)이 도 4의 판별 대상 이미지의 3번째 행까지 처리한 상태에서 판별된 블롭을 도시한 것이다. 3번째 행의 경우, 2개의 블롭 파트(31, 32)가 존재하며, blob_list는 초기화로 인해 비어 있는 상태이므로 2개의 블롭 파트(31, 32)와 연결된 연결 블롭은 존재하지 않을 것이다. 따라서, 상기 제어모듈(120)은 3번째 행에 포함되어 있는 2개의 블롭 파트(31, 32) 각각에 상응하는 블롭 데이터를 blob_list에 추가할 수 있다(S150, S160).Fig. 5 (a) shows the blob determined in the state in which the
상기 제어모듈(120)이 도 4의 판별 대상 이미지의 3번째 행까지 처리한 경우 상기 블롭 리스트blob_list에는 도 5(a)에 도시되어 있는 각각의 블롭(b1, b2)의 블롭 데이터가 저장될 수 있다(즉, blob_list={b1의 블롭 데이터, b2의 블롭 데이터}).When the
도 5(b)는 상기 제어모듈(120)이 도 4의 판별 대상 이미지의 4번째 행까지 처리한 상태에서 판별된 블롭을 도시한 것이다. 4번째 행의 경우 3개의 블롭 파트(41, 42, 43)가 존재한다. 첫 번째 블롭 파트(41)는 도 5(a)의 블롭 b1과 연결되어 있으므로 상기 제어모듈(120)은 연결 블롭인 블롭b1과 블롭 파트(41)를 결합한 결합 블롭b3에 대한 블롭 데이터를 생성하고(S170), b3의 블롭 데이터를 블롭 리스트 blob_list에 추가하고(S180), 블롭 b1의 블롭 데이터를 블롭 리스트 blob_list에 삭제할 수 있다(S190). 두 번째 블롭 파트(42)의 경우 연결 블롭이 존재하지 않으므로 상기 제어모듈(120)은 블롭 파트(42)를 새로운 블롭 b4로 인식하고, 블롭 파트(42)의 블롭 데이터를 블롭 리스트 blob_list에 추가할 수 있다(S160). 세 번째 블롭 파트(43)는 도 5(a)의 블롭 b2와 연결되어 있으므로 상기 제어모듈(120)은 연결 블롭인 블롭b2과 블롭 파트(43)를 결합한 결합 블롭b5에 대한 블롭 데이터를 생성하고(S170), b5의 블롭 데이터를 블롭 리스트 blob_list에 추가하고(S180), 블롭 b2의 블롭 데이터를 블롭 리스트 blob_list에 삭제할 수 있다(S190).FIG. 5B shows the blob determined in a state where the
상기 제어모듈(120)이 도 4의 판별 대상 이미지의 4번째 행까지 처리한 경우 상기 블롭 리스트blob_list에는 도 5(b)에 도시되어 있는 각각의 블롭(b3, b4, b5)의 블롭 데이터가 저장될 수 있다(즉, blob_list={b3의 블롭 데이터, b4의 블롭 데이터, b5의 블롭 데이터}).The blob list blob_list stores the blob data of each of the blobs b3, b4, and b5 shown in FIG. 5B in the case where the
도 5(c)는 상기 제어모듈(120)이 도 4의 판별 대상 이미지의 5번째 행까지 처리한 상태에서 판별된 블롭을 도시한 것이다. 5번째 행의 경우 2개의 블롭 파트(51, 52)가 존재한다. 첫 번째 블롭 파트(51)는 도 5(b)의 블롭 b3 및 블롭 b4와 연결되어 있으므로 상기 제어모듈(120)은 연결 블롭인 블롭b3, 블롭 b4 및 블롭 파트(41)를 결합한 결합 블롭b6에 대한 블롭 데이터를 생성하고(S170), b6의 블롭 데이터를 블롭 리스트 blob_list에 추가하고(S180), 블롭 b3 및 블롭 b4의 블롭 데이터를 블롭 리스트 blob_list에 삭제할 수 있다(S190). 두 번째 블롭 파트(52)는 도 5(b)의 블롭 b5와 연결되어 있으므로 상기 제어모듈(120)은 연결 블롭인 블롭b5과 블롭 파트(52)를 결합한 결합 블롭b7에 대한 블롭 데이터를 생성하고(S170), b7의 블롭 데이터를 블롭 리스트 blob_list에 추가하고(S180), 블롭 b5의 블롭 데이터를 블롭 리스트 blob_list에 삭제할 수 있다(S190).Fig. 5 (c) shows the blob determined in the state where the
상기 제어모듈(120)이 도 4의 판별 대상 이미지의 5번째 행까지 처리한 경우 상기 블롭 리스트blob_list에는 도 5(c)에 도시되어 있는 각각의 블롭(b6, b7)의 블롭 데이터가 저장될 수 있다(즉, blob_list={b6의 블롭 데이터, b7의 블롭 데이터}).When the
상기 제어모듈(120)은 상술한 방식으로 각 행을 차례로 처리할 수 있으며, 상기 제어모듈(120)이 도 4의 판별 대상 이미지의 6번째 행까지 처리한 경우 상기 블롭 리스트blob_list에는 도 5(d)에 도시되어 있는 각각의 블롭(b8, b9)의 블롭 데이터가 저장될 수 있으며(즉, blob_list={b6의 블롭 데이터, b7의 블롭 데이터}), 상기 제어모듈(120)이 도 4의 판별 대상 이미지의 7번째 행까지 처리한 경우 상기 블롭 리스트blob_list에는 도 5(e)에 도시되어 있는 각각의 블롭(b10, b11)의 블롭 데이터가 저장될 수 있다(즉, blob_list={b10의 블롭 데이터, b11의 블롭 데이터}).The
판별 대상 이미지의 8, 9, 10 번째 행에는 라인(즉, 블롭 파트)이 존재하지 않으므로 blob_list에 아무런 변화가 생기지 않을 것이다.There will be no change in the blob_list since there is no line (i.e., blob part) in the 8th, 9th, and 10th rows of the image to be discriminated.
따라서, 상기 제어모듈(120)이 상기 판별 대상 이미지에 대한 블롭 디텍션을 완료한 상태에서의 블롭 리스트는 도 5(e)의 블롭 b10(도 4의 블롭(10)과 동일함)의 블롭 데이터, 도 5(e)의 블롭 b11(도 4의 블롭(20)과 동일함)의 블롭 데이터를 포함할 수 있다.Therefore, the blob list in the state where the
한편, 상기 제어모듈(120)은 현재 처리할 행의 라인 리스트(제1라인 리스트)와 직전에 처리한 행의 라인 리스트(제2라인 리스트)를 유지, 관리함으로써, 현재 처리할 행에 포함되어 있는 블롭 파트와 기 존재하는 블롭 간의 연결 여부를 매우 간단하게 판별할 수 있으며, 이러한 방법을 사용하는 일 실시예에 따른 블롭 판별 방법이 도 6에 도시되어 있다.On the other hand, the
도 6을 참조하면, 상기 제어모듈(120)은 블롭 리스트 blob_list를 초기화하고, 제1라인 리스트인 new_line_list 및 제2라인 리스트인 old_line_list를 초기화할 수 있다.Referring to FIG. 6, the
제1라인 리스트인 new_line_list는 현재 처리해야 할 행에 포함된 각 라인의 라인 정보를 포함할 수 있으며, 제2라인 리스트인 old_line_list는 직전에 처리한 행에 포함된 각 라인의 라인 정보를 포함할 수 있다.The first line list, new_line_list, may include line information of each line included in the current line, and the second line list old_line_list may include line information of each line included in the immediately preceding line. have.
라인 리스트는 적어도 하나의 라인 정보를 저장할 수 있으며, 배열, 집합, 연결 리스트 기타 적어도 하나의 자료를 저장하고 탐색할 수 있는 자료구조일 수 있다. 라인 리스트에 저장되는 라인 정보는 해당 라인의 위치, 길이 및 해당 라인이 속해 있는 블롭 정보를 포함할 수 있다. 라인 정보에 포함되는 블롭 정보는 상기 블롭 리스트 내에 저장되어 있는 특정 블롭을 식별하기 위한 식별정보(내지 고유정보) 또는 상기 블롭 리스트 내에 저장되어 있는 특정 블롭을 참조하기 위한 참조정보일 수 있다.The line list may store at least one line information, and may be a data structure capable of storing and searching at least one data such as an array, a set, a linked list, and the like. The line information stored in the line list may include the position and length of the line, and the blob information to which the line belongs. The blob information included in the line information may be identification information (or unique information) for identifying a specific blob stored in the blob list or reference information for referring to a specific blob stored in the blob list.
예를 들어, 라인 정보는 다음 <표 3>와 같은 구조를 가질 수 있다.For example, the line information may have a structure as shown in Table 3 below.
이하에서는 설명의 편의를 위하여 라인 리스트에 저장되는 라인 정보가 <시작픽셀의 x좌표, 시작픽셀의 y좌표, 길이, 블롭 정보>의 구조를 가지는 예에 대하여 설명한다. 그러나 본 발명의 기술적 사상이 이에 한정되는 것이 아님은 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 자명하게 이해할 수 있을 것이다.Hereinafter, for convenience of explanation, an example in which the line information stored in the line list has the structure of < x coordinate of the starting pixel, y coordinate of the starting pixel, length, and blob information > However, it will be understood by those skilled in the art that the technical idea of the present invention is not limited thereto.
다시 도 6을 참조하면, 상기 제어모듈(120)은 상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행할 수 있다(S210).Referring again to FIG. 6, the
이때, 상기 판별 대상 이미지의 i번째(1<=i<=N) 행 Row(i)에 대한 행 처리 단계를 수행하는 과정은 도 6의 S220 내지 S290을 포함할 수 있다.At this time, the process of performing the row process for the i-th row (1 <= i <= N) row Row (i) of the discrimination target image may include S220 to S290 of FIG.
S220 단계에서, 상기 제어모듈(120)은 상기 i번째 행 Row(i)에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 생성할 수 있다.In step S220, the
특정 라인 L을 나타내는 런 렝쓰 코드를 RLC(L)라고 하고, 해당 라인이 구성하는 블롭 파트의 블롭 데이터를 Blob(L)라고 하면, 해당 라인이 구성하는 블롭 파트의 블롭 데이터를 다음과 같은 방식으로 생성할 수 있음은 앞서 설명한 바와 같다.When the runlength code representing a specific line L is called RLC (L) and the blob data of the blob part constituting the line is Blob (L), the blob data of the blob part constituted by the line is converted in the following manner It can be generated as described above.
Blob(L).X = (RLC(L).X + RLC(L).Length-1)/2(L) .X = (RLC (L) .X + RLC (L) .Length-1) / 2
Blob(L).Y = RLC(L).YBlob (L) .Y = RLC (L) .Y
Blob(L).Size = RLC(L).LengthBlob (L) .Size = RLC (L) .Length
한편 상기 제어모듈(120)은 상기 i번째 행 Row(i)에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 상기 블롭 리스트 blob_list에 추가할 수 있다.Meanwhile, the
또한 상기 제어모듈(120)은 상기 i번째 행에 포함된 각 라인의 라인 정보가 포함되도록 상기 제1 라인 리스트 new_line_list를 구성할 수 있다. 상술한 바와 같이, 상기 라인 정보는 해당 라인의 위치, 길이 및 해당 라인이 속해 있는 블롭 정보를 포함할 수 있다.Also, the
만약 판별 대상 이미지가 상술한 런 렝스 인코딩되어 있는 경우, 상기 제어모듈(120)은 매우 간단한 대입을 통해 각 라인의 라인 정보를 생성할 수 있다. 특정 라인 L을 나타내는 런 렝쓰 코드를 RLC(L)라고 하고, 해당 라인이 구성하는 라인 정보를 Line(L)이라고 하면, 해당 라인의 라인 정보는 다음과 같은 방식으로 생성할 수 있다.If the determination target image is run-length-encoded as described above, the
Line(L).X = RLC(L).XLine (L) .X = RLC (L) .X
Line(L).Y = RLC(L).YLine (L) .Y = RLC (L) .Y
Line(L).Length = RLC(L).LengthLine (L) .Length = RLC (L) .Length
Line(L).Blob = Blob(L)의 정보Line (L) .Blob = Blob (L) information
이후, 상기 제어모듈(120)은 상기 제1라인 리스트 new_line_list에 포함된 각각의 제1 라인 정보(new_line) 및 상기 제2라인 리스트 old_line_list에 포함된 각각의 제2라인 정보(old_line)에 대하여, S250 단계 내지 S280 단계를 수행할 수 있다(S240).Then, the
먼저, 상기 제어모듈(120)은 상기 제1라인 정보(new_line)에 해당하는 제1라인 과 상기 제2라인 정보(old_line)에 해당하는 제2라인이 서로 연결되어 있는지 여부를 판단할 수 있다(S250). new_line에 해당하는 라인과 old_line에 해당하는 라인은 서로 인접한 행에 존재하는 라인이므로 new_line의 가로 범위와 old_line의 가로 범위가 겹치는 경우, 상기 제어모듈(120)은 new_line에 해당하는 라인과 old_line에 해당하는 라인이 서로 연결되어 있다고 판단할 수 있다.First, the
만약 연결된 경우, 상기 제어모듈(120)은 상기 제1라인 정보(new_line)에 포함된 블롭 정보 및 상기 제2라인 정보(old_line)에 포함된 블롭 정보에 기초하여 상기 제1라인이 속해 있는 블롭과 상기 제2라인이 속해 있는 블롭을 결합한 결합 블롭의 블롭 데이터를 생성할 수 있다(S260).If so, the
결합 블롭을 comb_blob이라고 하면, 상기 제어모듈(120)은 다음의 수식을 통해 결합 블롭의 블롭 데이터를 생성할 수 있다.If the combining blob is comb_blob, the
<수식><Formula>
(1) comb_blob.X = (new_line.Blob.X * new_line.Blob.Size + old_line.Blob.X * old_line.Blob.Size) / (new_line.Blob.Size+ old_line.Blob.Size)(1) comb_blob.X = (new_line.Blob.X * new_line.Blob.Size + old_line.Blob.X * old_line.Blob.Size) / (new_line.Blob.Size + old_line.Blob.Size)
(2) comb_blob.Y = (new_line.Blob.Y * new_line.Blob.Size + old_line.Blob.Y * old_line.Blob.Size) / (new_line.Blob.Size+ old_line.Blob.Size)(2) comb_blob.Y = (new_line.Blob.Y * new_line.Blob.Size + old_line.Blob.Y * old_line.Blob.Size) / (new_line.Blob.Size + old_line.Blob.Size)
(3) comb_blob.Size = new_blob.Size+ old_blob.Size(3) comb_blob.Size = new_blob.Size + old_blob.Size
이후 상기 제어모듈(120)은 상기 결합 블롭의 블롭 데이터 Comb_blob 를 상기 블롭 리스트 blob_list에 추가하고(S270), 상기 제1라인이 속해 있는 블롭의 블롭 데이터 new_line.Blob과 상기 제2라인이 속해 있는 블롭의 블롭 데이터 old_line.Blob를 상기 블롭 리스트에서 제거할 수 있다(S275).Then, the
또한 상기 제어모듈(120)은 상기 제1라인 정보의 블롭 정보 및 상기 제2라인 정보의 블롭 정보를 결합 블롭의 블롭 정보로 대체할 수 있다(S280)Also, the
한편, 상기 제1라인 리스트new_line_list에 포함된 각각의 제1 라인 정보(new_line) 및 상기 제2라인 리스트 old_line_list에 포함된 각각의 제2라인 정보(old_line)에 대하여 상술한 과정이 모두 완료된 후, 상기 제어모듈(120)은 상기 제2라인 리스트가 제1라인 리스트에 포함된 항목을 포함하도록 상기 제2라인 리스트를 재구성할 수 있다(S290).On the other hand, after the above-described processes are completed for each first line information (new_line) included in the first line list new_line_list and each second line information (old_line) included in the second line list old_line_list, The
한편, 구현 예에 따라서, 상기 블롭 판별 시스템(100)은 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고체상태 메모리 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다. 여기서, 상기 프로그램은, 프로세서에 의해 실행되는 경우, 본 실시예에 따른 블롭 판별 시스템(100)으로 하여금, 상술한 블롭 판별 방법을 수행하도록 할 수 있다.Meanwhile, according to an embodiment, the
한편, 본 발명의 실시예에 따른 블롭 판별 방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명의 실시예에 따른 제어 프로그램 및 대상 프로그램도 컴퓨터로 판독 가능한 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.Meanwhile, the method for determining a blob according to an embodiment of the present invention may be implemented in the form of a computer-readable program command and stored in a computer-readable recording medium. Also, the control program and the target program And can be stored in a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of software.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.Examples of the computer-readable recording medium include magnetic media such as a hard disk, a floppy disk and a magnetic tape, optical media such as CD-ROM and DVD, a floptical disk, And hardware devices that are specially configured to store and execute program instructions such as magneto-optical media and ROM, RAM, flash memory, and the like. The computer readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Examples of program instructions include machine language code such as those produced by a compiler, as well as devices for processing information electronically using an interpreter or the like, for example, a high-level language code that can be executed by a computer.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents. .
Claims (12)
블롭 검출 시스템이, 블롭 리스트를 초기화하는 단계; 및
상기 블롭 검출 시스템이, 상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행하는 단계를 포함하되,
상기 판별 대상 이미지의 i번째 행(1<=i<=N)에 대한 행 처리 단계는,
(a) 상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 생성하는 단계; 및
(b) 상기 각각의 블롭 파트에 대하여,
상기 블롭 리스트에 포함되어 있는 블롭 중 상기 블롭 파트와 연결된 연결 블롭을 판단하고,
상기 블롭 파트와 연결된 연결 블롭이 존재하지 않는 경우, 상기 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하고,
상기 블롭 파트와 연결된 연결 블롭이 존재하는 경우, 상기 블롭 파트와 상기 연결 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 연결 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하는 단계를 포함하는 블롭 검출 방법.
A blob detection method for determining a blob included in a discrimination target image composed of N (N is an integer) rows,
The blob detection system comprising: initializing a blob list; And
Wherein the blob detection system performs a row processing step for each of the first row to the Nth row of the determination target image,
The row processing step for the i-th row (1 < = i < = N)
(a) generating blob data of a blob part constituted by each line included in the i-th row; And
(b) for each of the blob parts,
Determining a connection blob connected to the blob part among the blobs included in the blob list,
Adding blob data of the blob part to the blob list if there is no connected blob associated with the blob part,
Generating blob data of a combined blob in which the blob part and the connecting blob are combined, adding the blob data of the combining blob to the blob list when the connecting blob connected to the blob part exists, From the blob list. ≪ Desc / Clms Page number 16 >
상기 블롭 리스트를 초기화하는 단계는,
상기 블롭 리스트, 제1라인 리스트 및 제2라인 리스트를 초기화하는 단계를 포함하고,
상기 (b) 단계는,
상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하는 단계;
상기 i번째 행에 포함된 각 라인의 라인 정보가 포함되도록 상기 제1 라인 리스트를 구성하는 단계-여기서, 상기 라인 정보는 해당 라인의 위치, 길이 및 해당 라인이 속해 있는 블롭 정보를 포함함;
상기 제1라인 리스트에 포함된 각각의 제1 라인 정보 및 상기 제2라인 리스트에 포함된 각각의 제2라인 정보에 대하여,
상기 제1라인 정보에 해당하는 제1라인과 상기 제2라인 정보에 해당하는 제2라인이 연결되어 있는지 여부를 판단하고,
연결된 경우 상기 제1라인 정보에 포함된 블롭 정보 및 상기 제2라인 정보에 포함된 블롭 정보에 기초하여 상기 제1라인이 속해 있는 블롭과 상기 제2라인이 속해 있는 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 제1라인이 속해 있는 블롭의 블롭 데이터와 상기 제2라인이 속해 있는 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하고, 상기 제1라인 정보의 블롭 정보 및 상기 제2라인 정보의 블롭 정보를 결합 블롭의 블롭 정보로 대체하는 단계; 및
상기 제2라인 리스트가 제1라인 리스트에 포함된 항목을 포함하도록 상기 제2라인 리스트를 재구성하는 단계를 포함하는 블롭 검출 방법.
The method according to claim 1,
Wherein the initializing the bloblist comprises:
And initializing the blob list, the first line list and the second line list,
The step (b)
Adding blob data of a blob part constituted by each line included in the i-th row to the blob list;
Configuring the first line list to include line information of each line included in the i-th row, wherein the line information includes a position, a length of the corresponding line, and blob information to which the corresponding line belongs;
For each of the first line information included in the first line list and each second line information included in the second line list,
Determining whether a first line corresponding to the first line information and a second line corresponding to the second line information are connected,
The first blob information and the second blob information included in the first line information and the blob information included in the first line information and the blob information included in the second line information, Adds the blob data of the combined blob to the blob list, removes from the blob list the blob data of the bloom to which the first line belongs and the blob of the bloom to which the second line belongs, Replacing blob information of the first line information and blob information of the second line information with blob information of the combining blob; And
And reconstructing the second line list such that the second line list includes an item included in the first line list.
카메라에 설치되는 이미지 처리 시스템이, 상기 카메라가 촬영한 판별 대상 이미지에 상응하는 로우 데이터(Raw Data)를 런 렝스 인코딩(Run Length Encoding)하는 단계; 및
상기 이미지 처리 시스템이, 런 렝스 인코딩된 데이터를 소정의 인터페이스를 통해 상기 블롭 검출 시스템으로 전송하는 단계를 더 포함하는 블롭 검출 방법.
The method according to claim 1,
An image processing system installed in a camera, the method comprising the steps of: performing run length encoding of raw data corresponding to an image to be discriminated by the camera; And
Wherein the image processing system further comprises transmitting run length encoded data to the blob detection system via a predetermined interface.
상기 이미지 처리 시스템이, 상기 카메라가 촬영한 판별 대상 이미지에 상응하는 로우 데이터를 런 렝스 인코딩하는 단계는,
상기 카메라가 촬영한 판별 대상 이미지를 그레이 스케일로 변환하는 단계; 및
그레이 스케일로 변환된 이미지의 로우 데이터를 런 렝스 인코딩하는 단계를 포함하는 블롭 검출 방법.
The method of claim 3,
Wherein the image processing system performs run length encoding of raw data corresponding to an image to be discriminated by the camera,
Converting the discrimination target image photographed by the camera into grayscale; And
And performing run length encoding of raw data of an image converted to grayscale.
상기 런 렝스 인코딩된 데이터는, 상기 판별 대상 이미지에 포함된 각 수평 라인에 상응하는 런 렝스 코드로 구성되며,
상기 런 렝스 코드는, 해당 수평 라인의 위치 정보 및 길이 정보를 포함하는 블롭 검출 방법.
5. The method of claim 4,
Wherein the run length encoded data comprises a run length code corresponding to each horizontal line included in the discrimination target image,
Wherein the run length code includes positional information and length information of the corresponding horizontal line.
A computer program installed in a data processing apparatus and stored in a computer-readable medium for performing the method of any one of claims 1 to 2.
프로세서; 및
상기 프로세서에 의하여 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하며,
상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 블롭 검출 시스템이 제1항 내지 제2항 중 어느 한 항에 기재된 방법을 수행하도록 하는 블롭 검출 시스템.
A blob detection system,
A processor; And
A memory for storing a computer program executed by the processor,
The computer program, when executed by the processor, causes the blob detection system to perform the method recited in any one of claims 1 to 2.
상기 판별 대상 이미지에 상응하는 데이터를 저장하는 저장모듈;
블롭 리스트를 초기화하고,
상기 판별 대상 이미지의 첫 번째 행 내지 N번째 행 각각에 대하여, 행 처리 단계를 수행하는 제어모듈을 포함하되,
상기 판별 대상 이미지의 i번째 행(1<=i<=N)에 대한 행 처리 단계는,
(a) 상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 생성하는 단계; 및
(b) 상기 각각의 블롭 파트에 대하여,
상기 블롭 리스트에 포함되어 있는 블롭 중 상기 블롭 파트와 연결된 연결 블롭이 존재하지 않는 경우, 상기 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하고,
상기 블롭 파트와 연결된 연결 블롭이 존재하는 경우, 상기 블롭 파트와 상기 연결 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 연결 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하는 단계를 포함하는 블롭 검출 시스템.
A blob detection system for discriminating a blob included in a discrimination target image composed of N (N is an integer) rows,
A storage module for storing data corresponding to the discrimination target image;
Initialize the blob list,
And a control module for performing a row processing step for each of the first row to the Nth row of the determination target image,
The row processing step for the i-th row (1 < = i < = N)
(a) generating blob data of a blob part constituted by each line included in the i-th row; And
(b) for each of the blob parts,
Adding blob data of the blob part to the blob list when there is no connected blob connected to the blob part among the blobs included in the blob list,
Generating blob data of a combined blob in which the blob part and the connecting blob are combined, adding the blob data of the combining blob to the blob list when the connecting blob connected to the blob part exists, From the blob list.
상기 제어모듈은,
제1라인 리스트 및 제2라인 리스트를 더 초기화하고,
상기 (b) 단계는,
상기 i번째 행에 포함된 각 라인이 구성하는 블롭 파트의 블롭 데이터를 상기 블롭 리스트에 추가하는 단계;
상기 i번째 행에 포함된 각 라인의 라인 정보가 포함되도록 상기 제1 라인 리스트를 구성하는 단계-여기서, 상기 라인 정보는 해당 라인의 위치, 길이 및 해당 라인이 속해 있는 블롭 정보를 포함함; 및
상기 제1라인 리스트에 포함된 각각의 제1 라인 정보 및 상기 제2라인 리스트에 포함된 각각의 제2라인 정보에 대하여,
상기 제1라인 정보에 해당하는 제1라인과 상기 제2라인 정보에 해당하는 제2라인이 연결되어 있는지 여부를 판단하고,
연결된 경우 상기 제1라인 정보에 포함된 블롭 정보 및 상기 제2라인 정보에 포함된 블롭 정보에 기초하여 상기 제1라인이 속해 있는 블롭과 상기 제2라인이 속해 있는 블롭을 결합한 결합 블롭의 블롭 데이터를 생성하고, 상기 결합 블롭의 블롭 데이터를 상기 블롭 리스트에 추가하고, 상기 제1라인이 속해 있는 블롭의 블롭 데이터와 상기 제2라인이 속해 있는 블롭의 블롭 데이터를 상기 블롭 리스트에서 제거하고, 상기 제1라인 정보의 블롭 정보 및 상기 제2라인 정보의 블롭 정보를 결합 블롭의 블롭 정보로 대체하는 단계를 포함하는 블롭 검출 시스템.
9. The method of claim 8,
The control module includes:
The first line list and the second line list are further initialized,
The step (b)
Adding blob data of a blob part constituted by each line included in the i-th row to the blob list;
Configuring the first line list to include line information of each line included in the i-th row, wherein the line information includes a position, a length of the corresponding line, and blob information to which the corresponding line belongs; And
For each of the first line information included in the first line list and each second line information included in the second line list,
Determining whether a first line corresponding to the first line information and a second line corresponding to the second line information are connected,
The first blob information and the second blob information included in the first line information and the blob information included in the first line information and the blob information included in the second line information, Adds the blob data of the combined blob to the blob list, removes from the blob list the blob data of the bloom to which the first line belongs and the blob of the bloom to which the second line belongs, And replacing the blob information of the first line information and the blob information of the second line information with the blob information of the combining blob.
상기 판별 대상 이미지에 상응하는 데이터는, 카메라에 설치되는 이미지 처리 시스템으로부터 수신되는 런 렝스 인코딩된 데이터이며,
상기 이미지 처리 시스템은,
상기 카메라가 촬영한 판별 대상 이미지에 상응하는 로우 데이터를 런 렝스 인코딩하고, 런 렝스 인코딩된 데이터를 소정의 인터페이스를 통해 상기 블롭 검출 시스템으로 전송하는 블롭 검출 시스템.
9. The method of claim 8,
The data corresponding to the discrimination target image is run length encoded data received from the image processing system installed in the camera,
The image processing system comprising:
Length encoding the raw data corresponding to the discrimination target image taken by the camera and transmitting the run length encoded data to the blob detection system through a predetermined interface.
상기 이미지 처리 시스템은, 상기 카메라가 촬영한 판별 대상 이미지를 그레이 스케일로 변환하고, 그레이 스케일로 변환된 이미지의 로우 데이터를 런 렝스 인코딩하는 블롭 검출 시스템.
11. The method of claim 10,
Wherein the image processing system converts the discrimination target image photographed by the camera into grayscale and performs run length encoding of the raw data of the image converted into grayscale.
상기 런 렝스 인코딩된 데이터는, 상기 판별 대상 이미지에 포함된 각 수평 라인에 상응하는 런 렝스 코드로 구성되며,
상기 런 렝스 코드는, 해당 수평 라인의 위치 정보 및 길이 정보를 포함하는 블롭 검출 시스템.
12. The method of claim 11,
Wherein the run length encoded data comprises a run length code corresponding to each horizontal line included in the discrimination target image,
Wherein the run length code includes positional information and length information of a corresponding horizontal line.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160083352A KR101829231B1 (en) | 2016-07-01 | 2016-07-01 | System and method for blob detecting |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160083352A KR101829231B1 (en) | 2016-07-01 | 2016-07-01 | System and method for blob detecting |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180003796A KR20180003796A (en) | 2018-01-10 |
KR101829231B1 true KR101829231B1 (en) | 2018-02-19 |
Family
ID=60998831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160083352A KR101829231B1 (en) | 2016-07-01 | 2016-07-01 | System and method for blob detecting |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101829231B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004529404A (en) | 2000-11-09 | 2004-09-24 | ヒューレット・パッカード・カンパニー | Method and apparatus for analyzing images |
-
2016
- 2016-07-01 KR KR1020160083352A patent/KR101829231B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004529404A (en) | 2000-11-09 | 2004-09-24 | ヒューレット・パッカード・カンパニー | Method and apparatus for analyzing images |
Also Published As
Publication number | Publication date |
---|---|
KR20180003796A (en) | 2018-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144710B (en) | For the technology for the precision for increasing depth camera image | |
US8224069B2 (en) | Image processing apparatus, image matching method, and computer-readable recording medium | |
JP2018151748A (en) | Image processing device, image processing method, template generation device, object recognition processing device, and program | |
CN107430776B (en) | Template manufacturing device and template manufacturing method | |
US10430950B2 (en) | Systems and methods for performing instance segmentation | |
US20220284691A1 (en) | Systems, methods, and devices for capturing images | |
KR20110069271A (en) | Imaging device and method for sharing memory among chips | |
US20190251670A1 (en) | Electronic device and method for correcting images using external electronic device | |
CN111526342B (en) | Image processing method, device, camera, terminal and storage medium | |
CN108573471A (en) | Image processing apparatus, image processing method and recording medium | |
CN107958224B (en) | ISP-based image preprocessing system and method on ADAS | |
US20220132028A1 (en) | Imaging apparatus, information processing method, and recording medium | |
JP2019517696A (en) | Image generation method and device | |
KR101829231B1 (en) | System and method for blob detecting | |
JP2021163998A (en) | Imaging apparatus, device, control method and program | |
US20210067690A1 (en) | Electronic device and method for processing image by electronic device | |
EP4332910A1 (en) | Behavior detection method, electronic device, and computer readable storage medium | |
CN113196742A (en) | Method, system, and computer readable medium for image sensor communication using different transmit data sequence rates and receive frame rates | |
JP6772020B2 (en) | Image processing device, control method of image processing device, and program | |
CN112313944A (en) | Image processing method, device, equipment and storage medium | |
US11843847B2 (en) | Device, information processing apparatus, control method therefor, and computer-readable storage medium | |
US11184538B2 (en) | Electronic device for selectively generating video by using image data acquired at frame rate changed according to distance between subject and reference region, and operation method therefor | |
Gallo et al. | Retrieving gray-level information from a binary sensor and its application to gesture detection | |
KR102259877B1 (en) | Apparatus for detecting objects in multi-directional images based on deep neural network and method therefor | |
EP4262195A1 (en) | Information acquisition method based on always-on camera |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |