教室内の注目度計測RTコンポーネント
教室内の注目度計測RTコンポーネント
投稿日時:
月, 2016-10-31 22:17
概要
授業中に集中せず読書やスマホ,寝ている学生は少なくありません. 授業に集中してもらうため,また,先生の学生を注意する手間を省くために注目度を測定するRTCを開発しました. 教室内をカメラで見回し,最初に検出した顔と指定時間後に検出した顔の数から注目度を計算します. 注目度が低い場合は警告としてアラームを鳴らすことができるため,学生の注目度を上げることが可能です. 注目度は静止画像に載せて保存されるので後から様子を視覚的に確認することができます.
特徴
- 教室内の注目度を計算するRTC
- 顔検出RTCから発表者を向いている顔の数を受け取る
- 注目度が低い場合はアラームを鳴らす
- 追尾カメラロボットのモータを利用することが可能
- 注目度を表示した画像を保存可能
仕様
- 言語: C++
- OS:Windows 10(64bit)
- OpenRTM-aist-1.1.0
このページで公開しているRTC
- Attention_degree-----------:顔検出RTCから一定時間後に注目度を計算し,注目度が低い場合はアラームを鳴らします.サウンドファイルも入っています.
ソース&実行ファイル/マニュアル/紹介動画
- 研究室のホームページ にも公開をしています.
- 発表当日の資料-->ここ<-- で見ることができます.
参考
- 顔検出RTC
- OpenCV
- 追尾カメラロボットRTC
更新履歴
- 2016/10/31 ファイルをアップロード
- 2016/11/2 Attention_degreeのRTCにサウンドファイルがなかったため,サウンドファイルを入れたものに更新しました.
- 2016/11/2 Attention_degreeの機能として注目度が表示された画像を指定したフォルダに保存することを追加しました.ユーザーマニュアルもver.1.1に更新しました.
- 2016/11/10 Attention_degreeをsleepのない処理に変更しました.また,画像データが取得できないときは画像保存を行わないよう変更しました.
- 2017/1/12 大変遅くなりましたが,発表当日の資料を掲載しました.
問合先(メールアドレス):
md16042@shibaura-it.ac.jp
最終更新日時:
木, 2017-01-12 20:04
コメント
ソースコードを読んでみたのですが、以下の点が気になりました。
Miyamoto Nobuhiko様
コメントありがとうございます.芝浦工業大学の下山です. 以下にお答えいたします.
• AlarmSound.wavというファイルについて
大変申し訳ありません.ファイルを載せるのを忘れていました.Attention_degree.zipの中に入れ,更新いたしますのでお待ちいただければと思います.また,個人でアラームにしたいサウンドファイルをAlarm_Sound.wavという名称にしてもご使用いただけます.
• Picture_Save_Folderというコンフィギュレーションパラメータについて
注目度の時間推移をカメラ画像と同時に保存することで,いつ注目度が高かったかを視覚的に確認することができると思い,現在注目度を表示した画像保存を検討中です.検討中のため現在の内容にはパラメータは記述していません.Img_Saveという関数の中に記述する予定です.保存が有効であると確認でき次第適用し,マニュアルにも反映いたします.
• Voice_Output関数について
ご指摘ありがとうございます.修正いたします.
芝浦工大の下山未来です.
サウンドファイルがなかったため,公開しているRTCのAttention_degreeの中にサウンドファイルを入れて更新しました. ご確認ください.
画像保存の機能を追加しました.
芝浦工大の下山未来です.
新しい機能として,画像を保存することを追加しました.それに合わせてマニュアルのバージョンも変更しましたのでご確認ください. この機能により,授業後でも授業の様子と注目度を静止画で時間ごとに確認することができます.
内容を確認させていただきました.
非常に面白いアイデアのシステムだと感じました(実際の講義でどの程度効果があるかも興味深いですが・・・).
3点コメントさせていただきます.
・画像データが取得できない場合でも,画像保存等の処理が進んでしまうので,エラーの場合は処理を抜けるようにした方が安全だと思います.
・モータを利用する場合の角度が3角度固定になっているので,もう少し汎用性がほしいと感じました(このあたりが工夫できれば,複数カメラからの入力にも拡張できると思いますので)
・onExecute内でsleepする処理が複数ありますが,スレッド化するなど処理を止めない設計は難しいでしょうか(あまりリアルタイム性の必要なシステムではないのは承知していますが)
本システムで11月中に実際の授業や講演の場を借りて実証実験を行うことを予定しています.
何度か挑戦する予定ですので,効果は後日お知らせいたします.
・画像データが取得できない場合
ご指摘ありがとうございます.後日エラーの場合の処理を追加し,更新いたします.
・モータの角度固定
現在は角度を3角度で固定してありますが,顔の位置情報を取得し,その情報から細かいカメラの向きの調整も可能ではないかと検討しています.
位置情報をモータの回転ごと同期できればカメラの回転後も同じ顔を検出しないことが可能です.
複数のカメラというご提案もありがとうございます.今後の参考に致します.
・sleepについて
sleepは処理を止めてしまうため避けたいものではありますが,あまりシビアなシステムではないという判断で使用いたしました.
スレッド化も含めて設計を見直したいと思います.
教室内の注目度計測RTコンポーネント 更新
芝浦工大の下山です.画像取得ができなかった場合保存を行わない処理を追加し,更新いたしましたのでお知らせいたします.
度々すみません。
attention_degreeをDebugでビルドしているようなのですが、配布する際はReleaseでビルドする事をお勧めします。
何度もご指摘ありがとうございます。
どのような細かいことでもご指摘いただければ幸いです。
今まで公開したものもDebugでのビルドを行っていました。
今後の参考にも致します。