37
G-RMI Object Detection 2nd ImageNet and COCO Visual Recognition Challenges Joint Workshop ECCV 2016, Amsterdam Jonathan Huang ([email protected] ) with Alireza Fathi, Ian Fischer, Sergio Guadarrama, Anoop Korattikara, Kevin Murphy, Vivek Rathod, Yang Song, Chen Sun, Zbigniew Wojna, Menglong Zhu October 9, 2016 Google Research and Machine Intelligence

G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Embed Size (px)

Citation preview

Page 1: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

G-RMI Object Detection2nd ImageNet and COCO Visual Recognition Challenges Joint Workshop

ECCV 2016, Amsterdam

Jonathan Huang ([email protected])

with Alireza Fathi, Ian Fischer, Sergio Guadarrama, Anoop Korattikara, Kevin Murphy,Vivek Rathod, Yang Song, Chen Sun, Zbigniew Wojna, Menglong Zhu

October 9, 2016

Google Research and Machine Intelligence

Page 2: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Team Roster

Jonathan Huang Anoop Korattikara

Vivek RathodKevin Murphy

Alireza Fathi

Chen Sun Menglong ZhuYang Song

Sergio Guadarrama

Zbigniew Wojna

Ian Fischer

Page 3: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

AP AP50 AP75 APS APM APL AR1 AR10 AR100 ARS ARM ARL date

G-RMI 0.415 0.624 0.453 0.239 0.439 0.548 0.343 0.552 0.606 0.428 0.646 0.746 9/18/2016MSRA_2015 0.373 0.589 0.399 0.183 0.419 0.524 0.321 0.477 0.491 0.273 0.556 0.679 11/26/2015

Trimps-Soushen 0.363 0.583 0.386 0.166 0.417 0.506 0.317 0.482 0.5 0.274 0.564 0.68 9/16/2016

Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501 0.528 0.304 0.587 0.722 9/17/2016

FAIRCNN 0.335 0.526 0.366 0.139 0.378 0.477 0.302 0.462 0.485 0.241 0.561 0.664 11/26/2015

CMU_A2_VGG16 0.324 0.532 0.34 0.151 0.357 0.451 0.296 0.463 0.472 0.251 0.523 0.651 9/19/2016

ION 0.31 0.533 0.318 0.123 0.332 0.447 0.279 0.431 0.457 0.238 0.504 0.628 11/26/2015

ToConcoctPellucid 0.286 0.5 0.295 0.105 0.334 0.423 0.277 0.396 0.404 0.173 0.471 0.595 9/16/2016

Wall 0.284 0.49 0.29 0.06 0.316 0.476 0.268 0.408 0.433 0.185 0.485 0.65 9/17/2016

hust-mclab 0.278 0.485 0.289 0.109 0.308 0.398 0.26 0.371 0.377 0.159 0.425 0.549 9/18/2016

CMU_A2 0.257 0.46 0.261 0.059 0.287 0.417 0.248 0.355 0.365 0.105 0.43 0.582 11/27/2015

UofA 0.255 0.437 0.268 0.08 0.273 0.391 0.251 0.354 0.359 0.147 0.389 0.56 11/27/2015

Decode 0.224 0.414 0.222 0.05 0.239 0.369 0.229 0.33 0.338 0.101 0.388 0.54 11/27/2015

Wall_2015 0.205 0.364 0.21 0.043 0.199 0.339 0.218 0.307 0.318 0.109 0.33 0.497 11/27/2015

SinicaChen 0.19 0.363 0.181 0.042 0.199 0.31 0.209 0.301 0.309 0.095 0.335 0.499 11/19/2015

UCSD 0.188 0.369 0.176 0.035 0.188 0.315 0.206 0.303 0.313 0.09 0.342 0.519 11/27/2015

"1026" 0.179 0.32 0.177 0.026 0.18 0.303 0.177 0.248 0.254 0.051 0.283 0.412 11/27/2015

G-RMI Results (test-challenge)

Page 4: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Object Detection @ Google

Page 5: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

● Deploy models anywhere

● Scalable

● For research and production

● State-of-the-art performance

● Support leading methods

Multibox/SSD, Fast/Faster

RCNN, etc...

DatacentersYour laptop Mobile Raspberry Pi

Tensor Processing Unit

Object Detection in TensorFlow

32,986 stars, 14,327 forks on Github(as of Sept 29, 2016)

Page 6: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

COCO deadline:9/16/2016

