DOI QR코드

DOI QR Code

Implementation of Secondhand Clothing Trading System with Deep Learning-Based Virtual Fitting Functionality

딥러닝 기반 가상 피팅 기능을 갖는 중고 의류 거래 시스템 구현

  • 정인환 (한성대학교 컴퓨터공학부) ;
  • 황기태 (한성대학교 컴퓨터공학부) ;
  • 이재문 (한성대학교 컴퓨터공학부)
  • Received : 2023.12.22
  • Accepted : 2024.02.09
  • Published : 2024.02.29

Abstract

This paper introduces the implementation of a secondhand clothing trading system equipped with virtual fitting functionality based on deep learning. The proposed system provides users with the ability to visually try on secondhand clothing items online and assess their fit. To achieve this, it utilizes the Convolutional Neural Network (CNN) algorithm to create virtual representations of users considering their body shape and the design of the clothing. This enables buyers to pre-assess the fit of clothing items online before actually wearing them, thereby aiding in their purchase decisions. Additionally, sellers can present accurate clothing sizes and fits through the system, enhancing customer satisfaction. This paper delves into the CNN model's training process, system implementation, user feedback, and validates the effectiveness of the proposed system through experimental results.

본 논문은 딥러닝을 기반으로 한 가상 피팅 기능을 갖춘 중고 의류 거래 시스템의 구현을 소개한다. 제안된 시스템은 사용자가 중고 의류를 온라인으로 시각적으로 착용하고 핏을 확인할 수 있는 기능을 제공한다. 이를 위해, 합성곱(CNN) 알고리즘을 사용하여 사용자의 신체 형상과 의류의 디자인을 고려한 가상 착용 모습을 생성한다. 이를 통해 구매자는 온라인에서 실제로 의류를 입기 전에 핏을 미리 확인할 수 있으며, 이는 구매 결정에 도움을 준다. 또한, 판매자는 시스템을 통해 정확한 의류 사이즈와 핏을 제시할 수 있어 구매자의 만족도를 높일 수 있다. 본 논문은 CNN 모델의 학습 절차, 시스템의 구현 방법, 사용자 피드백 등을 자세히 다루고, 실험 결과를 통해 제안된 시스템의 유효성을 입증한다.

Keywords

Ⅰ. 서론

스마트폰과 인터넷의 발달에 따라 모바일 기반 온라인 중고 의류 시장은 빠르게 성장하고 있다. 그러나 이러한 모바일 환경에서의 중고 의류 거래에는 몇 가지 한계점이 존재한다. 기존의 많은 중고 거래 마켓들이 존재하지만 판매 중인 상품의 대부분은 대략적인 정보(예: 크기, 색상, 스타일)를 사진과 글로만 확인할 수 있다[1][2]. 특히 의류의 크기를 단순히 S, M 또는 L 형식으로 등록하는 경우가 많으므로 구매 희망자가 판매자에게 판매 중인 의류의 정확한 크기 정보를 요구하는 경우가 많이 발생하며 판매자는 크기를 직접 측정하거나 해당 상품 판매 사이트에 접속하여 자세한 제품 정보를 알아내야 한다. 또한 여러 명의 구매 희망자가 같은 상품의 정보를 요구한다면 같은 일을 반복하여야 한다. 이 과정은 판매자와 구매자 모두에게 번거로운 과정이다. 상세 크기를 안다고 할지라도 직접 착용해 보지 않고는 핏이나 본인의 피부 톤과 어울리는지 여부를 알기 어렵다. 이는 거래 완료 후 구매자가 구입한 옷을 착용하였을 때 폭이나 길이, 색상 등의 문제로 실패할 가능성이 있다.

본 논문에서는 이러한 문제를 해결하기 위해 기본적인 중고 거래 기능과 더불어 구매 희망자가 촬영한 본인의 얼굴 사진과 키, 몸무게, 성별 정보만으로 개인 모델을 생성하고 판매자가 촬영한 옷의 사진으로 실시간으로 가상 피팅을 해볼 수 있는 기능을 갖는 중고 의류 거래 시스템, 일명 피치마켓(피팅의 가치 마켓)을 구현하였다.

구현된 피치마켓에서는 가상 피팅 기능으로 옷의 핏과 피부 톤과의 어울림을 구매 전에 시착하고 확인함으로써 판매자와 구매자 간의 연락을 간소화하고 구매 희망자는 거래 상품의 실패 가능성을 줄일 수 있다.

