Hiện nay, YOLOv7 là phiên bản của phát hiện đối tượng nhằm xác định vùng quan tâm trên ảnh và đồng thời phân loại các vùng đó tương tự như phân loại hình ảnh. Tuy nhiên, điều làm cho bài toán này phức tạp hơn là một bức ảnh có thể chứa nhiều vùng quan tâm đến các đối tượng khác nhau, và việc nhận diện chúng cùng lúc đòi hỏi hiệu suất và độ chính xác cao.
YOLO (You Only Look Once) là một mô hình phát hiện đối tượng phổ biến, được biết đến với tốc độ xử lý nhanh và độ chính xác ấn tượng. Mô hình này được giới thiệu lần đầu vào năm 2016 bởi Joseph Redmon và đồng nghiệp. Từ đó, YOLO đã trải qua nhiều phiên bản và cải tiến, trong đó YOLOv7 là một phiên bản gần đây đáng chú ý. Trong bài viết này, chúng ta sẽ tìm hiểu về những điểm làm nổi bật YOLO v7 và so sánh nó với các thuật toán phát hiện đối tượng khác.
Trước hết, cần hiểu về phát hiện đối tượng
Trong phần này, chúng ta sẽ khám phá chi tiết về phát hiện đối tượng, có bao nhiêu loại phát hiện đối tượng quan trọng trong thế giới hiện đại của công nghệ.
Phát hiện đối tượng là gì?
Phát hiện đối tượng, một bài toán quan trọng trong thị giác máy tính, liên quan đến việc xác định và định vị các đối tượng trong hình ảnh hoặc video. Đây là một yếu tố quan trọng của nhiều ứng dụng hiện đại như hệ thống giám sát thông minh, xe tự lái và thậm chí cả các robot.
Hiểu rõ về Phát hiện đối tượng trước khi tìm hiểu về YOLOv7
Các thuật toán phát hiện đối tượng có thể được phân thành hai loại chính: Phát hiện đối tượng trong một giai đoạn (Single-shot object detection) và phát hiện đối tượng trong hai giai đoạn (Two-shot object detection). Hãy cùng tìm hiểu sâu hơn về cách chúng hoạt động và tại sao chúng quan trọng trong lĩnh vực trí tuệ nhân tạo và thị giác máy tính.
Xử lý dữ liệu ảnh: Tất tần tật điều bạn cần biết
2 loại chính của phát hiện đối tượng:
Phát hiện đối tượng trong thị giác máy tính thường được chia thành hai loại chính. Cụ thể:
Phát hiện 1 giai đoạn (Single-shot object detection)
Single-shot object detection, hay phát hiện đối tượng trong một lần, là một phương pháp phân tích và dự đoán vị trí của các đối tượng trong một bức ảnh hoặc khung hình video bằng cách sử dụng một lần truyền dữ liệu hình ảnh đầu vào. Điều này giúp nó trở nên hiệu quả tính toán, vì nó xử lý toàn bộ hình ảnh chỉ trong một lần chạy.
Tuy nhiên, single-shot object detection thường có độ chính xác kém hơn so với các phương pháp khác, đặc biệt trong việc phát hiện các đối tượng nhỏ hoặc gần nhau. Điều này có thể làm cho nó ít phù hợp trong các tình huống đòi hỏi độ chính xác cao.
Một trong những thuật toán nổi tiếng sử dụng single-shot object detection là YOLO (You Only Look Once), mà sử dụng mạng nơ-ron tích chập (CNN) để xử lý hình ảnh và đưa ra dự đoán. YOLO thích hợp cho các ứng dụng yêu cầu xử lý thời gian thực, như xe tự lái và hệ thống camera giám sát thông minh.
Phát hiện hai giai đoạn (Two-shot object detection)
Two-shot object detection, hay phát hiện đối tượng hai lần, là một phương pháp sử dụng hai lần truyền hình ảnh đầu vào để đưa ra dự đoán về sự hiện diện và vị trí của các đối tượng. Trong lần đầu tiên, nó sử dụng để tạo ra một tập hợp các đề xuất hoặc vị trí tiềm năng của đối tượng.
Lần thứ hai được sử dụng để điều chỉnh và tinh chỉnh các đề xuất này và cuối cùng đưa ra dự đoán chính xác. Cách tiếp cận này thường chính xác hơn so với single-shot object detection, nhưng đôi khi đòi hỏi nhiều tính toán hơn.
Sự lựa chọn giữa single-shot và two-shot object detection thường phụ thuộc vào yêu cầu và ràng buộc cụ thể của ứng dụng. Single-shot object detection thường phù hợp cho các ứng dụng thời gian thực, trong khi two-shot object detection thích hợp cho các ứng dụng đòi hỏi độ chính xác cao hơn.
Dịch vụ gán nhãn – chú thích dữ liệu là gì?
Vậy còn, YOLO là gì? Nó hoạt động như thế nào?
Trong phần này của bài viết này sẽ giới thiệu bạn về YOLO là gì và cách nó hoạt động, cung cấp một cái nhìn sâu hơn về cách thuật toán này giúp máy tính nhận biết và định vị các đối tượng trong hình ảnh và video. Hãy cùng khám phá cách YOLO đang thay đổi cách chúng ta tương tác với thế giới số hóa.
YOLO là một thuật toán phát hiện đối tượng trong thị giác máy tính, vậy phiên bản YOLOv7 có gì đặc biệt?
YOLO là gì?
YOLO, hay “You Only Look Once,” là một thuật toán phát hiện đối tượng trong thị giác máy tính. Điểm đặc biệt của YOLO nằm ở cách nó đưa ra dự đoán về các hộp giới hạn (bounding box) và xác suất của đối tượng trong một lần truyền hình ảnh duy nhất.
Trước đây, các thuật toán phát hiện đối tượng thường sử dụng trình phân loại đã đào tạo sẵn để xác định đối tượng sau khi đã tạo ra các khu vực quan tâm có thể có. Tuy nhiên, YOLO làm khác đi bằng cách đưa ra dự đoán toàn bộ quá trình trong một lần chạy, từ việc xác định vị trí của đối tượng đến việc phân loại chúng.
Với cách tiếp cận đột phá này, YOLO đã đạt được sự cải tiến đáng kể và vượt trội so với các thuật toán phát hiện đối tượng khác, đặc biệt trong việc đảm bảo tính thời gian thực.
Các thuật toán phát hiện đối tượng trước đây, như Faster RCNN, thường hoạt động theo các bước gồm việc xác định khu vực quan tâm và sau đó tiến hành phân loại trên từng khu vực riêng biệt. Trong khi đó, YOLO hoàn tất tất cả các dự đoán chỉ trong một lần chạy, giúp nó đạt được hiệu quả tính toán cao.
Với sự đột phá của YOLO, đã có nhiều phiên bản mới và cải tiến được giới thiệu kể từ lần ra mắt đầu tiên vào năm 2015, mang lại sự phát triển đáng kể cho lĩnh vực phát hiện đối tượng. Hãy cùng điểm qua các mốc thời gian thể hiện sự tiến bộ của YOLO trong những năm qua.
Kiến trúc YOLO và cơ chế hoạt động
Mô hình YOLO được đào tạo trước với ImageNet, một tập dữ liệu chứa nhiều hình ảnh khác nhau. Sau đó, nó được chuyển đổi để thực hiện phát hiện đối tượng. Lớp kết nối đầy đủ cuối cùng của YOLO thực hiện dự đoán về xác suất của lớp và tọa độ của hộp giới hạn.
Kiến trúc YOLO và cơ chế hoạt động
YOLO chia hình ảnh đầu vào thành một lưới ô lưới có kích thước S x S. Mỗi ô lưới có nhiệm vụ phát hiện đối tượng nếu tâm của đối tượng nằm trong ô đó. Mỗi ô lưới dự đoán B hộp giới hạn và các điểm tin cậy cho mỗi hộp đó. Các điểm tin cậy thể hiện độ tin cậy của mô hình rằng một hộp chứa một đối tượng và mức độ chính xác của dự đoán đó.
YOLO dự đoán nhiều hộp giới hạn trên mỗi ô lưới và sau đó chỉ lựa chọn hộp giới hạn dựa trên chỉ số IOU (Intersection over Union) cao nhất với thực tế. Điều này tạo ra sự chuyên môn hóa giữa các dự đoán hộp giới hạn, giúp cải thiện tổng thể độ chính xác.
NMS (non-maximum suppression) là một kỹ thuật quan trọng trong YOLO, được sử dụng để loại bỏ các hộp giới hạn dư thừa hoặc không chính xác sau khi các dự đoán đã được thực hiện. NMS giúp xác định hộp giới hạn duy nhất cho mỗi đối tượng trong hình ảnh, cải thiện độ chính xác và hiệu quả của việc phát hiện đối tượng.
CÁC LOẠI GÁN NHÃN DỮ LIỆU THƯỜNG GẶP
YOLO V7 có gì cải tiến?
YOLO v7 sử dụng một tập hợp gồm chín anchor boxes, một công cụ quan trọng giúp cải thiện việc xác định đối tượng. Các anchor boxes với các tỷ lệ khung hình khác nhau cho phép YOLOv7 phát hiện hiệu quả các đối tượng có hình dạng và kích thước đa dạng.
Một cải tiến quan trọng trong YOLO v7 là việc sử dụng focal loss function. Trong khi các phiên bản trước sử dụng cross-entropy loss, focal loss tập trung vào việc giảm trọng số cho các ví dụ được phân loại đúng, hỗ trợ việc phát hiện đối tượng khó hơn. Điều này đóng góp đáng kể vào độ chính xác tổng thể.
YOLOv7 có nhiều cải tiến vượt trội hơn trong các dòng sản phẩm YOLO
Độ phân giải của YOLO v7 đã được nâng lên. Nó xử lý hình ảnh ở độ phân giải 608 x 608 pixel, cao hơn so với 416 x 416 pixel trong YOLO v3. Điều này giúp YOLOv7 phát hiện các đối tượng nhỏ hơn và tăng độ chính xác tổng thể của thuật toán.
YOLO v7 vẫn duy trì tốc độ ấn tượng của dòng sản phẩm YOLO. Với khả năng xử lý hình ảnh ở tốc độ 155 khung hình mỗi giây, YOLO v7 vượt trội so với nhiều thuật toán phát hiện đối tượng khác. Điều này làm cho nó trở thành một lựa chọn lý tưởng cho các ứng dụng thời gian thực như giám sát và ô tô tự lái, nơi tốc độ xử lý là yếu tố quan trọng.
Điểm hạn chế của phiên bản YOLO V7
YOLO v7, dù mạnh mẽ và hiệu quả, vẫn tồn tại một số hạn chế như sau:
- Phát hiện đối tượng nhỏ còn hạn chế: YOLOv7 gặp khó khăn trong việc phát hiện các đối tượng nhỏ hoặc ở khoảng cách xa. Điều này đặc biệt quan trọng trong các tình huống đông đúc hoặc khi đối tượng cần phát hiện không nổi bật trong bối cảnh.
- Khó khăn với tỷ lệ và kích thước khung hình khác nhau: YOLOv7 có thể gặp khó khăn trong việc phát hiện đối tượng ở các tỷ lệ khung hình khác nhau. Điều này đôi khi gây khó khăn khi có sự biến đổi về kích thước giữa các đối tượng trong cùng một hình ảnh.
- Nhạy cảm với biến đổi ánh sáng và môi trường: YOLOv7 có thể không ổn định khi ánh sáng hoặc điều kiện môi trường thay đổi. Nó có thể dẫn đến việc không thể phát hiện đối tượng hoặc tạo ra các dự đoán không chính xác trong điều kiện môi trường biến đổi.
- Yêu cầu tính toán nhiều: YOLOv7 yêu cầu nhiều tính toán để xử lý ảnh, điều này có thể gây khó khăn khi cố gắng chạy thuật toán trong thời gian thực trên các thiết bị có tài nguyên hạn chế như điện thoại thông minh. Việc cải thiện tốc độ suy luận có thể đòi hỏi sự đầu tư vào phần cứng mạnh mẽ.
Data Annotation là gì? Ứng dụng thực tế
Các phiên bản trước đó của YOLO V7
YOLO, viết tắt của “You Only Look Once,” đã trải qua nhiều phiên bản với sự phát triển liên tục để tăng hiệu suất và độ chính xác. Dưới đây là sự phát triển của các phiên bản YOLO:
Trước YOLOV7 đã có nhiều phiên bản YOLO khác nhau
YOLO v2 (YOLO9000)
Phiên bản này được giới thiệu vào năm 2016 và được biết đến với tên YOLO9000. YOLO v2 được thiết kế để nhanh hơn và chính xác hơn phiên bản gốc. Nó cung cấp khả năng phát hiện nhiều loại đối tượng hơn. Cải tiến quan trọng trong YOLO v2 bao gồm việc sử dụng anchor boxes, chuẩn hóa hàng loạt, và chiến lược đào tạo đa quy mô.
YOLO v3
YOLO v3, ra mắt vào năm 2018, tập trung vào việc tăng độ chính xác và tốc độ của thuật toán. Nó sử dụng một kiến trúc CNN mới có tên Darknet-53 và anchor boxes được điều chỉnh để phù hợp với kích thước và hình dạng của đối tượng. YOLO v3 cũng giới thiệu feature pyramid networks (FPN) để cải thiện phát hiện ở nhiều tỷ lệ khung hình. Điều này cải thiện hiệu suất phát hiện trên các đối tượng nhỏ.
YOLO v4
YOLO v4, giới thiệu vào năm 2020, sử dụng một kiến trúc CNN mới có tên là CSPNet và sử dụng anchor boxes với k-means clustering. Nó giới thiệu một loss function mới gọi là GHM loss và cải thiện kiến trúc của FPN so với YOLO v3.
YOLO v5
YOLO v5, được giới thiệu vào năm 2020, sử dụng kiến trúc phức tạp hơn gọi là EfficientDet và đào tạo trên tập dữ liệu lớn hơn (D5) bao gồm nhiều danh mục đối tượng. Nó sử dụng dynamic anchor boxes, spatial pyramid pooling (SPP), và CIoU loss để cải thiện hiệu suất đối tượng phát hiện trên nhiều loại đối tượng.
YOLO v6
Phiên bản này được đề xuất vào năm 2022 bởi Li và cộng sự. YOLO v6 sử dụng một biến thể của kiến trúc EfficientNet có tên là EfficientNet-L2 và đưa ra dense anchor boxes.
Mỗi phiên bản YOLO đã mang lại cải tiến đáng kể trong việc phát hiện đối tượng với việc sử dụng các kiến thức mới, kiến trúc mạng nâng cấp và phương pháp đào tạo tốt hơn. Sự phát triển liên tục của YOLO cho thấy cam kết của cộng đồng nghiên cứu trong việc cải thiện thuật toán phát hiện đối tượng và thị giác máy tính.
YOLO v8 – phiên bản nâng cấp của YOLO V7
Sự phát triển liên tục của các phiên bản YOLO làm cho việc phát hiện đối tượng trở nên mạnh mẽ và hiệu quả hơn. API mới hứa hẹn sẽ đơn giản hóa quá trình đào tạo và suy luận, điều này có thể giúp nhiều nhà phát triển xây dựng ứng dụng phát hiện đối tượng một cách dễ dàng hơn.
Được biết, việc hỗ trợ các phiên bản YOLO trước đó là một điểm quan trọng vì nó cho phép sử dụng những cải tiến mới trên các dự án và ứng dụng hiện tại mà không cần phải xây dựng lại từ đầu.
Chúng ta có thể mong đợi một bài báo khoa học chi tiết về YOLO v8 để hiểu rõ hơn về kiến trúc và hiệu suất của mô hình này. Các cải tiến liên tục trong lĩnh vực phát hiện đối tượng chắc chắn sẽ đóng góp vào nhiều lĩnh vực ứng dụng, từ giám sát an ninh đến xe tự động hóa và nhiều lĩnh vực khác.
Federated Learning và ứng dụng vào thực tế
Kết
YOLO (You Only Look Once) là một thuật toán phát hiện đối tượng phổ biến đã cách mạng hóa lĩnh vực thị giác máy tính. Nó nhanh và hiệu quả, là một lựa chọn tuyệt vời cho các nhiệm vụ phát hiện đối tượng thời gian thực. YOLOv7 cũng đã đạt được hiệu suất tiên tiến trên nhiều tiêu chuẩn khác nhau và đã được áp dụng rộng rãi trong nhiều ứng dụng thực tế.
YOLOv7, phiên bản mới nhất, hứa hẹn các cải tiến vượt trội với khả năng suy luận nhanh, hiệu quả và kiến trúc mới. Mặc dù YOLO v7 cũng đối diện với một số hạn chế như phát hiện đối tượng nhỏ và nhạy cảm với thay đổi về ánh sáng, nhưng nó vẫn là một công cụ mạnh mẽ trong lĩnh vực thị giác máy tính. YOLO và các thuật toán phát hiện đối tượng khác hứa hẹn tiếp tục phát triển và cung cấp nhiều cơ hội mới cho cộng đồng nghiên cứu và ứng dụng thực tế.