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
Yuiga Wada (和田唯我)
October 05, 2022
Technology
0
35
【授業スライド】教員リムーバー
慶應義塾⼤学 B3 和田唯我 / Yuiga Wada
-
About me
-
Blog
Yuiga Wada (和田唯我)
October 05, 2022
Tweet
Share
More Decks by Yuiga Wada (和田唯我)
See All by Yuiga Wada (和田唯我)
機械学習基礎 TAレクチャー回「学部二年生はどう生きるべきか」
yuigawada
1
83
【AIC】Image Captioningにおける自動評価の最前線
yuigawada
0
20
未踏ブースト会議資料
yuigawada
0
150
論文速読24
yuigawada
0
76
【授業スライド】Well-beingとカルトの関係
yuigawada
0
290
論文速読23
yuigawada
0
150
自己紹介スライド
yuigawada
0
710
【ミニハッカソン】 arXiv Slider
yuigawada
0
340
【輪読資料】多次元正規分布でGibbs Sampling (情報工学機械学習9.3.4)
yuigawada
0
57
Other Decks in Technology
See All in Technology
NOT A HOTEL SOFTWARE DECK (2025/11/06)
notahotel
0
3.2k
datadog-incident-management-intro
tetsuya28
0
120
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
180
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
0
660
Data Engineering Guide 2025 #data_summit_findy by @Kazaneya_PR / 20251106
kazaneya
PRO
8
1.5k
AIとの協業で実現!レガシーコードをKotlinらしく生まれ変わらせる実践ガイド
zozotech
PRO
2
340
メタプログラミングRuby読書会の活用
willnet
0
120
なぜ新機能リリース翌日にモニタリング可能なのか? 〜リードタイム短縮とリソース問題を「自走」で改善した話〜 / data_summit_findy_Session_2
sansan_randd
1
120
AIエージェントを導入する [ 社内ナレッジ活用編 ] / Implement AI agents
glidenote
1
220
AWS 環境で GitLab Self-managed を試してみた/aws-gitlab-self-managed
emiki
0
180
アノテーション作業書作成のGood Practice
cierpa0905
PRO
1
410
ソフトウェア品質を支える テストとレビュー再考 / 吉澤 智美さん
findy_eventslides
0
350
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.7k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
658
61k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Testing 201, or: Great Expectations
jmmastey
46
7.7k
For a Future-Friendly Web
brad_frost
180
10k
Become a Pro
speakerdeck
PRO
29
5.6k
Docker and Python
trallard
46
3.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
GitHub's CSS Performance
jonrohan
1032
470k
Transcript
クラウドコンピューティング実験 『教員リムーバー』 4班 • XXXXXXX 和田唯我 • YYYYYYY • ZZZZZZZ
• UUUUUU
『教員リムーバー』 ・自動で板書を撮り, webから各授業の板書を閲覧することができるシステム ・画像処理で教員を抹消する!! (opencv + numpy)
特徴 ・時間割から板書を閲覧できる ・画像処理で教員を抹消する!! (opencv + numpy) ・PDF化して板書をダウンロードできる
センシング概要
アーキテクチャダイアグラム
Demo
None
None
None
None
アーキテクチャダイアグラム
センシング
システムで用いたセンサ USBカメラ 障害物センサ ボタンセンサ
センシング • Button 起動 • IR Obstacle Avoidance Module(障害物センサ) 物体の有無を検知
◦ 物体(黒板消し)有→60秒ごとに撮影 ◦ 物体(黒板消し)無→5秒ごとに撮影 撮影した画像をMQTTで送信 黒板消し有 黒板消し無
MQTTでの通信 ・画像サイズを1280×720と指定したので、1度にデータを送れない(128 kBが上限らしいです) →base64にして画像を適当なサイズにばらして送信し、いったんS3に格納 →最後のデータが送られてきたらS3のデータを集めて、再構築しS3保存 ・通信がうまくいかないときがある →データの再送
カメラ 得られた画像を4種類に分類 ・background→ 起動時に1枚撮影 ・normal → 黒板消しがある状態で60秒ごとに撮影 ・erasing → 黒板消しがない状態で5秒ごとに撮影
・finish → 黒板消しが置かれたタイミングで撮影
Web: index (時間割)
None
Web: index (時間割) • 教室名を指定して, DynamoDBから時間割を取得 • 授業名からsid(後述)を計算し, 板書表示用のページ(presenter)に飛ばす (CSS-FrameworkはBulmaを使用)
Web: index → presenter name: 授業名 sid: 授業名をutf-8→SHA256でハッシュ化 ⇒ Query-StringとしてURLに付加
Web: presenter (板書表示)
None
Web: presenter (板書表示) • Web上にアップロードされた画像ではないため、ファイルの場所を指定できない → 画像のバイナリデータをbase64でエンコード → imgタグのsrc要素にエンコード結果を指定すると画像が表示できる •
画像をスライドにして表示 → スライダーが作れるJavaScriptライブラリ(Swiper)を利用 • Download!ボタンを押すと、PDF化 → 極力lambda上でやりたくない ⇒ javascriptで行う. (jsPDF)
Download: 教員のいない板書
画像処理 (CloudWatchで定期実行)
画像処理: 背景差分 背景差分 Gray Scale
画像処理: 背景差分 背景差分 (gray) 収縮 (次のスライド)
画像処理: モルフォロジー変換 収縮 (Erosion) → 黒板の文字だけ消す 膨張 (Dilation) → 線を潰して面積を増やす
画像処理: 教員抹消 一次元に写像. 教員を抹消するmaskを生成
画像処理 ハマった点 • Lambda上でOpenCVを使うとドツボにハマる → opencv-python はOpenCV のビルドが必要 → ビルド環境と実行環境を一致させる必要がある
( localでpip&zipだけではダメ) ⇒ Docker上でOpenCVをビルド ⇒ ビルドしたOpenCV + numpy + opencv-pythonを zipでlambdaに. ⇒ LambdaのLayer (Lambda Layers)を作成
ありがとうございました ページのURL: https://uaby7jdky5.execute-api.us-east- 1.amazonaws.com/index