DOI QR코드

DOI QR Code

A Improved Equivalent Table Algorithm for Connected Region Labeling

연결 영역의 라벨링을 위한 동치테이블 개선 알고리즘

  • Oh, Choonsuk (School of Mechanical and ICT Convergence Engineering, Sunmoon University)
  • 오춘석 (선문대학교 기계 ICT융합공학부)
  • Received : 2018.10.24
  • Accepted : 2019.02.08
  • Published : 2019.02.28

Abstract

There is the boundary following algorithm called by blob coloring or connected region labeling, which means that each pixel of the internal region can be filled with group label values by the raster scanning. This process represents to assigns the individual label value to each region. In this paper an improved equivalent table algorithm to be simpler and faster than the previous tangled complex labelling algorithm will be proposed when grouping different labels to the same region. 8 steps algorithms for grouping in the equivalent table will be presented and the yielding results will be shown.

경계선 추적을 통해서 결정된 영역의 내부를 래스터 스캔하면서 내부를 일정한 값으로 채워 넣는데 이를 '색칠하기(blob coloring)'라고 하며 보통은 '연결 성분 라벨링(Connected Region labeling)'라 부른다. 이 과정은 각 독립적인 영역들을 고유의 라벨 값으로 구분하여 표시하게 된다. 본 논문에서는 래스터 스캔 결과로 산출된 동치테이블을 동일한 라벨끼리 그룹화 하는데 수많은 그룹이 서로 얽혀서 복잡하므로 신속하고 간단하게 처리할 수 있는 개선된 알고리즘을 제안하고자 한다. 동치테이블 내에서 동일한 그룹으로 묶기 위한 이동 절차를 8단계 알고리즘으로 제시하고 이에 따른 수행 결과를 보여준다.

Keywords

Ⅰ. 서론

경계선 추적[1]-[3]의 방법의 하나로 4방향과 8방향 체인 코드 생성으로 경계선을 따라 갈 수 있다. 그렇지만 체인 코드로 경계선 추적을 할 때에 구한 정보는 영역의 외곽 데이터만 구한 것이므로 내부를 알아내지는 못한다. 이런 경계선 추적 방법들은 경계선을 따라서 외곽선을 순환하는 의미를 갖고 있어 순환적 알고리즘이라고 한다.

반면에 본 논문에서 다룰 다른 방법인 경계선 추적 알고리즘으로 래스터 스캔을 활용할 수 있다. 경계선 추적을 통해서 결정된 영역의 내부를 스캔하면서 내부를 일정한 값으로 채워 넣는데 이를 '색칠하기(blob coloring)'라고 부르고 보통은 ‘연결 성분 라벨링(Connected component labeling)'라 부른다. 이것은 입력영상의 각독립적인 영역들을 고유의 라벨 값으로 구분하여 표시하게 된다. 그림 1은 서로 분리되어 있는 3개의 전경 영역으로 구성된 입력 영상에 대해 각기 다른 색깔로 칠하여 영역을 구분하여 필요한 둘레, 면적, 위치, 방향과 같은 특징치를 구할 수 있다.

OTNBBE_2019_v19n1_261_f0001.png 이미지

그림 1. 영역 추출과 영역 색칠하기

Fig. 1. Region extraction and bolb coloring

Ⅱ. 래스터 스캔의 영역 추출

그림 2와 같이 영상의 전역을 위에서 아래로, 왼쪽에서 오른쪽으로 순차적으로 래스터 스캔을 한다. 래스터 스캔 알고리즘[4]은 각 전경 화소에 대해 그 화소의 상단 화소와 왼쪽 화소의 라벨을 검색하여 현재 시험화소의 라벨을 결정한다. 이 두 이웃 화소들은 라벨링 과정에서 이미 스캔된 화소이다. 결정 과정에서는 4 가지의 서로 다른 경우가 발생할 수 있다. (그림 2d)의 경우처럼 만약 두 이웃 화소들이 모두 전경 화소가 아닌 경우에는 현재 화소에 새로운 라벨값을 할당한다. (그림 2a)의 경우처럼 두 화소 중 하나의 화소만 전경화소인 경우에는 그 화소의 라벨값을 현재 화소에 할당한다. 그리고 (그림 2b)의 경우처럼 두 화소가 모두 전경 화소이면서 같은 라벨값을 갖는 경우에는 동일한 라벨값을 현재 시험화소에 할당한다. 그러나, (그림 2c)처럼 두 화소가 전경화소지만 서로 다른 라벨값을 갖는 경우에는 이 두 영역은 시험화소에 의해 서로 연결되는 영역이므로 동일한 라벨값으로 병합되어야 한다. 따라서 더 두 화소의 라벨값 중 더 작은 값을 현재 시험화소의 라벨값으로 할당하고, 두 라벨은 동치 테이블에 동치 라벨로 등록된다.

