R-CNN là gì? Tổng quan nhanh
Tìm hiểu về RCNN và tác động của nó đối với phát hiện đối tượng. Chúng tôi sẽ đề cập đến các thành phần chính, ứng dụng và vai trò của nó trong việc thúc đẩy các kỹ thuật như Fast RCNN và YOLO.

Object detection là một tác vụ thị giác máy tính có thể nhận dạng và xác định vị trí đối tượng trong hình ảnh hoặc video cho các ứng dụng như autonomous driving, surveillance và medical imaging. Các phương pháp object detection trước đây, chẳng hạn như Viola-Jones detector và Histogram of Oriented Gradients (HOG) kết hợp với Support Vector Machines (SVM), dựa vào các đặc trưng thủ công và sliding window. Những phương pháp này thường gặp khó khăn trong việc phát hiện chính xác đối tượng trong các cảnh phức tạp với nhiều đối tượng có hình dạng và kích thước khác nhau.
Region-based Convolutional Neural Networks (R-CNN) đã thay đổi cách chúng ta tiếp cận object detection. Đây là một cột mốc quan trọng trong lịch sử thị giác máy tính. Để hiểu cách các model như YOLOv8 ra đời, trước tiên chúng ta cần hiểu các model như R-CNN.
Được tạo ra bởi Ross Girshick và đội ngũ của ông, kiến trúc model R-CNN tạo ra các region proposal, trích xuất đặc trưng bằng Convolutional Neural Network (CNN) đã được tiền huấn luyện, phân loại đối tượng và tinh chỉnh bounding box. Mặc dù nghe có vẻ phức tạp, nhưng đến cuối bài viết này, bạn sẽ hiểu rõ cách R-CNN hoạt động và tại sao nó lại có tầm ảnh hưởng lớn như vậy. Hãy cùng tìm hiểu!
Link to this sectionR-CNN hoạt động như thế nào?#
Quy trình object detection của model R-CNN bao gồm ba bước chính: tạo region proposal, trích xuất đặc trưng, và phân loại đối tượng trong khi tinh chỉnh bounding box của chúng. Hãy cùng xem xét từng bước.

Hình 1. Cách R-CNN hoạt động.
Link to this sectionRegion proposal: Xương sống của RCNN#
Trong bước đầu tiên, model R-CNN quét hình ảnh để tạo ra vô số region proposal. Region proposal là các khu vực tiềm năng có thể chứa đối tượng. Các phương pháp như Selective Search được sử dụng để xem xét nhiều khía cạnh khác nhau của hình ảnh, chẳng hạn như màu sắc, kết cấu và hình dạng, chia nhỏ nó thành các phần khác nhau. Selective Search bắt đầu bằng cách chia hình ảnh thành các phần nhỏ hơn, sau đó hợp nhất các phần tương tự để tạo thành các vùng quan tâm lớn hơn. Quá trình này tiếp tục cho đến khi khoảng 2.000 region proposal được tạo ra.

Hình 2. Cách Selective Search hoạt động.
Các region proposal này giúp xác định tất cả các vị trí có thể có đối tượng. Trong các bước tiếp theo, model có thể xử lý hiệu quả các vùng quan trọng nhất bằng cách tập trung vào những vùng cụ thể này thay vì toàn bộ hình ảnh. Việc sử dụng region proposal cân bằng giữa tính toàn diện và hiệu quả tính toán.
Link to this sectionTrích xuất đặc trưng hình ảnh: Nắm bắt các chi tiết#
Bước tiếp theo trong quy trình object detection của R-CNN là trích xuất đặc trưng từ các region proposal. Mỗi region proposal được thay đổi kích thước về một kích thước đồng nhất mà CNN yêu cầu (ví dụ: 224x224 pixel). Việc thay đổi kích thước giúp CNN xử lý từng đề xuất một cách hiệu quả. Trước khi warp, kích thước của mỗi region proposal được mở rộng một chút để bao gồm 16 pixel ngữ cảnh bổ sung xung quanh vùng đó nhằm cung cấp thêm thông tin bao quanh giúp trích xuất đặc trưng tốt hơn.
Sau khi thay đổi kích thước, các region proposal này được đưa vào một CNN như AlexNet, thường được tiền huấn luyện trên một tập dữ liệu lớn như ImageNet. CNN xử lý từng vùng để trích xuất các vector đặc trưng đa chiều nắm bắt các chi tiết quan trọng như cạnh, kết cấu và hoa văn. Các vector đặc trưng này cô đọng thông tin thiết yếu từ các vùng. Chúng chuyển đổi dữ liệu hình ảnh thô thành định dạng mà model có thể sử dụng để phân tích thêm. Việc phân loại và xác định vị trí đối tượng chính xác trong các giai đoạn tiếp theo phụ thuộc vào quá trình chuyển đổi thông tin thị giác thành dữ liệu có ý nghĩa quan trọng này.

