*打工人的第一周之软件安装和环境搭建*
安装python
安装anaconda
安装vs code
搭建python环境
搭建yolo环境
渠道:两个网址和一本书
https://www.liaoxuefeng.com/wiki/1016959663602400
https://www.runoob.com/python/python-tutorial.html
《python基础教程》
python中的list、tuple、set、dict用法简析:
https://www.cnblogs.com/webary/p/5187217.html
https://blog.csdn.net/qq_34885993/article/details/116013225
参考的网址:
https://blog.csdn.net/no__matter/article/details/107865378
https://blog.csdn.net/mary_0830/article/details/103361664
https://blog.csdn.net/mary_0830/article/details/108776419?spm=1001.2014.3001.5501
为什么要进行格式的转换???
因为目标检测,需要大量的数据集作为数据源,而这些数据集一般来自几个平台,但是标注文件格式不同。在进行标注操作时,需要格式转换。
比如 json是coco等数据集的标注格式,xml是voc数据集的标注格式,txt是yolo和大部分数据集的标注格式。
其中voc和coco数据集的介绍如下:https://blog.csdn.net/bestrivern/article/details/88846977
渠道:两个网址和一个博主
https://jingyan.baidu.com/article/d5a880ebdd962f13f147ccb9.html(读图,显示,画框)
https://blog.csdn.net/lly1122334/article/details/104945976(裁剪)
https://blog.csdn.net/weixin_43170082/article/details/115383629(该博主主要讲解opencv用法)
关键字:roi
ROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。
如果你设置了图像了ROI,那么在使用OpenCV的函数的时候,会只对ROI区域操作,其他区域忽略。
渠道:两个网址
http://aiskyeye.com/
https://github.com/VisDrone
此次实战的数据集来自visdrone, Visdrone其实是一个竞赛。
补充:①visdrone=visual drone 视觉无人机 ②gt框,即正确打标记的数据框 ground truth box
③GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。
Github已经成为了管理软件开发以及发现已有代码的首选方法,有点像代码的云。
将visdrone的数据集中的训练集的txt文件转换成xml文件:
https://blog.csdn.net/mary_0830/article/details/108776419?spm=1001.2014.3001.5501
数据集画框:
https://blog.csdn.net/mary_0830/article/details/109284020?spm=1001.2014.3001.5501
老师今天看到我的周报,又跟我强调了以上六个字!
我突然有些迷惑,何为编程,何为算法?
链接:https://blog.csdn.net/zag666/article/details/90374855
简单来讲,算法是理论方法,编程能力就是用程序将算法实现。老师的意思应该是不用太过于研究算法,能编程解决问题才是硬实力。
何为切图?
图像分辨率大,样本中小目标居多的情况下,如果reshape成小图再送进网络训练的话,目标会变得非常小,识别难度大。
直接大图训练GPU显存又顶不住,太大的原图会消耗太多的cpu时间,导致极度拖慢训练时间,而且推理速度会很慢。
这里实现一种离线切图的形式把原图按一定的宽高,切成很多个小图进行训练。切标注同理。
了解链接:
https://zhuanlan.zhihu.com/p/343207954
https://blog.csdn.net/zengwubbb/article/details/115800477
如何用python语言实现?
简单的图片分割和合并:https://blog.csdn.net/qq_40608730/article/details/109190493
理解指标:
https://blog.csdn.net/weixin_45250844/article/details/94592491
https://blog.csdn.net/h1yupyp/article/details/80842172?spm=1001.2014.3001.5501
理解map:
https://blog.csdn.net/xiezongsheng1990/article/details/89608923?spm=1001.2014.3001.5501
https://blog.csdn.net/hsqyc/article/details/81702437?spm=1001.2014.3001.5501
如何用python语言实现?
此次选用voc数据集
voc数据集下载地址:https://pjreddie.com/projects/pascal-voc-dataset-mirror/
voc数据集的介绍:https://www.jianshu.com/p/2cc1b0577d85
https://blog.csdn.net/Guo_Python/article/details/113366278
https://blog.csdn.net/weixin_36474809/article/details/86517885
图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。
渠道:两个网址和一本书
https://blog.csdn.net/u013088062/article/details/50425018(这是网址介绍的很详细,这个博主也是宝藏博主,爱了爱了)
https://blog.csdn.net/wakatipu/article/details/50966098?spm=1001.2014.3001.5501(数字图像处理框架)
《数字图像处理》
在数字图像处理领域,存在着空间域和变换域的概念。无论在空间域还是在变换域,像素都是根本。在大多数的数字图像处理中,像素之间在运算时都是要发生关系的,这是因为多个像素构成了图像中的一个对象。了解相邻像素,邻接性、连通性,像素的通路等。
渠道:两个网址
https://blog.csdn.net/ddiicey/article/details/73864470
https://blog.csdn.net/u012627502/article/details/19753517
人工智能,机器学习,深度学习的关系:
https://zhuanlan.zhihu.com/p/103373260
目标检测需要定位出物体的位置并识别出物体的类别。目前通用目标检测以R-CNN、Faster-RCNN、R-FCN、R-FCN-3000框架为主。
该系列框架核心思想在于在图像上选出候选框,并且通过CNN(卷积神经网络)进行学习。
R-CNN框架在VOC2007数据集测试中取得了58.5%的平均精确度均值(mean Average Precision,mAP),
Faster-RCNN框架在VOC2007上mAP能达到73%,
利用NVIDIA Tesla K40GPU速度可以达到5fps(画面每秒传输帧数,Frame Per Second),深度学习的目标检测识别方法成为当前算法主流。
斯坦福课程:https://www.bilibili.com/video/av13260183/#page=1
官方笔记:https://cs231n.github.io/ (ca231n全称:面向视觉识别的卷积神经网络)
博主的课程总结:https://zhuanlan.zhihu.com/p/21930884
https://zhuanlan.zhihu.com/p/76514213
其他:
Andrej Karpathy的博客:http://karpathy.github.io/
GitHub的Andrej karpathy的网址:https://github.com/karpathy
某博主的概念总结:https://blog.csdn.net/mary_0830/article/details/107730289
看另一篇总结:https://blog.csdn.net/qq_34885993/article/details/116147577
渠道:三个网址
https://github.com/AlexeyAB/darknet(C语言)
https://github.com/ultralytics/yolov5(pytorch)
https://github.com/BBuf/Darknet
补充知识点(三个都是神经网络框架):
何为pytorch:https://blog.csdn.net/bestrivern/article/details/89433023
何为darknet:https://blog.csdn.net/u010122972/article/details/83541978
何为caffe:https://blog.csdn.net/qq_27923041/article/details/77431833
综述:https://blog.csdn.net/zandaoguang/article/details/109664610
补充:学习算法的一般学习过程
①看完相关综述(可以搭配哔哩哔哩的视频讲解)有个大致了解,看完综述,基础薄弱可以先看bilibili博主的视频加深理解,然后再看论文会很晦涩难懂。
②开始看论文(yolov1,v2,v3,v4的顺序看)
③阅读源码时根据read me 跑通代码
④结合论文看网络搭建,数据预处理和损失函数(后面两个部分更重要)
看另一篇总结博文:https://blog.csdn.net/qq_34885993/article/details/116484625