Developer previewThis feature is a developer preview. Changes and improvements can still be made without prior notice and there are no guarantees that this feature will be fully released in future.
Use cases
Although the initial developer preview release of YOLO-Pro includes general purpose models, in future there will be additional variants optimized specifically for industrial applications. As we work towards a full release of the models, we will provide a list of example use cases where these models excel.Architecture
YOLO-Pro is a set of architectures and associated training scripts written from scratch. They apply the best innovations from classical YOLO architectures and optimize them specifically for the edge. Whereas most YOLO models are expected to run in the cloud on servers, YOLO-Pro architectures have been adapted to achieve top performance on edge hardware, such as accelerators, high-end MCUs, and GPUs.Metrics
Where classical YOLO is optimized for performance on general purpose academic datasets like COCO, YOLO-Pro will be optimized against benchmarks that are relevant for industrial situations, leading to better performance at real-world tasks. The full release of YOLO-Pro will be accompanied by benchmarks. Benchmarks are not available during the developer preview.Limitations
The YOLO-Pro models are being developed with a specific purpose in mind: industrial use cases running on edge devices. The final models are expected to excel and outperform comparable models in these scenarios. Although they may also perform well in additional areas, they are not intended to be generalized models.Using the models in a project
The YOLO-Pro models can be accessed in your project by adding an object detection learning block to your impulse, then selecting the YOLO-Pro architecture and your desired model size on the settings page for the block.Training settings
There are a number of settings specific to the YOLO-Pro models that can be configured. When in doubt, the best approach is to use the EON Tuner to help you decide. Please refer to the learning blocks overview for settings that are common across all learning blocks.Model size
The table below shows approximate sizes for the YOLO-Pro models. To help you choose the appropriate model size for your edge hardware based on its available memory, there is anAuto configure
button. You must first select your target device to use this functionality.
Model size | Parameters | Status |
---|---|---|
pico | 682 K | Developer Preview |
nano | 2.4 M | Developer Preview |
small | 6.9 M | Developer Preview |
medium | 16.6 M | Developer Preview |
large | 30 M | Developer Preview |
xlarge | 39 M | Developer Preview |
Use pre-trained weights
The YOLO-Pro models can use pre-trained weights or be trained from scratch. For most use cases, you will want to enable the use of pre-trained weights, as this will substantially reduce the amount of data and time required for training. If you have a very large dataset (e.g. 100,000+ images), disabling the use of pre-trained weights may lead to better model performance.Architecture type
Besides selecting the model size, there are two options for the architecture type:Attention with SiLU
and No attention with ReLU
. The two options are described below.
Attention with SiLU
The attention with SiLU option is the more traditional of the two, and is similar to many modern YOLO architectures. The final block of the backbone uses partial self-attention, and all convolutional blocks use SiLU as the activation function. This is the preferred option for most use cases, and is the default selection.No Attention with ReLU
The no attention with ReLU option is a custom variant developed by Edge Impulse. It has two key differences when compared to the attention with SiLU option. First, the backbone does not use partial self-attention. This choice was made because not all edge hardware is able to efficiently run the operations required in the attention layer. Secondly, all convolutional blocks use ReLU as the activation function since some edge hardware will run ReLU notably faster. This option is recommended when deploying to hardware that does not efficiently support attention layers or SiLU activations. It has been developed to provide a wider compatibility with edge hardware, but may not perform as well as the attention with SiLU option.Augmentation
The data used for training the YOLO-Pro models can be augmented using both spatial transformations and color space transformations. The transformations applied are from the KerasCV preprocessing layers. Spatial transformations change the locations of pixels but not their colors, whereas color transformations change pixel colors, but not their location. These can be used to tune augmentation based on the application. For example, a fixed camera use case may benefit from lower spatial transformations and color sensitive use cases may want no color space transformations.Spatial transformations
When spatial transformations are selected, the applied augmentation includes random flips, crops, resizes, shears, rotations, and mosaic. The table below shows the specific transformations for each spatial augmentation option.Spatial augmentation | Transformations applied |
---|---|
No spatial augmentation | - |
Low | RandomCropAndResize |
Medium | RandomCropAndResize + RandomRotation + RandomFlip |
High | RandomCropAndResize + RandomRotation + RandomFlip + Mosaic |
Color space transformations
When color space transformations are selected, the applied augmentation includes random transforms according to the method defined in RandAugment: Practical automated data augmentation with a reduced search space. The low, medium, and high level options correspond to increasing amounts of augmentation being applied.Examples
In future, please see this section for a list of example projects that use YOLO-Pro.Troubleshooting
No common issues have been identified thus far. If you encounter an issue, please reach out on the forum or, if you are on the Enterprise plan, through your support channels.