专栏首页唐国梁Tommy小白入门,YOLO_v5 对海洋生物进行目标检测和识别

小白入门,YOLO_v5 对海洋生物进行目标检测和识别

哈喽,大家好,今天我们用计算机视觉领域中最流行的深度学习目标检测框架神器:YOLO v5,进行海洋生物的检测与识别。小白同学也可以跟着我一步一步操作,具体操作流程如下:

----------------------------------------------------------

我的电脑配置环境如下:

系统:Ubuntu 20.04.2 LTS

GPU:RTX 3080, 10G

NVIDIA配置:

① NVIDIA-SMI 465.19.01

② Driver Version: 465.19.01

③ CUDA Version: 11.3

Python版本:Python 3.8.5

torch版本:1.8.1+cu111

torchvision 版本:0.9.1+cu111

opencv-python 版本:4.5.1.48

-----------------------------------------------------------

1. 打开电脑上的命令行窗口,命令如下:

2. 安装软件包:virtualenv ,用于创建虚拟环境。【我这里没有用集成开发工具软件Anaconda,因为,我更喜欢用virtualenv,哈哈~】

输入命令:

pip install virtualenv

【注意:你的输出信息会与我不一样,因为,我之前已经装过了virtualenv,所以显示:Requirement already satisfied。后续,会有很多软件包,我都已经安装过了,所以,显示信息会与你的不一样。不过,这没有任何影响。只要你的命令输入与我的一模一样,那就OK啦。】

3. 创建虚拟环境,解释一下:虚拟环境类似于“平行世界”,A虚拟环境中发生的事情与B虚拟环境中发生的事情不会有任何冲突,也可以理解成隔离区域。优点是:无论我在A虚拟环境中怎么瞎折腾,都不会影响到B虚拟环境。所以,我建议各位同学为了每一个项目创建自己的虚拟环境,这样大家都可以愉快地玩耍啦。

命令如下:

virtualenv YOLO_v5_env

4. 启动虚拟环境,并查看虚拟环境中默认已经安装的软件包,命令如下:

source YOLO_v5_env/bin/activate

pip list

【注意:(base)前面是不是多了一个(YOLO_v5_env),这说明我们已经进入到了虚拟环境下啦,恭喜你,老铁,安装成功了。默认安装的软件包只有3个。】

5. 接下来,我们从github下载YOLO v5工程项目,项目路径:https://github.com/ultralytics/yolov5.git ,我们从该路径拷贝项目到本地,命令如下:

git clone https://github.com/ultralytics/yolov5.git

6. 查看yolov5项目下的文件,命令如下:

cd yolov5

ls

7. 根据文件requirements.txt安装里面罗列的软件包,你可以自己打开该文件看看有哪些软件包。我们直接安装,命令如下:

pip install -r requirements.txt

【注意: 你的信息显示与我的不一样,因为,我已经装过了。反正,这里会输出一堆一堆的安装信息,等一会儿就可以啦。】

8. 下一步,下载本案例需要用到的数据集(海洋生物图片和标注数据),百度云盘下载链接:

链接: https://pan.baidu.com/s/1_NBMD5kaTazuemI8WAiuew 密码: qf0w

注意 :数据集下载下来后,一定要解压到yolov5项目文件夹下,如下图所示:

9. 查看Aquarium文件夹下有哪些文件,共有3个文件夹,test, train, valid,如下截图:

10. 创建网络模型配置文件: custom_yolov5s.yaml,你可以用系统自带的文本编辑软件或通过软件sublime来创建,文件的格式是.yaml , 创建完成后,如图所示: 【一定要注意文件存放的路径,不能放错。在项目yolov5 --> data文件夹下,存放了cutom——yolov5s.yaml】

11. 查看custom——yolov5s.yaml文件的配置内容,鼠标双击打开该文件。截图如下:

你可以直接复制下面这段配置内容:

# parameters

nc: 7 # number of classes # CHANGED HERE

