Đang tải... (xem toàn văn)
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 2LỜ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 4KẾ 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 6DANH 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 7DANH 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 8Machine 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 9MỞ ĐẦ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 10CHƯƠ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 11Quy 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 12if ( !=𝑡 ): 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 13mà 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 14quan đế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 15CHƯƠ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 16Algorithm 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 17Fig.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 182 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 19vớ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 20Fig.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 21Fig.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 223.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 23Accuracy 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 24CHƯƠ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: