KR102210693B1 - 경계 비트맵을 이용하는 이미지 분류 개선 기법 - Google Patents

경계 비트맵을 이용하는 이미지 분류 개선 기법 Download PDF

Info

Publication number
KR102210693B1
KR102210693B1 KR1020197000304A KR20197000304A KR102210693B1 KR 102210693 B1 KR102210693 B1 KR 102210693B1 KR 1020197000304 A KR1020197000304 A KR 1020197000304A KR 20197000304 A KR20197000304 A KR 20197000304A KR 102210693 B1 KR102210693 B1 KR 102210693B1
Authority
KR
South Korea
Prior art keywords
matrix
cell
image
bitmap
exemplary
Prior art date
Application number
KR1020197000304A
Other languages
English (en)
Other versions
KR20190096925A (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 KR1020217002708A priority Critical patent/KR102381994B1/ko
Publication of KR20190096925A publication Critical patent/KR20190096925A/ko
Application granted granted Critical
Publication of KR102210693B1 publication Critical patent/KR102210693B1/ko

Links

Images

Classifications

    • G06K9/6269
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • G06K9/3241
    • G06K9/38
    • G06K9/4609
    • G06K9/4642
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

경계 비트맵을 이용하여 이미지 분류를 개선하기 위한 방법, 시스템, 장치 및 제품이 본 명세서에 개시되어 있다. 개시된 예시적인 장치는, 이미지 내의 전경 실루엣을 식별하고, 전경 실루엣의 경계에 기초하여 경계 박스를 생성하며, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 실루엣 엔진과, 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 컨볼루션 셀 선택기와, 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하는 필터 셀 선택기를 포함한다.

Description

경계 비트맵을 이용하는 이미지 분류 개선 기법
본 특허는 "지향성 그래디언트의 히스토그램의 경계 비트맵을 이용한 객체 인식의 속도 향상"의 명칭으로 2016년 6월 6일에 출원된 미국 가출원 제62/346,065호의 이점 및 우선권을 주장한다. 미국 가출원 제62/346,065호는 그 전체가 본 명세서에 참고로 포함된다.
본 개시는 일반적으로 이미지 분류에 관한 것으로, 보다 상세하게는 경계 비트맵(boundary bitmaps)을 이용하여 이미지 분류를 개선하는 방법, 시스템 및 장치에 관한 것이다.
최근 수 년 동안, 이미지 분류는 지향성 그래디언트의 히스토그램(Histogram of Oriented Gradients: HoG) 분류기를 포함한 상이한 방법을 이용하여 달성되어 왔다. 예시적인 HoG 분류기에 의해 생성된 특징 디스크립터는, 예를 들어, 컴퓨터 비전 시스템에서 정지 이미지 및/또는 비디오 내의 사람, 동물 및/또는 객체를 검출하는 데 사용된다. 일반적으로, 분류기는 지원 벡터 머신(support vector machine: SVM) 알고리즘을 사용하는 것과 같은 학습 시스템의 도움을 통해 이러한 객체를 검출하도록 트레이닝된다. 이와 같이, 분류 기술은 때때로 HoG/SVM 분류 시스템으로 지칭되기도 한다.
도 1은 경계 비트맵을 이용하여 이미지 분류를 향상시키기 위해 본 개시의 교시에 따라 구성된 예시적인 분류 가속기(classification accelerator)의 개략도이다.
도 2a는 도 1의 예시적인 분류 가속기에 의해 구현되는 이미지 분류를 위한 디스크립터를 생성하기 위한 예시적인 지향성 그래디언트의 히스토그램(HoG) 프로세스의 개략도이다.
도 2b는 예시적인 그리드(grid)의 도면이다.
도 3은 도 1의 예시적인 분류 가속기에 의해 생성된 예시적인 실루엣 윈도우(silhouette window)의 도면이다.
도 4는 도 2의 HoG 프로세스 동안 예시적인 HoG 검출 윈도우를 맞추기 위한 경계 박스(bounding-box)를 갖는 예시적인 HoG 검출 비트맵의 도면이다.
도 5는 도 1의 예시적인 분류 가속기에 의해 생성된 예시적인 인코딩된 실루엣 행렬의 도면이다.
도 6은 도 1의 예시적인 분류 가속기에 의해 생성된 예시적인 컨볼루션된 비트맵 행렬(convolved bitmap matrix)의 도면이다.
도 7은 도 1의 예시적인 분류 가속기에 의해 생성된 예시적인 기여 블록(contributed blocks: CB) 행렬의 도면이다.
도 8은 도 1의 예시적인 분류 가속기에 의해 생성된 예시적인 적격의 블록 행렬(eligible block matrix)의 도면이다.
도 9 내지 도 12는 경계 비트맵을 이용하여 이미지 분류를 향상시키기 위해, 도 1의 예시적인 분류 가속기를 구현하도록 실행될 수 있는 예시적인 머신 판독 가능 명령어를 나타내는 흐름도이다.
도 13은 도 1의 예시적인 분류 가속기를 구현하기 위해 도 9 내지 도 12의 예시적인 머신 판독 가능 명령어를 실행하도록 구성된 예시적인 프로세서 플랫폼의 블록도이다.
도면은 축척대로 스케일링되지 않는다.
이미지, 비디오 및/또는 라이브 비디오 피드(예를 들어, 스트리밍 비디오)에서 객체를 검출하려는 노력은 이러한 객체를 검출하도록 트레이닝된 분류기를 통해 자주 달성된다. 일부 예에서, 객체는 인간의 얼굴, 인간의 실루엣, 동물, 차량, 및/또는 다른 유형의 객체를 포함한다. 일부 예에서, 지향성 그래디언트의 히스토그램(HoG)은 객체를 식별 및/또는 이와는 달리, 분류하기 위해 트레이닝 이미지 및 학습 시스템과 함께 적용된다. 일부 예에서, HoG는 이미지 내의 객체를 분류하기 위해 지원 벡터 머신(SVM)과 관련하여 적용된다(이는 본 명세서에서 HoG/SVM으로 지칭된다). 그러한 접근법의 한 예가 "International Conference on Computer Vision and Pattern Recognition( CVPR ’05 ), June 2005, San Diego, United States, IEEE Computer Society, pp.886-893, 2005"에서 Navneet Dalal 및 Bill Triggs에 의한 "인간 검출을 위한 지향성 그래디언트의 히스토그램"에 기술되고 있으며, 이는 그 전체가 본 명세서에 참고로 포함된다.
아래에서 보다 상세하게 기술되는 바와 같이, HoG/SVM은 HoG 검출 윈도우에서 후보 이미지의 일부를 평가하고 특정 셀 내의 각 픽셀에 대한 그래디언트 값을 계산하며, 히스토그램을 생성하고, 비닝(binning)을 관리하고, 셀 디스크립터를 블록 디스크립터 내로 집계하고, SVM 분류기와 함께 사용될(SVM 분류기 내로 공급될) 블록 디스크립터를 정규화한다. 일반적으로, HoG는 하나 이상의 결합된 특징 벡터(HoG 디스크립터)를 생성하기 위해 후보 이미지의 특징 추출을 가능하게 하며, 이 추출된 특징은, 종래의 SVM 윈도우 분류기에 제공될 때, 객체 검출/인식을 가능하게 한다.
도 1은 경계 비트맵을 이용하여 이미지 분류를 향상시키기 위한 예시적인 분류 가속기(100)를 도시한다. 도 1의 도시된 예에서, 분류 가속기(100)는 이미지 데이터 인터페이스 엔진(102), 경계 비트맵 엔진(104) 및 HoG/SVM 엔진(106)을 포함한다. 예시적인 분류 가속기(100)는 네트워크(134)를 통해 하나 이상의 SVM 자원(132)에 통신 가능하게 접속된다. 예시적인 경계 비트맵 엔진(104)은 예시적인 경계 식별자(108), 예시적인 실루엣 엔진(110), 예시적인 컨볼루션 셀 선택기(112), 예시적인 윈도우 엔진(114), 예시적인 필터 셀 선택기(116), 예시적인 필터 임계치 엔진(118) 및 예시적인 경계 캡슐화기(120)를 포함한다. 도 1의 도시된 예에서, HoG/SVM 엔진(106)은 예시적인 그래디언트 계산기(122), 예시적인 빈 관리 엔진(bin management engine)(124), 예시적인 셀 디스크립터 엔진(cell descriptor engine)(126), 예시적인 셀 디스크립터 정규화기(cell descriptor normalizer)(128) 및 예시적인 분류 인터페이스(130)를 포함한다.
예시적인 이미지 데이터 인터페이스 엔진(102)이 후보 이미지를 획득 및/또는 이와는 달리, 검색하는 것에 응답하여, HoG/SVM 엔진(106)의 예시적인 그래디언트 계산기(122)는 그래디언트 값(예를 들어, 크기 그래디언트 및 방향 그래디언트)을 계산한다. 이 예에서, HoG/SVM 엔진(106)은 그래디언트 값을 계산하는 수단을 구현한다. 그러나, 그래디언트 값을 계산하는 수단을 구현하는 데 등가의 구조가 사용될 수 있다. 일반적으로, 후보 이미지 내의 로컬 객체는 로컬 강도 그래디언트 및/또는 에지 방향의 분포를 평가함으로써 보다 양호하게 특성화된다. 그래디언트의 크기(|G|)는 예시적인 식 1에 따른 방식으로 예시적인 그래디언트 계산기(122)에 의해 계산된다.
Figure 112019001134890-pct00001
(식 1)
도시된 식 1의 예에서, 그래디언트의 크기(|G|)는 인접 픽셀의 강도 값에 따라 계산되고, 방향각(θ)은 예시적인 식 2에 따른 방식으로 예시적인 그래디언트 계산기(122)에 의해 계산된다.
Figure 112019001134890-pct00002
(식 2)
식 1 및 식 2의 예에서, 그래디언트 계산기(122)는 그래디언트 및 방향각을 계산하는 수단을 구현한다. 그러나, 그래디언트 및 방향값을 계산하는 수단을 구현하는 데 등가의 구조가 사용될 수 있다.
예시를 위해, 예시적인 HoG/SVM 프로세스(200)가 도 2a에 도시되어 있다. 도 2a의 도시된 예에서, 예시적인 이미지 데이터 인터페이스 엔진(102)은 분석을 위해 후보 이미지를 획득하고 그 이미지의 일부를 HoG 검출 윈도우(202)로서 선택한다. 도 2a의 예시적인 HoG 검출 윈도우(202)는 64 픽셀 폭 × 128 픽셀 높이(이 예에서는 디폴트)이지만, 다른 치수가 대안으로 사용될 수 있다. 도 2a의 예에서 예시적인 HoG 검출 윈도우(202)의 각 셀(204)은 22n(여기서 n>0 및 2n<최소 윈도우 폭/높이)인 8×8의 픽셀 그리드이며, 예시적인 그래디언트 계산기(122)는, 예를 들어, 전술한 바와 같은 식을 사용하여, 전술한 것에 대한 크기 및 방향 값을 계산한다.
히스토그램을 생성하기 위해, 예시적인 빈 관리 엔진(124)은 계산된 방향각(θ)을 분할 및/또는 이와는 달리, 목표 개수의 빈에 할당한다. 이 예에서, 빈 관리 엔진(124)은 할당하는 수단을 구현하지만, 그 할당하는 수단을 구현하는 데 등가의 구조가 사용될 수 있다. 도시된 도 2a의 예에서, 0° 내지 180°의 범위는 예시적인 빈 관리 엔진(124)에 의해 각각 20°의 9 개의 빈에 분할된다. 또한, 예시적인 빈 관리 엔진(124)은 각각의 강도 값을 각각의 방향각과 연관된 각각의 빈에 부가하여, 예시적인 HoG 셀 디스크립터(206)(예를 들어, 방향에 대한 크기에 매칭되는 히스토그램)를 생성한다. 도 2a의 예시적인 HoG 셀 디스크립터(206)는 히스토그램으로 표현되고, 9 개의 값을 포함하며, 각각은 최소값 0과, 최대 픽셀 강도 값의 128 배인 최대값을 갖는다. 이 예에서, 빈은 방향을 나타내고, 빈(들)의 높이는 상응하는 방향각(들)의 크기를 나타낸다.
예시적인 셀 디스크립터 엔진(126)은 2×2 셀의 블록(208)의 모든 셀 디스크립터(히스토그램)(206)를 집계한다. 셀의 블록(208)이 셀 디스크립터 엔진(126)에 의해 사용되기 때문에, 예시적인 HoG 검출 윈도우(202)의 에지 상에 있지 않은 임의의 HoG 셀(204)은 4 개의 상이한 셀의 블록(208)에 나타나며 이에 따라 대응하는 셀 디스크립터(206)는, 파선 화살표(209)로 도시된 바와 같이, 4 개의 상이한 블록 디스크립터(210)로 표현될 것이라는 것을 주목해야 한다. 예를 들어, 도 2b의 블록(10)은 아래에서 (a) 5, 6, 9, 10, (b) 6, 7, 10, 11, (c) 9, 10, 13, 14 및 (d) 10, 11, 14, 15의 집합체에서 2×2 그리드로 나타날 것이다. 전술한 바와 같이, 로컬 객체의 외관 및 형상은 로컬 그래디언트의 분포에 의해 더 잘 특성화되기 때문에, 각각의 셀에 대한 로컬 히스토그램은 블록 디스크립터에 누적되고, 결합된 히스토그램 엔트리는 표현을 형성한다. 이 예에서, 셀 디스크립터 엔진(126)은 집계하는 수단을 구현하지만, 그 집계하는 수단을 구현하는 데 등가의 구조가 사용될 수 있다.
조명, 쉐도잉 등의 불변성을 향상시키기 위해, 블록 디스크립터는 객체 인식을 위해 SVM에 제공되기 전에 정규화된다. 일부 예에서, 로컬 히스토그램 표현은 보다 큰 공간 영역(블록)에 걸쳐 축적되고, 이러한 블록 내의 모든 셀을 정규화하는 데 사용된다. 정규화된 디스크립터 블록은 또한 본 명세서에서 HoG 디스크립터로 지칭되기도 한다. 상응하는 HoG 검출 윈도우(202)의 모든 이러한 HoG 디스크립터를 결합하게 되면, 검출을 위해 궁극적으로 SVM에 제공되는 결합된 특징 벡터(때로는 본 명세서에서 완전한 HoG 디스크립터로 지칭되기도 함)를 생성하게 된다.
예시적인 셀 디스크립터 정규화기(128)는 본원에서 4 개의 HoG 셀(204)의 셀 디스크립터(206)를 갖는 각각의 블록 디스크립터(210)를 정규화한다. 이 예에서, 셀 디스크립터 정규화기(128)는 정규화하는 수단을 구현하지만, 그 정규화하는 수단을 구현하는 데 등가의 구조가 사용될 수 있다. 예를 들어, Navneet Dalal 및 Bill Triggs의 전술한 논문에 기술된 바와 같이, 임의의 유형 및/또는 수의 정규화 알고리즘(들)이 예시적인 셀 디스크립터 정규화기(128)에 의해 적용될 수 있다. 도 2의 도시된 예에서, 정규화된 블록 디스크립터(212)는 대응하는 셀의 블록(208)에 대해 도시된다. 여기에는, 이 예에서, 블록 당 36 개의 데이터 요소(예를 들어, 하나의 블록에 4 개의 셀이 있는 9 개의 빈)를 나타내는 히스토그램 데이터의 세트가 포함된다. 예시적인 셀 디스크립터 정규화기(128)는 완전한 HoG 디스크립터(214)(예를 들어, 결합된 특징 벡터)를 생성하기 위해 예시적인 HoG 검출 윈도우(202)에 대한 정규화된 블록 디스크립터(212)를 집계하며, 예시적인 64×128 픽셀 윈도우에 대해서는 105 개의 정규화된 히스토그램 데이터 블록을 포함한다. 특히, 셀 블록의 분석은 2×2 개의 (중첩하는) 블록의 크기로 발생하기 때문에, 이는 HoG 검출 윈도우(202)를 가로로 7 회 그리고 HoG 검출 윈도우(202)를 아래로 15 회 반복한다(7×15 = 105). 예시적인 분류 인터페이스(130)는 분류를 수행하기 위해 예시적인 완전한 HoG 디스크립터(214)를 SVM 자원(132)에 공급 및/또는 이와는 달리, 제공한다. 일부 예에서, SVM 자원은 Inria® 인물 이미지 데이터 세트 및/또는 Daimler® 이미지 데이터 세트와 같이, 머신 학습 애플리케이션에 일반적으로 사용되는 이전 평가된 트레이닝 이미지를 사용한다. 이 예에서, 분류 인터페이스(130)는 SVM 자원에 디스크립터를 제공하는 수단을 구현하지만, 그 디스크립터를 제공하는 수단을 구현하는 데 등가의 구조가 사용될 수 있다.
전술한 HoG 계산은 후보 이미지의 임의의 수의 부분에 대해 예시적인 HoG 검출 윈도우(202)를 반복적으로 스테핑(stepping)함으로써 수행된다. 소스 이미지에 걸쳐 직사각형 디스크립터를 스테핑하는 것은 매칭되는 작업과 관련이 없는 픽셀을 분석하는 것을 포함하며, 이는 낭비되는 계산 자원을 반영한다. 검출될 객체를 포함하는 이미지의 일부와 무관한 픽셀은 본 명세서에서 배경 픽셀(background pixels)로 지칭된다. 반면에, 검출될 객체와 관련이 있을 가능성이 있는 픽셀은 전경 픽셀(foreground pixels)로 지칭된다. 일반적으로, 완전한 HoG 디스크립터(214)(결합된 특징 벡터)를 생성하기 위한 HoG 계산 비용은 높다. 예를 들어, 42×42 픽셀의 후보 관심 영역에 대해, 약 11,500 개의 가산 연산, 1,300 개의 곱셈 연산, 5,200 개의 나눗셈 연산, 16 개의 제곱근 연산 및 5,200 개의 아크탄젠트 연산이 필요한다. 낭비되는 계산 자원 중 일부는 분석될 후보 이미지의 일부가 아닌 배경 픽셀에 적용된다.
예시적인 HoG/SVM 프로세스의 효율을 개선하기 위해, 본 명세서에 개시된 예는 예시적인 HoG 검출 윈도우(202)에서 픽셀의 서브세트를 식별하여 분석하기 위한 비트맵을 수립한다. 본 명세서에 개시된 예는 2015 년 12 월 17 일 출원되어 2017 년 5 월 2 일자로 특허 허여된 "이미지 분류기를 제공하기 위한 시스템 및 방법(Systems and Methods for Providing an Image Classifier)"이라는 명칭의 미국 특허 제9,639,777호에 따른 방식으로 비트맵을 수립 및/또는 이와는 달리, 생성하며, 이는 그 전체가 본 명세서에서 참고로 포함된다. 비트맵을 수립 및/또는 이와는 달리, 생성하기 위해, 예시적인 경계 식별자(108) 및/또는 예시적인 실루엣 엔진(110)은 우선 분류될 이미지에 적용되는 트레이닝 이미지로부터 생성된 실루엣을 식별한다(후보 이미지의 일부는 HoG 검출 윈도우(202)와 동일한 크기를 갖는다). 일부 예에서, 경계 식별자(108)는 트레이닝 이미지/데이터 세트와 관련하여 후보 이미지를 평균화하고, 예시적인 실루엣 엔진(110)은, 도 3에 도시된 바와 같이, 실루엣 윈도우(300)를 생성 및/또는 이와는 달리, 계산하도록 임계치를 적용한다. 이 예에서, 경계 식별자(108) 및 실루엣 엔진(110)은 비트맵을 생성하기 위한 수단 및/또는 실루엣을 식별하기 위한 수단을 구현하지만, 이를 구현하기 위해 등가 구조가 사용될 수 있다. 도 3의 도시된 예에서, INRIA® 보행자 검출 이미지 데이터 세트의 평균은 예시적인 전경 실루엣(302)을 생성하는 데 사용된다. 예시적인 실루엣 윈도우(300)는 48×96 픽셀의 크기를 가지며, 이 픽셀 크기는 총 288 개의 셀을 위해 예시적인 경계 식별자(108)에 의해 4×4 셀로 분할된다(48/4×96/4 = 12×24 = 288 개의 4×4 셀). 도 3의 도시된 예에서의 288 개의 셀 중에서, 예시적인 실루엣 엔진(110)은 이미지의 전체 영역의 32 %를 나타내는 92 개의 셀이 전경 실루엣(302)에 포함되는 것을 식별한다.
일부 예에서, 실루엣 엔진(110)은 각 위치에서 픽셀 강도 값을 트레이닝 이미지와 함께 부가한 후, 최종의 값을 트레이닝 이미지의 수로 분할하며, 이는 “ACM Transactions on Graphics, Vol. 33, No. 4, August 2014”에서의 Jun-Yan Zhu 등에 의한 "AverageExplorer: Interactive Exploration and Alignment of Visual Data Collections"에 개시되며, 이 문헌은 그 전체가 본 명세서에 참고로 포함된다. 일부 예에서, MATLAB 함수인 imadd() 및 imdivide()는, 데이터세트에 대해 이러한 함수를 수행하고 그 결과를 비트맵 파일로 출력하기 위해 사용된다. 예시적인 전경 실루엣(302)은 그 후 예시적인 실루엣 엔진(110)에 의해 데이터 세트, 컴퓨터 비전 및/또는 심층 학습의 픽셀별 평균화의 결과로서 생성된다. 예시적인 전경 실루엣(302)은 예시적인 실루엣 엔진(110)에 의해 변환되어, 도 4에 도시된 바와 같은 HoG 검출 비트맵(402)을 형성한다.
도 4의 도시된 예에서, HoG 검출 비트맵(402)은 도 2의 예시적인 HoG 검출 윈도우(202)와 유사한 HoG 검출 윈도우(404) 옆에 도시된다. 도 4의 도시된 예에서, HoG 검출 윈도우(404)는 분석될 후보 이미지를 포함한다. 그러나, 도 2의 예시적인 HoG 검출 윈도우(202)와는 달리, 도 4의 HoG 검출 윈도우(404)는 예시적인 HoG 검출 비트 맵(402)에 기초하여 경계 박스(406)로 HoG/SVM 프로세스를 제한하여, HoG 검출 윈도우(404) 내의 후보 이미지 내에서 예시적인 전경 실루엣(302)의 전경 정보를 포함하는 셀만이 분류되도록 프로세싱한다. 다르게 말하면, 분류될 후보 이미지가 HoG 검출 비트맵에 중첩될 때, 관련 픽셀(전경 픽셀) 및 비 관련 픽셀(배경 픽셀, 예를 들어, 실루엣과 관련없는 장면/객체와 관련된 정보를 포함하는 배경 픽셀)이 모두 조사되고, 경계 박스(406)는 그러한 비 관련 픽셀의 불필요한 프로세싱을 방지한다. 사실상, 예시적인 실루엣 엔진(110)은 예시적인 HoG 검출 윈도우(404)에서 전체 개수의 셀을 프로세싱하기보다는, HoG 검출 윈도우(404)를 조정 및/또는 이와는 달리, 제한하도록 경계 박스(406)를 가진 예시적인 HoG 검출 비트맵(402)을 적용하여 분석될 셀 및 픽셀의 수를 감소시키며, 이로써 보다 적은 수의 방향 빈이 사용되게 하고, 도 2의 예시적인 완전한 HoG 디스크립터(214)와 같은 결과적인 HoG 디스크립터의 전체 크기를 감소시킨다. 따라서, 본 명세서에 개시된 예에 의해 후보 이미지의 관련 부분만을 참조 이미지의 관련 부분과만 비교함으로써, 프로세스 비용 및 복잡성의 현저한 감소가 달성된다.
그러나, 예시적인 HoG 검출 비트맵(402)의 적용은 후보 이미지 배경의 일부분을 제거함으로써 HoG/SVM 효율을 향상시키지만, 본 명세서에 개시된 예는 또한 전경의 일부를 제거함으로써 계산의 효율성을 더욱 향상시킨다. 특히, 이하에서 더 상세히 설명되는 바와 같이, 본 명세서에 개시된 예는 실질적인 정밀도 손실없이 후보 이미지 내에서 객체의 표현 및 분류를 가능하게 하도록 전경의 일부를 제거한다. 본 명세서에 개시된 예는, 분류를 수행하는 디바이스(예를 들어, 모바일 디바이스)에서의 전력 소비를 감소시키고 분류를 수행하는 디바이스의 대역폭 요건을 감소시키는 방식으로 전경의 일부분을 제거한다. 또한, 본 명세서에 개시된 예는 예시적인 SVM 자원(132)에 궁극적으로 제공되는 디스크립터의 크기를 감소시키며, 이는 하나 이상의 메모리와 하나 이상의 프로세서 간의 데이터 전송을 감소시킨다.
도 5는 예시적인 실루엣 엔진(110)에 의해 생성된 예시적인 인코딩된 실루엣 행렬(500)을 도시한다. 도 5의 도시된 예에서, 실루엣 엔진(110)은 배경 셀을 0("0") 값으로 인코딩했고, 전경 셀을 1("1") 값으로 인코딩했다. 또한, 예시적인 실루엣 엔진(110)은 과도기 셀(transitional cells)에 대응하는 비트맵 영역(502)이 실선으로 도시된 바와 같이 0의 값에서 1의 값으로 (및 그 반대로) 인접한 변화를 나타낸다는 것을 식별했다. 전술한 바와 같이, 실루엣 엔진(110)은 인코딩된 실루엣 행렬을 생성하는 수단 및 셀을 인코딩하는 수단을 구현하지만, 그러한 수단을 구현하는 데 다른 등가의 구조가 사용될 수 있다. 예시적인 비트맵 영역(502)은 일반적으로 인간의 실루엣과 유사하다. 전술한 바와 같이, 예시적인 인코딩된 실루엣(500)은, HoG/SVM 프로세스 동안 불필요한 셀이 계산되는 것을 방지하는 예시적인 검출 윈도우에 적용될 때, 상당한 계산 절감을 가능하게 한다. 이 예에서, 비트맵 영역(502)은 인간의 실루엣과 유사하다. 예시적인 비트맵 영역(502) 내부의 모든 셀들은 기존의 HoG/SVM 프로세스에 의해 분석 및/또는 이와는 달리, 계산될 수 있다. 그러나, 전경 셀의 상당 부분은 인간 객체의 분류에 불필요하며, 따라서 이 영역의 모든 셀을 분석하는 것은 계산 자원을 낭비하는 것이 된다.
HoG/SVM 프로세스에 의해 분석될 셀의 양을 줄이기 위해, 도 1의 예시적인 컨볼루션 셀 선택기(112)는, 도 6에 도시된 바와 같이, 컨볼루션된 비트맵 행렬(600)을 생성하기 위해 예시적인 인코딩된 실루엣(500)을 컨볼루션한다. 이 예에서, 컨볼루션 셀 선택기(112)는 컨볼루션하는 수단을 구현하지만, 그 컨볼루션하는 수단을 구현하는 데 다른 등가의 구조가 사용될 수 있다. 또한, 예시적인 컨볼루션된 비트맵 행렬(600)은 비트맵 영역(502) 내부의 블록을 나타낸다. 각 블록은 다수의 셀을 포함한다. 각 셀은 상술한 바와 같이 다수의 픽셀을 포함한다. 그러나, 예시적인 인코딩된 실루엣(500)의 일부 셀은 전경 픽셀을 나타내는 임의의 블록을 포함하지 않으며, 일부 셀은 전경 픽셀을 나타내는 부분 블록만(예를 들어, 한 블록의 4 개 셀보다 적지만, 그 블록의 하나의 셀보다 큰)을 포함할 수 있으며, 일부 셀은 전경 픽셀(예를 들어, 블록 당 4 개의 셀) 내에 완전히 있을 수 있다. 따라서, 특정 셀은 분류 프로세스와 관련되는 추가 분석을 위해 보관할 더 나은 후보가 된다. 도 5의 도시된 예에서, 컨볼루션 셀 선택기는 (예를 들어, 상부 좌측 셀(504A)로부터 시작하여) 한 번에 하나의 셀을 선택한다. 예시적인 윈도우 엔진(114)은 선택된 셀을 동일 값 행렬 커널(ones matrix kernel)(506)과 컨볼루션하며, 도 5의 도시된 예에서, 동일 값 행렬 커널(506)은 2×2 커널(예를 들어, 4 개의 셀을 포함하는 하나의 블록)이다. 이 예에서, 윈도우 엔진(114)은 커널과 컨볼루션하는 수단을 구현하지만, 커널과 컨볼루션하는 수단을 구현하는 데 다른 등가의 구조가 사용될 수 있다. 또한, 예시적인 윈도우 엔진(114)은, 전술한 바와 같이, 전경 셀에 대해 1의 값을 가지며 배경 셀에 대해 0의 값을 갖는 전경 셀의 양을 카운팅한다. 도 5의 도시된 예에서, 제 1 선택된 셀(504A)은 동일 값 행렬 커널(506) 내의 임의의 전경 셀을 포함하지 않아, 결과적인 카운트는 0이다. 예시적인 컨볼루션 셀 선택기(112)는 이 계산된 값(예를 들어, 0)을 대응하는 셀 위치(504B)(도 6 참조)의 예시적인 컨볼루션된 비트맵 행렬(600)에 기입한다.
추가적인 설명을 위해, 제 2 셀(508A)이 예시적인 컨볼루션 셀 선택기(112)에 의해 선택되는 것이 고려된다. 예시적인 윈도우 엔진(114)은 선택된 셀을 다른 2×2 행렬 커널(510)과 컨볼루션하고, 예시적인 윈도우 엔진(114)은 2 개의 전경 셀의 양을 카운팅한다. 다시 말해서, 한 블록(예를 들어, 블록 = 4 개의 셀)의 일부만이 예시적인 제 2 셀(508A)에 의해 표현된다. 이와 같이, 예시적인 컨볼루션 셀 선택기(112)는 이 계산된 합(예를 들어, 2)을 대응하는 셀 위치(508B)(도 6 참조)의 예시적인 컨볼루션된 비트맵 행렬(600)에 기입한다.
추가적인 설명을 위해, 제 3 셀(512A)이 예시적인 컨볼루션 셀 선택기(112)에 의해 선택되는 것이 고려된다. 예시적인 윈도우 엔진(114)은 선택된 셀을 다른 2×2 행렬 커널(514)과 컨볼루션하고, 예시적인 윈도우 엔진(114)은 네 개의 전경 셀의 양을 카운팅한다. 이와 같이, 예시적인 컨볼루션 셀 선택기(112)는 이 계산된 합(예를 들어, 4)을 대응하는 셀 위치(512B)(도 6 참조)의 예시적인 컨볼루션된 비트맵 행렬(600)에 기입한다.
도 6의 도시된 예에서, 컨볼루션된 비트맵 행렬(600)은 특정 커널 크기 및 블록 중첩 크기에 기초한 제로(0)와 4 사이의 합산된 값을 포함한다. HoG/SVM 프로세스에 기여할 블록(셀 그룹)을 식별하기 위해, 예시적인 필터 셀 선택기(116)는 셀을 선택하고, 예시적인 필터 임계치 엔진(118)은 그 셀을 셀 유지 임계치에 대해 평가한다. 이 예에서, 필터 셀 선택기(116)는 셀을 선택하는 수단을 구현하지만, 셀을 선택하는 수단을 구현하는 데 다른 등가의 구조가 사용될 수 있다. 또한, 이 예에서 필터 임계치 엔진(118)은 셀을 평가하는 수단을 구현하지만, 셀을 평가하는 수단을 구현하는 데 다른 등가의 구조가 사용될 수 있다. 도 6의 도시된 예에서, 필터 임계치 엔진(118)은 4의 필터 값을 적용하고, 셀이 셀 유지 임계치를 충족하면, 예시적인 필터 셀 선택기(116)는 대응 행렬 셀에 유지 표시자(예를 들어, 1의 값)를 기입/인코딩함으로써 각각의 셀을 유지하며, 그렇지 않으면, 예시적인 필터 셀 선택기(116)는 대응하는 행렬 셀에 폐기 표시자(예를 들어, 제로(0)의 값)을 기입/인코딩함으로써 (고려 대상에서) 각각의 셀을 제거한다. 도 7은 전술한 필터링 및 인코딩으로부터 기인한 예시적인 기여 블록(contributed blocks: CB) 행렬(700)을 도시한다. 다르게 말하면, 예시적인 CB 행렬(700)은 적격의 전경 블록/셀을 식별하도록 인코딩된다. 도 7의 도시된 예는 유지 표시자에 대한 1의 값 및 폐기 표시자에 대한 0의 값을 식별하지만, 다른 예가 임의의 유지 및/또는 폐기 표시자 표현을 사용할 수 있다.
그러나, 경계(702)(CB 행렬(700)의 에지)의 기여 블록만을 식별하기 위해, 예시적인 경계 캡슐화기(120)는, 도 8에 도시된 바와 같이, 유지 표시자(예를 들어, 1의 값)(802)를 포함한 경계 비트맵 영역(예를 들어, 셀의 외부 에지/둘레)(806)을 식별하며, 폐기 표시자(예를 들어, 0의 값을 가진 다른 모든 셀)(804)를 대체한다. 이 예에서, 경계 캡슐화기(120)는 경계 비트맵 영역을 식별하는 수단을 구현하지만, 경계 비트맵 영역을 식별하는 수단을 구현하는 데 다른 등가의 구조가 사용될 수 있다. 도 8의 도시된 예에서, CB 행렬의 경계 비트맵 영역(806)을 식별하는 적격의 블록 행렬(800)이 도시되어 있다. 예시적인 적격의 블록 행렬(800)은 HoG/SVM이 객체 분류에 필요하지 않은 전경 셀을 프로세싱 또는 계산하는 것을 방지하기 위해 인코딩된다(예를 들어, 적격의 셀은 1로 인코딩되고 비적격의 셀은 0으로 인코딩된다). 예시적인 분류 인터페이스(130)는 예시적인 적격의 블록 행렬(800)을 도 2의 예시적인 HoG 검출 윈도우(202)와 같은 HoG 검출 윈도우에 적용하여, HoG/SVM 분류 프로세스 동안 계산될 셀의 수를 제한 및/또는 이와는 달리, 감소시킨다. 일부 예에서, 분류 인터페이스(130)는 각 유지 표시자를 포함한 중첩 셀만이 HoG/SVM 분류 프로세스 동안 사용될 수 있도록, 적용된 적격의 블록 행렬(800)과 관련하여 HoG 검출 윈도우 상에서 마스킹 동작을 수행한다. 이와 같이, HoG/SVM 프로세싱을 위한 계산 자원이 크게 감소되어, 디바이스(예를 들어, 임베디드 디바이스, 모바일 디바이스 등)의 전원 절약 및 메모리 사용률 감소를 달성할 수 있다.
상술한 바와 같이, 예시적인 완전한 HoG 디스크립터(214)와 같이, 본 명세서에 개시된 예에 의해 생성된 완전한 HoG 디스크립터는 개선된 길이(예를 들어, 보다 짧은 길이)를 갖는다. 결과적으로, 완전한 HoG 디스크립터가 분류 프로세스를 위해 SVM 자원(132)에 제공될 때, 그러한 SVM 자원(132)은 또한 계산 개선을 나타낼 수 있다. 일부 예에서, 예시적인 SVM 자원(132)에 의해 계산된 검출 결과는 본 명세서에 개시된 예를 고려하면 더 빠르다.
일부 예에서, 서로 다른 데이터세트의 이미지는 크기가 다르기 때문에, 고정된 크기의 경계 박스는 적절한 정확도를 제공하지 못할 수 있다. 이러한 스케일링 환경을 처리하기 위해, 스케일링 팩터가 경계 박스 및 관련 경계 비트맵 영역을 고려하여 적용될 수 있다. 예시적인 x 치수 스케일링 팩터(S X ) 및 예시적인 y 치수 스케일링 팩터(S Y )는 각각 예시적인 식 3 및 4로 도시된다.
Figure 112019001134890-pct00003
(식 3)
Figure 112019001134890-pct00004
(식 4)
식 3 및 4의 도시된 예에서, Ni는 (예를 들어, INRIA 데이터세트로부터) 새로운 이미지를 나타내며, RI 는 (예를 들어, Daimler 데이터베이스로부터) 참조 이미지를 나타낸다. 예를 들어, 참조 이미지의 크기가 96×48이고, 새로운 이미지의 크기가 134×70인 경우, x 및 y 방향의 해당 스케일링 팩터(S)는 다음과 같다:
Figure 112019001134890-pct00005
일부 예에서, 경계 박스 및 경계 비트맵의 스케일링에도 불구하고, 상응하는 크기는 셀 크기의 정수배가 되도록 반올림(rounding up and down)에 의해 조절될 수 있다. 스케일링으로 인해, 비트맵 패턴 다각형의 정점이 셀의 모서리에서 발생하기보다는 셀 내로 이동된 경우, 예시적인 경계 비트맵 엔진(104)은 비트맵 다각형의 임의의 정점을 그것이 속하는 셀의 가장 가까운 정점으로 라운딩(round)한다.
도 1의 분류 가속기(100)를 구현하는 예시적인 방식이 도 2 내지 도 8에 도시되어 있지만, 도 1에 도시된 요소, 프로세스 및/또는 디바이스 중 하나 이상이 임의의 다른 방식으로 결합, 분할, 재배열, 생략, 제거 및/또는 구현될 수 있다.  또한, 도 1의 예시적인 이미지 데이터 인터페이스 엔진(102), 예시적인 경계 비트맵 엔진(104), 예시적인 경계 식별자(108), 예시적인 실루엣 엔진(110), 예시적인 컨볼루션 셀 선택기(112), 예시적인 윈도우 엔진(114), 예시적인 필터 셀 선택기(116), 예시적인 필터 임계치 엔진(118), 예시적인 경계 캡슐화기(120), 예시적인 HoG/SVM 엔진(106), 예시적인 그래디언트 계산기(122), 예시적인 빈 관리 엔진(124), 예시적인 셀 디스크립터 엔진(126), 예시적인 셀 디스크립터 정규화기(128), 예시적인 분류 인터페이스(130), 및/또는, 보다 일반적으로, 예시적인 분류 가속기(100)는 하드웨어, 소프트웨어, 펌웨어 및/또는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합에 의해 구현될 수 있다.  따라서, 예를 들어, 도 1의 예시적인 이미지 데이터 인터페이스 엔진(102), 예시적인 경계 비트맵 엔진(104), 예시적인 경계 식별자(108), 예시적인 실루엣 엔진(110), 예시적인 컨볼루션 셀 선택기(112), 예시적인 윈도우 엔진(114), 예시적인 필터 셀 선택기(116), 예시적인 필터 임계치 엔진(118), 예시적인 경계 캡슐화기(120), 예시적인 HoG/SVM 엔진(106), 예시적인 그래디언트 계산기(122), 예시적인 빈 관리 엔진(124), 예시적인 셀 디스크립터 엔진(126), 예시적인 셀 디스크립터 정규화기(128), 예시적인 분류 인터페이스(130), 및/또는, 보다 일반적으로, 예시적인 분류 가속기(100) 중 임의의 것은 하나 이상의 아날로그 또는 디지털 회로(들), 로직 회로, 프로그램 가능한 프로세서(들), 주문형 집적 회로(들)(ASIC(s)), 프로그램 가능 로직 디바이스(들)(PLD(s)) 및/또는 필드 프로그램 가능 로직 디바이스(들)(FPLD(s))에 의해 구현될 수 있다.  순수하게 소프트웨어 및/또는 펌웨어 구현을 포괄하기 위해 본 특허의 장치 또는 시스템 청구항 중 임의의 것을 읽을 때, 도 1의 예시적인 이미지 데이터 인터페이스 엔진(102), 예시적인 경계 비트맵 엔진(104), 예시적인 경계 식별자(108), 예시적인 실루엣 엔진(110), 예시적인 컨볼루션 셀 선택기(112), 예시적인 윈도우 엔진(114), 예시적인 필터 셀 선택기(116), 예시적인 필터 임계치 엔진(118), 예시적인 경계 캡슐화기(120), 예시적인 HoG/SVM 엔진(106), 예시적인 그래디언트 계산기(122), 예시적인 빈 관리 엔진(124), 예시적인 셀 디스크립터 엔진(126), 예시적인 셀 디스크립터 정규화기(128), 예시적인 분류 인터페이스(130), 및/또는, 보다 일반적으로, 예시적인 분류 가속기(100) 중 적어도 하나는 소프트웨어 및/또는 펌웨어를 포함하여, 메모리, DVD, 컴팩트 디스크(CD), 블루레이 디스크 등과 같은 비일시적 컴퓨터 판독 가능 저장 디바이스 또는 저장 디스크를 포함하도록 명시적으로 정의된다.  또한, 도 1의 예시적인 분류 가속기(100)는 도 1 내지 도 8에 도시된 것 이외에 또는 대신에, 하나 이상의 요소, 프로세스 및/또는 디바이스를 포함할 수 있고/있거나 임의의 또는 모든 도시된 요소, 프로세스 및 디바이스 중 하나 초과를 포함할 수 있다.
도 1의 분류 가속기(100)를 구현하기 위한 예시적인 머신 판독 가능 명령어를 나타내는 흐름도가 도 9 내지 도 12에 도시된다. 이러한 예에서, 머신 판독 가능 명령어는 도 13과 관련하여 후술되는 예시적인 프로세서 플랫폼(1300)에 도시된 프로세서(1312)와 같은 프로세서에 의한 실행을 위한 프로그램을 포함한다. 프로그램(들)은 CD-ROM, 플로피 디스크, 하드 드라이브, DVD, 블루레이 디스크 또는 프로세서(1312)와 관련된 메모리와 같은 비일시적 컴퓨터 판독 가능 저장 매체 상에 저장된 소프트웨어로 구현될 수 있지만, 전체 프로그램(들) 및/또는 이들의 일부는 대안으로 프로세서(1312) 이외의 디바이스에 의해 실행될 수 있고, 및/또는 펌웨어 또는 전용 하드웨어로 구현될 수 있다. 또한, 예시적인 프로그램이 도 9 내지 도 12에 도시된 흐름도를 참조하여 기술되었지만, 예시적인 분류 가속기(100)를 구현하는 많은 다른 방법이 대안으로 사용될 수 있다. 예를 들어, 블록의 실행 순서는 변경될 수 있고 및/또는 기술된 블록 중 일부는 변경, 제거 또는 결합될 수 있다. 부가적으로 또는 대안으로, 임의의 또는 모든 블록은 소프트웨어 또는 펌웨어를 실행하지 않고 대응하는 동작을 수행하도록 구성된 하나 이상의 하드웨어 회로(예를 들어, 이산 및/또는 집적 아날로그 및/또는 디지털 회로, FPGA(Field Programmable Gate Array), ASIC(Application Specific Integrated Circuit)), 비교기(comparator), 연산 증폭기(operational-amp: op-amp), 로직 회로 등)에 의해 구현될 수 있다.
전술한 바와 같이, 도 9 내지 도 12의 예시적인 프로세스는 임의의 기간 동안(예를 들어, 정보를 임시적으로 버퍼링 및/또는 캐싱하기 위해, 연장된 시구간 동안, 가령, 영구적으로) 정보가 저장되는 하드 디스크 드라이브, 플래시 메모리, 판독 전용 메모리, 컴팩트 디스크, DVD, 캐시, 랜덤 액세스 메모리 및/또는 임의의 다른 저장 디바이스 또는 저장 디스크와 같은 비일시적 컴퓨터 및/또는 머신 판독 가능 매체에 저장된 코드화된 명령어(예를 들어, 컴퓨터 및/또는 머신 판독 가능 명령어)를 사용하여 구현될 수 있다.  본 명세서에 사용된 바와 같이, 비일시적 컴퓨터 판독 가능 매체라는 용어는 임의의 유형의 컴퓨터 판독 가능 저장 디바이스 및/또는 저장 디스크를 포함하고 전파 신호를 배제하고 전송 매체를 배제하도록 명시적으로 정의된다. "구비" 및 "포함하는" (및 그 모든 형태 및 시제)는 본 명세서에서 개방형 용어가 되도록 사용된다. 따라서, 청구항이 임의의 형태의 "구비하는" 또는 "포함하는"(예를 들어, 포함하는, 구비하는, 포함한, 구비한, 등)의 임의의 것을 나열할 때마다, 해당 클레임의 범위를 벗어나지 않고 추가적인 요소, 용어 등이 존재할 수 있다는 것을 이해해야 한다. 본 명세서에 사용된 바와 같이, "적어도"라는 문구가 청구항의 전문에서 전이 용어로 사용되는 경우, 그것은 "포함하는" 및 "구비하는"이라는 용어가 개방형인 것과 동일한 방식으로 개방형이 된다.
도 9의 프로그램(900)은 블록(902)에서 시작하고, 여기서 예시적인 이미지 데이터 인터페이스 엔진(102)은 분류를 위해 이미지를 획득, 수신 및/또는 이와는 달리, 검색한다. 검색된 이미지 내의 하나 이상의 객체를 분류하기 위한 종래의 접근법은 HoG/SVM 프로세스의 즉각적인 적용을 포함하지만, 본 명세서에 개시된 예는 경계 비트맵을 먼저 생성함으로써 HoG/SVM 분류의 개시를 인터셉트하여, 임의의 후속 HoG/SVM 분류 프로세스는 개선된 방식으로(예를 들어, 개선된 계산 효율, 보다 낮은 메모리 요구(들), 보다 낮은 전력 소비 등) 동작한다. 예시적인 경계 비트맵 엔진(104)은, 위에서 논의되고 이하에서 더 상세히 설명되는 바와 같이, HoG/SVM 분류의 개선된 방식을 가능하게 하기 위해 경계 비트맵을 생성한다(블록(904)).
HoG/SVM 분류 프로세스에 의해 분석될 픽셀의 수를 조정 및/또는 이와는 달리, 감소시키는 비트맵을 생성하는 것에 응답하여, 예시적인 그래디언트 계산기(122)는 예시적인 HoG 검출 윈도우(202)의 셀(204)에 대한 그래디언트 값을 계산한다(블록(906)). 또한, 예시적인 빈 관리 엔진(124)은 계산된 방향각에 기초하여 대응하는 빈을 계산한다(블록(908)). 도 2와 관련하여 위에서 개시된 예는 20°의 각각의 빈을 도시했지만, 본 명세서에 개시된 예는 이에 제한되는 것은 아니다. 대응 빈에 대한 누적 강도 값은 예시적인 빈 관리 엔진(124)이 도 2의 예시적인 셀 디스크립터(206)와 같은 HoG 셀 디스크립터(히스토그램)를 생성하게 한다. 예시적인 셀 디스크립터 엔진(126)은 도 2의 예시적인 블록 디스크립터(210)와 같은 블록 디스크립터를 생성하기 위해 셀 디스크립터(206)를 집계한다(블록(910)).
예시적인 블록 디스크립터(210)는 예시적인 셀 디스크립터 정규화기(128)에 의해 정규화된다(블록(912)). 일부 예에서, 셀 디스크립터 정규화기(128)는 L2 놈(norm)을 적용한다. 셀 디스크립터 정규화기(128)에 의해 수행된 예시적인 정규화는 도 2의 예시적인 정규화된 블록 디스크립터(212)와 같은 정규화된 블록 디스크립터를 생성한다. 또한, 예시적인 셀 디스크립터 정규화기(128)는, HoG 검출 윈도우가 각각의 셀을 통해 진행되어질 때, 각각의 정규화된 블록 디스크립터를 집계하며(블록(912)), 이는 도 2의 예시적인 완전한 HoG 디스크립터(214)와 같은 예시적인 완전한 HoG 디스크립터를 생성한다. 예시적인 분류 인터페이스(130)는 예시적인 완전한 HoG 디스크립터(214)를 분류(객체 인식)를 가능하게 하는, 도 1의 SVM 자원(132)과 같은 SVM 분류기에 전달, 전송 및/또는 이와는 달리, 제공한다(블록(914)).
도 10은 도 9의 비트맵의 생성과 관련된 부가적인 세부 사항을 포함한다(블록(1002)). 도 10의 도시된 예에서, 예시적인 경계 식별자(108)는 도 3에 도시된 실루엣 윈도우(300)와 같이, 선택된 이미지에서 객체의 직사각형 경계를 식별한다. 예시적인 실루엣 엔진(110)은 예시적인 실루엣 윈도우(300) 내의 전경 실루엣(302)을 식별 및/또는 이와는 달리, 계산한다(블록(1004)). 예시적인 실루엣 엔진(110)은 또한 대응하는 경계 박스(예를 들어, 도 4의 예시적인 경계 박스(406))를 생성 및/또는 이와는 달리, 식별하고, 실루엣의 2 진 행렬을 생성하여 경계 박스가 또한 일부 배경 셀을 포함하는지 여부를 식별 및/또는 이와는 달리, 드러낸다(블록(1006)). 일부 예에서, 실루엣 엔진(110)은, 예시적인 직사각형 경계(실루엣 윈도우(300))의 배경 셀의 일부를 제거하는, 실루엣의 경계에 기초한 경계 박스(영역)를 생성한다. 예시적인 실루엣 엔진(110)에 의해 생성된 예시적인 2 진 행렬은 도 5에 도시되고, 여기서, 전경 실루엣(302) 외부에 있는 셀은 0으로 인코딩되고, 전경 실루엣(302) 내부에 있는 셀은 1로 인코딩된다.
내부에 전경 셀만을 포함하는 도 5의 예시적인 비트맵 영역(502)과 같은 비트맵 영역을 식별하기 위해, 예시적인 분류 가속기(100)는 예시적인 컨볼루션 셀 선택기(112)를 호출하여 인코딩된 실루엣을 컨볼루션한다(블록(1008)). 도 11은 컨볼루션(convolving)(블록(1008))과 관련된 부가적인 세부 사항을 도시한다. 도 11의 도시된 예에서, 예시적인 컨볼루션 셀 선택기(112)는 예시적인 인코딩된 실루엣 행렬(500)로부터 제 1 셀을 선택한다(블록(1102)). 예시적인 윈도우 엔진(114)은 분석 윈도우를 선택된 제 1 셀에 적용한다(블록(1104)). 전술한 바와 같이, 분석 윈도우는 2×2 커널인, 도 5의 예시적인 동일 값 행렬(506)과 같은 동일 값 행렬 커널일 수 있다. 예시적인 윈도우 엔진(114)은, 제 1 선택된 셀(504A)에 대해 도 5의 도시된 예에서 임의의 전경 셀을 포함하지 않는, 적용된 행렬 내의 전경 셀의 개수를 카운팅한다(블록(1106)). 이와 같이, 예시적인 윈도우 엔진(114)은 이 예에서 0의 전체의 합을 계산한다. 예시적인 컨볼루션 셀 선택기(112)는 대응하는 셀 위치에서 도 6의 예시적인 컨볼루션된 비트맵 행렬(600)과 같은 컨볼루션된 비트맵 행렬에 이 합계 값을 기입한다(블록(1108)). 예시적인 컨볼루션 셀 선택기(112)가 예시적인 인코딩된 실루엣(500)에서 분석할 추가 셀이 있다고 결정하면(블록(1110)), 컨볼루션 셀 선택기는 다음 이용 가능한 셀로 시프팅 및/또는 이와는 달리, 진행하며(예를 들어, 우측으로 한 셀씩 진행하며, 다음 새로운 행으로 랩 어라운드하고, 좌측에서 우측으로 진행/선택을 계속하며), 제어는 블록(1102)으로 리턴된다. 한편, 예시적인 컨볼루션 셀 선택기(112)가 예시적인 인코딩된 실루엣(500)의 모든 셀들이 컨볼루션된 것으로 결정하면(블록(1110)), 예시적인 프로그램(블록(1108))은 종료하고 도 10의 블록(1010)으로 리턴한다.
예시적인 컨볼루션된 비트맵 행렬(600)을 생성하기 위해 도 5 및 도 6과 관련하여 상술한 바와 같이, 선택된 특정 커널 크기 및 중첩 스트라이드에 기초하여 제로(0)와 4 사이의 합산된 값이 발생되지만, 본 명세서에 개시된 예는 이에 제한되는 것은 아니다. 도 6의 예시적인 컨볼루션된 비트맵 행렬(600)은 HoG/SVM 분류 프로세스에 대한 후보인 셀을 도시하며, 여기서 제로(0) 값을 식별함으로써 모든 배경 셀이 고려 대상에서 제거된다. 그러나, 예시적인 필터 셀 선택기(116)는 HoG/SVM의 적용을 통해 분류에 기여해야 하는 셀의 선택을 더욱 좁히기 위해, 예시적인 컨볼루션된 비트맵 행렬(600)을 필터링하여 그 내부에 있는 후보 기여 블록을 식별한다(블록(1010)).
도 12는 블록(1010)의 컨볼루션과 관련된 부가적인 세부 사항을 도시한다. 도 12의 도시된 예에서, 예시적인 필터 셀 선택기(116)는 컨볼루션된 비트맵 행렬(600)로부터 셀을 선택한다(블록(1202)). 예시적인 필터 임계치 엔진(118)은 선택된 셀의 값을 임계치와 비교한다(블록(1204)). 이 예에서, 임계치는 4이고, 셀 값이 이 임계치 테스트를 충족하면, 예시적인 필터 셀 선택기(116)는 도 7의 예시적인 CB 행렬(700)과 같은 예시적인 기여 블록(CB) 행렬의 각 셀에 1의 셀 값을 기입한다(블록(1206)). 한편, 예시적인 필터 임계치 엔진(118)이 셀 값이 임계치 테스트를 충족시키지 못한다고 결정하면(예를 들어, 값이 4보다 작으면), 예시적인 필터 셀 선택기(116)는 0의 셀 값을 예시적인 CB 행렬의 각 셀에 기입한다(블록(1208)). 예시적인 필터 셀 선택기(116)는 예시적인 컨볼루션된 비트맵 행렬(600)이 임계치에 대해 테스트/분석할 추가 셀을 포함하는지 여부를 결정하고(블록(1210)), 분석할 셀이 존재하면, 예시적인 필터 셀 선택기(116)는 예시적인 컨볼루션된 비트맵 행렬(600) 내의 다음 이용 가능한 셀로 시프팅 및/또는 이와는 달리, 진행하고(블록(1212)), 제어는 블록(1202)으로 리턴된다. 그렇지 않으면, 블록(1010)의 예시적인 프로그램은 종료되고 제어는 도 10의 블록(1012)으로 리턴된다.
블록(1010)의 전술한 필터링의 결과로서, 예시적인 CB 행렬(700)은 HoG/SVM을 통한 분류를 가능하게 하기에 충분한 셀(적격의 전경 블록)만을 식별하도록 생성된다. 그러나, 내부 전경 셀의 일부는 분류 정확도를 희생시키지 않고 제거될 수 있다. 예시적인 경계 캡슐화기(120)는 1의 값을 갖는 셀의 외부 경계를 캡슐화 및/또는 이와는 달리, 식별하고(블록(1012)), 외부 경계의 일부가 아닌 임의의 다른 셀을 0의 값으로 덮어쓴다(블록 1014). 그 결과, 경계 캡슐화기(120)에 의해 적격의 블록 행렬(800)이 생성되어 HoG/SVM 분류 프로세스 동안 HoG 검출 윈도우를 제한, 안내 및/또는 이와는 달리, 마스크하여 분류를 위해 분석될 셀의 수를 감소시킨다.
도 13은 도 1의 예시적인 분류 가속기(100)를 구현하기 위해 도 9 내지 도 12의 명령어를 실행할 수 있는 예시적인 프로세서 플랫폼(1300)의 블록도이다. 프로세서 플랫폼(1300)은, 예를 들어, 서버, 퍼스널 컴퓨터, 모바일 디바이스(예를 들어, 셀 폰, 스마트 폰, iPadTM와 같은 태블릿), PDA, 인터넷 어플라이언스, DVD 플레이어, CD 플레이어, 디지털 비디오 레코더, 블루레이 플레이어, 게임 콘솔, 개인용 비디오 레코더, 셋탑박스, 임베디드 디바이스, 또는 임의의 다른 유형의 컴퓨팅 디바이스일 수 있다.
도시된 예의 프로세서 플랫폼(1300)은 프로세서(1312)를 포함한다. 도시된 예의 프로세서(1312)는 하드웨어이다. 예를 들어, 프로세서(1312)는 임의의 원하는 패밀리 또는 제조사로부터의 하나 이상의 집적 회로, 로직 회로, 마이크로프로세서 또는 제어기에 의해 구현될 수 있다. 하드웨어 프로세서는 반도체 기반(예를 들어, 실리콘 기반) 디바이스일 수 있다. 이 예에서, 프로세서(1312)는 예시적인 이미지 데이터 인터페이스 엔진(102), 예시적인 경계 비트맵 엔진(104), 예시적인 HoG/SVM 엔진(106) 및, 일부 예에서, 예시적인 SVM 자원(132)을 구현한다. 도 15의 도시된 예에서, 프로세서(1312)는 도 9 내지 도 12의 예시적인 명령어를 포함하는 예시적인 명령어(1332)을 통해 구성된 하나 이상의 예시적인 프로세싱 코어(1315)를 포함한다.
도시된 예의 프로세서(1312)는 로컬 메모리(1313)(예를 들어, 캐시)를 포함한다. 도시된 예의 프로세서(1312)는 버스(1318)를 통해 휘발성 메모리(1314) 및 비휘발성 메모리(1316)를 포함하는 메인 메모리와 통신한다. 휘발성 메모리(1314)는 동기식 동적 랜덤 액세스 메모리(SDRAM), 동적 랜덤 액세스 메모리(DRAM), RAMBUS 동적 랜덤 액세스 메모리(RDRAM) 및/또는 임의의 다른 유형의 랜덤 액세스 메모리 디바이스에 의해 구현될 수 있다. 비휘발성 메모리(1316)는 플래시 메모리 및/또는 임의의 다른 바람직한 유형의 메모리 디바이스에 의해 구현될 수 있다. 메인 메모리(1314, 1316)에 대한 액세스는 메모리 제어기에 의해 제어된다.
도시된 예의 프로세서 플랫폼(1300)은 또한 인터페이스 회로(1320)를 포함한다. 인터페이스 회로(1320)는 이더넷 인터페이스, 범용 직렬 버스(USB) 및/또는 PCI 익스프레스 인터페이스와 같은 임의의 유형의 인터페이스 표준에 의해 구현될 수 있다.
도시된 예에서, 하나 이상의 입력 디바이스(1322)는 인터페이스 회로(1320)에 연결된다. 입력 디바이스(들)(1322)는 사용자가 데이터 및/또는 커맨드를 프로세서(1312)에 입력하는 것을 가능하게 한다. 입력 디바이스(들)는, 예를 들어, 오디오 센서, 마이크로폰, 카메라(스틸 또는 비디오), 키보드, 버튼, 마우스, 터치 스크린, 트랙 패드, 트랙볼, 아이소포인트(isopoint) 및/또는 음성 인식 시스템에 의해 구현될 수 있다.
하나 이상의 출력 디바이스(1324)는 또한 도시된 예의 인터페이스 회로(1320)에 연결된다. 출력 디바이스(1324)는, 예를 들어, 디스플레이 디바이스(예를 들어, 발광 다이오드(LED), 유기 발광 다이오드(OLED), 액정 디스플레이, 음극선관 디스플레이(CRT), 터치 스크린, 촉각 출력 디바이스, 프린터 및/또는 스피커)에 의해 구현될 수 있다. 따라서, 도시된 예의 인터페이스 회로(1320)는 일반적으로 그래픽 드라이버 카드, 그래픽 드라이버 칩 및/또는 그래픽 드라이버 프로세서를 포함한다.
예시된 예의 인터페이스 회로(1320)는 또한 외부 머신(예를 들어, 임의의 종류의 컴퓨팅 디바이스)과 네트워크(1326)(예를 들어, 이더넷 연결, 디지털 가입자 회선(DSL), 전화 회선, 동축 케이블, 셀룰러 전화 시스템 등)를 통해 데이터의 교환을 가능하게 하기 위해 송신기, 수신기, 송수신기, 모뎀 및/또는 네트워크 인터페이스 카드와 같은 통신 디바이스를 포함한다.
도시된 예의 프로세서 플랫폼(1300)은 또한 소프트웨어 및/또는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스(1328)를 포함한다. 이러한 대용량 저장 디바이스(1328)의 예는 플로피 디스크 드라이브, 하드 드라이브 디스크, 컴팩트 디스크 드라이브, 블루레이 디스크 드라이브, RAID 시스템 및 DVD 드라이브를 포함한다.
도 9 내지 도 12의 코딩된 명령어(1332)는 대용량 저장 디바이스(1328), 휘발성 메모리(1314), 비휘발성 메모리(1316) 및/또는 CD 또는 DVD와 같은 착탈식 유형적인 컴퓨터 판독 가능 저장 매체에 저장될 수 있다.
본 명세서에 개시된 예는 링크를 통해 각각의 게이트웨이에 연결된 사물 인터넷(IoT) 네트워크에 적용될 수 있다. 사물 인터넷(IoT)은 다수의 컴퓨팅 디바이스가 서로 상호 연결되고 인터넷에 연결되어 매우 낮은 수준의 기능 및 데이터 수집을 제공하는 개념이다. 따라서, 본 명세서에 사용되는 바와 같이, IoT 디바이스는 무엇보다도, 다른 IoT 디바이스 및 인터넷과 같은 더 넓은 네트워크와 통신하면서, 감지, 이미지 분류(예를 들어, 스틸 이미지, 스트리밍 비디오, 등) 또는 제어와 같은 기능을 수행하는 반자율 디바이스를 포함할 수 있다.
종종, IoT 디바이스는 메모리, 크기 또는 기능이 제한되어 있으므로, 작은 수의 대형 디바이스와 유사한 비용으로 더 많은 수가 배치될 수 있게 한다. 그러나, IoT 디바이스는 스마트 폰, 랩탑, 태블릿 또는 PC, 또는 다른 대형 디바이스일 수 있다. 또한, IoT 디바이스는 스마트 폰, 임베디드 디바이스 또는 다른 컴퓨팅 디바이스 상의 애플리케이션과 같은 가상 디바이스일 수 있다. IoT 디바이스는 데이터 저장, 프로세스 제어 등을 위해, IoT 디바이스를 다른 IoT 디바이스 및 클라우드 애플리케이션과 연결하는 데 사용되는 IoT 게이트웨이를 포함할 수 있다.
IoT 디바이스의 네트워크는 물 분배 시스템, 전력 분배 시스템, 파이프라인 제어 시스템, 플랜트 제어 시스템, 조명 스위치, 온도 조절 장치, 자물쇠, 카메라, 알람, 모션 센서 등과 같은 상업 및 홈 오토메이션 디바이스를 포함할 수 있다. IoT 디바이스는, 예를 들어, 시스템 제어 또는 데이터 액세스를 위해 원격 컴퓨터, 서버 및 다른 시스템을 통해 액세스 가능할 수 있다.
인터넷 및 이와 유사한 네트워크의 미래 성장은 매우 많은 수의 IoT 디바이스와 관련될 수 있다. 따라서, 본 명세서에 설명된 기술의 맥락에서, 이러한 미래의 네트워킹을 위한 수많은 혁신은 이러한 모든 계층이 방해받지 않고 성장하고, 액세스 가능한 연결된 자원을 발견하고 만들며, 연결된 자원을 숨기고 구분하는 기능을 지원하기 위한 요구를 처리할 것이다. 임의의 개수의 네트워크 프로토콜과 통신 표준이 사용될 수 있으며 각 프로토콜과 표준은 특정 목표를 처리하도록 설계된다. 또한, 이 프로토콜은 위치, 시간 또는 공간에 관계없이 작동하는 사람 액세스 가능 서비스를 지원하는 패브릭의 일부이다. 이 혁신은 하드웨어 및 소프트웨어와 같은 서비스 전달 및 관련 기반 구조; 보안 강화; 및 서비스 수준 및 서비스 전달 계약에 명시된 서비스 품질(QoS) 조건에 기반한 서비스 제공을 구비한다.
백본 링크는 광 네트워크를 포함하여 임의의 개수의 유선 또는 무선 기술을 포함할 수 있으며, 근거리 통신망(LAN), 광역 네트워크(WAN) 또는 인터넷의 일부일 수 있다. 또한, 이러한 통신 링크는 다양한 디바이스의 상호 연결을 가능하게 하는 MUX/deMUX 컴포넌트의 사용을 포함하여, IoT 디바이스와 게이트웨이 사이의 광 신호 경로를 가능하게 한다.
네트워크 토폴로지는 BLE(Bluetooth Low Energy) 링크를 사용하는 네트워크와 함께 제공된 메쉬 네트워크와 같이, 임의의 수의 유형의 IoT 네트워크를 포함할 수 있다. 존재할 수 있는 다른 유형의 IoT 네트워크는 IEEE 802.11(Wi-Fi®) 링크를 통해 IoT 디바이스와 통신하는 데 사용되는 무선 근거리 통신망(WLAN) 네트워크, LTE/LTE-A(4G) 또는 5G 셀룰러 네트워크를 통해 IoT 디바이스와 통신하는 데 사용되는 셀룰러 네트워크, 및 저전력 광역(a low-power wide area: LPWA) 네트워크, 예를 들어, LoRa 동맹에 의해 공표된 LoRaWan 사양과 호환되는 LPWA 네트워크 또는 IETF(Internet Engineering Task Force)에서 공표한 사양과 호환되는 저전력 광역망(LPWAN) 네트워크를 통한 Ipv6를 포함한다. 또한, 각각의 IoT 네트워크는 LTE 셀룰러 링크, LPWA 링크, 또는 IEEE 802.15.4 표준(예를 들어, Zigbee®)에 기반한 링크와 같은 임의의 수의 통신 링크를 사용하여 외부 네트워크 제공자(예를 들어, 계층 2 또는 계층 3 제공자)와 통신할 수 있다. 각각의 IoT 네트워크는 또한 제한된 애플리케이션 프로토콜(Constrained Application Protocol: CoAP)과 같은 다양한 네트워크 및 인터넷 애플리케이션 프로토콜의 사용으로 동작할 수 있다. 각각의 IoT 네트워크는 또한 링크된 디바이스 및 네트워크의 클러스터 트리를 형성하는 링크 체인을 제공하는 조정자 디바이스(coordinator devices)와 통합될 수 있다.
이러한 각 IoT 네트워크는 본 명세서에 설명된 것과 같은 새로운 기술적 특징에 대한 기회를 제공할 수 있다. 개선된 기술 및 네트워크는 포그 디바이스(fog device) 또는 시스템으로의 IoT 네트워크 사용을 포함하여, 디바이스 및 네트워크의 기하급수적인 성장을 가능하게 할 수 있다. 이러한 개선된 기술의 사용이 증가함에 따라, IoT 네트워크는 직접적인 인간 개입 없이도 자가 관리, 기능 진화 및 협업을 위해 개발될 수 있다. 개선된 기술은 IoT 네트워크가 중앙 제어식 시스템 없이도 작동하게 할 수 있다. 따라서, 본 명세서에 기술된 개선된 기술은 현재의 구현을 훨씬 넘어서게 네트워크 관리 및 동작 기능을 자동화하고 향상시키는 데 사용될 수 있다.
일 예에서, 백본 링크를 통한 것과 같은 IoT 디바이스 간의 통신은 인증, 권한 부여 및 계정(AAA)을 위한 분산형 시스템에 의해 보호될 수 있다. 분산형 AAA 시스템에서, 분산형 지불, 신용, 감사, 권한 부여 및 인증 시스템은 상호 연결된 이종 네트워크 기반 구조에 걸쳐 구현될 수 있다. 이를 통해 시스템과 네트워크는 자율적인 동작으로 이동할 수 있다. 이러한 유형의 자율적인 동작에서, 머신은 인적 자원에 대해 계약을 체결하고 다른 머신 네트워크와의 파트너 관계를 협상할 수도 있다. 이는 계량, 측정, 트레이서빌리티(traceability) 및 트레커빌리티(trackability)를 제공하는 솔루션을 달성할 뿐만 아니라, 개략 계획된 서비스 수준 계약에 대한 상호 목표 및 균형 잡힌 서비스 전달을 가능하게 한다. 새로운 공급 체인 구조 및 방법의 창작은 인간의 개입없이 수많은 서비스를 창출하고, 가치를 창출하고, 붕괴시킬 수 있다.
이러한 IoT 네트워크는 소리, 광, 전자 트래픽, 얼굴 및 패턴 인식, 이미지 분류, 냄새, 진동과 같은 감지 기술을 IoT 디바이스 간의 자율식 구성에 통합함으로써 더욱 강화될 수 있다. 감지 시스템의 통합은 계약 서비스 목표, 통합 및 QoS 기반의 자원 군집 및 융합에 대한 서비스 전달의 체계적이고 자율적인 통신 및 조정을 가능하게 할 수 있다.
IoT 디바이스의 클러스터는 클라우드 네트워크뿐만 아니라 다른 IoT 디바이스와 통신하도록 장착될 수 있다. 이는 IoT 디바이스가 디바이스 간의 애드혹 네트워크(ad-hoc network)를 형성하여, 포그 디바이스로 지칭될 수 있는 단일 디바이스로 기능하게 할 수 있다.
IoT 디바이스의 메쉬 네트워크와 통신하는 클라우드 컴퓨팅 네트워크는 클라우드 컴퓨팅 네트워크의 에지에서 포그 디바이스로서 동작할 수 있다. IoT 디바이스의 메쉬 네트워크는 클라우드의 에지에서 동작하는 포그로 지칭될 수 있다.
포그는 다수의 IoT 디바이스가, 예를 들어, 무선 링크에 의해 서로 통신하는 대량으로 상호 연결된 네트워크인 것으로 간주될 수 있다. 일 예로서, 상호 연결된 네트워크는 OCF(Open Connectivity Foundation™)에서 발표한 상호 연결 사양을 사용하여 구현될 수 있다. 이 표준을 통해 디바이스는 서로를 발견하고 상호 연결을 위한 통신을 수립할 수가 있다. 무엇보다도, 예를 들어, OLSR(Optimized Link State Routing) 프로토콜, B.A.T.M.A.N.(Better Approach To Mobile Ad-hoc Networking) 라우팅 프로토콜, 또는 OMA LWM2M(Lightweight M2M) 프로토콜을 구비한 다른 상호 연결 프로토콜이 또한 사용될 수 있다.
IoT 디바이스의 세 가지 유형은 게이트웨이, 데이터 집계기 및 센서를 포함하지만, IoT 디바이스 및 기능의 모든 조합이 사용될 수 있다. 게이트웨이는 클라우드와 포그 간의 통신을 제공하는 에지 디바이스(edge devices)일 수 있으며, 모션 데이터, 흐름 데이터, 온도 데이터 등과 같은 센서로부터 얻은 데이터에 대해 백엔드 프로세스 기능을 제공할 수 있다. 데이터 집계기는 임의의 수의 센서에서 데이터를 수집하고, 분석을 위해 백엔드 프로세스 기능을 수행할 수 있다. 그 결과, 원시 데이터 또는 이들 모두는 게이트웨이를 통해 클라우드로 전달될 수 있다. 센서는, 예를 들어, 데이터를 수집하고 데이터를 프로세싱할 수 있는 완전한 IoT 디바이스일 수 있다. 일부의 경우에, 센서는, 예를 들어, 데이터를 수집하고 데이터 집계기 또는 게이트웨이가 데이터를 프로세싱할 수 있게 하는 기능이 많이 제한될 수 있다.
임의의 IoT 디바이스로부터의 통신은 임의의 IoT 디바이스 간의 편리한 경로(예를 들어, 가장 편리한 경로)를 따라 게이트웨이에 도달할 수 있다. 이러한 네트워크에서, 상호 연결의 수는 상당한 중복성을 제공하므로, 많은 IoT 디바이스가 손실된 경우에도 통신을 유지할 수 있다. 또한, 다른 IoT 디바이스에 연결하는 범위가 게이트웨이에 연결하는 범위보다 훨씬 작을 수 있기 때문에, 메쉬 네트워크의 사용은 매우 저전력이거나 기반 구조로부터의 소정의 거리에 위치하는 IoT 디바이스가 사용될 수 있게 한다.
이러한 IoT 디바이스에서 제공되는 포그는 클라우드의 에지에 있는 단일 디바이스, 예를 들어, 포그 디바이스로서, 서버와 같은, 클라우드 내의 디바이스에 제시될 수 있다. 이 예에서, 포그 디바이스로부터 나오는 경고는 포그 내의 특정 IoT 디바이스로부터 오는 것으로 식별되지 않고 전송될 수 있다. 이러한 방식으로, 포그는 무엇보다도, 데이터 분석, 데이터 집계 및 머신 학습과 같은 프로세싱 또는 데이터 집약적인 작업을 수행하기 위한 컴퓨팅 및 저장 자원을 제공하는 분산형 플랫폼으로 간주될 수 있다.
일부 예에서, IoT 디바이스는 명령형 프로그래밍 스타일(imperative programming style)을 사용하여, 예를 들어, 각각의 IoT 디바이스가 특정 기능 및 통신 파트너를 갖는 구성으로 구성될 수 있다. 그러나, 포그 디바이스를 형성하는 IoT 디바이스는 선언적 프로그래밍 스타일(declarative programming style)로 구성될 수 있어, IoT 디바이스가 조건, 쿼리 및 디바이스 고장에 응답하여 필요한 자원을 결정하는 등의 동작 및 통신을 재구성할 수 있게 한다. 일 예로서, IoT 디바이스에 의해 감시되는 장비의 서브세트의 동작에 관한 서버에 위치한 사용자로부터의 쿼리는 포그 디바이스가 쿼리에 응답하는 데 필요한 특정 센서와 같은 IoT 디바이스를 선택하게 할 수 있다. 이러한 센서로부터의 데이터는 포그 디바이스에 의해 쿼리에 응답하는 서버에 전송되기 전에, 센서, 데이터 집계기 또는 게이트웨이의 임의의 조합에 의해 집계되고 분석될 수 있다. 이 예에서, 포그 내의 IoT 디바이스는 유량 센서 또는 온도 센서로부터 데이터를 추가하는 것과 같이, 쿼리를 기반으로 사용되는 센서를 선택할 수 있다. 또한, IoT 디바이스 중 일부가 동작하지 않는다면, 포그 디바이스 내의 다른 IoT 디바이스는, 이용 가능한 경우, 유사한 데이터를 제공할 수 있다.
전술한 바에 따라, 이미지 분류 노력을 향상시키는 예시적인 방법, 장치, 시스템 및 제품이 개시되었음이 이해될 것이다. HoG/SVM 분류 프로세스의 전통적인 접근 방식은 이미지 분류 및 인식 노력에 상당한 개선을 가져 왔다. 그러나, 이러한 전통적인 접근 방식은 프로세싱 디바이스에 계산 부하를 부과한다. 이러한 부하는, 특히, 데스크탑 플랫폼 및 서버의 상대적으로 풍부한 메모리, 대역폭 및/또는 전원 가용성을 누리지 못하는 임베디드 디바이스에 대해서는 너무 엄격할 수 있다. 전통적인 HoG/SVM 분류 프로세스는 테스트 이미지에 대해 HoG 윈도우를 반복적으로 스테핑하여 검출을 수행하기 때문에, 테스트 이미지 크기, 해상도 및 스케일 조정이 증가함에 따라 해당 계산 비용이 증가하게 된다.
이와 같이, 본 명세서에 개시된 예는 객체 검출을 필요로 하는 이미지의 배경 셀 및 전경 셀 모두를 제거함으로써 계산상의 부하를 감소시킨다. 일부 예에서, 비트맵은 HoG 검출 윈도우에 적용되어, 테스트 이미지 내의 객체의 성공적인 분류에 필요한 내부 셀만을 공급하도록 상기 HoG 검출 윈도우를 마스킹 및/또는 이와는 달리, 조정한다. 이러한 HoG/SVM 분류 프로세스의 입력의 감소는 분석될 이미지 픽셀/셀/블록 수의 대응하는 감소, 계산될 HoG 셀 디스크립터의 수의 감소, 생성될 블록 디스크립터의 수의 감소, 블록 디스크립터에 대해 수행될 정규화 계산의 양의 감소, SVM에 공급될 집계된/완전한 HoG 디스크립터의 수의 감소를 야기한다.
경계 비트맵을 이용하여 이미지 분류를 개선하기 위한 예시적인 방법, 시스템 및 장치가 본 명세서에 개시되고 있다. 그러한 일부의 예 및 이의 조합은 다음을 포함한다.
예 1은 이미지를 분석하는 장치이며, 이 장치는, 이미지 내의 전경 실루엣을 식별하고, 전경 실루엣의 경계에 기초하여 경계 박스를 생성하며, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 실루엣 엔진과, 상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 컨볼루션 셀 선택기와, 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하기 위한 필터 셀 선택기를 포함한다.
예 2는 예 1에서 정의된 바와 같은 장치를 포함하며, 상기 필터 셀 선택기는 유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 기여 블록 행렬을 생성하는 것이다.
예 3은 예 2에 정의된 바와 같은 장치를 포함하며, 이 장치는 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하는 경계 캡슐화기를 더 포함한다.
예 4는 예 3에 정의된 바와 같은 장치를 포함하며, 이 장치는 검출 윈도우를 적격의 블록 행렬로 마스킹하기 위한 분류 인터페이스를 더 포함하고, 상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시킨다.
예 5는 예 1에 정의된 바와 같은 장치를 포함하며, 이 장치는 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기의 히스토그램에 제공하기 위한 분류 인터페이스를 더 포함한다.
예 6은 예 1에 정의된 바와 같은 장치를 포함하고, 이 장치는 동일 값 행렬 커널을 인코딩된 실루엣의 각각의 셀에 컨볼루션하고, 인코딩된 실루엣의 각각의 셀에 대한 상기 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하는 윈도우 엔진을 더 포함한다.
예 7은 예 6에 정의된 장치를 포함하며, 상기 컨볼루션 셀 선택기는 컨볼루션된 비트맵 행렬의 각각의 셀에서의 전체 합으로 컨볼루션된 비트맵 행렬을 인코딩하는 것이다.
예 8은 예 1에 정의된 바와 같은 장치를 포함하며, 셀 유지 임계치는 행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초한 값을 포함한다.
예 9는 예 2, 5, 6 또는 8 중 어느 하나에 정의된 바와 같은 장치를 포함하며, 이 장치는 이미지의 방향각을 할당하여 이미지 크기의 히스토그램을 형성하는 빈 관리 엔진을 더 포함한다.
예 10은 예 2, 5, 6 또는 8 중 어느 하나에 정의된 바와 같은 장치를 포함하며, 이 장치는 이미지의 각각의 블록에 이미지 셀의 히스토그램을 집계하는 셀 디스크립터 엔진을 더 포함한다.
예 11은 예 2, 5, 6 또는 8 중 어느 하나에 정의된 바와 같은 장치를 포함하며, 이 장치는 이미지의 경계 비트맵 영역을 식별하기 위한 경계 캡슐화기를 더 포함하고, 경계 비트맵 영역은 이미지 분류에 참여하는 감소된 수의 이미지 셀을 나타낸다.
예 12는 이미지를 분석하는 방법이며, 이 방법은, 프로세서를 사용하여 명령어를 실행함으로써, 이미지 내의 전경 실루엣을 식별하는 단계와, 상기 프로세서를 사용하여 명령어를 실행함으로써, 전경 실루엣의 경계에 기초하여 경계 박스를 생성하는 단계와, 상기 프로세서를 사용하여 명령어를 실행함으로써, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 단계와, 상기 프로세서를 사용하여 명령어를 실행함으로써, 상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 단계와, 상기 프로세서를 사용하여 명령어를 실행함으로써, (a) 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, (b) 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하는 단계를 포함한다.
예 13은 예 12에서 정의된 바와 같은 방법을 포함하며, 이 방법은, 유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 기여 블록 행렬을 생성하는 단계를 더 포함한다.
예 14는 예 13에 정의된 바와 같은 방법을 포함하며, 이 방법은 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하는 단계를 더 포함한다.
예 15는 예 14에 정의된 바와 같은 방법을 포함하며, 이 방법은 검출 윈도우를 적격의 블록 행렬로 마스킹하는 단계를 더 포함하며, 상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시킨다.
예 16은 예 12에 정의된 바와 같은 방법을 포함하며, 이 방법은 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기의 히스토그램에 제공하는 단계를 더 포함한다.
예 17은 예 12에 정의된 바와 같은 방법을 포함하고, 이 방법은 동일 값 행렬 커널을 인코딩된 실루엣의 각각의 셀에 컨볼루션하는 단계와, 인코딩된 실루엣의 각각의 셀에 대한 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하는 단계를 더 포함한다.
예 18은 예 17에 정의된 방법을 포함하며, 이 방법은, 컨볼루션된 비트맵 행렬의 각각의 셀에서의 전체 합으로 컨볼루션된 비트맵 행렬을 인코딩하는 단계를 더 포함한다.
예 19는 예 12에 정의된 바와 같은 방법을 포함하며, 이 방법은, 행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초하여 셀 유지 임계치의 값을 설정하는 단계를 더 포함한다.
예 20은 예 13, 16, 17 또는 19 중 어느 하나에 정의된 바와 같은 방법을 포함하며, 이 방법은, 이미지의 방향각을 할당하여 이미지 크기의 히스토그램을 형성하는 단계를 더 포함한다.
예 21은 예 13, 16, 17 또는 19 중 어느 하나에 정의된 바와 같은 방법을 포함하며, 이 방법은 이미지 각각의 블록에 이미지 셀의 히스토그램을 집계하는 단계를 더 포함한다.
예 22는 예 13, 16, 17 또는 19 중 어느 하나에 정의된 바와 같은 방법을 포함하며, 이 방법은 이미지의 경계 비트맵 영역을 식별하는 단계를 더 포함하며, 상기 경계 비트맵 영역은 이미지 분류에 참여하는 감소된 수의 이미지 셀을 나타낸다.
예 23은 명령어를 포함하는 유형적인 컴퓨터 판독 가능 매체로서, 명령어는, 실행 시, 프로세서로 하여금 적어도, 이미지 내의 전경 실루엣을 식별하게 하고, 전경 실루엣의 경계에 기초하여 경계 박스를 생성하게 하고, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하게 하고, 상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하게 하고, (a) 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, (b) 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하게 한다.
예 24는 예 23에서 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 기여 블록 행렬을 생성하게 한다.
예 25는 예 24에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하게 한다.
예 26은 예 25에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 검출 윈도우를 적격의 블록 행렬로 마스킹하게 하며, 상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시킨다.
예 27은 예 23에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기의 히스토그램에 제공하게 한다.
예 28은 예 23에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 동일 값 행렬 커널을 인코딩된 실루엣의 각각의 셀에 컨볼루션하게 하고, 인코딩된 실루엣의 각각의 셀에 대한 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하게 한다.
예 29는 예 28에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 컨볼루션된 비트맵 행렬의 각각의 셀에서의 전체 합으로 컨볼루션된 비트맵 행렬을 인코딩하게 한다.
예 30은 예 23에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초하여 셀 유지 임계치의 값을 설정하게 한다.
예 31은 예 24, 27, 28 또는 30 중 어느 하나에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 이미지의 방향각을 할당하여 이미지 크기의 히스토그램을 형성하게 한다.
예 32은 예 24, 27, 28 또는 30 중 어느 하나에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 이미지의 각각의 블록에 이미지 셀의 히스토그램을 집계하게 한다.
예 33은 예 24, 27, 28 또는 30 중 어느 하나에 정의된 바와 같은 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 이미지의 경계 비트맵 영역을 식별하게 하며, 상기 경계 비트맵 영역은 이미지 분류에 참여하는 감소된 수의 이미지 셀을 나타낸다.
예 34는 이미지를 분석하는 시스템이며, 이 시스템은, 이미지 내의 전경 실루엣을 식별하는 수단과, 전경 실루엣의 경계에 기초하여 경계 박스를 생성하는 수단과, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 수단과, 상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 수단과, (a) 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, (b) 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하기 위한 수단을 포함한다.
예 35는 예 34에서 정의된 바와 같은 시스템을 포함하며, 이 시스템은, 유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 기여 블록 행렬을 생성하는 수단을 더 포함한다.
예 36은 예 35에 정의된 바와 같은 시스템을 포함하며, 이 시스템은 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하는 수단을 더 포함한다.
예 37은 예 36에 정의된 바와 같은 시스템을 포함하며, 이 시스템은 검출 윈도우를 적격의 블록 행렬로 마스킹하는 수단을 더 포함하며, 상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시킨다.
예 38은 예 34에 정의된 바와 같은 시스템을 포함하며, 이 시스템은 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기의 히스토그램에 제공하는 수단을 더 포함한다.
예 39는 예 34에 정의된 바와 같은 시스템을 포함하고, 이 시스템은 동일 값 행렬 커널을 인코딩된 실루엣의 각각의 셀에 컨볼루션하는 수단과, 인코딩된 실루엣의 각각의 셀에 대한 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하는 수단을 더 포함한다.
예 40은 예 39에 정의된 시스템을 포함하며, 이 시스템은, 컨볼루션된 비트맵 행렬 각각의 셀에서의 전체 합으로 컨볼루션된 비트맵 행렬을 인코딩하는 수단을 더 포함한다.
예 41은 예 34에 정의된 바와 같은 시스템을 포함하며, 이 시스템은, 행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초하여 셀 유지 임계치의 값을 설정하는 수단을 더 포함한다.
예 42는 예 35, 38, 39 또는 41 중 어느 하나에 정의된 바와 같은 시스템을 포함하며, 이 시스템은, 이미지의 방향각을 할당하여 이미지 크기의 히스토그램을 형성하는 수단을 더 포함한다.
예 43은 예 35, 38, 39 또는 41 중 어느 하나에 정의된 바와 같은 시스템을 포함하며, 이 시스템은 이미지 각각의 블록에 이미지 셀의 히스토그램을 집계하는 수단을 더 포함한다.
예 44는 예 35, 38, 39 또는 41 중 어느 하나에 정의된 바와 같은 시스템을 포함하며, 이 시스템은 이미지의 경계 비트맵 영역을 식별하는 수단을 더 포함하며, 상기 경계 비트맵 영역은 이미지 분류에 참여하는 감소된 수의 이미지 셀을 나타낸다.
예 45는 예 34에 정의된 바와 같은 시스템을 포함하며, 전경 실루엣을 식별하는 수단은 실루엣 엔진을 포함한다.
예 46은 예 34에 정의된 바와 같은 시스템을 포함하며, 경계 박스를 생성하는 수단은 실루엣 엔진을 포함한다.
예 47은 예 34에 정의된 바와 같은 시스템을 포함하며, 인코딩된 실루엣 행렬을 생성하는 수단은 실루엣 엔진을 포함한다.
예 48은 예 34에 정의된 바와 같은 시스템을 포함하며, 인코딩된 실루엣 행렬을 컨볼루션하는 수단은 컨볼루션 셀 선택기를 포함한다.
예 49는 예 34에 정의된 바와 같은 시스템을 포함하며, 적격의 블록을 식별함으로써, 이미지 분류 효율을 개선하기 위한 수단은 필터 셀 선택기를 포함한다.
소정의 예시적인 방법, 장치 및 제품이 본 명세서에 개시되었지만, 이 특허의 적용 범위는 이에 제한되지 않는다. 반대로, 이 특허는 이 특허의 청구범위의 영역 내에 있는 모든 방법, 장치 및 제품을 포괄한다.

