ウィリアムのいたずらの、まちあるき、たべあるきーPART2

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

PythonでFPGA(高位合成)とか、聞いてきた!

7月28日、ARMマイコン・ワークショップ2017に行ってきた!ので内容をメモメモ
ちなみに、表題の件は、
「■ARM+FPGA スマート・エッジ・コンピューティング」
の中で出てくる




■今すぐ使える!AIを活用したIoT(クラウド)

マイクロソフト:リストラクチャリング
→ライセンス売りから、クラウド利用・AI
・自己紹介
・マイクロソフト:IoTで3~4年
→センサークラウドは2010年くらい
・組み込みの人の気持ち:ソフトの人にはわからない

・Internet of Things
 Things
 コネクティビティ
 データ
 アナリティクス→AI
 アクション

・IoTの多様なシナリオ
 →AIも活用現場いろいろ

・IoTで価値を生むプロセス
 リアルな世界のデータ収集
 コトから分析シナリオを抽出→膨大なデバイス・データ・処理量
 分析処理(AI)を構築
 分析処理をシステムに組み込む
・AzureによるIoT推奨アーキテクチャ
 →なぜIoTでクラウド?

・クラウド以前、クラウド昔、今
  以前:自前、自分でパッチ
  クラウド:VM→やらないといけないことは一緒
  今→PaaS
 駄目なら、止められる:実証実験
 自学自習可能なハンズオンコンテンツ

・IoT・AI
 AIの活用:組み込み機器・エッジ/FPGA、ニューラルチップ、ソフト
 クラウド4段階
  こぐにてぃぶサービス:MSで学習
  カスタマイザブルこぐにてぃぶサービス:特定画像の認識
  MLスタジオ:何を解けばよいかわかっている
  Rサーバー、Hadoop

・こぐにてぃぶ
 感情
 顔
 画像認識:日々学習
 Bing
 スピーチToテキスト
 →組み込み機器で利用:REST APIで
  BOTフレームワーク

・デモ
 画像のURL:解析結果を出してくる
 確率がついている
 LUIS
 カスタムビジョンサービス
  https://www.customvision.ai/ マイクロソフトアカウント必要(無料)
  自分の画像を用意し
  Train
  評価したい画像を張ると・・・あれ0?、いやOKです
 REST APIその他情報もみれる
  →RasPiで聞いてもらっても。
   .net core → RasPiでUbuntu

 Cloud側でCognitive Serviceを活用する

・Azure ML Studio
 機械学習の普及を加速させるモデリングとAPI環境
 (制約あるけど、無料でできる)
 回帰、分類、クラスタリング、異常検知

・デモ(今日のデモはみんな無料でできるよ)
 100%正しい予測はいいか?
  →新しいデータでは?
 Excelにも組み込める

 IoTにおけるクラウド側での分析処理
  バッチ分析
  リアルタイム分析
 →リアルタイム;膨大なデータだと難しいところ
    LSTMのフレームワークは出している
    Stream Analytics

・R Server for HDInsight
  巨大なデータを扱うための処理クラスタ
 →Big Dataを扱うAIは、ちょっとしたPC上で
  簡単に試せる世界とは全く違う

・AIサービスポイント
 巨大データを受け付けられる→ストレージ
 スケール可能
 セキュア:データとAPI
 →自前は無理な領域

・EdgeとCloudのロードバランシング
  Cloud側のIoT
  Edge側のIoT
 →IoT Edge SDK

・エッジの機能拡張

・デバイス→クラウド→デバイス
  データ  学習   パラメタ
      継続学習

・まとめ
 クラウドのML、AI:実用
 AI データと問題必要


■920MHz無線モジュールとARM mbedを使って
 地温高密度メッシュ観測システムを作ろう

・自己紹介
・何を作ったか
 火山など:地熱を測る
 2.4GHz:障害物、電気くう→920MHz

・システム
  920Mhz→IM920AD変換→mbedc027→3G(そらこむ)

・技術要素
 920MHzIM920
  インタープラン 秋月・千石で変えて、情報得られる 4000円

 C027 U20
  UBlocks docomo系SIM使える。技適とってる

 IoTクラウドサーバーM2x
   at&t
  Xivelyに似ている HTTP API,MQTT,
  10個まで無料

 ハード
  内蔵ADで
  IM920 AD変換モード
  DCDC 秋月さんで
  温度センサーMCP9700
  バッテリー:分圧して図る
  親機はクラウドへ3G

 ソフト
  IM920設定
   子機のSNを設定
  プログラム
   親機  スレッドを使った
   送信スレッド

 プログラム:公開している

 観測
  設置状況
  実測データ
  M2XからデータをGetする

