빅데이터 기반의 패션의류 분석dslab.konkuk.ac.kr/class/2014/14cd2/6/졸업작품 중간...

20
- 1 - 지도교수님 하 영 국 교수님 (인) 졸업작품 중간 보고서 T6 200711459 이남섭 200711468 장재호 201011346 오지연 빅데이터 기반의 패션의류 분석

Upload: others

Post on 07-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

- 1 -

지도교수님 하 영 국 교수님 (인)

졸업작품 중간 보고서

T6

200711459 이남섭200711468 장재호201011346 오지연

빅데이터 기반의 패션의류 분석

- 2 -

- 목차 -

1. 프로젝트 소개 ················································ 31.1 배경 및 목적 ··············································· 31.2 프로젝트 기능 ············································· 4

2. 관련 기술 ···················································· 52.1 웹 사이트 개발 ············································ 52.2 패션 데이터 분석 알고리즘 ···························· 11

3. 기대 효과 ···················································· 13

4. 진행 상황 ···················································· 13

5. 참조 ···························································· 20

- 3 -

1. 프로젝트 소개1.1 배경 및 목적 최근에 대부분의 사람들이 페이스북, 트위터, 인스타그램 같은 SNS 서비스를 이용한다. SNS는 특정한 관심이나 활동을 공유하는 사람들 사이의 관계망을 구축해 주는 온라인 서비스이다. 하지만 사용하는 사람들이 늘어나면서 너무 많은 정보 중에서 원하는 정보를 얻기가 힘들어졌다.

이 자료에서 나타듯이 20대가 특히 관심을 갖는 부분은 외모이다. 따라서 이번 프로젝트에서는 패션 스타일에 대한 부분으로 특화된 SNS를 만들면서, 패션 사진 분석과 추천기능을 통해 쇼핑몰과의 연동을 목적으로 하였다. 가상공간에 존재하는 상점인 인터넷, 모바일 쇼핑몰은 오프라인 매장과 달리 시간적, 공간적 제약이 없다는 강점을 지니고 있으며, 향후 쇼핑 시장은 더욱 확대될 것으로 기대된다. 인터넷 쇼핑 시장이 커지면서 원하는 의류를 인터넷으로 구매하는 비율이 점차 높아졌으나, 시중에 있는 패션 관련 어플리케이션이나 인터넷 서비스들은 단순히 코디만을 추천해주고 있다. 따라서 우리는 사용자들이 SNS를 통해 다른 사람들과 스타일에 대한 정보를 공유하며, 인터넷에 있는 패션 관련 사진들을 분석하고 다른 사람들의 포스팅을 바탕으로 보다 편리하게 원하는 정보를 찾을 수 있도록 하고 새로운 스타일을 추천해주며 판매자의 쇼핌몰까지 연동하는 통합 패션 관련 SNS를 구현하고자 한다.

- 4 -

1.2 프로젝트의 기능(use case 분석)

- 5 -

Spring 모듈

※ 여기서 추천 기능은 Clothing Parsing 알고리즘을 사용하여 빅 데이터를 분석하는 기능으로 상세 기술 설명에서 자세하게 설명함

2. 관련 기술2.1 웹 사이트 개발① Spring Framework- Rod Johnson이 만든 오픈소스 프레임워크로 복잡한 엔터프라이즈 애플리케이션 개발을 겨냥하여 만들어진 프레임워크- Ejb 기반으로 개발을 하지 않고 POJO 기반으로 개발을 하더라도 가볍고 제어가 가능한 상호 관련이 적은 AOP를 지원하고 컨테이너를 통해 라이프사이클을 관리하고 xml 기반으로 컴포넌트를 개발할 수 있도록 지원해주는 프레임워크

- 특징- 경량의 프레임워크(가볍다) - 무거운 EJB의 대체 기술- 설정 파일을 통해 의존관계를 주입하는 DI 지원(느슨한 결합도)- 공통 관심사항을 분리하는 AOP지원(트랜잭션, 로깅, 보안)- 특정 interface나 class를 상속받지 않아도 되는 POJO 지원- 영속성과 관련된 다양한 API지원(JDBC, myBatis, Hibernate 등등)