Claims (35)

  1. 이미지를 분석하는 장치로서,
    상기 이미지 내의 전경 실루엣(foreground silhouette)을 식별하고, 상기 전경 실루엣의 경계 라인에 기초하여 경계 박스를 생성하며, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 실루엣 엔진과,
    상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 컨볼루션 셀 선택기와,
    상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하는 필터 셀 선택기를 포함하는
    이미지 분석 장치.
  2. 제 1 항에 있어서,
    상기 필터 셀 선택기는 유지 표시자를 사용하여 기여 블록 행렬(contributed blocks matrix)의 각각의 제 1 셀을 인코딩하고, 폐기 표시자(discard indicator)를 사용하여 상기 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 상기 기여 블록 행렬을 생성하는
    이미지 분석 장치.
  3. 제 2 항에 있어서,
    상기 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하는 경계 캡슐화기를 더 포함하는
    이미지 분석 장치.
  4. 제 3 항에 있어서,
    검출 윈도우를 상기 적격의 블록 행렬로 마스킹하는 분류 인터페이스를 더 포함하되,
    상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시키는
    이미지 분석 장치.
  5. 제 1 항에 있어서,
    상기 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기(oriented gradients classifier)의 히스토그램에 제공하는 분류 인터페이스를 더 포함하는
    이미지 분석 장치.
  6. 제 1 항에 있어서,
    동일 값 행렬 커널(ones matrix kernel)을 상기 인코딩된 실루엣 행렬의 각각의 셀에 컨볼루션하고, 상기 인코딩된 실루엣 행렬의 각각의 셀에 대한 상기 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하는 윈도우 엔진을 더 포함하는
    이미지 분석 장치.
  7. 제 6 항에 있어서,
    상기 컨볼루션 셀 선택기는 상기 컨볼루션된 비트맵 행렬의 각각의 셀에서의 전체 합으로 상기 컨볼루션된 비트맵 행렬을 인코딩하는
    이미지 분석 장치.
  8. 제 1 항에 있어서,
    상기 셀 유지 임계치는 행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초한 값을 포함하는
    이미지 분석 장치.
  9. 제 2 항, 제 5 항, 제 6 항 또는 제 8 항 중 어느 한 항에 있어서,
    상기 이미지의 방향각을 할당하여 이미지 크기의 히스토그램을 형성하는 빈 관리 엔진(bin management engine)을 더 포함하는
    이미지 분석 장치.
  10. 제 2 항, 제 5 항, 제 6 항 또는 제 8 항 중 어느 한 항에 있어서,
    상기 이미지의 각각의 블록에 이미지 셀의 히스토그램을 집계하는 셀 디스크립터 엔진을 더 포함하는
    이미지 분석 장치.
  11. 제 2 항, 제 5 항, 제 6 항 또는 제 8 항 중 어느 한 항에 있어서,
    상기 이미지의 경계 비트맵 영역을 식별하는 경계 캡슐화기를 더 포함하되,
    상기 경계 비트맵 영역은 이미지 분류에 참여하는 감소된 수의 이미지 셀을 나타내는
    이미지 분석 장치.
  12. 이미지를 분석하는 방법으로서,
    프로세서를 사용하여 명령어를 실행함으로써, 상기 이미지 내의 전경 실루엣을 식별하는 단계와,
    상기 프로세서를 사용하여 명령어를 실행함으로써, 상기 전경 실루엣의 경계 라인에 기초하여 경계 박스를 생성하는 단계와,
    상기 프로세서를 사용하여 명령어를 실행함으로써, 전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 단계와,
    상기 프로세서를 사용하여 명령어를 실행함으로써, 상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 단계와,
    상기 프로세서를 사용하여 명령어를 실행함으로써, (a) 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, (b) 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하는 단계를 포함하는
    이미지 분석 방법.
  13. 제 12 항에 있어서,
    유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 상기 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 상기 기여 블록 행렬을 생성하는 단계를 더 포함하는
    이미지 분석 방법.
  14. 제 13 항에 있어서,
    상기 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하는 단계를 더 포함하는
    이미지 분석 방법.
  15. 제 14 항에 있어서,
    검출 윈도우를 상기 적격의 블록 행렬로 마스킹하는 단계를 더 포함하되,
    상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시키는
    이미지 분석 방법.
  16. 제 12 항에 있어서,
    상기 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기의 히스토그램에 제공하는 단계를 더 포함하는
    이미지 분석 방법.
  17. 제 12 항에 있어서,
    동일 값 행렬 커널을 상기 인코딩된 실루엣 행렬의 각각의 셀에 컨볼루션하는 단계와,
    상기 인코딩된 실루엣 행렬의 각각의 셀에 대한 상기 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하는 단계를 더 포함하는
    이미지 분석 방법.
  18. 제 17 항에 있어서,
    상기 컨볼루션된 비트맵 행렬의 각각의 셀에서의 전체 합으로 상기 컨볼루션된 비트맵 행렬을 인코딩하는 단계를 더 포함하는
    이미지 분석 방법.
  19. 제 12 항에 있어서,
    행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초하여 상기 셀 유지 임계치의 값을 설정하는 단계를 더 포함하는
    이미지 분석 방법.
  20. 제 13 항, 제 16 항, 제 17 항 또는 제 19 항 중 어느 한 항에 있어서,
    상기 이미지의 방향각을 할당하여 이미지 크기의 히스토그램을 형성하는 단계를 더 포함하는
    이미지 분석 방법.
  21. 제 13 항, 제 16 항, 제 17 항 또는 제 19 항 중 어느 한 항에 있어서,
    상기 이미지의 각각의 블록에 이미지 셀의 히스토그램을 집계하는 단계를 더 포함하는
    이미지 분석 방법.
  22. 제 13 항, 제 16 항, 제 17 항 또는 제 19 항 중 어느 한 항에 있어서,
    상기 이미지의 경계 비트맵 영역을 식별하는 단계를 더 포함하되,
    상기 경계 비트맵 영역은 이미지 분류에 참여하는 감소된 수의 이미지 셀을 나타내는
    이미지 분석 방법.
  23. 명령어를 포함하는 유형의 컴퓨터 판독 가능 매체로서,
    상기 명령어는, 실행 시, 프로세서로 하여금 적어도,
    이미지 내의 전경 실루엣을 식별하게 하고,
    상기 전경 실루엣의 경계 라인에 기초하여 경계 박스를 생성하게 하고,
    전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하게 하고,
    상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하게 하고,
    (a) 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, (b) 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하게 하는
    컴퓨터 판독 가능 매체.
  24. 제 23 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 상기 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 상기 기여 블록 행렬을 생성하게 하는
    컴퓨터 판독 가능 매체.
  25. 제 24 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 상기 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하게 하는
    컴퓨터 판독 가능 매체.
  26. 제 25 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 검출 윈도우를 상기 적격의 블록 행렬로 마스킹하게 하며, 상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시키는
    컴퓨터 판독 가능 매체.
  27. 제 23 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 상기 컨볼루션된 비트맵 행렬의 유지된 각각의 제 1 셀을 지향성 그래디언트 분류기의 히스토그램에 제공하게 하는
    컴퓨터 판독 가능 매체.
  28. 제 23 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한,
    동일 값 행렬 커널을 상기 인코딩된 실루엣 행렬의 각각의 셀에 컨볼루션하게 하고,
    상기 인코딩된 실루엣 행렬의 각각의 셀에 대한 상기 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하게 하는
    컴퓨터 판독 가능 매체.
  29. 제 28 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 상기 컨볼루션된 비트맵 행렬의 각각의 셀에서의 전체 합으로 상기 컨볼루션된 비트맵 행렬을 인코딩하게 하는
    컴퓨터 판독 가능 매체.
  30. 제 23 항에 있어서,
    상기 명령어는, 실행 시, 상기 프로세서로 하여금 또한, 행렬 커널 크기 또는 중첩 스텝 크기 중 적어도 하나에 기초하여 상기 셀 유지 임계치의 값을 설정하게 하는
    컴퓨터 판독 가능 매체.
  31. 이미지를 분석하는 시스템으로서,
    상기 이미지 내의 전경 실루엣을 식별하는 수단과,
    상기 전경 실루엣의 경계 라인에 기초하여 경계 박스를 생성하는 수단과,
    전경 셀 및 배경 셀을 식별하는 인코딩된 실루엣 행렬을 생성하는 수단과,
    상기 인코딩된 실루엣 행렬을 컨볼루션하여 컨볼루션된 비트맵 행렬을 생성하는 수단과,
    (a) 상기 컨볼루션된 비트맵 행렬 중 셀 유지 임계치를 충족시키는 각각의 제 1 셀을 유지하고, (b) 상기 컨볼루션된 비트맵 행렬 중 상기 셀 유지 임계치를 충족시키지 않는 각각의 제 2 셀을 제거함으로써, 상기 컨볼루션된 비트맵 행렬의 적격의 블록을 식별하여, 이미지 분류 효율을 개선하는 수단을 포함하는
    이미지 분석 시스템.
  32. 제 31 항에 있어서,
    유지 표시자를 사용하여 기여 블록 행렬의 각각의 제 1 셀을 인코딩하고, 폐기 표시자를 사용하여 상기 기여 블록 행렬의 각각의 제 2 셀을 인코딩함으로써, 상기 기여 블록 행렬을 생성하는 수단을 더 포함하는
    이미지 분석 시스템.
  33. 제 32 항에 있어서,
    상기 유지 표시자의 제각기의 외부 둘레를 식별하여 적격의 블록 행렬을 생성하는 수단을 더 포함하는
    이미지 분석 시스템.
  34. 제 33 항에 있어서,
    검출 윈도우를 상기 적격의 블록 행렬로 마스킹하는 수단을 더 포함하되,
    상기 마스킹은 이미지 분류에서 프로세싱될 블록의 수를 감소시키는
    이미지 분석 시스템.
  35. 제 31 항에 있어서,
    동일 값 행렬 커널을 상기 인코딩된 실루엣 행렬의 각각의 셀에 컨볼루션하는 수단과,
    상기 인코딩된 실루엣 행렬의 각각의 셀에 대한 상기 동일 값 행렬 커널 내의 전경 셀의 전체의 합을 계산하는 수단을 더 포함하는
    이미지 분석 시스템.
