{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "6cfd2a8c-fdfc-4233-abd1-ece097069522", "metadata": {}, "source": [ "# __이미지 분류 모델 만들기__" ] }, { "attachments": {}, "cell_type": "markdown", "id": "c61f4bc9-a4f9-44bc-8bf8-914a39e2022d", "metadata": {}, "source": [ "- 튜토리얼 난이도: ★☆☆☆☆\n", "- 읽는데 걸리는 시간: 10분\n", "- 사용 언어: [SQL](https://ko.wikipedia.org/wiki/SQL) (100%)\n", "- 실행 파일 위치: tutorial/thanosql_ml/classification/image_classification.ipynb\n", "- 참고 문서: [(AI-Hub) 상품이미지 데이터](https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=64), [A ConvNet for the 2020s](https://arxiv.org/abs/2201.03545)" ] }, { "attachments": {}, "cell_type": "markdown", "id": "98f1b3da-912f-4bd5-a435-ea6f932963ee", "metadata": { "jp-MarkdownHeadingCollapsed": true, "tags": [] }, "source": [ "## 튜토리얼 소개\n", "\n", "
분류 작업은 목푯값(Target)이 속한 범주(Category 또는 Class)를 예측하기 위해 사용하는 머신러닝(기계학습/Machine Learning)의 한 형태입니다. 예를 들어, 남성 또는 여성을 분류하는 이진 분류와 동물의 종(개, 고양이, 토끼 등)을 예측하는 다중 분류 모두 분류 작업에 포함됩니다.
\n", "같은 데이터의 인간의 분류 능력은 약 95%라고 합니다.
\n", "미술 작품을 좋아하는 사람들의 행동 이력(구매 또는 대여 이력, 선호도 등)을 데이터 베이스에 저장하고 활용해서 특정 작품을 좋아할 것으로 예상되는 그룹을 찾는 분류 모델을 만들 수도 있습니다. 즉, 미술 작품의 이미지만을 이용해서 연령대(20대, 30대, 40대 등), 성별(남, 여), 전시 장소(집, 카페, 회사 등) 등에서의 선호도를 예측하는 모델을 만들 수 있습니다.
\n", "👉 대표적인 AI 오픈데이터 공유 플랫폼인 AI-Hub의 상품 이미지 데이터 세트를 사용하여 10,000종 이상의 상품을 분류하는 모델을 구축합니다. 구축된 모델은 스마트물류창고, 무인 스토어등에서 탐지, 식별 솔루션으로 활용이 가능합니다. 데이터 세트는 일반적으로 이미지 분류 기술의 학습에 활용하는 이미지 및 라벨(정답)쌍의 약 10,000 종 이상의 상품 데이터 세트로 구성되어 있고 총 1,440,000 장의 이미지가 포함되어 있습니다. 본 튜토리얼에서는 ThanoSQL의 사용방법을 익히고 빠른 결과 확인을 위해, 훈련용 데이터 1,800장과 테스트 데이터 200장만을 사용합니다.
\n", "\n", " | image_path | \n", "div_l | \n", "div_m | \n", "div_s | \n", "div_n | \n", "comp_nm | \n", "img_prod_nm | \n", "multi | \n", "
---|---|---|---|---|---|---|---|---|
0 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "유제품 | \n", "요구르트 | \n", "떠먹는 요구르트 | \n", "떠먹는 요구르트 | \n", "기타 | \n", "토핑오트&애플시나몬 | \n", "False | \n", "
1 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "홈클린 | \n", "위생용품 | \n", "일반비누 | \n", "일반비누 | \n", "크리오 | \n", "크리오)골드디비누 | \n", "True | \n", "
2 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "면류 | \n", "용기면 | \n", "국물용기라면 | \n", "짬뽕라면 | \n", "농심 | \n", "농심오징어짬뽕컵67G | \n", "True | \n", "
3 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "디저트 | \n", "디저트/베이커리 | \n", "냉장디저트 | \n", "냉장디저트 | \n", "Dole 코리아 | \n", "Dole후룻볼슬라이스복숭아198g | \n", "False | \n", "
4 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "주류 | \n", "기타주류 | \n", "칵테일 | \n", "칵테일 | \n", "롯데주류 | \n", "순하리소다톡바나나355ML | \n", "True | \n", "
product_image_train 테이블은 아래와 같은 정보를 담고 있습니다.
\n", "여기서는 빠르게 학습하기 위해 \"max_epochs\"를 1로 지정했습니다. 일반적으로 숫자가 클수록 많은 계산 시간이 소요되지만 학습이 진행됨에 따라 예측 성능이 올라갑니다.
\n", "\n", " | image_path | \n", "div_l | \n", "div_m | \n", "div_s | \n", "div_n | \n", "comp_nm | \n", "img_prod_nm | \n", "multi | \n", "predict_result | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "생활용품 | \n", "위생용품 | \n", "면봉 | \n", "면봉 | \n", "기타 | \n", "콩맥스전자담배용크리닝면봉 | \n", "True | \n", "생활용품 | \n", "
1 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "소스 | \n", "장류 | \n", "쌈장 | \n", "쌈장 | \n", "씨제이제일제당 | \n", "해찬들고기전용쌈장450G | \n", "False | \n", "소스 | \n", "
2 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "디저트 | \n", "디저트/베이커리 | \n", "냉장디저트 | \n", "냉장디저트 | \n", "Dole 코리아 | \n", "Dole후룻볼슬라이스복숭아198g | \n", "False | \n", "디저트 | \n", "
3 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "음료 | \n", "기능성음료 | \n", "한방음료 | \n", "한방음료 | \n", "광동제약 | \n", "유어스광동어성초500ml | \n", "False | \n", "음료 | \n", "
4 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "주류 | \n", "기타주류 | \n", "칵테일 | \n", "칵테일 | \n", "롯데주류 | \n", "순하리소다톡바나나355ML | \n", "False | \n", "주류 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
197 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "의약외품 | \n", "기능성음료 | \n", "숙취해소음료 | \n", "숙취해소음료 | \n", "동아제약 | \n", "동아제약)가그린제로100ML | \n", "False | \n", "의약외품 | \n", "
198 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "소스 | \n", "장류 | \n", "쌈장 | \n", "쌈장 | \n", "씨제이제일제당 | \n", "해찬들고기전용쌈장450G | \n", "True | \n", "소스 | \n", "
199 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "주류 | \n", "기타주류 | \n", "칵테일 | \n", "칵테일 | \n", "롯데주류 | \n", "순하리소다톡바나나355ML | \n", "True | \n", "주류 | \n", "
200 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "유제품 | \n", "요구르트 | \n", "떠먹는 요구르트 | \n", "떠먹는 요구르트 | \n", "기타 | \n", "토핑오트&애플시나몬 | \n", "False | \n", "유제품 | \n", "
201 | \n", "thanosql-dataset/product_image_data/product_im... | \n", "주류 | \n", "기타주류 | \n", "칵테일 | \n", "칵테일 | \n", "롯데주류 | \n", "순하리소다톡바나나355ML | \n", "True | \n", "주류 | \n", "
202 rows × 9 columns
\n", "ThanoSQL을 활용해 나만의 모델을 만들거나, 나의 서비스에 적용하는데 어려움이 있다면 언제든 아래로 문의주세요😊
\n", "이미지 분류 모델 구축 관련 문의: contact@smartmind.team
\n", "