맨위로가기

국부 이진 패턴

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

국부 이진 패턴(LBP)은 이미지의 텍스처를 분석하기 위한 특징 추출 방법이다. LBP는 이미지 픽셀을 주변 픽셀과 비교하여 이진 코드를 생성하고, 이 코드의 히스토그램을 특징 벡터로 사용한다. 균일 패턴을 사용하면 특징 벡터의 차원을 줄일 수 있다. LBP는 얼굴 인식 및 텍스처 분석에 활용되며, 과잉 완전 지역 이진 패턴(OCLBP), 전환 지역 이진 패턴(tLBP) 등 다양한 확장 기법이 존재한다. LBP는 MATLAB, OpenCV, Python 등 다양한 프로그래밍 언어와 라이브러리에서 구현되어 있다.

더 읽어볼만한 페이지

  • 컴퓨터 비전 - 합성곱 신경망
    합성곱 신경망(CNN)은 이미지, 영상 등 시각 데이터 처리에 특화된 인공 신경망으로, 합성곱층, 풀링층, 완전 연결층으로 구성되어 특징 추출, 차원 축소, 최종 분류 또는 예측을 수행하며 이미지 인식, 영상 분석, 자연어 처리 등 다양한 분야에 응용된다.
  • 컴퓨터 비전 - 광학 흐름
    광학 흐름은 비디오나 이미지에서 보이는 객체, 표면, 엣지의 움직임 패턴을 나타내며, 움직임 예측, 비디오 압축, 장면 구조 추정, 로봇 내비게이션 등 다양한 분야에 활용되는 중요한 기술이다.
국부 이진 패턴

2. 개념

텍스처를 정의하고 국부 이진 패턴(LBP)을 계산하는 데 사용되는 세 가지 이웃 예시


LBP는 이미지에서 텍스처를 정의하고 국부 이진 패턴을 계산하여 특징 벡터를 생성한다. 이렇게 생성된 특징 벡터는 서포트 벡터 머신, 극단적 학습 기계 또는 기타 기계 학습 알고리즘을 사용하여 이미지를 분류하는 데 사용될 수 있으며, 얼굴 인식 또는 텍스처 분석 등에 활용된다.

2. 1. LBP 특징 벡터 생성 과정



LBP 특징 벡터는 가장 단순한 형태로 다음과 같이 생성된다.

  • 검사할 윈도우를 셀로 나눈다(예: 각 셀당 16x16 픽셀).
  • 셀의 각 픽셀에 대해 픽셀을 8개의 이웃과 비교한다(왼쪽 상단, 왼쪽 중간, 왼쪽 하단, 오른쪽 상단 등). 시계 방향 또는 시계 반대 방향으로 원을 따라 픽셀을 따라간다.
  • 중심 픽셀의 값이 이웃의 값보다 크면 "0"을 쓴다. 그렇지 않으면 "1"을 쓴다. 이렇게 하면 8자리 이진수가 생성된다(편의를 위해 일반적으로 10진수로 변환됨).
  • 각 "숫자"가 발생한 빈도에 대한 셀에 대한 히스토그램을 계산한다(즉, 어떤 픽셀이 작고 어떤 픽셀이 중심보다 큰지에 대한 각 조합). 이 히스토그램은 256차원 특징 벡터로 볼 수 있다.
  • 필요에 따라 히스토그램을 정규화한다.
  • 모든 셀의 (정규화된) 히스토그램을 연결한다. 이렇게 하면 전체 윈도우에 대한 특징 벡터가 생성된다.

2. 2. 균일 패턴 (Uniform Pattern)

균일 패턴[8]은 특징 벡터의 길이를 줄이고 간단한 회전 불변 기술자를 구현하는 데 사용되는, 원래 연산자에 대한 유용한 확장이다. 이는 일부 이진 패턴이 텍스처 이미지에서 다른 패턴보다 더 흔하게 발생한다는 사실에서 비롯되었다. 국부 이진 패턴은 이진 패턴에 0-1 또는 1-0 전환이 최대 두 번 포함되어 있으면 균일하다고 한다. 예를 들어 00010000 (2 전환)은 균일한 패턴이지만 01010100 (6 전환)은 균일하지 않다. LBP 히스토그램을 계산할 때 히스토그램은 모든 균일 패턴에 대해 별도의 빈을 가지며 모든 비균일 패턴은 단일 빈에 할당된다. 균일 패턴을 사용하면 단일 셀에 대한 특징 벡터의 길이가 256에서 59로 줄어든다. 58개의 균일 이진 패턴은 정수 0, 1, 2, 3, 4, 6, 7, 8, 12, 14, 15, 16, 24, 28, 30, 31, 32, 48, 56, 60, 62, 63, 64, 96, 112, 120, 124, 126, 127, 128, 129, 131, 135, 143, 159, 191, 192, 193, 195, 199, 207, 223, 224, 225, 227, 231, 239, 240, 241, 243, 247, 248, 249, 251, 252, 253, 254 및 255에 해당한다.

3. 확장

LBP는 성능 개선 및 특정 응용 분야 적용을 위해 다양하게 확장되었다. 주요 확장 방식은 다음과 같다.


  • 과잉 완전 지역 이진 패턴 (OCLBP):[9] 인접 블록에 중첩을 적용하는 LBP 변형이다.
  • 전환 지역 이진 패턴 (tLBP):[10] 중앙 픽셀을 제외하고 시계 방향으로 이웃 픽셀을 비교한다.
  • 방향 코딩 지역 이진 패턴 (dLBP): 중앙 픽셀 기준 네 가지 기본 방향의 밝기 변화를 인코딩한다.
  • 멀티 블록 LBP: 이미지를 여러 블록으로 나눠 각 블록의 LBP 히스토그램을 연결한다.
  • 볼륨 지역 이진 패턴 (VLBP):[11] 동적 텍스처를 3차원 공간 볼륨으로 간주한다.
  • RGB-LBP: RGB 색 공간의 각 채널별로 LBP를 계산 후 결과를 연결한다.