Hình 3. Trích xuất đặc trưng từ một region proposal bằng AlexNet.
Link to this sectionPhân loại đối tượng: Nhận diện các đối tượng được phát hiện#
Bước thứ ba là phân loại các đối tượng trong các vùng này. Điều này có nghĩa là xác định danh mục hoặc class của từng đối tượng được tìm thấy trong các đề xuất. Các vector đặc trưng đã trích xuất sau đó được chuyển qua một machine learning classifier.
Trong trường hợp của R-CNN, Support Vector Machines (SVMs) thường được sử dụng cho mục đích này. Mỗi SVM được huấn luyện để nhận dạng một class đối tượng cụ thể bằng cách phân tích các vector đặc trưng và quyết định xem một vùng cụ thể có chứa một instance của class đó hay không. Về cơ bản, với mỗi danh mục đối tượng, có một classifier chuyên dụng kiểm tra từng region proposal cho đối tượng cụ thể đó.
Trong quá trình huấn luyện, các classifier được cung cấp dữ liệu đã gán nhãn với các mẫu dương tính và âm tính:
- Mẫu dương tính: Các vùng chứa đối tượng mục tiêu.
- Mẫu âm tính: Các vùng không chứa đối tượng.
Các classifier học cách phân biệt giữa các mẫu này. Bounding box regression tinh chỉnh thêm vị trí và kích thước của các đối tượng được phát hiện bằng cách điều chỉnh các bounding box đã được đề xuất ban đầu để khớp hơn với ranh giới thực tế của đối tượng. Model R-CNN có thể xác định và định vị chính xác các đối tượng bằng cách kết hợp phân loại và bounding box regression.

Hình 4. Một ví dụ về bounding box regression. (nguồn: towardsdatascience.com)
Link to this sectionTổng hợp lại: Tinh chỉnh các phát hiện bằng NMS#
Sau các bước phân loại và bounding box regression, model thường tạo ra nhiều bounding box chồng chéo cho cùng một đối tượng. Non-Maximum Suppression (NMS) được áp dụng để tinh chỉnh các phát hiện này, giữ lại các box chính xác nhất. Model loại bỏ các box thừa và chồng chéo bằng cách áp dụng NMS và chỉ giữ lại những phát hiện có độ tin cậy cao nhất.
NMS hoạt động bằng cách đánh giá confidence score (chỉ ra khả năng một đối tượng được phát hiện có thực sự hiện diện hay không) của tất cả các bounding box và triệt tiêu những box chồng chéo đáng kể với các box có điểm số cao hơn.

Hình 5. Một ví dụ về non-maximum suppression. (nguồn: towardsdatascience.com)
Dưới đây là tóm tắt các bước trong NMS:
- Sắp xếp: Các bounding box được sắp xếp theo confidence score của chúng theo thứ tự giảm dần.
- Lựa chọn: Box có điểm số cao nhất được chọn, và tất cả các box chồng chéo đáng kể (dựa trên Intersection over Union, IoU) với nó sẽ bị loại bỏ.
- Lặp lại: Quá trình này lặp lại cho box có điểm số cao nhất tiếp theo và tiếp tục cho đến khi tất cả các box đã được xử lý.
Tổng hợp lại, model R-CNN phát hiện các đối tượng bằng cách tạo ra các region proposal, trích xuất đặc trưng bằng CNN, phân loại đối tượng và tinh chỉnh vị trí của chúng bằng bounding box regression, và sử dụng Non-Maximum Suppression (NMS) để chỉ giữ lại những phát hiện chính xác nhất.
Link to this sectionR-CNN là một cột mốc trong object detection#
R-CNN là một model mang tính bước ngoặt trong lịch sử object detection vì nó đã giới thiệu một phương pháp mới giúp cải thiện đáng kể độ chính xác và hiệu suất. Trước R-CNN, các model object detection gặp khó khăn trong việc cân bằng giữa tốc độ và độ chính xác. Phương pháp tạo region proposal và sử dụng CNN để trích xuất đặc trưng của R-CNN cho phép định vị và nhận dạng đối tượng chính xác trong hình ảnh.
R-CNN đã mở đường cho các model như Fast R-CNN, Faster R-CNN và Mask R-CNN, giúp tăng cường hơn nữa hiệu quả và độ chính xác. Bằng cách kết hợp deep learning với phân tích dựa trên vùng, R-CNN đã thiết lập một tiêu chuẩn mới trong lĩnh vực này và mở ra khả năng cho nhiều ứng dụng thực tế.
Link to this sectionThay đổi lĩnh vực hình ảnh y tế với R-CNN#
Một trường hợp sử dụng thú vị của R-CNN là trong medical imaging. Các model R-CNN đã được sử dụng để phát hiện và phân loại các loại khối u khác nhau, chẳng hạn như brain tumors, trong các bản quét y tế như MRI và CT. Việc sử dụng model R-CNN trong hình ảnh y tế giúp cải thiện độ chính xác chẩn đoán và hỗ trợ các radiologists phát hiện các bệnh ác tính ở giai đoạn sớm. Khả năng của R-CNN trong việc phát hiện ngay cả các khối u nhỏ và ở giai đoạn đầu có thể tạo ra sự khác biệt đáng kể trong điều trị và tiên lượng các bệnh như ung thư.

Hình 6. Phát hiện khối u não sử dụng RCNN.
Model R-CNN có thể được áp dụng cho các tác vụ hình ảnh y tế khác ngoài việc phát hiện khối u. Ví dụ, nó có thể xác định các vết gãy xương, phát hiện các bệnh võng mạc trong bản quét mắt và phân tích hình ảnh phổi cho các tình trạng như viêm phổi và COVID-19. Bất kể vấn đề y tế là gì, việc phát hiện sớm có thể dẫn đến better patient outcomes. Bằng cách áp dụng sự chính xác của R-CNN trong việc nhận diện và định vị các điểm bất thường, các nhà cung cấp healthcare có thể cải thiện độ tin cậy và tốc độ chẩn đoán y tế. Với việc object detection hợp lý hóa quy trình chẩn đoán, bệnh nhân có thể hưởng lợi từ các kế hoạch điều trị kịp thời và chính xác.
Link to this sectionCác hạn chế của R-CNN và những người kế nhiệm#
Mặc dù rất ấn tượng, R-CNN có những nhược điểm nhất định, như độ phức tạp tính toán cao và thời gian inference chậm. Những nhược điểm này làm cho model R-CNN không phù hợp cho các ứng dụng thời gian thực. Việc tách biệt các region proposal và phân loại thành các bước riêng biệt có thể dẫn đến hiệu suất kém hiệu quả.
Qua nhiều năm, nhiều model object detection đã ra đời nhằm giải quyết những lo ngại này. Fast R-CNN kết hợp các region proposal và trích xuất đặc trưng CNN thành một bước duy nhất, giúp tăng tốc quy trình. Faster R-CNN giới thiệu Region Proposal Network (RPN) để hợp lý hóa việc tạo đề xuất, trong khi Mask R-CNN bổ sung tính năng segmentation cấp độ pixel để có các phát hiện chi tiết hơn.

Hình 7. So sánh R-CNN, Fast R-CNN, Faster R-CNN và Mask R-CNN.
Cùng khoảng thời gian với Faster R-CNN, dòng YOLO (You Only Look Once) đã bắt đầu thúc đẩy object detection thời gian thực. Các model YOLO dự đoán bounding box và xác suất class trong một lần truyền duy nhất qua mạng. Ví dụ, Ultralytics YOLOv8 cung cấp độ chính xác và tốc độ được cải thiện cùng các tính năng nâng cao cho nhiều tác vụ thị giác máy tính.
Link to this sectionCác điểm chính cần lưu ý#
RCNN đã thay đổi cuộc chơi trong thị giác máy tính, cho thấy deep learning có thể thay đổi object detection như thế nào. Thành công của nó đã truyền cảm hứng cho nhiều ý tưởng mới trong lĩnh vực này. Mặc dù các model mới hơn như Faster R-CNN và YOLO đã xuất hiện để khắc phục các lỗi của RCNN, sự đóng góp của nó vẫn là một cột mốc quan trọng cần ghi nhớ.
Khi nghiên cứu tiếp tục phát triển, chúng ta sẽ thấy các model object detection tốt hơn và nhanh hơn nữa. Những tiến bộ này sẽ không chỉ cải thiện cách máy móc hiểu thế giới mà còn dẫn đến tiến bộ trong nhiều ngành công nghiệp. Tương lai của object detection thật thú vị!
Bạn muốn tiếp tục khám phá về AI? Hãy trở thành một phần của community của Ultralytics! Khám phá GitHub repository của chúng tôi để xem những đổi mới mới nhất về trí tuệ nhân tạo. Kiểm tra các giải pháp AI của chúng tôi trải rộng trên nhiều lĩnh vực như agriculture và manufacturing. Hãy tham gia cùng chúng tôi để học hỏi và phát triển!






