본문으로 건너뛰기

프로젝트

의류 이미지 자동 분류

쇼핑몰마다 제각각인 의류 카테고리를, 상품 사진으로 분류하기 위해 만든 모델과 데이터 파이프라인

단독 설계·개발 2020.06 – 2021.08

의류를 다루는 업무에서는 상품 사진만큼이나 분류 기준이 중요합니다. 쇼핑몰마다 복종을 나누는 방식이 다르면 상품 정보를 모아도 같은 기준으로 다루기 어렵습니다. 세원에서 맡은 과제는 의류 사진을 보고 복종을 분류하는 모델과, 그 모델에 넣을 데이터를 준비하는 흐름을 만드는 것이었습니다. 모델과 데이터 파이프라인을 혼자 설계·개발했습니다.

이미지 수집은 학습의 시작일 뿐이었습니다

학습 자료는 구글 이미지 검색을 크롤링해 모았습니다. 하지만 검색 결과를 내려받았다는 사실만으로 학습에 적합한 데이터가 되지는 않습니다. 파일을 읽을 수 있는지, 이미지의 형태가 입력에 맞는지, 분류에 사용할 자료로 정리돼 있는지를 확인하는 단계가 필요했습니다.

공개해 둔 초기 실험에는 파일 형식을 확인하는 처리와 가로세로 비율로 입력을 걸러내는 코드가 남아 있습니다. 범주별 폴더에서 학습 자료를 읽고, 크기를 맞추고, 라벨이 붙은 샘플을 눈으로 확인하는 과정도 함께 작성했습니다. 이 코드가 모든 잘못된 이미지를 찾아내는 완성된 검증기는 아니었지만, 수집과 학습 사이에 정리 과정이 필요하다는 점을 구현에 반영한 출발점이었습니다.

프로젝트에서는 벡터값을 비교해 데이터 클렌징과 후처리를 수행하는 Python 파이프라인도 직접 만들었습니다. 이미지 분류 모델을 학습하는 일과 그 모델이 다룰 자료를 정리하는 일을 하나의 개발 범위로 맡았습니다. 최종 작업 기록에 남은 학습 규모는 이미지 32,474장, 사용한 장비는 RTX 2080 한 장입니다.

훈련이 잘되는 것과 새 사진을 맞히는 것은 달랐습니다

이미지에서 시각적 특징을 학습하는 합성곱 신경망, CNN을 TensorFlow와 Keras로 구성했습니다. 입력 크기와 픽셀값을 맞추고, 뒤집기와 작은 회전으로 학습 입력을 변형했습니다. 같은 복종이 사진의 방향과 촬영 형태에 따라 달라 보이는 문제를 다루기 위한 실험입니다.

남아 있는 초기 실행 로그에서는 훈련 정확도가 계속 올라가는 동안 검증 결과가 같은 속도로 좋아지지 않는 모습을 볼 수 있습니다. 학습 자료를 더 잘 외우는 것과 새 사진에 적용되는 것을 구분해야 했습니다. 학습용·검증용 입력을 나누고, 검증 손실을 지켜보며 학습을 멈추는 조건과 모델 저장, TensorBoard 기록을 연결했습니다. 최종 점수 하나만 남기기보다 학습 과정에서 어떤 변화가 있었는지 확인할 수 있게 한 구성입니다.

제한된 장비에서 의류 데이터를 수집하고 정리한 뒤, 학습·검증·추론 흐름을 연결하는 것이 제 역할이었습니다. 데이터 처리와 모델 코드를 모두 다뤄야 실제 이미지가 결과로 바뀌는 전 과정을 조정할 수 있었습니다.

노트북 밖에서 사진을 넣어보기

학습 코드가 실행되는 것과 다른 사람이 사진을 넣어 결과를 보는 것은 별개의 작업입니다. 초기 구현에서는 Flask로 이미지 업로드 화면을 연결했습니다. 업로드한 파일을 학습 때와 같은 크기로 바꾸고 모델에 전달한 뒤, 입력 이미지와 예측한 복종·점수를 함께 보여주도록 했습니다.

이 경로는 모델의 출력을 실제 사진과 나란히 확인하는 접점이었습니다. 학습 로그에서는 분류가 맞았는지만 집계되지만, 개별 사진을 놓고 보면 어떤 입력에서 어떤 답이 나왔는지 살필 수 있습니다.

ERP 업무와 이어진 개발 범위

세원에서는 의류 분류와 함께 기존 Delphi 기반 ERP를 웹으로 옮기는 EWERP 연구·개발도 담당했습니다. 업무 소프트웨어를 브라우저에서 사용할 수 있도록 만드는 작업과, 그 안에서 다루는 의류 데이터를 자동으로 분류하는 작업을 함께 경험했습니다.

공개된 EWERP 저장소에는 메뉴 구조, 프로그램 정보, 매뉴얼과 변경 기록을 관리하는 Django 코드가 남아 있습니다. 이 코드는 의류 분류 모델과는 별도의 업무 도구입니다. 모델 실험은 AI 저장소에서, 관련 웹 ERP 작업은 Online-Fashion-ERP 저장소에서 확인할 수 있도록 구분했습니다.

남아 있는 결과와 확인 범위

당시 프로젝트 기록에는 복종 분류 정확도 90% 이상이 남아 있습니다. 다만 공개 노트북은 개발 중간의 실험이며, 이 최종 결과와 동일한 데이터·모델·평가 조건을 담은 배포본은 아닙니다. 공개본의 실행 로그를 최종 성과의 재현 자료로 제시하거나, 그 정확도가 서로 다른 모든 쇼핑몰에 그대로 적용된다고 설명하지 않습니다.

이 프로젝트에서 맡은 핵심은 데이터 수집·정리부터 모델 학습과 결과 확인까지 혼자 연결한 일이었습니다. 분류기를 업무에 적용하려면 모델 선택뿐 아니라 입력을 다루는 코드와 결과를 확인할 수 있는 사용 경로도 필요하다는 점을 배웠습니다.

의류 분류 실험 코드 · 관련 EWERP 코드

메시지 보내기