YOLO工程代码如何在windows上配置和运行!window上YOLO训练样本的制作
来源:互联网 发布:小米note3网络设置 编辑:程序博客网 时间:2024/06/10 11:34
我使用的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): return filelist = glob.glob(os.path.join(self.egDir, '*.JPEG')) self.tmp = [] self.egList = [] random.shuffle(filelist) for (i, f) in enumerate(filelist): if i == 3: break im = 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 bboxesCOLORS = ['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_name print("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中是:
至此:训练样本的制作已经完成,接下来的工作就是修改网络进行训练;还有v2版的是不用生产标签文件了,只要在data下有labels文件夹即可。
d:相关文件的修改:
- YOLO工程代码如何在windows上配置和运行!window上YOLO训练样本的制作
- yolo-face 使用yolo v2 在CelebA上训练的人脸检测器
- yolo在windows的运行实现
- YOLO在windows下的配置
- 在Jetson TX1上用YOLO训练VOC2007
- yolo的训练和测试
- yolo的训练和测试
- 制作Pascal VOC数据集并在YOLO和Faster RCNN上测试(码字ing)
- 使用YOLO训练自己的数据样本经验总结
- Yolo的搭建和在Windows下封装以及工程应用
- YOLO在ios上的实现(学习探索)
- Yolo在NVIDIA TX1上测试
- YOLO配置运行
- YOLO windows 配置
- YOLO windows 配置
- YOLO如何训练分类网络???
- YOLO训练
- darkflow测试和训练yolo
- 练习64
- redhat5.5升级firefox15
- 《Python数据分析与挖掘实战》笔记(二):Python2.7语法和第三方库
- 20.调用系统浏览器打开网页-隐式Intent的用法
- 终于开通了,以后这里将会记录我学习中的点点滴滴
- YOLO工程代码如何在windows上配置和运行!window上YOLO训练样本的制作
- 注册表获取系统驱动版本信息
- Android AsyncTask几个注意事项
- 遍历Map集合的四种方式
- 27_键盘输入_Scanner类的使用_import简单入门
- TNS-12535 TNS-00505
- XML教程进阶05_相关技术
- org.apache.commons.lang.StringUtils 将数组变成字符串
- 高考作文做个标题党,有何不好!