Vài *i*m v* nh*n d*ng text và object

Download Report

Transcript Vài *i*m v* nh*n d*ng text và object




Công nghệ đã trưởng thành từ lâu, ở Việt
Nam cũng gần 20 năm.
Các sản phẩm commercial (ABBYY, Nuance…
) có độ chính xác cao, support nhiều thứ
tiếng.
Có hệ thống open source như Tesseract.

Một số vấn đề phát sinh:
 Chất lượng hình ảnh.
 Lẫn rác từ background.
 Ít chữ, hệ thống dictionary correction khó làm
việc.

Các bước xử lý:




Ảnh CGI tương đối dễ, các hệ thống top end đạt
~80% precision, ~90% recall tùy mức aggressive.
Ảnh tự nhiên khó hơn: ánh sáng, phản chiếu,
perspective distortion, compression artefact.
Phát hiện text theo cụm chữ: dựa vào vị trí
tương đối, so sánh kích thước, mức độ đồng
nhất trong một số parameter.
Phát hiện text theo chữ lẻ: độ tương phản trên
edge map, contour đóng kín, độ dày của nét.



Dùng OCR tại chỗ để hỗ trợ.
Dùng tracking trong video để phát hiện text,
loại bỏ kết quả rác.
Điều chỉnh tốc độ vs độ chính xác dựa trên số
lượng parameter.



Điều chỉnh độ sáng, tương phản (standard).
Loại bỏ background.
Sửa chữ bị đứt hoặc nhòe (bằng filter đơn
giản).



Dùng keyword và rule để phát hiện các
element cơ bản: tên người, địa chỉ, số tiền,
ngày tháng, khối text…
Xếp thứ tự các element cơ bản theo vị trí và
tần số trên văn bản.
Train classifier để phân loại: thư, form, hóa
đơn, bài báo khoa học…


Bốn vấn đề: phân loại (classification), nhận
dạng (recognition), tìm kiếm (detection), định
vị (segmentation).
Khác biệt với face recognition:
 Mỗi loại object có cấu trúc hình học riêng, thuật
toán phải tự nắm bắt được cấu trúc này.
 Một số loại object rất đa dạng (ghế, giày… ).

Các loại classifier:
 Binary classifier.
 Multiclass classifier (có thể ghép từ các binary
classifier).
 One-class classifier (dùng cho nhận dạng).






Khi extract các feature từ ảnh, ta cần cluster các
feature gần giống nhau thành một visual word để
tăng độ ổn định cho việc phân loại.
Dùng một tập hợp ảnh mẫu có đủ các loại feature.
Extract feature (SIFT, dense SIFT, OSID, GLOH,
SURF…) từ các ảnh mẫu.
Cluster các feature này lại, mỗi cluster là một visual
word.
Trong thực tế thường dùng từ 1000 – 4000 cluster.
Sau này khi phân tích ảnh, mỗi feature sẽ ứng với
visual word gần nhất.

Các bước cơ bản:
 Extract feature từ ảnh.
 Dựng descriptor từ các visual word.
 Train classifier.
 Phân loại.


Nếu feature nhạy cảm với loại biến đổi nào, ta
cần normalize biến đó (scale, luminosity…).
Descriptor cần diễn tả cấu trúc hình học của
object.




Chia ảnh thành các lưới 1x1, 2x2, 4x4… rồi
extract các visual word trên từng ô lưới.
Danh sách visual word của mỗi ô được đếm
vào một histogram, rồi nối lại thành
descriptor.
Có thể dùng bất cứ loại classifier nào trên các
descriptor, phổ biến nhất là SVM.
Cách này nhanh và đơn giản, nhưng không ổn
định khi object bị xoay góc hoặc dịch chuyển.




Các visual word được xếp theo vị trí trong
ảnh, descriptor của mỗi ảnh là một chuỗi này.
Mỗi descriptor tính là một observation
sequence từ Hidden Markov Model.
Train model từ tập hợp các descriptor của
một loại object, theo thuật toán của
Levinson.
Phân loại ảnh bằng cách tính xác suất
descriptor của ảnh được quan sát từ mỗi
model đã train.
Bắt đầu từ một universal background model, đại
diện cho trường hợp tổng quát.
 Với mỗi descriptor ta train lại universal
background model cho phù hợp với observation
sequence đó, kết quả là một HMM mới.
 Hai HMM được coi là xa nhau nếu khoảng cách
Kullback-Leibler divergence lớn.
 KL divergence không phải là metric, nhưng
trong trường hợp này ta có thể tính toán một
metric gần với nó.






Như vậy mỗi HMM mới có thể coi như một điểm
trong không gian metric để đưa vào bài toán
phân loại.
Trong hệ thống này, HMM chủ yếu sử dụng để
mô tả cấu trúc hình học của object.
Có thể áp dụng các thủ thuật phân loại trong
không gian metric.
Khi thêm dữ liệu training, chỉ cần train phần
HMM của dữ liệu mới.
Tuy nhiên mỗi ảnh đưa vào phân loại đều cần
train HMM riêng.



Phương án đơn giản là dùng object
classification với một background class.
Tùy theo loại object để điều chỉnh
background class.
Các mẫu object có thể phải chia thành nhiều
sub-class, tùy theo góc độ, ánh sáng, màu
sắc… để tránh nhận nhầm (false positive).
Tìm giá trị cực đại của decision function trong ảnh
(phần ảnh có xác suất cao nhất là mẫu object). Nếu giá
trị này cao hơn một mức
 Dùng search window:

 Tốc độ nhanh, độ chính xác vừa phải.
 Cần ước lượng kích thước và tỷ lệ của object (có thể ước
lượng từ dữ liệu training).

Branch-and-bound:
 Đảm bảo chính xác “tuyệt đối”.
 Bound function phải viết tay, tùy theo decision function
của bộ phận classifier.
 Không đảm bảo được thời gian chạy, có thể rất chậm.

Efficient subwindow search (C.H. Lampert):
 Một hình thức branch-and-bound dành riêng cho
tìm kiếm ảnh.
 Chạy rất nhanh với SVM classifier nếu descriptor
là scale invariant.
 Nếu phải normalize descriptor thì thuật toán này
ít tác dụng.


Tìm các local maximum của decision
function, để tìm hết các mẫu object trên hình.
Có thể dùng thuật toán khác để điều chỉnh
ranh giới của object tìm được.