TiefVision – End-to-End 이미지 유사성 검색 엔진

TiefVision은 딥러닝을 기반으로 하는 종합적인 end-to-end 이미지 기반 검색 엔진입니다. 이미지 분류(image classification), 이미지 위치(OverFeat )와 이미지 유사도(Deep Ranking)를 수행합니다.

TiefVision은 Torch와 Play Framework (스칼라 버전) 에서 구현됩니다 . 현재 CUDA를 지원하는 GPU 환경의 Linux 만 지원합니다.

 

 

1. 특징

이 프로젝트는 딥러닝 모듈 과 도구 모듈로 두 가지 모듈로 나뉘어 있습니다 :

2. 딥러닝 모듈

TiefVision에 포함된 딥러닝 모듈입니다.

2.1. Transfer Learning

TiefVision은 인코딩 목적으로 사용되는 단순화된(그룹화하지 않은) AlexNet 네트워크로 전송 합니다. Transfer Learning 단계에 관련된 단계는 다음과 같습니다.

  • 이미 훈련된 AlexNet 신경망을 2개의 신경망으로 분리합니다

  • 고급 기능의 인코더 ( “이미지 인코더”) 역할을하는 하위 convolutional part

  • 상위/최상위에 완전히 연결된 부분은 이미지를 다른 용도로 분류하기 위해 폐기(ImageNet 분류).

  • 엔코더 신경망 (하단)에서 마지막 최대 풀링 단계 크기를 줄여 공간 정확도를 높입니다.

2.2. 이미지 분류

이미지 분류 모듈은 다음 단계를 수행합니다.

  • 인코더 신경망을 사용하여 대상 이미지 (예 : 드레스)와 배경의 모든 옷감을 인코딩합니다.

  • 대상 이미지 자르기 : 작물의 50 % 이상이 대상 이미지 경계 상자 안에 있습니다. 드레스 데이터 세트의 경우 50 % 이상이 의류를 포함되게 자릅니다(배경의 최대 50 %를 포함 할 수 있음).

  • 배경 이미지 자르기 : 의류의 50 % 이상이 대상 이미지 배경을 포함하는 방식으로 이미지를 자릅니다 . 드레스의 예를 들어, 옷감의 적어도 50 %가 배경을 포함하고 있습니다.

  • 완벽하게 연결된 신경망을 훈련시켜 대상 이미지 옷감(예 : 드레스)과 배경 옷감(예 : 사진 스튜디오 배경)을 분류합니다.

2.3. 이미지 위치 ( OverFeat 기준 )

이미지 위치 모듈은 다음 단계를 수행합니다.

  • 대상 이미지 자르기 데이터세트를 정규화된 경계 상자 델타 (경계 상자 왼쪽 위 점과 경계 상자 좌표 사이의 거리)와 함께 인코딩합니다 .

  • 두 개의 상대 경계 상자를 예측하기 위해 완전히 연결된 4개의 신경망을 훈련시킵니다.

  • 왼쪽 상단 점의 2 차원에 대한 두 개의 신경망.

  • 오른쪽 아래 점의 두 가지 차원에 대한 두 개의 신경망.

  • 이미지 분류 신경망을 사용하여 배경 작물을 필터링하는 경계 상자를 추출하고 경계 상자 신경망을 사용하여 경계 상자를 평균화합니다.

2.4. 이미지 유사성 ( Deep Ranking에 기반 )

유사성은 두 이미지 인코딩 사이의 거리를 기반으로합니다. TiefVision은 인코딩된 이미지를 도트가 이미지 간의 유사 거리 역할을 하는 공간으로 매핑하는 신경망을 교육합니다. 인코딩이 정규화되면 내적은 인코딩 사이의 각도의 코사인을 계산합니다.

  • H : 기준 이미지

  • H + : 기준 이미지 ( H )와 유사한 이미지 .

  • H- : H 와 유사 하지만 H + 와 유사하지 않은 또 다른 이미지 .

Hinge 손실을 사용하여 H + 를 H 보다 H에 가깝게 만드는 신경 회로망을 훈련시킨다 : l (H, H +, H-) = max (0, margin + D (H, H +) – D (H, H-)) 여기서 D는 : 신경망의 출력 공간에 매핑 된 두 영상의 내적 인 D (H1, H2) = NN (H1) · NN (H2)의

3. 도구 모듈

TiefVision 에는 데이터 세트 생성을 쉽게하고 따라서 생산성을 높이기위한 일련의 웹 도구가 포함되어 있습니다.

현재 도구는 다음과 같습니다.

  • 시각적 경계 상자 데이터베이스 편집기

 

 

 

 

 

  • 다음을 위한 자동화된 훈련 및 테스트 데이터 세트 생성 :

  • 이미지(자르기) 분류

  • 경계 상자 회귀

  • 이미지 유사성 (Deep Ranking)

4. 개발자 가이드

자세한 내용은 개발자 가이드 를 참조하십시오.

5. 저작권

저작권 (C) 2016 Pau Carré Cardona – 판권 소유는 Apache License v2 의 조건에 따라 이 코드를 사용, 배포 및 수정할 수 있습니다.

소스코드 다운로드

https://github.com/paucarre/tiefvision

Tags:

tiefvision

CNN

OverFeat

객체인식

AlexNet

Transfer

Torch

Play