ViCoS Eye a web service for visual object categorization Domen - - PowerPoint PPT Presentation

vicos eye a web service for visual object categorization
SMART_READER_LITE
LIVE PREVIEW

ViCoS Eye a web service for visual object categorization Domen - - PowerPoint PPT Presentation

ViCoS Eye a web service for visual object categorization Domen Tabernik, Luka ehovin, Matej Kristan, Marko Boben, Ale Leonardis University of Ljubljana Faculty of Computer and Information Science Visual Cognitive Systems Laboratory


slide-1
SLIDE 1

ViCoS Eye – a web service for visual

  • bject categorization

Domen Tabernik, Luka Čehovin, Matej Kristan, Marko Boben, Aleš Leonardis

University of Ljubljana Faculty of Computer and Information Science Visual Cognitive Systems Laboratory

slide-2
SLIDE 2

CVWW2013, Hernstein, February 2013

Computer Vision as Web-Services

  • content-based image search:

– find similar images from a huge database

Query image

  • existing services:
  • Google Image Search
  • TinEye
  • Microglossa
slide-3
SLIDE 3

CVWW2013, Hernstein, February 2013

Limitations of existing services

  • perform well if query image from the web
  • poor performance for images taken by camera:
  • no knowledge about the content

– perform similarity match using local features and color distribution.

  • TinEye Web-Site:

– „TinEye does not commonly return similar matches, and it cannot recognize the contents

  • f any image.“[1]
  • ur goal: present an architecture for running visual object

categorization as backend support for a web-service

[1] http://www.tineye.com/faq#similar

slide-4
SLIDE 4

CVWW2013, Hernstein, February 2013

Requrements for our system

  • nline web-service for computer vision

algorithms

– support for more advanced computer vision algorithms (object categorization etc.)

  • handle hundreds of requests per second
  • fast response time

– recommended tolerable waiting time (TWT) for web pages is approximately 2 seconds [1] – for our web-service 5 seconds is acceptable

  • fully utilize available hardware

– distributed processing in a cluster of machines (a cloud) – allows for high scalability – better handle increased traffic in future

[1] F. F.-H. Nah. A study on tolerable waiting time: how long are web users willing to wait? Behaviour & IT, 23(3):153–

163, 2004.

slide-5
SLIDE 5

CVWW2013, Hernstein, February 2013

Two-level architecture

Distributed learning

  • process from 1000 to 100 000 of

images

  • distributing using MapReduce

(Hadoop implementation)

  • learn appropriate libraries/models etc.

Real-time stream processing

  • processing requests from web-service
  • distributing by Storm application
  • fast response time
  • process hundreds of requests at once

Storm

slide-6
SLIDE 6

CVWW2013, Hernstein, February 2013

MapReduce is a two stage processing procedure:

Distributed learning - MapReduce

slide-7
SLIDE 7

CVWW2013, Hernstein, February 2013

Distributed learning - implementation

  • Object categorization with Support Vector Machine using HoC

[Tabernik et.al. 2012] descriptor:

1. Process the input image with an LHOP library 2. Generate HoC descriptor from LHOP model of an image 3. Classify image into any of the known categories using SVM

LHOP Model HoC Descriptor SVM

slide-8
SLIDE 8

CVWW2013, Hernstein, February 2013

Distributed learning - implementation

Translate the following learning process into MapReduce domain:

1. Process the input image with LHOP library 2. Generate HoC descriptor from LHOP model of an image 3. Train SVM for each category using all images

No reduce function

slide-9
SLIDE 9

CVWW2013, Hernstein, February 2013

Distributed learning - performance

  • Using Caltech-101 as training dataset

– 2x9000 images as we mirror each image

  • 101 categories and ~18000 images trained less than 40 min

Hardware:

  • 3x Hadoop instances running in

virtual machine

  • each machine:
  • 40 cores (35 worker nodes)
  • 80 GB RAM
  • Estimation for bigger dataset:
  • 100 000 images ~4 hours
  • 1 000 000 images ~40 hours
slide-10
SLIDE 10

CVWW2013, Hernstein, February 2013

Real-time stream processing - Storm

  • Storm[1] is an open source distributed real-time computation system
  • Provides infrastructure of workers and queues distributed across

cluster machines

  • Writing application in a form of digraph (topology):

– Spouts: sources of data – Bolts: processing elements

Spout Bolt

[1] http://storm-project.net

slide-11
SLIDE 11

CVWW2013, Hernstein, February 2013

Real-time stream processing – our topology

  • separated workers for bolts - pipeline-like approach
  • multiple workers per bolt – handle multiple requests at once
  • easily scalable
  • performance:

– response time: ~2.1 sec = 1.5s (LHOP) + 0.4s (SVM) + other

  • Hardware: 8 core CPU, 16 GB RAM

– estimate of max load on 105 nodes: 48 requests per second before saturation

slide-12
SLIDE 12

CVWW2013, Hernstein, February 2013

Web Service front end

  • Web-site:

http://eye.vicos.si

  • Android app:
slide-13
SLIDE 13

CVWW2013, Hernstein, February 2013

Conclusion

  • presented an architecture capable of running computer vision

algorithms in cluster of machines

– learn 1000 and 100 000 images in manageable time – response time of ~2 sec – handle ~50 requests per second

  • future work:

– detection with LHOP (localization + classification) – category-oriented content-based image search