- 6 -

● Spring Core스프링의 근간이 되는 IoC(또는 DI)기능을 지원, Bean Factory를 기반으로 Bean 클래스들을 제어할 수 있는 기능을 지원한다

● Spring AOP스프링에 Aspect Oriented Programming을 지원하는 기능이다. 이 기능은 AOP Alliance 기반 하에서 개발되었다.

● Spring ORMORM(Object/ Relational Mapping)기능을 제공하는 모듈이다. ORM 프레임워크(Hibernate, myBatis)와 JDO(Java Data Object)를 지원한다.

● Spring DAODAO(Data Access Object) 기능을 제공하는 모듈. JDBC에 의한 데이터베이스 엑세스를 지원하고 트랜잭션 관리의 기반이 된다.

● Spring Web웹 어플리케이션 개발에 필요한 Web Application Context와 Multipart Request 등의 기능을 지원한다. 또한 스트럿츠, 웹워크와 같은 프레임워크의 통합을 지원하는 부분을 담당한다.

- DI(Dependency Injection) : 의존성 주입- DI는 스프링 컨테이너가 지원하는 핵심 개념 중 하나- DI는 객체 사이의 의존관계를 객체 자신이 아닌 외부의 조립기가 수행- 설정 파일이나 어노테이션을 이용하여 객체간의 의존관계를 설정

- 7 -

- Spring MVC 3.x① 2.x에서는 특정 Conroller를 상속 하거나 implements 해야 하나 3.x에서

는 POJO 코딩 방식이 가능하다.

② 2.x에서는 Controller마다 클래스가 필요하여 많은 컨트롤러 클래스가 필요하고 설정문서가 길어 졌으나 3.x에서는 클래스 하나에 메소드로 사용자 요청 처리가 가능하다.

③ 3.X에서 Controller부분이 많이 변했으며 MVC의 어노테이션을 권장함.

④ org.springframework.web.servlet.mvc 안의 Abstractcontroller를 제외한 대부분이 Deprecated 되었음.

- Spring MVC 컴포넌트간의 관계와 흐름

- Client의 요청이 들어오면 DispatchServlet이 가장 먼저 요청을 받는다.- HandlerMapping이 요청에 해당하는 Controller를 return

- 8 -

- Controller는 비즈니스 로직을 수행하고 ModelAndView에 반영하여 리턴- ViewResolver는 view name을 받아 해당하는 View 객체를 return- View는 Model 객체를 받아 rendering.

② myBatis- 개발과 유지보수가 쉽도록 소스코드가 박혀있는 SQL을 별도의 파일로 분리하고, 단순하고 반복적인 JDBC 코드를 캡슐화하여 데이터베이스 프로그래밍을 간결하게 만들기 위한 프레임워크- myBatis 사용 시나리오-> Dao는 SqlSessionFactory에게 SQL을 실행할 객체를 요구-> SqlSessionFactory는 SqlSession 객체를 생성하여 반환-> Dao는 SqlSession 객체에게 SQL실행을 요청-> SqlSession 객체는 SQL이 저장된 맵퍼 파일(XML)에서 SQL을 찾는다.-> SqlSession은 JDBC드라이버를 통해 데이터베이스에 질의를 실행-> SqlSession은 데이터베이스로부터 가져온 질의 결과를 객체로 생성하여 반환-> Dao는 사용이 끝난 SqlSession을 닫는다* myBatis의 핵심 컴포넌트

- SqlSession* SqlSession의 주요 메소드

- 동적 SQL*동적 SQL을 작성할 때 사용하는 엘리먼트들

- 9 -

③ Maven- 프로젝트 오브젝트 모델, 표준집합, 프로젝트 라이프사이클, 의존성관리 시스템, 라이프사이클에 정의된 단계에서 플러그인 골을 실행하기 위한 로직을 포함하는 관리 툴- Maven과 Ant의 차이점

