Official YOLOv8 Xun Lian Zi Ji De Shu Ju Ji Bing Ji Yu NVIDIA TensorRTHe Hua Wei Sheng Teng Duan Dao Duan Mo Xing Jia Su Yi Ji An Zhuo Shou Ji Duan Bu Shu
Shuo Ming : Ben Xiang Mu Zhi Chi YOLOv8De Dui Ying De packageDe Ban Ben Shi :ultralytics-8.0.0
1.YOLODe Yi Xie Fa Zhan Li Shi
-
YOLOv1:2015Nian Joseph RedmonHe Ali FarhadiDeng Ren (Hua Sheng Dun Da Xue )
-
YOLOv2:2016Nian Joseph Redmon*He **Ali Farhadi*Deng Ren *(Hua Sheng Dun Da Xue )*
-
YOLOv3:2018Nian Joseph Redmon*He **Ali Farhadi*Deng Ren *(Hua Sheng Dun Da Xue )*
-
YOLOv4:2020Nian Alexey BochkovskiyHe Chien-Yao WangDeng Ren
-
YOLOv5:2020Nian UltralyticsGong Si
-
YOLOv6:2022Nian Mei Tuan Gong Si
-
YOLOv7**:2022Nian Alexey Bochkovskiy*He Chien-Yao Wang*Deng Ren
-
YOLOv8:2023Nian UltralyticsGong Si
Shang Shu Jian Dan Luo Lie Liao YOLOvShu Zi Xi Lie De Fa Bu Shi Jian He Zuo Zhe /Dan Wei Ji Gou ,Yin Wei YOLOXi Lie Sheng Tai Tai Meng Liao ,Bi Ru Huan You Zhi Ming De PP-YOLOXi Lie , YOLOXDeng Deng Gong Zuo .
2. YOLOv8De Xiang Guan Zi Yuan
-
YOLOv8 Github: https://github.com/ultralytics/ultralytics
-
YOLOv8De Quan Zhong :https://github.com/ultralytics/assets/releases -
YOLOv8Wen Dang : https://v8docs.ultralytics.com/
-
YOLOv8 Python packageYuan Ma Ku :https://test.pypi.org/simple/ultralytics/
3.YOLOv5 Vs YOLOv8
- YOLOv5
- Backbone:CSPDarkNetJie Gou ,Zhu Yao Jie Gou Si Xiang De Ti Xian Zai C3Mo Kuai ,Zhe Li Ye Shi Ti Du Fen Liu De Zhu Yao Si Xiang Suo Zai De Di Fang ;
- PAN-FPN:Shuang Liu De FPN,Bi Xu Xiang ,Ye Bi Xu Kuai ,Dan Shi Liang Hua Huan Shi You Xie Xu Yao Tu You Hua Cai Ke Yi Da Dao Zui You De Xing Neng ,Bi Ru catQian Hou De scaleYou Hua Deng Deng ,Zhe Li Chu Liao Shang Cai Yang , CBSJuan Ji Mo Kuai ,Zui Wei Zhu Yao De Huan You C3Mo Kuai (Ji Zhu Zhe Ge C3Mo Kuai E );
- Head:Coupled Head+Anchor-base,Hao Wu Yi Wen ,YOLOv3, YOLOv4, YOLOv5, YOLOv7Du Shi Anchor-BaseDe ,Hou Mian Hui Bian Ma ?
- Loss:Fen Lei Yong BEC Loss,Hui Gui Yong CIoU Loss.
- YOLOv8
Ju Ti Gai Jin Ru Xia :
- Backbone:Shi Yong De Yi Jiu Shi CSPDe Si Xiang ,Bu Guo YOLOv5Zhong De C3Mo Kuai Bei Ti Huan Cheng Liao C2fMo Kuai ,Shi Xian Liao Jin Yi Bu De Qing Liang Hua ,Tong Shi YOLOv8Yi Jiu Shi Yong Liao YOLOv5Deng Jia Gou Zhong Shi Yong De SPPFMo Kuai ;
- PAN-FPN:Hao Wu Yi Wen YOLOv8Yi Jiu Shi Yong Liao PANDe Si Xiang ,Bu Guo Tong Guo Dui Bi YOLOv5Yu YOLOv8De Jie Gou Tu Ke Yi Kan Dao ,YOLOv8Jiang YOLOv5Zhong PAN-FPNShang Cai Yang Jie Duan Zhong De Juan Ji Jie Gou Shan Chu Liao ,Tong Shi Ye Jiang C3Mo Kuai Ti Huan Wei Liao C2fMo Kuai ;
- Decoupled-Head:Shi Bu Shi Xiu Dao Liao Bu Yi Yang De Wei Dao ?Shi De ,YOLOv8Zou Xiang Liao Decoupled-Head;
- Anchor-Free:YOLOv8Pao Qi Liao Yi Wang De Anchor-Base,Shi Yong Liao Anchor-FreeDe Si Xiang ;
- Sun Shi Han Shu :YOLOv8Shi Yong VFL LossZuo Wei Fen Lei Sun Shi ,Shi Yong DFL Loss+CIOU LossZuo Wei Fen Lei Sun Shi ;
- Yang Ben Pi Pei :YOLOv8Pao Qi Liao Yi Wang De IOUPi Pei Huo Zhe Dan Bian Bi Li De Fen Pei Fang Shi ,Er Shi Shi Yong Liao Task-Aligned AssignerPi Pei Fang Shi .
- SPP Vs SPPF:
- C3 Vs C2f:
Zhen Dui C3Mo Kuai ,Qi Zhu Yao Shi Jie Zhu CSPNetTi Qu Fen Liu De Si Xiang ,Tong Shi Jie He Can Chai Jie Gou De Si Xiang ,She Ji Liao Suo Wei De C3 Block,Zhe Li De CSPZhu Fen Zhi Ti Du Mo Kuai Wei BottleNeckMo Kuai ,Ye Jiu Shi Suo Wei De Can Chai Mo Kuai . Tong Shi Dui Die De Ge Shu You Can Shu nLai Jin Xing Kong Zhi ,Ye Jiu Shi Shuo Bu Tong Gui Mo De Mo Xing ,nDe Zhi Shi You Bian Hua De .
Qi Shi Zhe Li De Ti Du Liu Zhu Fen Zhi ,Ke Yi Shi Ren He Zhi Qian Ni Xue Xi Guo De Mo Kuai ,Bi Ru ,Mei Tuan Ti Chu De YOLOv6Zhong Jiu Shi Yong Lai Zhong Can Mo Kuai RepVGGBlockLai Ti Huan BottleNeck BlockLai Zuo Wei Zhu Yao De Ti Du Liu Fen Zhi ,Er Bai Du Ti Chu De PP-YOLOEZe Shi Shi Yong Liao RepResNet-BlockLai Ti Huan BottleNeck BlockLai Zuo Wei Zhu Yao De Ti Du Liu Fen Zhi . Er YOLOv7Ze Shi Shi Yong Liao ELAN BlockLai Ti Huan BottleNeck BlockLai Zuo Wei Zhu Yao De Ti Du Liu Fen Zhi .
C3Mo Kuai De PytorchDe Shi Xian Ru Xia :
# CSP Bottleneck with 3 convolutions
def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion
super().__init__()
c_ = int(c2 * e) # hidden channels
self.cv1 = Conv(c1, c_, 1, 1)
self.cv2 = Conv(c1, c_, 1, 1)
self.cv3 = Conv(2 * c_, c2, 1) # optional act=FReLU(c2)
self.m = nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)))
def forward(self, x):
return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), 1))
C2fMo Kuai Jiu Shi Can Kao Liao C3Mo Kuai Yi Ji ELANDe Si Xiang Jin Xing De She Ji ,Rang YOLOv8Ke Yi Zai Bao Zheng Qing Liang Hua De Tong Shi Huo De Geng Jia Feng Fu De Ti Du Liu Xin Xi .
C2fMo Kuai Dui Ying De PytorchShi Xian Ru Xia :
# CSP Bottleneck with 2 convolutions
def __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion
super().__init__()
self.c = int(c2 * e) # hidden channels
self.cv1 = Conv(c1, 2 * self.c, 1, 1)
self.cv2 = Conv((2 + n) * self.c, c2, 1) # optional act=FReLU(c2)
self.m = nn.ModuleList(Bottleneck(self.c, self.c, shortcut, g, k=((3, 3), (3, 3)), e=1.0) for _ in range(n))
def forward(self, x):
y = list(self.cv1(x).split((self.c, self.c), 1))
y.extend(m(y[-1]) for m in self.m)
return self.cv2(torch.cat(y, 1))
- PAN-FPNGai Jin Liao Shi Yao ?
YOLOv5De NeckBu Fen De Jie Gou Tu Ru Xia :
YOLOv6De NeckBu Fen De Jie Gou Tu Ru Xia :
YOLOv8De Jie Gou Tu :
Ke Yi Kan Dao ,Xiang Dui Yu YOLOv5Huo Zhe YOLOv6,YOLOv8Jiang C3Mo Kuai Yi Ji RepBlockTi Huan Wei Liao C2f,Tong Shi Xi Xin Ke Yi Fa Xian ,Xiang Dui Yu YOLOv5He YOLOv6,YOLOv8Xuan Ze Jiang Shang Cai Yang Zhi Qian De 1x1Juan Ji Qu Chu Liao ,Jiang BackboneBu Tong Jie Duan Shu Chu De Te Zheng Zhi Jie Song Ru Liao Shang Cai Yang Cao Zuo .
- HeadBu Fen Du Bian Liao Shi Yao Ni ?
Xian Kan Yi Xia YOLOv5Ben Shen De Head(Coupled-Head):
Er YOLOv8Ze Shi Shi Yong Liao Decoupled-Head,Hui Gui Tou De Tong Dao Shu Ye Bian Cheng Liao 4*reg_maxDe Xing Shi :
- Sun Shi Han Shu
Dui Yu YOLOv8,Qi Fen Lei Sun Shi Wei VFL Loss,Qi Hui Gui Sun Shi Wei CIOU Loss+DFLDe Xing Shi ,Zhe Li Reg_maxMo Ren Wei 16.
VFLZhu Yao Gai Jin Shi Ti Chu Liao Fei Dui Cheng De Jia Quan Cao Zuo ,FLHe QFLDu Shi Dui Cheng De . Er Fei Dui Cheng Jia Quan De Si Xiang Lai Yuan Yu Lun Wen PISA,Gai Lun Wen Zhi Chu Shou Xian Zheng Fu Yang Ben You Bu Ping Heng Wen Ti ,Ji Shi Zai Zheng Yang Ben Zhong Ye Cun Zai Bu Deng Quan Wen Ti ,Yin Wei mAPDe Ji Suan Shi Zhu Zheng Yang Ben .
qShi label,Zheng Yang Ben Shi Hou qWei bboxHe gtDe IoU,Fu Yang Ben Shi Hou q=0,Dang Wei Zheng Yang Ben Shi Hou Qi Shi Mei You Cai Yong FL,Er Shi Pu Tong De BCE,Zhi Bu Guo Duo Liao Yi Ge Zi Gua Ying IoUJia Quan ,Yong Yu Tu Chu Zhu Yang Ben . Er Wei Fu Yang Ben Shi Hou Jiu Shi Biao Zhun De FLLiao . Ke Yi Ming Xian Fa Xian VFLBi QFLGeng Jia Jian Dan ,Zhu Yao Te Dian Shi Zheng Fu Yang Ben Fei Dui Cheng Jia Quan , Tu Chu Zheng Yang Ben Wei Zhu Yang Ben .
Zhen Dui Zhe Li De DFL(Distribution Focal Loss),Qi Zhu Yao Shi Jiang Kuang De Wei Zhi Jian Mo Cheng Yi Ge general distribution,Rang Wang Luo Kuai Su De Ju Jiao Yu He Mu Biao Wei Zhi Ju Chi Jin De Wei Zhi De Fen Bu .
- Zheng Fu Yang Ben De Pi Pei
Biao Qian Fen Pei Shi Mu Biao Jian Ce Fei Chang Zhong Yao De Yi Huan ,Zai YOLOv5De Zao Qi Ban Ben Zhong Shi Yong Liao MaxIOUZuo Wei Biao Qian Fen Pei Fang Fa . Ran Er ,Zai Shi Jian Zhong Fa Xian Zhi Jie Shi Yong Bian Chang Bi Ye Ke Yi Da Dao Yi Yang De Xiao Guo . Er YOLOv8Ze Shi Pao Qi Liao Anchor-BaseFang Fa Shi Yong Anchor-FreeFang Fa ,Zhao Dao Liao Yi Ge Ti Dai Bian Chang Bi Li De Pi Pei Fang Fa : TaskAligned. Wei Yu NMSDa Pei ,Xun Lian Yang Li De AnchorFen Pei Xu Yao Man Zu Yi Xia Liang Ge Gui Ze :
- Zheng Chang Dui Qi De AnchorYing Dang Ke Yi Yu Ce Gao Fen Lei De Fen ,Tong Shi Ju You Jing Que Ding Wei ;
- Bu Dui Qi De AnchorYing Dang Ju You Di Fen Lei De Fen ,Bing Zai NMSJie Duan Bei Yi Zhi .
Ji Yu Shang Shu Liang Ge Mu Biao ,TaskAlignedShe Ji Liao Yi Ge Xin De Anchor alignment metric Lai Zai Anchor level Heng Liang Task-AlignmentDe Shui Ping . Bing Qie ,Alignment metric Bei Ji Cheng Zai Liao sample Fen Pei He loss functionLi Lai Dong Tai De You Hua Mei Ge Anchor De Yu Ce .
Anchor alignment metric:
Fen Lei De Fen He IoUBiao Shi Liao Zhe Liang Ge Ren Wu De Yu Ce Xiao Guo ,Suo Yi ,TaskAlignedShi Yong Fen Lei De Fen He IoUDe Gao Jie Zu He Lai Heng Liang Task-AlignmentDe Cheng Du . Shi Yong Xia Lie De Fang Shi Lai Dui Mei Ge Shi Li Ji Suan Anchor-level De Dui Qi Cheng Du : $$ t=s^{\alpha}+\mu^{\beta} $$ s He u Fen Bie Wei Fen Lei De Fen He IoU Zhi ,a He b Wei Quan Zhong Chao Can . Cong Shang Bian De Gong Shi Ke Yi Kan Chu Lai ,t Ke Yi Tong Shi Kong Zhi Fen Lei De Fen He IoU De You Hua Lai Shi Xian Task-Alignment,Ke Yi Yin Dao Wang Luo Dong Tai De Guan Zhu Yu Gao Zhi Liang De Anchor.
Training sample Assignment:
Cai Yong Yi Chong Jian Dan De Fen Pei Gui Ze Xuan Ze Xun Lian Yang Ben :Dui Mei Ge Shi Li ,Xuan Ze mGe Ju You Zui Da tZhi De AnchorZuo Wei Zheng Yang Ben ,Xuan Ze Qi Yu De AnchorZuo Wei Fu Yang Ben . Ran Hou ,Tong Guo Sun Shi Han Shu (Zhen Dui Fen Lei Yu Ding Wei De Dui Qi Er She Ji De Sun Shi Han Shu )Jin Xing Xun Lian .
4.YOLOv8Huan Jing An Zhuang
Wo Men Shi Yong De Shi ultralytics(8.0.0) python package,Qi An Zhuang Fang Shi Ru Xia :
#pip install -e ultralytics
pip install ultralytics
Ni Ke Yi Zai /usr/local/lib/pythonx.x/dist-packages/ultralytics Xia Zhao Dao An Zhuang Bao Zhong De YOLOv8De Yuan Wen Jian ,Jin Xing Mo Gai !
5.Gou Jian Zi Ji De Xun Lian Ji
YOLOv8Ke Yi Jin Xing Fen Lei ,Jian Ce He Fen Ge Lei Ren Wu De Xue Xi ,Wo Men Yi Jian Ce Lei Ren Wu Wei Li ,Bing Xun Lian YOLOv8s,Qi Shu Ju Ji De Zhun Bei Wan Quan He YOLOv5,YOLOv6,YOLOv7De Yi Zhi ,Ke Yi Can Kao Wo Men Zhi Qian De Xiang Mu
- https://github.com/DataXujing/YOLO-v5
- https://github.com/DataXujing/YOLOv6
- https://github.com/DataXujing/YOLOv7
6.Gou Jian Zi Ji Xun Lian Ji De Pei Zhi Wen Jian He Mo Xing Pei Zhi Wen Jian
- Mo Xing Pei Zhi Wen Jian :
# Parameters
nc: 4 # number of classes
depth_multiple: 0.33 # scales module repeats
width_multiple: 0.50 # scales convolution channels
# YOLOv8.0s backbone
backbone:
# [from, repeats, module, args]
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 3, C2f, [128, True]]
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
- [-1, 6, C2f, [256, True]]
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
- [-1, 6, C2f, [512, True]]
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
- [-1, 3, C2f, [1024, True]]
- [-1, 1, SPPF, [1024, 5]] # 9
# YOLOv8.0s head
head:
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
- [-1, 3, C2f, [512]] # 13
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
- [-1, 3, C2f, [256]] # 17 (P3/8-small)
- [-1, 1, Conv, [256, 3, 2]]
- [[-1, 12], 1, Concat, [1]] # cat head P4
- [-1, 3, C2f, [512]] # 20 (P4/16-medium)
- [-1, 1, Conv, [512, 3, 2]]
- [[-1, 9], 1, Concat, [1]] # cat head P5
- [-1, 3, C2f, [1024]] # 23 (P5/32-large)
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
- Shu Ju Ji Pei Zhi Wen Jian
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
train: ./dataset/score/images/train # train images
val: ./dataset/score/images/val # val images
#test: ./dataset/score/images/test # test images (optional)
# Classes
names:
0: person
1: cat
2: dog
3: horse
- Xun Lian Chao Can Shu Pei Zhi Wen Jian
Wo Men Dui Xun Lian De Chao Can Shu Jin Xing Liao Jian Dan De Xiu Gai ,Tong Guo Ming Ling Xing Can Shu Chuan Ru ,Ye Ke Yi Tong Guo Pei Zhi Wen Jian Jin Xing Pei Zhi .
mode: "train" # choices=['train', 'val', 'predict'] # mode to run task in.
# Train settings -------------------------------------------------------------------------------------------------------
model: null # i.e. yolov8n.pt, yolov8n.yaml. Path to model file
data: null # i.e. coco128.yaml. Path to data file
epochs: 100 # number of epochs to train for
patience: 50 # TODO: epochs to wait for no observable improvement for early stopping of training
batch: 16 # number of images per batch
imgsz: 640 # size of input images
save: True # save checkpoints
cache: False # True/ram, disk or False. Use cache for data loading
device: '' # cuda device, i.e. 0 or 0,1,2,3 or cpu. Device to run on
workers: 8 # number of worker threads for data loading
project: null # project name
name: null # experiment name
exist_ok: False # whether to overwrite existing experiment
pretrained: False # whether to use a pretrained model
optimizer: 'SGD' # optimizer to use, choices=['SGD', 'Adam', 'AdamW', 'RMSProp']
...
7.YOLOv8Mu Biao Jian Ce Ren Wu Xun Lian
8.YOLOv8Tui Duan Demo
python3 inference.py
9.YOLOv8Duan Dao Duan Mo TensorRTMo Xing Jia Su
- pthMo Xing Zhuan onnx
yolo task=detect mode=export model=./runs/detect/train/weights/last.pt format=onnx simplify=True opset=13
# python
from ultralytics import YOLO
model = YOLO("./runs/detect/train/weights/last.pt ") # load a pretrained YOLOv8n model
model.export(format="onnx") # export the model to ONNX format
- Zeng Jia NMS Plugin
Zhi Xing tensorrt/Xia De Ru Xia Dai Ma ,Tian Jia NMSDao YOLOv8Mo Xing
- Tian Jia Hou Chu Li
- Tian Jia NMS plugin
Sheng Cheng last_1_nms.onnx,Da Kai Gai Wen Jian Dui Bi He Yuan onnxWen Jian De Qu Bie ,Fa Xian Zeng Jia Liao Ru Xia Jie Dian (Wan Cheng Liao Jiang NMSTian Jia Dao onnxDe Mu De ):
- onnxZhuan trt engine
Chu Xian Shang Shu Jie Mian ,onnxZheng Chang Xu Lie Hua Wei TRT engine.
- TRT C++Tui Duan
Zai win 10Xia Ji Yu RTX 1060 TensorRT 8.2.1Jin Xing Ce Shi ,Wo Men De Kai Fa Huan Jing Shi VS2017,Suo You C++Dai Ma Yi Jing Cun Fang Zai tensorrt/Wen Jian Jia Xia . Qi Tui Duan Jie Guo Ru Xia Tu Suo Shi (Ke Yi Fa Xian Wo Men Shi Xian Liao YOLOv8De TensorRTDuan Dao Duan De Tui Duan ,Qi Tui Duan Jie Guo Yu Yuan Xun Lian Kuang Jia Bao Chi Yi Zhi ):
9.YOLOv8Duan Dao Duan Hua Wei Sheng Teng Mo Xing Tui Duan Jia Su
You Yu Qi Ta Yuan Yin ,Gai Bu Fen Dai Ma Bu Kai Yuan .
Zhe Yi Bu Fen Wo Men Jiang Zai Hua Wei Sheng Teng Xia Ce Shi Ru He Duan Dao Duan Shi Xian YOLOv8De Tui Duan ,Hua Wei Sheng Teng Mu Qian Zhi Chi De Suan Zi Huan Shi Hen You Xian De ,onnxDe NMSSuan Zi Hua Wei Sheng Teng Shi Zhi Chi De ,Yin Ci Wo Men Xu Yao Jiang onnxDe NMSSuan Zi Tian Jia Dao YOLOv8De onnxWen Jian Zhong ,Bing Jiang Mo Xing Zhuan Hua Dao Sheng Teng Jia Gou Xia Yun Xing . Zhe Bu Fen Dai Ma Wo Men Cun Fang Zai Ascend/Xia .
-
pthZhuan onnx
-
Zeng Jia onnx NMSSuan Zi Jie Dian
-
ATCZhuan .omMo Xing
-
Hua Wei Sheng Teng C++Tui Duan
10. QT + NCNN Xiao Mi Shou Ji Duan Bu Shu YOLOv8s
https://github.com/DataXujing/ncnn_android_yolov8