Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Google edge TPU と Ultra96



Ultra96とTPU edgeでデモ動いたわ


ということだったので、確認したら、

@ikwzm 氏の Ulra96のDebian 9上で、edge TPUが動いたようです。
(ツイートでは、Ubuntu 16.04LTS とありますが、@ikwzm 氏のものは Debian です。似たようなもんですが。

そして、edge TPU は、ARM64 + Debianで動くと書いてあるので、ここ

引用
 Any Linux computer with a USB port
  ・Debian 6.0 or higher, or any derivative thereof (such as Ubuntu 10.0+)
  ・System architecture of either x86-64 or ARM32/64 with ARMv8 instruction set

ということで、

 Ultra96の MIPI Camera からの画像を直接処理して、
  edge TPUが食べられるフォーマットに変換したものをメモリに吐き出して、
  それを使ってedge TPUで推論すればいい。

  Jetson NanoやRasPi4より速くなるかな?


引用
    /*** Read input image data ***/
    cv::Mat inputImage = cv::imread("parrot.jpg");
    cv::cvtColor(inputImage, inputImage, CV_BGR2RGB);
    cv::resize(inputImage, inputImage, cv::Size(MODEL_WIDTH, MODEL_HEIGHT));
    std::vector<uint8_t> inputData(inputImage.data, inputImage.data + (inputImage.cols * inputImage.rows * inputImage.elemSize()));

    /*** Run inference ***/
    const auto& result = coral::RunInference(inputData, interpreter.get());

で、cv::imread で画像読み込んで(実際は、MIPI Cameraから)、resizeまでの処理を FPGA でやっちゃう感じ。

ちなみに、Jetson Nano のSoCである Tegra X1 のTechnical Manualは、NVIDIAのサイト(ユーザ登録必要)のここからダウンロードできます。