YOLOv4没交棒,但YOLOv5来了!
YOLOv4没交棒,但YOLOv5来了!
前言
4月24日,YOLOv4来了!
5月30日,"YOLOv5"来了!
这里的 "YOLOv5" 是带有引号的,因为 Amusi 认为网上刚出来的这个版本并称不上YOLOv5。这也是为什么标题为:大神没交棒,但YOLOv5来了!
YOLO原项目darknet(官方)截止2020年5月31日,并没有更新添加这个"YOLOv5"的链接。最新的一次update还是上个月YOLOv4重磅出炉的那次,官方正式添加了YOLOv4项目链接。
关于YOLOv4,Amusi 认为那是真正的YOLOv4,也是YOLO系列的真正接班人。关于YOLOv4详细内容,可见:大神接棒,YOLOv4来了!
大神没交棒,YOLOv5来了!
先申明,Amusi 没有刻意针对"YOLOv5"这个项目团队,也没有否认该项目的意义和贡献。而是针对YOLOv5这个名字,个人觉得很不ok,很不ok。
项目链接:https://github.com/ultralytics/yolov5
先简单介绍一下"YOLOv5"的来历。
"YOLOv5"的项目团队是Ultralytics LLC 公司,很多人应该没有听过这家公司。但提到他们公司的一个项目,很多人应该就知道了,因为不少同学用过。那就是基于PyTorch复现的YOLOv3,按目前github上star数来看,应该是基于PyTorch复现YOLOv3中的排名第一。Amusi 之前还分享过此项目,详见:YOLOv3最全复现代码合集(含PyTorch/TensorFlow和Keras等)
https://github.com/ultralytics/yolov3
他们复现的YOLOv3版而且还有APP版本
YOLOv3 in PyTorch > ONNX > CoreML > iOS
其实这个公司团队在YOLOv3上花的功夫蛮多的,不仅有APP版,还对YOLOv3进行了改进,官方介绍的性能效果可以说相当炸裂!另外项目维护的也很牛逼,star数已达4.7 k,commits 都快逼近2500次!
Ultralytics
Professional Support
Ultralytics is a U.S.-based particle physics and AI
startup with over 6 years of expertise supporting government, academic and
business clients. We offer a wide range of vision AI services, spanning from
simple expert advice up to delivery of fully customized, end-to-end production
solutions, including:
- Cloud-based AI surveillance systems operating on hundreds
of HD video streams in realtime. - Edge AI integrated into custom iOS and Android apps for
realtime 30 FPS video inference. - Custom data training, hyperparameter evolution, and model exportation
to any destination.
For business inquiries and professional support requests
please visit us at https://www.ultralytics.com.
可见Ultralytics LLC 公司在YOLO社区上的贡献还是有一定影响力的,这也是为什么他们刚推出"YOLOv5",就得到不少人的关注。
据官方称:"YOLOv5" 实际上还处于开发的阶段,预计2020年第2季度/第3季度将全部开发完成。目前放出来的版本,是集成了YOLOv3-SPP和YOLOv4部分特性。
关于项目的更新说明,详见此图
那么"YOLOv5"的性能有多强呢,Ultralytics
LLC给出的数据如下:
这里说一下,YOLOv5-x的性能已经达到:47.2 AP / 63 FPS,但项目说是在 image size = 736的情况下测得,所以从目前数据,是无法判断"YOLOv5"和 YOLOv4的性能究竟哪个更好(有意思的是,官方也没有给出)。下次Amusi 会实测一下这个版本的"YOLOv5" 和 YOLOv4性能,做一个比较。
Inference
Inference
can be run on most common media formats. Model checkpoints
are downloaded automatically if available. Results are saved to ./inference/output
.
$ python detect.py --source file.jpg # image
file.mp4 # video
./dir # directory
0 # webcam
rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa # rtsp stream
http://112.50.243.8/PLTV/88888888/224/3221225900/1.m3u8 # http stream
To run inference on examples in the ./inference/images
folder:
$ python detect.py --source ./inference/images/ --weights yolov5s.pt --conf 0.4
Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.4, device='', fourcc='mp4v', half=False, img_size=640, iou_thres=0.5, output='inference/output', save_txt=False, source='./inference/images/', view_img=False, weights='yolov5s.pt')
Using CUDA device0 _CudaDeviceProperties(name='Tesla P100-PCIE-16GB', total_memory=16280MB)
Downloading https://drive.google.com/uc?export=download&id=1R5T6rIyy3lLwgFXNms8whc-387H0tMQO as yolov5s.pt... Done (2.6s)
image 1/2 inference/images/bus.jpg: 640x512 3 persons, 1 buss, Done. (0.009s)
image 2/2 inference/images/zidane.jpg: 384x640 2 persons, 2 ties, Done. (0.009s)
Results saved to /content/yolov5/inference/output
Ultralytics LLC目前已经给出"YOLOv5"的代码、模型、训练/测试脚本
python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 16
但Ultralytics LLC并没有给出"YOLOv5"的算法介绍(论文、博客其实都没有看到),感兴趣的同学只能通过代码查看"YOLOv5"的特性。只能说现在版本的"YOLOv5"集成了YOLOv3-SPP和YOLOv4的部分特性等。
侃侃
虽然现在没有给出算法介绍,但仅从给出的性能数据看起来"YOLOv5"还是不错的。不过 Amusi 认为起名"YOLOv5"实属不应该。
1. 起码要和YOLO之父Joe Redmon通知一声,经过他同意(官方项目没有更新,Amusi猜测起码没有得到认可)
2. 任何人都有起名的权利,但YOLO系列太知名了,Ultralytics LLC本身也作为YOLO社区的贡献者,应该很清楚这一点。项目很强,但YOLOv5
Amusi 不认可该项目命名为"YOLOv5"这个名字,但对开源的精神点赞,希望项目继续更新,造福更多的YOLO玩家。
YOLOv4没交棒,但YOLOv5来了!的更多相关文章
- 先埋锅-CF-Valid BFS?-差一点没交上
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...
- 使用 python 查看谁没有交作业
话说实验报告每天都要查人数,何不用程序实现 使用 python 查看谁没有交作业 version 1.0 程序嘛,肯定是可以改进的.使用该程序的前提是实验报告文件名中包含学号信息.将以上程序放在实验报 ...
- JavaFX之班级未交作业统计
前言 最近转移了系统平台,用上了Ubuntu1804版本系统,原来用C#写的Windows窗体软件也不能用了,而且自己在班级上每周都需要收作业,所以写了这个软件.这篇博客主要记录这个JavaFX应用的 ...
- Alpha冲刺 - 事后诸葛亮
Alpha冲刺 - 事后诸葛亮 Alpha完成情况表 Stardust(安卓端) 模块 预期计划 现实进展 完成度 登录/注册 登录时,从服务器拉取的数据并同步数据库.获取的数据有:用户名.密码.记录 ...
- 2018C语言助教总结
回顾 很荣幸得到各位老师的认可,担任计科3班和4班的C语言课程助教,很感谢车老师和牛老师一学期的帮助,使得我更好的担任助教一职.我班学生59名,很愉快的与同学们度过一个美好的学期,其实作为助教同样从学 ...
- THUSC 2018 游记
现在是闭幕式,我坐在西郊宾馆后排,开始写这篇游记. day0 早上从临汾坐火车到北京,12:52左右到了北京. 这次北京的地铁安检没有排成很长的队,但是在买票的时候我惊喜地发现我身上没有零钱--所幸北 ...
- 各种友(e)善(xin)数论总集(未完待续),从入门到绝望
目录 快速幂 扩展欧几里得 GCD 扩展欧几里得 同余系列 同余方程 同余方程组 一点想法 高次同余方程 BSGS exBSGS 线性筛素数 埃式筛 欧拉筛 欧拉函数 讲解 两道水题 法雷级数 可见点 ...
- Python-S9-Day123——爬虫两示例
01 今日内容回顾 02 内容回顾和补充:面向对象约束 03 爬虫之抽屉新热榜 04 爬虫之抽屉自动登录(一) 05 爬虫之抽屉自动登录(二) 06 爬虫之登录github(一) 07 爬虫之登录gi ...
- go 学习 (五):goroutine 协程
一.goroutine 基础 定义 使用者分配足够多的任务,系统能自动帮助使用者把任务分配到 CPU 上,让这些任务尽量并发运作,此机制在Go中称作 goroutine goroutine 是 Go语 ...
随机推荐
- git 避免重复输入用户名密码问题解决
"store" 模式会将凭证用明文的形式存放在磁盘中,并且永不过期. 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息. 这种方式的缺点是你的 ...
- 从苏宁电器到卡巴斯基第10篇:我在苏宁电器当营业员 II
之所以是主推,其实是有原因的 据我所知,尽管诺基亚卖的很好,但是他们的厂促的待遇却很一般,估计也就一千多两千的样子,撑死两千多.但是呢,记得当时我们的卖场里面还有联想手机,别看卖得相当次,但是他们的厂 ...
- DexHunter的原理分析和使用说明(二)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53715325 前面的博文<Android通用脱壳工具DexHunter的原理 ...
- android so加载
本文分析so加载的步骤,其实在之前dalvik浅析二中也有提及,但那重点关注的是jni.android中so库的加载,代码如下: loadLibrary("nanosleep"); ...
- UVA10341解方程(二分)
题意: 给你一个方程 F[x] = pe^-x + qsin(x) + rcos(x) + stan(x) + tx^2 + u = 0(0<=p,r<=20,-20<= ...
- Day015 Error和Exception
Error和Exception 什么是异常 实际工作中,遇到的情况不可能是非常完美的.比如:你写的某个模块,用户输入不一定符合你的要求.你的程序要打开某个文件,这个文件可能不存在或者文件的格式不对,你 ...
- Codeforces Round #692 (Div. 2, based on Technocup 2021 Elimination Round 3)
A.In-game Chat 题目:就是从后面数连着的'('的个数是不是严格比剩下的字符多 思路:水题,直接从后往前遍历即可 代码: #include<iostream> #include ...
- (四)Jira Api对接:缺陷分析和任务分析
迭代进行期间或者结束后,在我们的测试日报或者测试报告中需要体现缺陷详细情况,甚至大家工作效率情况.本文就讨论下如何通过jira api获取缺陷信息并进行分析,同时获取需求子任务情况来了解测试和开发的工 ...
- 缓存架构中的服务详解!SpringBoot中二级缓存服务的实现
创建缓存服务 创建缓存服务接口项目 创建myshop-service-redis-api项目,该项目只负责定义接口 创建项目的pom.xml: <?xml version="1.0&q ...
- [算法] 单链表插入排序(java)
实现 首先保证插入前的链表是个完整的,最后一个节点要断开 然后在插入前链表中找到比待插入节点大的最小元素,插到前面即可 Link.java class Link { private class Nod ...