Race to the Top First submission to test-dev: Tensorflow implementation of SSD(ish) model with 224x224 input images

Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." arXiv preprint arXiv:1512.02325 (2015).

.161

Page 7: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Single Shot or Class-wise RPN models

Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." arXiv preprint arXiv:1512.02325 (2015).

Dai, Jifeng, et al. "R-FCN: Object Detection via Region-based Fully Convolutional Networks." arXiv preprint arXiv:1605.06409 (2016).

Feature Extractor BoxRegression

(vgg, inception, resnet, etc)

MultiwayClassification

Detection Generator

Use TF-slim model zoo to swap in multiple feature extractor architectures

Page 8: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Residual Block Inception Resnet Block

Fewer calculations,Doesn’t hurt performance

x 0.2 multiplier (“residual scaling”)

Trick to simplify the trainingDoesn’t require “warm-up”

No batch-norm saves memory

Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning by Szegedy et al.

Residual Blocks vs. Inception Resnet Blocks

Page 9: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Inception Resnet (v2) Feature Extractor

Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning by Szegedy et al.

Page 10: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

Inception Resnet SSD

COCO deadline:9/16/2016

Race to the Top

.206

Page 11: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501
Page 12: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Inception Resnet SSD

inaccurate localization for small objects

Page 13: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Faster RCNN based models

Feature Extractor

ObjectnessClassification

BoxRegression

Proposal Generator

(vgg, inception, resnet, etc) Multiway Classification

BoxRefinement

Ren, Shaoqing, et al. "Faster R-CNN: Towards real-time object detection with region proposal networks." Advances in neural information processing systems. 2015.

He, Kaiming, et al. "Deep residual learning for image recognition." arXiv preprint arXiv:1512.03385 (2015).

Box Classifier

We use: TensorFlow implementation of Faster RCNN with (approximate) joint training and asynchronous SGD.

Page 14: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Key TF-ops (now available in open source tensorflow release)

Page 15: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

COCO deadline:9/16/2016

Race to the Top

.267

Page 16: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Inception Resnet SSD Resnet Faster RCNN

Page 17: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

COCO deadline:9/16/2016

Race to the Top

.29

Page 18: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

COCO deadline:9/16/2016

Race to the Top

.298

Page 19: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

COCO deadline:9/16/2016

Race to the Top

.315

Page 20: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Average poolingis important

Note: We don’t update batch norm parameters during training

Softmax and Smooth L1

Box Classifier(80 + 4) * anchors

Proposal Generator(2 + 4) * anchors

Faster RCNN w/Inception Resnet (v2)

Page 21: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

Inception Resnet Faster

RCNN

COCO deadline:9/16/2016

Race to the Top

.318

Page 22: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

34.7: Our best single model performance before ensembling/multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

Inception Resnet Faster

RCNN

COCO deadline:9/16/2016

Race to the Top

.347

Page 23: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Inception Resnet SSD Resnet Faster RCNN

Inception Resnet Faster RCNN

Page 24: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

34.7: Our best single model performance before ensembling/multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

Inception Resnet Faster

RCNN

COCO deadline:9/16/2016

Ensemble of Resnet/Inception Resnet Faster RCNN

Race to the Top

.378

Page 25: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

10-crop inference

No multiscale training, horizontal flip, box refinement, box voting, global context or ILSVRC detection data

Page 26: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

34.7: Our best single model performance before ensembling/multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

Inception Resnet Faster

RCNN

COCO deadline:9/16/2016

Ensemble of Resnet/Inception Resnet Faster RCNN

Ensemble of Resnet/Inception Resnet Faster RCNN w/multicrop

Race to the Top

.41

Page 27: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Many Final Experiments❏ Best layer of Inception Resnet for RPN?❏ Use atrous convolution for dense output?❏ Maximize IOU vs Minimize SmoothL1?❏ Best learning rate decay schedule?❏ Best data augmentation operations (e.g.

random cropping, random saturation, random contrast)?

❏ Best way to balance localization and classification loss functions?

❏ etc…

