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
660
ラズパイとスラックで作るミーティングスペースモニタリングツール
ラズパイとスラックで社内のミーティングスペースをモニタリングする装置を作りました。
@TFUG沖縄 vol. 4
ieiriyuki
July 20, 2019
Tweet
Share
More Decks by ieiriyuki
See All by ieiriyuki
データドリブンな幸せになる方法
ieiriyuki
0
70
dynamic_pricing_fundamentals
ieiriyuki
1
1.4k
Rust超初心者が頑張って勉強するの巻き
ieiriyuki
0
370
スキルアップ・キャッチアップこうやってます
ieiriyuki
1
620
Other Decks in How-to & DIY
See All in How-to & DIY
生成AIとミニ四駆で学ぶ! MATLAB/Simulink
covao
1
350
JAWS-UG山梨第0回 AWSのユーザーコミュニティ支援
awsjcpm
0
160
Snowflake WEST ユーザー会第2回「ハンズオンセッション」
mabokaneko0802
0
340
ModuleLLM、最前線!
anoken
0
170
How to get hundreds of organic backlinks through statistics link building
ronishehu
1
270
EasyEDA機能紹介と今後の計画 (中国語) プロジェクトマネージャ罗德松
takasumasakazu
0
130
HCIのデモに役立つ映像活用アイデア集 #WISS2024 ナイトセッション #HCIVideoCulture
bonsaistudiojp
2
890
Terra Charge|急速充電器ご利用ガイドブック / Terra Charge Fast Charger Guidebook
contents
1
320
わたしと技術コミュニティとキャリア
kotomin_m
2
1.6k
静岡県のお相撲さん20240509/sumo_wrestler_from_shizuoka_prefecture_20240509
nicepapa_hirano
0
260
ミシンと刺繍とOSS
godan
3
110
人はなぜコミュニティとつながると幸せを感じるのか
448jp
3
290
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.4k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Designing for Performance
lara
609
69k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
GitHub's CSS Performance
jonrohan
1031
460k
GraphQLとの向き合い方2022年版
quramy
46
14k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
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 で編集された画像を送ります チャンネルやアクセストークンなども指定します コード: スラックへの送信
デモ
終わりです ご静聴ありがとうございました !