KR1020197000304A 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법 KR102210693B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217002708A KR102381994B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662346065P 2016-06-06 2016-06-06
US62/346,065 2016-06-06
PCT/US2017/036174 WO2017214164A1 (en) 2016-06-06 2017-06-06 Improvement of image classification using boundary-bitmaps

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217002708A Division KR102381994B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법

Publications (2)

Publication Number Publication Date
KR20190096925A KR20190096925A (ko) 2019-08-20
KR102210693B1 true KR102210693B1 (ko) 2021-02-03

Family

ID=59153287

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020197000304A KR102210693B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법
KR1020217002708A KR102381994B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법
KR1020227010501A KR102511381B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020217002708A KR102381994B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법
KR1020227010501A KR102511381B1 (ko) 2016-06-06 2017-06-06 경계 비트맵을 이용하는 이미지 분류 개선 기법

Country Status (5)

Country Link
US (2) US10936899B2 (ko)
EP (1) EP3465544A1 (ko)
KR (3) KR102210693B1 (ko)
CN (1) CN109661671B (ko)
WO (1) WO2017214164A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11509644B2 (en) * 2017-07-05 2022-11-22 Intel Corporation Establishing connections between IOT devices using authentication tokens
US11847558B2 (en) * 2018-05-04 2023-12-19 EMC IP Holding Company LLC Analyzing storage systems using machine learning systems
US11416661B2 (en) * 2019-08-07 2022-08-16 Synopsys, Inc. Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow
CN112292689A (zh) * 2019-12-23 2021-01-29 商汤国际私人有限公司 样本图像的获取方法、装置和电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268967A (en) * 1992-06-29 1993-12-07 Eastman Kodak Company Method for automatic foreground and background detection in digital radiographic images
EP0999522B1 (en) 1998-11-06 2008-04-09 Canon Kabushiki Kaisha Image processing method, system and apparatus, and storage medium
US6771836B2 (en) * 2001-06-21 2004-08-03 Microsoft Corporation Zero-crossing region filtering for processing scanned documents
US8358806B2 (en) 2007-08-02 2013-01-22 Siemens Corporation Fast crowd segmentation using shape indexing
US8760453B2 (en) * 2010-09-01 2014-06-24 Microsoft Corporation Adaptive grid generation for improved caching and image classification
US8503801B2 (en) * 2010-09-21 2013-08-06 Adobe Systems Incorporated System and method for classifying the blur state of digital image pixels
CN103400172B (zh) 2011-07-19 2016-09-28 北京中科联众科技股份有限公司 点位图制作方法及用该方法制作的点位图
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US9639777B1 (en) 2015-12-17 2017-05-02 Linear Algebra Technologies Limited Systems and methods for providing an image classifier
US10366469B2 (en) * 2016-06-28 2019-07-30 Abbyy Production Llc Method and system that efficiently prepares text images for optical-character recognition

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DALAL N et al., "Histograms of oriented gradients for human detection", 2005 IEEE computer society conference on computer vision and pattern recognition, 25 June 2005
STELLA ATKINS et al., "Fully Automatic Segmentation of the Brain in MRI" IEEE Transactions on medical imagins, IEEE service center, piscataway, NJ, US, vol. 17, no.1, Feb. 1998

