2019/08/31

Recent entries from same category

  1. C++ な WebServer 実装 crow と TensorFlow Lite を使って Object Detection の API サーバを書いた。
  2. MRuby の TensorFlow Lite バインディングを書いた。
  3. flatten() に再帰は必要ない
  4. Windows 10 に AF_UNIX が来たので試してみた。
  5. C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」

以前から自宅で動かしている物体認識ウェブサーバを汎用的な作りにして GitHub に公開しました。

GitHub - mattn/mongoose-tflite: Object Detect API server using TensorFlow Lite

mongoose-tflite Object Detect API server using TensorFlow Lite. Usage -1 ./mongoose-tflite Requiremen...

https://github.com/mattn/mongoose-tflite

TensorFlow は Raspberry Pi で動かす事も出来るけど、CPU 使用率やメモリ使用量がとてつもなく多く、特に Raspberry Pi 3 でもヒーヒー言ってしまいます。実際 TensorFlow と mackerel-agent を使ったお部屋監視システムがそうでした。

Mackerel と Raspberry Pi で作るお部屋監視システム - Qiita
https://qiita.com/mattn/items/e045875ad32b46b018f3

そこでもっと軽い物を作ろうと、以前 TensorFlow から TensorFlow Lite に移植しました。なかなか軽くて良い出来だったので、もしかしてこれはウェブ API にしてしまえば色々な人が使えるんじゃないかと思い、go-tflite を使ってウェブサーバにしてみました。これは結構ご機嫌よく動いていました。

その後、突然 C++ を書きたい病を患ってしまい、Go から C++ に書き直されました。

Big Sky :: C++ な WebServer 実装 crow と TensorFlow Lite を使って Object Detection の API サーバを書いた。

自宅で動かしている物体認識サーバは TensorFlow を使って Go で書かれていたのだけど、CPU 負荷が高いので以前 go-tflite で書き換えた。その後 Raspberry Pi Zer...

https://mattn.kaoriya.net/software/lang/c/20190630225105.htm

一応C言語版も書いておくかという事で今回は mongoose というC言語のウェブサーバ上に TensorFlow Lite の物体認識処理を乗せる事にしました。

TensorFlow のルートディレクトリを探す為だけに go コマンドが使われていますが、Go は使ってません。気にしないで下さい。make コマンドでビルド出来ます。実行して curl 等で画像をアップロードすると以下のレスポンスが返ります。

[
  {
    "label": "Egyptian cat",
    "probability": 0.8392156958580017
  }
]

※ jq でフォーマットしています。確率 0.2 より下はカットしています。

Posted at by | Edit


blog comments powered by Disqus