2019/08/31

Recent entries from same category

  1. RapidJSON や simdjson よりも速いC言語から使えるJSONライブラリ「yyjson」
  2. コメントも扱える高機能な C++ 向け JSON パーサ「jsoncpp」
  3. C++ で flask ライクなウェブサーバ「clask」書いた。
  4. C++ 用 SQLite3 ORM 「sqlite_orm」が便利。
  5. zsh で PATH に相対パスを含んだ場合にコマンドが補完できないのは意図的かどうか。

以前から自宅で動かしている物体認識ウェブサーバを汎用的な作りにして 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