3A
  • Portfolio Top
  • Categories
  • Tags
  • Archives

動画像処理

  • 講師:山崎俊彦
  • 参考書:CG-ARTS協会発行「ディジタル画像処理」
  • 参考書:R. Szeliski, Computer Vision Algorithms and Applications, Springer (PDF版はインターネット上で無料公開)
In [1]:
import cv2
import numpy as np
import matplotlib.pyplot as plt

動画像は、静止画の集まり(パラパラ漫画)

  • 10~15[fps]あると、人は動画だと感じる。
  • 映画:24[fps]
  • TV、インターネット動画:30~60[fps]
  • ロボット制御に必要な速度(アクチュエーターの反応速度が~ms):1,000[fps]
  • 自動運転 ~ 10,000[fps]
10[fps] 25[fps] 50[fps]
sin_fps10_still.gif sin_fps25_still.gif sin_fps50_still.gif

→ 何をするか?

  • 動物体の検出・解析
  • 動画の編集
  • 動画の理解・認識

動物体の検出・解析

背景差分・フレーム間差分¶

【問題】

  • 照明変化(屋外では良く起こる)、背景の変化(木の揺れ等)に弱い。
  • 背景画像をどうやって作るかもポイント。

【統計的背景差分】

各ピクセルで時間的に統計情報を取ってもう少しsmartに背景差分することを考える。背景クラスを $w_b$ 前景クラスを $w_f$ とすると、やることは、$\left(p\left(w_f | I(x,y)\right), p\left(w_b | I(x,y)\right)\right)$ のうち確率の高いクラスを採用する。

ここで、ベイズの定理より、

$$ \begin{cases} \begin{aligned} p\left(w_f | I(x,y)\right) &= \frac{p(w_f)p(I\left(x,y)|w_f\right)}{p(I(x,y))}\propto p(w_f)p\left(I(x,y)|w_f\right)\\ p\left(w_b | I(x,y)\right) &= \frac{p(w_b)p(I\left(x,y)|w_b\right)}{p(I(x,y))}\propto p(w_b)p\left(I(x,y)|w_b\right) \end{aligned} \end{cases} $$
  • $p(w_b, w_f)$:その画素が $w_b, w_f$ である事前確率(例:木の上に人や車はいないので、$p_b$ 大, $p_f$:小)
  • $p(I|w_c)$:$w_c$ だった時に、どの程度の確率でその画素値が観測されるか。

動き量の計算¶

【ブロックマッチング(Block Matching)】

  • ある時刻 $t$ におけるある領域に最も似ている時刻 $t+1$ の領域を、以下の手法等を用いて探す。
    • SSD(Sum of Squared Difference)
    • SAD(Sum of Absolute Difference)
    • NCC(Normalized Cross Correlation)
  • 動画像圧縮では、この動きベクトル(motion vector)と差分を符号化することで圧縮を実現。

【オプティカルフロー(optical flow)】

  • 2枚の画像間で、変化が微小だとすると、 $$\begin{aligned}I(x+\Delta x, y+\Delta y, t+\Delta t) &\simeq I(x,y,t) + \frac{\partial I}{\partial x}\Delta x + \frac{\partial I}{\partial y} \Delta y+ \frac{\partial I}{\partial t} \Delta t + \cdots\\\rightarrow I_x\Delta x + I_y\Delta y + I_t\Delta t&\simeq0\\ I_x\frac{\Delta x}{\Delta t} + I_y\frac{\Delta y}{\Delta t} + I_t &= 0\\\left(\Delta t\rightarrow0\right)\qquad I_xu+I_yv+I &= 0\\(u,v) &= \left(\frac{dx}{dt},\frac{dy}{dt}\right)\end{aligned}$$
  • これだけだと、自由度が高すぎて一意に決まらないので、微小領域では動きが滑らかという仮定を置く。(Lucas-Kanada法, 1981) $$\mathbf{G} = \left[\begin{array}{c}I_{x_1} &I_{y_1} \\\vdots&\vdots\\I_{x_m}&I_{y_m}\end{array}\right],\quad \mathbf{f} = \left[\begin{array}{c}u \\v\end{array}\right],\quad\mathbf{b} = \left[\begin{array}{c}I_{t_1} \\\vdots\\I_{t_m}\end{array}\right]$$ 上記のように定義し、滑らかさの条件を使うと、 $$\begin{aligned}\mathbf{Gf}+\mathbf{b} &= \mathbf{0}\\\therefore\mathbf{f}^{\ast}&=-\left(\mathbf{G}^T\mathbf{G}\right)^{-1}\mathbf{G}^T\mathbf{b}\quad \left(\because\text{Least squares}\right)\end{aligned}$$

【DNNによる映像処理】

(x,y,t)の3次元をどう扱うか?

  • 画像(2次元)と時間の情報を分ける。
  • 3D Convolution:空間情報と時間情報を同時に畳み込む。
  • 仮想3D Convolution:空間情報を畳み込んで、その後時間方向に畳み込む。

動画の編集

In [ ]:
 

動画の理解・認識

In [ ]:
 

  • « 4.Guided NEST exercises (intermediate)
  • 3次元空間情報の取得と処理 »
hidden
Table of Contents
Published
Nov 11, 2019
Last Updated
Nov 11, 2019
Category
映像メディア工学
Tags
  • 3A 127
  • 映像メディア工学 17
Contact
Other contents
  • Home
  • Blog
  • Front-End
  • Kerasy
  • Python-Charmers
  • Translation-Gummy
    • 3A - Shuto's Notes
    • MIT
    • Powered by Pelican. Theme: Elegant