资源简介
基于YOLOv3的行人检测
代码片段和文件信息
# coding=utf-8
# 使用说明
# 需要先安装coco tools
# git clone https://github.com/pdollar/coco.git
# cd coco/PythonAPI
# make install(可能会缺少相关依赖,根据提示安装依赖即可)
# 执行脚本前需在train2014和val2014目录下分别创建JPEGImages和labels目录,并将原来train2014和val2014目录下的图片移到JPEGImages下
# COCO数据集的filelist目录下会生成图片路径列表
# COCO数据集的子集的labels目录下会生成yolo需要的标注文件
from pycocotools.coco import COCO
import shutil
import os
# 将ROI的坐标转换为yolo需要的坐标
# size是图片的w和h
# box里保存的是ROI的坐标(x,y的最大值和最小值)
# 返回值为ROI中心点相对于图片大小的比例坐标,和ROI的w、h相对于图片大小的比例
def convert(size box):
dw = 1. / size[0]
dh = 1. / size[1]
x = box[0] + box[2] / 2.0
y = box[1] + box[3] / 2.0
w = box[2]
h = box[3]
x = x * dw
w = w * dw
y = y * dh
h = h * dh
return (x y w h)
# 获取所需要的类名和id
# path为类名和id的对应关系列表的地址(标注文件中可能有很多类,我们只加载该path指向文件中的类)
# 返回值是一个字典,键名是类名,键值是id
def get_classes_and_index(path):
D = {}
f = open(path)
for line in f:
temp = line.rstrip().split(‘‘ 2)
print(“temp[0]:“ + temp[0] + “\n“)
print(“temp[1]:“ + temp[1] + “\n“)
D[temp[1]] = temp[0]
return D
dataDir = ‘/home/pascal/COCO‘ # COCO数据集所在的路径
dataType = ‘train2017‘ # 要转换的COCO数据集的子集名
annFile = ‘%s/annotations/instances_%s.json‘ % (dataDir dataType) # COCO数据集的标注文件路径
classes = get_classes_and_index(‘/home/pascal/COCO/coco_list.txt‘)
# labels 目录若不存在,创建labels目录。若存在,则清空目录
if not os.path.exists(‘%s/%s/labels/‘ % (dataDir dataType)):
os.makedirs(‘%s/%s/labels/‘ % (dataDir dataType))
else:
shutil.rmtree(‘%s/%s/labels/‘ % (dataDir dataType))
os.makedirs(‘%s/%s/labels/‘ % (dataDir dataType))
# filelist 目录若不存在,创建filelist目录。
if not os.path.exists(‘%s/filelist/‘ % dataDir):
os.makedirs(‘%s/filelist/‘ % dataDir)
coco = COCO(annFile) # 加载解析标注文件
list_file = open(‘%s/filelist/%s.txt‘ % (dataDir dataType) ‘w‘) # 数据集的图片list保存路径
imgIds = coco.getImgIds() # 获取标注文件中所有图片的COCO Img ID
catIds = coco.getCatIds() # 获取标注文件总所有的物体类别的COCO Cat ID
for imgId in imgIds:
objCount = 0 # 一个标志位,用来判断该img是否包含我们需要的标注
print(‘imgId :%s‘ % imgId)
Img = coco.loadImgs(imgId)[0] # 加载图片信息
print(‘Img :%s‘ % Img)
filename = Img[‘file_name‘] # 获取图片名
width = Img[‘width‘] # 获取图片尺寸
height = Img[‘height‘] # 获取图片尺寸
print(‘filename :%s width :%s height :%s‘ % (filename width height))
annIds = coco.getAnnIds(imgIds=imgId catIds=catIds iscrowd=None) # 获取该图片对应的所有COCO物体类别标注ID
print(‘annIds :%s‘ % annIds)
for annId in annIds:
anns = coco.loadAnns(annId)[0] # 加载标注信息
catId = anns[‘category_id‘] # 获取该标注对应的物体类别的COCO Cat ID
cat = coco.loadCats(catId)[0][‘name‘] # 获取该COCO Cat ID对应的物体种类名
# print ‘anns :%s‘ % anns
# print ‘catId :%s cat :%s‘ % (catIdcat)
# 如果该类名在我们需要的物体种类列表中,将标注文件转换为YOLO需要的格式
if cat in classes:
objCount = objCount + 1
out_file = open(‘%s/%s/labels/%s.txt‘ % (dataDir dataType filename[:-4]) ‘a‘)
cls_id = classes[cat] # 获取该类物体在yolo训练中的id
box = ann
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\
文件 11357 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\LICENSE
文件 9207 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\README.md
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\images\
文件 415034 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\images\kite-7-final.jpg
文件 426628 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\images\kite-pj.jpg
文件 27957 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\images\loss_analyse_result.png
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007\
文件 2521 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007\extract_person.py
文件 2075 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007\voc_label.py
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007_2012\
文件 2521 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007_2012\extract_person_2007.py
文件 2422 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007_2012\extract_person_2012.py
文件 2093 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\YOLO_VOC2007_2012\voc_label.py
文件 4270 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\coco_to_yolo.py
文件 1611 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\helmet_to_yolo.py
文件 2059 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\show_voc_xm
文件 2026 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\show_yolo_label.py
文件 6187 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\make_yolo_dataset\xm
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_compute_mAP_on_VOC2007\
文件 3529 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_compute_mAP_on_VOC2007\reval_voc_py3.py
文件 6994 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_compute_mAP_on_VOC2007\voc_eval_py3.py
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_loss_analyse\
文件 2140 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_loss_analyse\analyse.py
目录 0 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_loss_analyse\loss\
文件 3425747 2018-10-25 10:58 pascal1129-yolo_person_detect-da3d03c\yolo_loss_analyse\loss\train7-loss.txt
相关资源
- Python-心脏核磁共振MRI图像分割
- Python-RLSeq2Seq用于SequencetoSequence模型的
- Python-PyTorch对卷积CRF的参考实现
- Python-高效准确的EAST文本检测器的一个
- Python-pytorch实现的人脸检测和人脸识别
- Python-UNet用于医学图像分割的嵌套UN
- Python-TensorFlow弱监督图像分割
- Python-基于tensorflow实现的用textcnn方法
- Python-Keras实现Inceptionv4InceptionResnetv1和
- Python-pytorch中文手册
- Python-FastSCNN的PyTorch实现快速语义分割
- Python-滑动窗口高分辨率显微镜图像分
- Python-使用MovieLens数据集训练的电影推
- Python-机器学习驱动的Web应用程序防火
- Python-subpixel利用Tensorflow的一个子像素
-
Python-汉字的神经风格转移Neuralst
y - Python-神经网络模型能够从音频演讲中
- Python-深度增强学习算法的PyTorch实现策
- Python-基于深度学习的语音增强使用
- Python-基于知识图谱的红楼梦人物关系
- Python-STGAN用于图像合成的空间变换生
- Python-利用GAN进行图片填充
- Python-基于50W携程出行攻略的顺承事件
- Python-在TensorFlow中实现实现图像卷积网
- Python-60DaysRLChallenge中文版强化学习6
- Python-一个非常简单的BiLSTMCRF模型用于
- Python-Tensorflow仿AlphaGo框架实现的AI围棋
- Python-我是小诗姬全唐诗作为训练数据
- Python-用于物体跟踪的全卷积连体网络
- Python-数学建模竞赛中所使用的相关算
评论
共有 条评论