crop_layer
input(image, feature map)을 crop하기 위한 layer입니다.
get_crop_image
함수 이름: get_crop_image
입력:
crop_layer 타입 변수 l
동작:
입력으로 받은 crop_layer 타입 변수 l의 output 배열에서 데이터를 가져와서 float_to_image 함수를 통해 이미지 형태로 변환하여 반환합니다.
설명:
입력으로 받은 crop_layer 타입 변수 l은 이미지 데이터를 잘라내기 위한 정보들을 가지고 있습니다.
이 함수는 그 정보를 기반으로 잘라낸 이미지 데이터를 가져와서 float_to_image 함수를 통해 이미지 형태로 변환하고 반환합니다.
이 함수는 이미지 인식 분야에서 많이 사용됩니다.
forward_crop_layer
함수 이름: forward_crop_layer
입력:
const crop_layer l: crop_layer 타입의 l 변수. 크롭 레이어의 정보를 담고 있음.
network net: network 타입의 net 변수. 신경망 정보를 담고 있음.
동작:
랜덤으로 좌우 반전과 이미지를 잘라낸 후, 크롭 레이어의 출력값을 계산하여 l.output 배열에 저장함.
설명:
크롭 레이어는 입력 이미지를 랜덤으로 자른 후, 출력 이미지를 생성함.
입력 이미지의 크기는 l.h x l.w x l.c이고, 출력 이미지의 크기는 l.out_h x l.out_w x l.out_c임.
좌우 반전 여부는 l.flip 값에 따라 랜덤으로 결정됨.
잘라낸 이미지의 위치는 l.h, l.w에서 각각 l.out_h, l.out_w 크기만큼 랜덤하게 선택됨.
크롭 레이어는 네트워크가 학습 중일 때만 좌우 반전을 하고 이미지를 잘라냄. 학습이 아닐 때는 좌우 반전을 하지 않고 이미지 중앙에서 잘라냄.
scale과 trans 값은 이미지를 정규화하기 위해 사용됨.
backward_crop_layer
함수 이름: backward_crop_layer
입력:
crop_layer l
network net
동작:
crop_layer의 역전파를 수행합니다.
이 함수는 backward 연산을 수행하지 않습니다.
설명:
crop_layer는 입력 이미지의 일부분을 무작위로 잘라내어 출력으로 내보내는 레이어입니다.
이 함수는 해당 레이어에서의 역전파를 구현합니다.
그러나 이 레이어는 역전파를 위한 학습 가능한 매개변수를 가지고 있지 않습니다.
따라서 이 함수는 빈 함수로 남겨둡니다.
resize_crop_layer
함수 이름: resize_crop_layer
입력:
layer *l: 크롭 레이어 구조체 포인터
int w: 새로운 가로 크기
int h: 새로운 세로 크기
동작:
크롭 레이어의 가로 세로 크기를 변경하고, 출력 크기를 다시 계산하고, 출력 배열의 크기를 재할당한다.
설명:
입력으로 받은 크롭 레이어 구조체 포인터를 사용하여 가로와 세로 크기를 변경한다.
그 후, 새로운 가로와 세로 크기를 사용하여 출력 크기를 다시 계산하고, 입력 크기와 출력 크기를 사용하여 출력 배열의 크기를 재할당한다.
make_crop_layer
함수 이름: make_crop_layer
입력:
batch: int, 미니배치 크기
h: int, 입력 이미지의 높이
w: int, 입력 이미지의 너비
c: int, 입력 이미지의 채널 수
crop_height: int, 자를 영역의 높이
crop_width: int, 자를 영역의 너비
flip: int, 자르기 전 이미지를 수평으로 뒤집을지 여부
angle: float, 이미지 회전 각도
saturation: float, 이미지 포화도 조절 값
exposure: float, 이미지 노출 조절 값
동작:
입력된 값을 바탕으로 crop_layer 구조체를 생성하고 초기화한다.
출력되는 영상의 크기를 계산한다.
필요한 입력 및 출력 공간을 할당한다.
forward_crop_layer 함수와 backward_crop_layer 함수를 설정한다.
초기화된 crop_layer 구조체를 반환한다.
설명:
이 함수는 crop_layer를 생성하고 초기화하는 함수이다.
crop_layer는 입력된 이미지에서 주어진 크기의 영역을 잘라내는 역할을 한다.
입력된 인자를 바탕으로 crop_layer 구조체를 생성하고 초기화한 후 반환한다.
이때 forward_crop_layer 함수와 backward_crop_layer 함수를 설정해 주어야 한다.
Last updated