TensorRT 5.1 Windows10 での試し #2

TensorRT 5.1 の Windows10での試し、第2回として、
今回は、 Pytorch 1.0 Object Detection faster-rcnn の試し で使った学習済みモデルを、
TensorRT 5.1 に持って行って実行できるか試してみます。

TensorRT で Pytorch の学習済モデルを使うには、ONNX format にしてから、TensorRT で取り込んんでやれば良いとの事です。

https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html#onnx_mnist_sample 

その前に、 おんちゃんは、TensorRT5.1 で C++ 開発をするにあたり、下記ページを参考にしています。
tensorrt-developer-guide > 2. Working With TensorRT Using The C++ API

TensorRT 5.1 Windows10 での試し

TensorRT 5.1 を Windows10 で試して見ました。

おんちゃんの環境は、
1) Windows10
2) Visual Studio 2017 Community
3) GeForce GTX 1050 Ti
4) CudaToolkit は、 10.1
5) cuDNN は、 7.5.1 じゃ。

ここに書いてあることは、TensorRT5.1 のダウンロード時に、NVIDIA Developer のアンケートに
記入すると、送られてくる Get Started with TensorRT™ のメールに書かれている内容に従って
行っちょります。大変参考になりました。

対応マトリックスが、下記ページにあります。
https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html

GPUカードに関しては、
4. Hardware And Precision の箇所に、
TensorRT supports all NVIDIA hardware with capability SM 3.0 or higher.  と記載があるので、
おんちゃんの、GeForce GTX 1050 Ti でも大丈夫でしょうか?

但し、Windows10 だと、C++ だけみたいぞね。Python は、将来のサポートみたいです。

インストール方法は、下記ページぞね。
https://docs.nvidia.com/deeplearning/sdk/tensorrt-install-guide/index.html

Zip インストールを選ぶので、下記箇所を参考に
4.4. Zip File Installation

書籍 "C++で学ぶディープラーニング" のサンプルに出てくる cuMat/cuMat.h のコンパイルエラーに関して。
https://github.com/takezo5096/cuMat/blob/master/cuMat.h

おんちゃんの、開発環境
Windows10
VisualStudio 2017 Community (VS 2017 用 x64 Native Tools コマンド プロンプト -> cl.exe)
Cuda tool kit 10.1(cuda_10.1.105_418.96_win10.exe)
boost_1_68_0

で、上記 cuMat.h をインクルードしてプログラムサンプルをコンパイルしようとすると、エラーが出たので、その対応方法を書いてみました。

Pytorch 1.0 Object Detection faster-rcnn の試し

Windows10 + Pytorch 1.0 + VisualStudio 2017 環境で試せる Object Detection faster-rcnn が
GitHub に紹介されていたので、試してみました。

 https://github.com/facebookresearch/maskrcnn-benchmark

インストレーションは、
https://github.com/facebookresearch/maskrcnn-benchmark/blob/master/INSTALL.md

を参考にして行います。

但し途中の箇所でエラーが出てそれから進みません。

Raspberry Pi (Raspbian) C light http server

Raspberry Pi (Raspbian) で動く 簡単な C light http サーバーを作ってみました。

同一ネットワーク上の、PCのブラウザーから、このRaspberry pi の c Http サーバーにアクセスして、サーバー上のPerl cgi, C++ cgi プログラムを直接実行して、その結果を、PCのブラウザーで確認できます。

軽量なので、Raspberry Pi で、それなりに動作します。
おまけに、CGI.cpp , CGILite.cpp ライブラリ を使えば、C++プログラムをサーバー上で、CGIとして実行できるので、
ブラウザーを使った、クライアント&サーバープログラムを容易に開発できます。

C++であれば、Raspi のポート操作も簡単にできます。試しに、LEDチカ、I2C 温度センサーの表示など作ってみてはどうぞね!

興味のある方は、こちらからダウンロードしてください。
Ras-pi C Light http server

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #8 です。

i2s_write が間に合っていないと言う事が判ったので、
i2s_write() が最速になるように、i2s_config の設定を色々試して、下記の様に変更しました。
app_main()::main.c

APTX の1フレームのデコード済データ長は、 2,688 バイト みたいなので、
同じ値にしたかったのですが、I2S DMA の最大は、1024バイトのようなので、
.dma_buf_len = 672 にしました。
.dma_buf_count は、目一杯にしたかったのですが、取り敢えず、.dma_buf_count = 20 です。

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #7 です。

なんとか、APTXのデコード部分を、2つのタスクを起動して、負荷の分散を行わせる事ができました。
これで、先般の、 "Pkt dropped" の表示がでなくなりました。

概要は、btc_a2dp_sink_data_ready()::btc_a2dp_sink.c が元々ありますが、
ここから、従来は、btc_a2dp_sink_handle_inc_media_Aptx(int8_t id,tBT_SBC_HDR *p_msg)::btc_a2dp_sink.c
(注: これは、 APTX 用に、btc_a2dp_sink_handle_inc_media(int8_t id,tBT_SBC_HDR *p_msg)::btc_a2dp_sink.c を改造したもの)
を直接コールしていた流れを、
別タスクを2つを起動させて置いて、そこから、上記関数をコールさせるようにしました。
これで、受信した音楽フレームを交互に振り分けて、APTXのデコード処理以降を分散させます。

なほ、上記2つのタスクは、それぞれ、別コアでの起動にします。

さて、音の方は言うと、音楽として判るようにはなりましたが、
まだまだ、まともには聴ける音ではありません。

常に、ビーンビーンと、かそれに近い雑音が出ていて、たまに、ピチピチ(チッピング音)が出ています。
まだまだ、プログラムとして問題があるようです。

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #6 です。

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #5 で説明した、プログラムの修正以外にも、結構な変更があったのですが、一応それらを、全て行って、
https://github.com/pali/libopenaptx のデコードのプログラムを組み込んで、試してみました。

結論から言えば、残念ながら、上記の、 libopenaptx のプログラムでは、おんちゃんの場合は、
まともな音は出ませんでした。

一応、Windows10+Bluetoothドングルで、 APTX でのフレーム受信までは出来るようになりました。

上記、 libopenaptx のプログラムでAPTX audio データをデコードして、I2S で音出ししてみると、
殆どノイズでうるさくて、まともに音楽は出てきません。

Windows10 の IE で YouTube を開いて、音楽を聴くと、 Bluetooth でペアリングした、ESP32 に繋げた I2S DAC ( https://www.switch-science.com/catalog/3572/ ) のヘッドホーンからは、それらしい音は出てきますが、ノイズの方が大きくて、まともには聴けません。

残念!!

最近のMSN の記事には、ウイルスに感染されたページが本当に多い。

普段通りに記事を見ていると、一日に一回は、必ず、 "Windowsシステムの修復が必要です。" とか言うポップアップが表示されるページにリダイレクトされる。

そのたびに、ブラウザーのプロセスを止めて対応しないといけない。

MSNの管理者は、なぜほったらかしにしているのだろうか?
記事を登録している所が、ハッキングされているのに、
何も対応しないのだろうか?

ESP32 esp-idf bluetooth a2dp_sink への aptx decode 実装の考察 の続き、 #5 です。

その後、あちこち、DEBUG表示を行って、調べてみました。
AVDTP(AUDIO/VIDEO DISTRIBUTION TRANPORT PROTOCOL SPECIFICATION) や、GAP(Generic Audio/Video Distribution Profile) 上の、
Idle -> Cofigured -> Open に至る部分が、下記のようです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アイテム

  • esp32-gysfdmaxb-server_2018.10.6.jpg
  • ESP32_gysfdmaxb_Server_resp-181005-1.jpg
  • esp32_gps-view-181005-1.jpg
  • ESP-WROOM-02-G`PS-2017.10.21-1l.jpg
  • PIC32MX_hid_basic_moouse_bredboard2_2017.10.15.jpg
  • PIC32MX_hid_basic_moouse_bredboard1_2017.10.15.jpg
  • PIC32MX hid_basic_mouse_usart_pps-output-settings_2017_10_14.jpg
  • PIC32MX hid_basic_mouse_usart_pps-input-settings_2017_10_14.jpg
  • PIC32MX hid_basic_mouse_usart_pin-table_2017_10_12.jpg
  • PIC32MX hid_basic_mouse_usart_pin-diagram_2017_10_12.jpg

ウェブページ

サイトナビ