Skip to content

beautifulchoi/plant_feature_extractor

Repository files navigation

식물 특징 검출기

동작원리

  1. PlantNet300K 데이터셋의 1081종의 식물을 사전학습한 분류모델 로드
  2. 불러온 모델에 사용자 입력 식물사진(사진의 절대경로)을 넣어 학습한 데이터셋과 비교
  3. 모델의 출력(plantNet300K에서 학습한 식물군 중, 가장 유사하다고 모델이 판정한 종)으로 나온 식물종 추출
  4. 모델의 출력으로부터 가져온 식물종을 CAM api(pytorch-grad-cam 라이브러리에 정의)에 넣어 CAM 히트맵 추출
  5. 히트맵을 기반으로한 바운딩 박스 삽입

학습모델

  • EfficientNet-B4

사전학습한 데이터셋

주요 사용 라이브러리

사용방법

  1. main모듈의 get_CAM 함수 import
  2. 이용하고자 하는 식물사진이 저장되어 있는 장소의 절대경로를 get_CAM 함수에 입력
  3. 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))

예시

image

  • type 1 image

  • type 2 image

About

extracting plant's major features and show via CAM

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published