You are on page 1of 8

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN


Môn: Hệ cơ sở dữ liệu đa phương tiện
Đề tài: Xây dựng hệ CSDL lưu trữ và tìm kiếm
ảnh món ăn

Giảng viên : Nguyễn Đình Hóa


Nhóm btl : 01
Thành viên : Phạm Minh Quốc - B17DCCN519
Bùi Bích Phương - B17DCCN493
Lê Thị Ngân - B17DCCN457

Hà Nội 2021
I. Giới thiệu chung
Đã bao giờ bạn muốn tìm kiếm một vật nhưng bạn không biết từ khóa liên quan
đến vật đó để tìm kiếm thông tin liên quan. Hiện nay với sự phát triển của công nghệ
kỹ thuật đã cho phép bạn tìm kiếm thông tin chỉ bằng 1 tấm ảnh. Ví dụ rõ ràng nhất cho
việc áp dụng kĩ thuật tìm kiếm bằng hình ảnh là trên các trang thương mại điện tử. Trên
Taobao (nền tảng thương mại điện tử lớn nhất tại Trung Quốc), nếu bạn có một mẫu áo
muốn mua mà không biết shop nào bán mẫu đó, thì rất đơn giản chỉ cần nhập hình ảnh
đó lên, hệ thống sẽ trả về kết quả các mẫu sản phẩm có hình ảnh tương tự như hình ảnh
chiếc áo bạn muốn tìm kiếm. Lợi ích đem lại cho người dùng là rất tiện lợi, bạn không
cần phải ngồi nghĩ từ khóa tìm kiếm, đây là cách sẽ giúp bạn tiết kiệm thời gian mà kết
quả trả về luôn rất chính xác.
Hiện nay với sự bùng nổ thông tin trên mạng, công nghệ 4.0 lượng ảnh lưu trữ
trên web cũng gia tăng một cách nhanh chóng. Các công cụ tìm kiếm ảnh thường dựa
vào các đặc trưng của ảnh như: nội dung ảnh, văn bản đi kèm,...Một số công cụ tìm
kiếm ảnh hiện nay: Google image search, MSN, Google Image Swirl, Bing, Tiltomo...
Họ xây dựng một kho dữ liệu ảnh khổng lồ, áp dụng các thuật toán liên quan đến học
máy, học sâu… để xử lý và tìm kiếm hình ảnh.

II. Các kỹ thuật xử lý và tìm kiếm ảnh hiện hành


1. Các kỹ thuật xử lý ảnh
❖ Phát hiện biên
● Phát hiện biên là quá trình sử dụng các phương pháp xử lý nhằm phát hiện
/ định vị ra các điểm ảnh nằm tại biên vùng ảnh/ đối tượng
● Các kỹ thuật phát hiện biên:
○ Kỹ thuật phát hiện biên Gradient
○ Phương pháp Marr-Hildreth
○ Phương pháp Canny
○ Kỹ thuật phát hiện biên dựa vào trung bình cục bộ
○ Phát hiện biên theo quy hoạch động
❖ Phân vùng ảnh số
● Phân vùng ảnh số là quá trình chia bức ảnh thành các vùng cấu thành
(tương đối đồng nhất) hoặc thành các đối tượng thỏa mãn điều kiện cho
trước
● Các kỹ thuật phân vùng ảnh số
○ Phân vùng ảnh bằng phát hiện biên
○ Phân vùng ảnh theo ngưỡng biên độ: sử dụng thuật toán Tam giác,
Otsu, đối xứng nền
○ Phân vùng ảnh theo ngưỡng biên độ
❖ Nén ảnh
● Nén dữ liệu ảnh là tìm kiếm phương pháp nhằm biểu diễn thông tin ảnh
với một lượng dữ liệu nhỏ nhất
● Một số phương pháp nén ảnh
○ Mã hóa Huffman
○ Mã hóa từ điển LZW
❖ Tăng cường chất lượng ảnh
● Tăng cường chất lượng ảnh số là quá trình thao tác trên một ảnh số sao
cho ảnh kết quả phù hợp hơn với mục đích/ yêu cầu cụ thể so với ảnh gốc
● Mục tiêu:
○ Làm nổi bật những chi tiết, khía cạnh cần quan tâm trong bức ảnh
○ Loại bỏ nhiễu
○ Làm cho bức ảnh trở nên hấp dẫn hơn về mặt trực giác
● Các kỹ thuật tăng cường ảnh:
○ Tăng cường ảnh trong miền không gian
○ Tăng cường ảnh trong miền tần số

❖ Trích rút đặc trưng


● Trích rút đặc trưng hình dạng bằng phương pháp HOG ( Histogram of
Oriented Gradients)
○ HOG là viết tắt của Histogram of Oriented Gradient - một loại “feature
descriptor”. Mục đích của “feature descriptor” là trừu tượng hóa đối
tượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ
đi những thông tin không hữu ích. Vì vậy, HOG được sử dụng chủ yếu
để mô tả hình dạng và sự xuất hiện của một đối tượng trong ảnh.
○ Bản chất của phương pháp HOG là sử dụng thông tin về sự phân bố
của các cường độ gradient (intensity gradient) hoặc của hướng biên
(edge directions) để mô tả các đối tượng cục bộ trong ảnh. Các toán
tử HOG được cài đặt bằng cách chia nhỏ một bức ảnh thành các vùng
còn, được gọi là “tế bào” (cells) và với mỗi cell, ta sẽ tính toán một
histogram về các hướng của gradients cho các điểm nằm trong cell.
Ghép các histogram lại với nhau ta sẽ có một biểu diễn cho bức ảnh
ban đầu. Để tăng cường hiệu năng nhận dạng, các histogram cục bộ
có thể được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng
cường độ trong một vùng lớn hơn cell, gọi là các khối (blocks) và sử
dụng giá trị ngưỡng đó để chuẩn hóa tất cả các cell trong khối. Kết quả
sau bước chuẩn hóa sẽ là một vector đặc trưng có tính bất biến cao
hơn đối với các thay đổi về điều kiện ánh sáng.
○ Các bước trích chọn đặc trưng bằng HOG:
1. Tiền xử lý dữ liệu, đưa hết các ảnh về cùng kích thước
2. Tính Gradient
3. Tính vector đặc trưng cho từng ô cell
4. Chuẩn hóa khối (blocks)
2. Các kỹ thuật tìm kiếm ảnh
❖ Image meta search: Sử dụng siêu dữ liệu về ảnh để tìm kiếm
❖ Search by example: Sử dụng các thông tin trích xuất ra được từ ảnh để tìm
kiếm
❖ Hybrid search: kết hợp của 2 phương pháp trên
III. Xác định bài toán
1. Sơ đồ khối của hệ thống và quy trình thực hiện
a. Sơ đồ khối

b. Quy trình thực hiện


● Tạo tập dữ liệu ảnh: gồm tối thiểu 100 ảnh về các món ăn khau
○ Với món ăn giống nhau : sưu tầm 6 ảnh gần giống nhau, có nền giống
nhau, hình dạng giống nhau, màu sắc tương đồng, không lẫn các vật
thể khác
○ Với món ăn khác nhau : Hình dạng khác nhau, màu sắc khác nhau
● Phân tích đặc điểm của ảnh để rút ra các thông số, thuộc tính quan trọng nhất
● Tìm hiểu thuật toán để trích rút các đặc trưng đó (dựa vào sự khác biệt giữa
các điểm ảnh)
○ Trong quá trình tìm hiểu thuật toán, chúng ta sẽ thử chạy bộ dữ liệu với
từng thuật toán
2. Các thuộc tính sử dụng để nhận dạng và tìm kiếm món ăn trong hệ thống, kỹ
thuật trích rút đặc trưng
a. Đặc trưng của dữ liệu ảnh món ăn
❖ Các món ăn khác nhau thì có hình dạng và màu sắc khác nhau do cấu tạo
và đặc trưng của từng món ăn là khác nhau.
→ nên sử dụng thuộc tính về hình dạng và màu sắc của món ăn để nhận
dạng
VD: Hình dạng: cơm (hạt dài, thon, nhỏ), mì (dạng sợi,dài)
Màu sắc : cơm (màu trắng), mì (Màu trắng, nâu đậm)
b. Kỹ thuật trích rút đặc trưng
❖ Lược đồ tần suất RGB:
➢ Đối với ảnh 256 màu, lược đồ màu của ảnh tương đương với lược đồ
màu của ảnh xám. Đối với ảnh 24 bit màu, lược đồ miêu tả khả năng
kết nối về cường độ của ba kênh màu R, G, B. Lược đồ màu này được
định nghĩa như sau:

Trong đó N là số lượng điểm có trong ảnh.

➢ Lược đồ màu này được tính bằng cách rời rạc hóa từng màu trong ảnh,
sau đó đếm số điểm ảnh của mỗi màu. Khi mà số lượng màu là có
hạng, để thuận tiện hơn, người ta thường chuyển đổi ba kênh màu
thành một biến giá trị duy nhất. Một cách khác để tính lược đồ màu
của ảnh RGB là ta phân ra làm 3 lược đồ riêng biệt hR[], hG[] , hB[].
Khi đó, mỗi lược đồ được tính bằng cách đếm kênh màu tương ứng
trong mỗi điểm ảnh.
❖ HOG (Histogram of Oriented Gradients)
➢ HOG là một loại “feature descriptor” để trừu tượng hóa đối tượng
bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi
những thông tin không hữu ích → sử dụng HOG để trích xuất hình
dạng và sự xuất hiện của một đối tượng trong ảnh
➢ HOG tập trung vào cấu trúc và hình dạng của ảnh. HOG có thể cung
cấp cách trích xuất biên rất tốt. Điều này được thực hiện bằng cách
trích xuất gradient và hướng của các cạnh. Hình ảnh được chia ra thành
các vùng nhỏ và đối với mỗi vùng độ dốc và hướng sẽ được tính toán.
➢ Sau đó, HOG sẽ tạo một biểu đồ cho từng vùng riêng biệt. Biểu đồ
được tạo bằng cách sử dụng độ dốc và hướng của các giá trị pixel.
➢ Các bước trích chọn đặc trưng bằng HOG:
○ Bước 1: Tiền xử lý
+ Với ảnh đầu vào cần nhận dạng, ta quay 4 lần, mỗi lần 1 góc 90⁰,
thu được 4 ảnh đầu vào
+ Sử dụng phân ngưỡng OTSU để phân ngưỡng, tách vật thể với nền
+ Tách vật ra, đưa tất cả các ảnh về cùng một kích thước (224x224)
+ Nếu kích cỡ khác nhau thì độ dài ảnh cũng sẽ khác nhau (không so
sánh được) nên phải xử lý đưa tất cả ảnh về cùng một kích cỡ
+ Tạo viền ảnh 0 pixel bên ngoài (cạnh của bức ảnh chưa chắc đã hết
thông tin nên phải đệm bên ngoài để trượt ra cả các vùng bên ngoài
ảnh nếu không thì bị mất thông tin)
○ Bước 2: Tính Gradients (biên)
+ Dùng mặt nạ: Dx = [-1 0 1] đặt lên từng điểm ảnh theo chiều ngang
→ Nhân nhập ma trận Dx với ma trận điểm ảnh tương ứng → Tính
được Gx
+ Dùng mặt nạ: DyT = [-1 0 1] đặt lên từng điểm ảnh theo chiều dọc
→ Nhân nhập ma trận Dy với ma trận điểm ảnh tương ứng → Tính
được Gy

+ Tính biên độ: G = Gx2 + Gy2


+ Tính góc biên: Φ = actan(Gy/Gx)
+ Với mỗi kênh màu RGB, ta sẽ tính ra được 1 bộ gồm 2 giá trị G và
Φ. Chúng ta sẽ lấy bộ có giá trị của G lớn nhất trog 3 bộ đó để làm
biên độ và góc biên cho điểm ảnh
○ Bước 3: Tính vectơ đặc trưng cho từng ô (cells)
+ Chia hình ảnh thành các block (16x16), mỗi block lại chia đều
thành các cell (8x8). Để xác định được số block, sử dụng công
thức:

+ Các block có thể xếp chồng lên nhau:

+ Sau khi xác định số block và kích thước mỗi block, cell, để tính
toán vector đặc trưng cho từng cell, chúng ta cần:
→ Chia không gian hướng thành 9 bin (số chiều vecto đặc trưng
của ô. Hướng Gradient sẽ chạy từ 00 đến 1800, trung bình 200 mỗi
bin
→ Rời rạc hóa góc hướng nghiêng tại mỗi điểm ảnh vào trong các
bin
+ Giá trị bin được định lượng với tổng cường độ biến thiên của các
pixcels thuộc về bin đó
+ Tại mỗi cell, xây dựng một vector đặc trưng bằng cách vote các
pixel vào các bin. Trọng số vote của mỗi pixel phụ thuộc vào
hướng và cường độ (được tính ở bước 2) của pixel đó
+ Sau khi tính toán đặc trưng cell có kích thước 1x9, ta sẽ nối 4 vector
đặc trưng cell trong block để thu được vector đặc trưng Block
○ Bước 4: Chuẩn hóa vector của block
+ Một vector đặc trưng của block sẽ có kích thước 1x36 dạng V =
[a1, a2, a3, ….a36]. Ta sẽ tính căn của tổng các bình phương: 𝑎 =
√𝑎12 + 𝑎22 + . . . + 𝑎362
+ Chia tất cả các phần tử của vector cho k ta sẽ được vector chuẩn
hóa có dạng: V’ = [𝑎1/𝑘, 𝑎2/𝑘, . . . , 𝑎36/𝑘]
○ Bước 5: Đưa ra vector đặc trưng HOG của ảnh bằng cách nối các
vector đặc trưng của các block lại với nhau
3. Cách lưu trữ và quản lý thuộc tính ảnh món ăn và cách nhận dạng
● Cách lưu trữ và quản lý thuộc tính ảnh món ăn: 1 bảng gồm: id, tên ảnh,
đường dẫn, các đặc trưng trích xuất được
● Cách nhận dạng: sử dụng khoảng cách Cosine để tính độ tương đồng giữa
2 bộ thuộc tính
Công thức:

You might also like