OTNBBE_2019_v19n1_261_f0002.png 이미지

그림 2. 이웃화소의 4가지 경우

Fig. 2. 4 cases of the neighborhood pixels

지금까지의 설명을 정리한다면 두 번의 검색 과정을 통해서 수행되는데 이를 정리하면 다음과 같이 정리할 수 있다.

래스터 스캔에 의한 영역 색칠하기 알고리즘

(1) 영상을 좌상단부터 우하단 순으로 주사한다.

(2) 현재 화소가 전경화소일 경우

(a) 상단 화소와 왼쪽 화소 중 하나만 라벨링 되어 있으면 그 라벨을 할당한다.

(b) 상단 화소와 왼쪽 화소가 동일한 라벨일 경우, 그 라벨을 할당한다.

(c) 상단 화소와 왼쪽 화소가 다른 라벨일 경우, 상단화소의 라벨을 할당하고 두 라벨을 동치테이블에 동치 라벨로 등록한다.

(d) 둘 다 라벨링 안되어 있을 경우는 새로운 라벨을 할당하고 이 라벨을 동치 테이블에 등록한다.

(3) 주사가 완료될 때까지 단계 (2)를 수행한다.

(4) 동치 테이블에 등록되어 있는 각 동치 라벨 중에서 가장 작은 라벨값을 선택한다.

(5) 영상을 주사하며 각 라벨을 동치 테이블의 가장 작은 라벨값으로 치환한다.

첫 번째 검색 과정의 수행이 종료되면 동치 테이블에는 동일한 영역으로 병합되어야 하는 라벨들에 대한 정보가 들어있다. 이 동치 테이블을 이용하여 두 번째 검색 과정에서 각 연결 영역의 모든 화소에 동일한 라벨을 할당한다.

실제 예로서 그림 3과 같이 3개의 영역으로 나누어져 있는 영상을 라스터 스캔에 의한 영역 색칠하기를 알고리즘을 수행한다. 그러면 라벨링이 1에서 8까지 라벨링을 하고, 동치 테이블이 2-3, 1-5, 3-5, 5-7, 6-8로 작성된다. 이를 정리하면 1=2=3=5=7이 하나의 영역으로 합병되고, 6=8이 하나 다른 영역으로 그리고 4 영역은 별도의 영역으로 그림 4처럼 3개의 영역 색칠하기가 된다.

OTNBBE_2019_v19n1_261_f0003.png 이미지

그림 3. 래스터 스캔에 의한 영역 색칠하

 Fig. 3. Blob coloring by raster scanning

OTNBBE_2019_v19n1_261_f0004.png 이미지

그림 4. 동치 테이블에 의한 영역 합병

Fig. 4. Region merging by the equivalent table

또 다른 실제 영상에 적용한 래스터 스캔에 의한 음영으로 영역 색칠하기 결과 영상은 (그림 5)과 같다. 이 결과 영상은 27개의 그룹 라벨링 되어 각기 다른 영역으로 나누어 진 결과를 볼 수 있다.

OTNBBE_2019_v19n1_261_f0005.png 이미지

그림 5. 래스터 스캔에 의한 7개 영역 색칠하기

Fig. 5. 7 regions blob coloring by raster scanning

Ⅲ. 동치테이블의 개선 알고리즘

그림 4의 동치테이블[5]-[7]에서 볼 수 있듯이 동치테이블상에 다른 라벨값을 하나의 그룹으로 합병하기 위해서는 라벨값들이 서로 얽혀 있는 관계로 동일 그룹으로 합치기 어렵다. 그리고 몇 개의 그룹이 되는지 알 수도 없다. 하나씩 비교하여 정리하는 방법이 있는데 그림 5처럼 복잡한 27개의 그룹의 경우에는 분류하기가 점점 난해해 진다. 이런 문제점을 해소하기 위해서 다음과 같은 방법으로 신속하면서도 간단한 테이블을 이용해서 해결할 알고리즘을 제안한다.