… led to Model Checkpoint Overload :(

Page 28: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Model Selection for EnsemblingTake best K models?

Or select diverse K-subset of models?

Page 29: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Model Selection for EnsemblingTake best K models?

Or select diverse K-subset of models?

Model 1 mAP Model 2 mAP Model 3 mAP

Car 20% 23% 70%

Dog 81% 80% 15%

Bear 78% 81% 20%

Chair 10% 12% 71%

Page 30: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Model Selection for EnsemblingTake best K models?

Or select diverse K-subset of models?

Model 1 mAP Model 2 mAP Model 3 mAP

Car 20% 23% 70%

Dog 81% 80% 15%

Bear 78% 81% 20%

Chair 10% 12% 71%

Similar Models

Page 31: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Model Selection for EnsemblingTake best K models?

Or select diverse K-subset of models?

Model 1 mAP Model 2 mAP Model 3 mAP

Car 20% 23% 70%

Dog 81% 80% 15%

Bear 78% 81% 20%

Chair 10% 12% 71%

Complementary Models

Page 32: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Final ensemble selected for challenge submission

Individual mean AP (on minival)

Feature Extractor

Output Stride

Location:Classification loss ratio

Location Loss function

32.93 Resnet 101 8 3:1 SmoothL1

33.3 Resnet 101 8 1:1 SmoothL1

34.75 Inception Resnet 16 1:1 SmoothL1

35 Inception Resnet 16 2:1 SmoothL1+IOU

35.64 Inception Resnet 8 1:1 SmoothL1

Model NMS for diverse ensembling: Greedily select diverse model collection for ensembling, pruning away models too similar to already selected models.

Diversity Matters

Page 33: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Final ensemble selected for challenge submission

Individual mean AP (on minival)

Feature Extractor

Output Stride

Location:Classification loss ratio

Location Loss function

32.93 Resnet 101 8 3:1 SmoothL1

33.3 Resnet 101 8 1:1 SmoothL1

34.75 Inception Resnet 16 1:1 SmoothL1

35 Inception Resnet 16 2:1 SmoothL1+IOU

35.64 Inception Resnet 8 1:1 SmoothL1

Model NMS for diverse ensembling: Greedily select diverse model collection for ensembling, pruning away models too similar to already selected models.

Diversity Matters

Page 34: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Final ensemble selected for challenge submission

Individual mean AP (on minival)

Feature Extractor

Output Stride

Location:Classification loss ratio

Location Loss function

32.93 Resnet 101 8 3:1 SmoothL1

33.3 Resnet 101 8 1:1 SmoothL1

34.75 Inception Resnet 16 1:1 SmoothL1

35 Inception Resnet 16 2:1 SmoothL1+IOU

35.64 Inception Resnet 8 1:1 SmoothL1

Model NMS for diverse ensembling: Greedily select diverse model collection for ensembling, pruning away models too similar to already selected models.

Diversity Matters

Page 35: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

37.4% by MSRA (the best from 2015 leaderboard)

(Last place from 2015 leaderboard)

Best single model performance reported in literature that does not do multiscale or multicrop

34.7: Our best single model performance before ensembling/multicrop

Inception V2 SSD

Inception Resnet SSD

Resnet Faster RCNN

Ensemble of Resnet Faster

RCNN

Inception Resnet Faster

RCNN

COCO deadline:9/16/2016

Ensemble of Resnet/Inception Resnet Faster RCNN

Ensemble of Resnet/Inception Resnet Faster RCNN w/multicrop

Race to the Top

.416

41.6%: Last Google submission to test-dev server with Intelligently-Selected Ensemble of 5 Faster RCNN with Resnet and Inception-Resnet

Page 36: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Inception Resnet SSD Resnet Faster RCNN

Inception Resnet Faster RCNN Final ensemble with multicrop inference

Page 37: G-RMI Object Detection - ImageNetimage-net.org/challenges/talks/2016/GRMI-COCO-slidedeck.pdf · G-RMI Object Detection ... Imagine Lab 0.352 0.533 0.388 0.153 0.38 0.52 0.318 0.501

Thanks!SPEAKER Jonathan Huang ([email protected])

Object Detection Team Alireza Fathi, Ian Fischer, Sergio Guadarrama, Jonathan Huang, Anoop Korattikara, Kevin Murphy, Vivek Rathod, Yang Song, Chen Sun, Zbigniew Wojna, Menglong Zhu

And Special Thanks to Tom Duerig, Dumitru Erhan, Jitendra Malik, George Papandreou, Dominik Roblek, Chuck Rosenberg, Nathan Silberman, Abhinav Srivastava, Rahul Sukthankar, Christian Szegedy, Jasper Uijlings, Jay Yagnik, Xiangxin Zhu

Figure sources (links): 1. Raspberry pi image2. Black and white kites3. Kitesurfing on the beach

This presentation is licensed by Google under a Creative Commons Attribution-ShareAlike 2.0 Generic License.