Table of Contents
Method introduction
Home Technology peripherals AI Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Jun 06, 2024 pm 12:20 PM
ai Model

The benchmark YOLO series of target detection systems has once again received a major upgrade.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Since the release of YOLOv9 in February this year, the baton of the YOLO (You Only Look Once) series has been passed to the hands of researchers at Tsinghua University.

Last weekend, the news of the launch of YOLOv10 attracted the attention of the AI ​​industry. It is considered a breakthrough framework in the field of computer vision and is known for its real-time end-to-end object detection capabilities, continuing the legacy of the YOLO series by providing a powerful solution that combines efficiency and accuracy.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Paper address: https://arxiv.org/pdf/2405.14458

Project address: https://github.com/THU-MIG/yolov10

After the new version was released, many people have conducted deployment tests and the results are good:

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list


Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

YOLO has always been the leader in the field of real-time target detection because of its powerful performance and low consumption of computing power. Main paradigm. The framework is widely used in various practical applications, including autonomous driving, surveillance and logistics. Its efficient and accurate object detection capabilities make it ideal for tasks such as identifying pedestrians and vehicles in real time; in logistics, it helps with inventory management and package tracking, and its AI capabilities help people improve efficiency in many tasks.

Over the past few years, researchers have explored YOLO’s architectural design, optimization goals, data enhancement strategies, etc., and have made significant progress. However, post-processing's reliance on non-maximum suppression (NMS) hinders end-to-end deployment of YOLO and adversely affects inference latency. Furthermore, the design of individual components in YOLO lacks a comprehensive and thorough examination, resulting in significant computational redundancy and limiting the capabilities of the model.

The breakthrough of YOLOv10 is to further improve the performance-efficiency boundary of YOLO in terms of post-processing and model architecture.

To this end, the research team proposed for the first time consistent dual assignment (consistent dual assignment) of YOLO without NMS training, which makes YOLO better in terms of performance and inference latency. improved.

The research team proposed an overall efficiency-accuracy-driven model design strategy for YOLO, fully optimizing each component of YOLO from the perspectives of efficiency and accuracy, greatly reducing computing overhead and Enhanced model capabilities.

Extensive experiments show that YOLOv10 achieves SOTA performance and efficiency at various model sizes. For example, YOLOv10-S is 1.8x faster than RT-DETR-R18 at similar APs on COCO, while significantly reducing the number of parameters and FLOPs. Compared with YOLOv9-C, YOLOv10-B has 46% less latency and 25% fewer parameters with the same performance.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Method introduction

In order to achieve overall efficiency-accuracy-driven model design, the research team started from Improvement methods are proposed in terms of efficiency and accuracy.

In order to improve efficiency, this study proposes a lightweight classification head, spatial-channel (spatial-channel) decoupled downsampling and sorting guidance block design to reduce obvious computational redundancy. and achieve a more efficient architecture.

In order to improve the accuracy, the research team explored large kernel convolution and proposed an effective partial self-attention (PSA) module to enhance model capabilities at low Unlock the potential for performance improvements at low cost. Based on these methods, the team successfully implemented a series of real-time end-to-end detectors of different scales, namely YOLOv10-N/S/M/B/L/X.

Consistent dual allocation for NMS-free training

During training, YOLO typically utilizes TAL for each Instance allocate multiple positive samples. The one-to-many allocation approach generates rich supervision signals that facilitate optimization and enable the model to achieve superior performance.

However, this requires YOLO to rely on NMS post-processing, which results in sub-optimal inference efficiency when deployed. While previous research works have explored one-to-one matching to suppress redundant predictions, they often introduce additional inference overhead.

Unlike one-to-many assignment, one-to-one matching assigns only one prediction to each ground truth, avoiding NMS post-processing. However, this leads to weak supervision, so that the accuracy and convergence speed are not ideal. Fortunately, this deficiency can be remedied by one-to-many allocation.

The "dual label allocation" proposed in this study combines the advantages of the above two strategies. As shown in the figure below, this research introduces another one-to-one head for YOLO. It retains the same structure and adopts the same optimization goals as the original one-to-many branch, but utilizes one-to-one matching to obtain label assignments. During training, the two heads are jointly optimized to provide rich supervision; during inference, YOLOv10 discards the one-to-many head and utilizes the one-to-one head to make predictions. This enables YOLO to be deployed end-to-end without incurring any additional inference costs.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

##Overall efficiency-accuracy-driven model design

Except for the last In addition to processing, YOLO's model architecture also poses a huge challenge to the efficiency-accuracy trade-off. Although previous research efforts have explored various design strategies, a comprehensive examination of the various components in YOLO is still lacking. Therefore, the model architecture exhibits non-negligible computational redundancy and limited capabilities.

The components in YOLO include stems, downsampling layers, stages with basic building blocks, and heads. The author mainly performs efficiency-driven model design for the following three parts.

  1. Lightweight classification head
  2. Spatial channel decoupling downsampling
  3. Ranking-guided module design

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

In order to achieve accuracy-driven model design, the research team further explored large-kernel convolution and self-attention Force mechanism is designed to improve model performance at minimal cost.

Experiment

As shown in Table 1, YOLOv10 developed by the Tsinghua team achieved SOTA performance and End-to-end latency.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

The study also conducted ablation experiments for YOLOv10-S and YOLOv10-M. The experimental results are shown in the following table:

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

As shown in the table below, dual-label allocation achieves the best AP-latency trade-off, and optimal performance is achieved with a consistent matching metric.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

