一、介紹
Yoloxgithub是一種輕量級對象檢測算法,基於Yolo系列算法的思路,採用去掉大量冗餘層、增加SPP池化層,以及採用Bisenetv2的FPN結構做特徵圖融合等方式來實現模型的輕量化和速度的提升。
作為一種高效的目標檢測模型,Yoloxgithub在Github上開源後受到了廣大開發者的關注和使用,甚至成為了目前最有機會代替Yolov5的模型之一。
二、性能優化
相較於傳統的Yolov5等目標檢測模型,Yoloxgithub主要通過以下幾種方式做性能優化:
1、去除大量冗餘層
Yoloxgithub去掉了Yolo系列算法中大量重複的卷積層,使得模型在不降低檢測精度的情況下更加輕量化。
2、採用SPP池化層
Yoloxgithub採用了SPP(Spatial Pyramid Pooling)池化技術,該技術能夠對不同尺度的目標物體進行檢測,從而提高了模型的檢測精度。
3、Bisenetv2 FPN特徵融合
Yoloxgithub採用Bisenetv2的FPN特徵融合技術來增強模型的表達能力,實現對小物體的更好檢測效果。
三、實現代碼
# yolox_mobile_s.py
## add data augmentation
## target size 640
# Training YOLOX_S on COCO2017 train2017
# python tools/train.py -f exps/example/yolox_s.py -d 1 -b 2 -o -c resume latest.pth
##
## eval yolox-s on coco2017 test-dev2017
# python tools/eval.py -f exps/example/yolox_s.py -c latest.pth -b 2 --fuse
from yolox.exp import Exp as MyExp
from yolox.utils import YOLOX_COLORS
from yolox.data import COCO_CLASSES
class Exp(MyExp):
def __init__(self):
super(Exp, self).__init__()
self.input_size = (640, 640)
self.dynamic_scale = True
self.depth = 0.33
self.width = 0.5
self.max_epoch = 300
self.num_classes = 80
self.print_interval = 10
self.eval_interval = 30
self.output_dir = "yolox_outputs"
self.train_ann = "train.json"
self.val_ann = "val.json"
self.data_num_workers = 1
self.input_perm = (2, 0, 1)
self.color_list = YOLOX_COLORS
self.cat_ids = {cat: i for i, cat in enumerate(COCO_CLASSES)}
self.strides = [8, 16, 32]
self.reg_topk = 6
self.hm_weight = 1.
self.use_fast_pred = True
self.exp_name = "yolox-s"
self.image_weights = False
四、應用場景
Yoloxgithub適用於各種需要實時目標檢測的應用場景,例如:
1、移動端人臉識別、車輛識別等智能交通應用;
2、無人機、攝像頭等安防監控應用;
3、AR/VR虛擬現實應用中的目標跟蹤和識別等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/307039.html