Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ラズパイとスラックで作るミーティングスペースモニタリングツール
Search
ieiriyuki
July 20, 2019
How-to & DIY
2
680
ラズパイとスラックで作るミーティングスペースモニタリングツール
ラズパイとスラックで社内のミーティングスペースをモニタリングする装置を作りました。
@TFUG沖縄 vol. 4
ieiriyuki
July 20, 2019
Tweet
Share
More Decks by ieiriyuki
See All by ieiriyuki
データドリブンな幸せになる方法
ieiriyuki
0
73
dynamic_pricing_fundamentals
ieiriyuki
1
1.4k
Rust超初心者が頑張って勉強するの巻き
ieiriyuki
0
380
スキルアップ・キャッチアップこうやってます
ieiriyuki
1
630
Other Decks in How-to & DIY
See All in How-to & DIY
JAWS-UGのご紹介 JAWS-UGとは?
awsjcpm
0
5.4k
JAWS-UGから学んだコミュニティの成功要因 (Success Factors)
awsjcpm
5
570
Goカードゲームを 作ってみた!
senoue
0
130
Trying "Vibe No-code/Low-code" with MCP #noderedjp
n0bisuke2
0
100
Why did my proposals get rejected?
okuramasafumi
1
750
Burnoutとの「対話」 〜 アジャイルコーチングを活用した、燃え尽き症候群を克服するスキル 〜 / Dialogue with Burnout by Using Agile Coaching Skills
hageyahhoo
0
130
Azure PortalのQoLを上げてたら Big Techに怒られた
horihiro
2
410
JAWS-UG 福岡 in 北九州 | JAWS-UG/AWSコミュニティ プログラムのご紹介
awsjcpm
1
160
未来大生の胃を支える函館グルメ
deflis
0
540
人はなぜコミュニティとつながると幸せを感じるのか
448jp
3
320
AWS Summit Japan 2025 個人的参加レポート
midnight480
0
160
JAWS-UGについて JAWS-UG TOHOKU [青森] 弘前開催
awsjcpm
0
250
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
450
Agile that works and the tools we love
rasmusluckow
331
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Cult of Friendly URLs
andyhume
79
6.6k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Done Done
chrislema
185
16k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Building Applications with DynamoDB
mza
96
6.7k
Transcript
RaspiとSlackでミーティング スペースのモニタリング 2019-7-20 家入雄樹
自己紹介 名前: 家入雄樹 所属: ブレインパッド 職種: データサイエンティスト 専門: データいじり そのほか:
TFUG 福岡にも登壇しました http://blog.brainpad.co.jp/entry/2018/11/28/112907 http://blog.brainpad.co.jp/entry/2019/07/09/110739 GCPとAWSの資格とったりしました
合宿をしました 6月に社内の有志で合宿を行いました。 目的: • 部署・役職を超えた交流 ◦ 入社1ヶ月 ~ 10年目 •
目標観の共有 ◦ 今後こうしたい • これやりたい!をやる ◦ 社内便利ツール 3チームに分かれて取り組み
もくもく組Aが取り組んだもの ラズパイとスラックでミーティングスペース確認するクン 設計1人、開発3人
ラズパイでミーティングスペースの確認 社内のミーティングスペース(通称ファミレス席、会議室とは別) 行ってみるまで空いてるか分からない お手軽に調べる装置が欲しい と言い続けて幾星霜 作ったらええねん! 空いてるかな...? 空いてた!
アーキテクチャ Raspberry Pi 3 B+ - Linux -ランニングコストも電気代のみ - wifiでネット接続
①Chatの特定のチャンネル にコマンド投稿 ②空間の撮影 ファミレス席全体をカメラで撮影する APIでラズパイへ命令 自席にいながら席の混雑状態がわかる WEBカメラor RasPi専用カメラ ③画像の確認 撮影した画像をチャットに返す 撮影指示 API経由で画像表示
チャットから指示を送る GitHub 製の hubot を使います。 ラズパイ上でサーバーが動きます。 ボットに対してメンションをすると写真を撮ってくれます。 エンジニアの方が担当してくれました。 (coffee script
何も分からない。Node.js 何も分からない...) https://hubot.github.com/
コード: coffee script capture というコマンドを受け取ります execute.sh を実行します ‘Capturing done.’ と返信
(エラーなどがあれば表示 )
画像を撮る fswebcamを使えば簡単に撮れます。 ただし、撮影環境ごとにカメラの調整が必要です。 (やっぱりここが難しい) 参考: https://qiita.com/stkdev/items/992921572eefc7de4ad8 https://www.raspberrypi.org/documentation/usage/webcams/
コード: capture 日時でファイル名を指定 subprocess でカメラ撮影 画像へのパスを返します
Vision API で物体検知 物体検知は object_localization を使います。 name == ‘Person’ のみ数える。
返り値が 0 ~ 1 スケールなのに注意。 画像の編集はPILLOWを使います。 公式ドキュメントは分かりやすいです。 https://cloud.google.com/vision/docs/object-localizer?hl=ja
コード: Vision API 顔検出のチュートリアルを参考 検出した顔情報を受け取ります 顔情報に基づいて、 PILLOWで加工 https://cloud.google.com/vision/docs/face-tutorial?hl=ja
コード: Vision API 公式ドキュメントのレスポンス例は、実 際と異なっているが、このような形に なっている コードの方は正しい https://cloud.google.com/vision/docs/object-localizer?hl=ja
コード: Vision API object_localization() を使います 返ってきた JSON の localized_object_annotations が検出された物体
そのうち、name == ‘Person’ であるものを抽出 物体情報のリストを返します
PILLOW で描画 画像の編集は PILLOW を使います。 公式ドキュメントを参考にしました。 https://cloud.google.com/vision/docs/face-tutorial?hl=ja 発表者編集
コード: PILLOW object_localization() を使います 返ってきた JSON の localized_object_annotations が検出された物体 そのうち、name
== ‘Person’ であるものを抽出 (OpenCV なんていらないんだ ...!)
スラックに送る files.upload API を使います。 python の slack-client ライブラリなどもあるそうです。 現状 ID
などがベタ書きなのは要修正。 https://api.slack.com/methods/files.upload
PILLOW で編集された画像を送ります チャンネルやアクセストークンなども指定します コード: スラックへの送信
デモ
終わりです ご静聴ありがとうございました !