・まとめ
 回路によってノイズレベル違う
 電池電圧低下
 やっぱAK-020などの安価なUSB-3Gモデムが使えれば

・コラム1 mbedでUSB 3Gモデム
 AK-020
 mbed OS5のCellular Base Class

・コラム2 mbedって
 mbedS2 + mbedOS3(RTOS)mbed os5
 ユーザーライブラリ:メンテナンスされてない→そのまま使えない
   自前で書いたほうが早い
 あってよかったスレッド機能
  昔は割り込みハンドらでデータ受信、表のループでデータ送信

■ARM+FPGA スマート・エッジ・コンピューティング
・自己紹介
・ARM+FPGA
 どんな選択肢
 なんに使える?
・どんな選択肢
 FPGA:CPUがついていない
  →信号線が入ってきて出る
 →ARMが入ってきて、使いやすくなった
 いままでは:回路を書かないといけない
 いまは:ARMのLinuxが立ち上がる

 Xilinx:ARMのチュートリアル
  A9  ARM V7→割り込みから立ち上がり20クロックかかることも
  R5
  M3  ARM v7-M Thum-2

・そもそもFPGAってなに?
 ハードウェアを自由に組める
 並列処理ができる
 →単純なふるあだー回路
 FPGA
  ハードウェア記述言語(HDL)
Verilog:Cライク
VHDL:ADA、Moduler2ベース

・FPGAの特徴
 不得意なこと:高速処理?
→Intelと勝負するのは・・・GPUも結構速い!
 得意なこと:
並列計算
レイテンシを守る
ビット計算
柔軟性
 FPGAはクロック200Mそこそこ

・FPGAでパイプライン処理
  処理を細分化することで高速化が可能
  並列に処理することで高速化が可能

・FPGAの柔軟性(可変長ビット)

・LoRaによるネットワーク
 IoTのための長距離低消費電力ワイヤレスプラットフォーム
 LoRaは変調方式、LoRaWANは仕様です
 LoRa変調
  都市部2~5Km、みとおし15K
  スター型ネットワーク
  参考ーZigBee等:メッシュネットワーク
 LoRaは立ち上がり、立ち上がりが早い→待機電力を長くとれる→低消費
 LoRaWAN:少量のデータを間欠的におくる(法律で決まっている)
   →温度センサーなど

・使ってみた!
 技適:ファームとアンテナあわせて
  1276
 LoRaWAN:DevEUIに注意、アンテナつけていないと10mくらい?

・高位合成
 C,PythonでFPGA
 →PythonでFPGAを進めている
 High level Synthesis(HLS)
   Vivado HLS/SDDoc:C/C++からHDL
   OpenCL
   Polypony:PythonからVerilogへ
 ;=と<=
 PYNQ:FPGAとRaspberry Piで何が違う?
  Raspberry Pi:工業用にはできていない→やれれば
 Pythonで簡単にFPGAを使いたい
  そのままでは動かない:ハードの知識必要
  verilog書いたほうがいい高位合成ある

・FPGAでスマートエッジコンピューティング
 田んぼの温度ならFPGAいらない(RasPiでOK)
 地震:ウェーブレット解析、FFT解析:RasPiでは間に合わない→FPGA
   場合によってはエッジにFPGA?→消費電力くう

 Pmod(ぴーもっど)
  Ambient Light
  OLED(SPI)
 開発キット Kiss4 Zynq=ARM+FPGA
  LoRA 村田さん(技適とおっている)

 ディープラーニング:絶賛開発中
  M4だけで

■マシーンラーニング on ディープリー えんべっテッド
 あんど
IoT用にりそーすが制限されたエンドノード

・人の会話でも言葉の認識難しい
 →マシンならもっと
 コアからエッジへ:インテリジェントな処理
 センサー:リトルデータ→クラウド:ビッグデータ
  エンドにオフロード
  埋め込み知能によるインテリジェンス