As shown in the table below, each design component includes lightweight classification head, spatial channel solution Coupled downsampling and sequencing-guided module design both help reduce parameter count, FLOPs, and latency. Importantly, these improvements are achieved while maintaining excellent performance.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

## Analysis for accuracy-driven model design. The researchers present results from the stepwise integration of accuracy-driven design elements based on YOLOv10-S/M.

As shown in Table 10, the use of large-core convolution and PSA modules improves the performance of YOLOv10-S by 0.4% AP and 1.4% AP respectively with a minimum delay increase of 0.03ms and 0.15ms. Significantly improved.

Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list

The above is the detailed content of Tsinghua University took over and YOLOv10 came out: the performance was greatly improved and it was on the GitHub hot list. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1246
24
How to understand DMA operations in C? How to understand DMA operations in C? Apr 28, 2025 pm 10:09 PM

DMA in C refers to DirectMemoryAccess, a direct memory access technology, allowing hardware devices to directly transmit data to memory without CPU intervention. 1) DMA operation is highly dependent on hardware devices and drivers, and the implementation method varies from system to system. 2) Direct access to memory may bring security risks, and the correctness and security of the code must be ensured. 3) DMA can improve performance, but improper use may lead to degradation of system performance. Through practice and learning, we can master the skills of using DMA and maximize its effectiveness in scenarios such as high-speed data transmission and real-time signal processing.

How to use the chrono library in C? How to use the chrono library in C? Apr 28, 2025 pm 10:18 PM

Using the chrono library in C can allow you to control time and time intervals more accurately. Let's explore the charm of this library. C's chrono library is part of the standard library, which provides a modern way to deal with time and time intervals. For programmers who have suffered from time.h and ctime, chrono is undoubtedly a boon. It not only improves the readability and maintainability of the code, but also provides higher accuracy and flexibility. Let's start with the basics. The chrono library mainly includes the following key components: std::chrono::system_clock: represents the system clock, used to obtain the current time. std::chron

Quantitative Exchange Ranking 2025 Top 10 Recommendations for Digital Currency Quantitative Trading APPs Quantitative Exchange Ranking 2025 Top 10 Recommendations for Digital Currency Quantitative Trading APPs Apr 30, 2025 pm 07:24 PM

The built-in quantization tools on the exchange include: 1. Binance: Provides Binance Futures quantitative module, low handling fees, and supports AI-assisted transactions. 2. OKX (Ouyi): Supports multi-account management and intelligent order routing, and provides institutional-level risk control. The independent quantitative strategy platforms include: 3. 3Commas: drag-and-drop strategy generator, suitable for multi-platform hedging arbitrage. 4. Quadency: Professional-level algorithm strategy library, supporting customized risk thresholds. 5. Pionex: Built-in 16 preset strategy, low transaction fee. Vertical domain tools include: 6. Cryptohopper: cloud-based quantitative platform, supporting 150 technical indicators. 7. Bitsgap:

How to handle high DPI display in C? How to handle high DPI display in C? Apr 28, 2025 pm 09:57 PM

Handling high DPI display in C can be achieved through the following steps: 1) Understand DPI and scaling, use the operating system API to obtain DPI information and adjust the graphics output; 2) Handle cross-platform compatibility, use cross-platform graphics libraries such as SDL or Qt; 3) Perform performance optimization, improve performance through cache, hardware acceleration, and dynamic adjustment of the details level; 4) Solve common problems, such as blurred text and interface elements are too small, and solve by correctly applying DPI scaling.

What is real-time operating system programming in C? What is real-time operating system programming in C? Apr 28, 2025 pm 10:15 PM

C performs well in real-time operating system (RTOS) programming, providing efficient execution efficiency and precise time management. 1) C Meet the needs of RTOS through direct operation of hardware resources and efficient memory management. 2) Using object-oriented features, C can design a flexible task scheduling system. 3) C supports efficient interrupt processing, but dynamic memory allocation and exception processing must be avoided to ensure real-time. 4) Template programming and inline functions help in performance optimization. 5) In practical applications, C can be used to implement an efficient logging system.

How to use string streams in C? How to use string streams in C? Apr 28, 2025 pm 09:12 PM

The main steps and precautions for using string streams in C are as follows: 1. Create an output string stream and convert data, such as converting integers into strings. 2. Apply to serialization of complex data structures, such as converting vector into strings. 3. Pay attention to performance issues and avoid frequent use of string streams when processing large amounts of data. You can consider using the append method of std::string. 4. Pay attention to memory management and avoid frequent creation and destruction of string stream objects. You can reuse or use std::stringstream.

How to measure thread performance in C? How to measure thread performance in C? Apr 28, 2025 pm 10:21 PM

Measuring thread performance in C can use the timing tools, performance analysis tools, and custom timers in the standard library. 1. Use the library to measure execution time. 2. Use gprof for performance analysis. The steps include adding the -pg option during compilation, running the program to generate a gmon.out file, and generating a performance report. 3. Use Valgrind's Callgrind module to perform more detailed analysis. The steps include running the program to generate the callgrind.out file and viewing the results using kcachegrind. 4. Custom timers can flexibly measure the execution time of a specific code segment. These methods help to fully understand thread performance and optimize code.

Steps to add and delete fields to MySQL tables Steps to add and delete fields to MySQL tables Apr 29, 2025 pm 04:15 PM

In MySQL, add fields using ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column, delete fields using ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop. When adding fields, you need to specify a location to optimize query performance and data structure; before deleting fields, you need to confirm that the operation is irreversible; modifying table structure using online DDL, backup data, test environment, and low-load time periods is performance optimization and best practice.

See all articles