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
44
【AIC】Image Captioningにおける自動評価の最前線
yuigawada
0
14
未踏ブースト会議資料
yuigawada
0
120
論文速読24
yuigawada
0
56
【授業スライド】Well-beingとカルトの関係
yuigawada
0
260
論文速読23
yuigawada
0
140
自己紹介スライド
yuigawada
0
550
【ミニハッカソン】 arXiv Slider
yuigawada
0
310
【輪読資料】多次元正規分布でGibbs Sampling (情報工学機械学習9.3.4)
yuigawada
0
45
Other Decks in Technology
See All in Technology
Tensix Core アーキテクチャ解説
tenstorrent_japan
0
340
Snowflake Intelligenceで実現できるノーコードAI活用
takumimukaiyama
1
150
これならできる!Kotlin・Spring・DDDを活用したAll in oneのマイクロサービス開発術
demaecan
0
260
Model Mondays S2E01: Advanced Reasoning
nitya
0
180
QAはソフトウェアエンジニアリングを学んで実践するのが大事なの
ymty
1
230
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.6k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
6.3k
現場で役立つAPIデザイン
nagix
1
230
Introduction to Bill One Development Engineer
sansan33
PRO
0
250
AIコーディング新時代を生き残るための試行錯誤 / AI Coding Survival Guide
tomohisa
8
11k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
2k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
12k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Agile that works and the tools we love
rasmusluckow
329
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
KATA
mclloyd
29
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
910
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Writing Fast Ruby
sferik
628
61k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
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