Jump to content

GstInference/Benchmarks: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 163: Line 163:


[[File:Test benchmark video.mp4|500px|thumb|center|Test benchmark video]]
[[File:Test benchmark video.mp4|500px|thumb|center|Test benchmark video]]
== TensorFlow Lite Benchmarks ==
=== FPS measurement ===
<html>
  <style>
    .button {
    background-color: #008CBA;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
  }
</style>
  <div id="Buttons_Model" style="margin: auto; width: 1300px; height: auto;">
  <button class="button" id="show_inceptionv1">Show InceptionV1 </button>
  <button class="button" id="show_inceptionv2">Show InceptionV2 </button>
  <button class="button" id="show_inceptionv3">Show InceptionV3 </button>
  <button class="button" id="show_inceptionv4">Show InceptionV4 </button>
  <button class="button" id="show_tinyyolov2">Show TinyYoloV2 </button>
  <button class="button" id="show_tinyyolov3">Show TinyYoloV3 </button>
</div>
<br><br>
<div id="chart_div" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<div id="Buttons_Backend" style="margin: auto; width: 600px; height: auto;">
<button class="button" id="show_tensorflow">Show Tensorflow </button>
<button class="button" id="show_tflite">Show Tensorflow-Lite </button>
<button class="button" id="show_edgetpu">Show EdgeTPU </button>
</div>
<div id="chart_div1" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<div id="Buttons_Platform" style="margin: auto; width: 1050px; height: auto;">
<button class="button" id="show_x86">Show x86 </button>
<button class="button" id="show_x86_gpu">Show X86+GPU </button>
<button class="button" id="show_tx2">Show Tx2 </button>
<button class="button" id="show_tx2_gpu">Show TX2+GPU </button>
<button class="button" id="show_coral">Show Coral </button>
<button class="button" id="show_coral_tpu">Show Coral+TPU </button>
</div>
<div id="chart_div2" style="margin: auto; width: 800px; height: 500px;"></div>
<script>
      google.charts.load('current', {'packages':['corechart', 'bar']});
      google.charts.setOnLoadCallback(drawStuff);
     
      function drawStuff() {
        var chartDiv = document.getElementById('chart_div');
        var chartDiv1 = document.getElementById('chart_div1');
        var chartDiv2 = document.getElementById('chart_div2');
        var table_backend_platform_fps = google.visualization.arrayToDataTable([
          ['Platform',                      //Colunm 0
          'InceptionV1 \n Tensorflow',    //Colunm 1
          'InceptionV1 \n Tensorflow-Lite',//Colunm 2
          'InceptionV1 \n EdgeTPU',        //Colunm 3
          'InceptionV2 \n Tensorflow',    //Colunm 4
          'InceptionV2 \n Tensorflow-Lite',//Colunm 5
          'InceptionV2 \n EdgeTPU',        //Colunm 6
          'InceptionV3 \n Tensorflow',    //Colunm 7
          'InceptionV3 \n Tensorflow-Lite',//Colunm 8
          'InceptionV3 \n EdgeTPU',        //Colunm 9
          'InceptionV4 \n Tensorflow',    //Colunm 10
          'InceptionV4 \n Tensorflow-Lite',//Colunm 11
          'InceptionV4 \n EdgeTPU',        //Colunm 12
          'TinyYoloV2 \n Tensorflow',      //Colunm 13
          'TinyYoloV2 \n Tensorflow-Lite', //Colunm 14
          'TinyYoloV2 \n EdgeTPU',        //Colunm 15
          'TinyYoloV3 \n Tensorflow',      //Colunm 16
          'TinyYoloV3 \n Tensorflow-Lite', //Colunm 17
          'TinyYoloV3 \n EdgeTPU'],        //Colunm 18
          ['x86',      63.747, 22.781, 0, 48.381, 14.164, 0, 20.482, 12.164, 0, 10.338, 10.164, 0, 24.255, 12.164, 0, 27.113, 10.164, 0],
          ['x86+GPU',  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], //row 1
          ['TX2',      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], //row 2
          ['TX2-GPU',  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], //row 3
          ['Coral',    0, 3.107, 0, 0, 2.311, 0, 0, 0.903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], //row 4
          ['Coral+TPU', 0, 0, 41.489, 0, 0, 42.001, 0, 0, 15.232, 0, 0, 8.405, 0, 0, 0, 0, 0, 0]  //row 5
        ]);
        var table_model_platform_fps = google.visualization.arrayToDataTable([
          ['Model',                        //Colunm 0
            'Tensorflow \n x86',            //Colunm 1
            'Tensorflow \n x86+GPU',        //Colunm 2
            'Tensorflow \n TX2',            //Colunm 3
            'Tensorflow \n TX2+GPU',        //Colunm 4
            'Tensorflow \n Coral',          //Colunm 5
            'Tensorflow \n Coral+TPU',      //Colunm 6
            'Tensorflow-Lite \n x86',      //Colunm 7
            'Tensorflow-Lite \n x86+GPU',  //Colunm 8
            'Tensorflow-Lite \n TX2',      //Colunm 9
            'Tensorflow-Lite \n TX2+GPU',  //Colunm 10
            'Tensorflow-Lite \n Coral',    //Colunm 11
            'Tensorflow-Lite \n Coral+TPU', //Colunm 12
            'EdgeTPU \n Coral+TPU'],        //Colunm 13
          ['InceptionV1', 63.747, 0, 0, 0, 0, 0, 22.781, 0, 0, 0, 3.107, 0, 41.489], //row 1
          ['InceptionV2', 48.381, 0, 0, 0, 0, 0, 14.164, 0, 0, 0, 2.311, 0, 42.001], //row 2
          ['InceptionV3', 20.482, 0, 0, 0, 0, 0, 12.164, 0, 0, 0, 0.903, 0, 15.232], //row 3
          ['InceptionV4', 10.338, 0, 0, 0, 0, 0, 10.164, 0, 0, 0, 0, 0, 8.405], //row 4
          ['TinyYoloV2',  24.255, 0, 0, 0, 0, 0, 12.164, 0, 0, 0, 0, 0, 0], //row 5
          ['TinyYoloV3',  27.113, 0, 0, 0, 0, 0, 10.164, 0, 0, 0, 0, 0, 0]  //row 6
        ]);
        var table_model_backend_fps = google.visualization.arrayToDataTable([
        ['Model',                          //Colunm 0
          'Tensorflow \n x86',            //Colunm 1
          'Tensorflow \n x86+GPU',        //Colunm 2
          'Tensorflow \n TX2',            //Colunm 3
          'Tensorflow \n TX2+GPU',        //Colunm 4
          'Tensorflow \n Coral',          //Colunm 5
          'Tensorflow \n Coral+TPU',      //Colunm 6
          'Tensorflow-Lite \n x86',      //Colunm 7
          'Tensorflow-Lite \n x86+GPU',  //Colunm 8
          'Tensorflow-Lite \n TX2',      //Colunm 9
          'Tensorflow-Lite \n TX2+GPU',  //Colunm 10
          'Tensorflow-Lite \n Coral',    //Colunm 11
          'Tensorflow-Lite \n Coral+TPU', //Colunm 12
          'EdgeTPU \n Coral+TPU'],        //Colunm 13
          ['InceptionV1', 63.747, 0, 0, 0, 0, 0, 22.781, 0, 0, 0, 3.107, 0, 41.489], //row 1
          ['InceptionV2', 48.381, 0, 0, 0, 0, 0, 14.164, 0, 0, 0, 2.311, 0, 42.001], //row 2
          ['InceptionV3', 20.482, 0, 0, 0, 0, 0, 12.164, 0, 0, 0, 0.903, 0, 15.232], //row 3
          ['InceptionV4', 10.338, 0, 0, 0, 0, 0, 10.164, 0, 0, 0, 0, 0, 8.405], //row 4
          ['TinyYoloV2',  24.255, 0, 0, 0, 0, 0, 12.164, 0, 0, 0, 0, 0, 0], //row 5
          ['TinyYoloV3',  27.113, 0, 0, 0, 0, 0, 10.164, 0, 0, 0, 0, 0, 0]  //row 6
        ]);
        var materialOptions = {
          width: 900,
          chart: {
            title: 'Model Vs Platform per backend',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'FPS'}, // Left y-axis.
            }
          }
        };
        var materialOptions1 = {
          width: 900,
          chart: {
            title: 'Model Vs Platform per backend',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'FPS'}, // Left y-axis.
            }
          }
        };
        var materialOptions2 = {
          width: 900,
          chart: {
            title: 'Model Vs Backend per Platform',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'FPS'}, // Left y-axis.
            }
          }
        };
        var materialChart_fps = new google.charts.Bar(chartDiv);
        var materialChart1_fps = new google.charts.Bar(chartDiv1);
        var materialChart2_fps = new google.charts.Bar(chartDiv2);
        view_fps = new google.visualization.DataView(table_backend_platform_fps);
        view1_fps = new google.visualization.DataView(table_model_platform_fps);
        view2_fps = new google.visualization.DataView(table_model_backend_fps);
        function drawMaterialChart() {
          var materialChart_fps = new google.charts.Bar(chartDiv);
          var materialChart1_fps = new google.charts.Bar(chartDiv1);
          var materialChart2_fps = new google.charts.Bar(chartDiv2);
          materialChart_fps.draw(table_backend_platform_fps, google.charts.Bar.convertOptions(materialOptions));
          materialChart1_fps.draw(table_model_platform_fps, google.charts.Bar.convertOptions(materialOptions1));
          materialChart2_fps.draw(table_model_backend_fps, google.charts.Bar.convertOptions(materialOptions2));
          init_charts();
        }
        function init_charts(){
          view_fps.setColumns([0,1,2,3]);
          view_fps.hideColumns([4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]);
          materialChart_fps.draw(view_fps, materialOptions);
          view1_fps.setColumns([0,1,2,3,4,5,6]);
          view1_fps.hideColumns([7,8,9,10,11,12]);
          materialChart1_fps.draw(view1_fps, materialOptions1);
          view2_fps.setColumns([0,1,7]);
          view2_fps.hideColumns([2,3,4,5,6,8,9,10,11,12]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        // REF_MODEL
        /*Select the Model that you want to show in the chart*/
        var show_inceptionv1 = document.getElementById('show_inceptionv1');
        show_inceptionv1.onclick = function () {
          view_fps.setColumns([0,1]);
          view_fps.hideColumns([2, 3, 4, 5, 6]);
          materialChart_fps.draw(view_fps, materialOptions);
        }
        var show_inceptionv2 = document.getElementById("show_inceptionv2");
        show_inceptionv2.onclick = function() {
          view_fps.setColumns([0,4,5,6]);
          view_fps.hideColumns([1,2,3,7,8,9,10,11,12,13,14,15,16,17,18]);
          materialChart_fps.draw(view_fps, materialOptions);
        }
        var show_inceptionv3 = document.getElementById('show_inceptionv3');
        show_inceptionv3.onclick = function() {
          view_fps.setColumns([0,7,8,9]);
          view_fps.hideColumns([1,2,3,4,5,6,10,11,12,13,14,15,16,17,18]);
          materialChart_fps.draw(view_fps, materialOptions);
        }
        var show_inceptionv4 = document.getElementById("show_inceptionv4");
        show_inceptionv4.onclick = function() {
          view_fps.setColumns([0,10,11,12]);
          view_fps.hideColumns([1,2,3,4,5,6,7,8,9,13,14,15,16,17,18]);
          materialChart_fps.draw(view_fps, materialOptions);
        }
        var show_tinyyolov2 = document.getElementById("show_tinyyolov2");
        show_tinyyolov2.onclick = function() {
          view_fps.setColumns([0,13,14,15]);
          view_fps.hideColumns([1,2,3,4,5,6,7,8,9,10,11,12,16,17,18]);
          materialChart_fps.draw(view_fps, materialOptions);
        }
        var show_tinyyolov3 = document.getElementById("show_tinyyolov3");
        show_tinyyolov3.onclick = function() {
          view_fps.setColumns([0,16,17,18]);
          view_fps.hideColumns([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]);
          materialChart_fps.draw(view_fps, materialOptions);
        }
        /*  REF_BACKEND  */
        /*Select the backend to filter the data to show in the chart*/
        var button = document.getElementById('show_tensorflow');
        button.onclick = function() {
          view1_fps.setColumns([0,1,2,3,4,5,6]);
          view1_fps.hideColumns([7,8,9,10,11,12,13]);
          materialChart1_fps.draw(view1_fps, materialOptions1);
        }
        var showFPS_only = document.getElementById("show_tflite");
        showFPS_only.onclick = function() {
          view1_fps.setColumns([0,7,8,9,10,11,12]);
          view1_fps.hideColumns([1,2,3,4,5,6,13]);
          materialChart1_fps.draw(view1_fps, materialOptions1);
        }
        var showEdgeTPUFPS = document.getElementById("show_edgetpu");
        showEdgeTPUFPS.onclick = function() {
          view1_fps.setColumns([0,13]);
          view1_fps.hideColumns([1,2,3,4,5,6,7,8,9,10,11,12]);
          materialChart1_fps.draw(view1_fps, materialOptions1);
        }
        /*  REF_PLATFORM  */
        /*Select the Platform to filter the data to show in the chart*/
        var show_x86 = document.getElementById('show_x86');
        show_x86.onclick = function() {
          view2_fps.setColumns([0,1,7]);
          view2_fps.hideColumns([2,3,4,5,6,8,9,10,11,12]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        var show_x86_gpu = document.getElementById("show_x86_gpu");
        show_x86_gpu.onclick = function() {
          view2_fps.setColumns([0,2,8]);
          view2_fps.hideColumns([1,3,4,5,6,7,9,10,11,12]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        var show_tx2 = document.getElementById('show_tx2');
        show_tx2.onclick = function() {
          view2_fps.setColumns([0,3,9]);
          view2_fps.hideColumns([1,2,4,5,6,7,8,10,11,12]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        var show_tx2_gpu = document.getElementById("show_tx2_gpu");
        show_tx2_gpu.onclick = function() {
          view2_fps.setColumns([0,4,10]);
          view2_fps.hideColumns([1,2,3,5,6,7,8,9,11,12]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        var show_coral = document.getElementById('show_coral');
        show_coral.onclick = function() {
          view2_fps.setColumns([0,5,11]);
          view2_fps.hideColumns([1,2,3,4,6,7,8,9,10,12]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        var show_coral_tpu = document.getElementById("show_coral_tpu");
        show_coral_tpu.onclick = function() {
          view2_fps.setColumns([0,13]);
          view2_fps.hideColumns([1,2,3,4,5,7,8,9,10,11]);
          materialChart2_fps.draw(view2_fps, materialOptions2);
        }
        drawMaterialChart();
    };
</script>
</html>
=== CPU usage measurement ===
<html>
<div id="Buttons_Model" style="margin: auto; width: 1300px; height: auto;">
<button class="button" id="show_inceptionv1_cpu">Show InceptionV1 </button>
<button class="button" id="show_inceptionv2_cpu">Show InceptionV2 </button>
<button class="button" id="show_inceptionv3_cpu">Show InceptionV3 </button>
<button class="button" id="show_inceptionv4_cpu">Show InceptionV4 </button>
<button class="button" id="show_tinyyolov2_cpu">Show TinyYoloV2 </button>
<button class="button" id="show_tinyyolov3_cpu">Show TinyYoloV3 </button>
</div>
<br><br>
<div id="chart_div_cpu" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<div id="Buttons_Backend" style="margin: auto; width: 600px; height: auto;">
<button class="button" id="show_tensorflow_cpu">Show Tensorflow </button>
<button class="button" id="show_tflite_cpu">Show Tensorflow-Lite </button>
<button class="button" id="show_edgetpu_cpu">Show EdgeTPU </button>
</div>
<div id="chart_div1_cpu" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<div id="Buttons_Platform" style="margin: auto; width: 1050px; height: auto;">
<button class="button" id="show_x86_cpu">Show x86 </button>
<button class="button" id="show_x86_gpu_cpu">Show X86+GPU </button>
<button class="button" id="show_tx2_cpu">Show Tx2 </button>
<button class="button" id="show_tx2_gpu_cpu">Show TX2+GPU </button>
<button class="button" id="show_coral_cpu">Show Coral </button>
<button class="button" id="show_coral_tpu_cpu">Show Coral+TPU </button>
</div>
<div id="chart_div2_cpu" style="margin: auto; width: 800px; height: 500px;"></div>
<script>
            google.charts.load('current', {'packages':['corechart', 'bar']});
      google.charts.setOnLoadCallback(drawStuff1);
     
      function drawStuff1() {
        var chartDivCPU = document.getElementById('chart_div_cpu');
        var chartDiv1CPU = document.getElementById('chart_div1_cpu');
        var chartDiv2CPU = document.getElementById('chart_div2_cpu');
        var table_backend_platform = google.visualization.arrayToDataTable([
          ['Platform',
          'InceptionV1 \n Tensorflow',
          'InceptionV1 \n Tensorflow-Lite',
          'InceptionV1 \n EdgeTPU',
          'InceptionV2 \n Tensorflow',
          'InceptionV2 \n Tensorflow-Lite',
          'InceptionV2 \n EdgeTPU',
          'InceptionV3 \n Tensorflow',
          'InceptionV3 \n Tensorflow-Lite',
          'InceptionV3 \n EdgeTPU',
          'InceptionV4 \n Tensorflow',
          'InceptionV4 \n Tensorflow-Lite',
          'InceptionV4 \n EdgeTPU',
          'TinyYoloV2 \n Tensorflow',
          'TinyYoloV2 \n Tensorflow-Lite',
          'TinyYoloV2 \n EdgeTPU',
          'TinyYoloV3 \n Tensorflow',
          'TinyYoloV3 \n Tensorflow-Lite',
          'TinyYoloV3 \n EdgeTPU'],
          ['x86',      74, 46, 0, 75, 43, 0, 79, 54, 0, 84, 50, 0, 79, 45, 0, 76, 44, 0],
          ['x86+GPU',  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          ['TX2',      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          ['TX2-GPU',  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          ['Coral',    0, 73, 0, 0, 72, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
          ['Coral+TPU', 0, 0, 32, 0, 0, 32, 0, 0, 12, 0, 0, 6, 0, 0, 0, 0, 0, 0]
        ]);
        var table_model_platform = google.visualization.arrayToDataTable([
          ['Model',
          'Tensorflow \n x86',
          'Tensorflow \n x86+GPU',
          'Tensorflow \n TX2',
          'Tensorflow \n TX2+GPU',
          'Tensorflow \n Coral',
          'Tensorflow \n Coral+TPU',
          'Tensorflow-Lite \n x86',
          'Tensorflow-Lite \n x86+GPU',
          'Tensorflow-Lite \n TX2',
          'Tensorflow-Lite \n TX2+GPU',
          'Tensorflow-Lite \n Coral',
          'Tensorflow-Lite \n Coral+TPU',
          'EdgeTPU \n Coral+TPU'],
          ['InceptionV1', 74, 0, 0, 0, 0, 0, 46, 0, 0, 0, 73, 0, 32],
          ['InceptionV2', 75, 0, 0, 0, 0, 0, 43, 0, 0, 0, 72, 0, 32],
          ['InceptionV3', 79, 0, 0, 0, 0, 0, 54, 0, 0, 0, 74, 0, 12],
          ['InceptionV4', 84, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 6],
          ['TinyYoloV2',  79, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0],
          ['TinyYoloV3',  76, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0]
        ]);
        var table_model_backend = google.visualization.arrayToDataTable([
        ['Model',
          'Tensorflow \n x86',
          'Tensorflow \n x86+GPU',
          'Tensorflow \n TX2',
          'Tensorflow \n TX2+GPU',
          'Tensorflow \n Coral',
          'Tensorflow \n Coral+TPU',
          'Tensorflow-Lite \n x86',
          'Tensorflow-Lite \n x86+GPU',
          'Tensorflow-Lite \n TX2',
          'Tensorflow-Lite \n TX2+GPU',
          'Tensorflow-Lite \n Coral',
          'Tensorflow-Lite \n Coral+TPU',
          'EdgeTPU \n Coral+TPU'],
          ['InceptionV1', 74, 0, 0, 0, 0, 0, 46, 0, 0, 0, 73, 0, 32],
          ['InceptionV2', 75, 0, 0, 0, 0, 0, 43, 0, 0, 0, 72, 0, 32],
          ['InceptionV3', 79, 0, 0, 0, 0, 0, 54, 0, 0, 0, 74, 0, 12],
          ['InceptionV4', 84, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 6],
          ['TinyYoloV2',  79, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0],
          ['TinyYoloV3',  76, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0]
        ]);
        var materialOptions = {
          width: 900,
          chart: {
            title: 'Backend Vs Platform per model',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'CPU USAGE'}, // Left y-axis.
            }
          }
        };
        var materialOptions1 = {
          width: 900,
          chart: {
            title: 'Model Vs Platform per backend',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'CPU USAGE'}, // Left y-axis.
            }
          }
        };
        var materialOptions2 = {
          width: 900,
          chart: {
            title: 'Model Vs Backend per Platform',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'CPU USAGE'}, // Left y-axis.
            }
          }
        };
        var materialChart = new google.charts.Bar(chartDivCPU);
        var materialChart1 = new google.charts.Bar(chartDiv1CPU);
        var materialChart2 = new google.charts.Bar(chartDiv2CPU);
        view = new google.visualization.DataView(table_backend_platform);
        view1 = new google.visualization.DataView(table_model_platform);
        view2 = new google.visualization.DataView(table_model_backend);
        function drawMaterialChart() {
          var materialChart = new google.charts.Bar(chartDivCPU);
          var materialChart1 = new google.charts.Bar(chartDiv1CPU);
          var materialChart2 = new google.charts.Bar(chartDiv2CPU);
          materialChart.draw(table_backend_platform, google.charts.Bar.convertOptions(materialOptions));
          materialChart1.draw(table_model_platform, google.charts.Bar.convertOptions(materialOptions1));
          materialChart2.draw(table_model_backend, google.charts.Bar.convertOptions(materialOptions2));
          init_charts();
        }
        function init_charts(){
          view.setColumns([0,1,2,3]);
          view.hideColumns([4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]);
          materialChart.draw(view, materialOptions);
          view1.setColumns([0,1,2,3,4,5,6]);
          view1.hideColumns([7,8,9,10,11,12]);
          materialChart1.draw(view1, materialOptions1);
          view2.setColumns([0,1,7]);
          view2.hideColumns([2,3,4,5,6,8,9,10,11,12]);
          materialChart2.draw(view2, materialOptions2);
        }
        // REF_MODEL CPU
        /*Select the Model that you want to show in the chart*/
        var show_inceptionv1_cpu = document.getElementById('show_inceptionv1_cpu');
        show_inceptionv1_cpu.onclick = function () {
          view.setColumns([0,1,2,3]);
          view.hideColumns([4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]);
          materialChart.draw(view, materialOptions);
        }
        var show_inceptionv2_cpu = document.getElementById("show_inceptionv2_cpu");
        show_inceptionv2_cpu.onclick = function() {
          view.setColumns([0,4,5,6]);
          view.hideColumns([1,2,3,7,8,9,10,11,12,13,14,15,16,17,18]);
          materialChart.draw(view, materialOptions);
        }
        var show_inceptionv3_cpu = document.getElementById('show_inceptionv3_cpu');
        show_inceptionv3_cpu.onclick = function() {
          view.setColumns([0,7,8,9]);
          view.hideColumns([1,2,3,4,5,6,10,11,12,13,14,15,16,17,18]);
          materialChart.draw(view, materialOptions);
        }
        var show_inceptionv4_cpu = document.getElementById("show_inceptionv4_cpu");
        show_inceptionv4_cpu.onclick = function() {
          view.setColumns([0,10,11,12]);
          view.hideColumns([1,2,3,4,5,6,7,8,9,13,14,15,16,17,18]);
          materialChart.draw(view, materialOptions);
        }
        var show_tinyyolov2_cpu = document.getElementById("show_tinyyolov2_cpu");
        show_tinyyolov2_cpu.onclick = function() {
          view.setColumns([0,13,14,15]);
          view.hideColumns([1,2,3,4,5,6,7,8,9,10,11,12,16,17,18]);
          materialChart.draw(view, materialOptions);
        }
        var show_tinyyolov3_cpu = document.getElementById("show_tinyyolov3_cpu");
        show_tinyyolov3_cpu.onclick = function() {
          view.setColumns([0,16,17,18]);
          view.hideColumns([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]);
          materialChart.draw(view, materialOptions);
        }
        /*  REF_BACKEND  CPU*/
        /*Select the backend to filter the data to show in the chart*/
        var button = document.getElementById('show_tensorflow_cpu');
        button.onclick = function() {
          view1.setColumns([0,1,2,3,4,5,6]);
          view1.hideColumns([7,8,9,10,11,12,13]);
          materialChart1.draw(view1, materialOptions1);
        }
        var showCPU_USAGE_only = document.getElementById("show_tflite_cpu");
        showCPU_USAGE_only.onclick = function() {
          view1.setColumns([0,7,8,9,10,11,12]);
          view1.hideColumns([1,2,3,4,5,6,13]);
          materialChart1.draw(view1, materialOptions1);
        }
        var showCPU_USAGE_EdgeTPU = document.getElementById("show_edgetpu_cpu");
        showCPU_USAGE_EdgeTPU.onclick = function() {
          view1.setColumns([0,13]);
          view1.hideColumns([1,2,3,4,5,6,7,8,9,10,11,12]);
          materialChart1.draw(view1, materialOptions1);
        }
        /*  REF_PLATFORM  CPU*/
        /*Select the Platform to filter the data to show in the chart*/
        var show_x86_cpu = document.getElementById('show_x86_cpu');
        show_x86_cpu.onclick = function() {
          view2.setColumns([0,1,7]);
          view2.hideColumns([2,3,4,5,6,8,9,10,11,12,13]);
          materialChart2.draw(view2, materialOptions2);
        }
        var show_x86_gpu_cpu = document.getElementById("show_x86_gpu_cpu");
        show_x86_gpu_cpu.onclick = function() {
          view2.setColumns([0,2,8]);
          view2.hideColumns([1,3,4,5,6,7,9,10,11,12,13]);
          materialChart2.draw(view2, materialOptions2);
        }
        var show_tx2_cpu = document.getElementById('show_tx2_cpu');
        show_tx2_cpu.onclick = function() {
          view2.setColumns([0,3,9]);
          view2.hideColumns([1,2,4,5,6,7,8,10,11,12,13]);
          materialChart2.draw(view2, materialOptions2);
        }
        var show_tx2_gpu_cpu = document.getElementById("show_tx2_gpu_cpu");
        show_tx2_gpu_cpu.onclick = function() {
          view2.setColumns([0,4,10]);
          view2.hideColumns([1,2,3,5,6,7,8,9,11,12,13]);
          materialChart2.draw(view2, materialOptions2);
        }
        var show_coral_cpu = document.getElementById('show_coral_cpu');
        show_coral_cpu.onclick = function() {
          view2.setColumns([0,5,11]);
          view2.hideColumns([1,2,3,4,6,7,8,9,10,12,13]);
          materialChart2.draw(view2, materialOptions2);
        }
        var show_coral_tpu_cpu = document.getElementById("show_coral_tpu_cpu");
        show_coral_tpu_cpu.onclick = function() {
          view2.setColumns([0,6,12,13]);
          view2.hideColumns([1,2,3,4,5,7,8,9,10,11]);
          materialChart2.draw(view2, materialOptions2);
        }
        drawMaterialChart();
    };
</script>
</html>
=== Test benchmark video ===
The following video was used to perform the benchmark tests.
<br>
To download the video press  right click on the video and select 'Save video as' and save this in your computer.
[[File:Test benchmark video.mp4|500px|thumb|center|Test benchmark video]]
== ONNXRT Benchmarks ==
The Desktop PC had the following specifications:
*Intel(R) Core(TM) Core i7-7700HQ CPU @ 2.80GHz
*12 GB RAM
*Linux 4.15.0-106-generic x86_64 (Ubuntu 16.04)
*GStreamer 1.8.3
The following was the GStreamer pipeline used to obtain the results:
<source lang="bash">
# MODELS_PATH has the following structure
#/path/to/models/
#├── InceptionV1_onnxrt
#│   ├── graph_inceptionv1_info.txt
#│   ├── graph_inceptionv1.onnx
#│   └── labels.txt
#├── InceptionV2_onnxrt
#│   ├── graph_inceptionv2_info.txt
#│   ├── graph_inceptionv2.onnx
#│   └── labels.txt
#├── InceptionV3_onnxrt
#│   ├── graph_inceptionv3_info.txt
#│   ├── graph_inceptionv3.onnx
#│   └── labels.txt
#├── InceptionV4_onnxrt
#│   ├── graph_inceptionv4_info.txt
#│   ├── graph_inceptionv4.onnx
#│   └── labels.txt
#├── TinyYoloV2_onnxrt
#│   ├── graph_tinyyolov2_info.txt
#│   ├── graph_tinyyolov2.onnx
#│   └── labels.txt
#└── TinyYoloV3_onnxrt
#    ├── graph_tinyyolov3_info.txt
#    ├── graph_tinyyolov3.onnx
#    └── labels.txt
model_array=(inceptionv1 inceptionv2 inceptionv3 inceptionv4 tinyyolov2 tinyyolov3)
model_upper_array=(InceptionV1 InceptionV2 InceptionV3 InceptionV4 TinyYoloV2 TinyYoloV3)
MODELS_PATH=/path/to/models/
INTERNAL_PATH=onnxrt
EXTENSION=".onnx"
gst-launch-1.0 \
filesrc location=$VIDEO_PATH num-buffers=600 ! decodebin ! videoconvert ! \
perf print-arm-load=true name=inputperf ! tee name=t t. ! videoscale ! queue ! net.sink_model t. ! queue ! net.sink_bypass \
${model_array[i]} backend=onnxrt name=net \
model-location="${MODELS_PATH}${model_upper_array[i]}_${INTERNAL_PATH}/graph_${model_array[i]}${EXTENSION}" \
net.src_bypass ! perf print-arm-load=true name=outputperf ! videoconvert ! fakesink sync=false
</source>
=== FPS Measurements ===
<html>
<style>
    .button {
    background-color: #008CBA;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
  }
</style>
<div id="Buttons_Model_Onnxrt_Fps" style="margin: auto; width: 1300px; height: auto;">
<button class="button" id="show_inceptionv1_onnxrt_fps">Show InceptionV1 </button>
<button class="button" id="show_inceptionv2_onnxrt_fps">Show InceptionV2 </button>
<button class="button" id="show_inceptionv3_onnxrt_fps">Show InceptionV3 </button>
<button class="button" id="show_inceptionv4_onnxrt_fps">Show InceptionV4 </button>
<button class="button" id="show_tinyyolov2_onnxrt_fps">Show TinyYoloV2 </button>
<button class="button" id="show_tinyyolov3_onnxrt_fps">Show TinyYoloV3 </button>
</div>
<br><br>
<div id="chart_onnxrt" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<div id="Buttons_Backend_Onnxrt_Fps" style="margin: auto; width: 600px; height: auto;">
<button class="button" id="show_onnxrt_fps">Show ONNXRT </button>
</div>
<div id="chart_onnxrt1" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<script>
      google.charts.load('current', {'packages':['corechart', 'bar']});
      google.charts.setOnLoadCallback(drawStuffFpsOnnxrt);
     
      function drawStuffFpsOnnxrt() {
        var onnxrt_chartDiv = document.getElementById('chart_onnxrt');
        var onnxrt_chartDiv1 = document.getElementById('chart_onnxrt1');
        var table_backend_platform_onnxrt_fps = google.visualization.arrayToDataTable([
          ['Platform',                  //Column 0
          'InceptionV1 \n ONNXRT',    //Column 1
          'InceptionV2 \n ONNXRT',    //Column 2
          'InceptionV3 \n ONNXRT',    //Column 3
          'InceptionV4 \n ONNXRT',    //Column 4
          'TinyYoloV2 \n ONNXRT',      //Column 5
          'TinyYoloV3 \n ONNXRT'],    //Column 6
          ['x86', 47.8702, 32.7236, 12.092, 5.2632, 16.03, 18.3592]
        ]);
        var table_model_platform_onnxrt_fps = google.visualization.arrayToDataTable([
          ['Model',                  //Column 0
            'ONNXRT \n x86'],        //Column 1
          ['InceptionV1', 47.8702], //row 1
          ['InceptionV2', 32.7236], //row 2
          ['InceptionV3', 12.092], //row 3
          ['InceptionV4', 5.2632], //row 4
          ['TinyYoloV2',  16.03], //row 5
          ['TinyYoloV3',  18.3592]  //row 6
        ]);
        var onnxrt_materialOptions = {
          width: 320,
          chart: {
            title: 'Backend Vs Platform per model',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'FPS'}, // Left y-axis.
            }
          }
        };
        var onnxrt_materialOptions1 = {
          width: 900,
          chart: {
            title: 'Model Vs Platform per backend',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'FPS'}, // Left y-axis.
            }
          }
        };
        var materialChart_onnxrt_fps = new google.charts.Bar(onnxrt_chartDiv);
        var materialChart_onnxrt_fps1 = new google.charts.Bar(onnxrt_chartDiv1);
        view_onnxrt_fps = new google.visualization.DataView(table_backend_platform_onnxrt_fps);
        view_onnxrt_fps1 = new google.visualization.DataView(table_model_platform_onnxrt_fps);
        function drawMaterialChart() {
          var materialChart_onnxrt_fps = new google.charts.Bar(onnxrt_chartDiv);
          var materialChart_onnxrt_fps1 = new google.charts.Bar(onnxrt_chartDiv1);
          materialChart_onnxrt_fps.draw(table_backend_platform_onnxrt_fps, google.charts.Bar.convertOptions(onnxrt_materialOptions));
          materialChart_onnxrt_fps1.draw(table_model_platform_onnxrt_fps, google.charts.Bar.convertOptions(onnxrt_materialOptions1));
          init_charts();
        }
        function init_charts(){
          view_onnxrt_fps.setColumns([0,1]);
          view_onnxrt_fps.hideColumns([2, 3, 4, 5, 6]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
          view_onnxrt_fps1.setColumns([0,1]);
          materialChart_onnxrt_fps1.draw(view_onnxrt_fps1, onnxrt_materialOptions1);
        }
        // REF_MODEL
        /*Select the Model that you want to show in the chart*/
        var show_inceptionv1_onnxrt_fps = document.getElementById('show_inceptionv1_onnxrt_fps');
        show_inceptionv1_onnxrt_fps.onclick = function () {
          view_onnxrt_fps.setColumns([0,1]);
          view_onnxrt_fps.hideColumns([2, 3, 4, 5, 6]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
        }
        var show_inceptionv2_onnxrt_fps = document.getElementById('show_inceptionv2_onnxrt_fps');
        show_inceptionv2_onnxrt_fps.onclick = function () {
          view_onnxrt_fps.setColumns([0,2]);
          view_onnxrt_fps.hideColumns([1, 3, 4, 5, 6]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
        }
        var show_inceptionv3_onnxrt_fps = document.getElementById('show_inceptionv3_onnxrt_fps');
        show_inceptionv3_onnxrt_fps.onclick = function () {
          view_onnxrt_fps.setColumns([0,3]);
          view_onnxrt_fps.hideColumns([1, 2, 4, 5, 6]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
        }
        var show_inceptionv4_onnxrt_fps = document.getElementById('show_inceptionv4_onnxrt_fps');
        show_inceptionv4_onnxrt_fps.onclick = function () {
          view_onnxrt_fps.setColumns([0,4]);
          view_onnxrt_fps.hideColumns([1, 2, 3, 5, 6]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
        }
        var show_tinyyolov2_onnxrt_fps = document.getElementById('show_tinyyolov2_onnxrt_fps');
        show_tinyyolov2_onnxrt_fps.onclick = function () {
          view_onnxrt_fps.setColumns([0,5]);
          view_onnxrt_fps.hideColumns([1, 2, 3, 4, 6]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
        }
        var show_tinyyolov3_onnxrt_fps = document.getElementById('show_tinyyolov3_onnxrt_fps');
        show_tinyyolov3_onnxrt_fps.onclick = function () {
          view_onnxrt_fps.setColumns([0,6]);
          view_onnxrt_fps.hideColumns([1, 2, 3, 4, 5]);
          materialChart_onnxrt_fps.draw(view_onnxrt_fps, onnxrt_materialOptions);
        }
        // REF_BACKEND
        /*Select the Model that you want to show in the chart*/
        var show_onnxrt_fps = document.getElementById('show_onnxrt_fps');
        show_onnxrt_fps.onclick = function () {
          view_onnxrt_fps1.setColumns([0,1]);
          materialChart_onnxrt_fps1.draw(view_onnxrt_fps1, onnxrt_materialOptions1);
        }
        drawMaterialChart();
    };
</script>
</html>
=== CPU Load Measurements ===
<html>
<style>
    .button {
    background-color: #008CBA;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
  }
</style>
<div id="Buttons_Model_Onnxrt_Cpu" style="margin: auto; width: 1300px; height: auto;">
<button class="button" id="show_inceptionv1_onnxrt_cpu">Show InceptionV1 </button>
<button class="button" id="show_inceptionv2_onnxrt_cpu">Show InceptionV2 </button>
<button class="button" id="show_inceptionv3_onnxrt_cpu">Show InceptionV3 </button>
<button class="button" id="show_inceptionv4_onnxrt_cpu">Show InceptionV4 </button>
<button class="button" id="show_tinyyolov2_onnxrt_cpu">Show TinyYoloV2 </button>
<button class="button" id="show_tinyyolov3_onnxrt_cpu">Show TinyYoloV3 </button>
</div>
<br><br>
<div id="chart_onnxrt_cpu" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<div id="Buttons_Backend_Onnxrt_Cpu" style="margin: auto; width: 600px; height: auto;">
<button class="button" id="show_onnxrt_cpu">Show ONNXRT </button>
</div>
<div id="chart_onnxrt1_cpu" style="margin: auto; width: 800px; height: 500px;"></div>
<br><br>
<script>
      google.charts.load('current', {'packages':['corechart', 'bar']});
      google.charts.setOnLoadCallback(drawStuffCpuOnnxrt);
     
      function drawStuffCpuOnnxrt() {
        var onnxrt_chartDiv_cpu = document.getElementById('chart_onnxrt_cpu');
        var onnxrt_chartDiv1_cpu = document.getElementById('chart_onnxrt1_cpu');
        var table_backend_platform_onnxrt_cpu = google.visualization.arrayToDataTable([
          ['Platform',                  //Column 0
          'InceptionV1 \n ONNXRT',    //Column 1
          'InceptionV2 \n ONNXRT',    //Column 2
          'InceptionV3 \n ONNXRT',    //Column 3
          'InceptionV4 \n ONNXRT',    //Column 4
          'TinyYoloV2 \n ONNXRT',      //Column 5
          'TinyYoloV3 \n ONNXRT'],    //Column 6
          ['x86', 94.6, 100.0, 95.2, 88.8, 94.0, 91.4]
        ]);
        var table_model_platform_onnxrt_cpu = google.visualization.arrayToDataTable([
          ['Model',                  //Column 0
            'ONNXRT \n x86'],        //Column 1
          ['InceptionV1', 94.6], //row 1
          ['InceptionV2', 100.0], //row 2
          ['InceptionV3', 95.2], //row 3
          ['InceptionV4', 88.8], //row 4
          ['TinyYoloV2',  94.0], //row 5
          ['TinyYoloV3',  91.4]  //row 6
        ]);
        var onnxrt_materialOptions_cpu = {
          width: 320,
          chart: {
            title: 'Backend Vs Platform per model',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'CPU Usage'}, // Left y-axis.
            }
          }
        };
        var onnxrt_materialOptions1_cpu = {
          width: 900,
          chart: {
            title: 'Model Vs Platform per backend',
          },
          series: {
          },
          axes: {
            y: {
              distance: {side: 'left',label: 'CPU Usage'}, // Left y-axis.
            }
          }
        };
        var materialChart_onnxrt_cpu = new google.charts.Bar(onnxrt_chartDiv_cpu);
        var materialChart_onnxrt_cpu1 = new google.charts.Bar(onnxrt_chartDiv1_cpu);
        view_onnxrt_cpu = new google.visualization.DataView(table_backend_platform_onnxrt_cpu);
        view_onnxrt_cpu1 = new google.visualization.DataView(table_model_platform_onnxrt_cpu);
        function drawMaterialChart() {
          var materialChart_onnxrt_cpu = new google.charts.Bar(onnxrt_chartDiv_cpu);
          var materialChart_onnxrt_cpu1 = new google.charts.Bar(onnxrt_chartDiv1_cpu);
          materialChart_onnxrt_cpu.draw(table_backend_platform_onnxrt_cpu, google.charts.Bar.convertOptions(onnxrt_materialOptions_cpu));
          materialChart_onnxrt_cpu1.draw(table_model_platform_onnxrt_cpu, google.charts.Bar.convertOptions(onnxrt_materialOptions1_cpu));
          init_charts();
        }
        function init_charts(){
          view_onnxrt_cpu.setColumns([0,1]);
          view_onnxrt_cpu.hideColumns([2, 3, 4, 5, 6]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
          view_onnxrt_cpu1.setColumns([0,1]);
          materialChart_onnxrt_cpu1.draw(view_onnxrt_cpu1, onnxrt_materialOptions1_cpu);
        }
        // REF_MODEL
        /*Select the Model that you want to show in the chart*/
        var show_inceptionv1_onnxrt_cpu = document.getElementById('show_inceptionv1_onnxrt_cpu');
        show_inceptionv1_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu.setColumns([0,1]);
          view_onnxrt_cpu.hideColumns([2, 3, 4, 5, 6]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
        }
        var show_inceptionv2_onnxrt_cpu = document.getElementById('show_inceptionv2_onnxrt_cpu');
        show_inceptionv2_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu.setColumns([0,2]);
          view_onnxrt_cpu.hideColumns([1, 3, 4, 5, 6]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
        }
        var show_inceptionv3_onnxrt_cpu = document.getElementById('show_inceptionv3_onnxrt_cpu');
        show_inceptionv3_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu.setColumns([0,3]);
          view_onnxrt_cpu.hideColumns([1, 2, 4, 5, 6]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
        }
        var show_inceptionv4_onnxrt_cpu = document.getElementById('show_inceptionv4_onnxrt_cpu');
        show_inceptionv4_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu.setColumns([0,4]);
          view_onnxrt_cpu.hideColumns([1, 2, 3, 5, 6]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
        }
        var show_tinyyolov2_onnxrt_cpu = document.getElementById('show_tinyyolov2_onnxrt_cpu');
        show_tinyyolov2_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu.setColumns([0,5]);
          view_onnxrt_cpu.hideColumns([1, 2, 3, 4, 6]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
        }
        var show_tinyyolov3_onnxrt_cpu = document.getElementById('show_tinyyolov3_onnxrt_cpu');
        show_tinyyolov3_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu.setColumns([0,6]);
          view_onnxrt_cpu.hideColumns([1, 2, 3, 4, 5]);
          materialChart_onnxrt_cpu.draw(view_onnxrt_cpu, onnxrt_materialOptions_cpu);
        }
        // REF_BACKEND
        /*Select the Model that you want to show in the chart*/
        var show_onnxrt_cpu = document.getElementById('show_onnxrt_cpu');
        show_onnxrt_cpu.onclick = function () {
          view_onnxrt_cpu1.setColumns([0,1]);
          materialChart_onnxrt_cpu1.draw(view_onnxrt_cpu1, onnxrt_materialOptions1);
        }
        drawMaterialChart();
    };
</script>
</html>
=== Test benchmark video ===
The following video was used to perform the benchmark tests.
<br>
To download the video press  right click on the video and select 'Save video as' and save this in your computer.
[[File:Test benchmark video.mp4|500px|thumb|center|Test benchmark video]]


== Jetson AGX Xavier ==
== Jetson AGX Xavier ==
579

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.