chương 1 đã cho ta thấy mục tiêu phát triển và cái nhìn tổng quan về hệ thống thương mại điện tử về thời trang. Từ cái nhìn tổng quan đó, ta đã khái quát được các chức năng và xác định các phương pháp xây dựng phần mềm, kiến trúc phần mềm và các công nghệ triển khai cho hệ thống. Ngoài ra, để khách hàng có trải nghiệm tốt hơn trong việc tìm kiếm các sản phẩm mong muốn của bản thân, em tích hợp hệ thống tìm kiếm bằng hình ảnh vào hệ thống. Chương tiếp theo chúng ta sẽ tìm hiểu về cách hoạt động cũng như tích hợp hệ thống tìm kiếm hình ảnh vào trong hệ thống thương mại điện tử về thời trang.
Công nghệ tìm kiếm bằng hình ảnh Các hệ thống thương mại điện tử truyền thống thường chỉ cung cấp chức năng tìm kiếm theo từ khoá, dựa trên các mô tả bằng văn bản về sản phẩm cần tìm. Phương pháp tìm kiếm này trong nhiều trường hợp gây ra sự khó khăn và đạt hiệu quả không cao, do nhiều loại sản phẩm, hàng hoá khó có thể mô tả hết các đặc điểm bằng cách sử dụng văn bản. Khi đó, tìm kiếm bằng hình ảnh là một chức năng hữu hiệu, giúp cho người dùng có thể dễ dàng hơn trong việc mô tả đặc điểm của sản phẩm muốn tìm. Nội dung chương 2 trình bày tổng quan về hệ thống tìm kiếm bằng hình ảnh.
Bài toán tìm kiếm hình ảnh Bài toán tìm kiếm bằng hình ảnh là một lĩnh vực quan trọng trong thị giác máy tính và trí tuệ nhân tạo. Mục tiêu của nó là phát hiện và nhận diện các đối tượng, người, hoặc thông tin khác từ hình ảnh. Với đầu vào là một hình ảnh mẫu, nó sẽ sử dụng các thuật toán để tìm kiếm và trả về một hoặc nhiều ảnh tương tự như hình ảnh mẫu. Một số phương pháp phổ biến được sử dụng để giải quyết bài toán Phương pháp dựa trên đặc trưng (Feature-based methods): Tìm ra các đặc trưng địa phương từ hình ảnh, đặc biệt là những đặc trưng không thay đổi theo tỉ lệ.
Phương pháp Dựa trên Mô hình (Model-based methods): Sử dụng biểu đồ hướng gradient của các điểm ảnh để mô tả hình dạng và biên của đối tượng(HOG) hoặc sử dụng mạng nơ-ron sâu để học đặc trưng từ dữ liệu huấn luyện và thực hiện nhận diện đối tượng(DNN) Phương pháp Dựa trên Màu sắc (Color-based methods): Sử dụng biểu đồ histogram của các kênh màu để mô tả và so sánh các đặc trưng màu sắc. Phương pháp Dựa trên Phân loại (Classification-based methods): Sử dụng các mô hình học máy để phân loại hình ảnh thành các lớp đối tượng khác nhau. Phương pháp Dựa trên Đối sánh (Matching-based methods): So sánh các điểm đặc trưng trên hình ảnh đầu vào với các điểm đặc trưng đã được lưu trữ từ các hình ảnh mẫu. 17 Trong đồ án này, hệ thống tìm kiếm bằng hình ảnh em xây dựng sử dụng phương pháp phân loại ảnh kết hợp phương pháp dựa trên đặc trưng.
Lý do bởi sử dụng phương pháp phân loại ảnh trước khi tính toán độ tương đồng có thể làm tăng độ chính xác của việc tìm kiếm và giảm bớt khối lượng tính toán cho việc tính toán độ tương đồng.1: Mô hình xử lý hệ thống tìm kiếm bằng hình ảnh 2. Ứng dụng học máy trong tìm kiếm hình ảnh 19 2. Nguyên lý Phương pháp tìm kiếm theo ảnh trong đồ án này được bao gồm hai giai đoạn: phân loại ảnh và so sánh độ tương đồng với các ảnh trong cùng loại để tìm ra các ảnh có độ tương đồng cao nhất. Với một hình ảnh đầu mẫu được cung cấp, hình ảnh đó sẽ được phân loại thành loại sản phẩm nào.
Sau đó, các hình ảnh sản phẩm khác cùng loại giống nó nhất sẽ được tính toán và trả về kết quả tìm kiếm. Đầu tiên, để giải quyết bài toán phân loại ảnh, em sử dụng thuật toán CNN vì CNN là một trong những mô hình Deep Learning cực kỳ tiên tiến, chúng cho phép xây dựng những hệ thống có độ chính xác cao và thông minh. Đầu tiên, để giải quyết bài toán phân loại ảnh có một số thuật toán sau: Logistic Regression và Support Vector Machines (SVM) Ưu điểm: Dễ hiểu và triển khai. Hiệu quả với dữ liệu có kích thước nhỏ hoặc khi số lượng đặc trưng là ít.
Nhược điểm: Khả năng học đặc trưng tự động thấp, phụ thuộc nhiều vào việc thiết lập đặc trưng ban đầu. Khó xử lý dữ liệu hình ảnh với cấu trúc phức tạp. Decision Trees và Random Forests Ưu điểm: Tự động học các quy tắc quyết định từ dữ liệu. Khả năng xử lý dữ liệu có nhiễu và không đồng nhất.
Nhược điểm: Dễ bị overfitting nếu có quá nhiều cây hoặc quá sâu. Khả năng hiểu đặc trưng không mạnh mẽ như CNN trên dữ liệu hình ảnh lớn. CNN Ưu điểm: Hiệu suất cao trên nhiều bài toán phân loại hình ảnh. Tự động học các đặc trưng cấp thấp và cấp cao từ dữ liệu.
Linh hoạt với cấu trúc hình ảnh và dữ liệu lớn. Nhược điểm: Yêu cầu nhiều tài nguyên để huấn luyện. Dễ bị overfitting nếu không được đúng cấu hình. 20 CNN thường là lựa chọn hàng đầu cho bài toán phân loại hình ảnh nhờ khả năng tự động hóa quá trình học đặc trưng và linh hoạt trong việc xử lý dữ liệu hình ảnh.
Thuật toán CNN Về kỹ thuật, mô hình CNN để huấn luyện và kiểm tra, mỗi hình ảnh đầu vào sẽ chuyển nó qua 1 loạt các lớp tích chập với các bộ lọc (Kernals), tổng hợp lại các lớp được kết nối đầy đủ (Full Connected) và áp dụng hàm Softmax để phân loại đối tượng có giá trị xác suất giữa 0 và 1. Hình dưới đây là toàn bộ luồng CNN để xử lý hình ảnh đầu vào và phân loại các đối tượng dựa trên giá trị.1: Tổng quan mạng CNN Mạng nơ ron tích chập (CNN) cho phân loại ảnh nhận đầu vào là một ảnh với 3 chiều biểu diễn là dài, rộng, sâu (chiều dài, rộng của ảnh và chiều sâu thể hiện các màu sắc ảnh). Mỗi lớp của mạng CNN sẽ chuyển đổi 1 khối 3D (ma trận 3 chiều) thành 1 khối 3D khác. Có 3 loại lớp chính để xây dựng nên mạng CNN, đó là lớp tích chập (Convolution), lớp hợp nhất (Pooling), và lớp kết nối đầy đủ (Fully-Connected).
Lớp tích chập Lớp tích chập (CONV) là khối quan trọng nhất trong mạng neuron tích chập, nó thực hiện hầu hết khối lượng tính toán trong mạng. Nó dựa trên phép tích chập trên ma trận, phép toán này giúp giảm số lượng tính toán đi đáng kể so với các lớp kết nối đầy đủ. Với ma trận A có kích thước h x w x d, phép tính tích chập của A với một bộ lọc (filter) kích cỡ fh x fw x d sẽ tạo ra một đầu ra có kích thước (h – fh + 1) x (w – fw +1) x 1. Để thực hiện được một phép tính tích chập hoàn chỉnh trên một lớp CONV, ngoài tham số là số bộ lọc K, kích thước bộ lọc F, thì còn các tham số khác là kích thước bước nhảy mỗi lần dịch bộ lọc S, và kích thước lề P.
21 Tích chập là lớp đầu tiên để trích xuất các tính năng từ hình ảnh đầu vào. Tích chập duy trì mối quan hệ giữa các pixel bằng cách tìm hiểu các tính năng hình ảnh bằng cách sử dụng các ô vương nhỏ của dữ liệu đầu vào. Nó là 1 phép toán có 2 đầu vào như ma trận hình ảnh và 1 bộ lọc hoặc hạt nhân.2: Lớp tích chập Xem xét 1 ma trận 5 x 5 có giá trị pixel là 0 và 1. Ma trận bộ lọc 3 x 3 như hình bên dưới.3: Tích chập Sau đó, lớp tích chập của ma trận hình ảnh 5 x 5 nhân với ma trận bộ lọc 3 x 3 gọi là 'Feature Map' ta được kết quả: Hình 2.4: Feature map Sự kết hợp của 1 hình ảnh với các bộ lọc khác nhau có thể thực hiện các hoạt động như phát hiện cạnh, làm mờ và làm sắc nét bằng cách áp dụng các bộ lọc.
22 Lớp gộp - Pooling Layer Các lớp hợp nhất (POOL) thường được sắp xếp xen kẽ với các lớp CONV một cách đều đặn. Lớp này có chức năng làm giảm nhanh chóng kích thước khối dữ liệu nhằm giảm số lượng hệ số những như khối lượng tính toán của toàn mạng, qua đó tránh được vấn đề quá khớp. Phép hợp nhất đơn giản nhất thường được sử dụng đó là lấy giá trị lớn nhất của một vùng để đại diện cho vùng đó. Một hàm MAX trên bộ lọc kích thước 2x2 và kích thước bước nhảy 2 sẽ làm giảm đi 75% kích thước của khối dữ liệu đầu vào.
Ngoài phép lấy giá trị lớn nhất thì các phép hợp nhất khác cũng được sử dụng như lấy giá trị trung bình hoặc hàm chuẩn hoá L2. Tuy nhiên, phép hợp nhất lấy giá trị lớn nhất được sử dụng phổ biến nhất hiện nay do tính hiệu quả của nó trong thực tế. Lớp pooling sẽ giảm bớt số lượng tham số khi hình ảnh quá lớn. Không gian pooling còn được gọi là lấy mẫu con hoặc lấy mẫu xuống làm giảm kích thước của mỗi map nhưng vẫn giữ lại thông tin quan trọng.
Các pooling có thể có nhiều loại khác nhau: Max Pooling Average Pooling Sum Pooling Max pooling lấy phần tử lớn nhất từ ma trận đối tượng, hoặc lấy tổng trung bình. Tổng tất cả các phần tử trong map gọi là sum pooling Hình 2.5: Lớp gộp Lớp kết nối đầy đủ 23 Lớp kết nối đầy đủ (FC) là lớp cuối cùng trong mạng nơ ron tích chập, có đầy đủ các kết nối tới các nơ ron liền trước như trong mạng nơ ron thông thường. Hàm kích hoạt của chúng có thể được tính bằng phép nhân ma trận cùng với một tham số là độ lệch (bias). Dạng thông dụng nhất của một mạng CNN bao gồm một vài lớp CONV, tiếp sau đó là lớp POOL, và tiếp tục lặp lại chuỗi này cho tới khi ảnh được giảm tới kích thước đủ nhỏ.
Khi đó lớp cuối cùng sẽ được duỗi thẳng thành một véc tơ dọc và thêm vào các lớp FC như mạng nơ ron truyền thống. Nhìn chung, mạng CNN tổng quát có dạng như sau: INPUT -> [CONV*N->POOL]*M -> FC*K -> FC Trong đó N, M, K lần lượt là số lượng các lớp CONV, POOL, và FC.6: Kiến trúc mạng CNN Huấn luyện dữ liệu sử dụng thuật toán CNN Chuẩn bị dữ liệu Tập dữ liệu bao gồm 5403 ảnh và 20 lớp.