R-CNN là gì? Tổng quan nhanh
Tìm hiểu cách R-CNN hoạt động, từ selective search và trích xuất đặc trưng CNN đến phân loại SVM và NMS, cũng như cách R-CNN mở đường cho Fast R-CNN và YOLO.
Abirami Vina11 phút đọc
Phát hiện đối tượng là một tác vụ thị giác máy tính có thể nhận diện và xác định vị trí đối tượng trong ảnh hoặc video, phục vụ các ứng dụng như xe tự hành, giám sát và chẩn đoán hình ảnh y tế. Các phương pháp phát hiện đối tượng trước đây, chẳng hạn như bộ phát hiện Viola-Jones và Histogram of Oriented Gradients (HOG) kết hợp với Máy vector hỗ trợ (SVM), dựa vào đặc trưng được thiết kế thủ công và cửa sổ trượt. Các phương pháp này thường gặp khó khăn khi phát hiện chính xác đối tượng trong cảnh phức tạp có nhiều đối tượng với hình dạng và kích thước khác nhau.
Mạng neural tích chập dựa trên vùng (R-CNN) đã thay đổi cách chúng ta giải quyết bài toán phát hiện đối tượng. Đây là một cột mốc quan trọng trong lịch sử thị giác máy tính. Để hiểu sự ra đời của các model như Ultralytics YOLOv8, trước tiên chúng ta cần hiểu các model như R-CNN.
Được Ross Girshick và nhóm của ông phát triển, kiến trúc model R-CNN tạo ra các đề xuất vùng, trích xuất đặc trưng bằng Mạng neural tích chập (CNN) được huấn luyện trước, phân loại đối tượng và tinh chỉnh hộp giới hạn. Quy trình này có thể nghe phức tạp, nhưng đến cuối bài viết, bạn sẽ hiểu rõ cách R-CNN hoạt động và lý do model này có tác động lớn.
R-CNN hoạt động như thế nào?#
Quy trình phát hiện đối tượng của model R-CNN gồm ba bước chính: tạo vùng đề xuất, trích xuất đặc trưng, phân loại đối tượng đồng thời tinh chỉnh hộp giới hạn. Hãy cùng tìm hiểu từng bước.

Hình 1. Cách R-CNN hoạt động.
Vùng đề xuất: Nền tảng của R-CNN#
Ở bước đầu tiên, model R-CNN quét hình ảnh để tạo ra nhiều vùng đề xuất. Vùng đề xuất là những khu vực tiềm năng có thể chứa đối tượng. Các phương pháp như Selective Search được dùng để xem xét nhiều khía cạnh của hình ảnh, chẳng hạn màu sắc, kết cấu và hình dạng, rồi chia hình ảnh thành các phần khác nhau. Selective Search bắt đầu bằng cách chia ảnh thành những phần nhỏ hơn, sau đó gộp 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 tạo được khoảng 2.000 vùng đề xuất.

Hình 2. Cách Selective Search hoạt động.
Các vùng đề xuất này giúp xác định mọi vị trí có thể có đối tượng. Trong những bước tiếp theo, model có thể xử lý hiệu quả các khu vực phù hợp 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 vùng đề xuất giúp cân bằng giữa tính toàn diện và hiệu quả tính toán.
Trích xuất đặc trưng hình ảnh: Nắm bắt chi tiết#
Bước tiếp theo trong quy trình phát hiện đối tượng của model R-CNN là trích xuất đặc trưng từ các vùng đề xuất. Mỗi vùng đề xuất được thay đổi về cùng một kích thước mà CNN yêu cầu (ví dụ: 224x224 pixel). Việc đổi kích thước giúp CNN xử lý từng vùng đề xuất hiệu quả. Trước khi biến dạng, kích thước của mỗi vùng đề xuất được mở rộng nhẹ để bổ sung 16 pixel ngữ cảnh xung quanh vùng, cung cấp thêm thông tin lân cận nhằm cải thiện quá trình trích xuất đặc trưng.
Sau khi đổi kích thước, các vùng đề xuất được đưa vào CNN như AlexNet, thường đã được huấn luyện trước 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 nhiều chiều, nắm bắt những chi tiết quan trọng như cạnh, kết cấu và mẫu. 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 tiếp. Việc phân loại và định vị đối tượng chính xác ở các giai đoạn tiếp theo phụ thuộc vào bước chuyển đổi quan trọng này, biến thông tin hình ảnh thành dữ liệu có ý nghĩa.

Hình 3. Trích xuất đặc trưng từ vùng đề xuất bằng AlexNet.
Phân loại đối tượng: Nhận diện đối tượng được phát hiện#
Bước thứ ba là phân loại đố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 lớp của từng đối tượng được tìm thấy trong các vùng đề xuất. Sau đó, các vector đặc trưng đã trích xuất được đưa qua bộ phân loại machine learning.
Trong R-CNN, máy vector hỗ trợ (SVM) thường được dùng cho mục đích này. Mỗi SVM được huấn luyện để nhận diện một lớp đối tượng cụ thể bằng cách phân tích các vector đặc trưng và quyết định liệu một vùng nhất định có chứa một đối tượng thuộc lớp đó hay không. Về cơ bản, mỗi danh mục đối tượng có một bộ phân loại riêng, kiểm tra từng vùng đề xuất để tìm đối tượng cụ thể đó.
Trong quá trình huấn luyện, các bộ phân loại được cung cấp dữ liệu có nhãn gồm mẫu dương và mẫu âm:
- Mẫu dương: Các vùng chứa đối tượng mục tiêu.
- Mẫu âm: Các vùng không chứa đối tượng.
Các bộ phân loại học cách phân biệt những mẫu này. Hồi quy hộp giới hạn tiếp tục tinh chỉnh vị trí và kích thước của đối tượng được phát hiện bằng cách điều chỉnh các hộp giới hạn đượ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ể nhận diện và định vị đối tượng chính xác bằng cách kết hợp phân loại với hồi quy hộp giới hạn.

Hình 4. Ví dụ về hồi quy hộp giới hạn. (nguồn: towardsdatascience.com)
Kết hợp các bước: Tinh chỉnh kết quả phát hiện bằng NMS#
Sau các bước phân loại và hồi quy hộp giới hạn, model thường tạo ra nhiều hộp giới hạn chồng lấn cho cùng một đối tượng. Loại bỏ phi cực đại (NMS) được áp dụng để tinh chỉnh các kết quả phát hiện và giữ lại những hộp chính xác nhất. Model loại bỏ các hộp dư thừa và chồng lấn bằng NMS, chỉ giữ lại những kết quả phát hiện có độ tin cậy cao nhất.
NMS hoạt động bằng cách đánh giá điểm tin cậy của tất cả hộp giới hạn (cho biết khả năng đối tượng được phát hiện thực sự hiện diện) và loại bỏ những hộp chồng lấn đáng kể với các hộp có điểm cao hơn.

Hình 5. Ví dụ về ức chế phi cực đại. (nguồn: towardsdatascience.com)
Dưới đây là các bước của NMS:
- Sắp xếp: Các hộp giới hạn được sắp xếp theo điểm tin cậy giảm dần.
- Chọn: Hộp có điểm cao nhất được chọn, sau đó tất cả hộp chồng lấn đáng kể với hộp đó (dựa trên giao trên hợp (IoU)) sẽ bị loại bỏ.
- Lặp: Quy trình này lặp lại với hộp có điểm cao tiếp theo và tiếp tục cho đến khi xử lý hết các hộp.
Tóm lại, model R-CNN phát hiện đối tượng bằng cách tạo các đề xuất vùng, trích xuất đặc trưng bằng CNN, phân loại đối tượng và tinh chỉnh vị trí bằng hồi quy hộp giới hạn, sau đó dùng NMS để chỉ giữ lại những kết quả phát hiện chính xác nhất.
R-CNN là cột mốc trong lĩnh vực phát hiện đối tượng#
R-CNN là model mang tính bước ngoặt trong lịch sử phát hiện đối tượng vì đã 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 năng. Trước R-CNN, các model phát hiện đối tượng gặp khó khăn trong việc cân bằng tốc độ và độ chính xác. Phương pháp tạo đề xuất vùng và sử dụng CNN để trích xuất đặc trưng của R-CNN cho phép định vị và nhận diện chính xác đối tượng trong ảnh.
R-CNN mở đường cho các model như Fast R-CNN, Faster R-CNN và Mask R-CNN, những model tiếp tục cải thiện 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 nhiều khả năng ứng dụng thực tế.
Chuyển đổi chẩn đoán hình ảnh bằng R-CNN#
Một trường hợp ứng dụng thú vị của R-CNN là trong chẩn đoán hình ảnh y tế. Các model R-CNN đã được sử dụng để phát hiện và phân loại nhiều loại khối u, chẳng hạn như u não, trong các ảnh y tế như MRI và CT. Sử dụng model R-CNN trong chẩn đoán hình ảnh y tế giúp cải thiện độ chính xác chẩn đoán và hỗ trợ bác sĩ X-quang phát hiện khối u ác tính ở giai đoạn sớm. Khả năng phát hiện cả những khối u nhỏ và ở giai đoạn đầu của R-CNN có thể tạo ra 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 u não bằng R-CNN.
Model R-CNN có thể được áp dụng cho các tác vụ chẩn đoán hình ảnh khác ngoài phát hiện khối u. Ví dụ, model có thể nhận diện chỗ gãy xương, phát hiện bệnh võng mạc trong ảnh chụp mắt và phân tích ảnh phổi để tìm các tình trạng như viêm phổi và COVID-19. Bất kể vấn đề sức khỏe nào, phát hiện sớm có thể giúp cải thiện kết quả điều trị cho bệnh nhân. Bằng cách tận dụng độ chính xác của R-CNN trong việc nhận diện và định vị bất thường, các đơn vị chăm sóc sức khỏe có thể cải thiện độ tin cậy và tốc độ chẩn đoán y tế. Khi phát hiện đối tượng giúp tinh giản quy trình chẩn đoán, bệnh nhân có thể được hưởng lợi từ kế hoạch điều trị kịp thời và chính xác.
Hạn chế của R-CNN và các model kế nhiệm#
Dù ấn tượng, R-CNN vẫn có một số nhược điểm như độ phức tạp tính toán cao và thời gian suy luận chậm. Những hạn chế này khiến model R-CNN không phù hợp với các ứng dụng thời gian thực. Việc tách vùng đề xuất và phân loại thành các bước riêng biệt có thể làm giảm hiệu quả hoạt động.
Trong những năm qua, nhiều model phát hiện đối tượng đã ra đời để giải quyết các vấn đề này. Fast R-CNN chạy CNN một lần trên toàn bộ ảnh và tổng hợp đặc trưng cho từng vùng đề xuất từ bản đồ đặc trưng dùng chung, nhờ đó tăng tốc quá trình xử lý. Faster R-CNN giới thiệu Mạng đề xuất vùng (RPN) để tinh giản quá trình tạo vùng đề xuất, còn Mask R-CNN bổ sung phân đoạn ở cấp pixel để 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 sự phát triển của phát hiện đối tượng theo thời gian thực. Các model YOLO dự đoán hộp giới hạn và xác suất lớp chỉ trong một lượt truyền qua mạng. Ví dụ, Ultralytics YOLOv8 cải thiện độ chính xác và tốc độ với các tính năng nâng cao cho nhiều tác vụ thị giác máy tính; các model mới hơn như Ultralytics YOLO26 còn tiến xa hơn bằng cách loại bỏ hoàn toàn NMS.
Điểm chính cần ghi nhớ#
R-CNN là bước ngoặt trong lĩnh vực thị giác máy tính, cho thấy deep learning có thể chuyển đổi bài toán phát hiện đối tượng như thế nào. Thành công của R-CNN truyền cảm hứng cho nhiều ý tưởng mới trong lĩnh vực này. Dù các model mới hơn như Faster R-CNN và YOLO đã khắc phục những hạn chế của R-CNN, đóng góp của R-CNN vẫn là một cột mốc lớn đáng ghi nhớ.
Khi nghiên cứu tiếp tục phát triển, chúng ta sẽ chứng kiến các model phát hiện đối tượng tốt hơn và nhanh hơn. Những tiến bộ này không chỉ cải thiện cách máy móc hiểu thế giới mà còn thúc đẩy sự phát triển trong nhiều ngành.
Bạn muốn tiếp tục khám phá AI? Hãy tham gia cộng đồng Ultralytics! Khám phá kho lưu trữ GitHub của chúng tôi để xem những đổi mới mới nhất về trí tuệ nhân tạo. Tìm hiểu các giải pháp AI trải rộng trên nhiều lĩnh vực như nông nghiệp và sản xuất. Hãy tham gia cùng chúng tôi để học hỏi và cùng thúc đẩy tiến bộ!
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