본 논문의 구성은 다음과 같다. 2장에서는 본 논문의 연구 배경을 설명하고, 3장에서는 피치마켓 전체 시스템의 설계에 대해 설명한다. 4장에서는 구현된 내용을 소개하며, 5장에서는 결론을 맺는다.

Ⅱ. 관련 연구

1. 가상 피팅

Tak et al은 인터넷 환경이 발전하기 시작한 초기에 온라인 쇼핑몰에 환경에 필요한 PC 기반 가상 피팅 시스템을 제안하였다[3]. 이 연구에서는 사용자를 다양한 각도로 촬영한 이미지를 기반으로 사용자의 체형에 맞는 3D 모델을 생성하고 그 위에 상, 하의를 대상으로 각각 다양한 Texture를 Mapping할 수 있다. 이 연구는 외곽선 추출을 통한 이미지 합성 방식이며 실제 의류가 아닌 색상과 질감만 표현함으로써 자연스럽지 않은 한계를 갖고 있다.

Sang-hee Park et al은 GAN(Genrative Adversarial Network) 기법을 이용하여 사용자와 의류 이미지를 학습시킨 데이터를 기반으로 새로운 의류를 착의한 이미지를 생성시켜주는 시스템을 제안하였다[4][5]. 이 연구는 GAN을 통한 가상 피팅의 가능성을 보여주었으나 모델과 이미지를 사전에 학습시켜야 하고 실제 의류 거래 시스템과 실시간 연동은 어렵다.

본 연구에서는 모바일 환경에서 이용 가능하며 실제 중고 의류를 실시간으로 착의해 볼 수 있는 가상 피팅 시스템을 갖는 중고 의류 거래 시스템을 제안한다.

2. 딥러닝과 가상 피팅

딥러닝을 이용한 기존 연구는 대상자의 단순한 식별에서 다양한 인식과 인지 영역으로 확대되고 있다[6][7][17]. 또한 딥러닝으로 학습한 결과를 바탕으로 GAN과 같이 새로운 정보를 생성하는 생성형 인공지능으로 발전하고 있다[18].

본 연구에서는 딥러닝과 가상 피팅에 필요한 다음과 같은 관련 기술을 활용하였다.

- Anaconda

Anaconda는 머신 러닝과 데이터 과학 연구에 사용되는 환경 관리 도구로, 이를 통해 머신 러닝 모델의 개발과 실험을 용이하게 수행할 수 있다[8].

- PyTorch

PyTorch는 딥 러닝 모델의 구현과 학습을 위한 오픈 소스 프레임워크로, 본 연구에서는 PyTorch를 사용하여 가상 피팅 시스템의 딥 러닝 모델을 개발하고 효율적으로 학습시켰다[9].

- CUDA 및 CuDNN

CUDA와 CuDNN는 NVIDIA의 GPU 환경을 이용한 딥 러닝 모델의 가속화를 위한 필수 도구로, CUDA는 병렬 처리 및 고성능 연산을 위한 API이고 CuDNN은 딥러닝 모델의 학습과 추론을 하기 위한 라이브러리이다. 본 연구에서는 GPU 가속을 통해 가상 피팅 시스템의 성능을 향상시켰다[10][11].

- CP-VTON-Plus

CP-VTON-Plus[12]는 가상 피팅을 수행하는 딥 러닝 모델로, 본 연구에서는 이 모델을 활용하여 중고 의류 거래 시스템의 가상 피팅 기능을 개발하고 평가하였다. 자세한 내용은 다음 장에 기술한다.

Ⅲ. 시스템 설계

1. 시스템 구성

본 연구에서 구현한 전체 시스템은 그림 1과 같다. 구현된 시스템은 Spring Boot 기반 Back-End 서버와 웹과 안드로이드 사용자를 위한 React 기반 Front-End로 구성되어 있다. 서버는 Amazon Cloud EC2 가상 서버를 이용하였다. 서버에 있는 TensorFlow, Anaconda와 PyTorch 프레임워크를 사용한 딥러닝 엔진이 Flask를 이용해 Spring Boot 기반 중고 거래 시스템 메인 프로그램과 연동한다. 웹과 모바일 사용이 모두 가능하도록 반응형 웹(Responsive Web)과 React로 Front-End가 구성되어 있다.

OTNBBE_2024_v24n1_17_f0001.png 이미지

그림 1. 시스템 구성도

Fig. 1. System View

2. 중고 거래 시스템 기능 설계

