작물 병해 분류 AI 경진대회

이미지 클래스 잘 구분되시나요?(근데 이제 가벼운 설명을 곁들인..)

2021.10.19 18:26 3,840 Views


제가 눈이 안좋은건지 보면서도 구분하기가 어렵네요.


Label

  • 0: 정상
  • 1: 시설포도노균병 - 누르스름하게 보이거나 잎 뒷면에 곰팡이 반응이 발생하는 현상(인 것 같습니다.)
  • 2: 시설포도노균병반응
  • 3: 일소피해 - 고온으로 타들어가는 현상(인 것 같습니다.)
  • 4: 축과병 - 수분이 빨려있는 현상
  • 5: 시설포도탄저병 - 담갈색 반점이 발생하고 진전되면 적갈색, 원형반점이 불규칙하게 생성된다.
  • 6: 시설포도탄저병반응



정상과 축과병이 섞인 이미지입니다.






시설포도탄저병과 시설포도탄저병반응이 섞인 이미지입니다.






시설포도노균병과 시설포도노균병반응이 섞인 이미지입니다.


육안으로 분류하셨나요?

아무래도 제가 눈이 멀었습니다..



데이터 불균형 문제도 있네요.

정상           106
시설포도노균병       46
시설포도노균병반응     30
일소피해          29
축과병           17
시설포도탄저병       12
시설포도탄저병반응     10
Name: disease, dtype: int64

0    106
1     46
2     30
3     29
4     17
5     12
6     10
Name: disease_code, dtype: int64



마지막으로 train 데이터 클래스별로 나눠서 저장하는 코드 남깁니다.

train_total = pd.read_csv('data/train.csv')
data_path = './data'

def make_new_dir(path):
    if os.path.isdir(path) == False:
        os.makedirs(path)


for i in range(7): # 클래스 개수(7)만큼 반복된다
    make_new_dir(f'{data_path}/train_category/{i}') # 클래스 폴더 생성
    train_image_paths = list(train_total[train_total['disease_code'] == i]['img_path']) # train.csv에 저장된 img_path
    
    for train_image_path in train_image_paths: # 이미지 경로 하나씩 열고
        img = Image.open(data_path + '/' + train_image_path) # 이미지 열고
        img = img.resize((224, 224)) # 이미지 크기 조절 옵션
        img.save(f'{data_path}/train_category/{i}/' + train_image_path.split('/')[1]) # 이미지 저장



로그인이 필요합니다
0 / 1000
이산
2021.10.20 15:12

데이터 불균형 문제가 큰 거 같습니다.
첫번째 이미지들에서는 특히 구분이 쉽지않네요..