・AI:ウェアラブル、ソーシャル、不正利用、道路案内
  学術的進歩
  高性能コンピューター
  データ量が増えている

・マシンラーニング
  クラウドと トレインモデル 認識、判定、分析
  デバイス  フィルタリング、低遅延 あくちゅえーション
 →機械学習に求められる特性の違い

・マシンラーニングとシステム:相反する性質→トレードオフを意識することなく・・

・ニューラルネットワークおさらい
 積和演算→ハードで

・ARM ML用埋め込み知能 3つ
  適切なコンピューティング能力
  スケーラブル
  充実したライブラリ

 ARM Cortex
  エンド    M
  クラウド   A
  リアルタイム R

・23 
 ジャスチャーなど M23,M3
 SIMD、DSP、キーワードすぽってぃんぐアルゴリズム M33,M4
 さらに高度な音声、画像識別 M7

   それでもたりない

 A系プロセッサ

・ヘテロジニアス
  AとMをいれたSoC
  コプロセッサ

・エンドノードの例
  スマートスピーカー
   Audio Analytic;煙、ガス検知
  医療;ER 呼吸不全、ぜんそく→適切な早期の対処で防止できる
  COPD:3番目の死因 ML、オーディオ処理ウェアラブルネックレスで

 It is easy to recognized speach
 It is easy to wreck a nice beach
  ぼコーダー1920年代から

■LoRaWANの現在と活用
・自己紹介
・LoRaWANとは
  LPWA:Sigfoxとかもある
  技術仕様はOpen,チップは認証有

・LoRaとLoRaWANの違い
  LoRaは変調方式(データ 電波への変換方式)  :レイヤ1
  LoRaWANはMACレイヤ(L2)まで含めた使用:EtherNet
   →レイヤ3(インターネットの世界のIPとか)以上は、ユーザー実装
      →送れるデータが少ない
・LoRa:変調ローラといったりする
 リージョナルISMバンド:国によって使える周波数
  AS923:日本国内でも使える
  LoRaMAC:データアクセス3つある
   クラスA:データを送るための仕組み

 LoRa変調:直行格差(スペクトラム変調:拡散)
  Sigfoxは点 LoRaは面:面の広さ→拡散率を変更できる
  距離と伝送速度を設計できる
 920MHz ARIB チャンネル24から38チャンネル 20mw~250mw
  250mwは免許いる
  33チャンネルから66チャンネル
   400ms送ったら、4秒間休む

・LoRaWAN
  デバイス・ゲートウェイ・ネットワークサーバー
  ネットワークサーバー:ルーターみたいなもん
  ゲートウェイ:なにもやっていません(電波を受けてIPに)
   デバイスからネットワークサーバー間で暗号化(GWをみても暗号化されてる)

 クラスA:基本的動き アップリング(デバイスからクラウドへ)
 クラスB:ビーコン(プッシュできる)
 クラスC:常時給電デバイス
  →下に行くほどスロット長くなる

 アップリンクからくる
   
・そらこむのしょうかい

・IoTの基本要素とネットワークの課題
  有線LAN,無線LAN:人介在
  3G・LTE:ビジネス的に
 ネットワーク
  セキュリティ:暗号化→デバイスの値段が上がる
 2015年 から
 通信をクラウドで
 ソラコム:仮想的交換機をAWS上で実現している
  →足回りを差し替えるだけで動く
 IoT通信プラットフォームSORACOM

・SORACOM Air fro LoRaWAN
 すべて自分で用意する
 Soracom場合
  ネットワークサーバー;そらこむで用意
  ゲートウェイ:IP変換だけ 上位回線は用意する。電源だけ必要
   インドアゲートウェイ
   アウトドアゲートウェイ

・LPWAシェアリング
  共有ゲートウェイ:共有すれば安い

・LoRaWANデバイス
  Arduino用開発シールド(実はUARTなら開発できる)
  GPSとラッカー:GIサプライ

・必要なものを必要だけ使ってね!

・使い分け
 LoRaWAN
  頻度:1回あたりのデータサイズ少ない
  省電力
  山間部のラストワンマイル
 セルラー
  12バイトをこえる、下り
 バイナリーパーサー機能

・セルラー圏外:衛星通信

・事例
 牛のいじめを感知したい
  →ぼっちになるのを検知
 橋:セルラー網が来ていないところ
 ダム
 自治体のハッカソン