그림 394에서는 HOG 특징을 계산하기 위한 VA 설계의 기본 구조를 확인할 수 있습니다. CameraLink 기본 구성의 카메라에서 촬영된 그레이스케일 이미지의 경우, 방향성 그라디언트 히스토그램(HOG)은 HierarchicalBox 내에서 계산됩니다 HOG에서 계산됩니다. 이 히스토그램은 "HOG_9Bins_Histogram.va" 설계에서 DMA를 통해 PC로 전송됩니다. "HOG_4Bins_HistogramMax.va" 및 "HOG_9Bins_HistogramMax.va" VA 설계에서는 최대 성분이 PC로 전달됩니다. 다음에서는 “HOG_4Bins_HistogramMax.va”의 설계 구조를 설명합니다. 나머지 두 설계도 이와 유사합니다. 해당 사항에 대해서는 설계 간의 가능한 차이점을 설명합니다. 기본 플랫폼은 marathon VCL입니다. 설계 구현은 다른 플랫폼이나 카메라 구성에 쉽게 적용할 수 있습니다.
그림 394. VA 설계인 “HOG_9Bins_Histogram.va”, “HOG_9Bins_HistogramMax.va” 및 “HOG_4Bins_HistogramMax.va”의 기본 설계 구조
HierarchicalBox의 내용을 볼 수 있습니다. HOG 의 내용을 그림 395에서 확인할 수 있습니다.
원본 입력 이미지에 대한 x 방향 및 y 방향의 그래디언트가 HierarchicalBox GradientFilter에서 계산됩니다. 구현 방법은 그림 47에 나와 있습니다. 오퍼레이터 FIRkernelNxM은 3x3 커널을 생성합니다. 오퍼레이터 FIRoperatorNxM_VerticalEdges 및 FIRoperatorNxM_HorizontalEdges는 수식 47에 따라 x 방향 및 y 방향의 그래디언트를 선택합니다.
이 그라디언트에 대해, 식 ( 48 )에 따른 크기와 방향이 상자 내에 구현되어 있습니다. MagnitudeOrientation (내용 및 구조는 그림 397 참조)에 구현되었습니다. 박스 내의 상세한 주석은 구현된 공식을 이해하는 데 도움이 됩니다.
8x8 픽셀 단위의 셀 내 픽셀 그룹화는 HierarchicalBox에서 수행됩니다 ExtractBlocks에서 수행됩니다. 이 블록의 출력 링크는 셀의 그라디언트 크기와 방향을 64픽셀 크기의 선 형태로 전달합니다. 이 정보는 방향성 그라디언트 히스토그램(HOG) 계산에 입력되며, 이 계산은 HierarchicalBox Histogram에서 수행됩니다.에서 수행됩니다. 그 내용은 그림 398에서 확인할 수 있습니다.
여기서는 영역에 포함될 수 있는 그래디언트 방향을
에서
네 개의 빈(Bin)으로 할당하는 작업이
SplitOrientations박스에서 수행됩니다. 빈은
,
,
및
.
디자인 "HOG_9Bins_Histogram.va" 및 "HOG_9Bins_HistogramMax.va"의 경우 9개의 빈(
에서
다음의 증가 단위로
)이 존재합니다.
그래디언트 방향을 특정 빈에 할당하는 방식은 해당 빈에 대한 이 방향의 가중치를 계산하는 방식으로 수행됩니다. 예시로, 빈 1에 대한 가중치 부여 및 그에 따른 할당은
(은)는 그림
399.
여기서 가중치
식에 따라
49 빈 1에 대해 계산됩니다. 각 빈 사이의 각도 거리
는 이 예시에서
(연산자 CONST_Phi_45Deg 박스 Sub45Deg)입니다. 빈 1의 각도 빈 방향
역시
(연산자 CONST_Chi_45Deg)입니다. 그런 다음 각 빈의 가중치 계수를 그래디언트 크기와 곱합니다(그림 참조). 398). 박스
HistogramColumn_0 에서 HistogramColumn_3 식에 따른 각 히스토그램 열(각 빈의)의 콘텐츠
50 은 모든 이미지 픽셀에 걸친 가중치가 적용된 그래디언트 크기의 합으로 계산됩니다. 그런 다음 HOG(Histogram of Oriented Gradients)는 연산자 MergeKernel_Histogram.
각 커널 컴포넌트의 마지막 픽셀만이 히스토그램 열의 실제 값이므로, 박스에서 선택됩니다.
LastPixelOnly. 로컬 그래디언트 변화를 반영하기 위해 각 셀의 HOG(Histogram of Oriented Gradients)는 블록당 2x2 셀 크기의 블록으로 결합되며,
(이 섹션의 이론 부분 참조). 셀을 블록으로 결합하는 작업은 다음 박스에서 수행됩니다. ConcatenateWithNeighbors. 그림에서 내용을 확인하십시오.
400.
방향 그라디언트 히스토그램(HOG) 정보가 포함된 각 셀(단일 픽셀로 표현됨)에 대해, 각 빈에 해당하는 히스토그램 열은 연산자로 구분됩니다 SplitKernel연산자로 구분됩니다. 각 커널 성분에 대해 x 및 y 방향의 인접 셀은 PixelNeighbours1xM 및 LineNeighboursNx1를 사용하여 계산됩니다. 연산자 FIRoperatorNxM 는 2x2 셀의 정보를 합산합니다. 여기서는 정규화가 수행되지 않습니다. 대안적인 구현 방법으로, 연산자 Const_Enable 를 0으로 설정하여 셀을 블록으로 묶는 과정을 생략할 수 있습니다. 계산된 방향 기울기 히스토그램의 최대값은 상자 GetHistogramMax 상자에서 선택됩니다(그림 395 참조). 그 내용은 그림 401에 표시되어 있습니다. 설계 "HOG_9Bins_Histogram.va"에서는 히스토그램 최대값 선택이 생략됩니다.
마지막으로 히스토그램의 최대값이나 히스토그램 자체가 박스 형태로 시각화됩니다. 시각화 (그림 395 참조)에서 빨간색 선으로 표시됩니다. 이 박스(경로: box 그리기, EnableOriginal)에서는 매개변수 ModuloCount_Period_Count ModuloCount_Period (프레임 수), Is_InRange (프레임 범위 설정) 및 Const_Enable 또는 항상 ( Const_Enable 값을 1로 설정). 마지막 단계로 HOG 특징은 연산자 DmaToPC_DMA0를 통해 PC로 전송됩니다. 여기서 HOG 특징은 지원 벡터 기계(SVP) 또는 컨볼루션 신경망(CNN)에서 물체 탐지를 위한 설명자로 사용될 수 있습니다.

이전

