Slide 1

Slide 1 text

ػցֶशΠϯϑϥೖ໳ ౔԰༞Ұ࿠

Slide 2

Slide 2 text

Agenda DockerͱAWSͷ࿩Λ͠·͢ ݸผͷػցֶशख๏ͷղઆͳͲ͸͠·ͤΜ

Slide 3

Slide 3 text

͍Ζ͍Ζͳख๏͕͋Δ͚ΕͲ • ࣮૷ΛखݩͰಈ͔͢ͷ͸େม • σϓϩΠ͢Δͷ͸΋ͬͱେม

Slide 4

Slide 4 text

ΠέͯΔObject Detection ͷख๏Λࢼ͍ͨ͠… SSDͬͯͷ͕͍͍Β͍ͧ͠

Slide 5

Slide 5 text

SSD https://soralab.space-ichikawa.com/2016/11/caffe-ssd-demo2/ Single Shot Multibox Detector

Slide 6

Slide 6 text

SSD: Single Shot MultiBox Detector Wei Liu1, Dragomir Anguelov2, Dumitru Erhan3, Christian Szegedy3, Scott Reed4, Cheng-Yang Fu1, Alexander C. Berg1 1UNC Chapel Hill 2Zoox Inc. 3Google Inc. 4University of Michigan, Ann-Arbor 1 [email protected], 2 [email protected], 3{ dumitru,szegedy } @google.com, 4 [email protected], 1{ cyfu,aberg } @cs.unc.edu Abstract. We present a method for detecting objects in images using a single deep neural network. Our approach, named SSD, discretizes the output space of bounding boxes into a set of default boxes over different aspect ratios and scales per feature map location. At prediction time, the network generates scores for the presence of each object category in each default box and produces adjustments to the box to better match the object shape. Additionally, the network combines pre- dictions from multiple feature maps with different resolutions to naturally handle objects of various sizes. SSD is simple relative to methods that require object proposals because it completely eliminates proposal generation and subsequent pixel or feature resampling stages and encapsulates all computation in a single network. This makes SSD easy to train and straightforward to integrate into sys- tems that require a detection component. Experimental results on the PASCAL VOC, COCO, and ILSVRC datasets confirm that SSD has competitive accuracy to methods that utilize an additional object proposal step and is much faster, while providing a unified framework for both training and inference. For 300 ⇥ 300 in- put, SSD achieves 74.3% mAP1 on VOC2007 test at 59 FPS on a Nvidia Titan X and for 512 ⇥ 512 input, SSD achieves 76.9% mAP, outperforming a compa- rable state-of-the-art Faster R-CNN model. Compared to other single stage meth- ods, SSD has much better accuracy even with a smaller input image size. Code is available at: https://github.com/weiliu89/caffe/tree/ssd . Keywords: Real-time Object Detection; Convolutional Neural Network 1 Introduction Current state-of-the-art object detection systems are variants of the following approach: hypothesize bounding boxes, resample pixels or features for each box, and apply a high- arXiv:1512.02325v5 [cs.CV] 29 Dec 2016 ࣮૷͕ެ։͞ΕͯΔʂ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Caffe΍Μ͚…orz

Slide 9

Slide 9 text

؀ڥߏஙͷͭΒΈ • Caffe • OpenCV • pyenv? • tensorflow 0.x, 1.x • keras 1.x, 2.x • chainer 1.x, 2.x, 3.x etc…

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

dockerɺ͔ͭͬͯ·͔͢ • ”ίϯςφ” • ίϯςφ͝ͱʹಠཱͨ͠؀ڥΛߏங • Χʔωϧ͸ϗετOSͱڞ༗ˠ଎͍ • ֤छίϯςφ͕഑෍͞Ε͍ͯΔ • ࣗ෼ͰίϯςφΛ࡞ͬͯ࠶ར༻Ͱ͖Δ Dockerࣗମͷৄ͍͠આ໌͸ল͖·͕͢…

Slide 15

Slide 15 text

