Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
RaspiとSlackでミーティング スペースのモニタリング 2019-7-20 家入雄樹
Slide 2
Slide 2 text
自己紹介 名前: 家入雄樹 所属: ブレインパッド 職種: データサイエンティスト 専門: データいじり そのほか: TFUG 福岡にも登壇しました http://blog.brainpad.co.jp/entry/2018/11/28/112907 http://blog.brainpad.co.jp/entry/2019/07/09/110739 GCPとAWSの資格とったりしました
Slide 3
Slide 3 text
合宿をしました 6月に社内の有志で合宿を行いました。 目的: ● 部署・役職を超えた交流 ○ 入社1ヶ月 ~ 10年目 ● 目標観の共有 ○ 今後こうしたい ● これやりたい!をやる ○ 社内便利ツール 3チームに分かれて取り組み
Slide 4
Slide 4 text
もくもく組Aが取り組んだもの ラズパイとスラックでミーティングスペース確認するクン 設計1人、開発3人
Slide 5
Slide 5 text
ラズパイでミーティングスペースの確認 社内のミーティングスペース(通称ファミレス席、会議室とは別) 行ってみるまで空いてるか分からない お手軽に調べる装置が欲しい と言い続けて幾星霜 作ったらええねん! 空いてるかな...? 空いてた!
Slide 6
Slide 6 text
アーキテクチャ Raspberry Pi 3 B+ - Linux -ランニングコストも電気代のみ - wifiでネット接続 ①Chatの特定のチャンネル にコマンド投稿 ②空間の撮影 ファミレス席全体をカメラで撮影する APIでラズパイへ命令 自席にいながら席の混雑状態がわかる WEBカメラor RasPi専用カメラ ③画像の確認 撮影した画像をチャットに返す 撮影指示 API経由で画像表示
Slide 7
Slide 7 text
チャットから指示を送る GitHub 製の hubot を使います。 ラズパイ上でサーバーが動きます。 ボットに対してメンションをすると写真を撮ってくれます。 エンジニアの方が担当してくれました。 (coffee script 何も分からない。Node.js 何も分からない...) https://hubot.github.com/
Slide 8
Slide 8 text
コード: coffee script capture というコマンドを受け取ります execute.sh を実行します ‘Capturing done.’ と返信 (エラーなどがあれば表示 )
Slide 9
Slide 9 text
画像を撮る fswebcamを使えば簡単に撮れます。 ただし、撮影環境ごとにカメラの調整が必要です。 (やっぱりここが難しい) 参考: https://qiita.com/stkdev/items/992921572eefc7de4ad8 https://www.raspberrypi.org/documentation/usage/webcams/
Slide 10
Slide 10 text
コード: capture 日時でファイル名を指定 subprocess でカメラ撮影 画像へのパスを返します
Slide 11
Slide 11 text
Vision API で物体検知 物体検知は object_localization を使います。 name == ‘Person’ のみ数える。 返り値が 0 ~ 1 スケールなのに注意。 画像の編集はPILLOWを使います。 公式ドキュメントは分かりやすいです。 https://cloud.google.com/vision/docs/object-localizer?hl=ja
Slide 12
Slide 12 text
コード: Vision API 顔検出のチュートリアルを参考 検出した顔情報を受け取ります 顔情報に基づいて、 PILLOWで加工 https://cloud.google.com/vision/docs/face-tutorial?hl=ja
Slide 13
Slide 13 text
コード: Vision API 公式ドキュメントのレスポンス例は、実 際と異なっているが、このような形に なっている コードの方は正しい https://cloud.google.com/vision/docs/object-localizer?hl=ja
Slide 14
Slide 14 text
コード: Vision API object_localization() を使います 返ってきた JSON の localized_object_annotations が検出された物体 そのうち、name == ‘Person’ であるものを抽出 物体情報のリストを返します
Slide 15
Slide 15 text
PILLOW で描画 画像の編集は PILLOW を使います。 公式ドキュメントを参考にしました。 https://cloud.google.com/vision/docs/face-tutorial?hl=ja 発表者編集
Slide 16
Slide 16 text
コード: PILLOW object_localization() を使います 返ってきた JSON の localized_object_annotations が検出された物体 そのうち、name == ‘Person’ であるものを抽出 (OpenCV なんていらないんだ ...!)
Slide 17
Slide 17 text
スラックに送る files.upload API を使います。 python の slack-client ライブラリなどもあるそうです。 現状 ID などがベタ書きなのは要修正。 https://api.slack.com/methods/files.upload
Slide 18
Slide 18 text
PILLOW で編集された画像を送ります チャンネルやアクセストークンなども指定します コード: スラックへの送信
Slide 19
Slide 19 text
デモ
Slide 20
Slide 20 text
終わりです ご静聴ありがとうございました !