Chương 4: Tìm kiếm DL ĐPT P3: Dữ liệu...
Transcript of Chương 4: Tìm kiếm DL ĐPT P3: Dữ liệu...
Nguyễn Thị Oanh
Bộ môn HTTT – Viện CNTT & TT
Ch2: Biểu diễn và tìm kiếm DL ĐPT
Dữ liệu video
1
Tổng quan
3
Các phương pháp truy vấn DL video
– Dựa vào siêu DL (metadata-based method)
– Dựa vào từ khóa (text-based method)
– Dựa vào âm thanh (audio-based method)
– Dựa vào nội dung (content-based method)
– Phương pháp tích hợp (intergrated approach)
Video: Chuỗi các ảnh (frames) + âm thanh
– Trong phần này, DL video được coi như là chỉ gồm 1
chuỗi ảnh, chưa tính đến âm thanh
Nội dung
4
Video & CSDL video
– Biểu diễn video
– Ngôn ngữ truy vấn video
– Xử lý truy vấn video: indexing
Trích chọn nội dung biểu diễn:
– Video segmentation
Video & CSDL Video
5
Truy nhập vào DL video:
– Yêu cầu 1 video cụ thể nào đó: « Sound of the Music» ,
« Up », …
– Xác định và tìm kiếm đoạn video:
Tìm tất cả các cảnh có Denis Dopeman và Jane Shady
gặp nhau
Tìm tất cả các cảnh có Denis Dopeman cạnh máy bay, ở 1
sân bay trên sa mạc
Tổ chức nội dung video va csdl video thế nào ?
Tổ chức nội dung cho 1 video
7
– Các khía cạnh nào cần được quan tâm khi truy nhập
video ? (WHICH)
– Làm thế nào để lưu trữ các đối tượng 1 cách hiệu quả ?
(HOW)
– Ngôn ngữ truy vấn ? (QUERY LANGUAGES)
– Làm thế nào để trích chọn được nội dung một cách tự
động ? (CONTENT EXTRACTION)
Các điểm cần quan tâm
8
Ví dụ: video 1 giờ học
– Con người:
giáo viên
sinh viên: người đặt câu hỏi hoặc thảo luận với nhau
– Hoạt động:
Thuyết giảng: GV trình bày 1 vấn đề gì đó
SV đặt câu hỏi/ trả lời câu hỏi, …
Các điểm cần quan tâm (…)
9
Các điểm chính với 1 video:
– Con người: các nhân vật
– Đồ vật: nhà kho, sân bay, ô tô, …/ Động vật: ngựa, chim, ...
– Hoạt động: cất cánh, hạ cánh, hát, nhảy, …
Với 1 khung hình (frame) nào đó có:
– tập các đối tượng và hoạt động liên quan
– Mỗi đối tượng/hoạt động có nhưng thuộc tính nhất định
Con người: tên, tuổi
Thuyết giảng: AI trình bày về CÁI GÌ ?
Biểu diễn các đối tượng và mối liên hệ giữa chúng
Biểu diễn đối tượng trong 1 video
10
Thuộc tính: (pname, values)
(height, R+), (primarycolor, {red, green, blue}), ..
Sơ đồ đối tượng: (fd, fi)
– fd: tập các thuộc tính biến đổi theo mỗi khung hình (frame-
dependent)
– fi: tập các thuộc tính không phụ thuộc vào khung hình
(frame-independent)
Biểu diễn hành động trong 1 video
14
Sơ đồ (Activity schema - ACT_SCH):
– {(pnamei, valuesi), i = 1..n}
– if (pname, value1) , (pname, value2) value1 = value2
VD:
ExchangeObject = {(Giver, Person), (Receiver, Person),
(Item, Thing)}
– Person: tập tất cả nhân vật trong cảnh
Jane Shady, Denis Dopeman
– Thing: tập tất cả các vật có thể trao đổi:
briefcase
Biểu diễn hành động (…)
15
1 hành động: thể hiện của hành động
– AcID: activity-id
– (pname, values) ACT_SCH pname = v, v values
Biểu diễn hành động (…)
16
ExchangeObject Sơ đồ: slide trước
1 hành động: Giver = Jane Shady, Receiver = Denis
Dopeman, Item = Briefcase
Lecturing Sơ đồ: {(Lecturer, Person), (Topic, String)}
1 hành động: Lecturer = Prof. Felix, Topic: Quadtree
Questioning Sơ đồ: {(Questioner, Person), (Questionee, Person),
(Question, String), (Answer, String)}
1 hành động:
Questioner = Maria
Questionee = Prof. Felix
Question = Có bao nhiêu nút trong cây tứ phân
Answer = Nhiều nhất là 4
Biểu diễn video
17
Video V:
– framenum(v): số khung hình trong video
– content(v) = {OBJ, ACT, }: nội dung
OBJ = {oid1, oid2,… , oidn}: các đối tượng
ACT = {AcID1, AcID2,… , AcIDk}: tập các sự kiện, hành động
: {1, 2, …, framenum(v)} 2OBJACT
Biểu diễn thư viện video đơn giản
18
VidLib = (Vd_Id, VidContent, framenum, plm, )
– Vd_id: tên của video
– VidContent: nội dung của video
– framenum: số khung hình trong video
– Plm (placement maping): chỉ rõ các địa chỉ các phần khác
nhau của video
– : tập các quan hệ về video để lưu các DL có cấu trúc:
date, author, …
Truy vấn DL video
21
Các kiểu truy vấn:
– Tìm kiếm các đoạn video trong CSDL thỏa mãn ĐK nào đó
– Tìm kiếm các đối tượng: cho video v & đoạn [s, e] (startframe,
endframe) của v
các đối tượng xuất hiện trong tất cả các khung hình hoặc 1 số
khung hình nằm trong [s, e]
– Tìm kiếm các hành động: cho 1 video + đoạn (s, e) của v
các sự kiện xảy ra trong tất cả các khung hình hoặc 1 số
khung hình nằm trong [s, e]
– Truy vấn dựa trên thuộc tính: tìm kiếm các video hoặc các
đoạn video trong đó các đối tượng/sự kiện thỏa mãn ĐK nào đó
Truy vấn DL video (…): Functions
22
FindVideoWithObject(o) {(v, s, e)}: đoạn trong video v có chứa object o ở
tất cả các frame thuộc [s, e]
FindVideoWithActivity(a)
{(v, s, e)}: đoạn trong video v có chứa sự kiện a
xảy ra
FindVideoWithActivityandProp
(a, p, z)
{(v, s, e)}: đoạn trong video v có chứa sự kiện a
với thuộc tính p = z xảy ra
FindVideoWithObjectandProp
(o, p, z)
{(v, s, e)}: đoạn trong video v có chứa object o
với z là giá trị của thuộc tính p
FindObjectsInVideo(v, s, e) các đối tượng xuất hiện trong đoạn [s, e] v
FindActivitiesAndPropInVideo
(v, s, e)
Các sự kiện và giá trị thuộc tính tương ứng
trong đoạn [s, e] v
FindActivitiesInVideo (v, s, e) các sự kiện xảy ra trong đoạn [s, e] v
FindObjectsAndPropInVideo
(v, s, e)
Các đối tượng và giá trị thuộc tính tương ứng
trong đoạn [s, e] v
Ngôn ngữ truy vấn
23
SQL mở rộng:
SELECT Vid:[s,e]
FROM Video <source>
WHERE term IN func_call
VD:
SELECT Vid:[s,e]
FROM Video: VidLib1
WHERE (Vid, s, e) IN FindVideoWithObject(Denis
Dopeman)
Ngôn ngữ truy vấn (…)
24
VD: Tìm tất cả đoạn video trong CSDL trong đó Jane trao 1 chiếc vali cho
Denis
SELECT Vid:[s,e]
FROM Video: VidLib1
WHERE (Vid, s, e) IN FindVideoWithObject(Denis Dopeman)
AND (Vid, s, e) IN FindVideoWithObject(Jane Shady)
AND (Vid, s, e) IN FindVideoWithActivityandProp(ExchangeObject,
Giver, Jane Shady)
AND (Vid, s, e) IN FindVideoWithActivityandProp(ExchangeObject,
Receiver, Denis Dopeman)
AND (Vid, s, e) IN FindVideoWithActivityandProp(ExchangeObject,
Item, Briefcase)
Đánh chỉ mục cho nội dung video
26
Mục tiêu:
– Hỗ trợ hiệu quả việc thực hiện các kiểu truy vấn (8 hàm)
– Biểu diễn gọn (compact):
Không thể lưu nội dung của tất cả các frame:
1 video 90’ >= 90 x 60x25 frames
– 2 kỹ thuật:
FS-tree (Frame-segment tree)
RS-tree (R-segment tree)
FS-tree
27
Khái niệm:
– Chuỗi khung hình: [i, j) = {k | i k <j}
– Thứ tự chuỗi khung hình: [i1, j1) ⊑ [i2, j2) i1 < j1 i2 < j2
fs1 = [8, 10), fs2 = [10, 15), fs3 = [11, 13)
fs1 ⊑ fs2, fs1 ⊑ fs3, fs1 ⋢ fs3
– Tập có thứ tự chuỗi khung hình:
X= {[i1, j1), [i2, j2), …, [ir, jr)}
[i1, j1) ⊑ [i2, j2) ⊑ … ⊑ [ir, jr)
VD: X= {[4, 9), [10, 11), …, [27, 41)}
FS-tree (…)
28
– Tập chặt (solid set) chuỗi khung hình
Là tập có thứ tự chuỗi khung hình
Không tồn tại cặp chuỗi: [i1,i2) , [i2, i3)
X = { [3, 5), [5, 7), [9, 11) }: not solid
X = { [3, 5), [6, 7), [9, 11) }: solid
– Biểu đồ kết hợp đoạn (segment association map) v
V = (OBJ, ACT, )
v(x) = A, x OBJ ACT, A: solid set
[s, e) A f: s f < e, x (f)
f , x OBJ ACT, nếu x (f) [s, e) A : f [s, e)
FS-tree (…)
29
FS tree có các thành phần:
– OBJECTARRAY (các đối tượng): danh sách con trỏ có thứ
tự trỏ đến các nút trên FS-tree chứa frame có các đối
tượng đó
– ACTIVITYARRAY (các sự kiện): danh sách con trỏ có thứ
tự trỏ đến các nút trên FS-tree chứa frame có các sự kiện
đó
– FS-tree: cây nhị phân, được xây dựng dựa trên bảng phân
đoạn
FS-tree (…)
31
– FS-tree: cây nhị phân, được xây dựng dựa trên bảng
phân đoạn (segment table):
Nếu số các đoạn (z) trong bảng phân đoạn 2r:
thêm phần tử qz+1, …,q2^r: qz+j = qz + j,q2^r = framenum(v) + 1,
với r: số nhỏ nhất sao cho: 2r > z & 2r < framenum(v)
Mỗi nút: biểu diễn chuỗi khung hình [x, y)
Nút lá: mức r, theo thứ tự từ trái qua, các nút lá sẽ biểu diễn:
[z1, z2), [z2, z3), [z3, z4), …
Nút N có 2 con biểu diễn [p1, p2) & [p2, p3) thì N biểu diễn
[p1, p3)
Ví dụ: FS-tree
32
3 1,2,
5
1,3,
5
5 3 1 1,2 3 2 3 5
4,5
3
5 4,
5 3 2
ID của đối tượng/sự kiện
(OBJECT & ACTIVITY)
…
Địa chỉ của các nút
…
Đoạn tương ứng với mỗi nút
…
CSDL Video (Video Library)
34
VidLib = {v1, v2, ..., vn}
Mỗi vi, có 1 FS-tree: fst(vi)
INTOBJECTARRAY = {(vi, oij, ptrij)}:
(v, o, ptr) INTOBJECTARRAY
iff (o, ptr) OBJECTARRAY của video v
INTACTIVITYARRAY = {(vi, aij, ptrij)}:
(v, a, ptr) INTACTIVITYARRAY
iff (a, ptr) ACTIVITYARRAY của video v
Tìm kiếm trên FS tree
35
FindVideoWithObject(o):
SELECT Video_id
FROM INTOBJECTARRAY
WHERE OBJ = o
FindVideoWithActivityAndProp(a, p, z):
SELECT Video_id
FROM INTACTIVITYARRAY t
WHERE ACT = a AND t.p = z
Tìm kiếm trên FS tree
36
FindObjectsInVideo(v, s, e):
preorder (R ) : duyệt toàn bộ cây con R, lấy ra tất cả các object được gán ở mỗi nút
R- segment tree (RS tree)
37
Tương tự FS tree, gồm 3 thành phần
– OBJECTARRAY, ACTIVITYARRAY: giống FS tree
– RS tree: coi 1 chuỗi khung hình [s, e) = 1 hình chữ nhật:
Dài: e-s
Rộng: 0
Sử dụng R-tree để biểu diễn (chương 3)
RS-tree vs. FS-tree
39
– Thao tác với dữ liệu: tương tự nhau
– RS phù hợp hơn cho việc lấy dữ liệu từ đĩa do
Mỗi lần truy nhập vào đĩa
lấy ra 1 trang DL: không chỉ chứa 1 hình chữ nhật (~1 đối
tượng hoặc hành động) mà gồm một số HCN gần nhau (~1
số các đối tượng/sự kiện xuất hiện gần nhau)
Biểu diễn nội dung video
41
Video:
Không chỉ đơn giản là 1 chuỗi các ảnh
Chứa thông tin về thời gian
Biểu diễn:
Phân tích nội dung
khung hình
(ảnh tĩnh)
Phân tích thông
tin thời gian Phát hiện đối tượng
(Object detection)
Nhận dạng đối tượng
(Object Recognition/ Identification)
Phát hiện sự kiện (Event
detection)
Phân tích
cấu trúc
video
Cấu trúc video
42
– 1 video v = fn(… (f2 (f1(S0, S1, t1), S2, t2) …, Sn, tn)
– Si: shot: cảnh quay liên tục được tạo bởi 1 camera, đơn
vị nhỏ nhất tạo nên nội dung video
– fi (Si-1 ,Si , ti): phép toán kết hợp (composition operators)
shot Si-1 và Si thành 1 đoạn video độ dài ti
Shot concatenation: cut (chuyển tức thì sang cảnh khác)
Spatial composition: translate (dịch chuyển 1 shot trên 1 shot
khác)
Chromatic composition: fades in (hiện dần) / fades out (mất
dần)/ dissolve (chuyển dần từ cảnh này sang cảnh khác)
Một vài thuật ngữ
44
Scene:
tập các shot liên tục có liên hệ ngữ nghĩa nhất định,
thường là tập các cảnh quay ở cùng 1 địa điểm, thời gian
Keyframe:
khung hình biểu diễn tốt nhất nội dung 1 cảnh quay (shot)
thường sử dụng để đánh chỉ mục (indexing) hoặc hiển thị
các video (browsing)
Video segmentation (phân đoạn video):
Phân chia video thành các « đoạn đồng nhất »
(homogeneous segment)
Xác định Si, fi, ti, i = 1..n
Shot detection
46
Bước quan trọng trong hệ thống CBVR, thường dùng
cho phân đoạn video:
Example from Wolf-Tilo Balke
Shot detection
47
2 vấn đề chính:
– Phát hiện chuyển cảnh
(biên – shot boundary)
– Tìm keyframes : ảnh đại diện
Random
Dựa trên đặc trưng trung bình
Theo chuyển động camera.
..
Example from Wolf-Tilo Balke
Shot detection
48
Shot detection trên video không nén dựa vào:
Đặc trưng nội dung frames và nhóm chúng lại: phức tạp +
thời gian lớn
Đặc trưng của camera: góc quay, sự chuyển động: khó
Hiệu ứng của sự chuyển đổi giữa các cảnh quay (shot
boundary detection): thường được sử dụng
Shot boundary detection
50
Template matching(Zhang et al., 1993) :
– So sánh từng cặp điểm ảnh của frame sau và frame kế
trước
– Nếu sự khác biệt giữa 2 frame lớn (dùng ngưỡng định
nghĩa trước) có chuyển cảnh
Shot boundary detection
51
Template matching(Zhang et al., 1993) :
– Hiệu quả trong trường hợp chuyển cảnh tức thì (cut
transitions / hard transitions)
– Nhạy cảm với nhiễu, đối tượng chuyển động, góc quay
camera
– Không phân biệt: thay đổi nhỏ trong 1 vùng lớn và thay
đổi lớn trong 1 vùng nhỏ
Shot boundary detection
52
Histogram-based methods (Tonomura, 1991)
– Giả thiết: các frame của cùng 1 shot có cùng nền và đối
tượng nên có cùng độ sáng, phân bố độ xám/màu sắc
– Tính khoảng cách histograms của 2 frame kế tiếp (j:
màu sắc / cường độ sáng):
– Sử dụng ngưỡng có chuyển cảnh
Shot boundary detection
53
Histogram-based methods (Tonomura, 1991) …
– Ít lỗi hơn so vơi template matching do histogram
không/ít thay đổi khi:
Quay ảnh,
object dịch chuyển, bị che 1 phần
Camera dịch chậm hoặc zooming
– Chọn ngưỡng ? Tùy loại video (có thể cần training)
Quá thấp : false cuts (phát hiện sai)
Quá cao: missed cuts (phát hiện thiếu)
Shot boundary detection
54
Histogram-based methods (Tonomura, 1991) …
– Chọn ngưỡng ? Tùy loại video (có thể cần training)
Quá thấp : false cuts
Quá cao: missed cuts
intra: khác biệt giữa các frame trong shot
inter: khác biệt giữa các các shots
Shot boundary detection
55
2 ngưỡng
– Phát hiện chuyển cảnh dần (dissolves, fades, ...)
– 2 ngưỡng:
1 ngưỡng cho cut transition : t_c
1 ngưỡng cho soft transition : t_s
Twin comparisons (Zhang and others, 1993)
Shot boundary detection
56
Twin comparisons (Zhang and others, 1993)
1 ngưỡng cho cut transition : t_c
1 ngưỡng cho soft transition : t_s reference frame :
frame đầu
o Phát hiện soft transition: so sánh các frame sau với
reference frame nếu > t_c : soft transition
Shot boundary detection
57
Block-based techniques (Idris and Panchanathan, 1996)
Mỗi frame chia thành r block
Đặc trưng cục bộ tính tại mỗi block
So sánh giữa các block của 2 frames kế tiếp :
số lượng lớn các block giống nhau cùng 1 shot
– Ưu điểm
Giảm nhiễu hoặc thay đổi thông số camera
Có thể phát hiện hoặc loại bỏ các hiệu ứng chỉ xảy ra ở
trong 1 phần nào đó trong ảnh
Shot boundary detection [Huang et al. 2008]
58 Source: http://www.cs.nchu.edu.tw/~crhuang/ShotChangeDetection/scd.htm
Ref. Shot Change Detection via Local Keypoint Matching, IEEE TRANS ON MULTIMEDIA, VOL. 10, NO. 6, 10/ 2008
So khớp đặc trưng cục bộ (CCH) giữa các frames liên tiếp
(CCH: Contrast Context Histogram)
59 Source: http://www.cs.nchu.edu.tw/~crhuang/ShotChangeDetection/scd.htm
Ref. Shot Change Detection via Local Keypoint Matching, IEEE TRANS ON MULTIMEDIA, VOL. 10, NO. 6, 10/ 2008
Vị trí có số điểm được so khớp ít nhất chính là ứng viên cho việc chuyển cảnh (shot)
Shot (boundary) detection [Huang et al. 2008]
60 Source: http://www.cs.nchu.edu.tw/~crhuang/ShotChangeDetection/scd.htm
Ref. Shot Change Detection via Local Keypoint Matching, IEEE TRANS ON MULTIMEDIA, VOL. 10, NO. 6, 10/ 2008
Xác định khoảng dịch chuyển (Interval of transition for gradual transition):
-- 2 vị trí có số so khớp lớn nhất, và gần nhất ở 2 phía của vị trí có số so khớp ít
nhất
-- ngoài khoảng dịch chuyển: số điểm so khớp ổn định
Shot boundary detection [Huang et al. 2008]
Shot boundary detection [Liu et al. 2009]
61 Liu et al., Shot Boundary Detection and Keyframe Extraction based on SIFT, ACIS 2009
frame t: cut shot boundary Shot detection:
gradual shot boundary
Shot boundary detection [Liu et al. 2009]
62
Liu et al., Shot Boundary Detection and Keyframe Extraction based on SIFT, ACIS 2009
Keyframe extraction:
-1 shot = unit-clips
-1 clip: 1 keyframe having the most keypoint
M(t): amount of
matched
keypoint
between frame
t and matched
keypoints prior
M(t) 0
Local average
of R(t)
Shot boundary detection
63
Model-based
Phù hợp khi có sự thay đổi nhỏ giữa 2 shots
Biểu diễn sự chuyển cảnh như biểu diễn toán học theo thời
gian
– Ưu điểm:
Phát hiện được sự chuyển cảnh
Phát hiện được kiểu chuyển cảnh:
Fade-out: frame ở shot 1 tối dần histogram co dần
Fade-in: frame ở shot 2 sáng dần histogram dãn đần
Shot Detection – Video nén
65
Giảm tính toán so với trên video không nén
– Trading between efficiency and accuracy
Phương pháp dựa trên nén MPEG:
– Sử dụng hệ số của biến đổi cosine rời rạc trên I-frame
– Sử dụng thông tin về motion vectors
– Kết hợp
MPEG
66
Nén dựa trên việc mã hóa sự thay đổi giữa các frame
– I-frame (I:independent) : thường được mã hóa =
discrete cosine tranform
– P-frame: mã hóa sự thay đổi thông tin so với các frame I
và P phía trước (P: predicted)
– B-frame: nội suy từ 2 P-frame hoặc I- frame và P-frame
(theo 2 hướng)
– 1 shot = chuỗi I-, P-, B- frames
Shot detection: sử dụng I-frame
67
Đo sự khác biệt giữa các I-frame kế tiếp:
– Sử dụng DC components trong I-frame
– DC component: hệ số đầu tiên của DCT = cường độ
sáng trung bình 1 block
Giữa 2 I-frames kế tiếp:
– Khoảng 15 B-frame và P-frame
Shot detection: motion vectors
68
Ý tưởng:
– Số lượng các motion vector trong các frame liên tiếp
của 1 shot thường tương tự nhau.
– Giữa 2 shot biến đổi nhiều hơn số motion vector
nhiều
Zhang et al., 1993:
– Xác định số motion vectors trong B- và P-frame
– Sử dụng ngưỡng : số motion vectors < ngưỡng cùng
shot
Tracking
73
Position in frame 1
Position in frame 2
Position in frame 3
Position in frame 4
Position in frame 5
Position in frame 6
Tracking : Kalman filter
74
Initial position
Measurement
0 10 20 30 40 50 60 70 80 90 1000
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
Prediction x-
Measurement y
Corrected optimal estimate x+
Tracking : Kalman filter
75
Bộ tracker khác trong OpenCV
https://www.learnopencv.com/object-tracking-using-opencv-cpp-
python/
Measurement: yt
Độ tương tự giữa 2 video
77
Mục đích:
– Xếp hạng kết quả truy vấn
– Tìm các bản sao chép (dù có thể có thay đổi chút ít: độ phân
giải, độ sáng tối
– Phát hiện các vi phạm bản quyền
Độ tương tự giữa 2 video (…)
78
Phát hiện sao chép tuyệt đối Đơn giản
Quan trọng: “near duplicate”?
– Nội dung chính chủ yếu giống nhau
– Khác 1 số điểm:
format,
thay đổi sáng tối, màu
Chèn thêm thông tin: caption, logo, viền ngoài
Độ dài / ngắn
…
Độ tương tự giữa 2 video (…)
80
Đơn giản nhất: Tỷ lệ frame có độ giống nhau cao
(tương tự như với văn bản)
– Đo độ tương đồng giữa các chuỗi frames (chuỗi đặc trưng):
phân bố màu, motion vector, …
– Tăng hiệu năng về thời gian:
Đo độ tương tư giữa các shot thay vì giữa các frames
– Số lượng đặc trưng để đo độ tương tự ?
Nhiều chính xác cao , ! thời gian tìm lâu
Ít hơn độ chính xác giảm!, hiệu quả về thời gian
Độ chính xác ? thời gian ?
Video signatures ?
81
Biểu diễn nội dung video tốt:
– Số đặc trưng: ít
– Sự khác biệt giữa biểu diễn và nội dung : nhỏ
Giả thiết:
– 1 frame = 1 feature f; độ đo khoảng cách d
– Độ tương tự giữa videos bất biến với thứ tự các shot
Video = { tập không có thứ tự các đặc trưng fi}
Độ đo tương tự cho video
82
2 frames giống nhau:
– frame i = feature x ; frame j = feature y
– d(i, j) = d(x, y) < epsilon i, j: tương tự
Độ tương tự 2 video (v1, v2):
C
BAvvnvsvvsimilarityvideonative
)2,1()2,1(__
A: số frame v1 giống với ít nhất 1 frame trong v2
B: số frame trong v2 giống với ít nhất 1 frame trong v1
C: tổng số frame của video v1 và v2
Độ đo tương tự cho video
83
Độ tương tự 2 video (v1, v2):
– Mỗi frame trong v1 tương tự với 1 frame trong v2 nvs = 1
– Không cặp frame nào tương tự nvs = 0
Problem:
– 1 shot: nhiều frame giống nhau
– Không trực quan: v2 tạo từ việc lặp 1 frame của v1, số frame v2 >>
số frame v1 nvs = 1
C
BAvvsimilarityvideonative
)2,1(__
Source from Wolf-Tilo Balke, TU Braunschweig
Độ đo tương tự cho video (..)
84
Giải pháp:
– Phân cụm các frame giống nhau 1 cụm : dùng như đơn vị cơ
bản để so sánh
X: tập các cụm v1 ; Y: tập các cụm v2
- Giảm thời gian tính toán = giảm số các cặp frame cần đối sánh
sampling các frame trên mỗi video : mỗi video được biểu diễn bởi
m frame chọn ngẫu nhiên từ các frame video
(problem: m nhỏ có thể gây ra lỗi đối sánh) Voronoi diagram
YX
Dvvivsvvsimilarityvideoideal
)2,1()2,1(__
D: số các cụm trong tập X Y mà có chứa các frame ở cả 2 video
Voronoi Diagram
85
Phân rã 1 không gian dữ liệu thành các phần rời nhau
Cho :
– 1 không gian dữ liệu F với độ đo khoảng cách d : (F, d)
– Tập các điểm rời rạc X = {x1, x2 , … } ⊆ F
Mục đích:
– Chia F thành |X| phần rời nhau
– Mỗi phần chỉ có 1 điểm duy nhất
từ tập X
– z region(xi): d(z, xi) < d(z, xj), j ≠ i
Voronoi Video Similarity
86
F: không gian đặc trưng
Mỗi video V với l frames
– Chia F thành l voronoi cell với X = tập các frame của V.
Source from Wolf-Tilo Balke, TU Braunschweig
Voronoi cell VX(xt) =
tập các vector
trong F mà gần với
frame xt nhất
Voronoi Video Similarity
87
X: tập frame video v1
yo y1
yt VY(yt)
VY(y1) VY(y0)
Y: tập frame video v2
epsilonyxd
YX
epsilonyxd
YX
yVxVvolume
yVxVvolumevvvvs
),(
),(
)()(
)()()2,1(
Chuẩn hóa : volume(F) = 1
Voronoi Video Similarity : ví dụ
88
Frame 1, video v1
Frame 2, video v1
Frame 1, video v2
Frame 2, video v2
33.0)()()2,1(),(
epsilonyxd
YX yVxVvolumevvvvs
Voronoi Video Similarity : ước lượng sử dụng random sampling
89
F: không gian đặc trưng
Lấy mẫu ngẫu nhiên m vectors (seed vector) phân
phối đều trong không gian F
Video v1, có các frame : X, video signature theo S:
msssS ,...,, 21
)(),(
),(),()(
iYiX
YXi
sgsgdiff
yxdyVxVs
gX(si) : frame thuộc X mà gần với si nhất
)(),...,(),( 21 mXXXS sgsgsgX
Voronoi Video Similarity : ước lượng sử dụng random sampling
90
Video v1, có các frame : X, video signature theo S:
Video v2, tập các frame: Y, video signature theo S
)(),...,(),( 21 mXXXS sgsgsgX
)(),...,(),( 21 mYYYS sgsgsgY
m
YXoverlapmYXvssvvvvsm
i
sgsgd
SSSS
iYiX
1
)(),(1
,),;,()2,1(
(vss : video signature similarity)
=> m = ?
Voronoi Video Similarity : ước lượng sử dụng random sampling (…)
91
m = ?
m càng lớn, càng chính xác
m nhỏ: dễ tính toán
CSDL video : n video, m seed vectors
Perror(m) = P(CSDL chứa ít nhất 1 cặp video có |vvs-
vss| > )
Điều kiện để Perror(m) <
22
ln)ln(2
nm
Source from Wolf-Tilo Balke, TU Braunschweig
Kết luận CBVR
93
Việc tìm kiếm thông tin chỉ dựa trên nội dung liên quan
đến nhiều vấn đề ở nhiều mức độ khác nhau:
Trích chọn đặc trưng: mức độ hiệu quả tùy thuộc ứng dụng
Phân đoạn video: shot detection có những tiến bộ đáng kể
ngay cả khi có hiệu ứng chuyển đổi đặc biệt (fades-
in/fades-out, dissolve, …)
Xác định key-frames : đánh giá chủ quan
Phát hiện/định danh đối tượng
Biểu diễn truy vấn thế nào ?
Kết luận CBVR
94
Dù có nhiều cải tiến hệ thống tìm kiếm video vẫn phải
dựa trên thông tin văn bản để đảm bảo hiệu năng cho
từng ứng dụng:
Từ khóa
Văn bản đi kèm
Kết hợp nội dung với từ khóa
Một số hệ thống
95
Google/Youtube: Tìm kiếm toàn bộ video
– Dựa trên từ khóa và thông tin văn bản xung quanh
Một số hệ thống
96
Bài giảng online: Tìm kiếm 1 phần bài giảng
– Video được phân đoạn dựa trên việc chuyển slide
– Trích chọn từ khóa từ slides (từ hệ thống nhận dạng ký
tự) tạo lập chỉ mục để dễ tìm kiếm
– Phương pháp tìm kiếm: dựa trên từ khóa
Một số hệ thống
97
Video
Slides
time
Text Nomadic Radio
More effective
alerting…
Nomadic Radio
Scalable audio…
Nomadic Radio
More effective
Scalable…
98 http://www.cs.ucf.edu/courses/cap6412/fall2009/papers/Collomosse-ICCV-2009.pdf
CBVR:
Một số tài liệu tham khảo
99
http://airccse.org/journal/jcsit/0411csit06.pdf
http://eprints.pascal-
network.org/archive/00008340/01/Collomosse-ICCV-
2009.pdf
http://doras.dcu.ie/620/3/submitted_version.pdf
http://viper.unige.ch/doku.php/demos