depth_multiple: 0.33 # model depth multiple

width_multiple: 0.50 # layer channel multiple

# anchors

anchors:

- [10,13, 16,30, 33,23] # P3/8

- [30,61, 62,45, 59,119] # P4/16

- [116,90, 156,198, 373,326] # P5/32

# YOLOv5 backbone

backbone:

# [from, number, module, args]

[[-1, 1, Focus, [64, 3]], # 0-P1/2

[-1, 1, Conv, [128, 3, 2]], # 1-P2/4

[-1, 3, BottleneckCSP, [128]],

[-1, 1, Conv, [256, 3, 2]], # 3-P3/8

[-1, 9, BottleneckCSP, [256]],

[-1, 1, Conv, [512, 3, 2]], # 5-P4/16

[-1, 9, BottleneckCSP, [512]],

[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32

[-1, 1, SPP, [1024, [5, 9, 13]]],

[-1, 3, BottleneckCSP, [1024, False]], # 9

]

# YOLOv5 head

head:

[[-1, 1, Conv, [512, 1, 1]],

[-1, 1, nn.Upsample, [None, 2, 'nearest']],

[[-1, 6], 1, Concat, [1]], # cat backbone P4

[-1, 3, BottleneckCSP, [512, False]], # 13

[-1, 1, Conv, [256, 1, 1]],

[-1, 1, nn.Upsample, [None, 2, 'nearest']],

[[-1, 4], 1, Concat, [1]], # cat backbone P3

[-1, 3, BottleneckCSP, [256, False]], # 17 (P3/8-small)

[-1, 1, Conv, [256, 3, 2]],

[[-1, 14], 1, Concat, [1]], # cat head P4

[-1, 3, BottleneckCSP, [512, False]], # 20 (P4/16-medium)

[-1, 1, Conv, [512, 3, 2]],

[[-1, 10], 1, Concat, [1]], # cat head P5

[-1, 3, BottleneckCSP, [1024, False]], # 23 (P5/32-large)

[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)

]

12. 我们继续创建第二个数据配置文件data.yaml , 创建方式跟之前那个一模一样的操作,在此省略,以下是data.yaml所在路径截图,以及data.yaml配置内容。截图如下:

下图是data.yaml文件内的配置内容,截图如下:

你可以直接复制下面这段配置内容:【train和val的路径一定要准确,不然找不到你的训练和验证图片数据集。注意路径,注意路径,注意路径,重要的事情说三遍。nc:7,表示数据集有7个类别,names对应的就是海洋生物的名称,一堆海鱼的名字。】

train: ../yolov5/Aquarium/train/images

val: ../yolov5/Aquarium/valid/images

nc: 7

names: ['fish', 'jellyfish', 'penguin', 'puffin', 'shark', 'starfish', 'stingray']

13. 接下来,我们基于新的数据集,训练出新的模型。命令如下:

python train.py --img 416 --batch 80 --epochs 100 --data ./data/data.yaml --cfg ./data/custom_yolov5s.yaml

14. 运行报错啦,CUDA Error,这种报错一般是torch,cuda版本过高或过低引起的,也是比较头疼的问题,需要尝试很多版本后,才能找到一个不报错的版本。

15. 解决措施,直接到官网,重新下载torch和tochvision,注意,一定要先卸载之前安装的软件包。卸载如下图所示:

pip uninstall torch torchvision

16. 重新到官网去下载、安装,进入pytorch官网:https://pytorch.org/

根据自己的电脑系统和CUDA版本配置,选择对应的torch, torchvision, torchaudio

安装命令:

pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

17. 接下来,我们重复第13步的操作。基于新的数据集,训练出新的模型。命令如下:

python train.py --img 416 --batch 80 --epochs 100 --data ./data/data.yaml --cfg ./data/custom_yolov5s.yaml

截图1:

截图2:

如果出现如上一轮一轮的训练输出信息时,恭喜你,奥利给 ^_^ 成功啦

【注意: 截图1提示你需要安装wandb ,即: pip install wandb ,可以在训练结束前先安装,我是训练结束后再安装的。不过,建议还是训练前就安装一下。】

截图3: 全部训练结束,输出2个模型,一个是最好的模型,一个是最后的模型。

18. 安装wandb (建议在第17步前安装)

19. 用tensorboard查看训练过程中的结果,命令如下:

tensorboard --logdir ./runs

20. 接下来,拷贝网址: http://localhost:6006/ , 在浏览器里粘贴后回车。

可以点击查看训练输出的各种评估指标值,例如: precision, recall, mAP

21. 查看训练数据检测和识别的标注图片,路径如下: yolov5 -- runs -- train -- exp ,请看截图:

查看图片 train_batch2.jpg

22. 我们刚才在训练集上训练好了模型,接下来,我们到测试集test上进行测试。命令如下:

python detect.py --weights ./runs/train/exp/weights/best.pt --img 416 --conf 0.4 --source ./Aquarium/test/images

【注意: 参数说明,img 416 : 输入图片尺寸是416 x 416,conf 0.4 :阈值是0.4,source 指定了测试集的图片路径】

如果输出这么一堆信息,说明模型正在test上进行检测、并输出检测结果。

23. test数据集的检测结果保存在路径: yolov5 -- runs -- detect -- exp ,如下截图:

24. 任意打开其中一个检测结果图片,查看检测结果。几个检测结果图如下:

好啦,本次案例实践圆满完成 :)如果你安装我的步骤,一步一步下来,应该不会有什么问题。如果遇到任何问题,请到B站,查看我的个人简介,添加"AI学习部落"QQ群一起讨论。目前,我们一共有10个QQ群,学员已经超过1800名。

更多AI相关课程,请在网易云课堂和B站关注账号:唐国梁Tommy

网易云课堂:

https://study.163.com/instructor/1028614893.htm?_trace_c_p_k2_=a8d2f7653bf94cd5a821036a432179e4

B站:

https://space.bilibili.com/474347248

本文分享自微信公众号 - 唐国梁Tommy(TangGuoLiangAI),作者:唐国梁Tommy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 小白入门,手把手教你用YOLO-v3进行目标检测与识别

    老铁们,今天我们将继续配置YOLO-v3目标检测与识别深度学习框架,基于COCO数据集进行训练,并测试模型的效果,最后,我们将通过YOLO-v3进行摄像头实时目...

    唐国梁Tommy
  • 2020「水下目标检测算法赛」赛题解析——声学图像

    当下,由于水下恶劣危险的环境,海洋产业在发展中面临着迫切的产业智能化升级需求。为了解决该类问题,将光学技术、声学技术和 AI 算法更好的融入到海洋产业中,近期,...

    AI科技评论
  • 盗墓笔记什么的弱爆了,水下机器人解决一切

    不需要呼吸氧气,也不需要休息,能实时传回水底信息,可代替人工完成多种船舶相关水下作业……这是水下机器人的神奇之处。 2011年,舟山群岛新区批复成立,这个国内首...

    机器人网
  • 这 10 条河,「贡献」了全球 95% 的海洋塑料污染

    内容概要:海洋,占据了地球上 70% 的面积,它可以沉静,可以欢腾,也可以暴怒,在浩瀚的海洋世界中,一些外来物严重威胁到了海洋生物的生存。

    HyperAI超神经
  • 美团点评旅游搜索召回策略的演进

    背景 美团点评作为最大的生活服务平台,有丰富的品类可供用户选择,因此搜索这个入口对各业务的重要性不言而喻,除了平台搜索外,业务搜索系统的质量和效果对用户体验、商...

    美团技术团队
  • 只用CPU开发自动驾驶轮船,他们居然做到了

    带着这个问题,我打开谷歌,输入“Autonomous ship”,没想到现在的自动驾驶轮船技术刷新了我的认知:

    量子位
  • mBio minireview: 海洋中的真菌:现存的未解之题

    Department of Biology, University of North Carolina at Chapel Hill, Chapel Hill,...

    Listenlii-生物信息知识分享
  • 首个镜子分割网络问世,大连理工、鹏城实验室、中国香港城大出品 | ICCV 2019

    镜子作为日常生活中非常重要的物体无处不在,不仅能够反射光线,能呈现出周围物体或者场景的镜像。

    量子位
  • 【投票启动】2019中国千山·金峰奖之最佳文旅科技创新示范奖

    ? 中国文旅产业“金峰奖”评选致力于促进产业升级发展、构建优质文旅资源联合体、打造文旅产业年度风向标。 自2016年起,已连续评选3届,共200余个地区及机构...

    腾讯文旅
  • 为什么气象站和 AI 都测不准天气?

    内容概要:根据气象部门预报,8 月 12 日北京将迎来今年入汛以来最强降雨,引发了社会各界的关注,也让人们开始关注天气预报和背后的科学预测方法。如今在气象观测中...

    HyperAI超神经
  • 通过18万小时的海域录音,谷歌用AI帮助科学家更好地保护座头鲸

    近几年,人工智能已经走进了各个领域,以帮助人类更好的进行研究。近日《纽约时报》报道称,机器学习为海洋“巨头”座头鲸的科学研究提供了很大帮助。

    大数据文摘
  • 可以追踪识别大白鲨的人工智能

    计算能力在过去几年里不断增强,大数据和改进算法的结合,使人工智能从研究实验室中走出,成为众多创新应用的技术内核。比如机器人手术、加勒比海的飓风预报系统、个性化课...

    AiTechYun
  • 谁说大数据不实用?来看看数据化带来的惊喜

    近年来,被「大数据」这一新词所包围,但是说来说去,由冷到热又趋冷,耳朵都听出茧子来了,除了沃尔玛超市「啤酒与尿布」的老例子,似乎并没有什么新的应用让人切身感受到...

    小莹莹
  • “鱼脸识别”助力渔业管理

    据美国政府计算机网站(GCN)报道,为了监测包括北太平洋和东白令海在内的约三百万平方英里海洋中的鱼类资源,美国阿拉斯加州渔业科学中心开始使用面部识别技术(更准确...

    人工智能快报
  • 一周飞越50万平方米,无人机检测1.5吨海滩垃圾!自动分类47种,准确率超95%

    最近,在英国多个海滩上,就被发现人为制造的垃圾多达1.5吨,共计123000多件物品,其中前三名分别是香烟(47,467)、包括收据和餐巾纸在内的纸张(32,6...

    大数据文摘
  • 主机安全——洋葱Webshell检测实践与思考

    Webshell是网站入侵的常用后门,利用Webshell可以在Web服务器上执行系统命令、窃取数据等恶意操作,危害极大。Webshell因其隐秘性、基于脚本、...

    腾讯安全应急响应中心
  • NRM全球变化微生物学:小生命的大问题

    全球变化微生物学是一个快速发展的研究领域,研究微生物对全球变暖、过度使用和污染的响应,以及影响地球元素循环和地球健康的反馈机制和功能。这一领域将为我们的可持续发...

    Listenlii-生物信息知识分享
  • ☞【案例】大数据与数据挖掘的相对绝对关系

    泄密者爱德华·斯诺登(Edward Snowden)还在寻求容身之所的时候,美国国家安全局(NSA)全方位收集电话和电子邮件记录之事经过他的披露,已经引发了不安...

    小莹莹
  • 渔民之友:Google X 新项目,用计算机视觉养鱼

    场景描述:谷歌母公司 Alphabet 的 X 部门,最新宣布了其 Moonshot 项目 Tidal。该项目利用计算机视觉等人工智能技术,监测海底环境、观察和...

    HyperAI超神经

扫码关注云+社区

领取腾讯云代金券