Also Published As

Publication number Publication date
KR20210013659A (ko) 2021-02-04
KR20220045996A (ko) 2022-04-13
KR20190096925A (ko) 2019-08-20
US10936899B2 (en) 2021-03-02
WO2017214164A1 (en) 2017-12-14
KR102511381B1 (ko) 2023-03-16
CN109661671B (zh) 2023-10-10
US20210182595A1 (en) 2021-06-17
CN109661671A (zh) 2019-04-19
US20190156141A1 (en) 2019-05-23
EP3465544A1 (en) 2019-04-10
KR102381994B1 (ko) 2022-04-04

Similar Documents

Publication Publication Date Title
US11449345B2 (en) Methods, systems and apparatus for adjusting a data path element of a neural network accelerator from convolution mode to pooling mode
US11593987B2 (en) Dynamic culling of matrix operations
US20210182595A1 (en) Methods, systems and apparatus to improve image classification with boundary-bitmaps
WO2022166400A1 (zh) 一种处理三维点云的方法、装置、设备以及存储介质
US11954879B2 (en) Methods, systems and apparatus to optimize pipeline execution
US11270441B2 (en) Depth-aware object counting
EP3797386A2 (en) Deep learning system
US9053540B2 (en) Stereo matching by census transform and support weight cost aggregation
CN105144710A (zh) 用于增加深度相机图像的精度的技术
WO2019079358A1 (en) HASHING DENSITY COORDINATES FOR VOLUMETRIC DATA
CN110610143B (zh) 多任务联合训练的人群计数网络方法、系统、介质及终端
CN112926461B (zh) 神经网络训练、行驶控制方法及装置
CN103999097B (zh) 用于视觉搜索的紧致描述符的系统和方法
CN113139540A (zh) 背板检测方法及设备
KR102269408B1 (ko) 공간 태그된 사진들의 컨텐츠에 기반한 클러스터링 방법 및 장치
US20230237700A1 (en) Simultaneous localization and mapping using depth modeling
KR102670479B1 (ko) 콘볼루션 효율을 개선하기 위한 방법들, 시스템들, 및 장치
CN117636003A (zh) 对象分类方法、装置、计算机设备及存储介质
CN116309204A (zh) 数据处理方法、装置、设备及存储介质
CN115439676A (zh) 图像聚类方法、装置以及电子设备

Legal Events

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