Mục lục bài viết
Cập Nhật: 2022-02-10 01:24:04,You Cần kiến thức và kỹ năng về Mask RCNN là gì. Quý khách trọn vẹn có thể lại phản hồi ở cuối bài để Admin đc lý giải rõ ràng hơn.
0
| Posted in Deep Learning cơ bản
Nội dung
Tóm lược đại ý quan trọng trong bài
Trong bài 7 tôi đã trình làng về ứng dụng quy mô CNN cho bài toán phân loại ảnh, tuy nhiên những ảnh input của bài toán phân loại chỉ gồm có một đối tượng người tiêu dùng rõ ràng như chữ số hay là một trong những loài hoa.
Ví dụ ảnh trong bài toán phân loại ảnh
Tuy nhiên là ảnh trong môi trường sống đời thường thường thì thì không riêng gì có chứa 1 đối tượng người tiêu dùng mà thường gồm có thật nhiều những đối tượng người tiêu dùng. Ta quan tâm đến vị trí của từng đối tượng người tiêu dùng trong ảnh. Bài toán như vậy được gọi là: object detection.
Ví dụ output của object detection. Nguồn:
data-sci.info/2017/06/27/run-faster-rcnn-tensorflow-detection-api/
Bài toán object detection có input là ảnh màu và output là vị trí của những đối tượng người tiêu dùng trong ảnh. Ta thấy nó gồm có 2 bài toán nhỏ:
Việc lựa chọn có bao nhiêu loại đối tượng người tiêu dùng thì tùy từng bài toán mà ta đang xử lý và xử lý.
Bạn tự hỏi liệu quy mô CNN có xử lý và xử lý được bài toán object detection không? Vấn đề đó là vì không biết trước có bao nhiêu đối tượng người tiêu dùng trong ảnh, nên không thiết kế được output layer hiệu suất cao => quy mô CNN truyền thống cuội nguồn không xử lý và xử lý được => R-CNN (regional convolutional neural network) Ra đời.
Ý tưởng thuật toán R-CNN khá đơn thuần và giản dị
Selective search algorithm
Input của thuật toán là ảnh màu, output là khoảng chừng 2000 region proposal (bounding box) mà có kĩ năng chứa những đối tượng người tiêu dùng.
Đầu tiên ảnh được segment qua thuật toán Graph Based Image Segmentation, vì thuật toán nhờ vào lý thuyết đồ thị và không vận dụng deep learning nên mình không lý giải rõ ràng, bạn nào muốn tìm hiểu đọc theo link ở trên.
Output sau khoản thời hạn tiến hành graph based image segmentation. Nguồn:
learnopencv/selective-search-for-object-detection-cpp-python/
Nhận xét: Ta không thể dùng mỗi màu trong output để làm 1 region proposal được vì:
=> Cần nhóm những vùng màu với nhau để làm region proposal.
Tiếp theo, những vùng màu được nhóm với nhau dựa vào độ tương tự về sắc tố, hướng gradient, kích thước,
Cuối cùng những region proposal được xác lập dựa vào những nhóm vùng màu.
Tài liệu cho bạn nào muốn đọc thêm ở đây.
Phân loại region proposal
Bài toán trở thành phân loại ảnh cho những region proposal. Do thuật toán selective search cho tới 2000 region proposal nên có thật nhiều region proposal không chứa đối tượng người tiêu dùng nào. Vậy nên ta cần thêm một lớp background (không chứa đối tượng người tiêu dùng nào). Ví dụ như hình dưới ta có 4 region proposal, ta sẽ phân loại mỗi bounding box là người, ngựa hay background.
Nguồn: Rich feature hierarchies for accurate object detection and semantic segmentation
Sau đó những region proposal được resize lại về cùng kích thước và tiến hành transfer learning với feature extractor, tiếp sau đó những extracted feature được cho vào thuật toán SVM để phân loại ảnh.
Bên cạnh đó thì extracted feature cũng rất được vốn để làm tham gia đoán 4 offset values cho từng cạnh. Ví dụ như khi region proposal chứa người nhưng chỉ có phần thân và nửa mặt, nửa mặt còn sót lại không tồn tại trong region proposal đó thì offset value trọn vẹn có thể giúp mở rộng region proposal để lấy được toàn bộ người.
Vấn đề với R-CNN
Hồi mới xuất hiện thì thuật toán hoạt động giải trí và sinh hoạt tương đối tốt cho với những thuật toán về computer vision trước đó nhờ vào CNN, tuy nhiên nó vẫn đang còn quá nhiều hạn chế:
Khoảng 1.5 năm tiếp sau đó, Fast R-CNN được trình làng bới cùng tác giải của R-CNN, nó xử lý và xử lý được một số trong những hạn chế của R-CNN để cải tổ vận tốc.
Tương tự như R-CNN thì Fast R-CNN vẫn dùng selective search để lấy ra những region proposal. Tuy nhiên là nó không tách 2000 region proposal thoát khỏi ảnh và tiến hành bài toán image classification cho từng ảnh. Fast R-CNN cho toàn bộ tấm hình vào ConvNet (một vài convolutional layer + max pooling layer) để tạo ra convolutional feature map.
Sau đó những vùng region proposal được lấy ra tương ứng từ convolutional feature map. Tiếp này được Flatten và thêm 2 Fully connected layer (FCs) để tham gia đoán lớp của region proposal và giá trị offset values của bounding box.
Nguồn: arxiv/pdf/1504.08083.pdf
Tuy nhiên là kích thước của những region proposal rất khác nhau nên lúc Flatten sẽ ra những vector có kích thước rất khác nhau nên không thể vận dụng neural network được. Thử nhìn lại xem ở trên R-CNN đã xử lý ra làm thế nào? Nó đã resize những region proposal về cùng kích thước trước lúc sử dụng transfer learning. Tuy nhiên ở feature map ta không thể resize được, nên ta phải có cách gì đó để chuyển những region proposal trong feature map về cùng kích thước => Region of Interest (ROI) pooling Ra đời.
Region of Interest (ROI) pooling
ROI pooling là một dạng của pooling layer. Điểm khác so với max pooling hay average pooling là bất kể kích thước của tensor input, ROI pooling luôn cho ra output có kích thước cố định và thắt chặt được định nghĩa trước.
Ta kí hiệu a/b là phần nguyên của a khi chia cho b và a%b là phần dư của a khi chia cho b. Ví dụ: 10/3 = 3 và 10%3 = 1.
Gọi input của ROI pooling kích thước m*n và output có kích thước h*k (thường thì h, k nhỏ ví dụ 7*7).
Ví dụ m=n=10, h=k=3, do m/h = 3 và m%h = 1, nên ta sẽ chia chiều rộng thành 3 phần, 2 phần có kích thước 3, và một phần có kích thước 4.
Sau đó với mỗi khối được tạo ra bằng những đường đỏ và cạnh, ta tiến hành max pooling lấy ra 1 giá trị.
Thực hiện ROI pooling
Ta trọn vẹn có thể thấy là kích thước sau khoản thời hạn tiến hành ROI pooling về đúng h*k như ta mong ước.
Đánh giá Fast R-CNN
So sánh thời train train và test giữa R-CNN và Fast R-CNN. Nguồn:
towardsdatascience/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-36d53571365e
Fast R-CNN khác với R-CNN là nó tiến hành feature map với cả ảnh tiếp sau đó với lấy những region proposal ra từ feature map, còn R-CNN tiến hành tách những region proposal ra rồi mới tiến hành CNN trên từng region proposal. Do đó Fast R-CNN nhanh hơn đáng kể nhờ tối ưu việc tính toán bằng Vectorization.
Tuy nhiên nhìn hình trên ở phần test time với mục Fast R-CNN thì thời hạn tính region proposal rất mất thời hạn và làm chậm thuật toán => Cần thay thế thuật toán selective search. Giờ người ta nghĩ đến việc dùng deep learning để tạo ra region proposal => Faster R-CNN Ra đời.
Faster R-CNN không dùng thuật toán selective search để lấy ra những region proposal, mà nó thêm một mạng CNN mới gọi là Region Proposal Network (RPN) để tìm những region proposal.
Kiến trúc mới Faster R-CNN. Nguồn:
arxiv/pdf/1506.01497.pdf
Đầu tiên cả tấm hình được cho qua pre-trained model để lấy feature map. Sau đó feature map được sử dụng cho Region Proposal Network để lấy được những region proposal. Sau khi lấy được vị trí những region proposal thì tiến hành tương tự Fast R-CNN.
Region Proposal Network (RPN)
Input của RPN là feature map và output là những region proposal. Ta thấy những region proposal là hình chữ nhật.
Mà một hình chữ nhật được xác lập bằng 2 điểm ở cả 2 góc, ví dụ A(x_min, y_min) và B(x_max, y_max). Nhận xét:
=> Cần một kĩ thuật mới để màn biểu diễn region propsal => Anchor Ra đời.
Ý tưởng là thay vì Dự kiến 2 góc ta sẽ Dự kiến điểm TT (x_center, y_center) và width, height của hình chữ nhật. Như vậy mỗi anchor được xác lập bằng 4 tham số (x_center, y_center, width, height).
Vì không sử dụng Selective search nên RPN ban sơ cần xác lập những anchor box trọn vẹn có thể là region proposal, tiếp sau đó qua RPN thì chỉ ouput những anchor box chứng minh và khẳng định chứa đối tượng người tiêu dùng.
Nguồn: sách deep learning for computer vision.
Ảnh bên trái kích thước 400 * 600 px, tác tâm của anchor box màu xanh, cách nhau 16 px => có tầm khoảng chừng (400*600)/(16*16) = 938 tâm. Do những object trong ảnh trọn vẹn có thể có kích thước và tỉ lệ rất khác nhau nên với mỗi tâm ta định nghĩa 9 anchors với kích thước 64 × 64, 128 × 128, 256×256, mỗi kích thước có 3 tỉ lệ tương ứng: 1 : 1, 1 : 2 và 2 : 1.
Giống như hình bên phải với tâm ở giữa 3 kích thước ứng với màu da cam, xanh lam, xanh lục và với mỗi kích thước có 3 tỉ lệ.
=> Số lượng anchor box giờ là 938 * 9 = 8442 anchors. Tuy nhiên sau RPN ta chỉ giữ lại khoảng chừng 1000 anchors box để tiến hành như trong Fast R-CNN.
Việc của RPN là lấy ra những region proposal tựa như selective search thôi chứ không phải là phân loại ảnh.
Mô hình RPN khá đơn thuần và giản dị, feature map được cho qua Conv layer 3*3, 512 kernels. Sau đó với mỗi anchor lấy được ở trên, RPN tiến hành 2 bước:
Nhận xét: có thật nhiều anchor bị chồng lên nhau nên non-maxima suppression được vốn để làm vô hiệu những anchor chồng lên nhau.
Sau cùng nhờ vào Phần Trăm Dự kiến background RPN sẽ lấy N anchor (N trọn vẹn có thể 2000, 1000, thậm chí còn 100 vẫn chạy tốt) để làm region proposal.
Intersection over Union (IoU)
IoU được xử dụng trong bài toán object detection, để định hình và nhận định xem bounding box Dự kiến đối tượng người tiêu dùng khớp với ground truth thật của đối tượng người tiêu dùng.
Nguồn:
pyimagesearch/năm nay/11/07/intersection-over-union-iou-for-object-detection/
Ví dụ về thông số IoU, nhận xét:
Nguồn: sách deep learning for computer vision.
Ngoài ra thì thông số IoU cũng rất được vốn để làm định hình và nhận định độ khớp của 2 hình chữ nhật.
Non-maxima suppression
Ở trong Region Proposal Network thứ nhất ta có tầm khoảng chừng 9000 anchor box (tập Input) tuy nhiên ta chỉ muốn giữ lại 100 anchor (tập Ouput) làm region proposal. Ta sẽ làm như sau:
Kết quả của Faster R-CNN
Nhìn ở hình trên ta thấy Faster R-CNN nhanh hơn nhiều những dòng R-CNN trước đó, vì vậy trọn vẹn có thể dùng cho real-time objec detection
Bài 12: Image segmentation với U-NetBài 10: Các kĩ thuật cơ bản trong deep learning
Tags: Deep learningfast rcnnfaster-rcnnobject detectionrcnnregion of interest poolingregion proposal network
Reply
3
0
Chia sẻ
– Một số từ khóa tìm kiếm nhiều : ” đoạn Clip hướng dẫn Mask RCNN là gì tiên tiến và phát triển nhất , Share Link Download Mask RCNN là gì “.
Bạn trọn vẹn có thể để lại Comments nếu gặp yếu tố chưa hiểu nhé.
#Mask #RCNN #là #gì Mask RCNN là gì