본 연구에서는 실제 중고 거래 시스템에서 가상 피팅 기능을 사용할 때 필요한 연구를 위해 그림 2와 같은 기능들을 설계하고 구현하였다. 본 논문에서는 일반적인 중고 거래 시스템의 기능 설계 설명은 생략하고 개인 모델과 가상 피팅 기능 설계 부분에 대해 설명한다.

OTNBBE_2024_v24n1_17_f0002.png 이미지

그림 2. 중고 거래 시스템 기능

Fig. 2. Functions of Seconhand Trading System

3. 가상 모델 생성 기능 설계

사용자가 입력한 이미지를 이용해 가상 모델을 생성하기 위해서는 PyTorchy를 이용한 딥러닝 기반 가상 모델 생성 딥러닝 모델을 만들고 사용자가 입력한 이미지를 가상 모델 생성 딥러닝 모델에 적용한 결과 이미지를 얻는 과정이 필요하다. 그림 3은 가상 모델 생성 흐름도이다.

OTNBBE_2024_v24n1_17_f0003.png 이미지

그림 3. 가상 모델 생성 흐름

Fig. 3. Virtual Model Genrating Flow

가. 가상 모델 생성 딥러닝 모델

PyTorch를 이용 딥러닝 모델을 만들고 학습하는 과정은 다음과 같다.

- 데이터 준비 : 학습에 필요한 이미지 데이터 준비. 본 논문에서는 남/여 각각 약 500개의 이미지가 학습에 사용되었다. 학습에 사용된 이미지는 주로 의류 쇼핑몰에서 볼 수 있는 의상을 착용한 모델의 이미지 들이다.

- CNN 모델 정의 : 학습에 필요한 CNN모델을 정의. 본 연구에서는 작은 커널 크기를 사용하여 이미지 특징을 추출하는 VGG(Visual Geomtry Group)을 적용하였다.

나. 이미지 배경 제거

Rembg(Remove Backgroung)[13]를 이용하여 얼굴만 남겨 놓은 상태로 이미지의 배경을 제거한다. Rembg는 GPU 가속을 지원하기 때문에 빠른 시간에 배경을 제거하고 투명 배경 인물 이미지를 생성하므로 가상 피팅에 필요한 배경과의 합성이 가능하다.

다. 가상 모델 생성

Rembg로 배경이 제거된 이미지를 사강 모델 생성 딥러닝 모델의 입력으로 주고 합성된 이미지를 파일로 생성한다. PyTorch 딥러닝 모델의 첫번째 결과는 가상 모델에 사용될 배경 이미지 아이디며 GAN을 이용하여 새로운 이미를 합성하게 된다.

4. 가상 피팅 기능 설계

본 논문에서는 CP-VTON-Plus 오픈소스를 활용하여 가상 피팅 기능을 설계하고 구현하였으며 다음과 같은 과정이 필요하다.

가. 데이터 준비

PyTorch에서 사용한 가상 모델 생성 딥러닝에 필요한 학습데이터는 피팅 모델들의 이미지였으나 가상 피팅에 필요한 데이터는 의류 이미지와 사용자 이미지의 쌍이다. 모델 학습은 Encoder, Warper, Decoder 네트워크로 구성되어 있으며 학습 데이터셋을 사용하여 모델이 의류를 가상으로 착용한 이미지를 생성하고 이를 실제 의류 이미지와 비교하여 Loss를 최소화한다.

나. 게시물 선택과 배경 제거

피치마켓 앱에서 게시물을 선택하고 선택된 의류를 가상 피팅하기 원하는 경우 앱은 서버에게 가상 피팅 요청을 하게 되며 서버는 선택된 게시물(의류)의 배경을 Rembg를 이용하여 제거한다. 가상 모델의 이미지는 이미 PyTorch를 통해 배경이 제거된 상태로 생성되어 있으므로 추가적으로 배경을 제거할 필요가 없다.

다. 이미지 Resize

입력 이미지와 대상 이미지를 동일한 크기의 해상도로 조정해야 한다. 등록된 게시물의 배경을 제거한 이미지와 가상 모델의 이미지 크기가 다르므로 크기를 일치시켜야 한다. 본 연구에서는 Python의 Pillow(PIL)[14]라이브러 를 사용하였다.

라. Binary Mask 생성

Binary Mask는 사용자 영역과 배경을 나타내는 이미지로, 사용자를 표시하는 픽셀은 1이고 배경은 0으로 표현한다. 본 연구에서는 LIP_JPPNet[15]의 세그멘테이션 모델을 사용하여 Binary Mask를 생성하였다.

