KR20210075453A - 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 매체 - Google Patents

적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 매체 Download PDF

Info

Publication number
KR20210075453A
KR20210075453A KR1020190166530A KR20190166530A KR20210075453A KR 20210075453 A KR20210075453 A KR 20210075453A KR 1020190166530 A KR1020190166530 A KR 1020190166530A KR 20190166530 A KR20190166530 A KR 20190166530A KR 20210075453 A KR20210075453 A KR 20210075453A
Authority
KR
South Korea
Prior art keywords
image
integral
integral image
horizontal
ultra
Prior art date
Application number
KR1020190166530A
Other languages
English (en)
Other versions
KR102405470B1 (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 KR1020190166530A priority Critical patent/KR102405470B1/ko
Publication of KR20210075453A publication Critical patent/KR20210075453A/ko
Application granted granted Critical
Publication of KR102405470B1 publication Critical patent/KR102405470B1/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2624Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects for obtaining an image which is composed of whole input images, e.g. splitscreen

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 주어진 초고해상도 그레이레벨 영상(graylevel image)으로부터 적분영상(integral image)을 생성하고 이를 이용한 평균차이(Difference of Averages; DoA) 필터(filter)의 값으로 영상분할(image segmentation)한 삼진영상(trianry image)을 초고속으로 생성하는 병렬 연산 방법에 관한 것이다. 본 발명에 따른 적분영상 이용 영상분할을 위한 초고속 병렬 연산 방법은 주어진 입력영상으로부터 덧대기(padding) 영상과 그의 적분영상 동시 생성부; 적분영상의 계산 값을 이용하는 평균차이 필터부; 그리고 평균차이 필터부로부터 생성된 값들을 이용하여 영상분할된 삼진영상 생성부; 를 포함한다. 본 발명에 따른 하나의 실시예로 적분영상 기반 영상분할 방법을 멀티-코어 CPU를 탑재한 컴퓨터에서 소프트웨어로 구현하는 경우에 멀티-코어 CPU만으로도 충분히 실시간 구현이 가능하므로 추가 비용이 소요되는 멀티-GPU나 특별한 임베디드(embedded)를 이용하지 않아도 되는 효과가 있다. 그리고 적분영상을 이용하여 머신 비전 검사 장치(machine vision inspection system)의 필수 구성품인 카메라와 조명의 이상 유무를 판단하는 영상 질 평가(image quality assessment)에 활용할 수 있는 효과가 있다.

Description

적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 매체{Ultra-fast parallel computation method for integrated image based image segmentation and its media recording thereof}
본 발명은 주어진 초고해상도 그레이레벨 영상으로부터 적분영상을 생성하고 이를 이용한 평균차이 필터의 값으로 영상분할하여 삼진영상을 초고속으로 생성하는 병렬 연산 방법과 초고속 병렬 연산프로그램을 기록한 매체의 제공에 관한 것이다.
물체의 표면을 카메라 기반으로 검사하는 머신 비전(machine vision) 분야에서 종종 활용되는 국부(local) 평균차이 필터(difference of averages filter; DoA filter)를 이용하는 영상분할(image segmentation) 방법이 알려져 있다.
이 방법은 주어진 영상의 모든 화소 위치에서 그 위치를 중심으로 일정한 크기를 가지는 전경창(foreground window)과, 그 전경창보다 크기가 더 큰 배경창(background window) 내에서 각각 밝기값의 평균을 계산하고, 계산된 전경창과 배경창의 평균값 차이를 이용하여 영상분할 하는 것에 관한 것으로서 하기와 같은 방법으로 이루어진다.
주어진 그레이레벨 영상에서 임의의 한 화소 위치
Figure pat00001
에서 그 밝기값을
Figure pat00002
로 두고,
Figure pat00003
의 수평과 수직의 화소 수는 각각
Figure pat00004
Figure pat00005
로 둔다. 여기에서
Figure pat00006
이고
Figure pat00007
이다.
Figure pat00008
에서 평균 차이(difference of averages; DoA)
Figure pat00009
는 배경창의 크기
Figure pat00010
에 해당하는 화소들이 가지는 밝기의 평균값과 전경창의 크기
Figure pat00011
에 해당하는 화소들이 가지는 밝기의 평균값 사이의 차이를 말하며, 다음과 같이 계산할 수 있다.
Figure pat00012
(1)
여기서 수평 화소 좌표
Figure pat00013
를 만족해야 하고, 수직 화소 좌표
Figure pat00014
를 만족해야 한다.
식 (1)로부터 계산된
Figure pat00015
를 이용하여 다음과 같이 최종적으로 영상 분할된 삼진영상(trinary image)
Figure pat00016
를 생성할 수 있다.
Figure pat00017
(2)
여기서
Figure pat00018
Figure pat00019
는 실수 값을 가지며, 실험적으로 결정하는 매개변수이다.
식 (1)을 입력 영상에 직접 적용한 계산량은 다음과 같이 된다.
덧셈 연산량은
Figure pat00020
, 뺄셈 연산량은
Figure pat00021
, 나눗셈은
Figure pat00022
이다. 만약
Figure pat00023
,
Figure pat00024
,
Figure pat00025
,
Figure pat00026
인 경우에 덧셈은 대략적으로
Figure pat00027
번이 될 것이다. 뺄셈은
Figure pat00028
번이 되며, 나눗셈은
Figure pat00029
번이 된다. 이와 같이 그 계산량이 매우 방대하여 실시간 처리가 요구되는 머신 비전 검사 장치에는 현실적으로 활용할 수 없게 된다.
머신 비전 검사 장치에 활용되는
Figure pat00030
해상도를 가지는 상용 라인(line) 카메라는 초당
Figure pat00031
개의 라인 영상을 생성하는 것이 일반적이다.
따라서
Figure pat00032
화소를 가지는 영상은 약
Figure pat00033
초 이내에 생성된다. 이 경우에 상기한 식 (1)과 식 (2)를 직접 구현하는 것은 실시간 머신 비전 검사 장치에는 적용하기에는 현실적으로 매우 부적합함을 알 수 있다.
입력 영상이
Figure pat00034
의 해상도이고 전경창의 크기가
Figure pat00035
이고 배경창이 크기가
Figure pat00036
인 경우에 상품명 인텔 i5-4590 3.6GHz 쿼드 코어(quad core) CPU를 탑재한 컴퓨터의 운영체계를 상품명 마이크로소프트 윈도우 7 x64를 설치하고 상품명 비주얼 스튜디오 2015 환경에서 C++로 4개의 코어로 상기한 식(1)과 식 (2)를 구현한 경우에 그 수행시간은 약 192초였다.
만약 전경창과 배경창의 크기가 커지는 경우에는 그 수행시간이 더욱 늘어나게 됨은 당연하다. 전경창의 크기가
Figure pat00037
이고 배경창의 크기가
Figure pat00038
인 경우에서는 그 수행 시간이 1,430초였다.
머신 비전 검사 장치에서는 전경창과 배경창의 크기에 연동되지 않는 고정된 수행시간이 요구된다. 이를 위해서는 전경창과 배경창의 크기에 무관하게 동일한 계산량을 가지는 방법이 필요하다. 이 문제는 알려진 기술인 적분 영상[선행기술 해외논문 : 문헌 2, 3]을 이용하여 해결할 수도 있다.
적분영상은 크게 직렬 계산 방법[선행기술문헌 해외논문: 문헌 2, 3, 4, 국내특허 1]와 병렬 계산 방법으로 나눌 수 있다. 병렬 계산은 다시 멀티-코어 기반 알고리듬[선행기술문헌 해외논문: 문헌 5, 7], 멀티-GPU 기반 알고리듬[선행기술문헌 해외논문: 문헌 6], 임베디드(embedded) 구현[선행기술문헌 해외논문: 문헌 8, 9; 국내특허 1] 등으로 분류된다.
멀티-GPU 기반 알고리듬은 회사명 앤비다(NBIDIA)사 등의 멀티-GPU 탑재 그래픽 카드가 추가적으로 필요하며, 임베디드 구현은 별도의 하드웨어가 필요하다. 따라서 이들 방법은 머신 비전 검사 장치의 비용을 대폭 증가시키는 중요한 단점을 가지게 된다.
국내특허 001: 특허 10-1688435호, 블록 구조를 이용한 적분 영상 생성 장치 및 그 방법, 2016.
(문헌1) 해외논문 001: Crow, F., "Summed-area tables for texture mapping,"ACM SIGGRAPH Computer Graphics, pp. 207-212, 18, 1984. (문헌2) 해외논문 002: Viola P., Jones M., "Rapid Object Detection using a Boosted Cascade of Simple Features,"Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pp. 511-518, Kauai, HI, USA, December 8-14, 2001. (문헌3) 해외논문 003: Faisal Shafait, Daniel Keysers, Thomas M. Breuel, "Efficient implementation of local adaptive thresholding techniques using integral images,"Proc. SPIE 6815, Document Recognition and Retrieval XV, 681510, 28 January 2008. (문헌4) 해외논문 004: Branislav Kisaˇcanin, "Integral Image Optimizations for Embedded Vision Applications,"IEEE Southwest Symposium on Image Analysis and Interpretation, pp. 181-183, 24-26 March 2008. (문헌5) 해외논문 005: Zhang, N., "Working towards Efficient Parallel Computing of Integral Images on Multi-Core Processors,"Proceedings of the Second International Conference on Computer Engineering and Technology, pp. 30-34, Chengdu, China, 16-18, April 2010. (문한6) 해외논문 006: Berkin Bilgic, Berthold K.P. Horn, Ichiro Masaki, "Efficient Integral Image Computation on the GPU,"2010 IEEE Intelligent Vehicles Symposium, pp. 528-531, June 21-24, 2010. (문헌7) 해외논문 007: Wu Y. T., Cho C. Y., Tseng S. Y., Liu C. N., King C.T., "Parallel Integral Image Generation Algorithm on Multi-Core System,"Proceedings of the 9th IEEE International Symposium on Parallel and Distributed Processing with Applications, pp. 31-35, Busan, Korea, 26-28, May 2011. (문헌8) 해외논문 008: Peng Ouyang, Shouyi Yin, Yuchi Zhang, Leibo Liu, and Shaojun Wei, "A Fast Integral Image Computing Hardware Architecture With High Power and Area Efficiency,"IEEE Trans. on Circuits and Systems―II: Express Briefs, Vol. 62, No. 1, pp. 75-79, 2015. (문헌9) 해외논문 009: Shoaib Ehsan, Adrian F. Clark, Naveed ur Rehman and Klaus D. McDonald-Maier, "Integral Images: Efficient Algorithms for Their Computation and Storage in Resource-Constrained Embedded Vision Systems,"Sensors, pp. 16804-16830, 15, 2015. (문헌10) 국내특허 001: 특허 10-1688435호, 블록 구조를 이용한 적분 영상 생성 장치 및 그 방법, 2016.
본 발명에서 해결하고자 하는 과제는, 상기한 식 (1)과 식 (2)를 전경창과 배경창의 크기와는 무관하게 초고속으로 병렬 연산하는 새로운 방법의 제공과 그 방법을 기록한 매체의 체공에 관한 것이다.
상기 과제를 해결하기 위해, 본 발명에 따른 적분영상 이용 영상분할을 위한 초고속 병렬 연산 방법은 주어진 입력영상으로부터 덧대기(padding) 영상과 그의 적분영상 동시 생성부; 및 적분영상의 계산 값을 이용하는 평균차이 필터부; 그리고 평균차이 필터부로부터 생성된 값들을 이용하여 영상분할된 삼진영상 생성부; 를 포함한다.
여기에서, 상기 초고속 병렬 연산 방법의 한 실시예로 멀티-코어 CPU를 탑재한 컴퓨터에서 SIMD 어셈블리어와 openMP 명령어를 이용하는 소프트웨어 구현 방법을 포함할 수 있다.
또한, 상기 덧대기 영상과 그의 적분영상 동시 생성부는 평균차이 필터를 연산하는데 필요한 전경창과 배경창의 크기와 덧대기 영상(padding image)의 생성 방법인 0-덧대기(zero-padding)나 거울 덧대기(mirror-padding) 방법을 고려하는 것이 포함될 수 있다.
나아가 여기에서, 상기 덧대기 영상의 크기는 입력 영상의 크기, 배경창의 최대 크기, 그리고 멀티-코어 CPU의 벡터 레지스터(vector register) 크기를 고려해서 결정하는 방법을 포함할 수 있다.
또한, 상기 덧대기 영상과 그의 적분영상을 동시에 생성하기 위해서 덧대기 영상을 멀티-코어 CPU의 코어 수만큼 수직 또는 수평 방향으로 균등하게 나누어 각각의 코어에 할당하여 각 코어의 로드(load)가 균등하게 되도록 병렬 연산하는 방법을 포함할 수 있다. 이 경우에 각 코어에 할당된 적분영상의 최대값이 정수형 데이터의 범위를 초과하지 않도록 수직 또는 수평 방향으로 나누어질 영상의 크기를 고려하는 방법을 포함할 수 있다.
여기에서, 상기 덧대기 영상과 그의 적분영상 동시 생성부 이후에 생성된 적분영상을 이용하는 평균차이 필터부는 전경창과 배경창의 크기와 무관하게 그 연산 과정의 실행 속도가 거의 동일하게 유지되도록 하는 방법들 가운데에서 하나의 실시예로 멀티-코어 CPU의 벡터 레지스터의 크기와 멀티-코어 CPU 기반 병렬 연산의 로드 밸런스(load balance)가 맞추어지도록 코어의 수만큼 적분영상의 크기를 수직 또는 수평 방향으로 균등하게 나누는 방법을 포함할 수 있다.
상기 평균차이 필터부 이후에 생성되는 평균차이 값들로부터 삼진영상을 생성하는데 문턱값(threshold value) 기반 영상분할 방법 등을 포함할 수도 있다. 그리고 상기한 평균처리 필터부와 유사하게 전경창과 배경창의 크기와 무관하게 그 연산 과정의 실행 속도가 거의 동일하게 유지되도록 하는 방법들 가운데에서 하나의 실시예로 멀티-코어 CPU의 벡터 레지스터의 크기와 병렬 연산의 로드 밸런스(load balance)가 맞추어지도록 코어의 수만큼 적분영상의 크기를 수직 또는 수평 방향으로 균등하게 나누는 방법을 포함할 수 있다.
본 발명에 따르면, 주어진 초고해상도 그레이레벨 영상으로부터 덧대기와 적분영상을 동시에 생성하고, 생성된 적분영상에서 평균차이 필터로 계산한 평균차이 값으로부터 영상분할된 삼진영상을 초고속으로 생성하는 병렬 연산 방법에서 하나의 실시예로 멀티-코어 CPU를 탑재한 컴퓨터에서 소프트웨어로 구현하는 경우에 충분히 실시간 구현이 가능하므로 추가 비용이 소요되는 멀티-GPU나 특별한 임베디드를 이용하지 않아도 되므로 전체 시스템의 비용을 대폭 저감시키는 산업상의 효과가 있다.
나아가 본 발명에 따르면, 적분영상에서 특정한 수평 영역 또는 수직 영역이나 하나의 수평선 또는 수직선에 위치한 밝기값의 평균값이 다른 특정 수평 영역 또는 수직 영역이나 하나의 수평선 또는 수직선에 위치한 밝기값의 평균값보다 현저히 낮으면 그 영역이나 선에 해당하는 카메라 센서 소자나 조명의 고장으로 판단한다.
이를 활용하면 카메라나 조명 장치의 유지 보수에 활용할 수 있을 뿐만 아니라 제품의 표면을 검사하기 이전의 카메라나 조명의 이상 여부 등을 판단할 수 있게 되어 전체 시스템에 의한 영상 질의 평가에 활용할 수 있는 부수적인 효과가 있다.
도 1은 본 발명에 따른 적분영상 기반 삼진영상 생성 방법의 설명을 위한 플로우차트.
도 2는 입력영상과 덧대기 영상의 수평과 수직 크기를 나타내는 참고설명도.
도 3은 수평 적분영상 생성 방법을 설명하기 위한 플로우차트.
도 4는 정수 변환 방법을 설명하기 위한 플로우차트.
도 5는 이동합산을 설명하기 위한 플로우차트.
도 6은 혼합합산을 설명하기 위한 플로우차트.
도 7은 수평방향으로 거울 덧대기와 그의 적분영상이 생성된 영역을 나타내기 위한 설명도.
도 8은 평균차이 필터로부터 삼진 영상 생성 방법을 설명하기 위한 플로우차트이다.
이하, 본 발명의 바람직한 한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 부호를 부하고 있다.
본 발명을 설명함에 있어, 기히 공지, 공용의 기술에 대한 구체적인 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 통하여 설명하고 있으나,
본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
본 발명에 따른 덧대기 영상과 그의 적분영상 동시 생성부, 평균차이 필터부, 삼진영상 생성부는 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있고 또는 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다.
또한 본 발명에 따른 덧대기 영상과 그의 적분영상 동시 생성부, 평균차이 필터부, 삼진영상 생성부는 소프트웨어 프로그램으로 구현되어 프로세서 또는 신호 처리 모듈 위에서 동작할 수 있고, 또는 하드웨어의 형태로 구현되어 칩(Chip), 소자 등이 될 수 있음은 물론이다.
또한 이와 같은 본 발명에 따른 덧대기 영상과 그의 적분영상 동시 생성부, 평균차이 필터부, 삼진영상 생성부는 영상을 획득 또는 입력받고 이를 처리하는 디바이스, 하드웨어, 소프트웨어 모듈에 포함되어 동작할 수 있다.
예를 들면 본 발명에 따른 덧대기 영상과 그의 적분영상 동시 생성부, 평균차이 필터부, 삼진영상 생성부는 영역(area)이나 라인(line) 카메라 및 그의 모듈, 컴퓨터, 각종 영상 인식검출처리 장치에 하드웨어 또는 소프트웨어의 형태로 포함되어 동작하거나, 이들 장치와 연동하여 동작하는 하드웨어 또는 소프트웨어 상에서 동작할 수 있다.
도 1은 본 발명에 따른 적분영상 기반 삼진영상 생성 방법의 플로우차트(1000)를 나타내는 설명도이다.
입력영상
Figure pat00039
으로부터 영 또는 거울 덧대기의 적분영상을 생성부(2000)에서 생성한다. 이 적분영상에 평균차이 필터부(3000)를 적용하여 영상 분할된 삼진 영상
Figure pat00040
또는 영상 질 평가에 필요한 매개변수들을 계산부(4000)에서 계산한다.
본 발명에 다른 평균차이 필터를 그 전경창과 배경창의 크기와 무관하게 초고속 병렬 연산하기 위해서는 덧대기 영상과 그의 적분영상의 동시 생성부(2000)에서 생성되는 적분영상을 이용하게 된다.
본 발명에 따른 평균차이 필터의 전경창과 배경창의 크기는 임의의 크기를 가지는 사각 형태로 한다.
이 경우에
Figure pat00041
,
Figure pat00042
,
Figure pat00043
,
Figure pat00044
가 된다. 그리고
Figure pat00045
Figure pat00046
이다.
여기서
Figure pat00047
Figure pat00048
그리고
Figure pat00049
Figure pat00050
는 홀수이다. 예를 들어서
Figure pat00051
Figure pat00052
이면 배경창의 최대 크기는
Figure pat00053
가 되고 이 경우에 전경창의 최대 크기는
Figure pat00054
이 되어야 한다. 이와 같이
Figure pat00055
Figure pat00056
를 결정하면 임의의 사각 형태를 가지는 배경창과 전경창들의 크기를 결정할 수 있게 되는 것이다.
식 (1)에 나타낸
Figure pat00057
를 수평 화소 좌표들의 범위가 각각
Figure pat00058
Figure pat00059
, 그리고 수직 화소 좌표들의 범위가
Figure pat00060
Figure pat00061
에서도 계산할 수 있도록 한다.
이를 위해서는 주어진 입력 영상의 크기를 확장하는 덧대기(padding)가 필요하다. 일반적으로 덧대기는 영으로 확장하는 영 덧대기(zero-padding)와 입력 영상의 화소 값을 거울 대칭으로 확장하는 거울 덧대기(mirror-padding)로 분류된다. 본 발명에 따른 덧대기 영상에서는 영 덧대기 또는 거울 덧대기 모두 적용할 수 있는 방법을 제공한다.
덧대기 영상의 크기는 입력 영상의 크기, 코어의 총 수, 벡터 레지스터의 크기, 그리고 전경창과 배경창의 최대 크기를 고려하여 결정할 수 있다. 입력 영상의 수평 크기
Figure pat00062
와 수직 크기
Figure pat00063
, 그리고 코어의 총 수
Figure pat00064
과 벡터 레지스터의 크기
Figure pat00065
를 활용한다. 여기에서
Figure pat00066
Figure pat00067
는 멀티-코어 또는 멀티-쓰레드(multi-thread) 컴퓨팅 환경에서 각 코어나 쓰레드의 로드 균형(load balance)을 고려하기 위해서 필요한 매개변수로 사용할 수 있다.
도 2는 입력영상과 덧대기 영상의 수평과 수직 크기를 나타내는 설명도로서 도 2를 참조하면 덧대기의 수평과 수직 크기는 각각
Figure pat00068
Figure pat00069
이다.
따라서 덧대기 한 영상의 수평 크기
Figure pat00070
과 수직 크기
Figure pat00071
는 각각
Figure pat00072
Figure pat00073
가 된다. 이 경우에 덧대기 수평 크기
Figure pat00074
와 수직 크기
Figure pat00075
는 다음과 같이 표현될 수 있다.
Figure pat00076
(3.1)
Figure pat00077
(3.2)
Figure pat00078
(3.3)
여기서
Figure pat00079
는 최하한경계값(greatest lower bound)의 약자이며,
Figure pat00080
Figure pat00081
의 몫을 계산하는 연산자이다. 그리고
Figure pat00082
인 정수이다.
거울 덧대기 한 영상
Figure pat00083
또는 영 덧대기 한 영상
Figure pat00084
로부터 적분 영상
Figure pat00085
은 다음과 같이 생성할 수 있다.
Figure pat00086
(4)
상기한 식 (4)에 나타낸 적분영상은 입력영상
Figure pat00087
로부터 덧대기 영상
Figure pat00088
또는
Figure pat00089
를 생성하면서 동시에
Figure pat00090
또는
Figure pat00091
로부터 생성할 수 있다.
덧대기 영상
Figure pat00092
또는
Figure pat00093
와 적분 영상
Figure pat00094
는 수직 또는 수평 방향으로 분할하여 병렬 연산할 수 있다. 여기에서, 적분 영상의 최대값이 4바이트(byte) 부호 없는 정수(integer) 데이터의 범위를 초과하지 않도록 분할되는 영상의 크기를 고려한다.
입력영상의 각 화소(pixel)는 0부터 255까지의 밝기값을 가지는데 이는 1바이트(byte) 부호 없는(unsigned) 수로 표현 가능하다. 거울 덧대기를 한 적분영상에서 한 화소가 가질 수 있는 최대값은
Figure pat00095
이다.
만약,
Figure pat00096
인 경우에
Figure pat00097
이 되어 5바이트 정수를 필요로 한다. 이는 4바이트 정수로 표현할 수 없고 4바이트 단정도(single-precision) 실수(float)로 표현 가능하다. 따라서 입력 영상의 1바이트 부호 없는 정수인 밝기값을 4바이트 단정도 실수로 변환해야 하는데, 이 경우에 연산의 정확도는 보장되지 않는다.
예를 들어 4바이트 단정도 실수의 값이 2,147,352,128.0인 경우에 다른 4바이트 단정도 실수의 값인 270,752.0을 더하는 연산을 수행하면 2,147,622,880.0이 되어야 하나 그 결과는 2,147,563,008이 된다. 이 문제를 해결하기 위해서 8바이트 배정도(double-precision) 실수로 변환하는 경우에 그 저장 공간은 2배가 더 소요된다.
본 발명에 따른 하나의 실시예로 멀티-코어 CPU 탑재 컴퓨터에서 소프트웨어로 구현하는 경우에 저장 공간을 줄이기 위해서 적분영상의 최대값이 4바이트 정수가 가지는 범위 이내가 되도록 멀티-코어의 캐쉬(cache) 크기를 고려하여 덧대기 영상을 수직 또는 수평으로 균등하게 분할하는 방법을 채택할 수 있다.
입력영상
Figure pat00098
에서 임의의 수평선상에서 거울 덧대기 영상
Figure pat00099
와 영 덧대기 영상
Figure pat00100
는 다음과 같이 생성할 수 있다.
Figure pat00101
(5.1)
Figure pat00102
(5.2)
여기서
Figure pat00103
이다.
그리고
Figure pat00104
는 1 바이트(Byte) 부호 없는 char(unsigned char) 데이터를 4바이트 정수 데이터로 변환하는 연산자이다.
식 (5)에서 계산된
Figure pat00105
또는
Figure pat00106
로부터 임의의 수평선상의 적분영상은 각각,
Figure pat00107
(6.1)
Figure pat00108
(6.2)
로 주어진다.
수직 방향으로 거울 덧대기 영상
Figure pat00109
와 영 덧대기 영상
Figure pat00110
는 각각 식 (6.1)과 식 (6.2)를 이용하여 다음과 같이 생성할 수 있다.
Figure pat00111
(7.1)
Figure pat00112
(7.2)
여기서
Figure pat00113
이다.
식 (5), 식 (6), 그리고 식 (7)을 통해서 동시 생성된 거울 덧대기와 영 덧대기 한 영상의 적분 영상은 각각,
Figure pat00114
(8.1)
Figure pat00115
(8.2)
로 주어진다.
여기에서, 상기한 식 (5)의
Figure pat00116
Figure pat00117
, 식 (6)의
Figure pat00118
Figure pat00119
, 식 (7)의
Figure pat00120
Figure pat00121
는 식 (8)의
Figure pat00122
와 동일한 메모리 공간을 가지나 편의상 서로 다르게 표현하고 있다.
본 발명에 따른 평균차이 필터를 그 전경창과 배경창의 크기와 무관하게 초고속 병렬 연산하기 위해서는 덧대기 영상과 그의 적분영상 동시 생성(2000)을 상기한 식 (5), 식 (6), 식 (7), 그리고 식 (8)을 이용하여 구현한다.
본 발명에 따른 덧대기 영상은 영 또는 거울 덧대기 영상 모두에 적용할 수 있는 방법이다. 여기서는 거울 덧대기 영상에 대해서만 기술한다.
[수평방향 거울 덧대기 영상과 그의 적분영상 동시 생성부]
상기 식 (5.1)에 나타낸 수평 방향으로 거울 덧대기 한 영상과 그의 적분영상 동시 생성인 상기 식 (6.1)에 나타낸 수평 방향 적분영상의 생성은 다음과 같이 구현할 수 있다.
(H.0) 초기화: 입력영상의 크기
Figure pat00123
와 배경창의 최대 크기
Figure pat00124
가 주어지면 덧대기의 수평과 수직 크기인
Figure pat00125
Figure pat00126
를 상기 식 (3)을 통해서 계산한다.
입력영상
Figure pat00127
를 수직으로 코어나 쓰레드 수
Figure pat00128
Figure pat00129
만큼 균등하게 분할하면 각 영역의 크기는
Figure pat00130
이 된다. 여기서
Figure pat00131
로 두면,
Figure pat00132
인 경우에
Figure pat00133
이 된다.
이 경우에
Figure pat00134
까지의 코어나 쓰레드는
Figure pat00135
의 동일한 영상의 크기가 할당되지만
Figure pat00136
번째 코어나 쓰레드에 할당되는 영상의 크기는
Figure pat00137
이 된다.
멀티 코어 또는 멀티 쓰레드 환경에서 각 코어의 계산량을 동일하게 맞추어 주는 것이 계산 시간을 단축시키게 된다. 이를 일반적으로 로드 밸런스(load balance)라고 한다.
이를 위해서
Figure pat00138
번째 코어나 쓰레드에 할당되는 영상의 크기를
Figure pat00139
로 맞추어 주기 위해서
Figure pat00140
번째 코어나 쓰레드에 할당된 영상의 끝
Figure pat00141
개 수평선을
Figure pat00142
번째 코어나 쓰레드에 할당된 영역과 중복(overlap)시킨다. 이와 같이 서로 다른 영역들의 일부 영역들이 서로 중복이 되도록 하여 서로 다른 영역들이 동일한 면적을 가지도록 한다.
수직 방향으로 균등하게 분할된
Figure pat00143
크기를 가진 영상을
Figure pat00144
로 둔다. 여기서
Figure pat00145
이며,
Figure pat00146
이다.
서로 다른
Figure pat00147
를 서로 다른 코어 또는 쓰레드에 할당하여 동시에 포크-조인(fork-join)방식의 병렬 연산을 하도록 한다.
여기에서 물리적으로 서로 다른 영역을 서로 다른 코어나 쓰레드가 담당하기 때문에 동일한 메모리의 영역을 동시에 읽고 쓸 때에 서로 다른 코어나 쓰레드는 서로 충돌하지 않고 독립적으로 동작하도록 하는 것이다. 따라서 서로 다른 코어나 쓰레드가 동일한 주소를 가지는 메모리를 읽고 쓸 때의 충돌을 방지하기 위한 고려를 할 필요성이 없게 되고, 또한 로드 밸런스를 맞추어 주기 때문에 서로 다른 코어나 쓰레드 사이의 연산 처리 속도가 일정하게 유지될 수 있게 된다.
각 영역에 할당된 코어는 SIMD와 openMP 명령어로 다수의 데이터를 동시에 처리할 수 있다.
영상
Figure pat00148
에 해당하는 그의 거울 덧대기 영상은 상기 식 (5.1)에 나타낸
Figure pat00149
에서
Figure pat00150
를 만족하는
Figure pat00151
로 표기한다. 그리고
Figure pat00152
에 해당하는 수평 적분영상은 상기 식 (6.1)에 나타낸 수평 적분영상
Figure pat00153
에서
Figure pat00154
를 만족하는
Figure pat00155
로 표기한다.
영상
Figure pat00156
에서 하나의 수평선상에 포함된 화소들의 집합을 총 5개의 부분 집합
Figure pat00157
로 나눈다. 여기에서
Figure pat00158
의 각 부분 집합들에 대해서 상기한 식 (5.1)과 식 (6.1)을 구현하는 상세한 방법은 다음의 (H.1)부터 (H.7)까지의 과정으로 구성된다.
(H.1)
Figure pat00159
인 경우:
(H.1.0) 입력 영상
Figure pat00160
를 1바이트 부호 없는 정수를 영 확장 더블 워드(double word) 정수로 변환하면서 읽는다.
Figure pat00161
가 된다.
(H.1.2) 해당 위치의 수평 적분영상에
Figure pat00162
를 쓴다.
(H.1.3)
Figure pat00163
을 벡터 레지스터를 이용하여 방송(broadcast)한다. 여기에서 방송이란 특정 벡터 레지스터의 모든 요소들을 동일한 값으로 두는 것을 의미하고 있으며 이는
Figure pat00164
을 의미한다.
(H.2)
Figure pat00165
인 경우:
(H.2.0)
Figure pat00166
로 다시 그 부분 집합을 균등 분할한다. 여기에서
Figure pat00167
로 두면,
Figure pat00168
가 된다.
균등 분할된 부분 집합의 수를
Figure pat00169
로 두면
Figure pat00170
Figure pat00171
인 경우에는
Figure pat00172
가 되며, 그렇지 않으면
Figure pat00173
이 된다.
만약
Figure pat00174
인 경우에
Figure pat00175
개의 부분 집합은 그 원소의 수가
Figure pat00176
이나 마지막 하나의 부분 집합은 그 원소의 수가
Figure pat00177
부터
Figure pat00178
까지가 된다. 여기서
Figure pat00179
인 경우에는 상기한 (H.1.0)부터 (H.1.2)까지와 동일한 방법을 이용한다.
(H.2.1) 상기한 (H.2.0)의 부분 집합에 해당하는 입력 영상의 화소들을 벡터 레지스터로 읽는다. 이 경우에 읽는 순서는
Figure pat00180
번째로 한다.
만약
Figure pat00181
인 경우에서는
Figure pat00182
번째 부분 집합에서 원소의 수가
Figure pat00183
가 되도록
Figure pat00184
번째 부분 집합의 끝 원소들과 중복시켜서 읽는다. 그리고 중복된 원소들이 영의 값을 가지도록 적절한 처리를 한다.
도 3은 수평 적분영상 생성 방법을 설명하기 위한 참고도이다.
(H.2.2) 상기한 (H.2.1)에서 처리된 데이터는 도 3에 나타낸 정수 변환부(2200)로 입력된다. 이는 1바이트 부호 없는 정수를 4바이트 정수로 변환한다.
상기한 (H.2.1)에서 읽은 부분 집합의 데이터는 벡터 형식으로
Figure pat00185
로 편의상 바꾸어 쓴다. 이 경우에
Figure pat00186
의 크기는 벡터 레지스터의 크기와 같다.
도 4는 정수 변환(2100) 방법을 설명하기 위한 참고도이다.
도 4에 나타낸 치환(2210)은,
Figure pat00187
(10)
를 의미한다. 여기서
Figure pat00188
이며,
Figure pat00189
는 1바이트 부호 없는 정수를 나타낸다. 그리고
Figure pat00190
에서
Figure pat00191
은 임의의 벡터 레지스터를 의미하는 인덱스(index)이다. 이 인덱스가 다르면 서로 다른 벡터 레지스터를 나타낸다.
도 4에 나타낸 풀기(unpacking)1(2220)에서는 치환된 1바이트 부호 없는 정수를 2바이트 부호 없는 정수로 바꾼다. 이는 데이터가 2배로 늘어나기 때문에 다른 벡터 레지스터 1개가 추가적으로 필요하다. 따라서 상기 식 (10)에 나타낸 벡터 레지스터가 풀기1(2220)을 통과하게 되면,
Figure pat00192
(11.1)
Figure pat00193
(11.2)
이 된다. 여기서
Figure pat00194
는 2 바이트 부호 없는 정수인 워드(word)형 데이터를 나타낸다.
도 4에 나타낸 풀기2(2230)는 2바이트 부호 없는 정수를 4바이트 부호 없는 정수로 바꾼다. 이는 데이터가 2배로 늘어나기 때문에 다른 벡터 레지스터 2개가 추가적으로 필요하다. 식 (11.1)과 식 (11.2)에 나타낸 2바이트 부호 없는 정수는,
Figure pat00195
(12.1)
Figure pat00196
(12.2)
Figure pat00197
(12.3)
Figure pat00198
(12.4)
에 따라서 4바이트 부호 없는 정수로 변환된다. 여기서
Figure pat00199
는 4바이트 더블 워드 데이터임을 나타낸다.
여기서, 편의상
Figure pat00200
로 두자.
Figure pat00201
(13.1)
Figure pat00202
(13.2)
Figure pat00203
(13.3)
Figure pat00204
(13.4)
(H.2.3) 상기 식 (13)은 거울 덧대기 영역인
Figure pat00205
과 거울 덧대기 영역이 아닌
Figure pat00206
에서도 이용되어야 한다. 이를 위해서 상기 식 (13)에 나타낸 데이터들을 다른 레지스터 또는 메모리에 복사하거나 저장해둔다.
거울 덧대기 영역인
Figure pat00207
에서는 상기한 식 (13)에 나타낸 벡터 레지스터 요소들의 위치를 역배열(reverse ordering)해야 한다.
이는
Figure pat00208
를 의미하며, 다른 레지스터들도 마찬가지이다.
도 5는 이동합산(2300)을 설명하기 위한 참고도이다.
(H.2.4) 상기한 식 (13)에서 역배열된 데이터를 가지는 벡터 레지스터
Figure pat00209
들은 도 5에 나타낸 이동합산(2300)으로 입력된다.
도 5에 나타낸
Figure pat00210
Figure pat00211
은 입력데이터를 왼쪽으로 각각 4와 8바이트 이동시키는 것을 의미한다. 그리고 ∑는 합을 의미하고
Figure pat00212
Figure pat00213
은 각각 4와 8바이트 이동시키는 데에 소요되는 시간만큼 지연시키는 것을 의미한다.
식 (13.1)에 나타낸
Figure pat00214
Figure pat00215
Figure pat00216
를 각각 지나서 ∑에서 합해지면 그 결과는 다음과 같다.
Figure pat00217
(14.1)
만약
Figure pat00218
이거나
Figure pat00219
인 경우에서는
Figure pat00220
이 된다. 만약
Figure pat00221
이면
Figure pat00222
는 다시
Figure pat00223
Figure pat00224
를 각각 지나서 ∑에서 합해지면 그 결과는 다음과 같다.
Figure pat00225
(14.2)
그리고
Figure pat00226
가 된다.
만약
Figure pat00227
또는 그 이상인 경우에서는 도 5에서 명시적으로 나타내지 않았지만 추가적으로
Figure pat00228
,
Figure pat00229
, ∑ 등과 조건판단부들이 도 5에 나타낸 구조로 반복된다.
도 6은 혼합합산(2400)을 설명하기 위한 참고도이다.
(H.2.5) 이동합산(2300)을 통과한 데이터는 도 6에 나타낸 혼합합산(2400)으로 입력된다.
도 6에서 만약
Figure pat00230
이면 치환, 혼합, ∑를 통과하지 않고 바로 ∑, 방송,
Figure pat00231
로 입력된다. 여기서
Figure pat00232
는 실수변환(2200)과 이동합산(2300)을 수행하는 데에 소요되는 시간만큼 지연시킨다는 의미이다. 이
Figure pat00233
를 통과한 데이터는 이전에 계산된 수평 적분 데이터
Figure pat00234
을 의미한다. 따라서 최종적으로 수평 적분 데이터
Figure pat00235
가 된다.
도 6에서 만약
Figure pat00236
등인 경우에
Figure pat00237
는 실수변환(2200)과 이동합산(2300)을 수행하는 데에 소요되는 시간에
Figure pat00238
를 더한 시간만큼 지연시킨다는 의미이다. 이 경우에는 정상적으로 모든 과정을 거쳐서 최종 결과인 수평방행 적분영상 데이터를 생성하게 된다.
도 6에 나타낸 치환과 혼합 과정을 수행하면 식 (14.2)에 나타낸
Figure pat00239
는 다음과 같이 변환된다.
Figure pat00240
(15.1)
도 6에 나타낸 ∑ 과정까지 수행하면,
Figure pat00241
(15.2)
이 된다.
그리고 이전 수평 적분 데이터
Figure pat00242
과 ∑ 과정을 수행하면 최종적인
Figure pat00243
가 계산된다. 여기서 방송은 이전 적분 데이터를 생성하는 것이다. 만약
Figure pat00244
로 두면
Figure pat00245
가 되도록 하는 것이다.
(H.2.6) 상기한 (H.2.4)부터 (H.2.5) 단계까지 4번 반복해서 (H.2.3)에서 역 배열된 총 4개의
Figure pat00246
,
Figure pat00247
,
Figure pat00248
,
Figure pat00249
데이터로부터 수평 적분 데이터
Figure pat00250
,
Figure pat00251
,
Figure pat00252
,
Figure pat00253
를 계산하여 덧대기 해당 위치의 수평 적분영상
Figure pat00254
에 쓴다. 그리고 (H.2.3)에서 역배열 하지 않고 저장해 놓은
Figure pat00255
,
Figure pat00256
,
Figure pat00257
,
Figure pat00258
로부터
Figure pat00259
,
Figure pat00260
,
Figure pat00261
,
Figure pat00262
를 계산하여 해당 위치의 수평 적분 영상
Figure pat00263
에 쓴다.
(H.2.7) 상기한 (H.2.1)부터 (H.2.6)까지의 과정을 임의의 수평선상 데이터들이 모두 처리될 때까지 반복하여 수행한다. 이 경우에 계산 속도를 추가적으로 증가시키기 위해서 루프 언롤링(loop unrolling) 기법을 적용할 수 있다.
(H.3)
Figure pat00264
인 경우:
(H.3.0) 상기한 (H.2.0) 단계와 유사하게
Figure pat00265
크기로 부분 집합을 다시 균등 분할한 부분 집합으로 나눈다. 이 경우에 균등 분할된 부분 집합의 수는
Figure pat00266
로 둔다.
(H.3.1) 상기 (H.3.0)에서 균등 분할된 부분 집합의 데이터를 읽는다. 그리고 상기한 (H.2.2)부터 (H.2.6)까지의 과정을 수행한다.
(H.3.2) 상기한 (H.2.1)부터 (H.2.6)까지의 과정을
Figure pat00267
이 될 때까지 반복하여 수행한다. 이 경우에 계산 속도를 추가적으로 증가시키기 위해서 루프 언롤링 기법을 적용할 수 있다.
(H.4)
Figure pat00268
인 경우:
(H.4.1) 상기한 (H.2) 과정과 동일한 과정으로 처리한다.
(H.5)
Figure pat00269
인 경우:
(H.5.0) 입력 영상
Figure pat00270
를 1 바이트 부호 없는 정수를 영 확장 더블 워드 정수로 변환하면서 읽는다. 이는
Figure pat00271
가 된다.
(H.5.1) 상기한 (H.4.1)의 마지막 방송 데이터를
Figure pat00272
로 두면 하나의 수평선상의 마지막 화소에 대한 수평 적분 값은
Figure pat00273
가 된다.
도 7은 수평방향으로 거울 덧대기와 그의 적분영상이 생성된 영역을 나타내기 위한 참고도이다.
(H.6) 상기한 (H.0)부터 (H.5)까지의 과정을 각 코어나 쓰레드에서 각각
Figure pat00274
번 반복한다. 이 과정을 통해서 상기 식 (6.1)에 나타낸 거울 덧대기 영상의 수평 적분영상
Figure pat00275
는 도 7에 회색 영역으로 도시한 영역에서 생성된다.
[수직 방향 거울 덧대기 영상 생성부]
상기한 본 발명에 따른 거울 덧대기 영상과 그의 수평 적분영상 동시 생성 방법의 결과로 나온 수평 적분영상
Figure pat00276
를 상기 식 (7.1)에 적용하여, 본 발명에 따른 수평 적분영상의 수직 방향 거울 덧대기 영상
Figure pat00277
를 생성하는 방법을 다음과 같이 구현할 수 있다.
상기한 수평 적분영상
Figure pat00278
에서 수평 적분이 계산되지 않은 수직 영역은 각각
Figure pat00279
Figure pat00280
이다.
Figure pat00281
영역은
Figure pat00282
영역에 해당하는
Figure pat00283
를 복사한 이후에 역배열하여
Figure pat00284
영역의
Figure pat00285
에 복사한다.
Figure pat00286
영역은
Figure pat00287
영역에 해당하는
Figure pat00288
를 복사한 이후에 역배열하여
Figure pat00289
영역의
Figure pat00290
에 복사한다. 여기서
Figure pat00291
Figure pat00292
영역에 포함된 임의의 수평선상의 화소들의 크기는
Figure pat00293
이다. 이를 벡터 레지스터 크기인
Figure pat00294
로 균등 분할하여 읽기, 역배열, 그리고 쓰기를 한다. 이와 같은 방법으로 생성한
Figure pat00295
가 식 (7.1)에 나타낸
Figure pat00296
가 된다.
[거울 덧대기 영상의 최종 적분영상 생성부]
상기한 수평 방향 거울 덧대기의 수평 적분 영상에 대한 수직 방향 거울 덧대기 영상
Figure pat00297
를 이용하여, 상기 식 (8.1)에 나타낸 최종 적분 영상
Figure pat00298
의 생성 방법을 다음과 같이 구현할 수 있다.
(S.0) 초기화:
Figure pat00299
Figure pat00300
의 배수가 된다.
Figure pat00301
의 배수로 균등 분할된
Figure pat00302
Figure pat00303
로 표기한다. 여기서
Figure pat00304
이며,
Figure pat00305
로 주어진다. 이에 해당하는 상기 식 (8.1)에 나타낸 적분 영상
Figure pat00306
Figure pat00307
이 된다.
수직 좌표
Figure pat00308
Figure pat00309
에서 서로 다른 2개의 벡터 레지스터가 읽어 들이는 데이터를 각각
Figure pat00310
Figure pat00311
으로 둔다. 이 경우에,
Figure pat00312
(16.1)
Figure pat00313
(16.2)
가 된다.
상기한 식 (16)을 이용하여, 상기한 식 (8.1)에 나타낸 적분영상
Figure pat00314
을 계산한다. 이 경우에
Figure pat00315
Figure pat00316
는,
Figure pat00317
=
Figure pat00318
(17.1)
Figure pat00319
(17.2)
가 된다.
(S.1) 각 코어나 쓰레드에서 상기한 (S.0) 과정을 각 코어나 쓰레드에 할당된 수평과 수직 영역에서 반복하여 수행한다. 이와 같은 과정을 거쳐서 식 (8.1)에 나타낸 최종적인 적분영상
Figure pat00320
를 생성한다.
상기한 방법은 영 덧대기의 경우에서도 유사하게 적용할 수 있다.
본 발명에 따른 하나의 실시예로 덧대기 영상의 적분영상 생성 방법을 GPU 없는 멀티-코어 또는 멀티-쓰레드 환경에서 SIMD 명령어를 기반으로 구현하는 방법은 하나의 코어나 쓰레드가 전 영역을 계산하는 경우보다 저장 공간의 증가없이 코어나 쓰레드 수만큼 계산 속도를 증가시킬 수 있다.
상기한 선행기술문헌들 가운데 해외논문 009 문헌을 기준으로 적분영상 생성 수행 시간을 본 발명에 따른 적분영상 생성 방법의 수행 시간과 비교해본 결과에 따르면 본 발명에 따른 적분영상 생성방법이 수행 시간을 가장 단축시킬 수 있음을 확인하였다.
상기한 식 (8)로 주어지는 적분영상
Figure pat00321
를 이용하여, 상기한 식 (1)에 나타낸
Figure pat00322
를 다음과 같이 계산할 수 있다.
Figure pat00323
(18.1)
Figure pat00324
(18.2)
Figure pat00325
(18.3)
여기서
Figure pat00326
이고
Figure pat00327
이다. 그리고
Figure pat00328
이고
Figure pat00329
이다. 결과적으로
Figure pat00330
의 크기는 입력 영상
Figure pat00331
의 크기와 동일하게 된다.
[덧대기 적분영상으로부터 평균차이 필터 구현 및 삼진영상 생성 방법]
상기한 전경창과 배경창의 크기에 무관하게 평균차이 필터를 계산하는 것은 머신 비전의 필수적인 요구 사항이다. 입력영상
Figure pat00332
로부터 본 발명에 따라 상기한 식 (8)에 나타낸 덧대기 적분영상
Figure pat00333
을 생성한 이후에, 이를 이용하여 상기한 식 (18)에 나타낸 평균차이 필터를 효율적으로 계산한다. 그리고 이를 이용하여 상기한 식 (2)에 주어진 영상분할 방법으로 최종적으로 삼진영상
Figure pat00334
를 생성한다.
상기한 방법으로 생성된 덧대기 적분 영상
Figure pat00335
에서 상기한 식 (18)에 나타낸 평균차이 필터를 다음과 같이 구현할 수 있다.
(T.0) 상기한 식 (18.1)에 나타낸 전경창의 평균값
Figure pat00336
는 서로 다른 4점인
Figure pat00337
,
Figure pat00338
,
Figure pat00339
,
Figure pat00340
에 대응되는 4개의 적분영상 값인
Figure pat00341
,
Figure pat00342
,
Figure pat00343
,
Figure pat00344
로 다음과 같이 계산할 수 있다.
Figure pat00345
(19.1)
상기한 식 (18.2)에 나타낸 배경창의 평균값
Figure pat00346
는 서로 다른 4점인
Figure pat00347
,
Figure pat00348
,
Figure pat00349
,
Figure pat00350
에 대응되는 4개의 적분영상 값인
Figure pat00351
,
Figure pat00352
,
Figure pat00353
,
Figure pat00354
로 다음과 같이 계산할 수 있다.
Figure pat00355
(19.2)
(T.1) 상기한 식 (19.1)을 이용하여 한번에
Figure pat00356
개의 전경창들의 평균값
Figure pat00357
를 다음과 같이 계산할 수 있다.
Figure pat00358
(20.1)
여기에서,
Figure pat00359
(20.2)
Figure pat00360
(20.3)
Figure pat00361
(20.4)
Figure pat00362
(20.5)
이다. 그리고
Figure pat00363
,
Figure pat00364
,
Figure pat00365
,
Figure pat00366
이다. 그리고
Figure pat00367
이다.
상기한 식 (19.2)를 이용하여 한번에
Figure pat00368
개의 배경창들의 평균값
Figure pat00369
를 다음과 같이 계산할 수 있다.
Figure pat00370
(21.1)
여기에서,
Figure pat00371
(21.2)
Figure pat00372
(21.3)
Figure pat00373
(21.4)
Figure pat00374
(21.5)
이다. 그리고
Figure pat00375
,
Figure pat00376
,
Figure pat00377
,
Figure pat00378
이다. 그리고
Figure pat00379
이다.
(T.3) 결과적으로
Figure pat00380
개 평균차이 필터의 값들은,
Figure pat00381
=
Figure pat00382
(22)
로 주어진다.
도 8은 평균차이 필터로부터 삼진 영상 생성 방법(3000)을 설명하기 위한 참고도이다.
상기한 식 (22)와 식 (2)를 이용하여 최종적으로 삼진영상
Figure pat00383
도 한번에
Figure pat00384
개를 동시에 계산할 수 있다. 이 경우에 상기한 식 (2)를 구현하는 평균차이 필터의 값들로부터 영상분할 되는 삼진영상의 생성 방법(3000)은 도 8에 나타낸 바와 같다.
도 8에서 상기한 식 (22)에 나타낸
Figure pat00385
개 평균차이 필터의 값들인
Figure pat00386
가 벡터 레지스터에 저장되어 삼진영상 생성부(3000)에 입력되면 상기한 식 (2)에 나타낸 바와 같이
Figure pat00387
의 요소
Figure pat00388
이면
Figure pat00389
로 그렇지 않으면
Figure pat00390
으로 저장한다.
마찬가지로
Figure pat00391
의 요소
Figure pat00392
이면
Figure pat00393
로, 그렇지 않으면
Figure pat00394
으로 저장한다.
그 다음 단계에서는
Figure pat00395
의 요소들의 MSB(most significant bit)를 모두 영으로 바꾸어 주고 워드 데이터로 변환한다. 이어서
Figure pat00396
의 요소들을 오른쪽으로
Figure pat00397
비트 이동시킨 다음에 다시 왼쪽으로
Figure pat00398
비트 이동시킨다. 그리고 바이트 데이터로 변환시킨다. 그리고
Figure pat00399
의 요소를
Figure pat00400
로 비교한 결과와
Figure pat00401
의 요소를
Figure pat00402
로 비교한 상기의 과정으로 생성되는 각각의 바이트 데이터를 논리 합 연산(OR)으로 입력영상의 크기와 동일한 크기를 가지는 최종적인 삼진영상
Figure pat00403
을 생성한다.
상기한 거울 덧대기 영상 기반 그의 적분영상 동시 생성부, 평균차이 필터부, 삼진영상 생성부는 영 덧대기 영상의 경우에서도 유사하게 적용할 수 있다.
1000: 덧대기 영상과 그의 적분영상 동시 생성부
2000: 평균차이 필터 계산부
2100: 수평 적분영상 생성부
2200: 정수 변환부
2210: 치환부
2220: 풀기1부
2230: 풀기2부
2300: 이동합산부
2400: 혼합합산부
3000: (평균차이) 필터부
4000: 삼진영상 생성부

Claims (10)

  1. 적분영상 기반 영상분할 초고속 병렬 연산 방법에 있어서;
    상기 연산방법은, 입력영상으로부터 덧대기 영상과 그의 적분영상의 동시 생성단계와, 상기 적분영상의 계산 값을 이용하는 평균차이 필터링단계와,
    상기 평균차이 필터링에 의하여 생성된 값들을 이용하여 영상분할된 삼진영상 생성단계를 적어도 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  2. 제 1 항에 있어서,
    상기 덧대기 영상과 상기 적분영상 동시 생성단계는;
    수평 방향 덧대기 영상과 그의 적분영상의 동시 생성단계와,
    수직 방향 덧대기 영상 생성단계와, 상기 덧대기 영상의 최종 적분영상 생성부에서의 생성단계를 더 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  3. 제 2 항에 있어서,
    상기 수평 방향 덧대기 영상과 그의 적분영상 동시 생성부는;
    수평과 수직 크기가 각각
    Figure pat00404
    Figure pat00405
    인 입력영상
    Figure pat00406
    에서 임의의 수평선상에서 수학 식,
    Figure pat00407
    ,
    Figure pat00408
    ,
    Figure pat00409
    ,
    (단,
    Figure pat00410
    = 1바이트(Byte) 부호 없는 정수를 4바이트 정수 데이터로 변환하는 연산자)으로 거울 덧대기 영상
    Figure pat00411
    와 영 덧대기 영상
    Figure pat00412
    를 생성하는 단계와,
    이로부터 수학식,
    Figure pat00413
    ,
    Figure pat00414
    ,
    로 수평선상의 거울 덧대기 적분영상
    Figure pat00415
    와 영 덧대기 적분영상
    Figure pat00416
    을 생성하는 단계를 포함하고,
    상기 수직 방향 덧대기 영상 생성부는, 상기 수평선상의 거울 덧대기 적분영상
    Figure pat00417
    와 영 덧대기 적분영상
    Figure pat00418
    을 이용한 수학 식,
    Figure pat00419
    ,
    Figure pat00420
    ,
    Figure pat00421
    ,
    으로 수직 방향 거울 덧대기 적분영상
    Figure pat00422
    와 영 덧대기 적분영상
    Figure pat00423
    를 생성하는 단계를 포함하고,
    상기 덧대기 영상의 최종 적분영상 생성부는,
    상기 수직 방향 거울 덧대기 적분영상
    Figure pat00424
    와 영 덧대기 적분영상
    Figure pat00425
    를 이용한 수학 식,
    Figure pat00426
    , 또는
    Figure pat00427
    ,
    로 거울 덧대기와 영 덧대기 한 영상의 적분영상
    Figure pat00428
    을 생성하는 단계를 포함하고,
    상기 수학 식의
    Figure pat00429
    Figure pat00430
    ,
    Figure pat00431
    Figure pat00432
    ,
    Figure pat00433
    Figure pat00434
    Figure pat00435
    와 동일한 메모리 공간을 가지는 것을 특징으로 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  4. 제 3 항에 있어서,
    상기 덧대기 영상을 생성하는 경우에, 상기 덧대기 영상의 중앙에 입력영상을 배치하고 상하와 좌우에 각각 상기 수학 식에 나타낸
    Figure pat00436
    Figure pat00437
    만큼, 영이나 거울 덧대기로 덧대어 생성하는 덧대기 영상의 크기가 수평과 수직으로 각각
    Figure pat00438
    Figure pat00439
    가 되도록 하는데 있어서,
    입력영상의 크기, 병렬 연산 코어의 총 수
    Figure pat00440
    , 벡터 레지스터의 크기
    Figure pat00441
    , 그리고 홀수 값을 가지는 임의의 사각 형태와 크기를 가지는 평균차이 필터의 전경창과 배경창에 있어서 배경창의 수평 최대 크기
    Figure pat00442
    와 수직 최대 크기
    Figure pat00443
    를 이용한 수학식
    Figure pat00444
    ,
    Figure pat00445
    ,
    Figure pat00446
    ,
    ( 단:
    Figure pat00447
    sms greatest lower bound의 약자,
    Figure pat00448
    :
    Figure pat00449
    의 몫을 계산하는 연산자,
    Figure pat00450
    인 정수)로
    Figure pat00451
    Figure pat00452
    를 결정하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  5. 제 3 항에 있어서,
    상기 덧대기 영상에서 수평선상의 적분영상을 초고속 병렬 연산으로 생성하기 위해서, 수직 방향으로 그 영상의 영역이 중복(overlap)되는 것을 허용하고 그 영상의 영역에서 계산되는 적분영상의 최대값이 최대 4바이트 정수 데이터의 범위를 벗어나지 않도록
    Figure pat00453
    개로 균등 분할된 입력영상
    Figure pat00454
    (여기서
    Figure pat00455
    )에서 하나의 수평선상에 포함된 화소들의 집합을 수학 식,
    Figure pat00456

    에 따라서 총 5개의 부분 집합들로 나누는 단계와,
    여기서,
    Figure pat00457
    인 경우에, 입력영상
    Figure pat00458
    에 해당하는 1바이트 부호 없는 정수를 읽고, 다시 요소의 수가
    Figure pat00459
    개인 벡터 레지스터의 0번째 요소에 영 확장 더블 워드 정수로 변환하여 저장하고, 저장된 값을 벡터 레지스터의 나머지 요소에도 동일하게 저장하여, 상기한 덧대기 수평 적분영상
    Figure pat00460
    또는
    Figure pat00461
    에서
    Figure pat00462
    의 위치에 저장함과 더불어 수평 적분영상의 초기값
    Figure pat00463
    로 이용하는 단계와,
    여기서,
    Figure pat00464
    인 경우에, 벡터 레지스터의 크기
    Figure pat00465
    만큼
    Figure pat00466
    를 중복을 허용하여
    Figure pat00467
    개로 균등 분할하여, 하나의 부분 집합에 해당하는 1바이트 부호 없는 정수인 화소들의 밝기값을 수학식,
    Figure pat00468
    ,
    Figure pat00469
    ,
    로 나타낸 바와 같이 하나의 벡터 레지스터로 읽을 때에
    Figure pat00470
    순으로 읽으면서 중복되는 화소들의 값을 영으로 적절하게 처리하여 벡터 레지스터에 저장하는 단계와,
    상기 벡터 레지스터로 읽은 1바이트 부호 없는 정수를 4바이트 정수로 변환하기 위해서, 수학 식,
    Figure pat00471
    ,
    Figure pat00472
    ,
    (단,
    Figure pat00473
    는 1바이트 부호 없는 정수,
    Figure pat00474
    Figure pat00475
    은 임의의 벡터 레지스터를 의미하는 인덱스(index))로 치환하는 단계와,
    수학 식,
    Figure pat00476
    ,
    Figure pat00477
    ,
    로 1바이트 부호 없는 정수를
    Figure pat00478
    로 나타낸 2바이트 부호 없는 정수로 바꾸는 단계와,
    수학 식,
    Figure pat00479
    ,
    Figure pat00480
    ,
    Figure pat00481
    ,
    Figure pat00482
    ,
    로 2바이트 부호 없는 정수를
    Figure pat00483
    로 나타낸 4바이트 부호 없는 정수로 바꾸는 단계와,
    상기 수학 식에 나타낸
    Figure pat00484
    ,
    Figure pat00485
    ,
    Figure pat00486
    ,
    Figure pat00487
    을 덧대기 영역인
    Figure pat00488
    과 덧대기 영역이 아닌
    Figure pat00489
    에서도 이용하기 위해서
    Figure pat00490
    ,
    Figure pat00491
    ,
    Figure pat00492
    ,
    Figure pat00493
    을 별도의 저장 공간에 저장해 두는 단계와,
    상기 수학 식
    Figure pat00494
    ,
    Figure pat00495
    ,
    Figure pat00496
    ,
    Figure pat00497
    의 요소들을 수학 식,
    Figure pat00498
    ,
    Figure pat00499
    ,
    Figure pat00500
    ,
    Figure pat00501
    ,
    로 역배열 변환하는 단계와,
    상기 수학 식
    Figure pat00502
    ,
    Figure pat00503
    ,
    Figure pat00504
    ,
    Figure pat00505
    를 이동합산하는 과정에서,
    Figure pat00506
    인 경우에, 수학 식
    Figure pat00507
    를 이용하여, 수학 식,
    Figure pat00508

    로 이동합산 값
    Figure pat00509
    를 계산하는 단계와, 동일하게 나머지
    Figure pat00510
    ,
    Figure pat00511
    ,
    Figure pat00512
    를 계산하는 단계와,
    Figure pat00513
    인 경우에, 수학식,
    Figure pat00514

    로 이동합산
    Figure pat00515
    를 계산하는 단계와, 동일하게 나머지
    Figure pat00516
    ,
    Figure pat00517
    ,
    Figure pat00518
    를 계산하는 단계와,
    Figure pat00519
    인 경우 등에서도 상기한 이동합산 단계와, 유사한 방법으로
    Figure pat00520
    ,
    Figure pat00521
    ,
    Figure pat00522
    ,
    Figure pat00523
    를 계산하는 단계와,
    상기 이동합산의 결과인 상기 수학식
    Figure pat00524
    ,
    Figure pat00525
    ,
    Figure pat00526
    ,
    Figure pat00527
    는 혼합합산하는 과정에 있어서, 수학 식,
    Figure pat00528

    로 표현되는 치환과 혼합 단계와, 동일하게
    Figure pat00529
    ,
    Figure pat00530
    ,
    Figure pat00531
    를 치환과 혼합하는 단계와,
    상기 치환과 혼합된 수학 식
    Figure pat00532
    를 이용하여, 수학식,
    Figure pat00533

    로 합산하는 동일한 방법으로
    Figure pat00534
    ,
    Figure pat00535
    ,
    Figure pat00536
    를 계산하는 단계와,
    상기
    Figure pat00537
    인 경우에 수평 적분영상 초기값
    Figure pat00538
    과 상기 수학식
    Figure pat00539
    를 이용하여, 수학식,
    Figure pat00540

    로 수평 적분영상을 계산하여 해당 위치의 수평 적분영상
    Figure pat00541
    에 저장하는 단계와,
    상기 수학 식
    Figure pat00542
    ,
    Figure pat00543
    ,
    Figure pat00544
    를 이용하여
    Figure pat00545
    ,
    Figure pat00546
    ,
    Figure pat00547
    을 계산하는 경우에 있어서, 상기 수학 식
    Figure pat00548
    Figure pat00549
    ,
    Figure pat00550
    ,
    Figure pat00551
    인 경우에 각각
    Figure pat00552
    ,
    Figure pat00553
    ,
    Figure pat00554
    의 MSB 요소 값을
    Figure pat00555
    의 모든 요소 값으로 대치하여 수평 적분영상
    Figure pat00556
    ,
    Figure pat00557
    ,
    Figure pat00558
    을 계산하여 해당 위치의 수평 적분영상
    Figure pat00559
    에 저장하는 단계와,
    상기 역배열 하지 않고 저장해 놓은
    Figure pat00560
    ,
    Figure pat00561
    ,
    Figure pat00562
    ,
    Figure pat00563
    로부터 상기 이동합산과 혼합합산 과정을 통해서
    Figure pat00564
    ,
    Figure pat00565
    ,
    Figure pat00566
    ,
    Figure pat00567
    를 계산하여 해당 위치의 수평 적분영상
    Figure pat00568
    에 저장하는 단계와,
    상기 수평선상의 적분영상
    Figure pat00569
    생성 과정에서 균등 분할된 영역이내에 있는 임의의 수평선상의 모든 데이터들이 모두 처리될 때까지 반복하여 수행하는데 있어서, 그 계산 속도를 추가적으로 증가시키기 위해서 루프 언롤링(loop unrolling) 기법을 적용하는 단계와,
    여기서,
    Figure pat00570
    인 경우와
    Figure pat00571
    인 경우에, 상기
    Figure pat00572
    인 경우와 동일한 과정을 통해서 수평 적분영상을 생성하여 해당 위치에 저장하는 단계와,
    여기서,
    Figure pat00573
    인 경우에, 상기
    Figure pat00574
    인 경우와 동일하게 입력영상의 해당 위치로부터 읽어들인 1바이트 부호 없는 정수를 4바이트 부호 없는 정수로 변환하여,
    Figure pat00575
    의 위치에서 계산된 적분 값을 더하여 수평 적분영상의 해당 위치에 저장하는 단계를 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  6. 제 2 항에 있어서,
    상기 수직 방향 덧대기 영상 생성부는;
    상기 제 3항 기재의 수학 식
    Figure pat00576
    Figure pat00577
    로 나타낸 수직 방향 덧대기 영상을 초고속 병렬 연산으로 생성하기 위해서, 상기 제 5항에서 생성 저장된 덧대기 영상의 수평 적분영상
    Figure pat00578
    에서 수평 적분이 계산되지 않은 수직 영역인
    Figure pat00579
    Figure pat00580
    은 각각, 수학 식,
    Figure pat00581
    ,
    Figure pat00582
    ,
    로 나타낸 영역으로서,
    Figure pat00583
    Figure pat00584
    영역에 해당하는
    Figure pat00585
    의 각 영역은 수학식,
    Figure pat00586
    ,
    Figure pat00587
    ,
    로서, 이들 각 영역의 크기인
    Figure pat00588
    를 벡터 레지스터의 크기
    Figure pat00589
    만큼 중복을 허용한 균등 분할하여 읽기와 역배열의 연산으로 생성되는
    Figure pat00590
    Figure pat00591
    영역의 적분 값을
    Figure pat00592
    의 해당 영역에 저장하는 단계를 더 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  7. 제 2 항에 있어서,
    상기 덧대기 영상의 최종 적분영상 생성부는;
    상기 제 3항 기재의 수직 방향 덧대기 영상
    Figure pat00593
    Figure pat00594
    를 이용하여, 최종 적분영상
    Figure pat00595
    을 초고속 병렬 연산으로 생성하기 위해서,
    Figure pat00596
    Figure pat00597
    을 수평 방향으로 그 영상의 영역이 중복(overlap)되는 것을 허용하고 그 영상의 영역에서 계산되는 적분영상의 최대값이 최대 4바이트 정수 데이터의 범위를 벗어나지 않도록 균등 분할한
    Figure pat00598
    개의 영역에서 수직 방향 덧대기 적분영상
    Figure pat00599
    Figure pat00600
    를 이용하는 단계와,
    여기에서 상기
    Figure pat00601
    Figure pat00602
    에서
    Figure pat00603
    Figure pat00604
    는 수학식,
    Figure pat00605
    ,
    Figure pat00606
    , 이며,
    균등 분할된
    Figure pat00607
    번째 영역의 적분영상은
    Figure pat00608
    를 생성하기 위해서, 수학식,
    Figure pat00609
    ,
    Figure pat00610
    ,
    Figure pat00611
    Figure pat00612
    에서 수직 좌표
    Figure pat00613
    Figure pat00614
    에서 서로 다른 2개의 벡터 레지스터가 읽어 들이는 데이터를 이용하여, 수학식,
    Figure pat00615
    =
    Figure pat00616
    ,
    Figure pat00617
    ,
    로 적분
    Figure pat00618
    Figure pat00619
    를 계산하여, 적분영상
    Figure pat00620
    의 해당 위치에 저장하는 단계와,
    상기 단계의 방법을 수직과 수평으로 반복하여 최종적인 덧대기 영상의 적분영상
    Figure pat00621
    를 생성하는 단계를 더 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  8. 제 1 항에 있어서,
    상기 적분영상을 이용한 평균차이 필터 계산부는;
    상기 제 7항 기재의 생성한 적분영상
    Figure pat00622
    를 이용하여 초고속 병렬 연산으로 생성하기 위해서, 수직 방향으로 그 영역의 크기가 균등하게 분할된 적분영상 각각에서 수학식,
    Figure pat00623
    ,
    Figure pat00624
    ,
    Figure pat00625
    ,
    Figure pat00626
    ,
    Figure pat00627
    ,
    Figure pat00628
    ,
    Figure pat00629
    , 로 주어지는 평균차이 필터값
    Figure pat00630
    를 계산하고
    Figure pat00631
    의 크기를 입력 영상
    Figure pat00632
    의 크기와 동일하도록 하는 단계와,
    상기 단계를 병렬 연산으로 구현하기 위해서, 전경창의 평균값
    Figure pat00633
    는 수학식,
    Figure pat00634
    ,
    Figure pat00635
    ,
    Figure pat00636
    ,
    Figure pat00637

    로 주어지는 위치에 대응되는 4개의 적분영상 값인
    Figure pat00638
    ,
    Figure pat00639
    ,
    Figure pat00640
    ,
    Figure pat00641
    를 이용하여, 수학식,
    Figure pat00642
    ,
    로 계산하는 단계와,
    배경창의 평균값
    Figure pat00643
    는 수학 식,
    Figure pat00644
    ,
    Figure pat00645
    ,
    Figure pat00646
    ,
    Figure pat00647

    로 주어지는 위치에 대응되는 4개의 적분영상 값인
    Figure pat00648
    ,
    Figure pat00649
    ,
    Figure pat00650
    ,
    Figure pat00651
    를 이용하여, 수학 식,
    Figure pat00652

    로 계산하는 단계와,
    한번에
    Figure pat00653
    개의 전경창들의 평균값
    Figure pat00654
    는, 수학 식.
    Figure pat00655
    ,
    Figure pat00656
    ,
    Figure pat00657
    ,
    Figure pat00658
    ,
    Figure pat00659
    ,
    한번에
    Figure pat00660
    개의 배경창들의 평균값
    Figure pat00661
    는, 수학 식,
    Figure pat00662
    ,
    Figure pat00663
    ,
    Figure pat00664
    ,
    Figure pat00665
    ,
    Figure pat00666
    ,
    Figure pat00667
    ,
    Figure pat00668
    ,
    Figure pat00669
    ,
    Figure pat00670
    ,
    Figure pat00671
    로,
    Figure pat00672
    개 평균차이 필터 값들은 수학 식,
    Figure pat00673
    =
    Figure pat00674
    ,
    로 수평과 수직 방향으로 전경창과 배경창의 중심을 이동하면서 반복하여 병렬 연산으로 계산하는 단계를 더 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  9. 제 1 항에 있어서,
    상기 평균차이 필터부로부터 생성된 값인
    Figure pat00675
    를 이용하여 영상분할된 삼진영상 생성부는;
    수직 방향으로 균등 분할된 평균차이 필터값의 각 영역에서 삼진영상을 초고속 병렬 연산으로 생성하기 위해서, 상기 제 8항 기재의 생성된 평균차이 필터값
    Figure pat00676
    의 요소
    Figure pat00677
    이면
    Figure pat00678
    로, 그렇지 않으면
    Figure pat00679
    으로,
    Figure pat00680
    의 요소
    Figure pat00681
    이면
    Figure pat00682
    로 그렇지 않으면
    Figure pat00683
    으로 저장하고, 그 다음에는
    Figure pat00684
    의 요소들의 MSB(most significant bit)를 모두 영으로 바꾸어 주고 워드 데이터로 변환하고, 이어서
    Figure pat00685
    의 요소들을 오른쪽으로
    Figure pat00686
    비트 이동시킨 다음에 다시 왼쪽으로
    Figure pat00687
    비트 이동시킨 다음에 바이트 데이터로 변환시키는 단계와,
    Figure pat00688
    의 요소를
    Figure pat00689
    로 비교한 결과와
    Figure pat00690
    의 요소를
    Figure pat00691
    로 비교한 상기의 과정으로 생성되는 각각의 바이트 데이터를 논리 합 연산(OR)으로 입력영상의 크기와 동일한 최종적인 삼진영상
    Figure pat00692
    를 생성하는 단계를 더 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법.
  10. 적분영상 기반 영상분할 초고속 병렬 연산을 실현하기 위한 병렬 연산 프로그램에 있어서;
    입력영상으로부터 덧대기 영상과 그의 적분영상의 동시 생성기능과,
    상기적분영상의 계산 값을 이용하는 평균차이 필터링 기능과,
    상기 평균차이 필터링에 의하여 생성된 값들을 이용하여 영상분할된 삼진영상 생성기능을 포함하고,
    상기 덧대기 영상과 그의 적분영상 동시 생성기능은, 수평 방향 덧대기 영상과 그의 적분영상 동시 생성기능과, 수직 방향 덧대기 영상 생성기능과, 덧대기 영상의 최종 적분영상의 생성기능을 더 포함하는 것을 특징으로 하는 적분영상 기반 영상분할을 위한 초고속 병렬 연산프로그램을 기록한 매체.
KR1020190166530A 2019-12-13 2019-12-13 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 KR102405470B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190166530A KR102405470B1 (ko) 2019-12-13 2019-12-13 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 컴퓨터로 읽을 수 있는 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190166530A KR102405470B1 (ko) 2019-12-13 2019-12-13 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 컴퓨터로 읽을 수 있는 매체

Publications (2)

Publication Number Publication Date
KR20210075453A true KR20210075453A (ko) 2021-06-23
KR102405470B1 KR102405470B1 (ko) 2022-06-07

Family

ID=76599529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190166530A KR102405470B1 (ko) 2019-12-13 2019-12-13 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 컴퓨터로 읽을 수 있는 매체

Country Status (1)

Country Link
KR (1) KR102405470B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023113466A1 (ko) * 2021-12-14 2023-06-22 주식회사 모빌린트 적분 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101434484B1 (ko) * 2012-06-20 2014-08-26 한국기술교육대학교 산학협력단 영상 분할을 이용한 비전 검사 장치 및 비전 검사 방법
KR101688435B1 (ko) 2015-06-26 2016-12-21 광운대학교 산학협력단 블록 구조를 이용한 적분 영상 생성 장치 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101434484B1 (ko) * 2012-06-20 2014-08-26 한국기술교육대학교 산학협력단 영상 분할을 이용한 비전 검사 장치 및 비전 검사 방법
KR101688435B1 (ko) 2015-06-26 2016-12-21 광운대학교 산학협력단 블록 구조를 이용한 적분 영상 생성 장치 및 그 방법

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
(문한6) 해외논문 006: Berkin Bilgic, Berthold K.P. Horn, Ichiro Masaki, "Efficient Integral Image Computation on the GPU,"2010 IEEE Intelligent Vehicles Symposium, pp. 528-531, June 21-24, 2010.
(문헌1) 해외논문 001: Crow, F., "Summed-area tables for texture mapping,"ACM SIGGRAPH Computer Graphics, pp. 207-212, 18, 1984.
(문헌10) 국내특허 001: 특허 10-1688435호, 블록 구조를 이용한 적분 영상 생성 장치 및 그 방법, 2016.
(문헌2) 해외논문 002: Viola P., Jones M., "Rapid Object Detection using a Boosted Cascade of Simple Features,"Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pp. 511-518, Kauai, HI, USA, December 8-14, 2001.
(문헌3) 해외논문 003: Faisal Shafait, Daniel Keysers, Thomas M. Breuel, "Efficient implementation of local adaptive thresholding techniques using integral images,"Proc. SPIE 6815, Document Recognition and Retrieval XV, 681510, 28 January 2008.
(문헌4) 해외논문 004: Branislav Kisaˇcanin, "Integral Image Optimizations for Embedded Vision Applications,"IEEE Southwest Symposium on Image Analysis and Interpretation, pp. 181-183, 24-26 March 2008.
(문헌5) 해외논문 005: Zhang, N., "Working towards Efficient Parallel Computing of Integral Images on Multi-Core Processors,"Proceedings of the Second International Conference on Computer Engineering and Technology, pp. 30-34, Chengdu, China, 16-18, April 2010.
(문헌7) 해외논문 007: Wu Y. T., Cho C. Y., Tseng S. Y., Liu C. N., King C.T., "Parallel Integral Image Generation Algorithm on Multi-Core System,"Proceedings of the 9th IEEE International Symposium on Parallel and Distributed Processing with Applications, pp. 31-35, Busan, Korea, 26-28, May 2011.
(문헌8) 해외논문 008: Peng Ouyang, Shouyi Yin, Yuchi Zhang, Leibo Liu, and Shaojun Wei, "A Fast Integral Image Computing Hardware Architecture With High Power and Area Efficiency,"IEEE Trans. on Circuits and Systems―II: Express Briefs, Vol. 62, No. 1, pp. 75-79, 2015.
(문헌9) 해외논문 009: Shoaib Ehsan, Adrian F. Clark, Naveed ur Rehman and Klaus D. McDonald-Maier, "Integral Images: Efficient Algorithms for Their Computation and Storage in Resource-Constrained Embedded Vision Systems,"Sensors, pp. 16804-16830, 15, 2015.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023113466A1 (ko) * 2021-12-14 2023-06-22 주식회사 모빌린트 적분 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체

Also Published As

Publication number Publication date
KR102405470B1 (ko) 2022-06-07

Similar Documents

Publication Publication Date Title
Long et al. Sparseneus: Fast generalizable neural surface reconstruction from sparse views
US9928642B2 (en) Using a geometry shader for variable input and output algorithms
US20240265561A1 (en) Mesh reconstruction using data-driven priors
US20190355103A1 (en) Guided hallucination for missing image content using a neural network
Jiang et al. Novel multi-scale retinex with color restoration on graphics processing unit
Pfister et al. Cube-4-a scalable architecture for real-time volume rendering
Hart High-speed PIV analysis using compressed image correlation
Liu et al. Realtime Aesthetic Image Retargeting.
US6891546B1 (en) Cache memory for texture mapping process in three-dimensional graphics and method for reducing penalty due to cache miss
CA2308328A1 (en) Data processing system for logically adjacent data samples such as image data in a machine vision system
EP0440077A2 (en) Image processing apparatus
Schneider et al. GPU-based real-time discrete Euclidean distance transforms with precise error bounds
Griwodz et al. Popsift: A faithful SIFT implementation for real-time applications
KR102405470B1 (ko) 적분영상 기반 영상분할을 위한 초고속 병렬 연산 방법 및 초고속 병렬 연산프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
KR20080021637A (ko) 디지털 이미지 처리에서의 효과 그래프를 통한 변환들의축적
CN114202657A (zh) 用于图像处理的方法和设备
US11010939B2 (en) Rendering of cubic Bezier curves in a graphics processing unit (GPU)
Mubarik et al. Hardware acceleration of neural graphics
Bellas et al. Real-time fisheye lens distortion correction using automatically generated streaming accelerators
US20210398253A1 (en) Adding greater realism to a computer-generated image by smoothing jagged edges
US7978914B2 (en) Image processing system
Mark et al. Memory access patterns of occlusion-compatible 3D image warping
Shin et al. A real-time video processing implementation with massively parallel computation support
Panwar et al. Inception-based CNN for low-light image enhancement
Vučković et al. Ultra-fast basic geometrical transformations on linear image data structure

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