- 講師:山崎俊彦
- 参考書: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] |
---|---|---|
→ 何をするか?
動物体の検出・解析
背景差分・フレーム間差分¶
【問題】
- 照明変化(屋外では良く起こる)、背景の変化(木の揺れ等)に弱い。
- 背景画像をどうやって作るかもポイント。
【統計的背景差分】
各ピクセルで時間的に統計情報を取ってもう少しsmartに背景差分することを考える。背景クラスを wb 前景クラスを wf とすると、やることは、(p(wf|I(x,y)),p(wb|I(x,y))) のうち確率の高いクラスを採用する。
ここで、ベイズの定理より、
{p(wf|I(x,y))=p(wf)p(I(x,y)|wf)p(I(x,y))∝p(wf)p(I(x,y)|wf)p(wb|I(x,y))=p(wb)p(I(x,y)|wb)p(I(x,y))∝p(wb)p(I(x,y)|wb)- p(wb,wf):その画素が wb,wf である事前確率(例:木の上に人や車はいないので、pb 大, pf:小)
- p(I|wc):wc だった時に、どの程度の確率でその画素値が観測されるか。
動き量の計算¶
【ブロックマッチング(Block Matching)】
- ある時刻 t におけるある領域に最も似ている時刻 t+1 の領域を、以下の手法等を用いて探す。
- SSD(Sum of Squared Difference)
- SAD(Sum of Absolute Difference)
- NCC(Normalized Cross Correlation)
- 動画像圧縮では、この動きベクトル(motion vector)と差分を符号化することで圧縮を実現。
【オプティカルフロー(optical flow)】
- 2枚の画像間で、変化が微小だとすると、 I(x+Δx,y+Δy,t+Δt)≃I(x,y,t)+∂I∂xΔx+∂I∂yΔy+∂I∂tΔt+⋯→IxΔx+IyΔy+ItΔt≃0IxΔxΔt+IyΔyΔt+It=0(Δt→0)Ixu+Iyv+I=0(u,v)=(dxdt,dydt)
- これだけだと、自由度が高すぎて一意に決まらないので、微小領域では動きが滑らかという仮定を置く。(Lucas-Kanada法, 1981) G=[Ix1Iy1⋮⋮IxmIym],f=[uv],b=[It1⋮Itm] 上記のように定義し、滑らかさの条件を使うと、 Gf+b=0∴f∗=−(GTG)−1GTb(∵Least squares)
【DNNによる映像処理】
(x,y,t)の3次元をどう扱うか?
- 画像(2次元)と時間の情報を分ける。
- 3D Convolution:空間情報と時間情報を同時に畳み込む。
- 仮想3D Convolution:空間情報を畳み込んで、その後時間方向に畳み込む。
動画の編集
In [ ]:
動画の理解・認識
In [ ]: