情報科学の達人映像処理研究
#pKineto #情報科学の達人
UNISALを授業映像にかけてみた
- 意外と上手くいきすぎている
- ↓の計画がだめに
- さあどうしよう
- これを使った上で、授業映像の重要度評価をするとか?
- UNISALとかのネットワークの一部切り取ったりできたら面白い
20200319会議
やりたいこと:映像の中で、重要なタイミングと重要じゃないタイミングを見分ける
方法
- Saliency(顕著性)に注目
- 既存研究
- 画像のSaliency評価
- 映像のSaliency
そこそこ
授業映像だと問題ありそう?
- (試している途中)
- やること(長いスパン)(仮)
- まずは授業映像のSalieny評価をめざす
- そのSaliency情報を使って、重要度評価ができたら嬉しい
- 試したこと
- http://predimportance.mit.edu/ (しぜん/人工両方に対応)
- 映像のSaliency評価を試している途中
- 弱教師あり学習 - 文字見つけるやつをうつすとか
- CAM https://qiita.com/bukei_student/items/698383a7118f95c12cce
- Saliency(顕著性)に注目
フレームではなく、授業映像のSaliency高い場所を評価する方が実用的だしおもしろい気がする
- kineto的には、saliency高いところだけ生徒の書き込みをうすくするとかできる
- これ結構ありだな
- その上で、数秒後のsaliency予測とかできたらおもしろい
- kineto的には、saliency高いところだけ生徒の書き込みをうすくするとかできる
既存研究
- Salient Object Detection in the Deep Learning Era: An In-depth Survey
- スライドとかポスターのsaliencyはあるかな
- http://predimportance.mit.edu/
- ただ、これの映像版はない(動きはみていない)
- 既存の映像saliency
- https://youtu.be/JNe6A7dszPw
- 動体とか時間変化しているものに注目、というのは画像じゃできない(そりゃそう)
- ただ既存の映像saliencyだとスライドとか黒板みたいな人工系はきついよねと言いたい
やること
- 授業映像のワンシーンをpredimportance.mit.eduに投げる
- 授業映像を既存saliencyに投げる
授業映像でsaliencyが高い場所とは(一般的なsaliencyとの違い)
- スポーツとかと、saliencyの持続性とかが異なりそう
Q. 授業の画像のsaliencyじゃだめなの?
- A. 文脈によって変わってくるから映像じゃないと
- もしくは何かしらの方法で文脈の情報を伝える
- 「文脈」をもっと具体的に言いたい
- とりあえず既存のやつを授業映像で走らせてみて問題を探そう
- A. 文脈によって変わってくるから映像じゃないと
考えること
- 教師はどうするか
- 既存モデルの一部引っこ抜くみたいなのやってみたい
- 授業映像でいう既存モデルは何に当たるのかな
- 既存モデルの一部引っこ抜くみたいなのやってみたい
- どこまでfineなannotationを目指すか
- pixel-levelか、bounding boxレベルかみたいな
- 計算コストとのトレードオフ
- Audioは扱う?
- 教師はどうするか
結局のところ、重要度とは何か
- とりあえず手を動かして考えよう
- Complexityみるやつ試す
- saliency寄りを見たいな
Idea
- 授業映像の数秒先を予想
- 先生の動きや、それまでの書き込みから
- 映像の先を予測系
- うーん、でも微妙か
- 変化の形が色々
- 黒板にちょっとづつ書いてったり、try itみたいに元から全部あったり
- アニメーションの使い方も人それぞれ
- 変化の形が色々
20210312
期末テスト・卒論・未踏のプロダクト自体の開発等に時間を取られてしまい、映像処理の研究についての進捗はあまり生めていません…
期末は終わり、ちょうど今日未踏プログラムも全作業が終わりました
- これからは映像処理の研究に時間を使えると思います。
3/25の発表では開発したプロダクトの発表をメインに行いつつ、今後二週間弱で出来る限り研究の進捗を出して発表したいとおもっています。
プロダクト
研究の今後
- 講義授業の映像にフォーカス?
- 授業映像なら、学校で毎日撮影していけば集められる?
- やりたいこと:映像の中で、重要なタイミングと重要じゃないタイミングを見分ける
- 情報をバーっと教師が与えているポイントと、とくに変化がないポイントを見分ける
- (手段を考える/先行研究を調べる等はできていないです💦)
- 声、抑揚
先行研究
202101021
- 映像処理のことは取り組めなかった
- /kineto/Kinetoとは 一般向け説明文を書きました
- 「授業映像」ではなく「共有黒板」という捉え方
- Jamboard, Miroの延長線上に置く
20210115 Meeting
Visual Complexityの先行研究
研究の新規性
- 映像のフレームのVisual Complexityであるという点
- Adaptive Fast Playback-Based Video Skimming Using a Compressed-Domain Visual Complexity Measure
- も似たようなことしているけど、これはspatio-temporal complexity(動きに注目している)
- 映像のフレームのVisual Complexityであるという点
映像から教師を省く
- 線画ベースでやると良いなと
- 理由: 2値化すれば光の加減とかを省ける
- よりちゃんと言うとすると、ベタ塗りの四角も線の四角も同じものになるので人間の複雑さの認知(?)に近づく
- 理由: 2値化すれば光の加減とかを省ける
- 線画ベースでやると良いなと
https://dronebiz.net/tech/opencv/labeling ラベリング処理
- 形状判断?
- Snake
スライド変化検知
- ホワイトボードの線とかが邪魔して、ただピクセルの平均値取るだけだと変化を綺麗にとれない
- complexityの変化とかを見れば、邪魔な枠とかを省けて良さそう?
- でもそれだけでもだめか
- 人間には簡単なタスクでもむずかしいなと
Visual complexity analysis using deep intermediate-layer featuresの理解があっているか確認したい
(あまり進捗を出せなかったので)今後やること
20210105 Meeting
やったこと
- とりあえずスライド/黒板上に増えたものの「大きさ」を評価したい
- スライド変化のタイミングを検知して、変化前後の差分を取る、その上でdrawContours
- 30フレームごとに変化をチェックしている
- 全パーツがばらばらになっちゃう
- ぼかしつけてみた(Gaussian Blur)
- スライド変化のタイミングを検知して、変化前後の差分を取る、その上でdrawContours
- OCRで文字を文字としてくくる
-
- ↑でいうと数値とかはそんなに重要じゃ無いかも
- 黄色で囲まれている部分が、変化を検知した部分
- 分かったこと
- スライド変化とアニメーション変化時で、別々の対応が必要
- スライドの場合、アニメーションがゆっくりだと各フレームの差分がスレッショルド以下になることも
- スライド中に突然映像とか出されると困る
- ⭐️変化の大きさを測る方法がムズイ
- ただdiffのmean取るだけだと問題あり、ばらつき
- というか物体が占める画素数に左右されすぎる
- ex: 白背景の上に、地が白い図が出ても検知できない(変化したピクセル数が小さいので)
- 変化を知る方法もむずい
- アニメーション変化は問題ない、スライド追加が困る
- スライド追加はそれを検出して場合わけかな
学校の先生に相談
- 黒板で文字サイズはかえない方が良いと言われている(らしい)(教師共通のノウハウ?)
- どちらかと言うと重要度の表現には色を使うと言っていた
- これ知っていればOCRとかも楽になるかも
- 黒板で文字サイズはかえない方が良いと言われている(らしい)(教師共通のノウハウ?)
方向性
「授業映像」における変化の分類(実写授業, スライド授業など)
- 永続(?)差分: 黒板の書き込み、スライドのアニメーション等、後に残るもの
- 一時的差分: 先生の動き(実写授業の黒板の上の先生、スライド授業のワイプ窓)等
- リセット差分: 黒板の全消し、スライド移動等
- (その他ノイズ)
どう分類するか
- サンフレーム比べれば永続かどうかわかる
- 人とか動体はlucas-kanadeとか
差分を分類して、永続差分の複雑さ(?)を評価したい
- 一時的差分は人間の体とかになるのでnon-semantic?な複雑性が意味をもたなさそう
- 複雑さのイメージ (同じ面積を占めている場合の比較)
- ただの図形 < 地図
- 単色の地図 < 複数色の地図
- 図形 < 文字
- スライド/黒板の画像だからこそ使える評価軸?
黒板の授業(細切れの一時的差分)、アニメーション多めのスライド授業、アニメーション少なめのスライド授業、を全部同じ枠組み(linearな構造)として考えたい
実際どう実装すれば?
画像の「複雑さ」「complexity」と検索してもそれらしいものが出てこない
- 良い言葉があれば教えてください🙏
- わいど と せんど
ヒストグラムの分散など?
- 外れ値
あとは、線画化(?)して、線の本数を数えるとかできそう
- 直線と交差するアウトライン線の数を数えるとか
- それで直線を回転させて360回試すとか
先行研究
新規性
- 映像の差分でこれをやるという点
- Adaptive Fast Playback-Based Video Skimming Using a Compressed-Domain Visual Complexity Measure
- も似たようなことしているけど、これはspatio-temporal complexity(動きとかメイン)でやっている
- 僕のやつは動より静メイン
- 映像の差分でこれをやるという点
先生に色々聞いて事前知識得る
- 色々: 飛ばせるところとか(話す速度との対比など)
- 速度変える根拠になる
研究として
tip:尺度増やしておけば全負けは避けれる
こんな感じの姿を目指す
- Lecta:
http://mprg.jp/data/MPRG/F_group/F028_yokoi2005.pdf
- でも2005か
- Lecta:
http://mprg.jp/data/MPRG/F_group/F028_yokoi2005.pdf
20201202 Meeting
重要なフレームを切り出す研究はいくつかある
- ホワイトボードの画像から選んだりとか
各frameの重要度を評価みたいなものは無い?
- 速度を変えたいので、ほしいのはこっち
あと、「必要な部分を選ぶ」というより「いらない部分を省く」アプローチは少ない
そもそもelastic timelineの考え方が珍しい?(数ヶ月考えてるとあたりまえに見えてくる)
- elastic timelineの研究が、牛のやつとContent-aware –しか見つからない
仮説:書き込んだ内容の大きさは重要度?
相談
- 他の要素と掛け合わせて速度いじりたい
- どう掛け合わせる?
- シンプルな加算/乗算より良い方法がありそう
後からみた時の要約にも
- 遅刻でも不参加でも
- 要約頑張っても追いつかない場合どうするか
20201118 Meeting
対象となりそうな映像
- 実写の授業映像
- スライドベースの授業
- 授業で使う資料映像(多様)
- (範囲を絞るべき?)
- 絞るべき
- リアルと講義は性質が違う
- スライドベースだと、文字とか図表とか
- 音声が重要になりそう
- 動画像: 3次元
- 音声: 1次元 (軽め)
- ベクトル化できれば同じ枠組みに
- リアルタイム性のある場合は深層学習難しめ
- 動画処理はとくに
Goal: このグラフの線を曲げる
- 速度を変える
- 速度を変えても内容理解に影響のない部分を見つける
- 人間がどう感じるかが評価基準になる?
- 不必要な部分を飛ばす
- 映像要約系のものを応用(弱くする?)
- 先人の情報を使う
- その他の思い付いていない方法もあるかも
- 速度を変える