마. Openpose를 통한 포즈 추출

Openpose[16]는 이미지에서 인물의 포즈를 추출하는데 사용된다. 이 포즈 정보는 사용자의 신체 포즈 및 자세를 나타내며, 의류를 가상으로 착용할 때 신체 구조와 일치하도록 도와준다. 본 연구에서는 Openpose의 COCO-18 모델로 얻은 Pose Keypoints를 Json 파일 형식으로 변환하여 사용하였다.

바. 피팅 이미지 생성

사용자 이미지와 의류 이미지는 학습이 완료된 CP-Vton-Plus 의 Encoder와 Warper 네트워크에 입력되고, 가상 피팅 이미지는 Decoder 네트워크를 통해 생성된다. 생성된 이미지는 파일 형태로 보관되고 네트워크를 통해 앱으로 전달되며 사용자는 앱 화면을 통해 결과를 확인할 수 있다.

5. 안드로이드 앱

그림 2에서와 같이 안드로이드 앱은 크게 세가지 기능으로 구성된다. 일반적인 로그인, 게시물 등록, 검색, 채팅과 같은 거래를 위한 기능과 가상 모델의 생성과 개인 정보 관리를 위한 마이 페이지, 그리고 가상 피팅을 위한 기능 등이다.

Ⅳ. 구현 및 실험

1. 안드로이드 앱 구현

안드로이드 앱은 React 기반의 반응형 웹 기술을 이용하여 구현되었다. 안드로이드 앱은 사용자 인터페이스를 담당하며 가상 피팅과 같은 모든 기능은 서버에서 담당한다. 구현된 그림 4은 구현된 안드로이드 앱을 실행한 화면이다. 그림 4(a)는 첫 화면이고 (b), (c) 그리고 (d)는 판매를 위해 게시물을 등록하는 화면이다.

OTNBBE_2024_v24n1_17_f0004.png 이미지

그림 4. 안드로이드 앱 첫 화면과 게시물 등록 화면

Fig. 4. Android App First and Posting Screen

그림 5는 개인 정보와 사진을 입력하여 가상 모델을 생성하는 화면이다. 사용자가 카메라 또는 파일을 선택하여 사진을 등록하면 앱은 이미지를 Rest API를 통해 서버에 보내고 서버는 PyTorch 딥러닝으로 생성된 모델 이미지 파일을 생성하고 앱에는 해당 이미지의 URL이 전송된다. 앱은 전송 받은 이미지 URL을 이용하여 가상 모델 생성 결과를 화면에 표시한다.

OTNBBE_2024_v24n1_17_f0005.png 이미지

그림 5. 안드로이드 앱 개인 모델 생성 화면

Fig. 5. Android App Virtual Model Generating Screen

그림 6은 게시물을 검색하여 가상 피팅을 해보는 화면을 보여준다. 사용자는 "아우터" 카테고리를 선택하여 1차 검색을 하였고 다시 "빨간" 이라는 키워드로 검색하여 붉은색 상의가 검색되었다. 사용자는 게시물을 확인하고[피팅] 버튼으로 가상 피팅된 결과를 확인할 수 있다.

OTNBBE_2024_v24n1_17_f0006.png 이미지

그림 6. 게시물 검색 및 가상 피팅 결과 화면

Fig. 6. Search and Virtual Fitting Result Screen

2. 모델 생성 및 피팅 실험

그림 7은 다양한 사용자를 대상으로 가상 모델을 생성하여 가상 피팅 시험을 한 결과 화면이다. 그림에서 보여주는 것과 같이 사용자의 정보와 이미지만으로 자연스러운 가상 모델이 생성되었으며 게시물을 확인하고 가상 피팅을 실시한 결과도 잘 표현되었다.

OTNBBE_2024_v24n1_17_f0007.png 이미지

그림 7. 가상 모델 생성 및 피팅 실험 화면

Fig. 7. Virtual Model and Fitting Experiment Screen

가상 모델 생성과 피팅은 전적으로 서버에서 담당하였으며 딥러닝 학습 과정을 거쳐 생성된 모델을 기반으로 안드로이드 앱에서 요청한 가상모델 생성과 피팅 결과를 실시간으로 표시할 수 있었다.

Ⅴ. 결론

본 연구에서는 중고 마켓 분야에 혁신적인 솔루션을 제공하기 위해 PyTorch와 CP-VTON-Plus를 활용하여 가상 모델을 생성하고 가상 피팅이 가능한 일명 피치마켓 시스템을 설계하고 구현하였다. 시스템은 EC2 클라우드 시스템 환경에 구현되었으며 Spring Boot 기반 Back-End 서버와 React와 반응형 웹 기반 Front-End를 적용한 안드로이드 앱인 피치마켓 앱으로 구성된다.

