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
55
0
Share
【授業スライド】教員リムーバー
慶應義塾⼤学 B3 和田唯我 / Yuiga Wada
-
About me
-
Blog
Yuiga Wada (和田唯我)
October 05, 2022
More Decks by Yuiga Wada (和田唯我)
See All by Yuiga Wada (和田唯我)
機械学習基礎 TAレクチャー回「学部二年生はどう生きるべきか」
yuigawada
1
150
【AIC】Image Captioningにおける自動評価の最前線
yuigawada
0
55
未踏ブースト会議資料
yuigawada
0
200
論文速読24
yuigawada
0
100
【授業スライド】Well-beingとカルトの関係
yuigawada
0
350
論文速読23
yuigawada
0
180
自己紹介スライド
yuigawada
0
1.5k
【ミニハッカソン】 arXiv Slider
yuigawada
0
360
【輪読資料】多次元正規分布でGibbs Sampling (情報工学機械学習9.3.4)
yuigawada
0
79
Other Decks in Technology
See All in Technology
「強制アップデート」か「チームの自律」か?エンタープライズが辿り着いたプラットフォームのハイブリッド運用/cloudnative-kaigi-hybrid-platform-operations
mhrtech
0
200
ServiceによるKubernetes通信制御ーClusterIPを例に
miku01
1
170
20260515 ログイン機能だけではないアカウント管理を全体で考える~サービス設計者向け~
oidfj
0
590
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
880
エムスリーテクノロジーズ株式会社 エンジニア向け紹介資料 / M3 Technologies Company Deck
m3_engineering
0
110
Agent の「自由」と「安全」〜未来に向けて今できること〜
katayan
0
360
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
740
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
140
AI時代に越境し、 組織を変えるQAスキルの正体 / QA Skills for Transforming an Organization
mii3king
5
4.4k
Gaussian Splattingの実用化 - 映像制作への展開
gpuunite_official
0
190
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
AIの揺らぎに“コシ”を与える階層化品質設計
ickx
0
280
Featured
See All Featured
Making Projects Easy
brettharned
120
6.6k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
280
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
180
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How to Talk to Developers About Accessibility
jct
2
200
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Balancing Empowerment & Direction
lara
6
1.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The Curse of the Amulet
leimatthew05
1
12k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
780
Game over? The fight for quality and originality in the time of robots
wayneb77
1
170
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