做期货看资讯什么网站好,济南seo优化公司,天元建设集团有限公司济南第六建筑分公司,网站配置服务Wordpress文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言
#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升#xff0c;传统的毕设题目缺少创新和亮点#xff0c;往往达不到毕业答辩的要求#xff0c;这两年不断有学弟学妹告诉… 文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升传统的毕设题目缺少创新和亮点往往达不到毕业答辩的要求这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设学长分享优质毕业设计项目今天要分享的是 **基于深度学习的行人重识别算法研究与实现 **
学长这里给一个题目综合评分(每项满分5分)
难度系数3分工作量3分创新点5分 1 课题背景
行人重识别是计算机视觉领域的研究热点之一旨在研究不重叠的多个摄像区域间对于特定行人的匹配准确率是图像检索的子问题多应用于安防和刑侦。我国实现的视频监控“天网”就是通过在人流量大的公共区域密集安装监控设备来实现“平安城市”建设。尽管部分摄像头可转动但仍存在监控盲区和死角等局限性问题Re-ID技术弥补了摄像设备的视觉局限性。然而在实际应用中异时异地相同行人的图像数据在姿势、前景背景、光线视角以及成像分辨率等方面差异大使得Re-ID研究具有挑战性。 行人重识别展示
2 效果展示
手动标记 检测结果
3 行人检测
本项目实现了基于 yolo框架的行人目标检测算法并将该目标检测算法应用在图像和视频的识别检测之中。
简介 下图所示为 YOLOv5 的网络结构图分为输入端BackboneNeck 和 Prediction 四个部分。其中 输入端包括 Mosaic 数据增强、自适应图片缩放、自适应锚框计算Backbone 包括 Focus 结构、CSP 结 构Neck 包 括 FPNPAN 结 构Prediction 包 括GIOU_Loss 结构。 Head输出层 输出层的锚框机制与YOLOv4相同主要改进的是训练时的损失函数GIOU_Loss以及预测框筛选的DIOU_nms。
对于Head部分可以看到三个紫色箭头处的特征图是40×40、20×20、10×10。以及最后Prediction中用于预测的3个特征图
①40×40×255②20×20×255③10×10×255 相关代码
class Yolo(object):def __init__(self, weights_file, verboseTrue):self.verbose verbose# detection paramsself.S 7 # cell sizeself.B 2 # boxes_per_cellself.classes [aeroplane, bicycle, bird, boat, bottle,bus, car, cat, chair, cow, diningtable,dog, horse, motorbike, person, pottedplant,sheep, sofa, train,tvmonitor]self.C len(self.classes) # number of classes# offset for box center (top left point of each cell)self.x_offset np.transpose(np.reshape(np.array([np.arange(self.S)]*self.S*self.B),[self.B, self.S, self.S]), [1, 2, 0])self.y_offset np.transpose(self.x_offset, [1, 0, 2])self.threshold 0.2 # confidence scores threholdself.iou_threshold 0.4# the maximum number of boxes to be selected by non max suppressionself.max_output_size 10self.sess tf.Session()self._build_net()self._build_detector()self._load_weights(weights_file)4 行人重识别
简介 行人重识别(Person re-identification)也称行人再识别, 被广泛认为是一个图像检索的子问题, 是利用计算机视觉技术判断图像或者视频中是否存在特定行人的技术, 即给定一个监控行人图像检索跨设备下的该行人图像。行人重识别技术可以弥补目前固定摄像头的视觉局限, 并可与行人检测、行人跟踪技术相结合, 应用于视频监控、智能安防等领域。 行人重识别系统
行人检测 主要用于检测视频中出现的人像作为一个行人重识别首先要做到的就是能够将图片中的行人识别出来称为Gallery输入。当然在学术研究领域行人重识别主要还是关注的下面这个部分而对于行人检测这部分多选择采用目前已经设计好的框架。 行人重识别 这一部分就是对上面的Probe以及Gallery进行特征提取当然提取的方式可以是手工提取也可以使用卷积神经网络进行提取。然后呢就是对图片的相似度进行度量根据相似图进行排序。 针对行人重识别系统从细节来说包括下面几个部分
特征提取feature Extraction学习能够应对在不同摄像头下行人变化的特征。度量学习(Metric Learning) 将学习到的特征映射到新的空间使相同的人更近不同的人更远。图像检索(Matching)根据图片特征之间的距离进行排序返回检索结果
Reid提取特征 行人重识别和人脸识别是类似的刚开始接触的可以认为就是人脸换成行人的识别。 截取需要识别的行人底库 保存行人特征方便进行特征比对
相关代码
# features:reid模型输出512dim特征
person_cossim cosine_similarity(features, self.query_feat)
max_idx np.argmax(person_cossim, axis1)
maximum np.max(person_cossim, axis1)
max_idx[maximum 0.6] -1
score maximum
reid_results max_idx
draw_person(ori_img, xy, reid_results, self.names) # draw_person name5 其他工具
OpenCV 是一个跨平台的计算机视觉处理开源软件库是由Intel公司俄罗斯团队发起并参与和维护支持与计算机视觉和机器学习相关的众多算法。 本项目中利用opencv进行相关标记工作相关代码
import cv2
import numpy as npdef cv_imread(filePath):cv_img cv2.imdecode(np.fromfile(filePath,dtypenp.uint8), -1)return cv_img# 需要可视化的图片地址
img_path ‘’
# 对应图片的检测结果
detection_result []# 如果路径中包含中文则需要用函数cv_imread的方式来读取否则会报错
img cv_imread(img_path)# 可视化
for bb in detection_result:# bb的格式为[xmin, ymin, xmax, ymax]cv2.rectangle(img, (int(bb[0]), int(bb[1])),(int(bb[2]), int(bb[3])),(255, 0, 0), 2)cv2.imshow(1, img)
cv2.waitKey(0)
6 最后