첫째로 동치테이블을 그림 6(a)과 같이 초기화를 한다.

OTNBBE_2019_v19n1_261_f0006.png 이미지

그림 6. 개선된 동치테이블 알고리즘 순서도

Fig. 6. Improved Equivalent table algorithm flow graph

둘째, 동치테이블의 등가값 2-3을 처리하기 위해서 3셀을 2셀의 밑으로 그림 6(b)처럼 이동한다.

셋째, 동치테이블의 등가값 1-5을 처리하기 위해서 5셀을 1셀의 밑으로 그림 6(c)처럼 이동한다.

넷째, 동치테이블의 등가값 1-3을 처리하기 위해서 3셀을 1셀의 밑으로 그림 6(d)처럼 이동한다.

다섯째, 동치테이블의 등가값 5-7을 처리하기 위해서 7셀을 5셀의 밑으로 그림 6(e)처럼 이동한다.

여섯째, 동치테이블의 등가값 6-8을 처리하기 위해서 6셀을 8셀의 밑으로 그림 6(f)처럼 이동한다.

일곱째, 동치테이블의 그룹화 처리하기 위해서 그룹1, 그룹2, 그룹3로 그림 6(g)처럼 묶는다.

마지막으로 그림 6(h)처럼 그룹별로 3가지로 컬러링을 하여 마무리 한다.

상기에 기술한 동일한 절차로 사용하여 그룹이 27개나 되는 실험 영상에 적용한 결과로 그림 7에서 보여주고 있다. 다수의 그룹을 기존의 알고리즘으로 분류하기 위해서는 수차례에 걸친 영역 합병이 이뤄져야 하는데 비해서 제안된 개선 알고리즘은 27x27 2차원 배열의 정리를 그림 6의 절차에 의해서 신속하고 간단하게 처리할 수 있는 장점이 있다. 이 결과로 27개의 그룹으로 나누어 영역 색칠하기를 수행할 수 있다.

OTNBBE_2019_v19n1_261_f0007.png 이미지

그림 7. 래스터 스캔에 의한 27개 영역 색칠하기

Fig. 7. 27 regions blob coloring by raster scanning

IV. 결론

래스터 스캔 결과로 산출된 동치테이블을 동일한 라벨끼리 그룹화 하는데 수많은 그룹이 서로 얽혀서 복잡하므로 제안된 2차원 배열 정리 알고리즘을 사용하여 신속하고 간단하게 처리할 수 있음을 영상 실험을 통해서 검증하였다. 분류할 데이터 그룹수의 많으면 많을수록 이 알고리즘이 유용하게 사용될 수 있다. 또한 데이터의 처리가 필수인 AI 시대를 맞아서 데이터의 그룹화를 수행할 때에 활용이 가능할 수 있다.

References

  1. C. Oh, "Resaerch and Development of Electrode surface Inspection System", JIIBC, vol 16, no. 3, pp.123-128, 2016. DOI: http://dx.doi.org/10.7236/JIIBC2016.16.3.123
  2. C. Oh, "3D Analysis System for Copper Plate Defect Detection", JIIBC, vol.13, no.1, 2013. pp.55-62, 2013. DOI: http://dx.doi.org/10.7236/JIIBC2013.13.1.55
  3. C. Oh and H. Lee, "A High-sppedd Automatic Precision Inspection System for Bolts Defects", Journal of KIPS, vol.10-B, no.6, pp.305-310, 2003.
  4. C. Oh and C. Han, Image Processing Technology and Applications, Bokdu Press, pp.231-233, 2014.
  5. http://dx.doi.org/10.1016/S0167-9473(97)00010-8 Computational statistics & data analysis Vol..25, No.3, pp. 273-285, 1997.
  6. Li Rong, "A run-based algorithm for identifying connected components in binary images", ICSESS, 2010 IEEE International Conference, pp. 137-141, 2010.
  7. P. Zhouand Y. Liu, "Adaptive Real-Time Labeling and Recognition of Multiple Infrared Markers Using FPGA", ICIG '09. Fifth International Conference, pp. 983-988, 2009.