voxel
extract_voxel
함수 이름: extract_voxel
입력:
lfile: 왼쪽 카메라 비디오 파일 경로
rfile: 오른쪽 카메라 비디오 파일 경로
prefix: 저장할 이미지 파일 이름에 붙을 접두사
동작:
이 함수는 왼쪽 카메라와 오른쪽 카메라로부터 비디오를 읽어서 이미지를 추출합니다.
추출된 이미지는 3D 볼륨을 만들기 위한 왼쪽 카메라와 오른쪽 카메라의 이미지 쌍입니다.
추출된 이미지는 파일로 저장됩니다.
설명:
OpenCV 라이브러리가 필요합니다.
1920x1080 해상도로 이미지를 추출합니다.
이미지 추출 시 왼쪽 카메라와 오른쪽 카메라의 이미지 위치를 조정합니다.
이미지 추출 시 왼쪽 카메라와 오른쪽 카메라의 이미지 쌍을 생성합니다.
이미지는 파일로 저장됩니다.
이미지 파일 이름에는 prefix와 번호가 붙습니다.
train_voxel
함수 이름: train_voxel
입력:
cfgfile: 모델 구성 파일의 경로를 가리키는 문자열 포인터
weightfile: 모델 가중치 파일의 경로를 가리키는 문자열 포인터
동작:
주어진 모델 구성 파일(cfgfile)을 바탕으로 3D 객체 인식 모델을 학습하는 함수.
이미지 경로가 담긴 리스트(train_images)에서 학습 데이터를 로드하고, 이를 바탕으로 모델을 업데이트한다.
매 1000 에폭마다 가중치 파일을 백업 디렉토리(backup_directory)에 저장한다.
설명:
모델 구성 파일(cfgfile)로부터 모델을 파싱(parse_network_cfg)하여 생성한다.
만약 모델 가중치 파일(weightfile)이 주어졌다면, 해당 가중치를 로드(load_weights)한다.
학습 이미지 경로가 담긴 리스트(train_images)를 로드하고, 이를 기반으로 데이터를 로드하는 스레드(load_data_in_thread)를 생성한다.
학습 데이터를 이용하여 모델을 학습(train_network)하고, 손실(loss)을 계산한다.
1000 에폭마다 가중치 파일을 백업 디렉토리(backup_directory)에 저장한다(save_weights).
100 에폭마다 모델 가중치를 백업 디렉토리에 저장한다.
모델 학습이 완료되면 최종 가중치를 백업 디렉토리에 저장한다.
test_voxel
함수 이름: test_voxel
입력:
cfgfile: char* 타입. YOLO 모델의 구성 파일 경로.
weightfile: char* 타입. YOLO 모델의 가중치 파일 경로.
filename: char* 타입. 테스트하려는 이미지 파일 경로. 사용자 입력으로 받거나 프로그램 인자로 전달 받을 수 있음.
동작:
입력으로 주어진 YOLO 모델을 이용하여 이미지를 테스트하고 결과 이미지를 저장하는 함수.
입력으로 이미지 파일 경로가 주어지면 해당 이미지에 대한 예측을 수행하고, 입력이 없는 경우 사용자로부터 이미지 파일 경로를 입력받아 예측 수행.
예측 결과는 out.png 파일로 저장됨.
설명:
YOLO 모델 구성 파일(cfgfile)을 파싱하여 네트워크 모델 생성.
YOLO 모델 가중치(weightfile)를 로드하여 모델에 적용.
배치 크기를 1로 설정.
시드(seed) 값을 고정하여 난수 생성기 초기화.
이미지 파일 경로(filename)가 주어진 경우 해당 이미지 파일을 로드하고, 입력이 없는 경우 사용자로부터 이미지 파일 경로를 입력받음.
입력 이미지를 로드하고, YOLO 모델의 입력 크기에 맞게 조정(resize) 함.
예측 수행(network_predict) 및 예측 시간 측정.
예측 결과 이미지(out)를 파일로 저장.
이미지 메모리 해제 및 다음 입력 대기.
filename 값이 주어진 경우 예측 수행 후 종료.
run_voxel
함수 이름: run_voxel
입력:
argc (int): 명령행 인자 개수
argv (char **): 명령행 인자 배열
동작:
주어진 명령행 인자에 따라 train_voxel, test_voxel, extract_voxel, validate_voxel 중 하나를 실행
설명:
run_voxel 함수는 주어진 명령행 인자에 따라 train_voxel, test_voxel, extract_voxel, validate_voxel 중 하나를 실행하는 역할을 합니다.
argc와 argv는 명령행에서 입력받은 인자의 개수와 배열을 전달받습니다.
실행할 함수와 해당 함수에 필요한 인자들은 argv 배열에서 가져와 실행됩니다.
예를 들어, argv[2]가 "train"이면 train_voxel 함수가 실행되며, cfg 파일 경로와 weight 파일 경로가 필요합니다.
만약 argv[2]가 "test"라면 test_voxel 함수가 실행되며, cfg 파일 경로와 weight 파일 경로, 테스트할 이미지 파일 경로가 필요합니다.
"extract" 옵션의 경우에는 extract_voxel 함수가 실행되며, cfg 파일 경로, weight 파일 경로, 추출할 feature map이 있는 레이어 이름이 필요합니다.
마지막으로 "valid" 옵션은 주석 처리되어 있습니다.
Last updated