3. 1. 과잉 완전 지역 이진 패턴 (Overlapping Complete Local Binary Pattern, OCLBP)

OCLBP는 얼굴 검증 전반의 성능을 향상시키는 것으로 나타난 LBP의 변형이다.[9] LBP와 달리 OCLBP는 인접 블록에 중첩을 적용한다. 공식적으로 OCLBP의 구성은 S: (a, b, v, h, p, r)로 표시된다. 즉, 이미지가 수직 중첩 v와 수평 중첩 h를 가진 a×b 블록으로 나뉘고, 모든 블록에서 균일 패턴 LBP(u2,p,r)가 추출된다. 또한 OCLBP는 여러 다른 구성으로 구성된다. 예를 들어, 원래 논문에서 저자는 세 가지 구성을 사용했다: S: (10,10,12,12,8,1), (14,14,12,12,8,2), (18,18,12,12,8,3). 세 가지 구성은 세 가지 블록 크기(10×10, 14×14, 18×18)와 수직 및 수평 방향으로 반 중첩률을 고려한다. 이러한 구성은 크기가 150x80인 이미지에 대한 40877차원 특징 벡터를 형성하도록 연결된다.

3. 2. 전환 지역 이진 패턴 (Transition Local Binary Pattern, tLBP)

tLBP는 중앙 픽셀을 제외하고, 시계 방향으로 이웃 픽셀을 비교하여 이진 값을 생성한다.[10]

3. 3. 방향 코딩 지역 이진 패턴 (Direction Coded Local Binary Pattern, dLBP)

dLBP는 중앙 픽셀을 통해 네 가지 기본 방향을 따라 밝기 변화를 두 비트로 인코딩한다.[10]

3. 4. 멀티 블록 LBP (Multi-block LBP)

이미지는 여러 블록으로 나뉘고, 각 블록에 대해 LBP 히스토그램을 계산하여 최종 히스토그램으로 연결한다.

3. 5. 볼륨 지역 이진 패턴 (Volume Local Binary Pattern, VLBP)

볼륨 지역 이진 패턴(VLBP)은 동적 텍스처를 분석하는 데 사용된다.[11] X와 Y는 공간 좌표를, T는 프레임 인덱스를 나타내는 (X, Y, T) 공간의 볼륨 집합으로 텍스처를 간주한다. 픽셀의 이웃은 3차원 공간에서 정의되며, 볼륨 텍스톤을 히스토그램으로 추출할 수 있다.

3. 6. RGB-LBP

RGB-LBP는 RGB 색 공간의 세 채널(Red, Green, Blue) 각각에 대해 LBP를 독립적으로 계산한 다음, 그 결과들을 연결하여 만든다.[11]

4. 구현

LBP는 다양한 프로그래밍 언어 및 라이브러리를 통해 구현되어 있다.


  • MATLAB: CMV는 일반적인 LBP를 포함하며 MATLAB에서 LBP 히스토그램에 대한 많은 추가 확장을 제공한다.
  • Python:
  • mahotas는 LBP 구현을 포함하는 오픈 소스 컴퓨터 비전 패키지이다.
  • scikit-image는 오픈 소스 Python 라이브러리이다. LBP에 대한 C 기반 파이썬 구현을 제공한다.
  • OpenCV: 캐스케이드 분류기는 버전 2부터 LBP를 지원한다.
  • VLFeat: C로 작성된 오픈 소스 컴퓨터 비전 라이브러리이며 (MATLAB을 포함한 여러 언어에 대한 바인딩 포함) 구현을 가지고 있다.
  • LBPLibrary: 배경 제거 문제를 위해 개발된 11개의 국부 이진 패턴(LBP) 알고리즘 모음이다. 알고리즘은 OpenCV를 기반으로 C++로 구현되었다. CMake 파일이 제공되며 라이브러리는 윈도우, 리눅스 및 Mac OS X와 호환된다. 라이브러리는 OpenCV 2.4.10으로 성공적으로 테스트되었다.
  • BGSLibrary: 동작 감지를 위한 원래의 LBP 구현[12]과 인식률과 견고성이 향상된 마르코프 랜덤 필드[13]와 결합된 새로운 LBP 연산자 변형을 포함한다.
  • dlib: 오픈 소스 C++ 라이브러리로서 구현을 제공한다.

참조

[1] 논문 "Texture Unit, Texture Spectrum, And Texture Analysis" 1990
[2] 논문 "Texture Classification Using Texture Spectrum" 1990
[3] 논문 "Performance evaluation of texture measures with classification based on Kullback discrimination of distributions" 1994
[4] 논문 "A Comparative Study of Texture Measures with Classification Based on Feature Distributions" 1996
[5] 학회 "An HOG-LBP Human Detector with Partial Occlusion Handling" 2009
[6] 학회 "An eXtended Center-Symmetric Local Binary Pattern for Background Modeling and Subtraction in Videos" 2015-03
[7] ArXiv "On the Role and the Importance of Features for Background Modeling and Foreground Detection”
[8] 학회 "Fast High Dimensional Vector Multiplication Face Recognition." 2013
[9] 학회 "Fast High Dimensional Vector Multiplication Face Recognition." 2013
[10] 학회 "Extended set of local binary patterns for rapid object detection." 2010
[11] 논문 "Dynamic texture recognition using local binary patterns with an application to facial expressions." 2007
[12] 논문 "A texture-based method for modeling the background and detecting moving objects" 2006
[13] 학술지 Texture-Based Foreground Detection 2011



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com