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
個人制作コンテンツの多言語展開のノウハウを全公開! 〜世界に自分を発信しよう!〜
syotasasaki593876
0
110
ModuleLLM、最前線!
anoken
1
260
ラズパイカメラ向け ケーブル延長基板・ハウジングの開発
koheimasaki
PRO
2
360
テストも、国際化も! 小中高生クリエータ支援プログラム『未踏ジュニア』を支える技術
yasulab
PRO
1
220
AWS Community Day 2024: Using AWS to build a launchable knowledge rocket 👉 Organize knowledge, accelerate learning and understand AI in the process
dwchiang
0
230
5年間ぐらい、 スプリントレトロスペクティブは、 「+/Δ」しかしてないので、 あらためて良いのか悪いか考えてみる / Doing Plus Delta for about five years
camel_404
1
200
苦手の克服方法 / How to overcome weaknesses
toma_sm
0
290
「変えること」「変わること」を楽しむ力で"敵わない存在"と向き合う
subroh0508
1
150
AWSコミュニティプログラムのご紹介 -グローバル展開するコミュニティプログラム-
awsjcpm
0
200
AIお菓子ロッカー
keicafeblack
0
190
スイングやカードをいい感じに立てるスタンドの話
niccolli
0
320
JAWS-UG Community Upadate - JAWS-UG 熊本
awsjcpm
2
170
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.5k
A better future with KSS
kneath
239
18k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
190
55k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Writing Fast Ruby
sferik
629
62k
Building Applications with DynamoDB
mza
96
6.7k
Designing Experiences People Love
moore
142
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Git: the NoSQL Database
bkeepers
PRO
431
66k
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 で編集された画像を送ります チャンネルやアクセストークンなども指定します コード: スラックへの送信
デモ
終わりです ご静聴ありがとうございました !