Gojiで顔認識ツールを作った
Go言語でWebアプリケーションを一通り実装してみたくなった。 試しにWebベースの顔認識ツール(face_detector)を作った。
実装した機能
- アップロード用コンパネ
- ファイルアップロード機能
- 顔認識機能
- システムテスト(net/http/httptest)
使用技術
以下のライブラリ類を使った。
- Goji(Webアプリの軽量フレームワーク)
- cgo(C言語binding呼び出す)
- OpenCV(画像処理関係の定番ライブラリ)/OpenCV.jp
- html/template(Goのテンプレートエンジン)
- httptest(テスト用サーバ生成)
実装中につまづいた事
アップロードされいたファイルをhttp.Request.FormFile で読み取れなかった。
パケットャプチャしたらBody本文をブラウザが送信していない事に気づいた。 調べ直したところファイルをアップロードする際にはform タグで enctype="multipart/form-data" が必要だよって記述を見つけられて解決。
通信経路・実行パス上のどこまでが正しいかを確認するのは大事だと改めて思ったのと少し離れたらもう、HTMLわかりません、になってた。
|
|
画面キャプチャ
ファイルアップロードする流れは下な感じ。対象はlennaさん。
最低限の機能は問題なく動いてよかった。これからアップロード上限や認証機能を付けたりオブジェクトストレージ対応・メタデータ保存など機能追加して遊びたい。