- PlantNet300K 데이터셋의 1081종의 식물을 사전학습한 분류모델 로드
- 불러온 모델에 사용자 입력 식물사진(사진의 절대경로)을 넣어 학습한 데이터셋과 비교
- 모델의 출력(plantNet300K에서 학습한 식물군 중, 가장 유사하다고 모델이 판정한 종)으로 나온 식물종 추출
- 모델의 출력으로부터 가져온 식물종을 CAM api(pytorch-grad-cam 라이브러리에 정의)에 넣어 CAM 히트맵 추출
- 히트맵을 기반으로한 바운딩 박스 삽입
- EfficientNet-B4
- main모듈의
get_CAM
함수 import - 이용하고자 하는 식물사진이 저장되어 있는 장소의 절대경로를
get_CAM
함수에 입력 get_CAM(path, use_gpu=False, shape=(224,224), type=1, method='eigenCAM', save_name='sample_data')
(str)path
: 분석하고자 하는 식물 사진의 절대경로(boolean)use_gpu
: CUDA gpu 사용 여부(False: cpu, True: cuda)(tuple)shape
: resizing 할 입력사진의 크기(default : (224,224))(int)type
: 얻고자 하는 테이블의 타입 1: CAM 종류별 적용 결과 시각화 테이블 2: CAM 종류를 사용자가 선택하여 해당 CAM에 대한 적용 결과 시각화 및 결과 히트맵 기반 바운딩 박스 추출(str)method
: CAM 종류선택 ('gradCAM', 'gradCAM++', 'layerCAM', 'eigenCAM', 'ScoreCAM' 5가지 종류의 CAM 제공)(str)save_name
: 출력결과 테이블 이미지 파일 저장 이름
(tuple)(tuple(point), tuple(new_points))
: resizing된 사진에서의 bounding box좌표(point(x,y))와 원본 사진에서의 bounding box 좌표(new_points(x,y))