- 10 -

④ 부트스트랩- 트위터에서 근무하는 UI 디자이너인 마크 오토(Mark Otto)와 개발자인 야곱 손튼(Jacob Thhornton)이 만든 웹 디자인 프레임워크- HTML + CSS + JS를 이용한 프레임워크- 부트스트랩의 구조

- 부트스트랩을 사용에 필요한 기본 서식 HTML

- 11 -

- 부트스트랩 특징1) 시간 절약2) 커스터마이징 : 제공되는 여러 템플릿 중에 목적에 맞게 원하는 부분만 취하여 사용3) 디자인 : 모바일, PC등 목적에 맞는 적절한 그리드 배치, 버튼이나 경고창 등 복잡한 자바스크립트 기능들 기본 구현4) 일관성 : 플랫폼에 상관없이 일관성 있는 화면이나 기능을 제공5) 반응형 웹 : 모바일기기나 PC나 해상도에 맞춰서 적절하게 화면을 구성해주는 반응형

2.2 패션 데이터 분석 알고리즘(Clothing Parsing)

1)Problem Formulation

- 12 -

2)Superpixels

- 이미지를 의미있는 픽셀 조각으로 나누는 알고리즘- 위 논문의 것을 그대로 사용. 단, 임계값을 조절하여 각 영상 이미지에서 하나의 과분할만 얻음3)Pose Estimation

4)Clothing Labeling

- 13 -

5)Pose Re-estimation

3. 기대효과- 패션 분야 SNS와 블로그, 쇼핑몰 등의 서비스를 통합하여 제공함으로써 사용자가 손쉽게 패션에 관련된 정보를 획득할 수 있다.- 최근 가장 인기가 높았던 패션 아이템들에 대한 정보를 조회할 수 있으며, 다른 사용자들의 포스팅을 통해 나에게 어울리는 아이템과 코디를 추천받을 수 있다.- 판매자 또한 사용자들의 요구에 맞는 아이템이나 코디를 제공함으로써 높은 광고효과를 얻을 수 있다.

4. 진행 상황- 크게 ①웹 어플리케이션 부분과 ②사진 분석 관련 알고리즘을 통한 추천 기능 구현으로 나누어서 개발 중이며, 현재 웹 어플리케이션 구현이 대부분 완료된 상황이고, 사진 분석 알고리즘은 논문 분석 단계에 있다. 현재 문제 공식화와 슈퍼픽셀 관련 논문 분석이 완료된 상태이며, 앞으로 나머지 3개 부분의 논문분석을 끝내고 알고리즘을 구현할 예정이다.

- 14 -

5. 4.1 웹 어플리케이션 부분 진행 상황- Use case diagram

- 15 -

- 물리적/논리적 데이터베이스 모델링

※ 추천 기능을 업데이트 하면서 해당 부분에 대한 수정이 필요할 것으로 예상

- 16 -

6. - 실행 화면

메인화면

회원가입 / 이메일 인증

- 17 -

로그인 화면

기본 메인페이지 – 포스팅 시간순 정렬

등록한 옷장 – 기본페이지

마이스타일 기본 메뉴

- 18 -

아이템 등록

아이템 포스팅

- 19 -

스타일 포스팅

스타일 포스팅 상세조회/사용된 아이템 확인

판매자 연동 화면

- 20 -

SNS기능-fans(following)된 사용자 확인

SNS 기능-Stars(나를 following) 사용자 확인

스타뉴스(팬으로 등록한 사용자들의 활동 내역 보기)

7. 참조문헌- Stony Brook 대학교의 Parsing Clothing 논문참조- Stony Brook 대학교의 fashion_parsing 논문참조- P. Arbelaez, M. Maire, C. Fowlkes, and J. Malik.의 Contour detection and hierarchical image segmentation 논문 참조- 열혈강의 영상 처리 프로그래밍 책 참조