国旗检测 pytorch yolov3 | 您所在的位置:网站首页 › 国旗的颜色代码 › 国旗检测 pytorch yolov3 |
Flag-Detection 国旗检测
该项目基于PyTorch框架,在一定程度上使用了开源的yolo v3部分代码。(本人并未对原有的yolo v3部分的代码做过多的修饰与更改,原作者的注释得到了充分的保留。) 本项目提供了数据集和本人在Titan XP上训练完成的检测模型。 (当我回忆起我采用了哪位dalao的代码以后,我会在此注明引用来源,并表示感谢) 1 简介 1.1 支持的国旗类别本项目提供了数据集,并提供了基于本数据集训练完成的模型。 该项目可以完成对64种国旗的分类,涵盖了世界上主要国家,同时根据基于字典序的国家列表从头选择了一部分国家。 (该项目具有一定的可扩展性,欢迎更多的开发者完善数据集) 以下是本项目中所涵盖的国家列表: {‘Afghanistan’: 0, ‘Albania’: 1, ‘Andorra’: 2, ‘Angola’: 3, ‘Argentina’: 4, ‘Armenia’: 5, ‘Australia’: 6, ‘Austria’: 7, ‘Azerbaijan’: 8, ‘Bahamas’: 9, ‘Bahrain’: 10, ‘Bangladesh’: 11, ‘Barbados’: 12, ‘Belarus’: 13, ‘Bhutan’: 14, ‘Bolivia’: 15, ‘Brazil’: 16, ‘Bulgaria’: 17, ‘Cambodia’: 18, ‘Canada’: 19, ‘CapeVerde’: 20, ‘Chile’: 21, ‘China’: 22, ‘Christmas Island’: 23, ‘Colombia’: 24, ‘Congo’: 25, ‘Cook Island’: 26, ‘Costa rica’: 27, ‘Cuba’: 28, ‘Cyprus’: 29, ‘Czech’: 30, ‘Democratic Republic of the Congo’: 31, ‘France’: 32, ‘German’: 33, ‘India’: 34, ‘Iran’: 35, ‘Iraq’: 36, ‘Israel’: 37, ‘Japan’: 38, ‘Jordan’: 39, ‘Laos’: 40, ‘Lebanon’: 41, ‘Malaysia’: 42, ‘Myanmar’: 43, ‘NewZealand’: 44, ‘NorthKoera’: 45, ‘Palestine’: 46, ‘Philippines’: 47, ‘Russia’: 48, ‘Saudi Arabia’: 49, ‘Singapore’: 50, ‘Slovakia’: 51, ‘SouthKoera’: 52, ‘Spain’: 53, ‘Sverige’: 54, ‘Switzerland’: 55, ‘Syrian’: 56, ‘Tailand’: 57, ‘The Central African Republic’: 58, ‘Turkey’: 59, ‘UK’: 60, ‘US’: 61, ‘Ukraine’: 62, ‘Vietnam’: 63} 1.2 数据集本项目使用的数据集是VOC格式的。数据集分为两部分,分别由两部分构成 (1)手工标注的来自网络的照片: 共2400张左右。这些照片涵盖了上文提到的国家中的18种国家~~(似乎是的QAQ记忆不深)~~。 在数据集中以[XXX.jpg]的文件名形式存在。 (2)根据国旗图像与随机的底版批量生成的: 共1240张左右。在数据集中以[qwq_XXX.jpg]的文件名形式存在。 数据集的压缩包已经上传到百度网盘当中了: 链接:https://pan.baidu.com/s/1_xyZJAbi1sLhT1bzW97dPg 提取码:6xqg 2 如何启动 2.1 数据集的准备数据集应当放置在’./data/dataset’路径下,每一个图片都应该对应一个文件名相同的VOC格式的xml标签文件。 2.2 数据集的处理首先运行“1.pre_process.py”,完成对数据集的预处理,这一步操作的意义在于产生两个文件: (1)将VOC格式的数据集中的信息提取出来,存放到’./data/dataset.txt’文本文档中,方便统计所有的数据样本,方便进行数据集的统计、打乱、划分。 (2)同时程序会将VOC格式的数据集中的所有出现过的Label进行编号,形成映射关系{编号:国家名},存放到’./model/dict.npy’文件中。这样做是为了方便模型进行多分类,方便根据分类结果映射到实际的国家名。 该操作会自动进行数据集的完整性检查,忽略掉缺失了图片和或缺失了标签的文件。 2.3 训练运行“2.train.py”,开始模型的训练。受限于本人的代码开发水平,本项目并不支持在未安装Cuda框架的环境中运行。(在运算过程中,多如牛毛的向量会被发送到显存中,而同时设计CUDA和非CUDA的代码会显著的增加代码量)。 在该文件的line 173位置附近可以更改学习率、Epoch数量;每个epoch的loss都会被记录下来,存储到val_losses.txt文件中。 训练完成的模型将会存储在"model/yolo_v3.pth" PS:本人训练完成的模型已经上传到了百度网盘,也可以直接下载下来放到model文件夹 链接:https://pan.baidu.com/s/1QO80UkUktFRfS1pTJnAeDQ 提取码:n9rx 2.4 使用训练完成的模型要使用训练完成的模型进行预测,可以参考本人写的一个小demo “3.predict.py”,这个demo提供了一种实例:如何载入模型,如何打开一个图片并使模型完成预测。 3.项目的获取代码的获取请移步本人的github仓库:https://github.com/Ws-Syx/Flag-detection-Yolo_v3-PyTorch |
CopyRight 2018-2019 实验室设备网 版权所有 |