$ docker run -it bvlc/caffe:cpu bash root@e276ba715d2f:/workspace# root@e276ba715d2f:/workspace# caffe --version caffe version 1.0.0 ެࣜDockerΠϝʔδ root@e276ba715d2f:/workspace# python -i Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> root@e276ba715d2f:/workspace# python -i Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import caffe >>> root@e276ba715d2f:/workspace# python -i Dockerίϯςφ಺Ͱ࣮ߦ

Slide 16

Slide 16 text

u bash caffe --version python -i 2016, 06:48:10) dits" or . python -i 2016, 06:48:10) dits" or . python -i )PTU04 $POUBJOFS CPPTU QZUIPO CBTI #-"4 DB⒎F ʜ BOPUIFS DPOUBJOFS ʜ ʜ

Slide 17

Slide 17 text

ίϯςφΠϝʔδͷ࡞Γํʢͬ͘͟Γʣ FROM ubuntu:16.04 RUN apt-get update\ && apt-get install python Dockerfile $ docker build -t ubuntu-python . ϕʔεΠϝʔδ Πϯετʔϧͱ͔ॾʑ (΄΅Կ΋Πϯετʔϧ͞Ε͍ͯͳ͍) ubuntu python =৽Πϝʔδ ubuntu-python

Slide 18

Slide 18 text

$ docker run -it bvlc/caffe:cpu bash root@e276ba715d2f:/workspace# root@e276ba715d2f:/workspace# caffe --version caffe version 1.0.0 root@e276ba715d2f:/workspace# python -i Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> root@e276ba715d2f:/workspace# python -i Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import caffe >>> root@e276ba715d2f:/workspace# python -i Μʁ

Slide 19

Slide 19 text

GPU࢖͑ͳ͍ͷʁ

Slide 20

Slide 20 text

nvidia-docker

Slide 21

Slide 21 text

CPU൛ɺGPU൛྆ํ͋Δˍ࡞ΕΔ • python, tensorflow , keras, caffe, …

Slide 22

Slide 22 text

SSDΛDockerͰಈ͔ͯ͠ΈΔ Docker͋Δʂ

Slide 23

Slide 23 text

forkݩͷcaffeΛࢦ͍ͯ͠ΔͷͰ ssdϦϙδτϦʹม͑Δ

Slide 24

Slide 24 text

$ docker build -t ssd-caffe ./docker/gpu Ϗϧυʢ̍̌෼͘Β͍଴ͭʣ SSDͷREADMEͷͱ͓Γɺ ϞσϧϑΝΠϧΛDL͓ͯ͘͠ $ nvidia-docker run \ -v `pwd`/models:/opt/caffe/models \ -w /opt/caffe \ ssd-caffe:gpu \ python examples/ssd/score_ssd_pascal.py

Slide 25

Slide 25 text

$ nvidia-docker run --rm \ -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --device /dev/video0 -v `pwd`/models:/opt/caffe/models -w /opt/caffe ssd-caffe:gpu \ python examples/ssd/ssd_pascal_webcam.py ϗετϚγϯͷwebcamΛ dockerίϯςφʹͭͳ͙ઃఆ

Slide 26

Slide 26 text

$ nvidia-docker run --rm \ -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v `pwd`/models:/opt/caffe/models -w /opt/caffe --device /dev/video0 ssd-caffe-lt:gpu \ python examples/ssd/ssd_pascal_webcam.py ίʔυΛDMPOF͔ͯ͠Β̍࣌ؒ΋͋Ε͹ಈ͔ͤΔΑʂ

Slide 27

Slide 27 text

Demo?

Slide 28

Slide 28 text

Demo or Die Deploy or Die

Slide 29

Slide 29 text

DemoͱDeployͷGap • Web APIԽ • ෛՙ෼ࢄɾεέʔϦϯά • ίʔυઃܭ • ֶशΠϯϑϥ • ϞσϧετϨʔδ Demo Deploy ୈ8ճ

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

AWSɺ͔ͭͬͯ·͔͢ Amazon EC2 Amazon ECS AWS Batch AWS Lambda Amazon
 S3 Amazon
 RDS AWS 
 CodeBuild Amazon CloudWatch AWS
 CloudFormat

Slide 32

Slide 32 text