실험 결과, 본 논문에서 구현한 피치마켓 시스템은 사용자들에게 중고 의류를 실제로 입은 것과 유사한 시각적 경험을 제공하며, 이를 통해 사용자들은 의류의 핏과 스타일을 더 자세히 검토할 수 있었다. 이로써 구매자는 온라인에서도 의류를 구매할 때 더욱 확신을 가질 수 있으며 판매자는 정확한 상품 정보를 제공하여 신뢰를 높일 수 있다.

본 연구에 이은 향후 연구는 우선 안드로이드로만 가능한 앱을 iPhone을 비롯한 다양한 기기에서 사용 가능하도록 하는 것이며 현재 가상 피팅은 상의 또는 하의 하나의 게시물만 대상으로 가능하기 때문에 향후 연구에서는 두 개 이상의 게시물을 대상으로 상, 하의를 한 번에 피팅해 볼 수 있도록 확장할 필요가 있다. 마지막으로 보다 현실적인 핏 확인을 위해 현재 2D로 생성되는 가상모델과 피팅 결과를 3D 형태로 생성하기 위한 딥러닝 모델의 개발이다.

References

  1. Daangn Market, https://www.daangn.com/
  2. Joonggonara, https://web.joongna.com/
  3. Tak, Myung-Ja and Kim, Chee-Yong. "A Study on Virtual Fitting Model System for Internet Fashion Shopping Mall", Journal of Korea Multimedia Society, Vol. 9, No. 9, pp. 1184-1195, 2006. 
  4. Sang-hee Park et al. "A Study on Virtual Fitting Service Using GAN", Proceedings of Korea Information Processing Society, Vol. 26, No. 2, 976-979, 2019. 
  5. Goodfellow, Ian, et al. "Generative adversarial nets." Advances in neural information processing systems 27, 2014. 
  6. Inhwan Jung, Kitae Hwang and Jae-Moon Lee, "Implementation of Pet Management System including Deep Learning-based Breed and Emotion Recognition SNS", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 23, No. 3, pp.45-50, Jun 2023. DOI: https://doi.org/10.7236/JIIBC.2023.23.3.45 
  7. Jae-Moon Lee, Kitae Hwang and et al., "Detection of Smoking Behavior in Images Using Deep Learning Technology", The Journal of The Institute of Internet, Broadcasting and Communication, Vol. 23, No. 4, pp.107-113, Aug 2023. DOI: https://doi.org/10.7236/JIIBC.2023.23.4.107 
  8. Oliphant, T. E., "Anaconda: A Python package manager", Proceedings of the 15th Python in Science Conference, 2016. 
  9. PyTorch.. "PyTorch: Tensors and dynamic neural networks in Python with strong GPU acceleration", https://pytorch.org/
  10. NVIDIA Corporation. "CUDA Toolkit Documentation", https://docs.nvidia.com/cuda/, 
  11. NVIDIA Corporation. "cuDNN Library User Guide", https://docs.nvidia.com/deeplearning/cudnn/
  12. Minar, Matiur Rahman, et al. "Cp-vton+: Clothing shape and texture preserving image-based virtual try-on." CVPR Workshops. Vol. 3. 2020. 
  13. Daniel Gatis. "Rembg : Remove Background", https://github.com/danielgatis/rembg. 
  14. Pillow, "Python Imaging Library", https://pypi.org/project/Pillow/
  15. Clay Gong, Achal Shah. 2018. "LIP_JPPNet", https://github.com/Engineering-Course/LIP_JPPNet 
  16. CMU-Perceptual-Computing- Lab. 2020. "OpenPose", https://github.com/CMU-Perceptual-Computing-Lab/openpose 
  17. Y. Cho, J. Kim, "A Study on The Classification of Target-objects with The Deep-learning Model in The Vision-images," Journal of the Korea Academia-Industrial cooperation Society(JKAIS), Vol. 22, No. 2, pp. 20-25, 2021. 
  18. Sung-Woon Jung, Hyuk-Ju Kwon, Young-Choon Kim, Sang-Ho Ahn, and Sung-Hak Lee, "Image Translation Method based on GAN for Surveillance under Dim Surround," The Journal of KIIT, Vol. 18, No. 8, pp. 9-17, 2020.