寻找东莞微信网站建设三只松鼠软文范例500字
news/
2025/10/2 9:55:17/
文章来源:
寻找东莞微信网站建设,三只松鼠软文范例500字,做网站怎么插音乐循环,怎么提高网站曝光文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言
#x1f525; 优质竞赛项目系列#xff0c;今天要分享的是
#x1f6a9; 毕业设计… 文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 优质竞赛项目系列今天要分享的是 毕业设计 交通目标检测-行人车辆检测流量计数
该项目较为新颖适合作为竞赛课题方向学长非常推荐
学长这里给一个题目综合评分(每项满分5分)
难度系数3分工作量3分创新点4分 更多资料, 项目分享
https://gitee.com/dancheng-senior/postgraduate
1. 目标检测概况
1.1 什么是目标检测
目标检测粗略来说就是输入图片/视频经过处理得到目标的位置信息比如左上角和右下角的坐标、目标的预测类别、目标的预测置信度confidence。
1.2 发展阶段 手工特征提取算法如VJ、HOG、DPM R-CNN算法2014最早的基于深度学习的目标检测器之一其结构是两级网络
1首先需要诸如选择性搜索之类的算法来提出可能包含对象的候选边界框2然后将这些区域传递到CNN算法进行分类 R-CNN算法存在的问题是其仿真很慢并且不是完整的端到端的目标检测器。 Fast R-CNN算法2014末对原始R-CNN进行了相当大的改进提高准确度并减少执行正向传递所花费的时间。 是该模型仍然依赖于外部区域搜索算法。 faster R-CNN算法2015真正的端到端深度学习目标检测器。删除了选择性搜索的要求而是依赖于
1完全卷积的区域提议网络RPN, Region Purpose Network可以预测对象边界框和“对象”分数量化它是一个区域的可能性的分数。2然后将RPN的输出传递到R-CNN组件以进行最终分类和标记。 R-CNN系列算法都采取了two-stage策略。特点是虽然检测结果一般都非常准确但仿真速度非常慢即使是在GPU上也仅获得5 FPS。 one-stage方法有yolo2015、SSD2015末以及在这两个算法基础上改进的各论文提出的算法。这些算法的基本思路是均匀地在图片的不同位置进行密集抽样抽样时可以采用不同尺度和长宽比然后利用CNN提取特征后直接进行分类与回归。 整个过程只需要一步所以其优势是速度快但是训练比较困难。 yolov32018是yolo作者提出的第三个版本之前还提过yolov2和它们的tinny版本tinny版本经过压缩更快但是也降低了准确率。
2. 行人检测
这里学长以行人检测作为例子来讲解目标检测。
2.1 行人检测简介
行人检测( Pedestrian Detection)一直是计算机视觉研究中的热点和难点。行人检测要解决的问题是找出图像或视频帧中所有的行人包括位置和大小一般用矩形框表示和人脸检测类似这也是典型的目标检测问题。
行人检测技术有很强的使用价值它可以与行人跟踪行人重识别等技术结合应用于汽车无人驾驶系统(ADAS)智能机器人智能视频监控人体行为分析客流统计系统智能交通等领域。
2.2 行人检测技术难点
由于人体具有相当的柔性因此会有各种姿态和形状其外观受穿着姿态视角等影响非常大另外还面临着遮挡 、光照等因素的影响这使得行人检测成为计算机视觉领域中一个极具挑战性的课题。行人检测要解决的主要难题是: 外观差异大包括视角姿态服饰和附着物光照成像距离等。从不同的角度看过去行人的外观是很不一样的。处于不同姿态的行人外观差异也很大。由于人穿的衣服不同以及打伞、戴帽子、戴围巾、提行李等附着物的影响外观差异也非常大。光照的差异也导致了一些困难。远距离的人体和近距离的人体在外观上差别也非常大。 遮挡问题 在很多应用场景中行人非常密集存在严重的遮挡我们只能看到人体的一部分这对检测算法带来了严重的挑战。 背景复杂无论是室内还是室外行人检测一般面临的背景都非常复杂有些物体的外观和形状、颜色、纹理很像人体导致算法无法准确的区分。 检测速度行人检测一般采用了复杂的模型运算量相当大要达到实时非常困难一般需要大量的优化。
2.3 行人检测实现效果 检测到行人后还可以做流量分析 2.4 关键代码-训练过程
import cv2import numpy as npimport randomdef load_images(dirname, amout 9999):img_list []file open(dirname)img_name file.readline()while img_name ! : # 文件尾img_name dirname.rsplit(r/, 1)[0] r/ img_name.split(/, 1)[1].strip(\n)img_list.append(cv2.imread(img_name))img_name file.readline()amout - 1if amout 0: # 控制读取图片的数量breakreturn img_list# 从每一张没有人的原始图片中随机裁出10张64*128的图片作为负样本def sample_neg(full_neg_lst, neg_list, size):random.seed(1)width, height size[1], size[0]for i in range(len(full_neg_lst)):for j in range(10):y int(random.random() * (len(full_neg_lst[i]) - height))x int(random.random() * (len(full_neg_lst[i][0]) - width))neg_list.append(full_neg_lst[i][y:y height, x:x width])return neg_list# wsize: 处理图片大小通常64*128; 输入图片尺寸 wsizedef computeHOGs(img_lst, gradient_lst, wsize(128, 64)):hog cv2.HOGDescriptor()# hog.winSize wsizefor i in range(len(img_lst)):if img_lst[i].shape[1] wsize[1] and img_lst[i].shape[0] wsize[0]:roi img_lst[i][(img_lst[i].shape[0] - wsize[0]) // 2: (img_lst[i].shape[0] - wsize[0]) // 2 wsize[0], \(img_lst[i].shape[1] - wsize[1]) // 2: (img_lst[i].shape[1] - wsize[1]) // 2 wsize[1]]gray cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)gradient_lst.append(hog.compute(gray))# return gradient_lstdef get_svm_detector(svm):sv svm.getSupportVectors()rho, _, _ svm.getDecisionFunction(0)sv np.transpose(sv)return np.append(sv, [[-rho]], 0)# 主程序# 第一步计算HOG特征neg_list []pos_list []gradient_lst []labels []hard_neg_list []svm cv2.ml.SVM_create()pos_list load_images(rG:/python_project/INRIAPerson/96X160H96/Train/pos.lst)full_neg_lst load_images(rG:/python_project/INRIAPerson/train_64x128_H96/neg.lst)sample_neg(full_neg_lst, neg_list, [128, 64])print(len(neg_list))computeHOGs(pos_list, gradient_lst)[labels.append(1) for _ in range(len(pos_list))]computeHOGs(neg_list, gradient_lst)[labels.append(-1) for _ in range(len(neg_list))]# 第二步训练SVMsvm.setCoef0(0)svm.setCoef0(0.0)svm.setDegree(3)criteria (cv2.TERM_CRITERIA_MAX_ITER cv2.TERM_CRITERIA_EPS, 1000, 1e-3)svm.setTermCriteria(criteria)svm.setGamma(0)svm.setKernel(cv2.ml.SVM_LINEAR)svm.setNu(0.5)svm.setP(0.1) # for EPSILON_SVR, epsilon in loss function?svm.setC(0.01) # From paper, soft classifiersvm.setType(cv2.ml.SVM_EPS_SVR) # C_SVC # EPSILON_SVR # may be also NU_SVR # do regression tasksvm.train(np.array(gradient_lst), cv2.ml.ROW_SAMPLE, np.array(labels))# 第三步加入识别错误的样本进行第二轮训练# 参考 http://masikkk.com/article/SVM-HOG-HardExample/hog cv2.HOGDescriptor()hard_neg_list.clear()hog.setSVMDetector(get_svm_detector(svm))for i in range(len(full_neg_lst)):rects, wei hog.detectMultiScale(full_neg_lst[i], winStride(4, 4),padding(8, 8), scale1.05)for (x,y,w,h) in rects:hardExample full_neg_lst[i][y:yh, x:xw]hard_neg_list.append(cv2.resize(hardExample,(64,128)))computeHOGs(hard_neg_list, gradient_lst)[labels.append(-1) for _ in range(len(hard_neg_list))]svm.train(np.array(gradient_lst), cv2.ml.ROW_SAMPLE, np.array(labels))# 第四步保存训练结果hog.setSVMDetector(get_svm_detector(svm))hog.save(myHogDector.bin)
最后 更多资料, 项目分享
https://gitee.com/dancheng-senior/postgraduate
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924768.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!