Amazon ECS ϑϧϚωʔδυͷDockerίϯςφ؅ཧαʔϏε Amazon EC2 Docker Amazon ECS

Slide 33

Slide 33 text

Amazon ECS ϑϧϚωʔδυͷDockerίϯςφ؅ཧαʔϏε Amazon EC2 Docker Amazon ECS -PBECBMBODFS

Slide 34

Slide 34 text

Build and Deploy ECR registry $ docker build Deployed! Amazon ECS

Slide 35

Slide 35 text

ίϯςφΠϝʔδͷ࡞Γํʢͬ͘͟Γʣʢ࠶ܝʣ FROM ubuntu:16.04 RUN apt-get update\ && apt-get install python Dockerfile $ docker build -t ubuntu-python . ϕʔεΠϝʔδ Πϯετʔϧͱ͔ॾʑ (΄΅Կ΋Πϯετʔϧ͞Ε͍ͯͳ͍) ubuntu python =৽Πϝʔδ ubuntu-python

Slide 36

Slide 36 text

σϓϩΠ༻ίϯςφΠϝʔδ ssd-caffe application code model file ։ൃ࣌ ssd-caffe Host OS application code model file mount mount $ docker build σϓϩΠ࣌ σϓϩΠ༻Πϝʔδ= Dockerfile

Slide 37

Slide 37 text

σϓϩΠ༻ίϯςφΠϝʔδ ssd-caffe application code model file

Slide 38

Slide 38 text

Demo

Slide 39

Slide 39 text

ಠࣗ։ൃͨ͠ΞϓϦέʔγϣϯίʔυ ssd-caffe application code model file FlaskΞϓϦ 100ߦҎԼ Caffe python binding

Slide 40

Slide 40 text

AWS Batch ECR registry Execute Batch Job! AWS Batch • ֶश • ϋΠύʔύϥϝʔλαʔν

Slide 41

Slide 41 text

GPU Instances on ECS ʢͪΐͬͱΊΜͲ͍͚͘͞Ͳʣ ECS/BatchͰ΋GPUΠϯελϯε͕࢖͑Δ ࣗ෼ͰAMIʢԾ૝ϚγϯΠϝʔδʣΛ ࡞Βͳ͍ͱ͍͚ͳ͍ • cudaೖΓͷAMIΛϕʔεʹnvidia-dockerΛೖΕΔ AWS GPU ϫʔΫϩʔυͷ AMI ͷ࡞੒ http://docs.aws.amazon.com/ja_jp/batch/latest/userguide/batch-gpu-ami.html

Slide 42

Slide 42 text

ଞͷΫϥ΢υαʔϏε • GCP • Cloud Machine Learning Engine: Tensorflow • Kubernetes: Docker • FloydHub ࢖ͬͯΈ͍ͨ

Slide 43

Slide 43 text

FAQ • ͍·Ͳ͖CaffeͳΜ͔࢖ΘΜΑ • ެ࣮ࣜ૷ʹ͸ͨ·ʹ͋ͬͨΓ͢Δ • ଞϥΠϒϥϦΛ࢖͍ͬͯͯ΋ɺ
 όʔδϣϯҧ͍ͱ͔ͰେมͳͷΛղফͰ͖Δ • SSDʹ͸Keras࣮૷΋͋Δ΍Μ͚ • ͍͍ͪͪ࠶࣮૷Λ଴ͭͷ΋ͭΒ͍ • DSSD͸·ͩެࣜͷCaffe࣮૷͔͠ͳ͍ͱ͔

Slide 44

Slide 44 text

·ͱΊ • Docker࢖͓ͬͯ͘ͱ؀ڥߏஙָ͕ • Docker࢖͓ͬͯ͘ͱຊ൪؀ڥ·ͰҰ؏ͯ͠࡞ΕΔ • AWS͸Dockerαϙʔτ͕खް͍ͷͰɺ
 σϓϩΠ·Ͱ໘౗ݟͯ͘ΕΔ շదͳΠϯϑϥͰշదʹ։ൃ͠Α͏ʂ

Slide 45

Slide 45 text

͋Γ͕ͱ͏͍͟͝·ͨ͠