KR20210080931A - Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법 - Google Patents

Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법 Download PDF

Info

Publication number
KR20210080931A
KR20210080931A KR1020190173016A KR20190173016A KR20210080931A KR 20210080931 A KR20210080931 A KR 20210080931A KR 1020190173016 A KR1020190173016 A KR 1020190173016A KR 20190173016 A KR20190173016 A KR 20190173016A KR 20210080931 A KR20210080931 A KR 20210080931A
Authority
KR
South Korea
Prior art keywords
pixel
values
input data
fpga
image processing
Prior art date
Application number
KR1020190173016A
Other languages
English (en)
Other versions
KR102379557B1 (ko
Inventor
이시광
Original Assignee
현대오트론 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 현대오트론 주식회사 filed Critical 현대오트론 주식회사
Priority to KR1020190173016A priority Critical patent/KR102379557B1/ko
Publication of KR20210080931A publication Critical patent/KR20210080931A/ko
Application granted granted Critical
Publication of KR102379557B1 publication Critical patent/KR102379557B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30028Colon; Small intestine
    • G06T2207/30032Colon polyp

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)

Abstract

본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템은, 원본 이미지의 픽셀 데이터를 제어하여 N개의 입력 데이터를 전송하는 입력 데이터 제어부, 상기 N개의 입력 데이터를 비교하여 N개의 비교 값을 출력하는 공통 레이어부, 및 3x3 샘플링 윈도우 알고리즘을 이용하여 상기 N개의 비교 값을 처리하여 M개의 미디안 값을 출력하는 픽셀 레이어부를 포함한다.

Description

FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법{IMAGE PROCESSING SYSTEM AND METHOD USING MEDIAN FILTER BASED ON FPGA}
본 발명은 이미지 프로세싱 방법에 관한 것으로, 일례로 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법에 관한 것이다.
이미지 프로세싱은 원본 이미지에 대해 이미지 처리 프로그램을 이용하여 새로운 이미지로 창작하거나 수정하는 일연의 작업 과정을 말한다.
최근에는 카메라 성능 향상에 따라 딥러닝 기술과 함께 이미지 프로세싱 기술의 중요성이 대두되고 있다.
광학 카메라와 같은 이미지 센서에 입력되는 원본 이미지에는 센서의 전기적인 외란이나 센서 성능저하로 인해 노이즈가 포함될 수 있다.
이는 실시간 영상처리를 기반으로 동작제어를 수행하는 응용분야에 중대한 영향을 미칠 수 있다.
미디안 필터(Median Filter)는 원본 이미지에 실리는 임펄스성 노이즈를 제거할 뿐만 아니라 원본 이미지의 에지(edge)를 잘 보존할 수 있는 대표적인 이미지 프로세싱 기법이다.
종래 미디안 필터는 프로세싱 시스템(Processing System)의 소프트웨어(Software: C, C++, OpenCV 등) 영역에서 수행되어, 속도가 느리고, 실시간으로 이미지 처리를 구현하지 못하는 문제가 있다.
일본 공개특허 제2010-141513호
이에 본 발명은 상기한 사정을 감안하여 안출된 것으로, 입력 데이터 버스 폭 64비트 시스템에서 3x3 샘플링 윈도우가 적용되는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템은, 원본 이미지의 픽셀 데이터를 제어하여 N개의 입력 데이터를 전송하는 입력 데이터 제어부; 상기 N개의 입력 데이터를 비교하여 N개의 비교 값을 출력하는 공통 레이어부; 및 3x3 샘플링 윈도우 알고리즘을 이용하여 상기 N개의 비교 값을 처리하여 M개의 미디안 값을 출력하는 픽셀 레이어부;를 포함한다.
상기 입력 데이터 제어부는, 상기 픽셀 데이터를 행 별로 구분하여 배치하는 입력데이터 흐름 관리부와, 행 별로 구분된 상기 픽셀 데이터가 적어도 세 개의 메모리 영역에 분산 저장되는 듀얼 포트 메모리를 포함할 수 있다.
상기 입력데이터 흐름 관리부는, 상기 적어도 세 개의 메모리 영역 각각으로부터 동일한 행의 픽셀 데이터를 수신하고, 수신된 픽셀 데이터를 적어도 세 개의 행과 적어도 여덟 개의 열로 배열하여 상기 N개의 입력 데이터를 마련할 수 있다.
상기 공통 레이어부는, 상기 N개의 입력 데이터 중에서 행 방향 픽셀 단위 마다 열 방향 세 개의 픽셀 값을 비교하여 상기 N개의 비교 값을 마련하는 시스톨릭 어레이 구조의 공통 어레이 레이어, 및 상기 N개의 비교 값을 상기 픽셀 레이어부에 전달하되, 상기 N개의 비교 값 중에서 마지막 앞 열과 마지막 열 각각의 비교 값을 지연하여 출력하는 공통 네트워크를 포함할 수 있다.
상기 시스톨릭 어레이 구조는, 적어도 두 개의 입력 데이터를 비교하여 큰 값과 작은 값으로 구분하여 출력하는 노드를 복수 조합하여 구성될 수 있다.
상기 복수의 노드는 N개로 구성되고, 상기 N개의 입력 데이터 중에서 열 방향 세 개의 픽셀 값을 비교하여 세 개의 비교 값을 하이, 미디안, 로우 형태로 출력하는 적어도 하나 이상의 노드 구조를 구성할 수 있다.
상기 픽셀 레이어부는, 상기 N개의 비교 값을 처리하여 상기 M개의 미디안 값을 출력하기 위해 상기 3x3 샘플링 윈도우 알고리즘을 구현하는 복수의 분류기를 구비하는 픽셀 분류 레이어와, 상기 픽셀 분류 레이어로부터 출력되는 상기 M개의 미디안 값 중에서 M-1 개의 미디안 값을 지연시켜 M개의 픽셀 값으로 동시 출력하는 픽셀 네트워크를 포함할 수 있다.
상기 복수의 분류기 각각은, 복수의 노드를 포함하여 구성되며, 상기 N개의 비교 값 중에서 행 방향 픽셀 단위 별로 구분된 3x3개의 비교 값을 비교하여 하나의 미디안 값을 출력하는 노드 구조를 구성할 수 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법은, 원본 이미지의 픽셀 데이터가 입력되는 입력 단계; 상기 픽셀 데이터의 배치를 제어하여 N개의 입력 데이터를 마련하는 입력 데이터 제어 단계; 상기 N개의 입력 데이터의 픽셀 값을 비교하여 N개의 비교 값을 출력하는 입력 데이터 비교 단계; 및 3x3 샘플링 윈도우 알고리즘을 이용하여 상기 N개의 비교 값을 분류하여 M개의 미디안 값을 출력하는 미디안 값 출력 단계;를 포함할 수 있다.
상기 N개의 비교 값 중에서 마지막 앞 열과 마지막 열의 비교 값을 지연하여 출력하는 비교 값 지연 단계를 더 포함할 수 있다.
상기 M개의 미디안 값 중에서 적어도 하나를 제외하고 지연시켜 M개의 픽셀 값으로 동시 출력하는 픽셀 값 출력 단계를 더 포함할 수 있다.
상기 입력 데이터 비교 단계는, 상기 N개의 입력 데이터의 행 방향 픽셀 단위 마다 열 방향 세 개의 픽셀 값을 비교하여 N개의 비교 값을 출력할 수 있다.
상기 3x3 샘플링 윈도우 알고리즘은, 3x3개의 비교 값을 입력받고 하나의 미디안 값을 출력하는 노드 구조로 구성되는 복수의 분류기를 통해 구현될 수 있다.
본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법에 의하면, FPAG를 기반으로 동시성(Concurrent)을 구비한 병렬처리(Parallelism)와 파이프라인(Pipelining) 연산처리 구조를 구현함으로써 미디안 필터가 더욱 빠르게 수행되고, 하드웨어의 한정된 자원을 적게 사용할 수 있는 효과가 있다.
또한, FPGA 시스템에 입력되는 시스템 클럭의 단일 클럭마다 8 개의 픽셀(Pixel)을 출력할 수 있는 효과가 있다.
또한, 1024X682 해상도의 입력 이미지 기준 소프트웨어 처리 시간(OpenCV에서 제공하는 medianBlur 함수 사용)이 2.5ms로 나타나고, 코어 클럭(core clock)이 1.2Ghz로 나타날 수 있다.
또한, FPGA 처리 시간이 0.06ms로 나타나고, 코어 클럭이 500Mhz로 나타날 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템의 블록도이다.
도 2는 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템의 구조를 보여주는 도면이다.
도 3은 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법의 순서도이다.
도 4는 3x3 샘플링 윈도우가 적용되는 미디안 필터 알고리즘을 설명하기 위한 도면이다.
도 5는 시스톨릭 어레이 구조를 설명하기 위한 도면이다.
도 6은 도 5의 노드 구조를 보여주는 도면이다.
도 7은 입력데이터 배치 방법을 설명하기 위한 도면이다.
도 8은 공통 어레이 레이어의 입력데이터 처리 방법을 보여주는 도면이다.
도 9는 픽셀 분류 레이어의 분류기 구조를 보여주는 도면이다.
도 10은 원본 이미지에 대한 미디안 필터에 따른 출력 픽셀의 시퀀스를 보여주는 도면이다.
도 11은 픽셀 레이어의 출력 결과를 보여주는 도면이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템의 블록도이다. 도 2는 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템의 구조를 보여주는 도면이다.
도 1 및 도 2를 참고하면, 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템(100)은 이미지 처리시 3x3 샘플링 윈도우를 적용하되 실시간성을 확보할 수 있는 것으로서, 입력 데이터 제어부(110), 공통 레이어부(120), 및 픽셀 레이어부(130)를 포함한다.
입력 데이터 제어부(110)는, 원본 이미지의 픽셀 데이터가 입력될 수 있다. 여기서, 원본 이미지는 이미지 센서(미도시)로부터 획득될 수 있다. 입력 데이터 제어부(110)는 픽셀 데이터를 제어하여 N개(N=24)의 입력 데이터를 공통 레이어부(120)로 전달할 수 있다.
입력 데이터 제어부(110)는, 입력 데이터 흐름 관리부(111)와 듀얼 포트 메모리(113)를 포함할 수 있다.
입력 데이터 흐름 관리부(111)는, 미디안 필터 알고리즘 동작을 위해 입력 데이터를 FPGA(Field Programmable Gate Array) 내부에 구현된 듀얼 포트 메모리(113)(Dual Port Memory)에 배치할 수 있다.
듀얼 포트 메모리(113)는 64비트 데이터 버스에 통신 연결될 수 있다. 듀얼 포트 메모리(113)에 배치되는 입력 데이터는 도 7을 통해 후술한다.
공통 레이어부(120)는, 입력 데이터 제어부(110)에 의해 제어된 입력 데이터의 픽셀 값을 비교하고 저장할 수 있다.
공통 레이어부(120)는 공통 어레이 레이어(121)와 공통 네트워크(123)를 포함할 수 있다.
공통 어레이 레이어(121)는 듀얼 포트 메모리(113)에 배치된 입력 데이터를 입력받을 수 있다. 공통 어레이 레이어(121)는 입력 데이터 배열에서 열 방향 픽셀 값을 한 묶음으로 처리하는 시스톨릭 어레이(Systolic Array) 구조를 가질 수 있다. 여기서, 시스톨릭 어레이 구조는 도 8을 통해 후술한다.
공통 어레이 레이어(121)는, 3x8 입력 데이터 배열에서 열 방향 픽셀 값을 한 묶음으로 처리하는 세 개의 노드(Node)를 이용하여 열 방향 픽셀 값을 비교하여 우선순위 값을 출력할 수 있다. 공통 어레이 레이어(121)는 우선순위 값에 따라 하이, 미디안, 및 로우 값을 구분하여 공통 네트워크(123)에 전송할 수 있다.
공통 네트워크(123)는 입력 데이터 배열에서 열 방향 픽셀 값들에 대한 하이, 미디안, 및 로우 값을 픽셀 레이어부(130)로 전송한다. 공통 네트워크(123)는 공통 어레이 레이어(121)의 출력 값을 지연시키기 위한 적어도 둘 이상의 D 플립플롭(DFF)을 구비할 수 있다.
픽셀 레이어부(130)는, 3x3 샘플링 윈도우 알고리즘을 이용하여 공통 네트워크(123)의 출력 값을 처리하여 M개(M=8)의 미디안 값을 출력할 수 있다.
픽셀 레이어부(130)는 픽셀 분류 레이어(131)와 픽셀 네트워크(133)를 포함할 수 있다.
픽셀 분류 레이어(131)는, 복수의 분류기(Sorter)를 포함하여 구성될 수 있다. 복수의 분류기(Sorter)는 8개로 구성될 수 있다. 각 분류기(Sorter)는 공통 네트워크(123)로부터 출력된 9개의 출력 값을 이용하여 하나의 미디안 값을 출력할 수 있다. 픽셀 분류 레이어(131)는 8개의 분류기(Sorter)를 이용하여 3x3 샘플링 윈도우 알고리즘을 구현함으로써 8개의 미디안 값을 출력할 수 있다. 각 분류기(Sorter) 구조는 도 9를 통해 후술한다.
픽셀 네트워크(133)는 픽셀 분류 레이어(131)의 출력 값을 지연시키기 위한 복수의 D 플립플롭(DFF)을 구비할 수 있다. D 플립플롭(DFF)은 7개로 구성될 수 있다. 복수의 D 플립플롭(DFF)은 분류기(Sorter)의 출력 값을 1클럭 마다 지연시킴으로써 8개의 픽셀 값이 동시에 출력되도록 한다. 최종 출력되는 픽셀의 시퀀스는 도 10을 통해 후술한다.
본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템은, 영상처리 기술의 정확성과 실시간성을 높일 수 있다. 또한, 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템은, FPAG를 기반으로 동시성(Concurrent)을 이용한 병렬처리(Parallelism)와 파이프라인(Pipelining) 연산처리 구조를 이용하여 미디안 필터를 더욱 빠르게 구현하고, 하드웨어의 한정된 자원을 적게 사용할 수 있는 구조로 구성한 것을 특징으로 한다.
도 3은 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법의 순서도이다.
도 1 내지 도 3을 참고하면, 본 발명의 바람직한 실시예에 따른 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법은, 픽셀 데이터 입력 단계(S310), 입력 데이터 제어 단계(S320), 입력 데이터 비교 단계(S330), 비교 값 출력 단계(S340), 미디안 값 출력 단계(S350), 및 픽셀 값 출력 단계(S360)를 포함한다.
픽셀 데이터 입력 단계(S310)에서, 원본 이미지의 픽셀 데이터가 입력 데이터 제어부(110)에 입력된다.
입력 데이터 제어 단계(S320)에서, 입력 데이터 제어부(110)는 픽셀 데이터의 배치를 제어하여 N개의 입력 데이터를 마련한다.
입력 데이터 비교 단계(S330)에서, 공통 레이어부(120)는 N개의 입력 데이터 배열에서 행 방향 픽셀 단위 마다 열 방향 세 개의 픽셀 값을 비교한다. 공통 레이어부(120)는 비교 결과 우선순위에 따라 비교 값을 출력한다. 우선순위는 하이, 미디안, 및 로우 순으로 정해질 수 있다.
비교 값 지연 단계(S340)에서, 공통 레이어부(120)는 N개의 비교 값 중에서 적어도 일부 비교 값을 지연하여 출력한다. 공통 레이어부(120)는 N개의 비교 값 중에서 마지막 앞 열과 마지막 열의 비교 값을 지연 출력할 수 있다.
미디안 값 출력 단계(S350)에서, 픽셀 레이어부(130)는 N개의 비교 값을 분류하여 미디안 값을 출력한다. 픽셀 레이어부(130)는 3x3 샘플링 윈도우 알고리즘으로 비교 값을 분류할 수 있다. 픽셀 레이어부(130)는 M개의 미디안 값을 출력할 수 있다.
픽셀 값 출력 단계(S360)에서, 픽셀 레이어부(130)는 M개의 미디안 값 중에서 적어도 하나를 제외하고 지연시켜 M개의 픽셀 값으로 동시 출력한다. 이를 통해, 동시 출력된 M개의 픽셀 값은 원본 이미지로부터 수정된 이미지를 구성할 수 있다. 또한, 이미지 처리시 실시간성이 확보될 수 있다.
도 4는 3x3 샘플링 윈도우가 적용되는 미디안 필터 알고리즘을 설명하기 위한 도면이다.
도 4를 참고하면, 입력 데이터(Input)는 3x5 배열로 나타날 수 있다. 미디안 필터는 3x5 입력 데이터 배열에 대해 세 번의 분류를 수행할 수 있다. 미디안 필터는 입력 데이터(Input)의 좌우방향 기준으로 첫 번째 3x3 입력 데이터의 픽셀 값에 대해 샘플링 및 제1 분류(Sorted1)를 수행할 수 있다. 또한, 미디안 필터는 입력 데이터(Input)의 좌우방향 기준으로 두 번째 3x3 입력 데이터의 픽셀 값에 대해 샘플링 및 제2 분류(Sorted2)를 수행할 수 있다. 또한, 미디안 필터는 입력 데이터(Input)의 좌우방향 기준으로 세 번째 3x3 입력 데이터의 픽셀 값에 대해 샘플링 및 제3 분류(Sorted3)를 수행할 수 있다.
제1 분류(Sorted1)에 따른 입력 데이터(Input)의 픽셀 값은 1, 2, 2, 3, 4, 5, 6, 7, 9 순서로 분류될 수 있다. 이때 제1 분류(Sorted1)에 따른 입력 데이터(Input)의 미디안 값은 4로 나타난다.
제2 분류(Sorted2)에 따른 입력 데이터(Input)의 픽셀 값은 1, 2, 2, 4, 6, 7, 7, 8, 9 순서로 분류될 수 있다. 이때 제2 분류(Sorted2)에 따른 입력 데이터(Input)의 미디안 값은 6으로 나타난다.
제3 분류(Sorted3)에 따른 입력 데이터(Input)의 픽셀 값은 2, 2, 2, 4, 5, 7, 7, 8, 9 순서로 분류될 수 있다. 이때 제3 분류(Sorted3)에 따른 입력 데이터(Input)의 미디안 값은 5로 나타난다.
미디안 필터는 전체 미디안 값 4, 6, 5를 출력하여 원본 이미지의 픽셀 값을 대체함으로써 원본 이미지의 노이즈가 제거되고 에지가 보존되는 수정 이미지를 생성할 수 있다.
그러나, 미디안 필터는, 해상도가 큰 이미지 또는 다수의 이미지들이 입력될 때, 매번 9개의 픽셀 값(1Pixel=1Byte)을 샘플링하여 미디안 값을 계산하고 1개의 미디안 값을 출력하게 되면, 지연 시간이 발생하게 되며, 이로 인해 실시간성을 요구하는 시스템에서 큰 문제를 야기할 수 있다.
이러한 문제를 개선하기 위해 본 발명의 이미지 프로세싱 시스템(100)은, FPGA를 기반으로 한 시스톨릭 어레이 구조를 구비한다. 이미지 프로세싱 시스템(100)은, 시스톨릭 어레이 구조를 통해 원본 이미지의 24개 픽셀 값을 동시에 입력 받고, 이후 분류기를 통해 8개의 픽셀 값으로 한번에 출력함으로써 지연 시간 없는 실시간성을 유지할 수 있다.
도 5는 시스톨릭 어레이 구조를 설명하기 위한 도면이다.
도 5의(a)는 일반적인 시스톨릭 어레이 구조의 미디안 값 분류기를 보여준다. 도 5의(b)는 최적화된 시스톨릭 어레이 구조의 미디안 값 분류기를 보여준다.
도 5의(a)에서, 일반적인 시스톨릭 어레이 구조는 9개의 픽셀 값(I1, I2, I3, I4, I5, I6, I7, I8, I9)을 입력받고 복수의 노드(Node)를 통과시켜 미디안 값(Median)을 출력할 수 있다.
도 5의(b)에서, 최적화된 시스톨릭 어레이 구조는 도 5의(a)의 일반적인 시스톨릭 어레이 구조보다 미디안 값 계산을 위해 필요한 노드(Node) 수가 47개에서 19개로 줄어든 것을 확인할 수 있다. 최적화된 시스톨릭 어레이 구조는 중간 채널(channel) 기준 좌측 노드들이 공통 어레이 레이어(121)를 구성하고, 중간 채널(channel) 기준 우측 노드들이 픽셀 분류 레이어(131)의 분류기(Sorter) 각각을 구성한다. 중간 채널(channel)은 공통 네트워크(123)에 포함될 수 있다.
도 6은 도 5의 노드 구조를 보여주는 도면이다.
도 6을 참고하면, 시스톨릭 어레이 구조를 구성하는 노드(Node)는 2개의 픽셀 값(A, B)을 입력받고, 입력 값을 비교하여 큰 값(High)과 작은 값(Low)을 각각 출력하도록 구성된다.
도 6의(b)에서 노드(Node)는 세 개의 비교기(Comparator)를 포함하여 구성될 수 있으나, 이에 한정되는 것은 아니다.
도 7은 입력데이터 배치 방법을 설명하기 위한 도면이다.
도 7을 참고하면, 입력 데이터 흐름 관리부(111)는 미디안 필터 알고리즘 동작을 위해 픽셀 데이터(Input Pixel Data)를 FPGA내부에 구현한 듀얼 포트 메모리(113)에 배치한다.
픽셀 데이터(Input Pixel Data)는 1바이트의 픽셀 값들을 포함할 수 있다. 픽셀 데이터(Input Pixel Data)는 행 방향으로 16 개의 픽셀 값들을 가지고, 열 방향으로 다수의 픽셀 값들을 가지며, 발명 설명의 용이함을 위해 좌우 방향으로 픽셀 값들의 배치 순서가 표시될 수 있다.
입력 데이터 흐름 관리부(111)는 첫 번째 행의 픽셀 데이터를 듀얼 포트 메모리(113)의 DPM A 메모리 영역에 저장하고, 두 번째 행의 픽셀 데이터를 듀얼 포트 메모리(113)의 DPM B 메모리 영역에 저장하고, 세 번째 행의 픽셀 데이터를 듀얼 포트 메모리(113)의 DPM C 메모리 영역에 저장할 수 있다.
또한, 입력 데이터 흐름 관리부(111)는 네 번째 행의 픽셀 데이터를 듀얼 포트 메모리(113)의 DPM A 메모리 영역에 저장하고, 다섯 번째 행의 픽셀 데이터를 듀얼 포트 메모리(113)의 DPM B 메모리 영역에 저장하고, 여섯 번째 행의 픽셀 데이터를 듀얼 포트 메모리(113)의 DPM C 메모리 영역에 저장할 수 있다.
이를 통해, 입력 데이터 흐름 관리부(111)는 데이터 트랜잭션(Data Transaction)을 최소화하여 DPM A, B C 각각으로부터 동일한 행의 픽셀 데이터를 수신하여 24개의 입력 데이터를 마련할 수 있다. 입력 데이터 흐름 관리부(111)는 24개의 입력 데이터를 동시에 공통 레이어부(120)로 출력할 수 있다.
도 8은 공통 어레이 레이어의 입력데이터 처리 방법을 보여주는 도면이다.
도 8을 참고하면, 공통 어레이 레이어(121)에는 24개의 입력 데이터가 동시에 입력될 수 있다.
공통 어레이 레이어(121)는 시스톨릭 어레이(Systolic array) 구조를 통해 입력 데이터 배열의 행 방향 픽셀 단위 마다 열 방향 세 개의 픽셀 값의 크기를 비교하여 비교 값을 우선순위에 따라 하이(High), 미디안(Median), 및 로우(Low) 형태로 출력할 수 있다.
공통 어레이 레이어(121)는 시스톨릭 어레이(Systolic array) 구조에서 세 개의 노드(Node)를 이용하여 입력 데이터의 열 방향 세 개의 픽셀 값들의 크기를 비교하여 비교 값을 출력할 수 있다.
일 실시예에 있어서, 공통 어레이 레이어(121)는, 입력 데이터 I(w+5, h-0), I(w+5, h-1), 및 I(w+5, h-2) 각각의 픽셀 값을 비교하여 비교 값을 출력할 수 있다.
일 실시예에 있어서, 공통 어레이 레이어(121)는, 입력 데이터 I(w-2, h-0), I(w+5, h-1), 및 I(w+5, h-2) 각각의 픽셀 값을 비교하여 비교 값을 출력할 수 있다.
공통 어레이 레이어(121)는 비교 값을 공통 네트워크(123)을 통해 픽셀 분류 레이어(131)로 전송할 수 있다.
여기서, 픽셀 분류 레이어(131)에서 3x3 샘플링 윈도우 알고리즘에 따라 미디안 값을 계산할 때, w-1, w-2 위치의 픽셀 값들은 w-2, w+5 위치의 미디안 값을 얻기 위해 1 클럭 만큼 지연시킬 필요가 있다.
공통 네트워크(123)는, N개의 비교 값을 상기 픽셀 레이어부에 전달하되 상기 N개의 비교 값 중에서 마지막 앞 열과 마지막 열 각각의 비교 값을 지연하여 출력할 수 있다.
일 실시예에 있어서, 공통 네트워크(123)는, 입력 데이터 I(w-2, h-0), I(w-2, h-1), 및 I(w-2, h-2)의 비교 값과 입력 데이터 I(w-1, h-0), I(w-1, h-1), 및 I(w-1, h-2)의 비교 값을 D 플립플롭(DFF)을 이용하여 1 클럭 지연시킨 후 픽셀 분류 레이어(131)로 전송할 수 있다.
도 9는 픽셀 분류 레이어의 분류기 구조를 보여주는 도면이다.
도 9를 참고하면, 픽셀 분류 레이어(131)는 M개(M=8)의 분류기(Sorter)를 포함할 수 있다. 분류기(Sorter)는 복수의 노드(Node)를 포함하여 구성되며, N개의 비교 값 중에서 행 방향 픽셀 단위 별로 구분된 3x3개의 비교 값을 비교하여 하나의 미디안 값을 출력하는 노드 구조를 구성할 수 있다. 각 노드(Node)는 도 6에서 설명한 바 있는 노드와 동일한 구성으로 이루어질 수 있다.
분류기(Sorter)는 3x3개의 비교 값(High1, Median1, Low1, High2, Median2, Low2, High3, Median3, Low3)을 입력받고 3x3개의 비교 값을 비교하여 하나의 미디안 값(Median)을 출력할 수 있다. 픽셀 분류 레이어(131)는 8개의 분류기(Sorter)를 통해 8개의 미디안 값을 픽셀 네트워크(133)로 출력할 수 있다.
픽셀 네트워크(133)는 8개의 분류기(No.0~No.7) 중에서 7개의 분류기(No.0~No.6)의 출력을 1 클럭 지연시키는 D 플립플롭(DFF)을 구비할 수 있다. 이를 통해, 픽셀 네트워크(133)는 1 클럭 마다 8개의 픽셀 값을 최종적으로 동시 출력할 수 있다.
도 10은 원본 이미지에 대한 미디안 필터에 따른 출력 픽셀의 시퀀스를 보여주는 도면이다.
도 10을 참고하면, 듀얼 포트 메모리(113)의 3 개의 DPM 영역에 저장되어 있는 입력 이미지 데이터(Input Image)에 대해 3x3 샘플링 윈도우 방식으로 미디안 필터를 수행할 때, 입력 데이터 트랜잭션 타이밍(Input Data Transaction timing), 프로세싱 타이밍(Processing timing), 출력 이미지 타이밍(Output image timing)을 확인할 수 있다.
입력 데이터 트랜잭션 타이밍(Input Data Transaction timing)과 출력 이미지 타이밍(Output image timing)이 동일함에 따라, 미디안 필터의 실시간성이 확보될 수 있다.
도 11은 픽셀 레이어의 출력 결과를 보여주는 도면이다.
도 11을 참고하면, RTL 레벨의 behavioral 시뮬레이션 결과를 확인할 수 있다. 시뮬레이션 결과에서 8개의 픽셀 값(pixel0, pixel1, pixel2, pixel3, pixel4, pixel5, pixel6, pixel7)이 2ns 마다(클럭 주파수 500Mhz) 동시 출력되는 것을 확인할 수 있다.
FPGA Synthesis는 Zynq UltraScale+의 Evaluation 보드인 ZCU106에서 수행되며, FPGA(ZU7) Utilization Resource는 다음 표 1과 같다.
Resource Used Available Utilization %
LUT 1515 230400 0.66
FF 190 460800 0.04
BRAM 6 312 1.92
BUFG 1 544 0.18
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다.
본 발명에 따른 단계들 및/또는 동작들은 기술분야의 통상의 기술자에 의해 이해될 수 있는 것과 같이, 다른 순서로, 또는 병렬적으로, 또는 다른 에포크(epoch) 등을 위해 다른 실시 예들에서 동시에 일어날 수 있다.
실시 예에 따라서는, 단계들 및/또는 동작들의 일부 또는 전부는 하나 이상의 비-일시적 컴퓨터-판독가능 매체에 저장된 명령, 프로그램, 상호작용 데이터 구조(interactive data structure), 클라이언트 및/또는 서버를 구동하는 하나 이상의 프로세서들을 사용하여 적어도 일부가 구현되거나 또는 수행될 수 있다. 하나 이상의 비-일시적 컴퓨터-판독가능 매체는 예시적으로 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합일 수 있다. 또한, 본 명세서에서 논의된 "모듈"의 기능은 소프트웨어, 펌웨어, 하드웨어, 및/또는 그것들의 어떠한 조합으로 구현될 수 있다.
100: 이미지 프로세싱 시스템
110: 입력 데이터 제어부
111: 입력데이터 흐름 관리부
113: 듀얼 포트 메모리
120: 공통 레이어부
121: 공통 어레이 레이어
123: 공통 네트워크
130: 픽셀 레이어부
131: 픽셀 분류 레이어
133: 픽셀 네트워크

