그림 372에서는 HOG 특징을 계산하기 위한 VA 설계의 기본 구조를 확인할 수 있습니다. CameraLink 기본 구성의 카메라에서 촬영된 그레이스케일 이미지의 경우, 방향성 그라디언트 히스토그램(HOG)은 HierarchicalBox 내에서 계산됩니다 HOG에서 계산됩니다. 이 히스토그램은 "HOG_9Bins_Histogram.vad" 설계에서 DMA를 통해 PC로 전송됩니다. "HOG_4Bins_HistogramMax.vad" 및 "HOG_9Bins_HistogramMax.vad" VA 설계에서는 최대 성분이 PC로 전달됩니다. 다음에서는 “HOG_4Bins_HistogramMax.vad”의 설계 구조를 설명합니다. 이는 나머지 두 설계에도 동일하게 적용됩니다. 해당 문제와 관련된 설계상의 차이점은 별도로 설명합니다. 기본 플랫폼은 marathon VCL입니다. 설계 구현은 다른 플랫폼이나 카메라 구성에 쉽게 적용할 수 있습니다.
그림 372. VA 설계인 “HOG_9Bins_Histogram.vad”, “HOG_9Bins_HistogramMax.vad” 및 “HOG_4Bins_HistogramMax.vad”의 기본 설계 구조
HierarchicalBox의 내용을 볼 수 있습니다 HOG 의 내용을 확인할 수 있습니다.
원본 입력 이미지의 경우, x 및 y 방향의 그라디언트는 HierarchicalBox GradientFilter에서 계산됩니다. 구현 내용은 그림 47에 나와 있습니다. 연산자 FIRkernelNxM 연산자는 3x3 커널을 생성합니다. 연산자 FIRoperatorNxM_VerticalEdges 와 FIRoperatorNxM_HorizontalEdges 는 식 ( 47 )에 따라 x 및 y 방향의 기울기를 선택합니다.
이 그라디언트에 대해, 식 ( 48 )에 따른 크기와 방향이 상자 내에 구현되어 있습니다. MagnitudeOrientation (내용 및 구조는 그림 375 참조)에 구현되었습니다. 박스 내의 상세한 주석은 구현된 공식을 이해하는 데 도움이 됩니다.
8x8 픽셀 단위의 셀 내 픽셀 그룹화는 HierarchicalBox에서 수행됩니다 ExtractBlocks에서 수행됩니다. 이 박스의 출력 링크는 셀의 기울기 크기와 방향을 64픽셀 크기의 선 형태로 전달합니다. 이 정보는 방향성 기울기 히스토그램(HOG) 계산에 입력되며, 이는 HierarchicalBox Histogram에서 수행됩니다.에서 수행됩니다. 그 내용은 그림 376에서 확인할 수 있습니다.
여기에는 기울기 방향에 대한 할당이 주어졌는데, 이는 다음 영역 내에 있을 수 있습니다.
에서
, 4개의 상자로 분류하는 작업은
상자 안에서 수행됩니다 SplitOrientations. 쓰레기통은
,
,
및
.
“HOG_9Bins_Histogram.vad” 및 “HOG_9Bins_HistogramMax.vad” 설계의 경우, 9개의 빈(
에서
다음의 증가 단위로
)가 존재합니다.
특정 빈에 기울기 방향을 할당하는
과정은, 해당 빈에 대한 해당 방향의 가중치를 계산하는 방식으로 이루어집니다. 예를 들어, 가중치 부여 및 이에 따른
빈 1에 대한 할당은 다음과 같습니다.
,는 그림에 나와 있다.
377.
여기서 무게는
식 에 따르면,
49 빈 1에 대해 계산됩니다. 각도 거리는
이 예시에서 쓰레기통들 사이의 간격은 다음과 같습니다
(연산자 CONST_Phi_45Deg in
box Sub45Deg). 1번 빈의 각도 방향은
또한
(연산자 CONST_Chi_45Deg). 그런 다음 각 빈에 대한 가중치
계수를 기울기의 크기와 곱합니다(그림 참조). 376). 상자 안에는
HistogramColumn_0 에서 히스토그램 열_3 식 에 따라 각 히스토그램 열(각 빈에 대해)의 내용.
50 이는 모든 이미지 픽셀에 대한 가중 기울기 크기의 합으로 계산됩니다. 그런 다음,
방향성 기울기 히스토그램(HOG)은 연산자를 사용하여 히스토그램 열을 병합함으로써 생성됩니다. MergeKernel_Histogram.
각 커널 성분의 마지막 픽셀만이 히스토그램 열의 실제 값이므로, 상자 내에서 해당 픽셀이 선택됩니다.
LastPixelOnly.
국소적인 기울기 변화를 고려하기 위해, 각 셀에 대한 방향성 기울기 히스토그램(HOG)을 2x2 셀 크기의 블록 단위로 결합하며,
각 블록 간에는
(이 절의 이론 부분 참조). 셀들을
블록으로 묶는 작업은 상자 안에서 수행됩니다. 이웃 요소와 연결하기. 그림에서 그 내용을 확인하십시오.
378.
방향성 그라디언트 히스토그램(HOG) 정보가 포함된 각 셀(단일 픽셀로 표현됨)에 대해, 각 빈에 대한 히스토그램의 열은 연산자로 구분됩니다 SplitKernel연산자로 구분됩니다. 각 커널 성분에 대해 x 및 y 방향의 인접 셀은 PixelNeighbours1xM 및 LineNeighboursNx1를 사용하여 계산합니다. 연산자 FIRoperatorNxM 는 2x2 셀의 정보를 합산합니다. 여기서는 정규화 처리가 수행되지 않습니다. 대안적인 구현 방식으로, 연산자 Const_Enable 를 0으로 설정하여 셀을 블록으로 묶는 과정을 생략할 수 있습니다. 계산된 방향성 그라디언트 히스토그램의 최대값은 GetHistogramMax 상자에서 선택됩니다(그림 373 참조). 그 내용은 그림 379에 표시되어 있습니다. "HOG_9Bins_Histogram.vad" 설계에서는 히스토그램 최대값 선택이 생략됩니다.
마지막으로 히스토그램의 최대값이나 히스토그램 자체가 박스 형태로 시각화됩니다 시각화 (그림 373 참조)에서 빨간색 선으로 표시됩니다. 이 박스(경로: box 그리기, EnableOriginal)에서는 매개변수 ModuloCount_Period를 설정하여 여러 프레임에 걸친 원본 이미지를 HOG 특징과 함께 시각화할 수 있습니다. ModuloCount_Period (프레임 수), Is_InRange (프레임 범위 설정) 및 Const_Enable 또는 항상 ( Const_Enable 값을 1로 설정). 마지막 단계로 HOG 특징은 연산자 DmaToPC_DMA0를 통해 PC로 전송됩니다. 여기서 HOG 특징은 서포트 벡터 머신(SVP)이나 컨볼루션 신경망(CNN)에서 물체 탐지를 위한 설명자로 사용될 수 있습니다.

이전

