Tổng quan mơ hình đề xuất

Một phần của tài liệu Tìm kiếm hình ảnh bằng phương pháp học sâu (Trang 42)

Hình 3.1: Mơ hình tổng quan đề xuất

Mơ hình đề xuất của chúng tơi gồm hai phần chính: phần huấn luyện mơ hình (training model) và phần ứng dụng web (Online).

- Huấn luyện mơ hình: từ cơ sử dữ liệu là tập dữ liệu chứa các hình ảnh,

chúng tơi tiến hành thực hiện các công việc tiền xử lý dữ liệu như chuẩn hóa kích thước (resize) ảnh. Sau đó tiến hành huấn luyện mơ hình pre-trained CNN trên tập dữ liệu ảnh đã tiền xử lý. Tiếp theo trích xuất đặc trưng tất cả các hình ảnh có trong cở sở dữ liệu qua mơ hình đã được huấn luyện. Cuối cùng, chúng tôi dùng bộ thư viện Annoy15 (Approximate Nearest Neighbors Oh Yeah) là một thư viện trong Python để tạo index cho dữ liệu vec-tơ đặc trưng ảnh. Có nhiều độ đo (metric) khoảng cách giữa

43

2 vec-tơ trong Annoy, chúng tôi chọn “metric” là "angular" tương đương với Cosine

Distance.

- Ứng dụng web: Ứng dụng web cho phép người dùng gửi hình ảnh truy vấn đến hệ thống để tìm kiếm hình ảnh. Hệ thống sẽ thực hiện tiền xử lý và trích xuất véc- tơ đặc trưng từ ảnh truy vấn này sau đó so sánh với các véc-tơ đặc trưng ảnh có trong cơ sở dữ liệu hình ảnh, từ đó hệ thống sẽ trả kết quả ra số lượng k hình ảnh gần giống nhất với ảnh đầu vào.

Trong giai đoạn huyến luyện mơ hình sẽ mất nhiều thời gian vì số lượng ảnh tham gia huấn luyện tương đối lớn, gồm 8803 hình ảnh. Do đó, để đảm bảo mơ hình chạy ổn định, chúng tơi tiến hành huấn luyện mơ hình nhiều lần để thử mơ hình với số lượng hình ảnh ban đầu nhỏ. Khi mơ hình được huấn luyện khơng phát sinh lỗi thì mới tiến hành huấn luyện cho tập cơ sở dữ liệu hình ảnh đầy đủ.

3.2. Đặc trưng của mơ hình đề xuất

3.2.1. Trích xuất đặc trưng

Điểm mấu chốt của phương pháp trích xuất đặc trưng là cần tạo được véc-tơ đại diện phản ánh chính xác và đầy đủ đặc trưng của ảnh để áp dụng độ đo đánh giá sự tương đồng tốt. Các véc-tơ đại diện được tạo thông qua mạng CNN đã trình bày ở phần trước khơng phải để phân loại mà được sử dụng như một bộ tạo đặc trưng. Theo đó, véc-tơ đặc trưng ở lớp Kết nối đầy đủ (Full Connection – FC) cuối cùng sẽ được sử dụng như véc-tơ đại diện cho ảnh. Tất cả các ảnh trong tập dữ liệu sẽ được cho qua mạng CNN để tạo các véc-tơ đại diện. Khi một ảnh đầu vào được tìm kiếm, véc-tơ đại diện của nó cũng được tạo theo phương pháp tương tự và được so sánh với tất cả các véc-tơ đại diện của các ảnh trong tập dữ liệu. Các ảnh có độ tương đồng cao nhất sẽ được chọn làm kết quả tìm kiếm.

3.2.2. Mơ hình VGG19

Mạng VGG19 có cấu trúc tương tự như VGG16, nó chỉ khác ở chỗ có thêm ba lớp tích chập (Conv3) ở ba tầng tích chập cuối (tạo thành bốn lớp tích chập chồng lên nhau).

44

Hình 3.2: Kiến trúc mơ hình VGG1916

Xây dựng và huấn luyện mơ hình CNN bằng phương pháp học chuyển giao (Transfer learning) với VGG19

Với mơ hình VGG19 chúng tơi chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đó thêm các tầng (layer) Fully Connected vào output của ConvNet.

Hình 3.3: Cấu trúc mơ hình CNN mới với VGG19

Vì các layer trong ConvNet của VGG19 đã được huấn luyện (train) trước đó rồi nên chúng tôi sẽ không huấn luyện lại trên các layer này nữa, chúng ta sẽ đóng băng các layer này lại. Sau khi đã có mơ hình (model) mới, chúng tơi tiến hành biên dịch và huấn luyện mơ hình.

45

3.2.3. Mơ hình InceptionResNetV2

Mơ hình InceptionResnetV2 có kiến trúc mạng học sâu 64 lớp là sự kết hợp giữa cấu trúc Inception và kết nối Residual giúp giảm thời gian huấn luyện dữ liệu, dễ tối ưu hóa và cho độ chính xác cao trong q trình phân loại dữ liệu ảnh.

Hình 3.4: Kiến trúc mơ hình InceptionResNetV217

Xây dựng và huấn luyện mơ hình CNN bằng phương pháp học chuyển giao (Transfer learning) với InceptionResNetV2

Với mơ hình InceptionResNetV2 chúng tôi chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đó thêm các Fully Connected layer vào output của ConvNet.

Hình 3.5: Cấu trúc mơ hình CNN mới với InceptionResNetV2

46

Vì các layer trong ConvNet của InceptionResNetV2 đã được train trước đó rồi nên chúng tơi sẽ không train lại trên các layer này nữa, chúng tơi sẽ đóng băng các layer này lại. Sau khi đã có model mới, chúng tơi tiến hành biên dịch và huấn luyện model.

3.2.4. Mô hình DenseNet

DenseNet (Dense connected convolutional network) là một trong những netwok mới nhất cho visual object recognition. DenseNet cũng gần giống ResNet nhưng có một vài điểm khác biệt. DenseNet có cấu trúc gồm các dense block và các transition layers. Với CNN truyền thống nếu có L layer thì sẽ có L connection, cịn trong DenseNet sẽ có L(L+1)/2 connection.

Một số ưu điểm của DenseNet:

- Accuracy: Densenet training tham số ít hơn 1 nửa so với Resnet nhưng có accuracy tương đương trên ImageNet classification dataset.

- Overfitting: DenseNet chống overfitting rất hiệu quả. - Giảm được vashing gradient.

- Sử dụng lại feature hiệu quả hơn.

Hình 3.6: Kiến trúc mơ hình DenseNet18

Xây dựng và huấn luyện mơ hình CNN bằng phương pháp học chuyển giao (Transfer learning) với DenseNet121

Với mơ hình DenseNet121 chúng tơi chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đó thêm các Fully Connected layer vào output của ConvNet.

47

Hình 3.7: Cấu trúc mơ hình CNN mới với DenseNet121

Vì các layer trong ConvNet của DenseNet121 đã được train trước đó rồi nên chúng tơi sẽ không train lại trên các layer này nữa, chúng tơi sẽ đóng băng các layer này lại. Sau khi đã có model mới, ta tiến hành biên dịch và huấn luyện model.

3.2.5. Mơ hình InceptionV3

InceptionV3 là kế thừa của InceptionV1 bao gồm 24 triệu tham số. Tồn bộ các layer tích chập của InceptionV3 được theo sau bởi một layer batch normalization và một ReLU activation. Batch normalization là kỹ thuật chuẩn hóa đầu vào theo từng minibatch tại mỗi layer theo phân phối chuẩn hóa, giúp cho q trình huấn luyện thuật toán nhanh hơn.

InceptionV3 giải quyết được vấn đề thắt cổ chai (representational bottlenecks). Tức là kích thước của các layers không bị giảm một cách đột ngột. Đồng thời InceptionV3 có một cách tính tốn hiệu quả hơn nhờ sử dụng phương pháp nhân tố (factorisation methods).

Inception module là một mạng CNN giúp training wider (thay vì thêm nhiều layer hơn vì rất dễ xảy ra overfitting và tăng tham số) so với mạng CNN bình thường. Mỗi layer trong CNN truyền thống sẽ xuất các thơng tin khác nhau.

48

Hình 3.8: Kiến trúc mơ hình InceptionV319

Xây dựng và huấn luyện mơ hình CNN bằng phương pháp học chuyển giao (Transfer learning) với InceptionV3

Với mơ hình InceptionV3 chúng tơi chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đó thêm các Fully Connected layer vào output của ConvNet.

Hình 3.9: Cấu trúc mơ hình CNN mới với InceptionV3

49

Vì các layer trong ConvNet của InceptionV3 đã được train trước đó rồi nên chúng tôi sẽ không train lại trên các layer này nữa, chúng tơi sẽ đóng băng các layer này lại. Sau khi đã có mơ hình mới, chúng tơi tiến hành biên dịch và huấn luyện model.

3.2.6. Mơ hình Xception

Xception của Google được giới thiệu lần đầu trong cuộc thi ILSVRC 2015, viết tắt của Extreme version of Inception. Xception có thể rút gọn lại khoảng 22 triệu tham số (ít tham số nhất so với các CNN khác như VGG19, InceptionResNetV2, ResNet50, InceptionV3) nhưng vẫn giữ được độ chính xác ổn, đó là nhờ sử dụng một cơ chế gọi là Depthwise Separable Convolutions.

Depthwise Separable Convolutions chia CNN cơ bản ra làm hai phần: Deepwise Convolution và Pointwise Convolution.

Hình 3.10: Kiến trúc Depthwise Separable Convolutions trong Xception20

50

Hình 3.11: Kiến trúc Xception (Entry Flow > Middle Flow > Exit Flow)21

Xây dựng và huấn luyện mơ hình CNN bằng phương pháp học chuyển giao (Transfer learning) với Xception

Với mơ hình Xception chúng tơi chỉ giữ lại phần ConvNet trong CNN và bỏ đi FCs. Sau đó thêm các Fully Connected layer vào output của ConvNet.

Hình 3.12: Cấu trúc mơ hình CNN mới với Xception

51

Vì các layer trong ConvNet của Xception đã được train trước đó rồi nên chúng tơi sẽ khơng train lại trên các layer này nữa, chúng tơi sẽ đóng băng các layer này lại. Sau khi đã có model mới, ta tiến hành biên dịch và huấn luyện model.

3.2.7. Tìm kiếm bằng hình ảnh

Phương pháp tìm kiếm theo hình ảnh áp dụng trong luận văn này được bao gồm hai giai đoạn: trích xuất vec-tơ đặc trưng và so sánh độ tương đồng với các hình ảnh trong tập cơ sở dữ liệu để tìm ra các ảnh có độ tương đồng cao nhất. Tất cả các hình ảnh trong tập dữ liệu ảnh sẽ được cho qua mạng CNN để tạo ra các véc-tơ đại diện Xi (chuyển đổi hình ảnh về một đối tượng đại diện có kích thước và số chiều nhỏ hơn). Sau đó, véc-tơ đại diện X’ của ảnh đầu vào sẽ được so sánh với từng véc-tơ Xi đã thu được ở trên bằng một phép đo độ tương đồng và các hình ảnh giống ảnh đầu vào nhất sẽ được trả về làm kết quả tìm kiếm theo phương pháp “láng giềng gần nhất” (nearest neighbors).

Hình 3.13: Quy trình thực hiện tìm kiếm bằng hình ảnh

Tìm kiếm láng giềng gần nhất

Mục tiêu của thuật toán láng giềng gần nhất là tìm một điểm trên cây mà gần nhất với điểm được cho. Việc tìm kiếm sẽ hiệu quả khi sử dụng các thuộc tính của cây để giới hạn nhanh chóng trong khơng gian tìm kiếm. Q trình tìm kiếm láng giềng gần nhất trên cây k chiều được thực hiện như sau:

52

- Bắt đầu từ node gốc, thuật toán di chuyển đệ qui xuống các node dưới của cây. Việc di chuyển về bên trái hay bên phải của cây sẽ phụ thuộc vào giá trị của điểm được cho lớn hơn hay nhỏ hơn node hiện tại trong chiều phân tách.

- Khi thuật toán đã đi đến node lá thì nó sẽ xem node đó như một kết quả hiện tại (current best).

- Thuật tốn thốt khỏi vịng lặp và thực hiện các bước sau trên mỗi node o Nếu node hiện tại gần hơn kết quả hiện tại thì node này sẽ trở thành

kết quả hiện tại.

o Thuật toán kiểm tra việc tồn tại của bất kỳ điểm nào nằm ở phía cịn lại của mặt phẳng phân tách gần với điểm được cho hơn kết quả hiện tại hay không.

- Khi kết thúc thuật tốn với node gốc thì việc tìm kiếm cũng hồn thành.

3.2.8. So sánh độ tương đồng

Để so sánh độ tương đồng hình ảnh từ các vec-tơ đặc trưng thu được, có thể sử dụng các phép đo khoảng cách. Một số phép đo thông dụng bao gồm L1-norm (khoảng cách Manhattan), L2-norm (khoảng cách Euclid), hay độ tương đồng Angular (Angular similarity – tương đương phép đo khoảng cách Cosine). Cần chú ý rằng, khoảng cách và độ tương đồng tỉ lệ nghịch với nhau, khoảng cách càng nhỏ thì độ tương đồng càng lớn và ngược lại.

Với 2 vector x, y độ dài m, khoảng cách Manhattan được tính như sau:

𝑙1 = ∑𝑚 |𝑥𝑖− 𝑦𝑖|

𝑖=1 (3.1)

Công thức cho khoảng cách:

𝑙2 = √∑𝑚 (𝑥𝑖 − 𝑦𝑖)2

𝑖=1 (3.2)

Công thức cho khoảng cách Cosine:

similarity = cos(𝜃) = 𝐴 .𝐵

‖𝐴‖ ‖𝐵‖ = ∑𝑛𝑖=1𝐴𝑖𝐵𝑖 √∑𝑛𝑖=1𝐴𝑖2√∑𝑛𝑖=1𝐵𝑖2

53

Hình 3.14: Cosine Distance/Similarity

Độ đo Angular Distance (khoảng cách góc) được sử dụng để tính độ tương đồng có giá trị từ 0 đến 1. Công thức chuyển đổi Cosine Distance thành Angular Distance

𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 =2.cos−1𝑐𝑜𝑠𝑖𝑛𝑒 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦

𝜋 (3.4)

𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 = 1 − 𝑎𝑛𝑔𝑢𝑙𝑎𝑟 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 (3.5)

Một phương pháp khác cũng được sử dụng để tính tốn độ tương đồng hình ảnh đó là sự dụng mạng bộ ba (triplet networks) [15, 16]. Phương pháp này sử dụng các đầu vào gồm 3 thành phần là ảnh đầu vào (anchor), ảnh dương (positive) giống ảnh đầu vào, và ảnh âm (negative) khác với ảnh đầu vào. Các mạng loại này có chức năng khá đặc biệt là dùng để tính tốn độ tương đồng hình ảnh chứ khơng phải gán nhãn phân loại ảnh như các mạng CNN khác. Bộ ba ảnh đầu vào được đưa vào ba mạng riêng biệt (có trọng số chia sẻ), và sẽ được tạo ra các đặc trưng của từng ảnh ở lớp cuối của mạng. Sau đó, các chuỗi này sẽ được so sánh độ tương đồng dựa trên các thuật toán đã được nêu ở trên. Mạng có nhiệm vụ sinh ra các đặc trưng sao cho khoảng cách giữa ảnh đầu vào tới ảnh dương phải lớn hơn khoảng cách tới ảnh âm. Ưu điểm của phương pháp này là tạo ra được các đặc trưng có thể thể hiện nhiều đặc tính của ảnh hơn, nhưng quá trình chuẩn bị dữ liệu tốn nhiều công sức hơn và thời gian huấn luyện lâu hơn.

Trong nghiên cứu này, chúng tôi sử dụng phương pháp thứ nhất do nó có ưu điểm về thời gian và phù hợp với hạn chế về mặt chuẩn bị dữ liệu huấn luyện.

54

3.2.9. Phương pháp đánh giá kết quả

Trong quá trình xây dựng một mơ hình học sâu, một phần khơng thể thiếu để biết được chất lượng của mơ hình như thế nào đó chính là đánh giá mơ hình. Đánh giá mơ hình giúp chúng ta lựa chọn được mơ hình phù hợp nhất đối với bài toán của mình. Có nhiều phương pháp đánh giá các mơ hình học sâu, các phương pháp thường được sử dụng như là Độ chính xác (Accuracy score), Ma trận kết quả (Confusion matrix), Độ đo F1 (Precision, Recall và F1 score), …

Accuracy (Đợ chính xác): độ chính xác càng cao thì mơ hình càng chuẩn xác

được tính theo cơng thức như sau:

𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃+𝑇𝑁

𝑇𝑃+𝑇𝑁+𝐹𝑃+𝐹𝑁 (3.6)

Các chỉ số TP, FP, TN, FN lần lượt có ý nghĩa là:

- TP (True Positive): Tổng số trường hợp dự báo khớp Positive. - TN (True Negative): Tổng số trường hợp dự báo khớp Negative.

- FP (False Positive): Tổng số trường hợp dự báo các quan sát thuộc nhãn Negative thành Positive.

- FN (False Negative): Tổng số trường hợp dự báo các quan sát thuộc nhãn Positive thành Negative.

Precision (Tỷ lệ chính xác): đo lường mức độ chính xác là dự đốn của mơ hình tức là tỷ lệ phần trăm dự đốn của mơ hình là chính xác. Cơng thức của Precision như sau:

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑃

𝑡𝑜𝑡𝑎𝑙 𝑝𝑟𝑒𝑑𝑖𝑐𝑡𝑒𝑑 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 = 𝑇𝑃

𝑇𝑃+𝐹𝑃=𝑆ố 𝑑ự đ𝑜á𝑛 𝑐ℎí𝑛ℎ 𝑥á𝑐

𝑇ổ𝑛𝑔 𝑠ố 𝑙ầ𝑛 𝑑ự đ𝑜á𝑛 (3.7) Precision trả lời cho câu hỏi trong các trường hợp được dự báo là positive thì có bao nhiêu trường hợp là đúng và Precision càng cao thì mơ hình càng tốt trong việc phân loại positive.

Cũng có ý nghĩa gần tương tự như Precision, có cùng tử số nhưng có một chút khác biệt về mẫu số trong cơng thức tính tốn, và cũng là một chỉ số giúp đo lường hiệu suất dự báo trên nhóm positive, đó là Recall.

Recall (Tỷ lệ tái hiện): Recall đo lường tỷ lệ dự báo chính xác các trường hợp

55

𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃

𝑡𝑜𝑡𝑎𝑙 𝑎𝑐𝑡𝑢𝑎𝑙 𝑝𝑜𝑠𝑖𝑡𝑖𝑣𝑒 = 𝑇𝑃

𝑇𝑃+𝐹𝑁 = 𝑆ố 𝑙ầ𝑛 𝑑ự đ𝑜á𝑛 𝑐ℎí𝑛ℎ 𝑥á𝑐

𝑆ố 𝑙ầ𝑛 𝑛ℎậ𝑛 𝑑ạ𝑛𝑔 đú𝑛𝑔 𝑐ó 𝑡ℎể 𝑐ó(3.8)

F1 Score: là trung bình điều hịa (harmonic mean) giữa precision và recall. Do

đó F1 Score đại diện hơn trong việc đánh gía độ chính xác trên đồng thời precision và recall. Cơng thức của F1 Score như sau:

𝐹1 𝑆𝑐𝑜𝑟𝑒 = 2 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 .𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+ 𝑅𝑒𝑐𝑎𝑙𝑙 (3.9)

F1 Score có xu hướng lấy giá trị gần với giá trị nào nhỏ hơn giữa 2 giá trị Precision và Recall và đồng thời nó có giá trị lớn nếu cả 2 giá trị Precision và Recall đều lớn. Chính vì thế F1 Score thể hiện được một cách khách quan hơn về hiệu suất (performance) của một mơ hình học sâu.

Confusion matrix: Cách tính sử dụng accuracy như ở trên chỉ cho biết được

bao nhiêu phần trăm lượng dữ liệu được phân loại đúng mà không chỉ ra được cụ thể mỗi loại được phân loại như thế nào, lớp nào được phân loại đúng nhiều nhất, và dữ liệu thuộc lớp nào thường bị phân loại nhầm vào lớp khác. Để có thể đánh giá được các giá trị này, chúng ta sử dụng một ma trận được gọi là confusion matrix.

Confusion matrix thể hiện có bao nhiêu điểm dữ liệu thực sự thuộc (actual) vào một lớp (class), và được dự đoán (predict) là rơi vào một lớp. Nó là một ma trận vng với kích thước mỗi chiều bằng số lượng lớp dữ liệu. Giá trị tại hàng thứ i, cột

Một phần của tài liệu Tìm kiếm hình ảnh bằng phương pháp học sâu (Trang 42)

Tải bản đầy đủ (PDF)

(108 trang)