Claims (13)

  1. 원본 이미지의 픽셀 데이터를 제어하여 N개의 입력 데이터를 전송하는 입력 데이터 제어부;
    상기 N개의 입력 데이터를 비교하여 N개의 비교 값을 출력하는 공통 레이어부; 및
    3x3 샘플링 윈도우 알고리즘을 이용하여 상기 N개의 비교 값을 처리하여 M개의 미디안 값을 출력하는 픽셀 레이어부;
    를 포함하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  2. 제 1 항에 있어서,
    상기 입력 데이터 제어부는,
    상기 픽셀 데이터를 행 별로 구분하여 배치하는 입력데이터 흐름 관리부와,
    행 별로 구분된 상기 픽셀 데이터가 적어도 세 개의 메모리 영역에 분산 저장되는 듀얼 포트 메모리를 포함하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  3. 제 2 항에 있어서,
    상기 입력데이터 흐름 관리부는,
    상기 적어도 세 개의 메모리 영역 각각으로부터 동일한 행의 픽셀 데이터를 수신하고, 수신된 픽셀 데이터를 적어도 세 개의 행과 적어도 여덟 개의 열로 배열하여 상기 N개의 입력 데이터를 마련하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  4. 제 1 항에 있어서,
    상기 공통 레이어부는,
    상기 N개의 입력 데이터 중에서 행 방향 픽셀 단위 마다 열 방향 세 개의 픽셀 값을 비교하여 상기 N개의 비교 값을 마련하는 시스톨릭 어레이 구조의 공통 어레이 레이어, 및
    상기 N개의 비교 값을 상기 픽셀 레이어부에 전달하되, 상기 N개의 비교 값 중에서 마지막 앞 열과 마지막 열 각각의 비교 값을 지연하여 출력하는 공통 네트워크를 포함하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  5. 제 4 항에 있어서,
    상기 시스톨릭 어레이 구조는,
    적어도 두 개의 입력 데이터를 비교하여 큰 값과 작은 값으로 구분하여 출력하는 노드를 복수 조합하여 구성되는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  6. 제 5 항에 있어서,
    상기 복수의 노드는 N개로 구성되고,
    상기 N개의 입력 데이터 중에서 열 방향 세 개의 픽셀 값을 비교하여 세 개의 비교 값을 하이, 미디안, 로우 형태로 출력하는 적어도 하나 이상의 노드 구조를 구성하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  7. 제 1 항에 있어서,
    상기 픽셀 레이어부는,
    상기 N개의 비교 값을 처리하여 상기 M개의 미디안 값을 출력하기 위해 상기 3x3 샘플링 윈도우 알고리즘을 구현하는 복수의 분류기를 구비하는 픽셀 분류 레이어와,
    상기 픽셀 분류 레이어로부터 출력되는 상기 M개의 미디안 값 중에서 M-1 개의 미디안 값을 지연시켜 M개의 픽셀 값으로 동시 출력하는 픽셀 네트워크를 포함하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  8. 제 7 항에 있어서,
    상기 복수의 분류기 각각은,
    복수의 노드를 포함하여 구성되며,상기 N개의 비교 값 중에서 행 방향 픽셀 단위 별로 구분된 3x3개의 비교 값을 비교하여 하나의 미디안 값을 출력하는 노드 구조를 구성하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 시스템.
  9. 원본 이미지의 픽셀 데이터가 입력되는 입력 단계;
    상기 픽셀 데이터의 배치를 제어하여 N개의 입력 데이터를 마련하는 입력 데이터 제어 단계;
    상기 N개의 입력 데이터의 픽셀 값을 비교하여 N개의 비교 값을 출력하는 입력 데이터 비교 단계; 및
    3x3 샘플링 윈도우 알고리즘을 이용하여 상기 N개의 비교 값을 분류하여 M개의 미디안 값을 출력하는 미디안 값 출력 단계;
    를 포함하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법.
  10. 제 1 항에 있어서,
    상기 N개의 비교 값 중에서 마지막 앞 열과 마지막 열의 비교 값을 지연하여 출력하는 비교 값 지연 단계를 더 포함하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법.
  11. 제 9 항에 있어서,
    상기 M개의 미디안 값 중에서 적어도 하나를 제외하고 지연시켜 M개의 픽셀 값으로 동시 출력하는 픽셀 값 출력 단계를 더 포함하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법.
  12. 제 9 항에 있어서,
    상기 입력 데이터 비교 단계는,
    상기 N개의 입력 데이터의 행 방향 픽셀 단위 마다 열 방향 세 개의 픽셀 값을 비교하여 N개의 비교 값을 출력하는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법.
  13. 제 9 항에 있어서,
    상기 3x3 샘플링 윈도우 알고리즘은,
    3x3개의 비교 값을 입력받고 하나의 미디안 값을 출력하는 노드 구조로 구성되는 복수의 분류기를 통해 구현되는 것을 특징으로 하는 FPGA 기반 미디안 필터를 이용한 이미지 프로세싱 방법.
KR1020190173016A 2019-12-23 2019-12-23 Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법 KR102379557B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190173016A KR102379557B1 (ko) 2019-12-23 2019-12-23 Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190173016A KR102379557B1 (ko) 2019-12-23 2019-12-23 Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210080931A true KR20210080931A (ko) 2021-07-01
KR102379557B1 KR102379557B1 (ko) 2022-03-28

Family

ID=76860296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190173016A KR102379557B1 (ko) 2019-12-23 2019-12-23 Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102379557B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010141513A (ja) 2008-12-10 2010-06-24 Toshiba Corp 演算装置及び動画像符号化装置
KR20180122548A (ko) * 2017-05-03 2018-11-13 삼성전자주식회사 이미지를 처리하는 방법 및 장치
KR20190041961A (ko) * 2018-11-01 2019-04-23 주식회사 수아랩 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010141513A (ja) 2008-12-10 2010-06-24 Toshiba Corp 演算装置及び動画像符号化装置
KR20180122548A (ko) * 2017-05-03 2018-11-13 삼성전자주식회사 이미지를 처리하는 방법 및 장치
KR20190041961A (ko) * 2018-11-01 2019-04-23 주식회사 수아랩 딥러닝 기반 이미지 비교 장치, 방법 및 컴퓨터 판독가능매체에 저장된 컴퓨터 프로그램

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A.N.PIMPALE 등, ‘Optimized Systolic Array Design for Median Filter in Image Filtration’, International Journal of Electrical, Electronics and Computer Engineering (2016.4.22.)* *
Jesse Scott 등, ‘Comparison of 2D Median Filter Hardware Implementations for Real-Time Stereo Video’, 37th IEEE Applied Imagery Pattern Recognition Workshop (2008.1.31.)* *

Also Published As

Publication number Publication date
KR102379557B1 (ko) 2022-03-28

Similar Documents

Publication Publication Date Title
US10896354B2 (en) Target detection method and device, computing device and readable storage medium
US10083153B2 (en) Arithmetic processing apparatus
US8924455B1 (en) Multiplication of matrices using systolic arrays
US20210073569A1 (en) Pooling device and pooling method
Bates et al. FPGA implementation of a median filter
JP2016099707A (ja) 演算処理装置
Kowalczyk et al. Real-time implementation of contextual image processing operations for 4K video stream in Zynq ultrascale+ MPSoC
US8823841B2 (en) Method and apparatus for correcting for vignetting in an imaging system
US5793443A (en) Motion vector detection circuit
Hu et al. Research on image median filtering algorithm and its FPGA implementation
Vasicek et al. Evolution of efficient real-time non-linear image filters for fpgas
KR102379557B1 (ko) Fpga 기반 미디안 필터를 이용한 이미지 프로세싱 시스템 및 방법
TWI766203B (zh) 用於實施神經網路應用之卷積塊陣列及其使用方法、和卷積塊電路
US4736438A (en) Image processing device for the real-time processing and recognition of two-dimensional images, and an image processing system including at least two series-connected image processing devices of this kind
Kayaer et al. A new approach to emulate CNN on FPGAs for real time video processing
Shi et al. An enhanced multiway sorting network based on n-sorters
US20150049196A1 (en) Apparatus and method for composition image for avm system
JPH05258054A (ja) 2次元デジタルフィルタを実現するための装置
Swenson et al. A hardware FPGA implementation of a 2D median filter using a novel rank adjustment technique
US6731820B2 (en) Image filter circuit and image filtering method
DE102021100205A1 (de) Systeme und verfahren zum verringern von speicheranforderungen in neuronalen netzen
Ogata et al. The design and evaluation of a pipelined image compositing device for massively parallel volume rendering
Vasanth et al. A Novel 8 bit digital comparator for 3x3 fixed kernel based modified shear sorting
Saegusa et al. Real-time segmentation of color images based on the K-means CLUSTERING on FPGA
US6717695B1 (en) Method and circuit for the production of compressed or expanded images, and printer with such circuit

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant