đồ án 1 thiết kế thuật toán so sánh ảnh màu dựa trên điểm ảnh

34 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 thiết kế thuật toán so sánh ảnh màu dựa trên điểm ảnh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Huỳnh Hồ Thị Mộng TrinhThời gian thực hiện: Từ ngày 7/9/2023 đến ngày 31/12/2023Sinh viên thực hiện: Lê Thành Lộc - 21521087Nguyễn Hoàng Linh - 21522289Nội dung đề tài:Nhận thấy nhu cầu

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

Thiết kế thuật toán so sánh ảnh màu dựa trên điểm ảnh

Giảng viên hướng dẫn

ThS Huỳnh Hồ Thị Mộng TrinhSinh viên thực hiện

Nguyễn Hoàng Linh - 21522289Lê Thành Lộc - 21521087

TP Hồ Chí Minh, tháng 12 năm 2023

Trang 2

LỜI CẢM ƠN

Trong quá trình thực hiện đề tài, chúng em đã nhận được rất nhiều sự giúp đỡ,hướng dẫn và hỗ trợ từ quý nhà trường, quý thầy cô Nhờ đó mà chúng em đã có đượcnhiều kinh nghiệm và đạt được kết quả như ngày hôm nay Chúng em xin được bày tỏlòng biết ơn chân thành đến:

ThS Huỳnh Hồ Thị Mộng Trinh, người đã trực tiếp hướng dẫn và đồng hành cùngchúng em xuyên suốt đồ án này Trong quá trình thực hiện, cô đã tận tình hướng dẫn,giúp chúng em định hướng được mục tiêu đề tài, lắng nghe những thắc mắc và hỗ trợ giảiquyết vấn đề.

Quý nhà trường đã tạo nên một môi trường năng động, sáng tạo nơi chúng em cóthể phát huy những khả năng của bản thân và tạo điều kiện tốt nhất để chúng em có thểhoàn thành đồ án.

Do kiến thức còn nhiều hạn chế cũng như chưa đủ kinh nghiệm cho nên chúng emcũng không tránh khỏi những thiếu sót khi thực hiện đề tài, kính mong nhận được sựđánh giá, góp ý từ quý thầy cô và nhà trường.

Chúng em xin chân thành cảm ơn!.

Sinh viên Lê Thành LộcSinh viên Nguyễn Hoàng Linh

Trang 3

ĐỀ CƯƠNG CHI TIẾT

Tên đề tài: Thiết kế thuật toán so sánh ảnh màu dựa trên điểm ảnhGiảng viên hướng dẫn: ThS Huỳnh Hồ Thị Mộng Trinh

Thời gian thực hiện: Từ ngày 7/9/2023 đến ngày 31/12/2023Sinh viên thực hiện: Lê Thành Lộc - 21521087

Nguyễn Hoàng Linh - 21522289

Nội dung đề tài:

Nhận thấy nhu cầu và tiềm năng phát triển của hệ thống đề xuất ảnh (recommendsystem) trong những ứng dụng hiện đại ngày nay với mục đích cá nhân hóa trải nghiệmngười dùng, nhóm chúng em đã quyết định hướng nghiên cứu của đề tài sẽ tập trungvào việc so sánh ảnh màu với nhằm hiểu rõ bản chất của thuật toán để có thể xây dựngmột ứng dụng hiệu quả đến từ độ chính xác của các thuật toán cốt lõi.

Mục tiêu của đồ án này là tìm hiểu và so sánh các thuật toán so sánh ảnh màu để biếtđược cơ chế hoạt động của các thuật toán so sánh, với mong muốn tìm được thuật toáncho ra kết quả chính xác và nhanh nhất.

Kết quả đồ án bao gồm bảng so sánh chi tiết các thuật toán liên quan, và sản phẩmminh họa, cho ra kết quả khi so sánh sảnh.

Trang 4

KẾ HOẠCH THỰC HIỆN

Đề tài được thực hiện trong vòng 16 tuần, với nội dụng và thời gian cụ thể như sau:

vector của một tập dữ liệu ảnh trắng đen

1/11/2023 - 21/11/2023

Xác nhận của GVHD(Ký và ghi rõ họ tên)

Huỳnh Hồ Thị Mộng Trinh

TP Hồ Chí Minh, ngày 20/12/2023(Ký và ghi rõ họ tên)

Nguyễn Hoàng LinhLê Thành Lộc

Trang 6

DANH MỤC HÌNH ẢNH

Fig.1 Ví dụ input của bài toán 11

Fig.2 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng GEN 15

Fig.3 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng GEN 15

Fig.4 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng FRQ 17

Fig.5 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng AVE 19

Fig.6 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng LL vớiindex = 0 20

Fig.7 Bảng so sánh các thuật toán trích xuất vector 22

Fig.8 Các shade khác nhau của màu xanh 23

Fig.9 AvgR = 133, AvgG = 135, AvgB = 132 26

Fig.10 AvgR = 130, AvgG = 130, AvgB = 130 27

Fig.11 Trích xuất màu chủ đạo của ảnh 29

Trang 7

DANH MỤC TỪ TIẾNG ANH

thường được sử dụng mạnh mẽ trong xử lý ảnh và video

sử dụng để ánh xạ một khóa (key) tới giá trị tương ứng(value) Mục tiêu là cung cấp một phương tiện hiệu quả đểtìm kiếm, chèn và xóa dữ liệu trong thời gian tuyến tính ởmức độ trung bình.

Trang 8

Machine learning Máy học

thêm hoặc giảm lượng đen hoặc trắng vào màu gốc

Trang 9

MỞ ĐẦU

Trong thời đại số ngày nay, việc sử dụng Recommend Systems đã trở thành mộtphần không thể thiếu đối với nhiều ứng dụng và dịch vụ trực tuyến Các công nghệ nàykhông chỉ giúp cá nhân hóa trải nghiệm người dùng mà còn mang lại nhiều lợi ích quantrọng trong việc tối ưu hóa tương tác và giữ chân người dùng.

Một trong những khía cạnh quan trọng của hệ thống Recommend System đó làkhả năng nó tạo ra sự kết nối giữa người dùng và nội dung một cách nhanh chóng và hiệuquả Điều này không chỉ giúp người dùng khám phá nội dung mới mà họ có khả năng yêuthích, mà còn tối ưu hóa thời gian và nỗ lực tìm kiếm, dẫn đến một trải nghiệm ngườidùng mượt mà và tốt hơn.

Chẳng hạn, trong lĩnh vực thương mại điện tử, nó có thể được sử dụng để tối ưuhóa quảng cáo, đề xuất các sản phẩm phù hợp dựa trên lịch sử mua sắm và xem sản phẩmhay như các nền tảng xã hội để đề xuất các nội dung chia sẻ phù hợp với người dùng.

Xác định từ thực tế đó, nhóm chúng em đã chọn đề tài Nghiên cứu phương pháp

so sánh ảnh màu để hiểu rõ cơ chế hoạt động của hệ thống qua việc thực hành viết thuật

toán so sánh và so sánh các thuật toán liên quan.Nội dung của đề tài được chia gồm 6 chương:● Chương 1: Giới thiệu đề tài

● Chương 2: So sánh ảnh giống nhau hoàn toàn

● Chương 3: Các thuật toán nhận diện feature vector của một tập ảnh cùng lớp● Chương 4: Các thuật toán so sánh màu

● Chương 5: Tổng kết● Chương 6: Đánh giá

Trang 10

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu

Cuộc cách mạng công nghệ đã mở ra những cơ hội mới trong việc phân tích và xửlý ảnh màu, đặt ra thách thức đối với cộng đồng nghiên cứu và các nhà phát triển Trongbối cảnh này, đồ án của nhóm em đặt ra một quan điểm quan trọng với việc thực hiện sosánh ảnh màu thông qua việc nhận diện các feature vector quan trọng từ các điểm ảnh.

Với sự tiến bộ của máy học và trí tuệ nhân tạo, chúng ta đang chứng kiến sự trỗidậy của các thuật toán nhận diện feature tiên tiến Nghiên cứu của chúng ta tập trung vàoviệc áp dụng những thuật toán này để so sánh ảnh màu một cách hiệu quả, dựa trên khảnăng nhận diện các feature vector trong hình ảnh và so sánh màu ảnh.

Thông qua các thuật toán tìm hiểu được, và một số thuật toán mà nhóm tự sáng tạora, đồ án này sẽ khám phá và so sánh hiệu suất của các thuật toán khác nhau trong việc sosánh ảnh màu.

1.2 Mục tiêu

Input: 2 ảnh 28x28 thể hiện một chữ số 0 - 9 có màu bất kỳ

Fig.1 Ví dụ input của bài toán

Output: Cho biết 2 ảnh đó có cùng thể hiện một số giống nhau không, có cùng màukhông

Trang 11

Quy trình xử lý: chuyển ảnh sang trắng đen để phân loại, so sánh màu.

CHƯƠNG 2: SO SÁNH ẢNH GIỐNG NHAU HOÀN TOÀN2.1 So sánh từng điểm ảnh

Khi nhắc đến so sánh ảnh có cùng kích thước, dù ảnh màu hay trắng đen, mộttrong các phương pháp đơn giản nhất mà ai cũng có thể nghĩ ra được, đó chính là so sánhtừng điểm ảnh (pixel by pixel).

Đối với ảnh trắng đen, ảnh thường được lưu trữ dưới dạng một vector có W*Hphần từ với W và H là kích thước của ảnh (WxH pixels) Mỗi phần tử sẽ có giá trị từ 0đến 255, với 0 cho pixel hiển thị màu đen và 255 cho pixel hiển thị màu trắng, các giá trịở giữa hiển thị greyscale Nếu tất cả các phần tử trong vector của hai ảnh đều có giá trịbằng nhau thì ta có thể kết luận hai ảnh giống nhau (giống 100%).

Tương tự với ảnh màu, chỉ khác ở chỗ thay vì một vector đại diện từ đen đếntrắng, thì ảnh màu có 3 vectors, các phần tử có giá trị từ 0 - 255 nhưng lần lượt từ đen đếnđỏ, đen đến xanh lá, đen đến xanh dương, hay còn được biết đến với định dạng RGB (red,green, blue) Vì thế nên thay vì so sánh từng phần tử của một vector thì ta so sánh cả ba,kết luận ảnh giống khi tất cả phần tử của ba vectors ảnh này đều giống tất cả phần tử củaba vectors tương ứng ảnh kia.

Thuật toán 1: So sánh điểm ảnh

Input: hai vector có kích thước bằng nhau, đại diện cho hai bức ảnh:𝑣 = { , , },

Trang 12

if ( !=𝑡 ): return False.

else: = + 1.𝑖 𝑖3 Return True.

Nhận xét

Phương pháp này thường được sử dụng để

● Tìm điểm khác biệt giữa 2 ảnh gần tương tự nhau

● Tìm điểm bị thay đổi được thực hiện trên một bức ảnh nào đó sau khi nó bị thayđổi

Hạn chế:

● Phương pháp so sánh ảnh này sẽ chỉ cho ra kết quả 2 ảnh giống khi ảnh giốngnhau hoàn toàn, kể cả những điểm khác biệt không thể nhận thấy bằng mắtthường, chính vì thế mà có thể có trường hợp các ảnh bị thay đổi tương đối nhỏvẫn có thể cho ra kết quả ảnh khác Điều này có thể dẫn đến kết luận falsenegatives hoặc positives

● Chỉ dừng lại ở việc so sánh mà không nhận biết được đối tượng được so sánh là gì.● Đối với các ảnh có kích thước quá lớn, sẽ tốn nhiều thời gian để lặp quả cả vector

Khi hash một bức ảnh, các ảnh trùng lặp sẽ luôn cho ra một chuỗi hash như nhau.Hai ảnh dù chỉ khác nhau rất nhỏ vẫn sẽ cho ra hai chuỗi hash khác nhau Chính vì thế

Trang 13

mà thuật toán này thường được dùng để tạo ‘digital fingerprint’ Các bước để hash mộtbức ảnh:

Ngoài MD5, còn có một số cách hash mới, và bảo mật hơn như SHA1, SHA256 vàSHA512

Ví dụ:

Fig.2 Ví dụ cho thuật toán hash ảnh

Fig.2 Sẽ được mã hóa thành một chuỗi như sau, bằng các thuật toán Hash:● MD5: 381e3093eaa21f7c81ae49b6ff6bdaad

● SHA1: d43a84f20b512beaa42b0f2e91d3d8299f4a9e4a● SHA256:

e32bef2846c1acccc44b461eea8545802dc2d6fe6d81177bf22fd876ceaab8fc● SHA512:

2.2.2 Base64

Base64 là một phương pháp mã hóa dữ liệu nhị phân thành một chuỗi ký tựASCII, bao gồm ảnh Trong quá trình này, từng khối 3 byte (24 bit) của dữ liệu nhị phânđược chuyển đổi thành 4 ký tự Base64 tương ứng Điều này giúp tránh các vấn đề liên

Trang 14

quan đến việc truyền dữ liệu nhị phân qua các giao thức hoặc ngữ cảnh yêu cầu dữ liệuvăn bản.

Ví dụ, một phần nhỏ của ảnh sẽ được chuyển thành dạng Base64 như sau:SGVsbG8gd29ybGQ=

Ở đây, mỗi ba ký tự ASCII tương ứng với một khối ảnh 24 bit Điều này giúp giảmkích thước dữ liệu khi truyền và làm cho nó dễ dàng tích hợp vào các văn bản.

Base64 thường được sử dụng trong các trường hợp yêu cầu dữ liệu văn bản, chẳnghạn như truyền dữ liệu qua email hoặc HTTP Nó không tạo ra một "fingerprint” nhưMD5, mà chỉ là một biện pháp chuyển đổi dữ liệu nhị phân sang dạng văn bản để thuậntiện trong truyền tải.

Ta có thể lợi dụng phương thức này để so sánh ảnh.

Trang 15

CHƯƠNG 3: CÁC THUẬT TOÁN NHẬN DIỆN FEATURE VECTOR CỦA MỘTTẬP ẢNH CÙNG LỚP

Dưới đây là các thuật toán chiết xuất feature vector từ một tập các ảnh grayscalecùng lớp Sử dụng bộ dataset MNIST chữ số viết tay Mục đích nhằm tìm ra một featurevector đại diện cho lớp dữ liệu đó, để so sánh, phân loại các ảnh.

3.1 Least Generalization

Thuật toán chiết xuất feature vector bằng Least Generalization (gọi tắt là GEN) được đềxuất trong [1], với mục đích phân loại ảnh mà không dùng đến CNN Thuật toán được lấycảm hứng từ khái niệm Generalization trong Inductive Logic Programming (ILP).

Một generalization là một tổng quát hóa của nhiều biểu thức tương thích (cùng ngôi).

nhất 1 tổng quát hóa (được chứng minh ở [2]) Với tổng quát hóa là (z, y), tập thay thếcủa A là { f(x)|z }, của B là { x|z } Thuật toán tìm tổng quát hóa được đề xuất trong [2]có thể được diễn giải như sau:

trong hai biểu thức

Ngoài ra, bài báo ở [1] còn đề xuất phân lớp các giá trị grayscale của ảnh thành các biểuthức đại diện cho một mảng nhằm tăng hiệu quả của việc khái quát hóa Cụ thể, với x làgiá trị của một điểm ảnh (từ 0 đến 255) Đặt:

Vậy, nhóm có được thuật toán GEN như sau:

Trang 16

Algorithm 2: trích xuất Feature với GEN

Input: Một mảng T 3 chiều đại diện cho tập ảnh, mỗi ảnh là ma trận với số lượng phần tử

bằng WxH.

Output: Một ma trận có kích thước WxH, thể hiện feature vector của tập ảnh.

1 Feat := T[0], ElementOfClass := len(T)

Feat[ ][ ] = (Feat[ ][ ] + (Image[ ][ ]/64 + 1))) / 2𝑖 𝑗 𝑖 𝑗 𝑖 𝑗

Feat[ ][j] = Feat[ ][ ] as integer𝑖 𝑖 𝑗4 Return Feat.

Trang 17

Fig.3 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng GEN

𝑖𝑗 𝑥

Algorithm 3: trích xuất Feature với FRQ

Input: Một mảng T 3 chiều đại diện cho tập ảnh, mỗi ảnh là ma trận với số lượng phần tửbằng WxH.

Output: Một ma trận có kích thước WxH, thể hiện feature vector của tập ảnh.DoubleSort:

1 ElementOfClassA := len(A), ElementOfClassB := len(B)

If A[ ] < A[ ], do:𝑖 𝑗t = A[ ]𝑖A[ ] = A[ ]𝑖 𝑗

A[ ] = t𝑗t = B[ ]𝑖B[ ] = B[ ]𝑖 𝑗B[ ] = t𝑗FRQ:

1 T = Training, ElementOfClass = len(T), Feat = T[0]

Trang 18

2 For from 0 to 28 , do:𝑖

a = np.array([T[ ][ ][ ] for k in range(0, ElementOfClass)])𝑘 𝑖 𝑗unique, counts = np.unique(a, return_counts=True)

unique = unique.tolist()counts = counts.tolist()DoubleSort(counts, unique)pos = 0

Feat[ ][ ] = int(unique[pos])𝑖 𝑗3 Return Feat

Fig.4 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng FRQ

28.28𝑘

Trang 19

với𝑥 là giá trị pixel Đặt = { | 1 ≤ k ≤ n } (1 ≤ , ≤ 28).

𝑖𝑗 𝑥

Algorithm 4: trích xuất Feature với AVE

Input: Một mảng T 3 chiều đại diện cho tập ảnh, mỗi ảnh là ma trận với số lượng phần tử

bằng WxH.

Output: Một ma trận có kích thước WxH, thể hiện feature vector của tập ảnh.

1 Feat := T[0], ElementOfClass := len(T)

Feat[ ][ ] = (Feat[ ][ ] * + Image[ ][ ]) / ( + 1)𝑖 𝑗 𝑖 𝑗 𝑘 𝑖 𝑗 𝑘

Feat[ ][j] = Feat[ ][ ] as integer𝑖 𝑖 𝑗4 Return Feat.

Trang 20

Fig.5 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng AVE

3.4 SAM (sample)

Sau khi sử dụng 3 phương pháp trên thì nhóm nhận thấy, vector feature mang đặc trưngcủa một lớp vẫn mang hình dạng nhận thấy được của lớp (feature vector của tập số 1 vẫnnhìn ra số 1) Nhóm muốn thử nghiệm không train để lấy feature vector mà dụng một ảnhbất kỳ của lớp để đại diện lớp đó làm feature vector Với phương pháp này, thời gian trainđể trích xuất feature vector gần như bằng 0, với độ phức tạp O(1), chỉ cần trả về phần tửđầu tiên (hoặc bất kỳ) trong mảng.

Algorithm 5: trích xuất Feature với LL

Input: Một mảng T 3 chiều đại diện cho tập ảnh, mỗi ảnh là ma trận với số lượng phần tử

Output: Một ma trận có kích thước WxH, thể hiện feature vector của tập ảnh.1 Feat := T[ ]𝑖

2 Return Feat.—

Trang 21

Fig.6 Các feature vector chiết xuất được từ 10 class của bộ MNIST sử dụng LL với index = 0

3.5 Phân loại ảnh sử dụng các thuật toán trích xuất vector

Sau khi lấy được feature vector của các lớp khác nhau, có thể sử dụng các vector đó đểphân loại ảnh vào đúng lớp của nó Giả sử chúng ra có m lớp ảnh, có thể phân loại ảnhbằng thuật toán sau:

Algorithm 6: Phân loại tập ảnh test

Input: một vector 𝑣 đại diện cho một ảnh WxH chưa được phân loại và một tập các

Output: loại ảnh của 𝑣

Dk := 0

Trang 22

3.6 So sánh các thuật toán

Để đo lường được phần nào mức hiệu quả của thuật toán, nhóm thử nghiệm với bộdataset MNIST chữ số viết tay Dataset này gồm hai phần: tập ảnh dùng để train (60.000ảnh) và tập dùng để test (10.000 ảnh) Thí nghiệm gồm 2 bước cho mỗi thuật toán:

thường được dùng để đo lường trong machine learning:Precision := TP / (TP + FP)

Recall := TP / (TP + FN)

Accuracy := (TP + TN) / (TP + TN + FP + FN)

với TP, TN, FP và FN lần lượt nghĩa là True Positive (“phân loại đúng” đúng), TrueNegative (“phân loại sai” đúng), False Positive (“phân loại đúng” sai), and FalseNegative (“phân loại sai” sai).

Thangđiểm

Trang 23

Accuracy 0.98 0.79 0.94 0.94 0.95 0.94 0.97 0.96 0.94 0.94 0.922SAM Precision 0.82 0.74 0.30 0.36 0.21 0.37 0.74 0.49 0.28 0.69 0.486

SAM là một trường hợp đặc biệt, do chỉ sử dụng một ảnh ngẫu nhiên của mỗi tập làmfeature vector nên kết quả sẽ không đồng nhất mà cũng ngẫu nhiên theo, hay nói cáchkhác là tùy vào độ may mắn của việc “chọn” feature vector mà độ hiệu quả của thuật toánsẽ thay đổi có thể tốt hơn hoặc cũng có thể tệ hơn.

Tóm lại, kết quả này, nhóm sẽ sử dụng AVE làm thuật toán phân loại ảnh cho bài toán ởđược đề ra.

Trang 24

CHƯƠNG 4: CÁC THUẬT TOÁN SO SÁNH ẢNH MÀU

Sau khi phân loại được ảnh, nếu hai ảnh thuộc cùng lớp thì ta có thể kết luận hai ảnh thểhiện cùng một vật thể Bước tiếp theo là xét xem vật thể đó có cùng màu sắc hay không.Hai ảnh gọi là giống màu khi màu của nó là giống nhau khi nhìn bằng mắt thường, haynói cách khác, nó không phải giống nhau một cách tuyệt đối nhưng là các shade khácnhau của một màu cơ bản Ví dụ, các màu bên dưới sẽ được cho là giống nhau:

Fig.8 Các shade khác nhau của màu xanh

Nếu hai ảnh màu cùng thể hiện một vật thể, có thể kết luận hai ảnh giống nhau.Nhóm thử nghiệm với hai thuật toán so sánh màu do nhóm đề xuất:

4.1 Tính trung bình các mảng màu

Như đã nói ở trên, một ảnh màu được thể hiện bởi 3 vector đại diện cho 3 thông số R(đỏ), G (xanh lá), B (xanh dương) với các phần tử có giá trị từ 0 đến 255, tạo nên màucủa một điểm ảnh Xuất phát từ đặc điểm này, nhóm muốn thí nghiệm với thuật toánđược phát biểu như sau, với m là sai số trong khoảng chấp nhận được:

Ngày đăng: 15/05/2024, 09:30

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan