KR102638388B1 - Object recognition system, object recognition method and computer program stored in a recording medium to execute the method - Google Patents
Object recognition system, object recognition method and computer program stored in a recording medium to execute the method Download PDFInfo
- Publication number
- KR102638388B1 KR102638388B1 KR1020210071884A KR20210071884A KR102638388B1 KR 102638388 B1 KR102638388 B1 KR 102638388B1 KR 1020210071884 A KR1020210071884 A KR 1020210071884A KR 20210071884 A KR20210071884 A KR 20210071884A KR 102638388 B1 KR102638388 B1 KR 102638388B1
- Authority
- KR
- South Korea
- Prior art keywords
- objects
- diagram image
- symbol
- overlapping
- extracted
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004590 computer program Methods 0.000 title claims description 5
- 238000010586 diagram Methods 0.000 claims abstract description 248
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000013473 artificial intelligence Methods 0.000 claims description 28
- 238000000605 extraction Methods 0.000 claims description 24
- 239000000284 extract Substances 0.000 claims description 21
- 230000011218 segmentation Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 16
- 238000007781 pre-processing Methods 0.000 description 12
- 238000013135 deep learning Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000002474 experimental method Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 230000003416 augmentation Effects 0.000 description 4
- 230000003628 erosive effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013434 data augmentation Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000012530 fluid Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 102100031315 AP-2 complex subunit mu Human genes 0.000 description 1
- 101000796047 Homo sapiens AP-2 complex subunit mu Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/42—Document-oriented image-based pattern recognition based on the type of document
- G06V30/422—Technical drawings; Geographical maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/12—Bounding box
Abstract
개시된 발명의 일 실시예에 따른 객체 인식 방법은, (a) 객체 추출부에 의해, 상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 단계; (b) 중첩 비율 산출부에 의해, 추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 단계; 및 (c) 중복 객체 판단부에 의해, 상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 단계;를 포함할 수 있다.An object recognition method according to an embodiment of the disclosed invention includes the steps of: (a) extracting objects including the symbols from the diagram image by an object extractor; (b) calculating, by an overlap ratio calculation unit, an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and (c) determining, by a duplicate object determination unit, whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of the objects.
Description
본 발명은 추출된 객체의 심볼 타입에 따라 다른 기준을 적용하여 해당 객체가 중첩된 객체인지 여부를 판단함으로써 다이어그램 이미지의 심볼에 대한 객체 인식 성능을 개선할 수 있는 객체 인식 시스템 및 객체 인식 방법에 관한 것이다.The present invention relates to an object recognition system and object recognition method that can improve object recognition performance for symbols in diagram images by applying different criteria depending on the symbol type of the extracted object to determine whether the object is an overlapped object. will be.
공정 플랜트 (process plant) 산업에 사용되는 대표적인 다이어그램 (diagram)으로 P&ID (piping and instrumentation diagram)이 있다. P&ID는 PFD (process flow diagram)를 기준으로 작성이 되며 각 공정 (process)을 구성하는 주요 기자재 (equipment and materials)와 유체의 흐름을 상세하게 표현한다.A representative diagram used in the process plant industry is the P&ID (piping and instrumentation diagram). P&ID is prepared based on PFD (process flow diagram) and expresses in detail the flow of major equipment and materials and fluids that make up each process.
이러한 P&ID는 플랜트의 기본 설계 (basic design)를 전달하는 기본 매체이며 상세 설계 (detail design), 구매 및 조달, 시공 (construction), 및 시운전 (commissioning)의 기본 자료로 활용된다.This P&ID is the basic medium that conveys the basic design of the plant and is used as basic data for detailed design, purchasing and procurement, construction, and commissioning.
한편, 신규로 건설되는 플랜트에서도 FEED(front end engineering and design)단계에서 생성된 P&ID나 기자재 제작사에서 제공한 P&ID는, 계약 관계나 지적자산 보안 이슈로 인해서, 이미지 형식을 갖는 경우가 많다.Meanwhile, even in newly constructed plants, the P&ID created in the FEED (front end engineering and design) stage or the P&ID provided by the equipment manufacturer often has an image format due to contractual relationships or intellectual property security issues.
플랜트 운영사는 플랜트 운영과정에서 지속적으로 플랜트의 개선 및 확장을 하게 되는데 이때 외부 협력사로부터 이미지 형식의 P&ID를 받게 되는 경우가 많다. 플랜트 운영사가 디지털 P&ID를 적용할 수도 있으나, 장기간 운영 중인 노후 플랜트의 경우 대량의 P&ID가 이미지 형식으로 저장되어 있을 수 있다.Plant operators continuously improve and expand the plant during the plant operation process, and often receive P&IDs in image format from external partners. Plant operators may apply digital P&ID, but in the case of old plants operating for a long time, a large amount of P&ID may be stored in image format.
이에 따라 플랜트 산업에서 이미지 형식의 P&ID를 디지털 P&ID로 변환할 필요가 발생할 수 있다. 이때, 이미지 형식의 P&ID를 디지털 P&ID로 전환하기 위해서 P&ID에 포함된 심볼을 보다 잘 인식하는 기술이 필요하다.Accordingly, in the plant industry, there may be a need to convert P&ID in image format to digital P&ID. At this time, in order to convert the image format P&ID into a digital P&ID, technology is needed to better recognize the symbols included in the P&ID.
본 발명은 다이어그램 이미지로부터 추출된 객체들이 중복 객체에 해당하는지 여부를 정확하게 판단할 수 있고, 중복 객체에 해당하지 않는 객체가 중복 객체로 잘못 인식되는 것을 방지할 수 있으며, 심볼 인식 정확도를 향상시킬 수 있는 객체 인식 시스템, 객체 인식 방법 및 컴퓨터 프로그램을 제공하기 위한 것이다.The present invention can accurately determine whether objects extracted from diagram images correspond to duplicate objects, prevent objects that do not correspond to duplicate objects from being incorrectly recognized as duplicate objects, and improve symbol recognition accuracy. It is intended to provide an object recognition system, object recognition method, and computer program.
또한, 본 발명은 다이어그램 이미지의 심볼 크기 편차에 따른 성능 저하를 보상할 수 있으며, 별도의 후처리 프로세스를 통해 높은 밀도의 심볼에 대한 인식 성능을 높일 수 있는 객체 인식 시스템, 객체 인식 방법 및 컴퓨터 프로그램을 제공하기 위한 것이다.In addition, the present invention is an object recognition system, object recognition method, and computer program that can compensate for performance degradation due to symbol size deviation in diagram images and can increase recognition performance for high-density symbols through a separate post-processing process. It is intended to provide.
개시된 발명의 일 측면에 따른 다수의 심볼들을 포함하는 다이어그램 이미지에서 객체를 인식하는 다이어그램 이미지의 객체 인식 방법은, (a) 객체 추출부에 의해, 상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 단계; (b) 중첩 비율 산출부에 의해, 추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 단계; 및 (c) 중복 객체 판단부에 의해, 상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 단계;를 포함할 수 있다.An object recognition method of a diagram image for recognizing an object in a diagram image including a plurality of symbols according to an aspect of the disclosed invention includes (a) extracting objects including the symbols from the diagram image by an object extractor; step; (b) calculating, by an overlap ratio calculation unit, an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and (c) determining, by a duplicate object determination unit, whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of the objects.
또한, 상기 (c) 단계는: (c1) 상기 객체들의 크기와 형상을 분석하여 상기 객체들의 심볼 타입들을 결정하고, 상기 객체들의 심볼 타입들을 비교하는 단계; (c2) 상기 객체들의 심볼 타입들이 중첩 발생 빈도를 기반으로 결정되는 중첩 심볼 집합에 해당하는지 여부를 판단하는 단계; 및 (c3) 상기 심볼 타입들의 비교 결과 및 상기 중첩 심볼 집합에 해당하는지 여부에 따라 상기 중복 객체를 판단하는 단계를 포함할 수 있다.Additionally, step (c) includes: (c1) analyzing the size and shape of the objects to determine symbol types of the objects and comparing the symbol types of the objects; (c2) determining whether the symbol types of the objects correspond to an overlapping symbol set determined based on the frequency of overlapping occurrences; and (c3) determining the overlapping object according to a comparison result of the symbol types and whether it corresponds to the overlapping symbol set.
또한, 상기 (c3) 단계는: 상기 객체들의 심볼 타입들이 동일하지 않은 경우, 상기 객체들을 중복 객체가 아닌 것으로 판단하는 단계; 상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하는 경우, 상기 중첩 비율을 상기 심볼 타입에 따라 결정되는 제1 기준 임계값과 비교하여 상기 중복 객체를 판단하는 단계; 및 상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하지 않는 경우, 상기 중첩 비율을 상기 제1 기준 임계값보다 낮은 제2 기준 임계값과 비교하여 상기 중복 객체를 판단하는 단계;를 포함할 수 있다.Additionally, step (c3) includes: determining that the objects are not duplicate objects when the symbol types of the objects are not the same; When the symbol types of the objects are the same and correspond to the overlapping symbol set, determining the overlapping object by comparing the overlapping ratio with a first reference threshold determined according to the symbol type; And when the symbol types of the objects are the same and do not correspond to the overlapping symbol set, determining the overlapping object by comparing the overlapping ratio with a second reference threshold lower than the first reference threshold. can do.
또한, 상기 (c) 단계는: 상기 다이어그램 이미지로부터 추출된 객체를 포함하는 바운딩 박스를 생성하는 단계; 서로 겹쳐진 바운딩 박스들의 합쳐진 영역의 면적에 대한 겹쳐진 영역의 면적 비율로부터 상기 바운딩 박스들 간의 IOU 비율을 연산하는 단계; 상기 추출된 객체의 크기 및 형상을 기초로 심볼 타입을 결정하는 단계; 상기 결정된 심볼 타입을 기초로 상기 기준 임계값을 결정하는 단계; 상기 IOU 비율이 상기 기준 임계값 이상이면 상기 겹쳐진 바운딩 박스들 중 하나의 바운딩 박스를 제거하는 단계; 및 제거되지 않은 상기 바운딩 박스에 포함된 객체를 상기 바운딩 박스에 대응되는 심볼로 인식하는 단계;를 포함할 수 있다.Additionally, step (c) includes: generating a bounding box containing an object extracted from the diagram image; calculating an IOU ratio between the bounding boxes from a ratio of the area of the overlapping area to the area of the combined area of the overlapping bounding boxes; determining a symbol type based on the size and shape of the extracted object; determining the reference threshold based on the determined symbol type; removing one of the overlapping bounding boxes if the IOU ratio is greater than or equal to the reference threshold; and recognizing an object included in the bounding box that has not been removed as a symbol corresponding to the bounding box.
또한, 상기 심볼로 인식된 객체를 포함하는 바운딩 박스를 기초로, 상기 다이어그램 이미지에서의 상기 심볼의 위치 정보 또는 상기 심볼들의 리스트 중 적어도 하나를 생성하는 단계;를 더 포함할 수 있다.In addition, the method may further include generating at least one of position information of the symbol in the diagram image or a list of the symbols based on a bounding box including an object recognized as the symbol.
또한, 인공지능 학습부에 의해, 심볼의 특징을 입력 변수로 설정하고 상기 객체들의 유형을 출력 변수로 설정하여 인공지능 모델을 학습하는 단계;를 더 포함하고, 상기 (c) 단계는, 상기 추출된 객체로부터 상기 객체의 특징을 추출하는 단계; 및 상기 추출된 객체의 특징을 기초로 상기 인공지능 모델을 이용하여 상기 추출된 객체의 유형을 결정하는 단계;를 포함할 수 있다.In addition, it further includes the step of learning an artificial intelligence model by setting the characteristics of the symbol as an input variable and the types of the objects as an output variable by an artificial intelligence learning unit, wherein the step (c) includes the extraction. extracting features of the object from the object; and determining the type of the extracted object using the artificial intelligence model based on the characteristics of the extracted object.
또한, 전처리부에 의해, 상기 다이어그램 이미지의 크기를 변경하여 크기 변경 다이어그램 이미지를 생성하는 단계;를 더 포함하고, 상기 객체를 추출하는 단계는, 상기 객체 추출부에 의해, 상기 크기 변경 다이어그램 이미지에 포함되어 크기가 변경된 객체를 추출하는 단계;를 포함할 수 있다.In addition, the step of generating a size-changed diagram image by changing the size of the diagram image by a pre-processing unit, wherein the step of extracting the object includes adding the size-changed diagram image to the size-changed diagram image by the object extraction unit. A step of extracting the included object whose size has changed may be included.
또한, 전처리부에 의해, 상기 다이어그램 이미지를 분할하여 복수개의 분할 다이어그램 이미지를 생성하는 단계;를 더 포함하고, 상기 객체를 추출하는 단계는, 상기 객체 추출부에 의해, 상기 분할 다이어그램 이미지에 포함된 객체를 추출하는 단계;를 더 포함할 수 있다.In addition, the step of generating a plurality of segmented diagram images by dividing the diagram image by a preprocessor, wherein the step of extracting the object includes dividing the diagram image into a plurality of segmented diagram images by the object extracting unit. A step of extracting an object may be further included.
또한, 전처리부에 의해, 상기 다이어그램 이미지의 크기를 변경하여 크기 변경 다이어그램 이미지를 생성하고, 상기 다이어그램 이미지를 분할하여 복수개의 분할 다이어그램 이미지를 생성하는 단계;를 더 포함하고, 상기 객체를 추출하는 단계는, 상기 객체 추출부에 의해, 상기 크기 변경 다이어그램 이미지에 포함되어 크기가 변경된 객체 및 상기 분할 다이어그램 이미지에 포함된 객체를 기초로, 상기 다이어그램 이미지에 포함된 객체를 추출하는 단계;를 포함할 수 있다.In addition, the step of generating a size-changed diagram image by changing the size of the diagram image by a preprocessor, and generating a plurality of split diagram images by dividing the diagram image, and extracting the object. may include extracting, by the object extraction unit, an object included in the diagram image based on an object whose size has been changed and included in the size change diagram image and an object included in the segmented diagram image. there is.
또한, 텍스트 추출부에 의해, 상기 분할 다이어그램 이미지에 포함된 텍스트를 추출하여 상기 다이어그램 이미지의 텍스트를 인식하는 단계;를 더 포함할 수 있다.In addition, the method may further include extracting text included in the segmented diagram image by a text extraction unit and recognizing the text of the diagram image.
또한, 전처리부에 의해, 원본 다이어그램 이미지로부터 수평선을 추출하고, 추출된 수평선들 중 길이가 가장 긴 수평선을 결정하고, 상기 가장 긴 수평선에 연결된 모든 검정 픽셀을 추출하고, 상기 원본 다이어그램 이미지로부터 상기 추출된 검정 픽셀을 제거하여 상기 다이어그램 이미지를 생성하는 단계;를 더 포함할 수 있다.In addition, the preprocessor extracts a horizontal line from the original diagram image, determines the horizontal line with the longest length among the extracted horizontal lines, extracts all black pixels connected to the longest horizontal line, and extracts the horizontal line from the original diagram image. The method may further include generating the diagram image by removing black pixels.
개시된 발명의 일 측면에 따른 컴퓨터 프로그램은, 상기 객체 인식 방법을 실행시키도록 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.A computer program according to one aspect of the disclosed invention may be stored in a computer-readable recording medium to execute the object recognition method.
개시된 발명의 일 측면에 따른 다수의 심볼들을 포함하는 다이어그램 이미지에서 객체를 인식하는 다이어그램 이미지의 객체 인식 시스템은, 상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 객체 추출부; 추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 중첩 비율 산출부; 및 상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 중복 객체 판단부;를 포함할 수 있다.An object recognition system for a diagram image that recognizes an object in a diagram image including a plurality of symbols according to an aspect of the disclosed invention includes an object extraction unit that extracts objects including the symbols from the diagram image; an overlap ratio calculation unit that calculates an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and a duplicate object determination unit that determines whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of objects.
또한, 상기 중복 객체 판단부는: 상기 객체들의 크기와 형상을 분석하여 상기 객체들의 심볼 타입들을 결정하고, 상기 객체들의 심볼 타입들을 비교하고; 상기 객체들의 심볼 타입들이 중첩 발생 빈도를 기반으로 결정되는 중첩 심볼 집합에 해당하는지 여부를 판단하고; 그리고 상기 심볼 타입들의 비교 결과 및 상기 중첩 심볼 집합에 해당하는지 여부에 따라 상기 중복 객체를 판단하도록 구성될 수 있다.In addition, the duplicate object determination unit: determines symbol types of the objects by analyzing the size and shape of the objects, and compares the symbol types of the objects; Determine whether the symbol types of the objects correspond to an overlapping symbol set determined based on the frequency of overlapping occurrences; And, the overlapping object may be determined according to a comparison result of the symbol types and whether it corresponds to the overlapping symbol set.
또한, 상기 중복 객체 판단부는: 상기 객체들의 심볼 타입들이 동일하지 않은 경우, 상기 객체들을 중복 객체가 아닌 것으로 판단하고; 상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하는 경우, 상기 중첩 비율을 상기 심볼 타입에 따라 결정되는 제1 기준 임계값과 비교하여 상기 중복 객체를 판단하고; 그리고 상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하지 않는 경우, 상기 중첩 비율을 상기 제1 기준 임계값보다 낮은 제2 기준 임계값과 비교하여 상기 중복 객체를 판단하도록 구성될 수 있다.Additionally, the duplicate object determination unit: determines that the objects are not duplicate objects when the symbol types of the objects are not the same; If the symbol types of the objects are the same and correspond to the overlapping symbol set, determine the overlapping object by comparing the overlapping ratio with a first reference threshold determined according to the symbol type; And when the symbol types of the objects are the same and do not correspond to the overlapping symbol set, the overlapping ratio is compared with a second reference threshold lower than the first reference threshold to determine the overlapping object. .
또한, 상기 중복 객체 판단부는: 상기 다이어그램 이미지로부터 추출된 객체를 포함하는 바운딩 박스를 생성하고; 서로 겹쳐진 바운딩 박스들의 합쳐진 영역의 면적에 대한 겹쳐진 영역의 면적 비율로부터 상기 바운딩 박스들 간의 IOU 비율을 연산하고; 상기 추출된 객체의 크기 및 형상을 기초로 심볼 타입을 결정하고; 상기 결정된 심볼 타입을 기초로 상기 기준 임계값을 결정하고; 상기 IOU 비율이 상기 기준 임계값 이상이면 상기 겹쳐진 바운딩 박스들 중 하나의 바운딩 박스를 제거하고; 그리고 제거되지 않은 상기 바운딩 박스에 포함된 객체를 상기 바운딩 박스에 대응되는 심볼로 인식하도록 구성될 수 있다.Additionally, the duplicate object determination unit: generates a bounding box including an object extracted from the diagram image; Calculate the IOU ratio between the bounding boxes from the ratio of the area of the overlapped area to the area of the combined area of the overlapping bounding boxes; determine a symbol type based on the size and shape of the extracted object; determine the reference threshold based on the determined symbol type; if the IOU ratio is greater than or equal to the reference threshold, remove one bounding box of the overlapping bounding boxes; Additionally, it may be configured to recognize an object included in the bounding box that has not been removed as a symbol corresponding to the bounding box.
또한, 상기 심볼로 인식된 객체를 포함하는 바운딩 박스를 기초로, 상기 다이어그램 이미지에서의 상기 심볼의 위치 정보 또는 상기 심볼들의 리스트 중 적어도 하나를 생성하도록 구성되는 프로세서;를 더 포함할 수 있다.In addition, it may further include a processor configured to generate at least one of position information of the symbol in the diagram image or a list of the symbols, based on a bounding box including an object recognized as the symbol.
또한, 심볼의 특징을 입력 변수로 설정하고 상기 객체들의 유형을 출력 변수로 설정하여 인공지능 모델을 학습하도록 구성되는 인공지능 학습부;를 더 포함하고, 상기 중복 객체 판단부는: 상기 추출된 객체로부터 상기 객체의 특징을 추출하고; 그리고 상기 추출된 객체의 특징을 기초로 상기 인공지능 모델을 이용하여 상기 추출된 객체의 유형을 결정하도록 구성될 수 있다.In addition, it further includes an artificial intelligence learning unit configured to learn an artificial intelligence model by setting the characteristics of the symbol as an input variable and the types of the objects as an output variable, wherein the duplicate object determination unit: selects the extracted object from the extracted object. extract features of the object; And it may be configured to determine the type of the extracted object using the artificial intelligence model based on the characteristics of the extracted object.
또한, 상기 다이어그램 이미지의 크기를 변경하여 크기 변경 다이어그램 이미지를 생성하고, 상기 다이어그램 이미지를 분할하여 복수개의 분할 다이어그램 이미지를 생성하도록 구성되는 전처리부;를 더 포함하고, 상기 객체 추출부는, 상기 크기 변경 다이어그램 이미지에 포함되어 크기가 변경된 객체 및 상기 분할 다이어그램 이미지에 포함된 객체를 기초로, 상기 다이어그램 이미지에 포함된 객체를 추출하도록 구성될 수 있다.In addition, it further includes a preprocessor configured to change the size of the diagram image to generate a size-changed diagram image, and to divide the diagram image to generate a plurality of split diagram images, wherein the object extractor is configured to change the size. It may be configured to extract objects included in the diagram image based on objects included in the diagram image and whose size has been changed and objects included in the split diagram image.
또한, 상기 분할 다이어그램 이미지에 포함된 텍스트를 추출하여 상기 다이어그램 이미지의 텍스트를 인식하도록 구성되는 텍스트 추출부;를 더 포함할 수 있다.In addition, it may further include a text extraction unit configured to extract text included in the segmented diagram image and recognize the text of the diagram image.
또한, 원본 다이어그램 이미지로부터 수평선을 추출하고, 추출된 수평선들 중 길이가 가장 긴 수평선을 결정하고, 상기 가장 긴 수평선에 연결된 모든 검정 픽셀을 추출하고, 상기 원본 다이어그램 이미지로부터 상기 추출된 검정 픽셀을 제거하여 상기 다이어그램 이미지를 생성하도록 구성되는 전처리부;를 포함할 수 있다.Additionally, a horizontal line is extracted from the original diagram image, a horizontal line with the longest length among the extracted horizontal lines is determined, all black pixels connected to the longest horizontal line are extracted, and the extracted black pixels are removed from the original diagram image. It may include a pre-processing unit configured to generate the diagram image.
개시된 발명의 일 측면에 따르면, 다이어그램 이미지로부터 추출된 객체들이 중복 객체에 해당하는지 여부를 정확하게 판단할 수 있고, 중복 객체에 해당하지 않는 객체가 중복 객체로 잘못 인식되는 것을 방지할 수 있으며, 심볼 인식 정확도를 향상시킬 수 있다.According to one aspect of the disclosed invention, it is possible to accurately determine whether objects extracted from a diagram image correspond to duplicate objects, prevent objects that do not correspond to duplicate objects from being incorrectly recognized as duplicate objects, and symbolize recognition. Accuracy can be improved.
또한, 본 발명의 실시예에 의하면, 다이어그램 이미지의 심볼 크기 편차에 따른 성능 저하를 보상할 수 있으며, 별도의 후처리 프로세스를 통해 높은 밀도의 심볼에 대한 인식 성능을 높일 수 있다.In addition, according to an embodiment of the present invention, performance degradation due to symbol size deviation of the diagram image can be compensated, and recognition performance for high-density symbols can be improved through a separate post-processing process.
또한, 본 발명의 실시예에 의하면, 회전 판단(rotation estimation) 과정을 통해 각 문자열 영역이 회전된 문자열인지, 회전되지 않은 문자열인지를 구분하여 문자열을 인식함으로써 문자열의 인식 성능을 향상시킬 수 있다.Additionally, according to an embodiment of the present invention, string recognition performance can be improved by recognizing a string by distinguishing whether each string area is a rotated string or an unrotated string through a rotation estimation process.
도 1은 일 실시예에 따른 객체 인식 시스템의 구성도이다.
도 2는 객체 인식을 실패하는 경우를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 심볼 타입을 분류한 표이다.
도 4는 인식된 객체를 중복 객체로 잘못 판단하는 것을 설명하기 위한 도면이다.
도 5는 일 실시예에 따라 인식된 객체에 서로 다른 기준 임계값을 적용했을 때의 차이점을 설명하기 위한 도면이다.
도 6은 일 실시예에 따라 생성된 심볼들의 리스트를 도시한 도면이다.
도 7은 일 실시예에 따른 인공지능 모델의 데이터 구조를 나타낸 도면이다.
도 8은 일 실시예에 따라 크기 변경 다이어그램 이미지 및 분할 다이어그램 이미지에 포함된 객체를 추출하는 과정을 도시한 도면이다.
도 9는 일 실시예에 따라 다이어그램 이미지에 포함된 텍스트를 인식하는 과정을 도시한 도면이다.
도 10은 일 실시예에 따라 텍스트를 추출하는 과정을 도시한 도면이다.
도 11은 원본 다이어그램 이미지를 전처리하는 과정을 도시한 도면이다.
도 12는 일 실시예에 따른 객체 인식 방법의 순서도이다.
도 13은 또 다른 실시예에 따른 객체 인식 방법의 순서도이다.1 is a configuration diagram of an object recognition system according to an embodiment.
Figure 2 is a diagram for explaining a case where object recognition fails.
Figure 3 is a table classifying symbol types according to one embodiment.
Figure 4 is a diagram to explain incorrectly judging a recognized object as a duplicate object.
FIG. 5 is a diagram illustrating differences when different reference thresholds are applied to recognized objects according to an embodiment.
Figure 6 is a diagram illustrating a list of symbols created according to one embodiment.
Figure 7 is a diagram showing the data structure of an artificial intelligence model according to an embodiment.
FIG. 8 is a diagram illustrating a process for extracting objects included in a size change diagram image and a split diagram image according to an embodiment.
FIG. 9 is a diagram illustrating a process for recognizing text included in a diagram image according to an embodiment.
Figure 10 is a diagram illustrating a process for extracting text according to one embodiment.
Figure 11 is a diagram showing the process of preprocessing an original diagram image.
Figure 12 is a flowchart of an object recognition method according to an embodiment.
13 is a flowchart of an object recognition method according to another embodiment.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 개시된 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '~부'라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '~부'가 하나의 구성요소로 구현되거나, 하나의 '~부'가 복수의 구성요소들을 포함하는 것도 가능하다.Like reference numerals refer to like elements throughout the specification. This specification does not describe all elements of the embodiments, and general content or overlapping content between the embodiments in the technical field to which the disclosed invention pertains is omitted. The term '~unit' used in the specification may be implemented as software or hardware, and depending on the embodiments, multiple '~units' may be implemented as one component, or one '~unit' may be implemented as a plurality of components. It is also possible to include elements.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Additionally, when a part "includes" a certain component, this means that it may further include other components rather than excluding other components, unless specifically stated to the contrary.
제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.Terms such as first and second are used to distinguish one component from another component, and the components are not limited by the above-mentioned terms.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.Singular expressions include plural expressions unless the context clearly makes an exception.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.The identification code for each step is used for convenience of explanation. The identification code does not explain the order of each step, and each step may be performed differently from the specified order unless a specific order is clearly stated in the context. there is.
이하 첨부된 도면들을 참고하여 개시된 발명의 작용 원리 및 실시예들에 대해 설명한다.Hereinafter, the operating principle and embodiments of the disclosed invention will be described with reference to the attached drawings.
도 1은 일 실시예에 따른 객체 인식 시스템의 구성도이다.1 is a configuration diagram of an object recognition system according to an embodiment.
도 1을 참조하면, 본 발명의 실시예에 따른 객체 인식 시스템(100)은, 객체 추출부(110), 중첩 비율 산출부(120), 중복 객체 판단부(130), 전처리부(140), 프로세서(150), 인공지능 학습부(160), 메모리(170)를 포함할 수 있다.Referring to FIG. 1, the
다이어그램 이미지(200)는 이미지 데이터의 형태로 객체 인식 시스템(100)에 입력될 수 있다.The
다이어그램 이미지(200)는 공정 플랜트 산업에 사용되는 다이어그램(diagram)일 수 있다. 예를 들어, 다이어그램 이미지(200)는 P&ID(piping and instrumentation diagram)일 수 있으나, 이에 한정되는 것은 아니다.The
다이어그램 이미지(200)는 PFD(process flow diagram)를 기준으로 작성될 수 있으며, 각 공정(process)을 구성하는 주요 기자재(equipment and materials)와 유체의 흐름을 상세하게 표현할 수 있다. 즉, 다이어그램 이미지(200)는 플랜트의 기본 설계를 전달하는 기본매체일 수 있으며, 상세 설계, 구매, 조달, 시공 및 시운전의 기본 자료로 활용되는 이미지일 수 있다.The
객체 인식 시스템(100)은 다수의 심볼(300)들을 포함하는 다이어그램 이미지(200)에서 객체(400)를 인식할 수 있다.The
객체 추출부(110)는 다이어그램 이미지(200)로부터 객체(400)들을 추출할 수 있다.The
객체(400)는 심볼(300)을 포함할 수 있다. 즉, 객체 인식 시스템(100)은 다이어그램 이미지(200)로부터 객체(400)를 추출하면, 추출된 객체(400)에 포함된 심볼(300)을 인식할 수 있다.
한편, 객체 추출부(110)는 다이어그램 이미지(200)로부터 복수개의 객체(400)들을 추출하게 되며, 이때 두개의 추출된 객체(400)들 각각이 차지하고 있는 영역들은 서로 겹쳐질 수 있다.Meanwhile, the
객체 추출부(110)는 종래의 객체 검출(Object detection)을 통하여 다이어그램 이미지(200) 내에 존재하는 객체(400)의 위치를 탐지할 수 있다.The
중첩 비율 산출부(120)는 추출된 객체(400)들의 중첩 영역(501)과 객체들의 영역(500) 간의 중첩 비율을 산출할 수 있다.The overlap
중첩 영역(501)은 추출된 두개의 객체(400)가 겹쳐졌을 때 겹쳐진 영역의 면적일 수 있다.The
또한, 객체들의 영역(500)은 추출된 두개의 객체(400)가 겹쳐졌을 때, 해당 객체(400)들이 차지하고 있는 총 면적일 수 있다. 즉, 객체들의 영역(500)은 각 객체(400)의 영역을 합친 값에 중첩 영역(501)을 뺀 값일 수 있다.Additionally, the
중첩 비율은 객체들의 영역(500)에 대한 중첩 영역(501)의 비율일 수 있다. 즉, 중첩 비율은 어느 두 객체(400)가 겹쳐졌을 때, 해당 객체(400)들이 겹쳐진 비율을 나타낸 값일 수 있다.The overlap ratio may be the ratio of the overlapping
중복 객체 판단부(130)는 중첩 비율을 객체(400)들의 유형에 따라 결정되는 기준 임계값과 비교하여 객체(400)들이 중복 객체(401)에 해당하는지 여부를 판단할 수 있다.The duplicate
객체(400)들의 유형은 다이어그램 이미지(200)로부터 추출될 수 있는 객체(400)들의 종류일 수 있다. 또한, 객체(400)들의 유형은 다이어그램 이미지(200)로부터 추출될 수 있는 어느 한 객체(400)의 형태에 대한 유형일 수도 있으나. 복수개의 객체(400)들이 이루고 있는 형태에 대한 유형일 수도 있다.The types of
객체(400)가 다이어그램 이미지(200)에 포함된 심볼(300)일 경우, 객체(400)들의 유형은 객체(400)들의 심볼 타입일 수 있다. 이러한 심볼 타입은 각 심볼(300)들의 크기 및 형상에 따라 미리 분류하여 결정될 수 있다.When the
기준 임계값은 추출된 두 객체(400)의 영역이 서로 겹쳐졌을 경우, 해당 두 객체(400)들이 중복 객체(401)에 해당되는지 여부를 판단하는데 기준이 되는 값일 수 있다. 즉, 기준 임계값은 0 내지 1 사이의 수치를 가질 수 있다. 기준 임계값은 미리 설정될 수 있다.The reference threshold may be a standard value for determining whether the two extracted
추출된 두 객체(400)가 사실은 하나의 객체(400)로 인식되어야 하는 경우 임에도 별개의 객체(400)로 인식된 것일 수 있다. 이때, 중복 객체 판단부(130)는 해당 추출된 두 객체(400)를 중복 객체(401)로 판단할 수 있다.Although the two extracted
중복 객체 판단부(130)는 동일한 객체(400)로 탐지된 객체(400)들 사이의 중첩 비율이 기준 임계값을 초과하면, 해당 객체(400)들을 중복 객체(401)라고 판단할 수 있다. 이때, 객체(400)들의 유형마다 기준 임계값이 다르므로, 같은 중첩 비율인 경우라 하더라도, 중복 객체 판단부(130)는 어느 두 객체(400)에 대해서는 중복 객체(401)라 판단하고, 또 다른 두 객체(400)에 대해서는 중복 객체(401)가 아니라고 판단할 수 있다.If the overlap ratio between
프로세서(150)는 중복 객체(401)로 판단된 두 객체(400) 중 보다 인식이 잘 되는 객체(400)만을 심볼(300)로 인식하고, 나머지 한 객체(400)에 대해서는 심볼(300)로 인식하지 않을 수 있다. 결과적으로, 프로세서(150)는 본래 하나의 객체(400)로 추출되어야 했던 하나의 심볼(300)을 두개의 심볼(300)로 잘 못 인식하는 일이 없도록 할 수 있다.The
전처리부(140), 객체 추출부(110), 중첩 비율 산출부(120), 중복 객체 판단부(130), 인공지능 학습부(160)는 객체 인식 시스템(100)에 포함된 복수개의 프로세서(150) 중 어느 하나의 프로세서(150)를 포함할 수 있다. 또한, 지금까지 설명된 본 발명의 실시예 및 앞으로 설명할 실시예에 따른 객체 인식 방법은, 프로세서(150)에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다.The
여기서 프로그램은, 프로그램 명령, 데이터 파일 및 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 프로그램은 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 부호 수정을 위한 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 전술한 정보 표시 방법을 구현하기 위한 프로그램은, 프로세서(150)에 의해 판독 가능한 기록매체에 기록될 수 있다. 이때, 기록매체는 메모리(170)일 수 있다.Here, the program may include program instructions, data files, and data structures, etc., singly or in combination. Programs may be designed and produced using machine code or high-level language code. The program may be specially designed to implement the above-described method for modifying the code, or may be implemented using various functions or definitions known and available to those skilled in the art in the field of computer software. A program for implementing the above-described information display method may be recorded on a recording medium readable by the
메모리(170)는 전술한 동작 및 후술하는 동작을 수행하는 프로그램을 저장할 수 있으며, 메모리(170)는 저장된 프로그램을 실행시킬 수 있다. 프로세서(150)와 메모리(170)가 복수인 경우에, 이들이 하나의 칩에 집적되는 것도 가능하고, 물리적으로 분리된 위치에 마련되는 것도 가능하다. 메모리(170)는 데이터를 일시적으로 기억하기 위한 S램(Static Random Access Memory, S-RAM), D랩(Dynamic Random Access Memory) 등의 휘발성 메모리를 포함할 수 있다. 또한, 메모리(170)는 제어 프로그램 및 제어 데이터를 장기간 저장하기 위한 롬(Read Only Memory), 이피롬(Erasable Programmable Read Only Memory: EPROM), 이이피롬(Electrically Erasable Programmable Read Only Memory: EEPROM) 등의 비휘발성 메모리를 포함할 수 있다.The
프로세서(150)는 각종 논리 회로와 연산 회로를 포함할 수 있으며, 메모리(170)로부터 제공된 프로그램에 따라 데이터를 처리하고, 처리 결과에 따라 제어 신호를 생성할 수 있다.The
도 2는 객체 인식을 실패하는 경우를 설명하기 위한 도면이고, 도 3은 일 실시예에 따른 심볼 타입을 분류한 표이며, 도 4는 인식된 객체를 중복 객체로 잘못 판단하는 것을 설명하기 위한 도면이다.FIG. 2 is a diagram for explaining a case where object recognition fails, FIG. 3 is a table classifying symbol types according to an embodiment, and FIG. 4 is a diagram for explaining incorrectly judging a recognized object as a duplicate object. am.
도 2를 참조하면, 다이어그램 이미지(200)에서 크기가 큰 심볼(300)들에 대해서는 처음부터 객체(400)를 추출하지 못하여 심볼(300)을 검출하지 못하는 경우가 있음을 확인할 수 있다. 이러한 큰 심볼(300)에 대해서는 학습 데이터가 충분할 경우 성공적으로 검출할 수 있다.Referring to FIG. 2, it can be seen that for
다이어그램 이미지(200)에서 크기가 작은 심볼(300)들에 대해서는 주로 유사한 형상을 가지는 다른 심볼(300)로 오인식하는 경우가 있음을 확인할 수 있다. 따라서, 작은 심볼(300)들의 경우 단순히 객체(400)를 추출하지 못하여 오류가 발생하는 것이 아니라, 추출된 객체(400)를 다른 심볼(300)로 잘못 인식하여 오류가 발생할 수 있음을 확인할 수 있다.It can be seen that small-
도 3을 참조하면, 다이어그램 이미지(200)에 포함될 수 있는 심볼(300)들이 심볼 타입별로 분류될 수 있음을 확인할 수 있다. 즉, 심볼(300)들은 도시된 바와 같이 5개의 심볼 타입으로 분류될 수 있으나, 분류되는 방식 또는 타입이 이에 한정되는 것은 아니며, 각 심볼(300)들의 특징에 따라 다른 다양한 방식으로 분류될 수도 있다.Referring to FIG. 3, it can be seen that
추출된 객체(400)로부터 인식되는 심볼(300)의 심볼 타입에 따라 복수개의 심볼(300)임에도 하나의 심볼(300)로 잘못 인식되는 정도가 다를 수 있다. 즉, 본래 두개의 객체(400)로 인식되어 결과적으로 두개의 심볼(300)로 인식되어야 함에도 하나의 심볼(300)로 잘못 인식되는 정도는 해당 심볼(300)의 형태, 타입에 따라 달라질 수 있다.Depending on the symbol type of the
예를 들어, 'PIPING COMPONENT'에 해당하는 심볼(300)들은 'EQUIPMENT'에 해당하는 심볼(300)들보다 복수개의 심볼(300)이 하나의 심볼(300)로 잘못 인식되는 경우가 많을 수 있다.For example, the
도 4를 참조하면, 두개의 심볼(300)로 인식되어야 하는 두개의 객체(400)가 최종적으로 하나의 심볼(300)로 오인식되는 과정을 확인할 수 있다.Referring to FIG. 4, one can see the process in which two
중복 객체 판단부(130)는 두개의 객체(400) 사이의 중첩 영역(501)이 기준 임계값보다 크면 해당 객체(400)들을 중복 객체(401)로 판단할 수 있다. 한편, 이러한 과정은 중첩 영역(501)이 형성된 두 객체(400)에 대해서라면 계속 반복해서 일어날 수 있다. 예를 들어, 어느 두 객체(400)의 중복 객체 여부를 판단한 후, 해당 두 객체(400) 중 한 객체(400)와 제3의 객체(400)가 중복 객체(401)에 해당하는지 여부를 또 판단할 수 있다.The duplicate
프로세서(150)는 중복 객체(401)로 판단된 두 객체(400) 중 보다 인식이 잘 되는 객체(400)만을 심볼(300)로 인식할 수 있으므로, 전술한 과정을 반복하면 최종적으로 영역이 겹쳐진 객체(400)들의 경우 한 객체(400)만이 심볼(300)을 인식하는데 이용되는 경우도 발생할 수 있다. 이러한 과정은 한 개의 심볼(300)을 복수개의 심볼(300)로 잘못 인식하는 것을 방지하기 위하여 필요할 수 있다.Since the
하지만, 심볼(300)의 타입에 따라 두개의 별개 심볼(300)이 인접한 경우, 별개의 심볼(300)임에도 불구하고 최종적으로 하나의 심볼(300)로 오인식하는 경우가 발생될 수 있다.However, depending on the type of
따라서, 추출된 복수개의 중첩된 객체(400)들에 대해서 동일한 기준 임계값을 적용하여 해당 객체(400)가 중복 객체(401)인지 여부를 판단하는 것은 바람직하지 않을 수 있다. 즉, 복수개의 심볼(300)이 하나의 심볼(300)로 잘못 인식되는 경우가 더 많은 심볼 타입에 대해서는 좀더 높은 값의 기준 임계값을 적용하여, 어느 정도 중첩이 되었다고 하더라도 추출된 객체(400)들이 중복 객체(401)가 아니라고 판단하는 것이 바람직할 수 있다.Therefore, it may not be desirable to apply the same reference threshold to the extracted plurality of overlapping
예를 들어, 도 4를 참조하면, 다이어그램 이미지(200)에서 2개의 인접한 'Flange'를 나타내는 2개의 심볼(300)이 있는 경우, 인식된 두 객체(400)가 겹쳐진 중첩 영역(501)이 기준 임계값보다 커서 결과적으로 1개의 심볼(300)로 잘못 인식하는 경우가 발생할 수 있다.For example, referring to FIG. 4, when there are two
도 5는 일 실시예에 따라 인식된 객체에 서로 다른 기준 임계값을 적용했을 때의 차이점을 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating differences when different reference thresholds are applied to recognized objects according to an embodiment.
도 5를 참조하면, 추출된 복수개의 객체(400)들이 중복 객체(401)인지 여부를 판단할 때, 적용되는 기준 임계값에 따라 결과가 달라질 수 있음을 확인할 수 있다.Referring to FIG. 5 , it can be seen that when determining whether a plurality of extracted
중복 객체 판단부(130)는 객체(400)들의 크기와 형상을 분석하여 객체(400)들의 심볼 타입들을 결정하고, 객체(400)들의 심볼 타입들을 비교할 수 있다.The duplicate
중복 객체 판단부(130)는 종래의 객체 검출(Object detection)을 통하여 다이어그램 이미지(200) 내에 존재하는 객체(400)의 종류를 결정할 수 있다.The duplicate
객체 검출은 이미지를 이해하기 위한 방법으로, 컴퓨터 비전 분야에서 주요하게 연구되어 온 기술이다. 전통적인 기계학습은 특징(feature)들을 객체(400)에서 추출할 수 있다. 이후 서로 다른 객체(400)들에서 추출된 특징의 분포를 강건하게 분류할 수 있는 SVM 및 Adaboost 등과 같은 분류기(classifier)를 학습시킬 수 있다. 이후 응용 단계에서는 검출(Detection)을 수행하고자 하는 입력 이미지로부터 특징을 추출하고 분류기를 통과시켜 객체(400)를 탐지(detect)할 수 있다.Object detection is a method for understanding images and is a technology that has been majorly researched in the field of computer vision. Traditional machine learning can extract features from the
한편, 객체 추출부(110)가 반드시 기계학습 기반의 객체 검출을 통해서 다이어그램 이미지(200) 내에 존재하는 객체(400)를 추출해야 하는 것은 아니다.Meanwhile, the
예를 들어, 딥러닝 기반의 객체 검출 기술이 기계학습 기반의 객체 검출 대신 이용될 수 있다. 딥러닝 기반의 객체 검출 기술은 이미지로부터 추출하는 객체(400)의 특징(feature)을 데이터를 기반으로 학습한다. 이미지로부터 특징(feature)을 추출하는 방식을 학습하기 위해 여러 단계의 컨볼루션 계층(convolution layer)을 쌓은 CNN(Convolutional Neural Networks) 구조가 널리 활용되고 있다.For example, deep learning-based object detection technology can be used instead of machine learning-based object detection. Deep learning-based object detection technology learns the features of the
중복 객체 판단부(130)는 객체(400)들의 심볼 타입들이 중첩 심볼 집합에 해당하는지 여부를 판단할 수 있다.The overlapping
중첩 심볼 집합은 중첩 발생 빈도를 기반으로 결정되는 집합일 수 있다.The overlapping symbol set may be a set determined based on the frequency of overlapping occurrences.
중복 객체 판단부(130)는 심볼 타입들의 비교 결과 및 중첩 심볼 집합에 해당하는지 여부에 따라 중복 객체(401)를 판단하도록 구성될 수 있다.The duplicate
[방정식 1][Equation 1]
[방정식 1]을 참조하면, 중첩 심볼 집합은 객체(400)의 인식 시 중첩이 발생하는 빈도가 높은 심볼(300)들의 집합()일 수 있다.Referring to [Equation 1], the overlapping symbol set is a set of
는 추출된 두 객체(400)에 각각 대응되는 와 의 중첩 비율이며 는 의 심볼 타입을 나타내는 함수일 수 있다. corresponds to each of the two extracted
중복 객체 판단부(130)는 객체(400)들의 심볼 타입들이 동일하지 않은 경우, 객체(400)들을 중복 객체(401)가 아닌 것으로 판단할 수 있다.If the symbol types of the
즉 [방정식 1]을 다시 참조하면, 두 객체(400)의 심볼 타입이 다르면(i.e., 중복 객체 판단부(130)는 해당 두 객체(400)가 중복 객체(401)가 아닌 것으로 판단할 수 있다.That is, referring again to [Equation 1], if the symbol types of the two
두 객체(400)가 중복 객체(401)가 아닌 것으로 판단되면, 중복 객체 판단부(130)는 해당 두 객체(400)에 기초하여 해당 두 객체(400) 각각에 해당하는 심볼(300)을 인식할 수 있다.If it is determined that the two
중복 객체 판단부(130)는 객체(400)들의 심볼 타입들이 동일하고, 중첩 심볼 집합에 해당하는 경우, 중첩 비율을 심볼 타입에 따라 결정되는 제1 기준 임계값과 비교하여 중복 객체(401)를 판단할 수 있다.If the symbol types of the
제1 기준 임계값은 중첩이 잘 일어나지 않는 심볼 타입의 객체(400)가 중복 객체(401)인지 여부를 판단하는데 기준이 되는 기준 임계값일 수 있다.The first reference threshold may be a reference threshold that is used as a standard for determining whether an
[방정식 1]을 참조하면, 두 객체(400)들의 심볼 타입이 동일하고, 두 객체(400)가 중첩 심볼 집합에 해당되는 경우(), 중첩 비율이 제1 기준 임계값보다 크면(), 해당 두 객체(400)를 중복 객체(401)로 판단할 수 있다.Referring to [Equation 1], if the symbol types of the two
중복 객체 판단부(130)는 객체(400)들의 심볼 타입들이 동일하고, 중첩 심볼 집합에 해당하지 않는 경우, 중첩 비율을 제1 기준 임계값보다 낮은 제2 기준 임계값과 비교하여 중복 객체(401)를 판단하도록 구성될 수 있다.If the symbol types of the
제2 기준 임계값은 중첩이 잘 발생하는 심볼 타입의 객체(400)가 중복 객체(401)인지 여부를 판단하는데 기준이 되는 기준 임계값일 수 있다.The second reference threshold may be a reference threshold that serves as a standard for determining whether an
[방정식 1]을 다시 참조하면, 두 객체(400)들의 심볼 타입이 동일하고, 두 객체(400)가 중첩 심볼 집합에 해당하지 않는 경우(), 중첩 비율이 제2 기준 임계값보다 크면(), 해당 두 객체(400)를 중복 객체(401)로 판단할 수 있다.Referring again to [Equation 1], if the symbol types of the two
결과적으로, 본 발명의 실시예에 의하면, 일률적인 기준 임계값을 적용하여 중복 객체(401)인지 여부를 판단하고 중복 객체(401)로 판단되면 하나의 객체만을 심볼(300)로 인식하는 객체 인식 방법보다 심볼(300)을 잘 인식할 수 있다.As a result, according to an embodiment of the present invention, object recognition determines whether or not a
즉, 본 발명의 객체 인식 시스템(100)은 높은 밀도를 갖으며 서로 다른 크기 및 형상 복잡도를 가지는 여러 종류 심볼(300)로 구성되는 다이어그램 이미지(P&ID)(200)에 대해서 딥러닝 기술을 적용하여 산업에서 적용 가능한 수준으로 심볼(300)을 인식할 수 있다.That is, the
다시 도 5를 참조하면, 중복 객체 판단부(130)는 다이어그램 이미지(200)로부터 추출된 객체(400)를 포함하는 바운딩 박스(600)를 생성할 수 있다.Referring again to FIG. 5 , the duplicate
하나의 바운딩 박스(600)는 하나의 객체(400)에 대응될 수 있으며, 해당 객체(400)의 위치 정보를 생성하는데 이용될 수 있다. 예를 들어, 바운딩 박스(600)에 포함되는 객체(400)의 위치 정보는 해당 바운딩 박스(600)의 좌상단 및 우하단의 좌표정보일 수 있다.One
중복 객체 판단부(130)는 서로 겹쳐진 바운딩 박스(600)들의 합쳐진 영역의 면적에 대한 겹쳐진 영역의 면적 비율로부터 바운딩 박스(600)들 간의 IOU(intersection over union) 비율을 연산할 수 있다. 이때, IOU 비율은 두 바운딩 박스(600)들 사이의 중첩 비율일 수 있다.The overlapping
중복 객체 판단부(130)는 추출된 두 객체(400)의 심볼 타입을 기초로 기준 임계값을 결정하고, IOU 비율이 결정된 기준 임계값 이상이면 겹쳐진 바운딩 박스(600)들 중 하나의 바운딩 박스(600)를 제거할 수 있다.The overlapping
중복 객체 판단부(130)는 제거되지 않은 바운딩 박스(600)에 포함된 객체(400)를 바운딩 박스(600)에 대응되는 심볼(300)로 인식하도록 구성될 수 있다.The duplicate
즉, 중복 객체 판단부(130)는 한 개의 심볼(300)임에도 두 개의 바운딩 박스(600)가 생성되어 두 개의 심볼(300)로 오인식되는 것을 막기 위하여, 두 바운딩 박스(600)간 겹쳐진 비율이 일정 크기 이상이면 하나의 바운딩 박스(600)만을 남겨서 해당 심볼(300)이 한 개의 심볼(300)로 정상적으로 인식되도록 할 수 있다.That is, the duplicate
도 6은 일 실시예에 따라 생성된 심볼들의 리스트를 도시한 도면이다.Figure 6 is a diagram illustrating a list of symbols created according to one embodiment.
도 6을 참조하면, 다이어그램 이미지(200)에 포함된 객체(400)들이 인식되어 있는 것을 확인할 수 있고, 각 객체(400)마다 하나의 바운딩 박스(600)가 생성되어 있음을 확인할 수 있다.Referring to FIG. 6, it can be confirmed that the
또한, 인식된 객체(400)들의 목록이 생성되어 심볼(300)들의 리스트가 생성되었음을 확인할 수 있다.Additionally, it can be confirmed that a list of recognized
프로세서(150)는 바운딩 박스(600)를 기초로 심볼(300)들의 리스트를 생성할 수 있다. 구체적으로, 프로세서(150)는 심볼(300)로 인식된 객체(400)를 포함하는 바운딩 박스(600)를 기초로, 다이어그램 이미지(200)에서의 심볼(300)의 위치 정보 또는 심볼(300)들의 리스트 중 적어도 하나를 생성하도록 구성될 수 있다.The
도 7은 일 실시예에 따른 인공지능 모델의 데이터 구조를 나타낸 도면이다.Figure 7 is a diagram showing the data structure of an artificial intelligence model according to an embodiment.
도 7을 참조하면, 객체(400) 인식을 위한 인공지능 모델의 학습에 이용되는 학습 데이터 저장 구조를 확인할 수 있다.Referring to FIG. 7, the learning data storage structure used for learning the artificial intelligence model for recognizing the
학습 데이터는 객체(400)들의 유형이 심볼 타입과 심볼(300)의 방향을 고려하여 정의되어 있을 수 있다.In the learning data, the types of
학습 데이터 폴더 구조의 최상위 폴더는 P&ID 폴더일 수 있다. 이 폴더에는 심볼(300) 및 문자의 클래스 목록 파일이 위치할 수 있다. P&ID 폴더의 하위 폴더는 프로젝트 폴더일 수 있다. 프로젝트 폴더는 해당 프로젝트에서 생성된 다이어그램과 다이어그램 리스트 파일이 존재할 수 있다. 프로젝트 폴더는 프로젝트마다 사용하는 P&ID의 표준이 다르기 때문에 프로젝트에 따라 학습 데이터를 구분하여 저장할 수 있다. 프로젝트 폴더의 하위 폴더는 심볼(300)의 탐지에 필요한 폴더, 심볼(300)의 분류에 필요한 학습 데이터를 저장한 폴더, 문자의 인식에 필요한 학습 데이터를 저장한 폴더, 선의 인식에 필요한 학습 데이터를 저장한 폴더일 수 있다. 각 객체(400)의 학습 데이터 폴더에는 필요 정보를 담고 있는 주석(annotation) 파일이 각 다이어그램 별로 저장될 수 있다. 심볼(300)의 분류에 필요한 학습 데이터를 저장한 폴더에는 각 다이어그램에서 추출한 심볼 이미지 파일이 저장될 수 있다.The top folder of the learning data folder structure may be the P&ID folder. This folder may contain class list files for
인공지능 학습부(160)는 심볼(300)의 특징을 입력 변수로 설정하고 객체(400)들의 유형을 출력 변수로 설정하여 인공지능 모델을 학습하도록 구성될 수 있다.The artificial
심볼(300)의 특징은 해당 심볼(300)에 대한 다양한 특징을 나타내는 정보일 수 있다. 예를 들어, 심볼(300)의 특징은 해당 심볼(300)의 크기, 형태 등에 대한 정보일 수 있다.The characteristics of the
이때, 인공지능 모델을 학습하는 것은 기계 학습(Machine Learning) 방식을 통한 학습일 수 있다.At this time, learning the artificial intelligence model may be done through machine learning.
기계 학습이란 다수의 파라미터로 구성된 모델을 이용하며, 주어진 데이터로 파라미터를 최적화하는 것을 의미할 수 있다. 인공지능 학습부(160)는 입력에 따라 인공지능 모델을 통해 최종적으로 나온 결과물(output)인 출력과, 입력에 대한 레이블(정답)을 이용하여 인공지능 모델을 학습할 수 있다.Machine learning can mean using a model composed of multiple parameters and optimizing the parameters with given data. The artificial
인공지능 학습부(160)는 기계 학습 방식뿐만 아니라 딥 러닝 방식을 통해서도 개인 인증을 수행할 수 있다.The artificial
인공지능 모델은 심볼(300)의 특징 정보를 입력 변수로 하고, 심볼 타입을 출력 변수로 설정한 모델일 수 있다. 인공지능 모델은 전술한 학습 데이터 폴더를 포함할 수 있으며, 메모리(170)에 저장될 수 있다.The artificial intelligence model may be a model in which the characteristic information of the
중복 객체 판단부(130)는 다이어그램 이미지(200)로부터 추출된 객체(400)로부터 객체(400)의 특징을 추출할 수 있다. 객체(400)의 특징은 해당 객체(400)의 크기, 형태 등에 대한 정보일 수 있다.The duplicate
중복 객체 판단부(130)는 추출된 객체(400)의 특징을 기초로 인공지능 모델을 이용하여 추출된 객체(400)의 유형을 결정하도록 구성될 수 있다.The duplicate
결과적으로 본 발명의 객체 인식 시스템(100)은 다이어그램 이미지(200)로부터 추출된 객체(400)에 대해서 기계학습 또는 딥 러닝 방식을 통하여 보다 강건하게 객체(400)의 유형을 분류할 수 있으며, 보다 강건하게 추출된 객체(400)의 심볼 타입을 결정할 수 있다.As a result, the
도 8은 일 실시예에 따라 크기 변경 다이어그램 이미지 및 분할 다이어그램 이미지에 포함된 객체를 추출하는 과정을 도시한 도면이다.FIG. 8 is a diagram illustrating a process for extracting objects included in a size change diagram image and a split diagram image according to an embodiment.
객체 추출부(110)는 다이어그램 이미지(200)에 포함된 상대적으로 큰 객체(400)를 추출하기 어려울 수 있다. 따라서, 다이어그램 이미지(200)로부터 객체(400)를 추출하기 위해서는 추가적인 전처리가 필요할 수 있다.It may be difficult for the
한편, 상대적으로 작은 객체(400)에 대해서는 단순히 다이어그램 이미지(200)로부터 추출하는 것보다 분할된 복수개의 다이어그램 이미지(200)로부터 추출하는 것이 용이할 수 있다. 하지만, 상대적으로 큰 객체(400)는 다이어그램 이미지(200)의 분할 시 함께 분할될 수 있어서 분할된 다이어그램 이미지(200)로부터 추출하는 것은 용이하지 않을 수 있다.Meanwhile, for a relatively
따라서, 상대적으로 큰 심볼(300) 및 상대적으로 작은 심볼(300)에 대해서는 서로 다른 방법으로 전처리된 다이어그램 이미지(200)로부터 객체(400)를 추출하는 것이 바람직할 수 있다.Therefore, it may be desirable to extract the
도 8을 참조하면, 객체 인식 시스템(100)은 다이어그램 이미지(200)의 크기가 변경되어 생성되는 크기 변경 다이어그램 및 다이어그램 이미지(200)가 분할되어 생성되는 분할 다이어그램 이미지(201)를 이용하여 객체(400)를 추출할 수 있다.Referring to FIG. 8, the
전처리부(140)는 다이어그램 이미지(200)의 크기를 변경하여 크기 변경 다이어그램 이미지(202)를 생성하도록 구성될 수 있다. 이때 크기 변경 다이어그램 이미지(202)는 다이어그램 이미지(200)의 가로 길이 및 세로 길이를 감소시켜서 생성된 이미지일 수 있다. 이때 가로 길이 및 세로 길이의 비율이 일정하게 유지되도록 감소시키는 것이 바람직할 수 있으나, 반드시 이에 한정되는 것은 아니다.The
객체 추출부(110)는 크기 변경 다이어그램 이미지(202)에 포함되어 크기가 변경된 객체(400)를 기초로, 다이어그램 이미지(200)에 포함된 객체(400)를 추출하도록 구성될 수 있다.The
즉, 객체 추출부(110)는 크기가 감소한 크기 변경 다이어그램 이미지(202)에 포함된 크기가 감소한 객체(400)를 추출하는 방식으로 다이어그램 이미지(200)의 객체(400)를 추출할 수 있다. 이때 결과적으로, 객체 추출부(110)는 크기를 변경하기 전에는 상대적으로 커서 인식이 잘 안되던 객체(400)를 보다 잘 인식할 수 있다.That is, the
전처리부(140)는 다이어그램 이미지(200)를 분할하여 복수개의 분할 다이어그램 이미지(201)를 생성하도록 구성될 수 있다. 이때 분할 다이어그램 이미지(201)는 다이어그램 이미지(200)의 일정 영역을 나타내는 이미지일 수 있다. 예를 들어, 전처리부(140)는 다이어그램 이미지(200)의 가로를 세 등분 하고, 세로를 세 등분하여 9 개의 분할 다이어그램 이미지(201)를 생성할 수 있으나, 분할 다이어그램 이미지(201)를 생성하는 방식이 이에 한정되는 것은 아니다.The
객체 추출부(110)는 분할 다이어그램 이미지(201)에 포함된 객체(400)를 기초로, 다이어그램 이미지(200)에 포함된 객체(400)를 추출하도록 구성될 수 있다. 즉, 객체 추출부(110)는 분할되어 다이어그램 이미지(200)의 일부 영역에 포함된 객체(400)를 추출하는 방식으로 다이어그램 이미지(200)의 객체(400)를 추출할 수 있다.The
도 9는 일 실시예에 따라 다이어그램 이미지에 포함된 텍스트를 인식하는 과정을 도시한 도면이며, 도 10은 일 실시예에 따라 텍스트를 추출하는 과정을 도시한 도면이다.FIG. 9 is a diagram illustrating a process for recognizing text included in a diagram image according to an embodiment, and FIG. 10 is a diagram illustrating a process for extracting text according to an embodiment.
도 9를 참조하면, 일 실시예에 따른 객체(400)를 인식하는 과정은 원본 다이어그램 이미지(203)를 전처리하여 다이어그램 이미지(200)를 생성하는 단계, 심볼(300)을 인식하는 단계, 텍스트를 인식하는 단계 및 인식 결과를 저장하는 단계로 구성될 수 있다.Referring to FIG. 9, the process of recognizing an
텍스트 추출부는 분할 다이어그램 이미지(201)에 포함된 텍스트를 추출하여 다이어그램 이미지(200)의 텍스트를 인식하도록 구성될 수 있다.The text extractor may be configured to extract text included in the segmented
구체적으로, 분할 다이어그램 이미지(201)에 포함된 문자가 존재하는 영역과 인식된 결과가 도출될 수 있다. 이후 도출된 결과의 텍스트 영역의 정보와 인식 스코어(score)를 입력으로 회전 판단(rotation estimation) 과정을 거쳐 각 문자열 영역이 회전된 문자열인지, 회전되지 않은 문자열인지를 구분할 수 있다. 이후 텍스트 영역 내부의 이미지에 대한 문자열을 인식한 뒤, 그 결과를 분할 전의 다이어그램 이미지(200)에 맞도록 변환하고, 병합하면 최종적으로 다이어그램 이미지(200)에 포함된 문자열의 인식 결과를 얻을 수 있다.Specifically, an area where characters included in the
도 10을 참조하면, 회전 판단은 두 단계로 이루어질 수 있다. 구체적으로, 바운딩 박스(600)의 비율(aspect ratio) 기반의 회전 판단과 텍스트 인식 스코어(text recognition score)를 기반으로 한 회전 판단으로 나뉠 수 있다. 바운딩 박스(600)의 비율 기반의 회전 판단은 텍스트 영역 바운딩 박스(600)의 비율 (바운딩 박스(600)의 가로 길이/바운딩 박스(600)의 세로 길이)가 0.5 이하인 경우에 해당 텍스트를 회전된 문자열로 판단할 수 있다. 스코어 기반 회전 판단에 의하면, 바운딩 박스(600)의 비율이 0.5 이상인 경우에, 회전되지 않은 이미지와 회전된 이미지에서 모두 문자열 인식을 수행한 뒤 회전된 이미지에서 결과가 높은 스코어를 갖는 경우 회전된 문자열로 판단할 수 있다.Referring to FIG. 10, rotation determination can be accomplished in two steps. Specifically, it can be divided into rotation judgment based on the aspect ratio of the
도 10의 (a) 및 (b)를 참조하면, 긴 문자열의 경우 바운딩 박스(600) 비율 기반 방식을 통해 회전된 문자열임을 쉽게 판단이 가능하다. 하지만, 도10의 (c)에서처럼 세로 문자열의 길이가 짧은 경우, 이러한 방식으로 회전된 문자열을 판단하기 어려울 수 있다. 이 경우 도 10의 (d)와 같이 회전된 이미지에서의 텍스트 인식 결과의 스코어 정보를 고려하여 회전된 이미지에서 더 높은 스코어를 나타낸 경우 회전된 문자열로 판단하고, 회전된 이미지에서 인식된 결과를 최종 문자 인식 결과로 사용할 수 있다.Referring to Figures 10 (a) and (b), in the case of a long string, it is possible to easily determine that the string has been rotated using the
도 11은 원본 다이어그램 이미지를 전처리하는 과정을 도시한 도면이다.Figure 11 is a diagram showing the process of preprocessing an original diagram image.
도 11을 참조하면, 본 발명의 객체 인식 시스템(100)은 원본 다이어그램 이미지(203)로부터 다이어그램 이미지(200)를 생성할 수 있다.Referring to FIG. 11, the
원본 다이어그램 이미지(203)는 객체 추출에 이용되는 다이어그램 이미지(200)가 전처리되기 전의 다이어그램으로서, 외곽경계와 표제를 포함하는 다이어그램일 수 있다.The
원본 다이어그램의 외곽경계 및 표제 영역의 형태는 프로젝트마다 달라질 수 있다. 외곽 경계는 단일 실선이나 이중 실선으로 구성되며 보조 눈금이 있는 경우가 있다. 표제는 하단 좌측, 중앙 또는 우측에 위치할 수 있다. 그리고 표제 영역에는 노트 영역이 존재하며 주로 원본 다이어그램의 우측에 존재할 수 있다.The shape of the outer border and title area of the original diagram may vary from project to project. The outer boundary consists of a single or double solid line and may have supplementary marks. Headings can be placed at the bottom left, center, or right. Additionally, there is a note area in the title area, which can mainly be located on the right side of the original diagram.
이러한 외곽경계 및 표제가 다이어그램 이미지(200)에 포함되어 있을 경우, 심볼(300), 텍스트, 선 객체와 큰 차이가 없어서, 객체 인식 과정에서 정확도가 낮아지는 문제가 발생할 수 있다. 따라서, 원본 다이어그램 이미지(203)로부터 외곽경계 및 표제를 식별하고 제거하는 것이 필요하다.If these outer boundaries and headings are included in the
전처리부(140)는 이미지 처리 과정에서 필요한 연산량을 줄이기 위해 도 11의 (b)에 도시된 바와 같이 원본 다이어그램의 하단 1/5을 잘라낼 수 있다.The
전처리부(140)는 잘라낸 다이어그램에 있는 모든 수평선을 추출할 수 있다.The
전처리부(140)는 추출된 수평선들 중 길이가 가장 긴 수평선을 결정할 수 있다. 즉, 전처리부(140)는 도 11의 (b)에 도시된 바와 같이 추출된 수평선 중 길이가 가장 긴 선을 식별할 수 있다.The
이때 전처리부(140)는 추가적으로 식별된 선과의 길이 오차가 5% 이하인 선을 추가로 식별하여 외곽경계의 형태에 관계없이 외곽경계을 이루는 각 선의 한 점을 알아낼 수 있다.At this time, the
전처리부(140)는 결정된 가장 긴 수평선에 연결된 모든 검정 픽셀을 추출하고, 원본 다이어그램 이미지(203)로부터 추출된 검정 픽셀을 제거하여 다이어그램 이미지(200)를 생성할 수 있다.The
표제는 외곽경계와 연결되어 있기 때문에, 식별된 외곽경계의 한 점과 연결되어 있는 모든 검정 픽셀을 추출하면, 도 11의 (c)와 같이 표제 및 외곽경계를 추출할 수 있다.Since the title is connected to the outer border, if all black pixels connected to a point of the identified outer border are extracted, the title and outer border can be extracted as shown in (c) of FIG. 11.
이때. 전처리부(140)는 추출한 검정 픽셀들에 대해 모폴로지 연산 (morphology operation)의 침식 연산(erosion operation)과 팽창 연산(dilation operation)을 적용하여 외곽경계 및 표제 영역을 식별할 수 있으며 마지막으로 원본 다이어그램 이미지(203) 내에서 식별된 영역을 제거할 수 있다. At this time. The
모폴로지 연산은 영상 내에 존재하는 특정 객체(400)의 형태를 변형시키는 용도로 사용되는 영상처리 기법이며, 이는 다양한 영상 처리 시스템에서 전처리 또는 후처리의 형태로 널리 사용되고 있다. 모폴로지 연산 중 가장 기본이 되는 연산은 침식 연산과 팽창 연산이 있다.Morphology operation is an image processing technique used to transform the shape of a
침식 연산은 커널 영역 내 픽셀들의 값 중 최솟값을 현재 픽셀의 값에 대입하는 연산 방식이며, 도 11의 (d)에 도시된 바와 같이 검은색 영역은 늘어나고 흰색 영역은 줄어들게 할 수 있다.The erosion operation is an operation method that substitutes the minimum value among the values of pixels in the kernel area into the value of the current pixel, and can cause the black area to increase and the white area to decrease, as shown in (d) of FIG. 11.
팽창 연산은 이와 반대로 커널 영역 내 픽셀들의 값 중 최대값을 현재 픽셀의 값에 대입하는 연산 방식으로, 도 11의 (e)와 같이 흰색 영역이 늘어나고 검은색 영역이 줄어든다. 이 검은색 영역이 외곽경계 및 표제 영역이며, 침식 연산 후 팽창 연산을 수행하는 것을 열기 연산(open operation)이라 한다.In contrast, the expansion operation is an operation method that substitutes the maximum value of the pixel values in the kernel area into the value of the current pixel, and the white area increases and the black area decreases, as shown in (e) of FIG. 11. This black area is the outer boundary and title area, and performing an expansion operation after an erosion operation is called an open operation.
이상에서 설명된 구성요소들의 성능에 대응하여 적어도 하나의 구성요소가 추가되거나 삭제될 수 있다. 또한, 구성요소들의 상호 위치는 시스템의 성능 또는 구조에 대응하여 변경될 수 있다는 것은 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 이해될 것이다.At least one component may be added or deleted in response to the performance of the components described above. Additionally, it will be easily understood by those skilled in the art that the mutual positions of the components may be changed in response to the performance or structure of the system.
도 12는 일 실시예에 따른 객체 인식 방법의 순서도이다. 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있음은 물론이다.Figure 12 is a flowchart of an object recognition method according to an embodiment. This is only a preferred embodiment for achieving the purpose of the present invention, and of course, some components may be added or deleted as needed.
도 12를 참조하면, 객체 추출부(110)는 다이어그램 이미지(200)로부터 심볼(300)들을 포함하는 객체(400)들을 추출할 수 있다(1001). 이때, 객체 추출부(110)는 추출된 객체(400)들의 정보를 중첩 비율 산출부(120)로 전달할 수 있다.Referring to FIG. 12, the
중첩 비율 산출부(120)는 추출된 객체(400)들의 중첩 영역(501)과 객체들의 영역(500) 간의 중첩 비율을 산출할 수 있다(1002). 이때, 중첩 비율 산출부(120)는 산출된 중첩 비율의 정보를 중복 객체 판단부(130)에 전달할 수 있다.The overlap
중복 객체 판단부(130)는 색체들의 크기와 형상을 분석하여 객체(400)들의 심볼 타입들을 결정하고, 결정된 객체(400)들의 심볼 타입들을 비교할 수 있다(1003).The duplicate
중복 객체 판단부(130)는 객체(400)들의 심볼 타입들이 동일한지 여부를 판단할 수 있다(1004).The duplicate
만약 객체(400)들의 심볼 타입들이 동일하지 않다고 판단되면(1004의 '아니오'), 중북 객체 판단부는 해당 객체(400)가 중복 객체(401)가 아니라고 판단할 수 있다(1005).If it is determined that the symbol types of the
만약 객체(400)들의 심볼 타입들이 동일하다고 판단되면(1004의 '예'), 중복 객체 판단부(130)는 객체(400)들의 심볼 타입들이 중첩 발생 빈도를 기반으로 결정되는 중첩 심볼 집합에 해당하는지 여부를 판단할 수 있다(1006).If it is determined that the symbol types of the
만약 객체(400)들의 심볼 타입들이 중첩 심볼 집합에 해당된다고 판단되면(1006의 '예'), 중복 객체 판단부(130)는 중첩 비율을 제1 기준 임계값과 비교하여 중복 객체 여부를 판단할 수 있다(1007).If it is determined that the symbol types of the
만약 객체(400)들의 심볼 타입들이 중첩 심볼 집합에 해당되지 않다고 판단되면(1006의 '아니오'), 중복 객체 판단부(130)는 중첩 비율을 제1 기준 임계값보다 낮은 제2 기준 임계값과 비교하여 중복 객체 여부를 판단할 수 있다(1008).If it is determined that the symbol types of the
중복 객체 판단부(130)는 객체(400)들이 중복 객체(401)로 판단되면 객체(400)들 중 하나의 객체(400)만 심볼(300)로 인식할 수 있다(1009).If the
도 13은 또 다른 실시예에 따른 객체 인식 방법의 순서도이다.13 is a flowchart of an object recognition method according to another embodiment.
전처리부(140)는 원본 다이어그램 이미지(203)를 전처리하여 다이어그램 이미지(200)를 생성할 수 있다(2001).The
이때, 전처리부(140)는 원본 다이어그램 이미지(203)로부터 수평선을 추출하고, 추출된 수평선들 중 길이가 가장 긴 수평선을 결정할 수 있다. 또한, 전처리부(140)는 가장 긴 수평선에 연결된 모든 검정 픽셀을 추출하고, 원본 다이어그램 이미지(203)로부터 추출된 검정 픽셀을 제거하여 다이어그램 이미지(200)를 생성할 수 있다.At this time, the
전처리부(140)는 다이어그램 이미지(200)의 크기를 변경하여 크기 변경 다이어그램 이미지(202)를 생성할 수 있다(2002).The
전처리부(140)는 다이어그램 이미지(200)를 분할하여 복수개의 분할 다이어그램 이미지(201)를 생성할 수 있다(2003).The
객체 추출부(110)는 크기 변경 다이어그램 이미지(202)에 포함되어 크기가 변경된 객체(400) 및 분할 다이어그램 이미지(201)에 포함된 객체(400)를 기초로, 다이어그램 이미지(200)에 포함된 객체(400)를 추출할 수 있다(2004).The
이때, 상대적으로 크기가 큰 심볼(300)에 대응되는 객체(400)는 크기가 축소된 크기 변경 다이어그램 이미지(202)로부터 추출될 수 있고, 상대적으로 크기가 작은 심볼(300)에 대응되는 객체(400)는 분할 다이어그램 이미지(201)로부터 추출될 수 있다.At this time, the
텍스트 추출부는 분할 다이어그램 이미지(201)에 포함된 텍스트를 추출하여 다이어그램 이미지(200)의 텍스트를 인식할 수 있다(2005).The text extractor may extract text included in the segmented
프로세서(150)는 추출된 객체(400) 및 추출된 텍스트에 기초하여 다이어그램 이미지(200)에 포함된 심볼(300)들의 리스트를 생성할 수 있다(2006).The
본 발명의 실시예에 따른 다수의 심볼(300)들을 포함하는 다이어그램 이미지(200)에서 객체(400)를 인식하는 다이어그램 이미지(200)의 객체 인식 시스템(100)의 성능을 검증하기 위하여, 심볼 탐지 실험을 진행하였다.In order to verify the performance of the
정량적인 성능 측정을 위해서 1) 도출된 detection들을 score 0.5, IOU threshold 0.5를 기준으로 계산한 precision과 recall, 2) COCO dataset에서 사용하는 Average precision 지표인 AP, AP50, AP75, 3) symbol diagonal length를 기준으로 150 이하(small), 150에서 250 사이(medium), 250 이상(large)으로 나누어 average precision을 계산하였다.To measure quantitative performance, 1) precision and recall calculated based on score 0.5 and IOU threshold 0.5 for the derived detections, 2) AP, AP50, AP75, which are average precision indicators used in the COCO dataset, and 3) symbol diagonal length. As a standard, the average precision was calculated by dividing it into 150 or less (small), between 150 and 250 (medium), and 250 or more (large).
실험에서는 제안하는 방법을 네 단계로 나누어 성능을 살펴보았다. 먼저 GFL 기반으로 구성된 small symbol network만을 사용한 성능 (GFL(default)), small symbol network 결과에서 adaptive threshold를 적용한 성능 (GFL(A.T.)), 추가적으로 large symbol network를 병행하여 사용하였을 때의 성능(GFL(A.T.) + large)과 마지막으로 data augmentation 을 적용하였을 때의 성능 (GFL + large w/ augmentation)이다. 마지막 case에서는 기본적인 flip augmentation 이외에 crop, up & down scaling과 blur 및 noise를 추가하여 실험을 진행하였다.In the experiment, the performance of the proposed method was examined by dividing it into four steps. First, the performance using only a small symbol network based on GFL (GFL(default)), the performance applying an adaptive threshold to the small symbol network results (GFL(A.T.)), and the performance when using a large symbol network in parallel (GFL(A.T.)) A.T.) + large) and finally, the performance when data augmentation is applied (GFL + large w/ augmentation). In the last case, experiments were conducted by adding crop, up & down scaling, blur, and noise in addition to basic flip augmentation.
위 네 단계의 성능 측정 결과는 아래 [표 1]과 같다. 각 성능 지표별로 가장 성능이 높은 항목을 bold 및 underline으로 표시하였으며 두 번째로 성능이 높은 항목을 bold 및 italic으로 표시하였다.The performance measurement results of the above four steps are shown in [Table 1] below. For each performance indicator, the highest performing item was indicated in bold and underline, and the second highest performing item was indicated in bold and italic.
[표 1][Table 1]
결과 표를 통해 large symbol network 사용과 adaptive threshold의 사용, 그리고 augmentation이 모두 precision/recall 성능을 높이는 데 기여한 것으로 나타났다. 최종적으로, 모든 방법론을 적용했을 경우, precision이 0.9718, recall이 0.9827로 가장 높은 성능을 나타냈다.The results table showed that the use of a large symbol network, the use of adaptive threshold, and augmentation all contributed to increasing precision/recall performance. Ultimately, when all methodologies were applied, the highest performance was achieved with precision of 0.9718 and recall of 0.9827.
본 발명의 실시예에 따라 딥러닝 기반 객체 탐지 기술을 다이어그램 이미지(200)의 심볼 탐지에 활용하기 위한 연구를 진행하였다. 기존에 제안된 딥러닝 기반 객체탐지 기술은 공통적으로 널리 알려진 데이터셋을 기반으로 성능을 측정하여 보고하였다. 하지만 이러한 성능 기준이 모든 다이어그램 이미지(200)에 동일하게 나타난다고 보장할 수는 없다. 딥러닝 기술의 특성상 학습 데이터의 특성과 그 분포(distribution)가 성능에 큰 영향을 미치기 때문에 다른 데이터셋에 적용하는 경우 결과 성능이 달라질 수 있다. According to an embodiment of the present invention, research was conducted to utilize deep learning-based object detection technology to detect symbols in the
본 발명의 일 실시예에 따라 one-stage 접근법을 중심으로 다이어그램 이미지(200)에 대한 심볼(300)의 탐지 성능을 다양한 조건에서 실험을 통해 알아보고, 최적의 성능을 나타내는 방안을 제안하였다. 다이어그램 이미지(200)의 심볼 크기 편차에 따른 성능 저하를 보상할 수 있도록 두 개의 네트워크를 구성하였다. 높은 밀도의 심볼(300)에 대한 인식 성능을 높이기 위해 별도의 후처리 프로세스를 구성하였으며 data augmentation을 통해 최종적인 성능을 도출하였다.According to an embodiment of the present invention, the detection performance of the
추가적으로 본 연구를 통해 구축한 데이터셋이 아닌 별도의 다이어그램 이미지(200)에 대해서도 실험을 진행하였으며, 이때 유사한 결과를 볼 수 있었다. 해당 다이어그램 이미지(200)는 학습에 사용한 데이터셋보다 좀 더 dense하게 심볼(300)들이 배치되어 있었다. 다이어그램 이미지(200)의 특성상 동일한 시스템을 통해 그려진 다이어그램인 경우 다이어그램의 전체적인 형태가 달라도 심볼(300)의 형상 및 텍스트 구성은 크게 변하지 않는다. 따라서 본 연구를 통해 구축한 학습 데이터셋을 활용해 학습시킨 symbol detection 및 text recognition network는 다른 다이어그램 이미지(200)에 대해서도 활용이 가능하다는 것을 확인하였다.Additionally, experiments were conducted on a separate diagram image (200) other than the dataset constructed through this study, and similar results were observed. In the
실험 결과 제안된 심볼 인식과 텍스트 인식 방법은 모두 준수한 성능을 보여주었다. 심볼 인식에서는 제안된 두 가지 방법인 large symbol network의 사용과 adaptive threshold 사용이 단계적으로 성능을 높여주는 것으로 나타났다.As a result of the experiment, both the proposed symbol recognition and text recognition methods showed satisfactory performance. In symbol recognition, the two proposed methods, the use of a large symbol network and the use of an adaptive threshold, were found to gradually increase performance.
정답 instance의 개수를 높이고, 보다 정확하게 box regression 결과를 내는 것이 필요하다면 augmentation을 적용하는 것이 성능을 높여준다는 것을 실험적으로 확인하였다. 정량적인 성능 지표와 가시화된 결과 통해 제안된 GFL 기반의 심볼 detection 방법이 높은 성능을 나타내는 것을 볼 수 있었다.It was experimentally confirmed that applying augmentation improves performance if it is necessary to increase the number of correct answer instances and produce more accurate box regression results. Through quantitative performance indicators and visualized results, it was seen that the proposed GFL-based symbol detection method shows high performance.
텍스트 인식에서는 기존 text recognition 방법론들이 준수한 성능을 보여주었다.In text recognition, existing text recognition methodologies showed satisfactory performance.
제안하는 방법의 검증을 위해서 81장의 다이어그램 이미지(200)를 활용하여 심볼(300) 및 텍스트의 인식 실험을 수행하였다. 그 결과, 심볼(300)의 경우 precision과 recall이 각각 0.9718, 0.9827로 나타났고, 텍스트의 경우 precision과 recall이 각각 0.9289, 0.8991로 나와서 심볼(300)과 텍스트 모두에 대해서 준수한 인식 성능을 보이는 것을 확인하였다.To verify the proposed method, a symbol (300) and text recognition experiment was performed using 81 diagram images (200). As a result, for the symbol (300), the precision and recall were 0.9718 and 0.9827, respectively, and for the text, the precision and recall were 0.9289 and 0.8991, respectively, confirming that the recognition performance was satisfactory for both the symbol (300) and the text. did.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.As described above, the disclosed embodiments have been described with reference to the attached drawings. A person skilled in the art to which the present invention pertains will understand that the present invention can be practiced in forms different from the disclosed embodiments without changing the technical idea or essential features of the present invention. The disclosed embodiments are illustrative and should not be construed as limiting.
100: 객체 인식 시스템
110: 객체 추출부
120: 중첩 비율 산출부
130: 중복 객체 판단부
140: 전처리부
150: 프로세서
160: 인공지능 학습부
170: 메모리
200: 다이어그램 이미지
201: 분할 다이어그램 이미지
202: 크기 변경 다이어그램 이미지
203: 원본 다이어그램 이미지
300: 심볼
400: 객체
401: 중복 객체
500: 객체들의 영역
501: 중첩 영역
600: 바운딩 박스100: Object recognition system
110: Object extraction unit
120: Overlap ratio calculation unit
130: Duplicate object determination unit
140: Preprocessing unit
150: processor
160: Artificial Intelligence Learning Department
170: memory
200: Diagram image
201: Segmentation diagram image
202: Resize diagram image
203: Original diagram image
300: symbol
400: object
401: Duplicate object
500: Area of objects
501: Overlapping area
600: Bounding box
Claims (21)
(a) 객체 추출부에 의해, 상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 단계;
(b) 중첩 비율 산출부에 의해, 추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 단계; 및
(c) 중복 객체 판단부에 의해, 상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 단계;를 포함하고,
상기 (c) 단계는:
(c1) 상기 객체들의 크기와 형상을 분석하여 상기 객체들의 심볼 타입들을 결정하고, 상기 객체들의 심볼 타입들을 비교하는 단계;
(c2) 상기 객체들의 심볼 타입들이 중첩 발생 빈도를 기반으로 결정되는 중첩 심볼 집합에 해당하는지 여부를 판단하는 단계; 및
(c3) 상기 심볼 타입들의 비교 결과 및 상기 중첩 심볼 집합에 해당하는지 여부에 따라 상기 중복 객체를 판단하는 단계를 포함하는 다이어그램 이미지의 객체 인식 방법.In an object recognition method of a diagram image for recognizing an object in a diagram image including a plurality of symbols,
(a) extracting objects including the symbols from the diagram image by an object extractor;
(b) calculating, by an overlap ratio calculation unit, an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and
(c) determining, by a duplicate object determination unit, whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of the objects;
Step (c) above is:
(c1) analyzing the size and shape of the objects to determine symbol types of the objects and comparing the symbol types of the objects;
(c2) determining whether the symbol types of the objects correspond to an overlapping symbol set determined based on the frequency of overlapping occurrences; and
(c3) A method for recognizing objects in a diagram image, including determining the overlapping object according to a comparison result of the symbol types and whether it corresponds to the overlapping symbol set.
상기 (c3) 단계는:
상기 객체들의 심볼 타입들이 동일하지 않은 경우, 상기 객체들을 중복 객체가 아닌 것으로 판단하는 단계;
상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하는 경우, 상기 중첩 비율을 상기 심볼 타입에 따라 결정되는 제1 기준 임계값과 비교하여 상기 중복 객체를 판단하는 단계; 및
상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하지 않는 경우, 상기 중첩 비율을 상기 제1 기준 임계값보다 낮은 제2 기준 임계값과 비교하여 상기 중복 객체를 판단하는 단계;를 포함하는 다이어그램 이미지의 객체 인식 방법.According to paragraph 1,
Step (c3) above is:
If the symbol types of the objects are not the same, determining that the objects are not duplicate objects;
When the symbol types of the objects are the same and correspond to the overlapping symbol set, determining the overlapping object by comparing the overlapping ratio with a first reference threshold determined according to the symbol type; and
If the symbol types of the objects are the same and do not correspond to the overlapping symbol set, determining the overlapping object by comparing the overlapping ratio with a second reference threshold lower than the first reference threshold; comprising Object recognition method in diagram image.
(a) 객체 추출부에 의해, 상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 단계;
(b) 중첩 비율 산출부에 의해, 추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 단계; 및
(c) 중복 객체 판단부에 의해, 상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 단계;를 포함하고,
상기 (c) 단계는:
상기 다이어그램 이미지로부터 추출된 객체를 포함하는 바운딩 박스를 생성하는 단계;
서로 겹쳐진 바운딩 박스들의 합쳐진 영역의 면적에 대한 겹쳐진 영역의 면적 비율로부터 상기 바운딩 박스들 간의 IOU 비율을 연산하는 단계;
상기 추출된 객체의 크기 및 형상을 기초로 심볼 타입을 결정하는 단계;
상기 결정된 심볼 타입을 기초로 상기 기준 임계값을 결정하는 단계;
상기 IOU 비율이 상기 기준 임계값 이상이면 상기 겹쳐진 바운딩 박스들 중 하나의 바운딩 박스를 제거하는 단계; 및
제거되지 않은 상기 바운딩 박스에 포함된 객체를 상기 바운딩 박스에 대응되는 심볼로 인식하는 단계;를 포함하는 다이어그램 이미지의 객체 인식 방법.In an object recognition method of a diagram image for recognizing an object in a diagram image including a plurality of symbols,
(a) extracting objects including the symbols from the diagram image by an object extractor;
(b) calculating, by an overlap ratio calculation unit, an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and
(c) determining, by a duplicate object determination unit, whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of the objects;
Step (c) above is:
generating a bounding box containing an object extracted from the diagram image;
calculating an IOU ratio between the bounding boxes from a ratio of the area of the overlapping area to the area of the combined area of the overlapping bounding boxes;
determining a symbol type based on the size and shape of the extracted object;
determining the reference threshold based on the determined symbol type;
removing one of the overlapping bounding boxes if the IOU ratio is greater than or equal to the reference threshold; and
Recognizing an object included in the bounding box that has not been removed as a symbol corresponding to the bounding box.
상기 심볼로 인식된 객체를 포함하는 바운딩 박스를 기초로, 상기 다이어그램 이미지에서의 상기 심볼의 위치 정보 또는 상기 심볼들의 리스트 중 적어도 하나를 생성하는 단계;를 더 포함하는, 객체 인식 방법.According to paragraph 4,
Object recognition method further comprising: generating at least one of position information of the symbol in the diagram image or a list of the symbols, based on a bounding box containing the object recognized as the symbol.
인공지능 학습부에 의해, 심볼의 특징을 입력 변수로 설정하고 상기 객체들의 유형을 출력 변수로 설정하여 인공지능 모델을 학습하는 단계;를 더 포함하고,
상기 (c) 단계는,
상기 추출된 객체로부터 상기 객체의 특징을 추출하는 단계; 및
상기 추출된 객체의 특징을 기초로 상기 인공지능 모델을 이용하여 상기 추출된 객체의 유형을 결정하는 단계;를 포함하는, 객체 인식 방법.According to paragraph 1,
It further includes the step of learning an artificial intelligence model by setting the characteristics of the symbols as input variables and the types of the objects as output variables, by the artificial intelligence learning unit,
In step (c),
extracting features of the object from the extracted object; and
Object recognition method including; determining the type of the extracted object using the artificial intelligence model based on the characteristics of the extracted object.
전처리부에 의해, 상기 다이어그램 이미지의 크기를 변경하여 크기 변경 다이어그램 이미지를 생성하는 단계;를 더 포함하고,
상기 객체를 추출하는 단계는,
상기 객체 추출부에 의해, 상기 크기 변경 다이어그램 이미지에 포함되어 크기가 변경된 객체를 추출하는 단계;를 포함하는, 객체 인식 방법.According to paragraph 1,
Further comprising: generating a size-changed diagram image by changing the size of the diagram image, by a preprocessor,
The step of extracting the object is,
Extracting, by the object extraction unit, an object whose size has been changed and included in the size change diagram image.
전처리부에 의해, 상기 다이어그램 이미지를 분할하여 복수개의 분할 다이어그램 이미지를 생성하는 단계;를 더 포함하고,
상기 객체를 추출하는 단계는,
상기 객체 추출부에 의해, 상기 분할 다이어그램 이미지에 포함된 객체를 추출하는 단계;를 더 포함하는, 객체 인식 방법.According to paragraph 1,
It further includes: generating a plurality of split diagram images by dividing the diagram image by a preprocessor,
The step of extracting the object is,
Object recognition method further comprising: extracting an object included in the segmentation diagram image by the object extractor.
전처리부에 의해, 상기 다이어그램 이미지의 크기를 변경하여 크기 변경 다이어그램 이미지를 생성하고, 상기 다이어그램 이미지를 분할하여 복수개의 분할 다이어그램 이미지를 생성하는 단계;를 더 포함하고,
상기 객체를 추출하는 단계는,
상기 객체 추출부에 의해, 상기 크기 변경 다이어그램 이미지에 포함되어 크기가 변경된 객체 및 상기 분할 다이어그램 이미지에 포함된 객체를 기초로, 상기 다이어그램 이미지에 포함된 객체를 추출하는 단계;를 포함하는, 객체 인식 방법.According to paragraph 1,
It further includes a step of generating, by a preprocessor, a size-changed diagram image by changing the size of the diagram image, and dividing the diagram image to generate a plurality of split diagram images,
The step of extracting the object is,
Object recognition, comprising: extracting, by the object extraction unit, an object included in the diagram image based on an object whose size has been changed and included in the size change diagram image and an object included in the segmented diagram image. method.
텍스트 추출부에 의해, 상기 분할 다이어그램 이미지에 포함된 텍스트를 추출하여 상기 다이어그램 이미지의 텍스트를 인식하는 단계;를 더 포함하는. 객체 인식 방법.According to clause 9,
Further comprising: extracting text included in the segmented diagram image by a text extraction unit to recognize the text of the diagram image. Object recognition method.
전처리부에 의해, 원본 다이어그램 이미지로부터 수평선을 추출하고, 추출된 수평선들 중 길이가 가장 긴 수평선을 결정하고, 상기 가장 긴 수평선에 연결된 모든 검정 픽셀을 추출하고, 상기 원본 다이어그램 이미지로부터 상기 추출된 검정 픽셀을 제거하여 상기 다이어그램 이미지를 생성하는 단계;를 더 포함하는 객체 인식 방법.According to paragraph 1,
By the preprocessor, a horizontal line is extracted from the original diagram image, a horizontal line with the longest length among the extracted horizontal lines is determined, all black pixels connected to the longest horizontal line are extracted, and the extracted black pixels are extracted from the original diagram image. An object recognition method further comprising: generating the diagram image by removing pixels.
상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 객체 추출부;
추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 중첩 비율 산출부; 및
상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 중복 객체 판단부;를 포함하고,
상기 중복 객체 판단부는:
상기 객체들의 크기와 형상을 분석하여 상기 객체들의 심볼 타입들을 결정하고, 상기 객체들의 심볼 타입들을 비교하고;
상기 객체들의 심볼 타입들이 중첩 발생 빈도를 기반으로 결정되는 중첩 심볼 집합에 해당하는지 여부를 판단하고; 그리고
상기 심볼 타입들의 비교 결과 및 상기 중첩 심볼 집합에 해당하는지 여부에 따라 상기 중복 객체를 판단하도록 구성되는, 다이어그램 이미지의 객체 인식 시스템.In an object recognition system for a diagram image that recognizes an object in a diagram image including a plurality of symbols,
an object extraction unit that extracts objects including the symbols from the diagram image;
an overlap ratio calculation unit that calculates an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and
A duplicate object determination unit that determines whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of objects,
The duplicate object determination unit:
Analyzing the size and shape of the objects to determine symbol types of the objects and comparing the symbol types of the objects;
Determine whether the symbol types of the objects correspond to an overlapping symbol set determined based on the frequency of overlapping occurrences; and
An object recognition system in a diagram image, configured to determine the overlapping object according to a comparison result of the symbol types and whether it corresponds to the overlapping symbol set.
상기 중복 객체 판단부는:
상기 객체들의 심볼 타입들이 동일하지 않은 경우, 상기 객체들을 중복 객체가 아닌 것으로 판단하고;
상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하는 경우, 상기 중첩 비율을 상기 심볼 타입에 따라 결정되는 제1 기준 임계값과 비교하여 상기 중복 객체를 판단하고; 그리고
상기 객체들의 심볼 타입들이 동일하고, 상기 중첩 심볼 집합에 해당하지 않는 경우, 상기 중첩 비율을 상기 제1 기준 임계값보다 낮은 제2 기준 임계값과 비교하여 상기 중복 객체를 판단하도록 구성되는, 다이어그램 이미지의 객체 인식 시스템.According to clause 13,
The duplicate object determination unit:
If the symbol types of the objects are not the same, determine that the objects are not duplicate objects;
If the symbol types of the objects are the same and correspond to the overlapping symbol set, determine the overlapping object by comparing the overlapping ratio with a first reference threshold determined according to the symbol type; and
If the symbol types of the objects are the same and do not correspond to the overlapping symbol set, compare the overlap ratio with a second reference threshold lower than the first reference threshold to determine the overlapping object. Diagram image. object recognition system.
상기 다이어그램 이미지로부터 상기 심볼들을 포함하는 객체들을 추출하는 객체 추출부;
추출된 객체들의 중첩 영역과 상기 객체들의 영역 간의 중첩 비율을 산출하는 중첩 비율 산출부; 및
상기 중첩 비율을 상기 객체들의 유형에 따라 결정되는 기준 임계값과 비교하여 상기 객체들이 중복 객체에 해당하는지 여부를 판단하는 중복 객체 판단부;를 포함하고,
상기 중복 객체 판단부는:
상기 다이어그램 이미지로부터 추출된 객체를 포함하는 바운딩 박스를 생성하고;
서로 겹쳐진 바운딩 박스들의 합쳐진 영역의 면적에 대한 겹쳐진 영역의 면적 비율로부터 상기 바운딩 박스들 간의 IOU 비율을 연산하고;
상기 추출된 객체의 크기 및 형상을 기초로 심볼 타입을 결정하고;
상기 결정된 심볼 타입을 기초로 상기 기준 임계값을 결정하고;
상기 IOU 비율이 상기 기준 임계값 이상이면 상기 겹쳐진 바운딩 박스들 중 하나의 바운딩 박스를 제거하고; 그리고
제거되지 않은 상기 바운딩 박스에 포함된 객체를 상기 바운딩 박스에 대응되는 심볼로 인식하도록 구성되는, 객체 인식 시스템.In an object recognition system for a diagram image that recognizes an object in a diagram image including a plurality of symbols,
an object extraction unit that extracts objects including the symbols from the diagram image;
an overlap ratio calculation unit that calculates an overlap ratio between the overlapping areas of the extracted objects and the areas of the objects; and
A duplicate object determination unit that determines whether the objects correspond to duplicate objects by comparing the overlap ratio with a reference threshold determined according to the types of objects,
The duplicate object determination unit:
creating a bounding box containing an object extracted from the diagram image;
Calculate the IOU ratio between the bounding boxes from the ratio of the area of the overlapped area to the area of the combined area of the overlapping bounding boxes;
Determine a symbol type based on the size and shape of the extracted object;
determine the reference threshold based on the determined symbol type;
if the IOU ratio is greater than or equal to the reference threshold, remove one bounding box of the overlapping bounding boxes; and
An object recognition system configured to recognize an object included in the bounding box that has not been removed as a symbol corresponding to the bounding box.
상기 심볼로 인식된 객체를 포함하는 바운딩 박스를 기초로, 상기 다이어그램 이미지에서의 상기 심볼의 위치 정보 또는 상기 심볼들의 리스트 중 적어도 하나를 생성하도록 구성되는 프로세서;를 더 포함하는 객체 인식 시스템.According to clause 16,
An object recognition system further comprising: a processor configured to generate at least one of position information of the symbol in the diagram image or a list of the symbols, based on a bounding box containing the object recognized as the symbol.
심볼의 특징을 입력 변수로 설정하고 상기 객체들의 유형을 출력 변수로 설정하여 인공지능 모델을 학습하도록 구성되는 인공지능 학습부;를 더 포함하고,
상기 중복 객체 판단부는:
상기 추출된 객체로부터 상기 객체의 특징을 추출하고; 그리고
상기 추출된 객체의 특징을 기초로 상기 인공지능 모델을 이용하여 상기 추출된 객체의 유형을 결정하도록 구성되는, 객체 인식 시스템.According to clause 13,
It further includes an artificial intelligence learning unit configured to learn an artificial intelligence model by setting the characteristics of the symbol as an input variable and the types of the objects as an output variable,
The duplicate object determination unit:
extracting features of the object from the extracted object; and
An object recognition system configured to determine the type of the extracted object using the artificial intelligence model based on the characteristics of the extracted object.
상기 다이어그램 이미지의 크기를 변경하여 크기 변경 다이어그램 이미지를 생성하고, 상기 다이어그램 이미지를 분할하여 복수개의 분할 다이어그램 이미지를 생성하도록 구성되는 전처리부;를 더 포함하고,
상기 객체 추출부는,
상기 크기 변경 다이어그램 이미지에 포함되어 크기가 변경된 객체 및 상기 분할 다이어그램 이미지에 포함된 객체를 기초로, 상기 다이어그램 이미지에 포함된 객체를 추출하도록 구성되는, 객체 인식 시스템.According to clause 13,
It further includes a preprocessor configured to change the size of the diagram image to generate a size-changed diagram image, and to generate a plurality of split diagram images by dividing the diagram image,
The object extraction unit,
An object recognition system configured to extract an object included in the diagram image based on an object whose size has been changed and included in the resized diagram image and an object included in the split diagram image.
상기 분할 다이어그램 이미지에 포함된 텍스트를 추출하여 상기 다이어그램 이미지의 텍스트를 인식하도록 구성되는 텍스트 추출부;를 더 포함하는 객체 인식 시스템.According to clause 19,
An object recognition system further comprising a text extraction unit configured to extract text included in the segmented diagram image and recognize the text of the diagram image.
원본 다이어그램 이미지로부터 수평선을 추출하고, 추출된 수평선들 중 길이가 가장 긴 수평선을 결정하고, 상기 가장 긴 수평선에 연결된 모든 검정 픽셀을 추출하고, 상기 원본 다이어그램 이미지로부터 상기 추출된 검정 픽셀을 제거하여 상기 다이어그램 이미지를 생성하도록 구성되는 전처리부;를 포함하는, 객체 인식 시스템.
According to clause 13,
Extract a horizontal line from the original diagram image, determine the horizontal line with the longest length among the extracted horizontal lines, extract all black pixels connected to the longest horizontal line, and remove the extracted black pixels from the original diagram image. An object recognition system comprising: a preprocessor configured to generate a diagram image.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210071884A KR102638388B1 (en) | 2021-06-03 | 2021-06-03 | Object recognition system, object recognition method and computer program stored in a recording medium to execute the method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210071884A KR102638388B1 (en) | 2021-06-03 | 2021-06-03 | Object recognition system, object recognition method and computer program stored in a recording medium to execute the method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220163579A KR20220163579A (en) | 2022-12-12 |
KR102638388B1 true KR102638388B1 (en) | 2024-02-19 |
Family
ID=84391461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210071884A KR102638388B1 (en) | 2021-06-03 | 2021-06-03 | Object recognition system, object recognition method and computer program stored in a recording medium to execute the method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102638388B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020181405A (en) * | 2019-04-25 | 2020-11-05 | 日本電設工業株式会社 | Estimation work support system and estimation work support program |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102177550B1 (en) * | 2018-11-30 | 2020-11-11 | 도프텍(주) | Method of automatically recognizing and classifying information of design in imaged PID drawings |
KR102315854B1 (en) * | 2019-02-20 | 2021-10-20 | 경북대학교 산학협력단 | Deep learning-based learning data generation method and learning data generation system |
-
2021
- 2021-06-03 KR KR1020210071884A patent/KR102638388B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020181405A (en) * | 2019-04-25 | 2020-11-05 | 日本電設工業株式会社 | Estimation work support system and estimation work support program |
Non-Patent Citations (2)
Title |
---|
한국 공개특허공보 제10-2020-0065613호(2020.06.09.) 1부.* |
한국 공개특허공보 제10-2020-0103204호(2020.09.02.) 1부.* |
Also Published As
Publication number | Publication date |
---|---|
KR20220163579A (en) | 2022-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5410611A (en) | Method for identifying word bounding boxes in text | |
Arvanitopoulos et al. | Seam carving for text line extraction on color and grayscale historical manuscripts | |
US6738519B1 (en) | Character recognition apparatus | |
US5539841A (en) | Method for comparing image sections to determine similarity therebetween | |
JP5492205B2 (en) | Segment print pages into articles | |
US5384863A (en) | Methods and apparatus for automatic modification of semantically significant portions of a document without document image decoding | |
CN113158808B (en) | Method, medium and equipment for Chinese ancient book character recognition, paragraph grouping and layout reconstruction | |
US9235755B2 (en) | Removal of underlines and table lines in document images while preserving intersecting character strokes | |
US9430703B2 (en) | Method for segmenting text words in document images using vertical projections of center zones of characters | |
US11442430B2 (en) | Rapid packaging prototyping using machine learning | |
JPH05233873A (en) | Area dividing method | |
CN109389050B (en) | Method for identifying connection relation of flow chart | |
Gupta et al. | Automatic assessment of OCR quality in historical documents | |
Rakshit et al. | Line, word, and character segmentation from bangla handwritten text—a precursor toward bangla hocr | |
Ali et al. | An efficient character segmentation algorithm for recognition of Arabic handwritten script | |
CN116824608A (en) | Answer sheet layout analysis method based on target detection technology | |
Bukhari et al. | Layout analysis of Arabic script documents | |
KR102638388B1 (en) | Object recognition system, object recognition method and computer program stored in a recording medium to execute the method | |
CN111738979A (en) | Automatic certificate image quality inspection method and system | |
Tran et al. | A deep learning-based system for document layout analysis | |
Makridis et al. | An efficient word segmentation technique for historical and degraded machine-printed documents | |
CN114463767A (en) | Credit card identification method, device, computer equipment and storage medium | |
Mishchenko et al. | Model-Based Recognition and Extraction of Information from Chart Images. | |
CN101546379A (en) | Computer-readable recording medium having character recognition program recorded thereon, character recognition device, and character recognition method | |
Kikkuri et al. | An Optical Character Recognition Technique for Devanagari Script Using Convolutional Neural Network and Unicode Encoding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |