Nội dung ôn tập tổng quát môn xử lý ảnh. 1.Các bài toán trong Computer Version. 2. Phân loại ảnh bằng KNN, SVM. 3. Phân loại tuyến tính bằng Perception. 4. Mạng Neural đầy đủ. 5. Vì sao cần Cross Validation (kiểm chứng chéo). 6. Thế nào là epochs? 7. Khái niệm accuracy, recall, F1 score. 8. Thế nào là tích chập , tính kích thước đầu ra từ một đầu vào của một khối ảnh sau khi đi qua một tầng convolution. 9. Thế nào là tầng giảm chiều Pool max , cho ví dụ. ....... 16.Cấu tạo mang Yolo. Cách tính kích thước tensor đầu ra của mạng Yolo? Hiểu vềhàm loss trong Yolo.
Nội dung ơn tập 1.Các tốn Computer Version * Image Classification : phân lớp ảnh -Có đầu vào (input) ảnh danh sách nhãn (labels), mục tiêu toán xác định ảnh đầu vào thuộc nhãn – hay nói cách khác ouput nhãn tương ứng với input * Classification with Localization: phân lớp vị trí đối tượng Thì tốn Object Localization xác định thêm vị trí (location) đối tượng quan tâm ảnh thơng qua hình chữ nhật bao quanh đối tượng (bounding box) * Object Detection: Phát đối tượng Xác định vị trí tất đối tượng có hình * Instance Segmentation: Phân đoạn ảnh Phân đoạn ảnh vị trí mà cịn rõ đối tượng cách vẽ đường biên (boudaires) bao quanh đối tượng Phân loại ảnh KNN, SVM Các bước KNN: Ta có D tập điểm liệu gắn nhãn A liệu chưa phân loại Đo khoảng cách (Euclidian, Manhattan, Minkowski, Minkowski Trọng số) từ liệu A đến tất liệu khác phân loại D Chọn K (K tham số mà bạn định nghĩa) khoảng cách nhỏ Kiểm tra danh sách lớp có khoảng cách ngắn đếm số lượng lớp xuất Lấy lớp (lớp xuất nhiều lần nhất) Lớp liệu lớp mà bạn nhận bước Các bước SVM Bước 1: Xây dựng mơ hình - Mỗi bộ/ mẫu liệu phân vào lớp xác định trước - Lớp bộ/ mẫu xác định thuộc tính gán nhãn lớp - Tập bộ/mẫu liệu huấn luyện – tập huấn luyện , dùng để xây dựng mơ hình - Mơ hình biểu diễn luật phân lớp, định cơng thức tốn học Bước 2: Sử dụng mơ hình - Phân lớp cho đối tượng chưa phân lớp - Đánh giá độ xác mơ hình - + Lớp biết trước mẫu / liệu đem kiểm tra so sánh với kết thu từ mơ hình - +Tỉ lệ xác phần trăm mẫu dư liệu phân lớp mơ hình số lần kiểm tra Ý tưởng: - Là chuyển tập mẫu từ khong gian biểu diễn Rn chúng sang khơng gian Rd có số chiều lớn hơn.Trong khơng gian Rd, tìm siêu phẳng tối ưu để phân hoạch tập mẫu dựa phân lớp chúng, có nghĩa tìm miền phân bố lớp không gian Rn để từ xác định phân lớp mẫu cần nhận dạng Phân loại tuyến tính Perception Perceptron Learning Algorithm, gọi ngắn Perceptron, thuật toán giúp thực công việc phân loại với hai lớp trên, ta gọi hai lớp {+1, -1} Ý tưởng: Chúng ta có đường nét đứt biên giới phân lớp Thuật toán dùng đường biên giới để thử phân loại liệu, với lần phân loại thử bị sai, thuật toán điều chỉnh lại biên giới Ở hình bên trái, có điểm xanh nằm lãnh thổ với điểm màu đỏ, bị thuật tốn phân loại sai Thuật tốn "xoay" biên giới phía điểm xanh cho điểm thuộc lãnh thổ điểm xanh Mạng Neural đầy đủ ( khái niệm đầu vào, đầu ra, tầng ẩn,lan truyền tiến, lan truyền ngược, gradient descent (minh họa mơ hình hình cụ thể), phân loại phi tuyến mạng Neural nhiều tầng) Vì cần Cross Validation (kiểm chứng chéo) - Là phương pháp thống kê sử dụng để ước lượng hiệu mơ hình học máy Nó thường sử dụng để so sánh chọn mơ hình tốt cho toán Kỹ thuật dễ hiểu , dễ thực cho ước lượng tin cậy so với phương pháp khác - Là kỹ thuật lấy mẫu để đánh giá mơ hình học máy trường hợp liệu không dồi cho (Mục đích xác thực chéo để kiểm tra khả dự đốn liệu mơ hình máy học Nó sử dụng để đánh dấu vấn đề khớp sai lệch lựa chọn cung cấp thông tin chuyên sâu cách mơ hình khái qt hóa thành tập liệu độc lập ) Thế epochs? Một epochs tính đưa tất liệu tập train vào mạng neural network lần VÍ dụ, bạn có 10 triệu ảnh tập train, bạn cho tồn số hình input mơ hình lần, suy bạn train epoch ***Tại phải dùng epoch Vì chúng dùng thuật tốn tối ưu Gradient Descent Thuật toán đồi hởi chúng phải đem toàn dư liệu qua vài lần để tìm kết tối ưu Vì vậy, dùng epoch thật đủ đẻ tìm kêt tốt Khái niệm accuracy, recall, F1 score Accuracy cách giá trị đo gần với giá trị đích Recall đo lường tỷ lệ dự báo xác trường hợp dương tính tồn mấu thuộc nhóm dương tính F1 Score trung bình điều hòa Precision(độ chuẩn xác) recall(độ phủ) Thế tích chập , tính kích thước đầu từ đầu vào khối ảnh sau qua tầng convolution - Tích chập phép tốn tuyến tính , cho kết hàm việc tính tốn dựa hai hàm có (f g) 9 Thế tầng giảm chiều Pool max , cho ví dụ - Từng phép pooling chọn giá trị lớn khu vực mà áp dụng 10.Ý nghĩa convolution? https://web888.vn/convolution-neural-network/ Trong pts hỗ trợ nhiều chức chỉnh sửa ảnh Chúng hầu hết sử dụng CNN Như thấy phép convolution giúp chỉnh sửa ảnh, biến ảnh đầu vào thành ảnh khác, Kernel 11.Mạng Resdnet : - Mạng Resdnet giải vấn đề ? + https://trituenhantao.io/kien-thuc/resnet-mang-hoc-sau-dung-nghia/ #:~:text=Gi%E1%BA%A3i%20ph%C3%A1p%20ResNet%20l %C3%A0%20m%E1%BB%99t,%C4%91%E1%BB%99%20s%C3%A2u %20h%C3%A0ng%20ngh%C3%ACn%20l%E1%BB%9Bp + Giải pháp ResNet giải pháp đơn giản tập trung vào cải tiến thông tin phản hồi thông qua độ dốc mạng + Trong thực tế Gradients thường có giá trị nhỏ dần xuống layer thấp Dẫn đến kết cập nhật thực Gradients Descent không làm thay đổi nhiều weights layer làm chúng hội tụ mạng không thu kết tốt Hiện tượng gọi Vanishing Gradients + Sử dụng kết nối "tắt" đồng để xuyên qua hay nhiều lớp - Vì cần chuẩn hóa ảnh tầng convolution? + - Giải thích Resdnet 18 https://www.researchgate.net/publication/ 322476121_Anomaly_Detection_in_Nanofibrous_Materials_by_CNNBased_Self-Similarity + Thế khối Residual ? Một residual block sử dụng kết nối tắt đồng để xuyên qua hay nhiều lớp - Xem đoạn mã Residual Pytorch? import torch from torch import nn class ResidualBlockPytorch(nn.Module): def init (self, num_channels, output_channels, strides=1, is_used_conv11=False, **kwargs): super(ResidualBlockPytorch, self). init (**kwargs) self.is_used_conv11 = is_used_conv11 self.conv1 = nn.Conv2d(num_channels, num_channels, padding=1, kernel_size=3, stride=1) self.batch_norm = nn.BatchNorm2d(num_channels) self.conv2 = nn.Conv2d(num_channels, num_channels, padding=1, kernel_size=3, stride=1) if self.is_used_conv11: self.conv3 = nn.Conv2d(num_channels, num_channels, padding=0, kernel_size=1, stride=1) # Last convolutional layer to reduce output block shape self.conv4 = nn.Conv2d(num_channels, output_channels, padding=0, kernel_size=1, stride=strides) self.relu = nn.ReLU(inplace=True) def forward(self, X): if self.is_used_conv11: Y = self.conv3(X) else: Y=X X = self.conv1(X) X = self.relu(X) X = self.batch_norm(X) X = self.relu(X) X = self.conv2(X) X = self.batch_norm(X) X = self.relu(X+Y) X = self.conv4(X) return X X = torch.rand((4, 1, 28, 28)) # shape=(batch_size, channels, width, height) X = ResidualBlockPytorch(num_channels=1, output_channels=64, strides=2, is_used_conv11=True)(X) print(X.shape) torch.Size([4, 64, 14, 14]) 12.Bài toán phát đối tượng - Thế Matrix Confusion ? Là phương pháp đánh giá kết toán phân loại với việc xem xét số độ xác độ bao quát dự đoán cho lớp - Khái niệm True Positive, True Negative, False Positive, False Negative + TP (True Positive): Số lượng dự đốn xác Là mơ hình dự đoán người bị ung thư + TN (True Negative): Số lương dự đốn xác cách gián tiếp Là mơ hình dự đốn người không bị ung thư, tức việc không chọn trường hợp bị ung thư xác + FP (False Positive - Type Error): Số lượng dự đốn sai lệch Là mơ hình dự đốn người bị ung thư người hồn tồn khỏe mạnh + FN (False Negative - Type Error): Số lượng dự đoán sai lệch cách gián tiếp Là mơ hình dự đốn người khơng bị ung thư người bị ung thư, tức việc không chọn trường hợp bị ung thư sai - Cách tính mAP ? + Độ xác trung bình điểm mAP tính cách lấy AP trung bình tất lớp / ngưỡng IoU tổng thể, tùy thuộc vào toán phát khác 13.Cấu tạo mạng R-CNN TÌm hiểu phương pháp selective search Hàm loss R-CNN gì? - Cấu tạo mạng R-CNN : (theo mơ hình pipeline: cơng việc liên tiếp đan xen lẫn nhau) + Mơ hình CNN: phân loại ảnh trích xuất đặc trưng + Mơ hình SVM: mơ hình xác định đối tượng + Mơ hình Bbox reg: để tính tốn cho bounding box - Phương pháp selective search Input thuật toán ảnh màu, output khoảng 2000 region proposal (bounding box) mà có khả chứa đối tượng Ta dùng màu output để làm region proposal vì: Mỗi đối tượng ảnh chứa nhiều màu Các đối tượng bị che phần đĩa chén khơng thể xác định Do cần nhóm vùng màu với để làm region proposal Tiếp theo, vùng màu nhóm với dựa độ tương đồng màu sắc, hướng gradient, kích thước,… Cuối region proposal xác định dựa nhóm vùng màu - Hàm loss R-CNN ? https://uniduc.com/vi/blog/object-detection-tim-hieu-ve-thuat-toan-r-cnn-fast-r-cnnva-faster-r-cnn#:~:text=Loss%20function,-Loss%20function%20c%E1%BB %A7a&text=H%C3%A0m%20loss%20c%E1%BB%A7a%20Faster%20R,th %C3%A0nh%20ph%C3%A2n%20lo%E1%BA%A1i%20nh%E1%BB%8B%20ph %C3%A2n 14.Cấu tạo mạng Fast R- CNN, khác phiên R-CNN gì? Hàm Loss Fast R-CNNlà gì? Nhược điểm R-CNN dùng tới mơ hình khác độc lập với Fast R-CNN hợp mơ hình để tạo thành ConvNet Kiến trúc single model Fast R-CNN Ở bước đầu ta áp dụng mạng Deep CNN để trích xuất feature map Thay warp image region proposal R-CNN xác dịnh vị trí hình chiếu của region proposal feature map thơng qua phép chiếu RoI projection Vị trí tương vị trí ảnh gốc Sau tiếp tục truyền output qua layer RoI pooling layer Fully Connected layers để thu RoI feature véc tơ Sau kết đầu chia làm nhánh Nhánh giúp xác định phân phối xác suất theo class vùng quan tâm RoI thông qua hàm softmax nhánh cịn xác định tọa độ bounding box thơng qua hồi qui offsets Tương tự R-CNN Fast R-CNN dùng selective search để lấy region proposal Tuy nhiên khơng tách 2000 region proposal khỏi ảnh thực toán image classification cho ảnh Fast R-CNN cho ảnh vào ConvNet (một vài convolutional layer + max pooling layer) để tạo convolutional feature map Sau vùng region proposal lấy tương ứng từ convolutional feature map Tiếp Flatten thêm Fully connected layer (FCs) để dự đoán lớp region proposal giá trị offset values bounding box Tuy nhiên kích thước region proposal khác nên Flatten vector có kích thước khác nên khơng thể áp dụng neural network Nó resize region proposal kích thước trước dùng transfer learning Tuy nhiên feature map ta resize được, nên ta phải có cách để chuyển region proposal feature map kích thước Region of Interest (ROI) pooling đời - Hàm loss Fast R-CNN : Mơ hình tối ưu hóa cho hàm loss kết hợp từ nhiệm vụ (classification + localization): Loss function tổng classification loss bouding-box regression loss: 15.Cấu tạo mạng Faster R- CNN? Hàm Loss Fast R-CNNlà gì? https://tuhoclaptrinhsite.wordpress.com/2021/08/14/bai-toan-phat-hien-doituong-va-cac-phuong-phap-sliding-window-r-cnn-fast-r-cnn-faster-r-cnn/ Kiến trúc mơ hình Faster R-CNN (được trích xuất từ báo gốc) Ở giai đoạn sớm sử dụng mạng deep CNN để tạo feature map Khác với Fast R-CNN, kiến trúc không tạo RoI feature map mà sử dụng feature map làm đầu vào để xác định region proposal thông qua RPN network Đồng thời feature maps đầu vào cho classifier nhằm phân loại vật thể region proposal xác định từ RPN network Faster R-CNN không dùng thuật toán selective search để lấy region proposal, mà thêm mạng CNN gọi Region Proposal Network (RPN) để tìm region proposal Đầu tiên ảnh cho qua pre-trained model để lấy feature map Sau feature map dùng cho Region Proposal Network để lấy region proposal Sau lấy vị trí region proposal thực tương tự Fast RCNN - Loss function : Loss function Faster R-CNN tương đối giống với Fast R-CNN 16.Cấu tạo mang Yolo Cách tính kích thước tensor đầu mạng Yolo? Hiểu vềhàm loss Yolo Cấu tạo mạng: Kiến trúc YOLO bao gồm: base network mạng convolution làm nhiệm vụ trích xuất đặc trưng Phần phía sau Extra Layers áp dụng để phát vật thể feature map base network Base network YOLO sử dụng chủ yếu convolutional layer fully conntected layer Các kiến trúc YOLO đa dạng tùy biến thành version cho nhiều input shape khác Sơ đồ kiến trúc mạng YOLO Thành phần Darknet Architechture gọi base network có tác dụng trích suất đặc trưng Output base network feature map có kích thước 7x7x1024 sử dụng làm input cho Extra layers có tác dụng dự đốn nhãn tọa độ bounding box vật thể Hiện YOLO hỗ trợ đầu vào 416x416 608x608 Mỗi đầu vào có thiết kế layers riêng phù hợp với shape input Sau qua layer convolutional shape giảm dần theo cấp số nhân Cuối ta thu feature map có kích thước tương đối nhỏ để dự báo vật thể ô feature map Kích thước feature map phụ thuộc vào đầu vào Đối với input 416x416 feature map có kích thước 13x13, 26x26 52x52 Và input 608x608 tạo feature map 19x19, 38x38, 72x72 - Cách tính kích thước tensor đầu mạng Yolo ? Output mơ hình YOLO véc tơ bao gồm thành phần: Việc hiểu output quan trọng để cấu hình tham số chuẩn xác huấn luyện model qua open source darknet Như output xác định theo số lượng classes theo công thức (n_class+5) Nếu huấn luyện 80 classes bạn có output 85 Trường hợp bạn áp dụng anchors/cell số lượng tham số output là: Kiến trúc output model YOLO Hình ảnh gốc feature map kích thước 13x13 Trên cell feature map lựa chọn anchor boxes với kích thước khác Box 1, Box 2, Box cho tâm anchor boxes trùng với cell Khi output YOLO véc tơ concatenate bounding boxes Các attributes bounding box mơ tả dịng cuối hình ... sâu cách mơ hình khái qt hóa thành tập liệu độc lập ) Thế epochs? Một epochs tính đưa tất liệu tập train vào mạng neural network lần VÍ dụ, bạn có 10 triệu ảnh tập train, bạn cho tồn số hình input... https://web888.vn/convolution-neural-network/ Trong pts hỗ trợ nhiều chức chỉnh sửa ảnh Chúng hầu hết sử dụng CNN Như thấy phép convolution giúp chỉnh sửa ảnh, biến ảnh đầu vào thành ảnh khác, Kernel 11.Mạng Resdnet : - Mạng Resdnet... trung vào cải tiến thông tin phản hồi thông qua độ dốc mạng + Trong thực tế Gradients thường có giá trị nhỏ dần xuống layer thấp Dẫn đến kết cập nhật thực Gradients Descent không làm thay đổi nhiều