최근, 전쟁으로 인해 식량에 대한 우려가 커지면서 우리나라 농산물에 대한 관심은 증가하고 있습니다.
소비자들이 우리나라 농산물을 믿고 찾을 수 있으려면, 농산물 품질에 대한 정보 제공은 매우 중요합니다.
또한, 농산물을 직접 재배하고 농산물 품질을 관리하는 농업 현장에서의 농산물 품질 관리 강화 시스템은 필요합니다.
따라서, 인공지능을 통해 농산물 품질을 분류하는 챌린지를 진행합니다.
경희대학교 AI 실전연구프로젝트
먼저, 128 * 128 pixel 크기의 이미지 데이터를 보고 품종을 분류한다.
분류한 품종과 크기, 무게 등 csv데이터를 사용하여 “품질(등급)”을 예측한다.
AI HUB에서 제공하는 총 10종의 농산물 이미지 중에서 8종류를 제공합니다.

각 PNG 이미지는 각 품종이름으로 작성된 폴더 안에 저장되어 있습니다.
JSON 데이터는 농산물 data.csv 파일에 들어있습니다.
자세한 내용은 데이터 설명을 참고해주세요.
데이터 출처 : [AI HUB] https://www.aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=149
원-핫 인코딩 (One-Hot Encoding) : 자연어를 컴퓨터가 처리하도록 하기 위해서 숫자로 바꾸는 방법을 알아야 합니다. 원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에 0을 부여하는 벡터 표현 방식입니다 (아래의 그림 참고).

GridSearchCV : 사이킷런에서는 분류 알고리즘이나 회귀 알고리즘에 사용되는 하이퍼파라미터를 순차적으로 입력해 학습을 하고 측정을 하면서 가장 좋은 파라미터를 알려줍니다. GridSearchCV가 없다면 max_depth 가 3일때 가장 최적의 스코어를 뽑아내는지 1일때 가장 최적인 스코어를 뽑아내는지 일일이 학습을 해야 합니다. 하지만 grid 파라미터 안에서 집합을 만들고 적용하면 최적화된 파라미터를 뽑아낼 수 있습니다 (참고사이트 : https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html).
Convolutional Neural Network (CNN) : 합성곱 신경망은 인간의 시신경 구조를 모방한 기술로, 특징맵을 생성하는 필터까지도 학습이 가능해 비전 분야에서 성능이 우수합니다. 이미지 인식하기 위해 패턴을 찾는데 특히 유용하며, 객체인식 분야에 많이 사용되고 있습니다 (참고사이트 : https://itwiki.kr/w/CNN).

두 개의 모델을 사용하여 결과를 도출해야 하기 때문에 농산품 종류와 등급 라벨이 정확해야 정답으로 인정됩니다.
라벨로 정답을 판단하기 때문에 Top - 1 accuracy로 모델을 평가하게 됩니다.
예시는 아래와 같습니다
예1) apple_fuji == 0, 특등급 == 2 → 0*3 + 2 = 2
예2) pear_singo == 4, 상등급==1 → 4*3 + 1 = 13