SSD目标检测算法,ssd图像检测
写在前面:首先,你安装了ssd,并测试了VOC数据
********************************************************* 第一部分:数据准备(任务繁重)
1.标数据(生成的包围盒是文本文件(文本文件)格式),标数据的工具:链接:https://潘。百度一下。com/s/1 dvoxkw3 xjtm 9g 4 Jr-3 zdhq密码:7eqr
2.将文本文件(文本文件)格式转化为挥发性有机化合物格式,代码链接:https://下载。csdn。net/下载/于734390853/10274930
3.在/home/$你的服务器命/data/VOCdevkit下建立自己的数据集名称(以我的为例,我建立的是我的数据集),在我的数据集目录下需包含注释、图像集、JPEGImages三个文件夹:
释文目录下存放第二步生成的可扩展标记语言格式数据文件。
相册列表目录下包含主要的文件下,在图像集主里有四个文本文件(文本文件)文件:测试。txt火车。txt列车阀门。txt valtxt
生成这四个文本文件(文本文件)文件的代码如下(Python)(根据自己的路径修改):
导入OS导入随机训练val _ percent=0.66 train _ percent=0.5 XML filepath= Annotations txtsavepath= ImageSets Main total _ XML=OS。list dir(xmlfilepath)num=len(total _ XML)list=range(num)TV=int(num * train val _ percent)tr=int(TV * train _ percent)train val=random。样本(列表、电视)训练=随机。sample(train val,tr)ftrainval=open( ImageSets/Main/train val。txval关闭()文本文件中的内容为图片名字(无后缀)。
JPEGImages目录下存放所有的数据图片
4.在咖啡固态硬盘/数据目录下创建一个自己的文件夹我的数据集(以我的为例):
激光唱片数据目录我的数据集把数据/VOC0712目录下的create_list.sh、create_data.sh、labelmap_voc.prototxt这三个文件拷贝到我的数据集下(以我的为例):
CP VOC 0712/create _ list。sh我的数据集/CP VOC 0712/create _ data。sh我的数据集/CP VOC 0712/label map _ VOC。我的数据集/5 .在咖啡固态硬盘/示例下创建我的数据集文件夹:
mkdir MyDateSet用于存放后续生成的一个本地内存数据库文件;
6.修改labelmap_voc.prototxt文件(改成自己的类别),以及创建列表和创建_数据。嘘文件中的相关路径;
#labelmap_voc.prototxt需修改:item { name: none _ of _ the _ above label:0 display _ name: background } item { name: aeroplane label:1 display _ name: person } # create _ list。嘘需修改:root _ dir=/home/yi _ Miao/data/my dataset/.对于您自己集合中的名称.# if[[$ dataset== test $ name== VOC 2012 ]]# then # continue # fi # create _ data。嘘需修改:root _ dir=/home/yi _ Miao/caffe-SSD data _ root _ dir=/home/yi _ Miao/data/my dataset dataset _ name= my dataset 7 .在咖啡(固态硬盘)根目录下运行命令:/data/我的数据集/create _ list。先令/data/我的数据集/create _ data。嘘此时,在示例/我的数据集/文件夹下可以看到两个子文件夹、mydataset_trainval_lmdb、mydataset _ test _ lmdb里面均包含data.dmb和lock.dmb
******到此为止,我们的数据集就做好了。****** 接下来
第二部分:开始训练
1.训练时使用固态硬盘演示中提供的预训练好的VGGnet型号:链接:https://潘。百度一下。com/s/18 zulkbyyeunrfd 90 l 21 nkw密码:ylnx
将该模型保存到:caffe/models/VGGNet下(没有VGGNet,就新建一个)。
2.训练程序为/examples/ssd/ssd_pascal.py,运行之前,我们需要修改相关路径代码,ssd_pascal.py作如下修改:
第82行:train _ data path第84行:test_data路径;第37-246行:模型名、保存目录、快照目录、作业目录、输出结果目录路径;第59-263行:name_size_file,label_map_file路径;第66行:num_classes改为1个类别号;30行:num_test_image:测试集图片数。另外,如果你只有一个GPU,需要修改285行:gpus=" 0,1,2,3"===为" 0 "。如果出现内存不足,请相应地减小批处理大小。
3.以上修改完成后,在caffe(ssd)根目录下运行:
Python。/examples/SSD/SSD _ Pascal.py开始训练....第3部分:测试
1.测试单幅图片
测试程序为/examples/SSD/ssd_detect.py,运行前需要修改相关路径代码。SSD _ detect.py修改如下(#部分修改):
parser . add _ argument(-label map _ file ,Default= data/VOC 0712/label map _ VOC . proto txt )# * *修改为您的路径* * parser . add _ argument(-model _ def ,Default= models/vggnet/VOC 0712/SSD _ 300 x300/deploy . proto txt )# * *修改为您的路径* * parser . add _ argument(-image _ resize ,default=300,type=int)parser . add _ argument(-model _ weights , Default= models/vggnet/VOC 0712/SSD _ 300 x300/ # * *修改到你的路径* * vgg _ VOC 0712 _ SSD _ 300 x300 _ ITER _ 120000 . caffe model )parser . add _ argument(-)Default= examples/images/fish-bike . jpg )# * *修改到你的路径* *以上修改完成后,在caffe(ssd)的根目录下运行:
Python。/example/SSD/SSD _ detect.py会在caffe的根目录下生成检测结果镜像。
2.多幅图片的批量检测
修改ssd_detect.py的代码(加一个for循环),代码链接:https://download.csdn.net/download/yu734390853/10275197
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *