1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án image classification with transformers

51 24 2

Đ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

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN ĐỀ TÀI: Image Classification with Transformers Giáo viên hướng dẫn: Thầy Huỳnh Tuấn Anh Sinh viên thực hiện: Phạm Nhật Minh – 20521003 Nguyễn Đức Tuấn - 20522117 TP Hồ Chí Minh, tháng năm 2023 LỜI CẢM ƠN Chúng em xin chân thành cảm ơn đến thầy Huỳnh Tuấn Anh, giảng viên khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP.HCM, việc hỗ trợ đồng hành chúng em trình thực đồ án Chúng em viết dòng để bày tỏ lịng cảm ơn sâu sắc tới thầy giúp đỡ mang lại cho chúng em Xin gửi lời cảm ơn đến tác giả báo cáo nghiên cứu khoa học nước mà nhóm tham khảo q trình thực đề tài Trong thời gian thực đề tài, nhóm cố gắng vận dụng kiến thức tảng học, kết hợp học hỏi tìm hiểu kiến thức, cơng nghệ khác để hồn thành báo cáo đồ án tốt Tuy nhiên q trình hồn thiện, kiến thức kinh nghiệm cịn nhiều hạn chế nên khơng tránh khỏi thiếu sót Chính vậy, nhóm mong nhận góp ý từ q thầy để hồn thiện thêm kiến thức mà nhóm học tập, làm hành trang quý báu cho công việc sau Xin trân trọng cảm ơn! MỤC LỤC Tổng quan Image Classification phương pháp 1.1 Mục tiêu 1.2 Tổng quan toán Image Classification 1.2.1 Định nghĩa 1.2.2 Bài toán : 1.3 Các phương pháp truyền thống toán Image Classification 10 1.4 Các phương pháp đại toán Image Classification 11 1.4.1 Tổng quan CNN 11 1.4.2 Các biến thể CNN 14 1.4.3 Hạn chế CNN 16 Giới thiệu mơ hình Transformer sử dụng toán image classification 17 2.1 Mơ hình Transformer 17 2.2 Kiến trúc 19 Vision Transformer (ViT) 23 3.1 Kiến trúc tổng thể 26 3.2 Sự khác mạng nơ-ron tích chập (Convolutional Neural Network – CNN) Vision Transformer (ViT) 30 3.2.1 So sánh kết 31 Tiến hành huấn luyện mơ hình đánh giá hiệu suất chúng liệu khác 32 4.1 Tiền xử lý liệu 32 4.1.1 Dữ liệu sử dụng 32 4.1.2 Đặt siêu tham số (hyperparameters) 33 4.2 Tăng cường liệu 34 4.3 MLP 34 4.4 Trực quan hóa 35 4.5 Lớp encoder 37 4.6 Bắt đầu xây dựng ViT 37 4.7 Bước cuối 38 Ứng dụng xử lý ảnh 41 So sánh hiệu suất với phương pháp truyền thống đưa nhận xét 42 6.1 Tiềm hướng phát triển việc kết hợp mơ hình Transformer với phương pháp khác xử lý hình ảnh 42 6.2 Về phương pháp sử dụng riêng Transformer: 43 6.3 Các phương pháp kết hợp Convolution: 45 Kết luận 46 7.1 Thách thức 46 7.2 Hướng phát triển 47 TÀI LIỆU THAM KHẢO 48 Danh mục hình ảnh Hình 1-1: Quá trình thực image classification Hình 1-2: Image recognition image recognition Hình 1-3: Kiến trúc CNN 12 Hình 1-4: Kernel feature map 12 Hình 1-5: Convolution Sharpen 13 Hình 1-6: Convolution Edge Enhance 13 Hình 1-7: Convolution Edge Detect 13 Hình 1-8: Các biến thể CNN 14 Hình 2-1: Tổng quan mơ hình transformer 18 Hình 2-2: Mơ hình chi tiết 18 Hình 2-3: Cách tính positional encoding 19 Hình 2-4: Mơ tả self-attention 20 Hình 2-5: Self Attention Layer 20 Hình 2-6: Multi Head Attention 21 Hình 2-7: Encoder Decoder 23 Hình 3-1: Timeline mốc thời gian mơ hình Transformer (Các mơ hình liên quan tới ViT đánh dấu đỏ) 24 Hình 3-2: Kiến trúc ViT 26 Hình 3-3: Chia thành patchs 27 Hình 3-4: Quá trình làm phẳng input đầu vào 27 Hình 3-5: Hình ảnh khơng áp dụng posional embedding 28 Hình 3-6: Quá trình huấn luyện ViT 29 Hình 4-1: Tập liệu ví dụ CF100 33 Hình 4-2: Hình ảnh đầu vào với kích thước 72x72 36 Hình 6-1: Sự khác biệt phương pháp sử dụng transformer kết hợp convolution 45 TÓM TẮT ĐỒ ÁN Đồ án tập trung vào tốn Image Classification áp dụng mơ hình Transformer việc giải toán Chương cung cấp tổng quan Image Classification phương pháp truyền thống đại lĩnh vực Nó giới thiệu khái niệm định nghĩa liên quan đến toán Image Classification Chương giới thiệu mơ hình Transformer mơ tả kiến trúc Mơ hình Transformer đạt thành công lĩnh vực xử lý ngôn ngữ tự nhiên áp dụng toán liên quan đến xử lý hình ảnh, bao gồm Image Classification Chương tập trung vào Vision Transformer (ViT), biến thể mơ hình Transformer sử dụng tốn Image Classification Nó trình bày kiến trúc tổng thể ViT phân tích so sánh kết mơ hình Image Classification sử dụng Convolutional Neural Network (CNN) ViT Chương mô tả q trình huấn luyện mơ hình đánh giá hiệu suất chúng liệu khác Nó trình bày q trình tiền xử lý liệu sử dụng đồ án Chương đề cập đến ứng dụng đồ án việc xử lý ảnh Chương so sánh hiệu suất mô hình Image Classification with Transformer với phương pháp truyền thống đưa nhận xét Nó thảo luận tiềm hướng phát triển việc kết hợp mơ hình Transformer với phương pháp khác xử lý hình ảnh Chương đưa kết luận với việc nêu rõ thách thức hướng phát triển lĩnh vực Tổng quan Image Classification phương pháp 1.1 Mục tiêu Mục tiêu nhóm đặt q trình thực đề tài tìm hiểu chuyên sâu transformer ứng dụng tốn đại Mục đích nghiên cứu giới thiệu cho người đọc nhìn đầy đủ mẻ việc phát triển transformer lĩnh vực thị giác máy tính 1.2 Tổng quan tốn Image Classification 1.2.1 Định nghĩa Image classification trình nhận diện phân loại hình ảnh vào lớp khác dựa nội dung chúng Nhiệm vụ tốn image classification xây dựng mơ hình có khả học từ liệu huấn luyện sau dự đốn class hình ảnh [1] Trong tốn image classification, hình ảnh coi đầu vào, mơ hình cần dự đốn lớp tương ứng hình ảnh từ tập hợp lớp định nghĩa trước Mỗi lớp đại diện cho đối tượng, vật thể khái niệm cụ thể Để thực image classification, mơ hình cần huấn luyện tập liệu huấn luyện gán nhãn, hình ảnh gán nhãn với lớp tương ứng Trong q trình huấn luyện, mơ hình học cách tạo đặc trưng phân biệt từ hình ảnh xây dựng quy tắc phân loại để gán nhãn cho hình ảnh Hình 1-1: Quá trình thực image classification Phân biệt Image Classification Image Recognition : Image classification (phân loại hình ảnh) trình gán nhãn cho hình ảnh cách xác định xem thuộc vào lớp hay nhãn định trước Image recognition (nhận dạng hình ảnh) mở rộng khái niệm phân loại hình ảnh cách xác định nhận dạng đối tượng cụ thể hình ảnh Điều bao gồm việc xác định phân loại đối tượng, vùng quan tâm, phân đoạn (segmentation) phần hình ảnh Hình 1-2: Image recognition image recognition Sử dụng Image Classification mang lại nhiều lợi ích quan trọng có ứng dụng rộng rãi nhiều lĩnh vực khác Dưới số lý nên sử dụng image classification [2]: - Tự động hóa q trình phân loại : Image classification giúp tự động hóa q trình phân loại hình ảnh, giảm cơng sức thời gian người Thay phải phân loại hàng ngàn chí hàng triệu hình ảnh cách thủ cơng, mơ hình image classification tự động phân loại hình ảnh với tốc độ nhanh độ xác cao - Nhận dạng phát : Image classification sử dụng để nhận dạng phát đối tượng, vật thể biểu đồ hình ảnh Ví dụ, giúp nhận dạng khuôn mặt, phát vật thể an ninh, nhận dạng biểu đồ biểu đồ từ hình ảnh khoa học - Ứng dụng y tế : Image classification sử dụng để phân loại phát bệnh tật hình ảnh y tế, chẳng hạn phân loại loại ung thư từ hình ảnh X-quang cắt lớp, phân loại phát bệnh hình ảnh siêu âm, nhiều ứng dụng khác để hỗ trợ chẩn đoán điều trị - Ứng dụng công nghệ thông tin truyền thông : Image classification sử dụng để phân loại, gắn nhãn quản lý hàng ngàn hàng triệu hình ảnh hệ thống quản lý liệu, truyền thơng xã hội, cơng cụ tìm kiếm hình ảnh ứng dụng web khác - Tối ưu hóa sản xuất kiểm tra chất lượng : Image classification sử dụng để phân loại kiểm tra chất lượng sản phẩm ngành công nghiệp, chẳng hạn sản xuất, kiểm tra hàng hoá quản lý chất lượng 1.2.2 Bài toán : Đánh giá tổng quan toán : Bài toán Image Classification toán quan trọng phổ biến lĩnh vực thị giác máy tính trí tuệ nhân tạo Với phát triển nhanh chóng cơng nghệ mức độ phổ biến ngày tăng liệu hình ảnh, tốn Image Classification trở thành lĩnh vực nghiên cứu quan trọng có ứng dụng rộng rãi nhiều lĩnh vực thực tế Bài tốn Image Classification bao gồm hai bước : trích xuất đặc trưng mơ hình hóa Trích xuất đặc trưng (feature extraction) trình chuyển đổi hình ảnh thành đặc trưng số học sử dụng để phân loại Các đặc trưng thuộc tính hình học, đặc trưng màu sắc, đặc trưng textural đặc trưng phức tạp đặc trưng học từ mạng neural Trong khứ, phương pháp truyền thống SIFT (Scale-Invariant Feature Transform), HOG (Histogram of Oriented Gradients) phương pháp khác sử dụng để trích xuất đặc trưng từ hình ảnh Tuy nhiên, với phát triển deep learning, mạng neural tích chập (CNNs) trở thành công cụ phổ biến mạnh mẽ để tự động học đặc trưng từ liệu hình ảnh Sau có đặc trưng, bước mơ hình hóa (modeling), tức xây dựng mơ hình máy tính có khả phân loại hình ảnh dựa đặc trưng trích xuất Các mơ hình học máy deep learning SVM (Support Vector Machines), Random Forests, Naive Bayes, K-Nearest Neighbors CNNs sử dụng rộng rãi để giải tốn Image Classification Các mơ hình huấn luyện tập liệu huấn luyện gán nhãn, hình ảnh gán nhãn với lớp tương ứng Trong q trình huấn luyện, mơ hình học cách tạo quy tắc phân loại từ đặc trưng tối ưu hóa thơng số mơ hình để đạt độ xác cao 1.3 Các phương pháp truyền thống toán Image Classification Các phương pháp truyền thống image classification thường tập trung vào việc tạo đặc trưng (features) phân biệt từ hình ảnh sử dụng thuật toán máy học truyền thống để phân loại Dưới số phương pháp truyền thống phổ biến: 10 4.5 Lớp encoder class PatchEncoder(layers.Layer): def init (self, num_patches, projection_dim): super(). init () self.num_patches = num_patches self.projection = layers.Dense(units=projection_dim) self.position_embedding = layers.Embedding( input_dim=num_patches, output_dim=projection_dim ) def call(self, patch): positions = tf.range(start=0, limit=self.num_patches, delta=1) encoded = self.projection(patch) + self.position_embedding(positions) return encoded Đây bước thêm giá trị learnable embedding vào patch Transformer tự nhận biết vị trí patch xếp Code ta sử dụng bảng embedding đánh số từ tới 144 biểu thị vị trí patch dãy để từ đưa vào Encoder 4.6 Bắt đầu xây dựng ViT def create_vit_classifier(): inputs = layers.Input(shape=input_shape) # Augment data augmented = data_augmentation(inputs) # Create patches patches = Patches(patch_size)(augmented) # Encode patches encoded_patches = PatchEncoder(num_patches, projection_dim)(patches) # Create multiple layers of the Transformer block for _ in range(transformer_layers): # Layer normalization x1 = layers.LayerNormalization(epsilon=1e-6)(encoded_patches) # Create a multi-head attention layer attention_output = layers.MultiHeadAttention( num_heads=num_heads, key_dim=projection_dim, dropout=0.1 )(x1, x1) 37 # Skip connection x2 = layers.Add()([attention_output, encoded_patches]) # Layer normalization x3 = layers.LayerNormalization(epsilon=1e-6)(x2) # MLP x3 = mlp(x3, hidden_units=transformer_units, dropout_rate=0.1) # Skip connection encoded_patches = layers.Add()([x3, x2]) # Create a [batch_size, projection_dim] tensor representation = layers.LayerNormalization(epsilon=1e6)(encoded_patches) representation = layers.Flatten()(representation) representation = layers.Dropout(0.5)(representation) # Add MLP features = mlp(representation, hidden_units=mlp_head_units, dropout_rate=0.5) # Classify outputs logits = layers.Dense(num_classes)(features) # Create the Keras model model = keras.Model(inputs=inputs, outputs=logits) return model Trong đoạn mã ta sử dụng khối multi-head attention xếp chồng chúng lên Thông qua vòng lặp for lặp qua số lần transformer_layers, khối mlp ta có lớp normalization 1, lớp MLP, skip connection 1, normalization 2, skip connection Các khối Transformer cho output tensor [batch_size, num_patches, projection_dim] xử lý với softmax cho kết đầu khả 4.7 Bước cuối def run_experiment(model): optimizer = tfa.optimizers.AdamW( learning_rate=learning_rate, weight_decay=weight_decay ) model.compile( optimizer=optimizer, loss=keras.losses.SparseCategoricalCrossentropy(from_logits=T rue), 38 metrics=[ keras.metrics.SparseCategoricalAccuracy(name="accuracy"), keras.metrics.SparseTopKCategoricalAccuracy(5, name="top5-accuracy"), ], ) checkpoint_filepath = "/tmp/checkpoint" checkpoint_callback = keras.callbacks.ModelCheckpoint( checkpoint_filepath, monitor="val_accuracy", save_best_only=True, save_weights_only=True, ) history = model.fit( x=x_train, y=y_train, batch_size=batch_size, epochs=num_epochs, validation_split=0.1, callbacks=[checkpoint_callback], ) model.load_weights(checkpoint_filepath) _, accuracy, top_5_accuracy = model.evaluate(x_test, y_test) print(f"Test accuracy: {round(accuracy * 100, 2)}%") print(f"Test top accuracy: {round(top_5_accuracy * 100, 2)}%") return history vit_classifier = create_vit_classifier() history = run_experiment(vit_classifier) Ta huấn luyện model với optimizer chứa tham số đầu vào, kết cho độ xác top độ xác Lý sử dụng thêm top độ xác để xác định rõ thêm khả mơ hình mà dự đốn đầu nằm top giá trị dự đoán Epoch 1/100 176/176 [==============================] - 33s 136ms/step - loss: 4.8863 accuracy: 0.0294 - top-5-accuracy: 0.1117 - val_loss: 3.9661 - val_accuracy: 0.0992 - val_top-5-accuracy: 0.3056 39 Epoch 2/100 176/176 [==============================] - 22s 127ms/step - loss: 4.0162 accuracy: 0.0865 - top-5-accuracy: 0.2683 - val_loss: 3.5691 - val_accuracy: 0.1630 - val_top-5-accuracy: 0.4226 Epoch 3/100 176/176 [==============================] - 22s 127ms/step - loss: 3.7313 accuracy: 0.1254 - top-5-accuracy: 0.3535 - val_loss: 3.3455 - val_accuracy: 0.1976 - val_top-5-accuracy: 0.4756 Epoch 4/100 176/176 [==============================] - 23s 128ms/step - loss: 3.5411 accuracy: 0.1541 - top-5-accuracy: 0.4121 - val_loss: 3.1925 - val_accuracy: 0.2274 - val_top-5-accuracy: 0.5126 Epoch 5/100 176/176 [==============================] - 22s 127ms/step - loss: 3.3749 accuracy: 0.1847 - top-5-accuracy: 0.4572 - val_loss: 3.1043 - val_accuracy: 0.2388 - val_top-5-accuracy: 0.5320 Epoch 6/100 176/176 [==============================] - 22s 127ms/step - loss: 3.2589 accuracy: 0.2057 - top-5-accuracy: 0.4906 - val_loss: 2.9319 - val_accuracy: 0.2782 - val_top-5-accuracy: 0.5756 0.5440 - val_top-5-accuracy: 0.8140 -Epoch 94/100 176/176 [==============================] - 22s 125ms/step - loss: 0.7692 accuracy: 0.7689 - top-5-accuracy: 0.9599 - val_loss: 1.8928 - val_accuracy: 0.5506 - val_top-5-accuracy: 0.8184 Epoch 95/100 176/176 [==============================] - 22s 126ms/step - loss: 0.7783 accuracy: 0.7661 - top-5-accuracy: 0.9597 - val_loss: 1.8646 - val_accuracy: 0.5490 - val_top-5-accuracy: 0.8166 Epoch 96/100 176/176 [==============================] - 22s 125ms/step - loss: 0.7547 accuracy: 0.7711 - top-5-accuracy: 0.9638 - val_loss: 1.9347 - val_accuracy: 0.5484 - val_top-5-accuracy: 0.8150 Epoch 97/100 176/176 [==============================] - 22s 125ms/step - loss: 0.7603 accuracy: 0.7692 - top-5-accuracy: 0.9616 - val_loss: 1.8966 - val_accuracy: 0.5522 - val_top-5-accuracy: 0.8144 Epoch 98/100 176/176 [==============================] - 22s 125ms/step - loss: 0.7595 accuracy: 0.7730 - top-5-accuracy: 0.9610 - val_loss: 1.8728 - val_accuracy: 0.5470 - val_top-5-accuracy: 0.8170 Epoch 99/100 176/176 [==============================] - 22s 125ms/step - loss: 0.7542 accuracy: 0.7736 - top-5-accuracy: 0.9622 - val_loss: 1.9132 - val_accuracy: 0.5504 - val_top-5-accuracy: 0.8156 Epoch 100/100 176/176 [==============================] - 22s 125ms/step - loss: 0.7410 accuracy: 0.7787 - top-5-accuracy: 0.9635 - val_loss: 1.9233 - val_accuracy: 0.5428 - val_top-5-accuracy: 0.8120 313/313 [==============================] - 4s 12ms/step - loss: 1.8487 accuracy: 0.5514 - top-5-accuracy: 0.8186 Test accuracy: 55.14% Test top accuracy: 81.86% 40 Sau 100 epoch ta có độ xác 55.14%, top xác 81.86% Khi so sánh với ResNet50V2 train liệu ta thấy độ xác khơng cao Như nhắc tới từ trước việc ViT làm tốt vượt trội đạt tới trạng thái state of art mà train liệu lớn 300 triệu Ứng dụng ngồi xử lý ảnh Mơ hình Transformer áp dụng thành cơng nhiều tốn xử lý hình ảnh khác image classification, bao gồm: - Object Detection: Mơ hình Transformer sử dụng để giải tốn object detection, mục tiêu xác định vị trí lớp đối tượng ảnh Một số phương pháp DETR (DEtection TRansformer) sử dụng mơ hình Transformer để thay cho phần encoder kiến trúc truyền thống Faster R-CNN hay SSD Các mơ hình chứng minh khả xử lý object detection hiệu đạt kết tốt nhiều liệu - Semantic Segmentation: Mơ hình Transformer áp dụng toán semantic segmentation, nơi mục tiêu gán nhãn cho điểm ảnh ảnh để xác định vùng có thuộc tính Ví dụ, mơ hình ViT-Segformer kết hợp cấu trúc Vision Transformer phần decoder để thực semantic segmentation Qua việc sử dụng self-attention chế decode, mơ hình đạt kết tốt đáng ý nhiệm vụ segmenting ảnh - Generative Models: Mơ hình Transformer sử dụng mơ hình sinh liệu Generative Adversarial Networks (GANs) Variational Autoencoders (VAEs) Các mơ DALL-E CLIP sử dụng cấu trúc Transformer để sinh hình ảnh từ mô tả văn thực việc tạo mơ tả văn từ hình ảnh - Pose Estimation: Các phương pháp sử dụng Transformer Pose Estimation (ước lượng tư thế) cho phép mơ hình học mối quan hệ không gian xa khớp dự đoán tư cấu trúc 3D người tay Các phương pháp tiên tiến HOT-Net, METRO, TransPose Transformer Regression 41 Pose Estimation đạt kết đáng ý tạo triển vọng cho nghiên cứu ứng dụng tương lai Các toán khác: - Phát người bộ: Sử dụng mơ hình PED (Pedestrian End-to-end Detector) để hỗ trợ phát người môi trường mật độ cao che khuất - Phát đường: Sử dụng mơ hình LSTR (Lane Segmentation Transformer) để tăng cường hiệu suất phát đường cong cách học thơng tin ngữ cảnh tồn cầu - Scene Graph (Biểu đồ cảnh): Sử dụng mơ hình Graph R-CNN Texema để tạo biểu đồ cảnh, biểu thị đối tượng, thuộc tính mối quan hệ đối tượng cảnh - Theo dõi (Tracking): Sử dụng kiến trúc Transformer Encoder-Decoder mơ hình Theo dõi dựa mẫu TMT, TrTr TransT để theo dõi vật thể video - Nhận dạng lại (Re-Identification): Sử dụng mơ hình TransReID để xác định lại đối tượng, đạt hiệu suất tương đương với mơ hình dựa CNN So sánh hiệu suất với phương pháp truyền thống đưa nhận xét 6.1 Tiềm hướng phát triển việc kết hợp mơ hình Transformer với phương pháp khác xử lý hình ảnh 42 Mơ hình Transformer chứng tỏ tiềm lớn xử lý hình ảnh mang lại nhiều tiến đáng kể lĩnh vực Tuy nhiên, nhiều hướng phát triển tiềm kết hợp mơ hình Transformer với phương pháp khác xử lý hình ảnh 6.2 Về phương pháp sử dụng riêng Transformer: - Twins [13]: Twins biến thể ViT nhằm cải thiện khả tổng quát hóa cách áp dụng phương pháp huấn luyện đa tác vụ Mơ hình Twins sử dụng tác vụ phụ (auxiliary tasks) đặc trưng phụ (auxiliary feature) phân đoạn phụ (auxiliary segmentation) để cung cấp thông tin bổ sung cho việc huấn luyện - CAT [14]: CAT (Class-Attention Transformer) biến thể ViT nhằm cải thiện khả phân loại ảnh theo nhóm (fine-grained classification) Mơ hình CAT sử dụng chế "class-attention" để tăng cường tương tác lớp (classes) trình phân loại - TNT [15]: TNT (Token-free Transformers) biến thể ViT nhằm giảm yêu cầu phân đoạn giữ cấu trúc khơng gian hình ảnh Mơ hình TNT sử dụng mạng nơ-ron sở để thay việc phân đoạn tổng hợp thơng tin từ vị trí khơng gian - T2T [16]: T2T (Tokens-to-Token) biến thể ViT nhằm giảm chiều liệu đầu vào tăng cường tương tác vùng hình ảnh Mơ hình T2T chuyển đổi vùng (patches) thành "tokens" cách sử dụng mạng nơ-ron CNN trước đưa vào mơ hình Transformer - KVT [17]: KVT (Kernelized ViT) biến thể ViT nhằm áp dụng kernelized attention mechanisms để mở rộng khả xử lý hình ảnh lớn Mơ hình KVT sử dụng hạt nhân (kernels) để tính tốn tương tác vùng hình ảnh - DeepViT [18]: DeepViT biến thể ViT nhằm mở rộng mơ hình với số lượng lớp sâu Mơ hình DeepViT sử dụng mạng nơ-ron tiền đề 43 (backbone network) để trích xuất đặc trưng từ hình ảnh trước đưa vào mơ hình Transformer - XciT [19]: XCiT (Cross-Covariance Image Transformers) biến thể ViT nhằm mở rộng khả tương tác vùng hình ảnh Mơ hình XCiT sử dụng ma trận cross-covariance để tính tốn tương quan vùng - PVT [20]: PVT (Pyramid Vision Transformer) biến thể ViT nhằm cải thiện khả nhận dạng đối tượng với kích thước khác Mơ hình PVT sử dụng kiến trúc tổng hợp (pyramid aggregation) để kết hợp thông tin từ vùng ảnh khác - HVT [21]: HVT (Hierarchical Vision Transformer) biến thể ViT nhằm xử lý ảnh có độ phân giải cao Mơ hình HVT sử dụng kiến trúc phân cấp (hierarchical architecture) để phân tách xử lý vùng ảnh nhỏ trước kết hợp kết cuối - PiT [22]: PiT (Pooling in Transformer) biến thể ViT nhằm tăng khả tương tác vùng ảnh Mơ hình PiT sử dụng chế tổng hợp (pooling) để trích xuất thơng tin quan trọng từ vùng ảnh 44 6.3 Các phương pháp kết hợp Convolution: Hình 6-1: Sự khác biệt phương pháp sử dụng transformer kết hợp convolution Mặc dù mơ hình vision transformer áp dụng thành công vào nhiều nhiệm vụ thị giác nhờ khả nắm bắt phụ thuộc xa đầu vào, khoảng cách hiệu suất transformers mạng CNN có Một lý thiếu khả trích xuất thơng tin cục Ngồi biến thể ViT đề cập nhằm cải thiện tính cục bộ, việc kết hợp transformer với convolution cách tiếp cận trực tiếp để giới thiệu tính cục vào transformer truyền thống Có nhiều nghiên cứu cố gắng bổ sung khối transformer truyền thống lớp self-attention convolution Ví dụ, CPVT [23] đề xuất phương pháp mã hóa vị trí có điều kiện (CPE), điều kiện hàng xóm cục token đầu vào thích ứng với kích thước đầu vào tùy ý, để tận dụng convolution cho việc mã hóa đặc trưng chi tiết CvT [24], CeiT [25], LocalViT [26]và CMT [27] phân tích hạn chế tiềm trực tiếp mượn kiến trúc Transformer từ NLP kết hợp convolution với transformer Cụ thể, mạng truyền thẳng (FFN) khối transformer kết hợp với lớp convolution thúc đẩy tương quan token láng giềng LeViT [28] tái khám phá nguyên tắc từ tài 45 liệu nghiên cứu rộng rãi CNN áp dụng chúng vào transformers, đề xuất mạng neural hỗn hợp cho việc phân loại hình ảnh nhanh chóng BoTNet [29] thay convolution khơng gian self-attention tồn cầu ba khối bottleneck cuối ResNet cải thiện đáng kể so với sở nhiệm vụ phân đoạn theo mẫu nhận diện đối tượng với gia tăng tối thiểu độ trễ Kết luận Transformer dần trở thành chủ đề lớn quan trọng lĩnh vực thị giác máy tính nhờ hiệu suất cạnh tranh tiềm lớn so với mạng CNN Để khám phá tận dụng sức mạnh transformer, tóm tắt trong nghiên cứu này, số phương pháp đề xuất năm gần Các phương pháp cho thấy hiệu suất xuất sắc nhiều toán thị giác, bao gồm toán sử dụng transformer, thị giác cấp cao/ mức trung, thị giác cấp thấp xử lý video Tuy nhiên, tiềm transformer thị giác máy tính chưa khai thác đầy đủ, điều đồng nghĩa với việc cần giải số thách thức Trong phần này, thảo luận thách thức đưa nhìn triển vọng tương lai 7.1 Thách thức Mặc dù số lượng nghiên cứu tiếp cận với mơ hình phát triển từ transformer để sử dụng thị giác máy tính nhiều, chúng bước đầu lĩnh vực nhiều thứ để phát triển thêm Khi qua cấu trúc mơ hình ViT ta thấy dựa theo chuẩn cấu trúc giống với transformer sử dụng xử lý ngôn ngữ tự nhiên phương pháp tốt dành riêng cho xử lý ảnh thiếu Và ta áp dụng transformer vào nhiều toán khác thêm khơng với nêu ViT cần 46 khoảng thời gian để thay tốt CNNs Các mơ hình transformer thường lớn tốn nhiều tài nguyên tính tốn Ví dụ, mơ hình ViT [12] u cầu 18 tỷ FLOPs để xử lý hình ảnh Trái lại, mơ hình CNN nhẹ GhostNet [240], [241] đạt hiệu suất tương tự với khoảng 600 triệu FLOPs Mặc dù đề xuất số phương pháp để nén mơ hình transformer, chúng phức tạp Và phương pháp này, ban đầu thiết kế cho NLP, khơng phù hợp cho CV Do đó, cần gấp rút phát triển mơ hình transformer hiệu để ViT triển khai thiết bị có tài nguyên hạn chế 7.2 Hướng phát triển Một số hướng nghiên cứu tiềm cho tương lai Một hướng nghiên cứu tính hiệu hiệu suất transformers thị giác máy tính Mục tiêu phát triển vision transformers với hiệu suất tài nguyên tối ưu; cụ thể transformers có hiệu cao tài nguyên thấp Hiệu suất xác định xem mơ hình áp dụng ứng dụng thực tế, tài nguyên ảnh hưởng đến việc triển khai thiết bị Hiệu thường có liên quan đến hiệu suất, đó, xác định cách đạt cân tốt hai yếu tố chủ đề tốt cho nghiên cứu tương lai Đã có loại mạng thần kinh khác CNN, RNN transformer Trong lĩnh vực CV, CNN lựa chọn phổ biến, transformer trở nên phổ biến Từ chứng có [12], CNN hoạt động tốt tập liệu nhỏ, transformers hoạt động tốt tập liệu lớn Không Transformer mà CNN có nghiên phát triển đầy tiềm Câu hỏi cho nên sử dụng CNN hay transformer ? 47 TÀI LIỆU THAM KHẢO [1] VBD, "Phân loại hình ảnh Thị giác máy tính," Vinbigdata, 27 10 2021 [Online] Available: https://vinbigdata.com/camera-ai/phan-loaihinh-anh-trong-thi-giac-may-tinh.html [Accessed 21 2023] [2] S S Nath, G Mishra, J Kar, S Chakraborty and N Dey, "A survey of image classification methods and techniques," IEEE, Kanyakumari, India, 10-11 July 2014 [3] phamdinhkhanh, "Bài 17 - Thuật toán HOG (Histrogram of oriented gradient)," Github, 22 11 2019 [Online] Available: https://phamdinhkhanh.github.io/2019/11/22/HOG.html [Accessed 11 2023] [4] V Hoàng, "SIFT ( Scale-invariant feature transform) - Huấn luyện mơ hình cho tốn phân loại," Viblo, 12 2020 [Online] Available: https://viblo.asia/p/sift-scale-invariant-feature-transform-huan-luyenmo-hinh-cho-cac-bai-toan-phan-loai-924lJqJaZPM [Accessed 21 2023] [5] E M f I Search, "Bag of Visual Words," Pinecone, [Online] Available: https://www.pinecone.io/learn/series/image-search/bag-of-visualwords [Accessed 21 2023] [6] C P Van, "[Deep Learning] Tìm hiểu mạng tích chập (CNN)," Viblo, 12 10 2020 [Online] Available: https://viblo.asia/p/deep-learning-timhieu-ve-mang-tich-chap-cnn-maGK73bOKj2 [Accessed 21 2023] [7] N P Lương, "Ứng dụng Convolutional Neural Network toán phân loại ảnh," Viblo, 28 11 2017 [Online] Available: 48 https://viblo.asia/p/ung-dung-convolutional-neural-network-trong-baitoan-phan-loai-anh-4dbZNg8ylYM [Accessed 21 2023] [8] A Z Karen Simonyan, "Very Deep Convolutional Networks for LargeScale Image Recognition," arxiv, 2014 [9] X Z S R J S Kaiming He, "Deep Residual Learning for Image Recognition," arxiv, 2015 [10] W L Y J P S S R D A D E V V A R Christian Szegedy, "Going Deeper with Convolutions," arxiv, 2014 [11] R M Schmidt, "Recurrent Neural Networks (RNNs): A gentle Introduction and Overview," arxiv, 2019 [12] L B A K D W X Z T U M D M M G H S G J U N H Alexey Dosovitskiy, "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale," arxiv, 2020 [13] Z T Y W B Z H R X W H X C S Xiangxiang Chu, "Twins: Revisiting the Design of Spatial Attention in Vision Transformers," arxiv, 2021 [14] X C X W F Y D S Z W Q S W Y Hezheng Lin, "CAT: Cross Attention in Vision Transformer," arxiv, 2021 [15] A X E W J G C X Y W Kai Han, "Transformer in Transformer," arxiv, 2021 [16] Y C T W W Y Y S Z J F E T J F S Y Li Yuan, "Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet," arcix, 2021 [17] X W F W M L S C H L R J Pichao Wang, "KVT: k-NN Attention for Boosting Vision Transformers," arcix, 2021 49 [18] B K X J L Y X L Z J Q H J F Daquan Zhou, "DeepViT: Towards Deeper Vision Transformer," arcix, 2021 [19] H T M C P B M D A J I L N N G S J V H J Alaaeldin El-Nouby, "XCiT: Cross-Covariance Image Transformers," arxiv, 2021 [20] E X X L D.-P F K S D L T L P L L S Wenhai Wang, "Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions," arxiv, 2021 [21] B Z J L H H J C Zizheng Pan, "Scalable Vision Transformers with Hierarchical Pooling," arxiv, 2021 [22] S Y D H S C J C S J O Byeongho Heo, "Rethinking Spatial Dimensions of Vision Transformers," arxiv, 2021 [23] Z T B Z X W C S Xiangxiang Chu, "Conditional Positional Encodings for Vision Transformers," arxiv, 2021 [24] B X N C M L X D L Y L Z Haiping Wu, "CvT: Introducing Convolutions to Vision Transformers," arxiv, 2021 [25] S G Z L A Z F Y W W Kun Yuan, "Incorporating Convolution Designs into Visual Transformers," arxiv, 2021 [26] K Z J C R T L V G Yawei Li, "LocalViT: Bringing Locality to Vision Transformers," arxiv, 2021 [27] K H H W Y T X C Y W C X Jianyuan Guo, "CMT: Convolutional Neural Networks Meet Vision Transformers," arxiv, 2021 [28] A E.-N H T P S A J H J M D Ben Graham, "LeViT: a Vision Transformer in ConvNet's Clothing for Faster Inference," arxiv, 2021 50 [29] T.-Y L N P J S P A A V Aravind Srinivas, "Bottleneck Transformers for Visual Recognition," arxiv, 2021 [30] N V K Phạm Xuân Trí, "Phân biệt số toán lĩnh vực Computer Vision," 28 2020 [Online] Available: http://tutorials.aiclub.cs.uit.edu.vn/index.php/2020/04/28/phan-bietbai-toan-trong-cv/ [Accessed 21 2023] [31] Q Pham, "Tìm hiểu mơ hình Transformer - Ngươi Không Phải Là Anh Hùng, Ngươi Là Quái Vật Nhiều Đầu.," github, 20 2020 [Online] Available: https://pbcquoc.github.io/transformer/ [Accessed 21 2023] 51

Ngày đăng: 04/09/2023, 20:28

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w