Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿达2510
yolov7-obb
提交
8b7c5d20
Y
yolov7-obb
项目概览
阿达2510
/
yolov7-obb
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
yolov7-obb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8b7c5d20
编写于
2月 01, 2023
作者:
_白鹭先生_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
poly2rbox
上级
a7c29abb
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
1089 addition
and
1085 deletion
+1089
-1085
2007_train.txt
2007_train.txt
+939
-939
2007_val.txt
2007_val.txt
+105
-105
train.py
train.py
+1
-1
utils/dataloader.py
utils/dataloader.py
+6
-1
utils/utils_bbox.py
utils/utils_bbox.py
+25
-28
voc_annotation.py
voc_annotation.py
+4
-1
yolo.py
yolo.py
+9
-10
未找到文件。
2007_train.txt
浏览文件 @
8b7c5d20
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
2007_val.txt
浏览文件 @
8b7c5d20
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000003.jpg
103,217,87,25,79
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000017.jpg
107,232,14,54,83,0 388,118,11,56,87
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000047.jpg 1
50,162,65,18,66,0 304,227,9,18,2
8,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000050.jpg
59,153,29,10,66,0 265,87,30,10,83,0 168,273,26,10,69
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000052.jpg 1
70,136,88,22,7
2,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000055.jpg
206,146,124,31,5
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000060.jpg 15
8,75,49,16,90,0 212,247,47,21,85
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000061.jpg
94,96,14,39,17,0 366,118,16,50,0,0 38,200,30,12,75,0 421,291,49,24,8
6,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000065.jpg
217,58,26,75,13,0 106,272,73,30,90
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000075.jpg 1
88,149,85,22,78
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000079.jpg 1
56,65,44,14,67,0 331,273,45,15,68
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000102.jpg 1
98,164,25,103,70
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000104.jpg
227,227,18,101,68
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000111.jpg
55,132,26,10,74,0 231,72,31,11,81,0 149,236,24,12,80
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000120.jpg 1
62,138,48,13,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000122.jpg
111,146,68,17,85
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000130.jpg 2
69,164,30,91,1
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000148.jpg 23
4,229,9,32,0
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000171.jpg
42,52,21,10,80,0 184,206,22,9,82,0 346,140,31,7,78
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000177.jpg 5
8,48,38,8,85,0 257,29,25,9,84,0 400,181,29,9,82
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000180.jpg
52,174,49,12,74,0 158,58,31,9,85,0 281,220,44,10,67,0 400,83,24,9,77,0 127,196,50,7,78
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000202.jpg
211,125,33,10,4
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000228.jpg 1
70,280,84,19,7,0 420,306,31,16,8
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000239.jpg 2
58,99,32,140,25,0 165,272,31,177,30
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000248.jpg
76,157,26,12,84,0 47,214,14,6,81,0 211,170,25,8,85,0 239,257,28,11,82,0 366,71,13,34,42
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000251.jpg 1
74,103,15,50,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000264.jpg 28
9,56,12,29,0,0 260,112,6,14,0,0 246,207,8,19,0,0 424,68,25,10,86,0 451,155,27,12,81,0 24,17,8,24,6
6,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000276.jpg
58,118,157,31,79
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000277.jpg 1
65,48,42,15,79
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000279.jpg 1
99,217,46,15,76
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000280.jpg 1
29,265,54,15,85,0 439,111,45,15,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000297.jpg
41,34,27,12,78,0 73,134,33,14,85
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000300.jpg 1
43,61,17,43,55
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000310.jpg 4
62,251,104,21,7
5,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000315.jpg 1
21,39,49,17,79,0 449,393,52,16,8
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000323.jpg 1
39,149,48,16,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000326.jpg
87,245,69,17,82,0 446,63,57,19,80
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000335.jpg 2
48,12,47,15,8,0 424,73,19,9,8,0 406,156,13,53,68
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000360.jpg 2
72,75,31,10,75,0 240,298,43,14,79
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000372.jpg
47,43,53,12,74
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000390.jpg
104,71,20,69,0
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000394.jpg
84,181,14,49,66,0 105,98,14,10,0
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000395.jpg 2
92,95,48,13,3,0 448,239,13,48,64,0 468,156,9,12,83
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000411.jpg
108,118,134,49,
87,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000433.jpg
93,114,102,32,7
8,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000434.jpg 2
50,182,197,32,75
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000440.jpg
61,159,151,38,71,0 399,224,216,30,78
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000452.jpg
84,146,89,30,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000457.jpg 1
57,283,24,62,4
4,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000482.jpg
103,127,106,33,84
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000513.jpg 4
32,190,96,12,72
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000515.jpg
71,229,92,13,71
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000532.jpg
64,75,25,68,1
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000540.jpg 3
34,203,51,137,1
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000553.jpg 4
29,222,19,58,11
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000561.jpg 2
90,201,36,112,8
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000571.jpg 2
61,194,139,49,89
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000572.jpg
109,155,50,140,1
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000594.jpg 2
83,143,122,25,6
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000609.jpg
203,182,25,100,83
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000613.jpg
339,132,25,97,84
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000618.jpg
229,165,26,102,83
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000649.jpg 1
53,304,8,21,50,0 153,49,29,6,69
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000656.jpg
95,139,33,7,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000662.jpg
40,81,59,8,70
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000671.jpg 4
45,220,15,41,50
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000672.jpg
213,288,47,12,69
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000675.jpg
411,269,39,11,68
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000700.jpg 2
87,140,22,57,4
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000719.jpg 4
59,246,20,55,10
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000745.jpg 1
85,166,155,28,12,0 45,140,69,18,16
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000749.jpg
125,153,104,19,11,0 119,170,106,19,17,0 114,188,106,20,19,0 320,200,229,29,11,0 353,230,153,20,11
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000752.jpg
144,87,140,40,56,0 245,252,210,59,65
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000753.jpg 1
83,148,28,113,81,0 376,291,13,41,78
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000770.jpg 3
20,179,30,13,56
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000795.jpg
202,65,12,29,
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000838.jpg 3
52,124,55,31,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000855.jpg 2
50,177,77,12,83
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000917.jpg 3
51,117,13,65,3
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000918.jpg 3
50,162,68,25,36
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000922.jpg 3
98,136,40,17,53
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000927.jpg 2
59,141,25,51,53
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000932.jpg
225,127,85,29,47
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000941.jpg 3
36,132,22,56,
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000946.jpg 2
45,159,62,23,32
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000951.jpg 4
32,142,10,31,86
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000954.jpg 1
84,260,19,53,71,0 226,88,31,20,68
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000966.jpg 1
25,119,9,34,8
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000967.jpg 3
91,165,8,34,7
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000971.jpg
201,67,12,25,52
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000993.jpg
112,176,83,38,45
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000996.jpg 1
47,180,47,24,46
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001019.jpg 1
98,120,12,39,46,0 143,217,38,13,0,0 49,142,29,12,18
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001022.jpg 2
55,226,26,13,45,0 447,139,22,47,77
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001044.jpg
310,116,16,32,86
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001054.jpg
305,115,7,21,90,0 420,233,5,21,85,0 329,269,6,19,78,0 217,210,6,14,82
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001058.jpg 1
96,62,24,7,0,0 311,180,5,21,90,0 221,217,6,20,90,0 108,157,5,15,9
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001074.jpg 1
55,132,9,16,81
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001078.jpg 1
72,92,42,20,63,0 153,161,12,22,0
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001099.jpg
64,163,12,28,0,0 163,55,9,20,0,0 142,200,12,28,0,0 193,142,10,20,0,0 242,127,17,9,80,0 303,135,10,17,0,0 344,76,20,11,69,0 269,234,15,33,59,0 273,258,14,26,35
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001102.jpg 5
7,24,7,18,5,0 34,171,26,13,90,0 87,114,10,20,0,0 135,98,18,12,90,0 162,205,17,34,53,0 166,228,16,28,50,0 196,107,9,17,0,0 237,47,19,10,63
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001128.jpg
69,77,27,11,15,0 86,164,32,9,15,0 214,82,42,11,22,0 202,221,29,10,18,0 326,158,29,10,16,0 392,82,28,11,21,0 426,156,26,11,1
5,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001133.jpg 2
61,76,41,13,3,0 156,170,22,10,9
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001145.jpg
62,76,23,8,0,0 397,121,18,7,12
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001158.jpg
104,31,25,7,28,0 36,72,19,7,14,0 34,127,16,7,8,0 87,157,16,6,7,0 226,141,8,19,73
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000003.jpg
83,177,107,172,124,258,99,263
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000017.jpg
79,228,134,222,135,236,81,242,0 359,114,415,111,416,123,360,125
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000047.jpg 1
29,136,146,129,172,188,155,196,0 296,234,305,217,313,221,304,23
8,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000050.jpg
48,141,58,137,70,164,60,168,0 258,72,269,71,272,101,261,103,0 158,262,168,259,178,284,168,287
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000052.jpg 1
45,98,167,91,194,175,172,18
2,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000055.jpg
143,156,146,125,270,137,267,168
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000060.jpg 15
0,51,166,51,166,100,150,100,0 200,224,221,222,225,270,204,272
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000061.jpg
81,113,93,75,106,80,94,118,0 358,143,358,93,374,93,374,143,0 28,187,40,184,47,214,35,216,0 408,267,432,265,435,315,410,31
6,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000065.jpg
196,92,214,19,239,25,221,98,0 91,236,121,236,121,309,91,309
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000075.jpg 1
69,109,190,105,207,189,186,194
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000079.jpg 1
41,48,155,42,172,83,158,89,0 315,255,330,249,346,291,332,297
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000102.jpg 1
45,169,243,135,251,159,154,193
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000104.jpg
177,237,271,199,278,216,184,254
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000111.jpg
47,121,57,118,64,144,54,147,0 223,57,234,55,238,87,227,89,0 141,225,154,223,158,247,145,249
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000120.jpg 1
50,116,163,113,173,160,160,163
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000122.jpg
99,113,117,111,122,180,105,181
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000130.jpg 2
52,209,255,117,286,118,283,210
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000148.jpg 23
0,245,230,213,239,213,239,245
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000171.jpg
35,43,45,41,49,62,39,64,0 178,196,187,195,190,217,181,218,0 339,125,347,124,353,155,346,156
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000177.jpg 5
3,29,61,28,64,66,56,67,0 252,17,261,16,263,41,254,42,0 393,167,403,165,407,195,397,196
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000180.jpg
39,151,51,148,64,196,52,200,0 152,43,161,42,163,73,154,74,0 267,201,277,197,294,239,284,243,0 393,72,402,70,408,94,398,97,0 118,172,126,171,136,220,128,221
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000202.jpg
194,128,195,118,228,121,227,131
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000228.jpg 1
26,284,129,265,213,277,210,296,0 404,311,406,295,437,300,434,316
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000239.jpg 2
12,155,273,29,303,43,242,169,0 107,340,196,187,223,203,134,356
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000248.jpg
69,144,82,143,84,170,71,171,0 43,207,49,206,51,220,45,221,0 206,158,215,157,217,182,208,183,0 232,244,243,243,246,271,235,272,0 349,79,372,54,383,63,359,89
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000251.jpg 1
48,101,198,90,201,105,151,116
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000264.jpg 28
3,71,283,42,295,42,295,71,0 257,119,257,105,263,105,263,119,0 242,217,242,198,250,198,250,217,0 418,56,429,55,430,80,420,81,0 443,142,456,140,460,167,447,169,0 11,18,33,8,37,16,14,2
6,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000276.jpg
29,43,60,37,88,193,57,198
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000277.jpg 1
54,28,169,25,176,68,162,70
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000279.jpg 1
86,196,201,193,211,238,197,241
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000280.jpg 1
19,239,134,238,139,292,123,293,0 427,90,442,87,452,132,437,135
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000297.jpg
32,22,45,19,50,46,38,49,0 65,118,79,117,82,150,67,151
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000300.jpg 1
20,67,156,42,165,56,130,80
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000310.jpg 4
39,203,459,198,486,299,465,30
5,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000315.jpg 1
08,16,125,13,134,62,117,65,0 437,368,453,366,462,418,445,42
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000323.jpg 1
25,127,142,123,152,171,136,175
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000326.jpg
74,212,92,210,101,279,83,281,0 432,36,451,33,460,90,441,93
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000335.jpg 2
23,16,226,1,273,8,270,24,0 414,76,415,67,434,69,433,79,0 378,159,428,140,433,153,383,172
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000360.jpg 2
63,61,273,59,281,90,270,92,0 229,279,243,276,251,318,237,321
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000372.jpg
34,18,46,15,60,67,48,70
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000390.jpg
94,106,94,37,114,37,114,106
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000394.jpg
59,184,104,164,110,177,65,197,0 98,103,98,93,112,93,112,103
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000395.jpg 2
68,100,269,87,317,90,316,103,0 423,243,467,222,473,235,429,255,0 461,152,474,150,475,159,462,161
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000411.jpg
80,52,130,50,136,184,87,1
87,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000433.jpg
67,67,99,61,119,161,87,16
8,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000434.jpg 2
09,91,240,83,290,274,259,282
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000440.jpg
19,94,55,81,103,225,67,237,0 362,121,393,115,436,327,406,333
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000452.jpg
59,106,89,99,108,186,78,193
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000457.jpg 1
27,296,170,252,188,269,145,31
4,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000482.jpg
82,76,115,73,125,179,91,182
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000513.jpg 4
11,146,423,142,452,234,440,238
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000515.jpg
50,188,64,184,93,271,79,275
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000532.jpg
50,109,52,40,78,41,76,110
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000540.jpg 3
07,271,311,133,362,135,358,272
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000553.jpg 4
14,249,425,192,444,196,433,253
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000561.jpg 2
63,253,280,143,316,148,299,259
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000571.jpg 2
35,125,285,124,286,263,237,264
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000572.jpg
82,225,86,84,136,86,132,226
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000594.jpg 2
21,148,224,123,345,137,342,163
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000609.jpg
151,174,251,163,254,189,154,200
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000613.jpg
289,125,386,115,389,140,292,150
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000618.jpg
176,158,279,145,282,172,180,184
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000649.jpg 1
42,308,158,294,164,301,147,315,0 144,36,150,34,161,61,155,63
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000656.jpg
88,124,96,122,103,154,95,156
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000662.jpg
27,55,34,52,54,108,46,111
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000671.jpg 4
24,227,456,201,466,213,434,239
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000672.jpg
199,268,210,263,227,308,215,312
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000675.jpg
398,253,409,249,424,286,413,290
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000700.jpg 2
74,168,278,111,301,113,296,170
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000719.jpg 4
44,272,455,217,474,221,464,275
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000745.jpg 1
06,163,112,135,264,169,257,197,0 9,139,15,121,81,141,76,159
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000749.jpg
72,152,76,133,178,154,174,173,0 65,163,71,144,173,176,167,195,0 60,180,67,160,167,195,160,215,0 204,191,210,163,435,209,429,237,0 275,225,279,205,430,235,426,255
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000752.jpg
88,40,122,17,200,134,166,157,0 175,169,228,144,315,336,261,360
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000753.jpg 1
25,143,237,126,241,154,129,171,0 355,288,395,280,398,293,357,301
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000770.jpg 3
06,170,318,162,335,188,323,195
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000795.jpg
196,80,196,51,208,51,208,8
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000838.jpg 3
31,101,362,94,374,148,343,155
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000855.jpg 2
39,139,252,138,260,215,248,216
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000917.jpg 3
41,149,346,83,360,84,355,150
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000918.jpg 3
15,152,330,132,385,172,370,192
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000922.jpg 3
78,125,393,115,417,148,403,158
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000927.jpg 2
31,146,272,115,287,135,246,166
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000932.jpg
185,106,207,85,265,148,243,168
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000941.jpg 3
25,160,325,104,347,104,347,16
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000946.jpg 2
13,152,225,132,278,166,265,186
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000951.jpg 4
16,138,447,136,448,146,417,148
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000954.jpg 1
56,260,206,243,212,261,162,278,0 210,77,230,70,241,99,222,107
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000966.jpg 1
17,135,123,101,132,102,126,136
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000967.jpg 3
85,182,389,147,398,148,393,183
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000971.jpg
187,70,207,54,215,64,194,80
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000993.jpg
69,161,96,133,155,192,128,220
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/000996.jpg 1
22,170,139,154,172,189,155,205
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001019.jpg 1
79,129,208,101,216,111,188,138,0 124,224,124,211,162,211,162,224,0 33,143,37,131,66,140,62,152
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001022.jpg 2
41,222,250,212,269,231,259,240,0 422,133,468,123,473,144,427,155
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001044.jpg
294,109,326,107,327,124,295,125
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001054.jpg
295,112,316,112,316,119,295,119,0 409,231,430,229,431,235,410,236,0 319,267,338,264,339,270,320,274,0 209,208,223,206,224,212,210,214
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001058.jpg 1
84,66,184,59,208,59,208,66,0 301,178,322,178,322,183,301,183,0 211,214,231,214,231,220,211,220,0 101,155,116,155,116,160,101,16
0,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001074.jpg 1
46,129,162,126,164,136,147,138
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001078.jpg 1
53,77,171,68,190,106,172,115,0 147,172,147,150,159,150,159,172
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001099.jpg
58,177,58,149,70,149,70,177,0 159,65,159,45,168,45,168,65,0 136,214,136,186,148,186,148,214,0 188,152,188,132,198,132,198,152,0 236,120,245,118,248,135,239,137,0 298,144,298,127,308,127,308,144,0 335,68,346,64,353,84,342,88,0 251,236,280,219,288,232,259,250,0 259,265,275,243,286,251,271,273
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001102.jpg 5
2,33,54,14,62,15,60,34,0 28,158,41,158,41,184,28,184,0 82,124,82,104,92,104,92,124,0 129,89,141,89,141,107,129,107,0 143,209,170,188,181,202,153,223,0 150,231,172,213,183,226,161,244,0 192,116,192,99,201,99,201,116,0 228,41,238,36,247,54,237,58
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001128.jpg
54,78,57,68,84,75,81,86,0 69,164,72,154,103,163,100,173,0 193,80,197,69,236,85,231,96,0 186,221,189,211,217,221,214,230,0 310,159,313,149,342,158,339,168,0 377,82,381,71,407,82,403,92,0 412,158,415,147,440,155,437,16
5,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001133.jpg 2
40,81,241,68,282,70,281,84,0 144,173,146,164,168,167,166,177
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001145.jpg
51,80,51,72,74,72,74,80,0 387,122,388,115,407,119,405,126
,0
D:\Notebook\yolov7-pytorch\VOCdevkit/VOC2007/JPEGImages/001158.jpg
91,29,95,22,117,34,113,41,0 26,74,27,66,46,71,45,78,0 25,129,26,122,42,124,41,132,0 79,159,80,153,96,155,95,161,0 215,140,234,134,236,143,218,148
,0
train.py
浏览文件 @
8b7c5d20
...
...
@@ -41,7 +41,7 @@ if __name__ == "__main__":
# Cuda 是否使用Cuda
# 没有GPU可以设置成False
#---------------------------------#
Cuda
=
Tru
e
Cuda
=
Fals
e
#---------------------------------------------------------------------#
# distributed 用于指定是否使用单机多卡分布式运行
# 终端指令仅支持Ubuntu。CUDA_VISIBLE_DEVICES用于在Ubuntu下指定显卡。
...
...
utils/dataloader.py
浏览文件 @
8b7c5d20
...
...
@@ -76,7 +76,6 @@ class YoloDataset(Dataset):
#---------------------------------------------------#
# box[:, 2:4] = box[:, 2:4] - box[:, 0:2]
# box[:, 0:2] = box[:, 0:2] + box[:, 2:4] / 2
#---------------------------------------------------#
# 调整顺序,符合训练的格式
# labels_out中序号为0的部分在collect时处理
...
...
@@ -105,6 +104,12 @@ class YoloDataset(Dataset):
# 获得预测框
#------------------------------#
box
=
np
.
array
([
np
.
array
(
list
(
map
(
int
,
box
.
split
(
','
))))
for
box
in
line
[
1
:]])
#------------------------------#
# 将polygon转换为rbox
#------------------------------#
rbox
=
np
.
zeros
((
box
.
shape
[
0
],
6
))
rbox
[...,
:
5
]
=
poly2rbox
(
box
[...,
:
8
],
(
h
,
w
),
use_pi
=
True
)
rbox
[...,
5
]
=
box
[...,
8
]
image
=
image
.
resize
((
w
,
h
),
Image
.
BICUBIC
)
image_data
=
np
.
array
(
image
,
np
.
float32
)
...
...
utils/utils_bbox.py
浏览文件 @
8b7c5d20
import
numpy
as
np
import
torch
import
math
from
torchvision.ops
import
nms
#
from utils.nms_rotated import obb_nms
from
utils.nms_rotated
import
obb_nms
class
DecodeBox
():
def
__init__
(
self
,
anchors
,
num_classes
,
input_shape
,
anchors_mask
=
[[
6
,
7
,
8
],
[
3
,
4
,
5
],
[
0
,
1
,
2
]]):
super
(
DecodeBox
,
self
).
__init__
()
self
.
anchors
=
anchors
self
.
num_classes
=
num_classes
self
.
bbox_attrs
=
5
+
1
+
num_classes
self
.
bbox_attrs
=
6
+
num_classes
self
.
input_shape
=
input_shape
#-----------------------------------------------------------#
# 13x13的特征层对应的anchor是[142, 110],[192, 243],[459, 401]
...
...
@@ -62,6 +63,10 @@ class DecodeBox():
w
=
torch
.
sigmoid
(
prediction
[...,
2
])
h
=
torch
.
sigmoid
(
prediction
[...,
3
])
#-----------------------------------------------#
# 获取旋转角度
#-----------------------------------------------#
angle
=
torch
.
sigmoid
(
prediction
[...,
4
])
#-----------------------------------------------#
# 获得置信度,是否有物体
#-----------------------------------------------#
conf
=
torch
.
sigmoid
(
prediction
[...,
5
])
...
...
@@ -105,17 +110,17 @@ class DecodeBox():
pred_boxes
[...,
1
]
=
y
.
data
*
2.
-
0.5
+
grid_y
pred_boxes
[...,
2
]
=
(
w
.
data
*
2
)
**
2
*
anchor_w
pred_boxes
[...,
3
]
=
(
h
.
data
*
2
)
**
2
*
anchor_h
pred_theta
=
(
angle
.
data
-
0.5
)
*
math
.
pi
#----------------------------------------------------------#
# 将输出结果归一化成小数的形式
#----------------------------------------------------------#
_scale
=
torch
.
Tensor
([
input_width
,
input_height
,
input_width
,
input_height
]).
type
(
FloatTensor
)
output
=
torch
.
cat
((
pred_boxes
.
view
(
batch_size
,
-
1
,
4
)
/
_scale
,
output
=
torch
.
cat
((
pred_boxes
.
view
(
batch_size
,
-
1
,
4
)
/
_scale
,
pred_theta
.
view
(
batch_size
,
-
1
,
1
),
conf
.
view
(
batch_size
,
-
1
,
1
),
pred_cls
.
view
(
batch_size
,
-
1
,
self
.
num_classes
)),
-
1
)
outputs
.
append
(
output
.
data
)
return
outputs
def
yolo_correct_boxes
(
self
,
box_xy
,
box_wh
,
input_shape
,
image_shape
,
letterbox_image
):
def
yolo_correct_boxes
(
self
,
box_xy
,
box_wh
,
angle
,
input_shape
,
image_shape
,
letterbox_image
):
#-----------------------------------------------------------------#
# 把y轴放前面是因为方便预测框和图像的宽高进行相乘
#-----------------------------------------------------------------#
...
...
@@ -136,23 +141,16 @@ class DecodeBox():
box_yx
=
(
box_yx
-
offset
)
*
scale
box_hw
*=
scale
box_
mins
=
box_yx
-
(
box_hw
/
2.
)
box_
maxes
=
box_yx
+
(
box_hw
/
2.
)
boxes
=
np
.
concatenate
([
box_mins
[...,
0
:
1
],
box_mins
[...,
1
:
2
],
box_maxes
[...,
0
:
1
],
box_maxes
[...,
1
:
2
]],
axis
=-
1
)
boxes
*=
np
.
concatenate
([
image_shape
,
image_shape
],
axis
=-
1
)
box_
xy
=
box_yx
[...,
::
-
1
]
*
image_shape
box_
wh
=
box_hw
[...,
::
-
1
]
*
image_shape
boxes
=
np
.
concatenate
([
box_xy
[...,
0
:
1
],
box_xy
[...,
1
:
2
],
box_wh
[...,
0
:
1
],
box_wh
[...,
1
:
2
],
angle
[...,
0
:
1
]
],
axis
=-
1
)
return
boxes
def
non_max_suppression
(
self
,
prediction
,
num_classes
,
input_shape
,
image_shape
,
letterbox_image
,
conf_thres
=
0.5
,
nms_thres
=
0.4
):
#----------------------------------------------------------#
# 将预测结果的格式转换成左上角右下角的格式。
# prediction [batch_size, num_anchors, 85]
#----------------------------------------------------------#
box_corner
=
prediction
.
new
(
prediction
.
shape
)
box_corner
[:,
:,
0
]
=
prediction
[:,
:,
0
]
-
prediction
[:,
:,
2
]
/
2
box_corner
[:,
:,
1
]
=
prediction
[:,
:,
1
]
-
prediction
[:,
:,
3
]
/
2
box_corner
[:,
:,
2
]
=
prediction
[:,
:,
0
]
+
prediction
[:,
:,
2
]
/
2
box_corner
[:,
:,
3
]
=
prediction
[:,
:,
1
]
+
prediction
[:,
:,
3
]
/
2
prediction
[:,
:,
:
4
]
=
box_corner
[:,
:,
:
4
]
output
=
[
None
for
_
in
range
(
len
(
prediction
))]
for
i
,
image_pred
in
enumerate
(
prediction
):
...
...
@@ -161,13 +159,12 @@ class DecodeBox():
# class_conf [num_anchors, 1] 种类置信度
# class_pred [num_anchors, 1] 种类
#----------------------------------------------------------#
class_conf
,
class_pred
=
torch
.
max
(
image_pred
[:,
5
:
5
+
num_classes
],
1
,
keepdim
=
True
)
class_conf
,
class_pred
=
torch
.
max
(
image_pred
[:,
6
:
6
+
num_classes
],
1
,
keepdim
=
True
)
#----------------------------------------------------------#
# 利用置信度进行第一轮筛选
#----------------------------------------------------------#
conf_mask
=
(
image_pred
[:,
4
]
*
class_conf
[:,
0
]
>=
conf_thres
).
squeeze
()
conf_mask
=
(
image_pred
[:,
5
]
*
class_conf
[:,
0
]
>=
conf_thres
).
squeeze
()
#----------------------------------------------------------#
# 根据置信度进行预测结果的筛选
#----------------------------------------------------------#
...
...
@@ -177,10 +174,10 @@ class DecodeBox():
if
not
image_pred
.
size
(
0
):
continue
#-------------------------------------------------------------------------#
# detections [num_anchors,
7
]
#
7的内容为:x1, y1, x2, y2
, obj_conf, class_conf, class_pred
# detections [num_anchors,
8
]
#
8的内容为:x, y, w, h, angle
, obj_conf, class_conf, class_pred
#-------------------------------------------------------------------------#
detections
=
torch
.
cat
((
image_pred
[:,
:
5
],
class_conf
.
float
(),
class_pred
.
float
()),
1
)
detections
=
torch
.
cat
((
image_pred
[:,
:
6
],
class_conf
.
float
(),
class_pred
.
float
()),
1
)
#------------------------------------------#
# 获得预测结果中包含的所有种类
...
...
@@ -201,9 +198,9 @@ class DecodeBox():
# 使用官方自带的非极大抑制会速度更快一些!
# 筛选出一定区域内,属于同一种类得分最大的框
#------------------------------------------#
keep
=
nms
(
detections_class
[:,
:
4
],
detections_class
[:,
4
]
*
detections_class
[:,
5
],
_
,
keep
=
obb_
nms
(
detections_class
[:,
:
5
],
detections_class
[:,
5
]
*
detections_class
[:,
6
],
nms_thres
)
max_detections
=
detections_class
[
keep
]
...
...
@@ -227,9 +224,9 @@ class DecodeBox():
output
[
i
]
=
max_detections
if
output
[
i
]
is
None
else
torch
.
cat
((
output
[
i
],
max_detections
))
if
output
[
i
]
is
not
None
:
output
[
i
]
=
output
[
i
].
cpu
().
numpy
()
box_xy
,
box_wh
=
(
output
[
i
][:,
0
:
2
]
+
output
[
i
][:,
2
:
4
])
/
2
,
output
[
i
][:,
2
:
4
]
-
output
[
i
][:,
0
:
2
]
output
[
i
][:,
:
4
]
=
self
.
yolo_correct_boxes
(
box_xy
,
box_wh
,
input_shape
,
image_shape
,
letterbox_image
)
output
[
i
]
=
output
[
i
].
cpu
().
numpy
()
box_xy
,
box_wh
,
angle
=
output
[
i
][:,
0
:
2
],
output
[
i
][:,
2
:
4
],
output
[
i
][:,
4
:
5
]
output
[
i
][:,
:
5
]
=
self
.
yolo_correct_boxes
(
box_xy
,
box_wh
,
angle
,
input_shape
,
image_shape
,
letterbox_image
)
return
output
def
non_max_suppression_obb
(
self
,
prediction
,
conf_thres
=
0.25
,
iou_thres
=
0.45
,
classes
=
None
,
agnostic
=
False
,
multi_label
=
False
,
...
...
voc_annotation.py
浏览文件 @
8b7c5d20
...
...
@@ -56,7 +56,10 @@ def convert_annotation(year, image_id, list_file):
continue
cls_id
=
classes
.
index
(
cls
)
xmlbox
=
obj
.
find
(
'rotated_bndbox'
)
b
=
(
int
(
float
(
xmlbox
.
find
(
'rotated_bbox_cx'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'rotated_bbox_cy'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'rotated_bbox_w'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'rotated_bbox_h'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'rotated_bbox_theta'
).
text
)))
b
=
(
int
(
float
(
xmlbox
.
find
(
'x1'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'y1'
).
text
)),
\
int
(
float
(
xmlbox
.
find
(
'x2'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'y2'
).
text
)),
\
int
(
float
(
xmlbox
.
find
(
'x3'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'y3'
).
text
)),
\
int
(
float
(
xmlbox
.
find
(
'x4'
).
text
)),
int
(
float
(
xmlbox
.
find
(
'y4'
).
text
)))
list_file
.
write
(
" "
+
","
.
join
([
str
(
a
)
for
a
in
b
])
+
','
+
str
(
cls_id
))
nums
[
classes
.
index
(
cls
)]
=
nums
[
classes
.
index
(
cls
)]
+
1
...
...
yolo.py
浏览文件 @
8b7c5d20
...
...
@@ -25,8 +25,8 @@ class YOLO(object):
# 验证集损失较低不代表mAP较高,仅代表该权值在验证集上泛化性能较好。
# 如果出现shape不匹配,同时要注意训练时的model_path和classes_path参数的修改
#--------------------------------------------------------------------------#
"model_path"
:
'
model_data/yolov7
_weights.pth'
,
"classes_path"
:
'model_data/
coco
_classes.txt'
,
"model_path"
:
'
logs/best_epoch
_weights.pth'
,
"classes_path"
:
'model_data/
ssdd
_classes.txt'
,
#---------------------------------------------------------------------#
# anchors_path代表先验框对应的txt文件,一般不修改。
# anchors_mask用于帮助代码找到对应的先验框,一般不修改。
...
...
@@ -46,7 +46,7 @@ class YOLO(object):
#---------------------------------------------------------------------#
# 只有得分大于置信度的预测框会被保留下来
#---------------------------------------------------------------------#
"confidence"
:
0.5
,
"confidence"
:
0.
0
5
,
#---------------------------------------------------------------------#
# 非极大抑制所用到的nms_iou大小
#---------------------------------------------------------------------#
...
...
@@ -60,7 +60,7 @@ class YOLO(object):
# 是否使用Cuda
# 没有GPU可以设置成False
#-------------------------------#
"cuda"
:
Tru
e
,
"cuda"
:
Fals
e
,
}
@
classmethod
...
...
@@ -148,7 +148,8 @@ class YOLO(object):
#---------------------------------------------------------#
# 将预测框进行堆叠,然后进行非极大抑制
#---------------------------------------------------------#
results
=
self
.
bbox_util
.
non_max_suppression_obb
(
torch
.
cat
(
outputs
,
1
),
self
.
confidence
,
self
.
nms_iou
,
classes
=
self
.
num_classes
)
results
=
self
.
bbox_util
.
non_max_suppression
(
torch
.
cat
(
outputs
,
1
),
self
.
num_classes
,
self
.
input_shape
,
image_shape
,
self
.
letterbox_image
,
conf_thres
=
self
.
confidence
,
nms_thres
=
self
.
nms_iou
)
if
results
[
0
]
is
None
:
return
image
...
...
@@ -179,12 +180,10 @@ class YOLO(object):
#---------------------------------------------------------#
for
i
,
c
in
list
(
enumerate
(
top_label
)):
predicted_class
=
self
.
class_names
[
int
(
c
)]
poly
=
top_polys
[
i
]
poly
=
top_polys
[
i
]
.
astype
(
np
.
int32
)
score
=
top_conf
[
i
]
polygon_list
=
[(
poly
[
0
],
poly
[
1
]),
(
poly
[
2
],
poly
[
3
]),
\
(
poly
[
4
],
poly
[
5
]),
(
poly
[
6
],
poly
[
7
])]
polygon_list
=
list
(
poly
)
label
=
'{} {:.2f}'
.
format
(
predicted_class
,
score
)
draw
=
ImageDraw
.
Draw
(
image
)
label_size
=
draw
.
textsize
(
label
,
font
)
...
...
@@ -193,7 +192,7 @@ class YOLO(object):
text_origin
=
np
.
array
([
poly
[
0
],
poly
[
1
]],
np
.
int32
)
draw
.
polygon
(
xy
=
polygon_list
,
fill
=
(
0
,
0
,
0
),
outline
=
self
.
colors
[
i
],
width
=
label_size
)
draw
.
polygon
(
xy
=
polygon_list
,
outline
=
self
.
colors
[
c
]
)
draw
.
text
(
text_origin
,
str
(
label
,
'UTF-8'
),
fill
=
(
0
,
0
,
0
),
font
=
font
)
del
draw
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录