YOLO工程代码如何在windows上配置和运行!window上YOLO训练样本的制作
我使用的YOLO的GPU版本工程是代码链接是:yolo-windows-master,其博客地址是:http://blog.csdn.net/sinat_30071459/article/details/53161113
CPU版本的博客地址是:http://blog.csdn.net/luojun2007/article/details/52370140
1、GPU配置,其中yolo使用的GPU版本的,其网上下载的代码基本是用CUDA7.5计算版本的,如果自己系统装的不是这个版本的则会出现加载工程失败,其错误信息如下:
此时双击上面的无法加载cuda属性表的错误,这个属性表是我们在安装CUDA时会在系统目录下自动生产相应版本的。如果我们安装的时8.0的,则改为:
保存后重新加载项目,此后会出现一些7.5的字眼,把其改为8.0即可,最后会出现一个:
这时关闭sln那个工程,打开自己的path路径下的\yolo-windows-master\build\darknet\darknet下的那个darknet.vcxproj工程,重新加载则可以加载成功。如下图:
接下来就时配置opencv、thread、cuda。
a、配置opencv,其默认使用的opencv版本时249的,如果配置自己的则需要删除掉:yolo_demo.c、yolo_kernels.cu
两个文件下的opencv引用。然后就可以配置自己的opencv了。
b、其中thead已经配置好了。也是需要自己手动配置工程的。
c、如果前面的cuda路径正确的话,则其也已经配置好了。也是需要自己手动配置工程的。
工程编译需要修改的地方:
a、这个工程使用的时没有配置生产debug的exe的,而是release模式的,此时我们应该做的是:右键解决方案-》配置属性,把图中的1跟2的属性选成一样的即可。
2、window上YOLO训练样本的制作
a、图像数据标注:
参考文章:http://blog.csdn.net/qq_30401249/article/details/51504816
其中使用BBox-Label-Tool的时候需要注意:要从Examples下有的那类开始标注,因为程序是从这里按类别加载例子数据的,如果没有加载到的话会报错。其代码如下;
# load example bboxes,这说明刚开始标注数据的时候需要从Examples里有的类开始,否则会报错,然后退出。self.egDir = os.path.join(r'./Examples', '%03d' %(self.category))if not os.path.exists(self.egDir):returnfilelist = glob.glob(os.path.join(self.egDir, '*.JPEG'))self.tmp = []self.egList = []random.shuffle(filelist)for (i, f) in enumerate(filelist):if i == 3:breakim = Image.open(f)r = min(SIZE[0] / im.size[0], SIZE[1] / im.size[1])new_size = int(r * im.size[0]), int(r * im.size[1])self.tmp.append(im.resize(new_size, Image.ANTIALIAS))self.egList.append(ImageTk.PhotoImage(self.tmp[-1]))self.egLabels[i].config(image = self.egList[-1], width = SIZE[0], height = SIZE[1])self.loadImage()print '%d images loaded from %s' %(self.total, s)
还有一个就是生成的标注数据格式:
class_number
box1_x1 box1_y1 box1_width box1_height
box2_x1 box2_y1 box2_width box2_height
其中的class_number 指的是训练样本里的同类目标的个数,及在数据标注的时候如果有多个同类目标的话可以把其都标注出来,每次标注时会出现不同的颜色框,其对应于代码为:
# colors for the bboxes
COLORS = ['red', 'blue', 'yellow', 'pink', 'cyan', 'green', 'black']
对应的图片为:
b、接着就是数据转换,转成yolo能够处理的形式,其需要借助:darknet/scripts/convert.py
其这个代码是在linux系统下的,如果应用带window上有一些需要修改的,主要参考:http://blog.csdn.net/qq_30401249/article/details/51564871 ,一些额外的修改或改正的地方:
(1)文件路径的正确与否:
mypath = "Labels/001/" #路径要正确
outpath = "Labels/stopsign/"
(2)修改换行符:
for txt_name in txt_name_list:# txt_file = open("Labels/stop_sign/001.txt", "r")""" Open input text files """txt_path = mypath + txt_nameprint("Input:" + txt_path)txt_file = open(txt_path, "r")lines = txt_file.read().split('\n') # for ubuntu, use "\r\n" instead of "\n"
注意:网上下载的这个转换代码基本上是linux上运行的,其换行符石“\r\n”,所以当我们在window上运行时需要改为“\n”.否则程序会报错。
注意上面的几步,基本可以完成数据的转化,其转换结果会为:
class_index box1_x1_ratio box1_y1_ratio box1_width_ratio box1_height_ratio
class_index box2_x1_ratio box2_y1_ratio box2_width_ratio box2_height_ratio
这里的class_index 与上面的class_number 不同,这里是类别索引,就是自己的类别在数组里的ID,例子如下:
其中相应的代码为:
classes = ["001","002"]
.......
cls = "001"
if cls not in classes:exit(0)
cls_id = classes.index(cls)
c、生成标签文件:
打开./data/labels/make_labels.py
加入需要生成的标签,注意标签的文件名stopsign.png和yeildsign.png需要与存放图像的文件夹images和存放框信息的labels文件夹下面的文件夹名称相同。
其主要是通过使用python的os指令来运行shell里的convert命令。os的使用方法如下:
对应在darknet/src/yolo.c中是:
void run_yolo(int argc, char **argv)
{int i;for(i = 0; i < 20; ++i){char buff[256];sprintf(buff, "data/labels/%s.png", voc_names[i]);voc_labels[i] = load_image_color(buff, 0, 0);}
}
至此:训练样本的制作已经完成,接下来的工作就是修改网络进行训练;还有v2版的是不用生产标签文件了,只要在data下有labels文件夹即可。
d:相关文件的修改:
YOLO工程代码如何在windows上配置和运行!window上YOLO训练样本的制作相关推荐
- 如何在 Windows 10/8.1/8/7 上无密码删除 Deep Freeze
如何在 Windows 10/8.1/8/7 上无密码删除 Deep Freeze 有些人认真对待计算机安全问题.这些人会安装 Deep Freeze 冰点来保护他们的计算机.该应用程序的便利之处在于 ...
- Windows服务器上配置环境,并上传Django项目流程记录
配置环境: python3.6 Django2.2 mysql5.6 下载python库所需要代码: python -m pip install --upgrade pip -i http://pyp ...
- linux上的客户端连接window上的服务器
server代码: window上的服务器代码不变,但是需要注意一点:linux上的client连接服务器上的server时服务器的防火墙必须关闭才能连接成功. #define WIN32_LEAN_ ...
- SVN+SSH协议工作方式全解析,以Sourceforge为例讲解如何在Windows下配置TortoiseSVN和Su
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 简单地说 ...
- xbox one x驱动_如何在Windows,OS X和Linux上使用Xbox One控制器
xbox one x驱动 The Xbox One Controller is a fantastic gamepad, and although Microsoft has only recentl ...
- 如何在 Windows 2000、XP 的桌面上增加公文包
问题描述: 从 Windows 2000开始,微软的公文包图标从桌面上消失了,程序组中也没有,如果要使用它,是否很麻烦呢? 解决方案: 在 Windows 2000 或 Windows XP 操作系统 ...
- Win10系统VS2015上配置YOLOv3运行训练环境(包含OpenCv3.40安装配置,cuda9.2安装配置)
前言 第一次写博客,迟迟不敢下笔,只怕在言语之间有所纰漏.在下区区学生一枚,在此斗胆写下在win10上搭建yolo_v3环境的过程与感受.博文部分安装配置过程将会引用其他博文,如有侵权,通知立删. ...
- window上安装mysql_在window上安装mysql - MySQL5.7.24 版本
1.下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 备注:选择对应你电脑的版本,现在一般都是64位的电脑 2.解 ...
- 什么错误是计算机检查不出来的,如何在Windows 10中修复计算机检查异常BSOD | MOS86...
机器检查异常是Windows系统的严重错误. 结果? 死亡的蓝屏. 不幸的是,机器检查异常错误通常不是一次性的. 一些用户报告说,他们受到"机器检查异常"错误的困扰,必须在到达承诺 ...
最新文章
- 无限极分类,子集跟着父集排列,用于后台显示菜单管理
- 数据库连接池技术--c3p0
- php的range函数
- 调用某个按钮事件_Event 对象之事件句柄 (Event Handlers)
- 排序算法之——快速排序分析
- 年底购物狂欢,移动支付安全不容忽视
- 全网首发:修改完善FreeSwitch的Banner功能
- c语言输出英文字母表,菜鸟求助,写一个随机输出26个英文字母的程序
- Windows搭建kms服务器
- 如何在MAC上查看系统运行信息、内存使用率等
- windows 7 专业版 64位 无法安装.Net 4.7版本解决方案
- android edittext 下划线没了,关于android:如何在EditText中隐藏下划线
- 【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍
- Centos6.8系统镜像下载
- JVM vs DVM
- 零基础学HTML5的学习路线完整版
- 用Python下载Lofter上“喜欢”的文章和图片
- 8Manage PPM,助力北京测威提升项目运营效益
- 计算机毕业设计JAVA家庭健康预警系统mybatis+源码+调试部署+系统+数据库+lw
- Java键盘输入一个int数组