where tegra meets titan
play

Where Tegra meets Titan Prof Tom Drummond Computer vision is easy! - PowerPoint PPT Presentation

Where Tegra meets Titan Prof Tom Drummond Computer vision is easy! But first a diversion to 10 th Century Persia and the first recorded game of chess The rice and the chessboard The


  1. Where Tegra meets Titan � Prof Tom Drummond �

  2. Computer vision is easy! � But first a diversion to 10 th Century Persia … � � � � � � � � … and the first recorded game of chess �

  3. The rice and the chessboard �

  4. The rice and the chessboard �

  5. The rice and the chessboard �

  6. The rice and the chessboard �

  7. The rice and the chessboard �

  8. The rice and the chessboard � First half of the chessboard: 100 tons of rice

  9. The rice and the chessboard � First half of the chessboard: 100 tons of rice Second half of the chessboard: 400 billion tons of rice = 1000 years of production And the moral of the story is …

  10. The transistor and the chessboard �

  11. The transistor and the chessboard � 1974: ¡Intel ¡8080 ¡ (6,000 ¡transistors) ¡ ¡ 1978: ¡Intel ¡8086 ¡ (29,000 ¡transistors) ¡ ¡ 1982: ¡Intel ¡80286 ¡ (134,000 ¡transistors) ¡ ¡ 1993 ¡Intel ¡Pen:um ¡ (3,000,000 ¡transistors) ¡ ¡ 2004 ¡P4 ¡Intel ¡Presco> ¡ (125,000,000 ¡transistors) ¡

  12. The transistor and the chessboard � 2004: ¡Nvidia ¡NV40 ¡ 1974: ¡Intel ¡8080 ¡ (222,000,000 ¡transistors) ¡ (6,000 ¡transistors) ¡ ¡ ¡ 2006: ¡Nvidia ¡G80 ¡ 1978: ¡Intel ¡8086 ¡ (484,000,000 ¡transistors) ¡ (29,000 ¡transistors) ¡ ¡ ¡ 2008: ¡Nvidia ¡GT200 ¡ 1982: ¡Intel ¡80286 ¡ (1,400,000,000 ¡transistors) ¡ (134,000 ¡transistors) ¡ ¡ ¡ 2010: ¡Nvidia ¡GF104 ¡ 1993 ¡Intel ¡Pen:um ¡ (1,900,000,000 ¡transistors) ¡ (3,000,000 ¡transistors) ¡ ¡ ¡ 2012: ¡Nvidia ¡GK104 ¡ 2004 ¡P4 ¡Intel ¡Presco> ¡ (3,540,000,000 ¡transistors) ¡ (125,000,000 ¡transistors) ¡ ¡ ¡ 2015: ¡Nvidia ¡GM200 ¡ This ¡notebook ¡ ? ¡ (8,000,000,000 ¡transistors) ¡ > ¡2 ¡trillion ¡transistors ¡ How ¡many ¡on ¡the ¡last ¡square…? ¡

  13. Can run Moore ʼ s law backwards � Q: ¡According ¡to ¡Moore’s ¡law, ¡when ¡was ¡there ¡just ¡one ¡ transistor? ¡ A: ¡1948 ¡

  14. Can run Moore ʼ s law backwards � Q: ¡According ¡to ¡Moore’s ¡law, ¡when ¡was ¡there ¡just ¡one ¡ transistor? ¡ A: ¡1948 ¡ In ¡Nov ¡1947, ¡Bardeen, ¡ Bra>ain ¡and ¡Shockley ¡ a>ached ¡two ¡gold ¡ contacts ¡to ¡a ¡crystal ¡of ¡ germanium… ¡

  15. Power � Moore ʼ s law gives us increasing compute power � BUT � With great power comes great … �

  16. Moore ʼ s Law is not always our friend! � Even ¡with ¡GPUs, ¡compute ¡on ¡mobile ¡devices ¡is ¡limited ¡ ¡ Can’t ¡put ¡a ¡K40 ¡on ¡a ¡Quadrotor! ¡

  17. Moore ʼ s Law is not always our friend! � Even ¡with ¡GPUs, ¡compute ¡on ¡mobile ¡devices ¡is ¡limited ¡ ¡ But ¡a ¡TX1 ¡fits ¡just ¡fine! ¡ ¡ ¡ ¡ ¡ ¡ ¡ (Stereolabs ¡TX1 ¡enabled ¡drone) ¡

  18. ACRV � The ¡Australian ¡Research ¡Council ¡Centre ¡of ¡Excellence ¡ for ¡Robo:c ¡Vision ¡ • $25.5M ¡over ¡7 ¡years ¡ • 13 ¡Chief ¡Inves:gators ¡in ¡4 ¡Universi:es ¡ • 16 ¡Research ¡Fellows ¡ • ~50 ¡PhD ¡students ¡ • Research ¡into: ¡ – Seman:cs ¡(deep ¡learning) ¡ – Robust ¡vision ¡(all ¡weathers) ¡ – Vision ¡and ¡Ac:on ¡(closing ¡the ¡loop) ¡ – Algorithms ¡and ¡Architecture ¡(constrained ¡resources) ¡

  19. Distributed Robotic Vision � Simplest method is to just partition the problem somewhere, giving some tasks to the mobile and some to the server � mobile ¡ server ¡

  20. Distributed Robotic Vision � But often this isn ʼ t the best solution 
 � e.g. latency introduced by the network may be a problem � Many interesting solutions not like this, e.g: � Obtain ¡ Extract ¡ Compute ¡ sensor ¡ summary ¡ accurate ¡ data ¡ informa:on ¡ solu:on ¡ Compute ¡ Compute ¡ approximate ¡ approximate ¡ Compare ¡ solu:on ¡ solu:on ¡ Bring ¡ Calculate ¡ Calculate ¡ Update ¡ correc:on ¡ and ¡send ¡ output ¡ local ¡model ¡ up ¡to ¡date ¡ correc:on ¡

  21. Distributed Robotic Vision � Want to create solutions to enable robotics in a distributed sensing and compute environment � K40 ¡ TX1 ¡ TX1 ¡ K40 ¡ CPU ¡ K40 ¡ K40 ¡ K40 ¡ K40 ¡ CPU ¡ TX1 ¡ K40 ¡ K40 ¡

  22. Distributed Localisation Service � Build ¡Image ¡ Extract ¡ Build ¡ CCTV1 ¡ Index ¡ Match ¡ Pyramid ¡ landmarks ¡ Descriptors ¡ Build ¡Image ¡ Extract ¡ Build ¡ CCTV2 ¡ Index ¡ Match ¡ Pyramid ¡ landmarks ¡ Descriptors ¡ Build ¡Image ¡ Extract ¡ Build ¡ Robot ¡ Pyramid ¡ landmarks ¡ Descriptors ¡ Compute ¡ Compute ¡1 ¡ Robot ¡pose ¡

  23. Distributed Localisation Service � ==3031== NVPROF is profiling process 3031, command: ./ComputeOrb 1 � Frame# 1 � Elapsed time : 5.955523 ms � Frame Elapsed time : 7.765627 ms � numCorners: 28304, nmsnumCorners: 5073 � ==3031== Profiling application: ./ComputeOrb 1 � ==3031== Profiling result: � Time(%) Time Calls Avg Min Max Name � 57.18% 3.2379ms 1 3.2379ms 3.2379ms 3.2379ms OrbDescriptors(…) � 30.57% 1.7312ms 1 1.7312ms 1.7312ms 1.7312ms (…) � 4.29% 242.92us 1 242.92us 242.92us 242.92us fastcorner(…) � 4.00% 226.31us 1 226.31us 226.31us 226.31us harris(…) � 1.46% 82.553us 1 82.553us 82.553us 82.553us NMS(…) � 0.73% 41.458us 1 41.458us 41.458us 41.458us cleansweep(…) � � Speedup over CPU* implementation is 4-5X � � * Intel ¡Core2 ¡Quad ¡Q8400 ¡@2.66Ghz �

  24. Sub-pixel localisation � Find ¡ Extract ¡ Compute ¡sub-­‑pixel ¡correspondence ¡ Camera ¡1 ¡ landmarks ¡ image ¡patch ¡ on ¡many ¡subsequent ¡frames ¡ Compute ¡ Compute ¡1 ¡ matrix ¡ Find ¡ Extract ¡ Compute ¡sub-­‑pixel ¡correspondence ¡ Camera ¡2 ¡ landmarks ¡ image ¡patch ¡ on ¡many ¡subsequent ¡frames ¡ Timing Results: � � � ( µ s/keypoint) 
 Inverse Additive � � � 672 
 Inverse Compositional � 367 
 Ours � � � � � 7 �

  25. Approximate Nearest Neighbor � Big ¡data ¡in ¡high ¡dimensional ¡spaces ¡ Given ¡a ¡query ¡point, ¡find ¡the ¡nearest ¡reference ¡point ¡ Solu:on: ¡FANNG ¡(Fast ¡Approximate ¡Nearest ¡Neighbor ¡Graphs) ¡ @CVPR ¡2016 ¡ Can ¡serve ¡1.2M ¡queries/second ¡at ¡90% ¡recall ¡in ¡a ¡database ¡of ¡ 1M ¡reference ¡points ¡in ¡128D ¡space ¡on ¡Titan ¡X ¡

  26. Approximate Nearest Neighbor � CUDA ¡implementa:on ¡requires ¡a ¡short ¡priority ¡queue ¡ BUT ¡ int array[30]; // very slow global memory � ¡ Solu:on ¡is ¡to ¡treat ¡a ¡warp ¡as ¡a ¡single ¡unit ¡with ¡array ¡spread ¡over ¡ the ¡warp ¡in ¡a ¡single ¡register: ¡ ¡ int array; // there are 32 of these in a warp � ... � // find the first entry in array that is > thresh � int pq = __ffs(__ballot(array > thresh)); � ... � �

  27. Approximate Nearest Neighbor � Want ¡to ¡keep ¡the ¡array ¡sorted ¡when ¡we ¡insert ¡a ¡new ¡value, ¡ discarding ¡the ¡largest ¡value ¡ thread: ¡ 0 ¡ 1 ¡ 2 ¡ 3 ¡ 4 ¡ 5 ¡ 6 ¡ 7 ¡ array: ¡ 1 ¡ 2 ¡ 4 ¡ 5 ¡ 9 ¡ 11 ¡ 13 ¡ 15 ¡ new_value: ¡ (each ¡thread ¡sees ¡this ¡value) ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ ship ¡value: ¡ =max(new_value,array) ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ 9 ¡ 11 ¡ 13 ¡ 15 ¡ shuffle: ¡ 8 ¡ 8 ¡ 8 ¡ 8 ¡ 9 ¡ 11 ¡ 13 ¡ Write ¡new ¡value ¡if ¡less ¡than ¡array ¡ array: ¡ 1 ¡ 2 ¡ 4 ¡ 5 ¡ 8 ¡ 9 ¡ 1 ¡ 13 ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend