pythonopencv训练识别_基于Python+opencv的视频识别检测
训练深度学习。。。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以下为代码森林的⼩哥哥编写的深度学习动体识别项⽬,⾮常适合毕业⽣实战练⼿!累计编程经验。
代码森林提供Python2—3编程环境,基于Docker容器技术、Kubernetes技术,瞬间创建分配编程实验环境。
⽆需配置繁琐的编程环境
登录⽹站⽴刻开启学习之旅
⼏秒即可启动云端编程环境
随⼼实践喜欢的教材、课程
云端储存——实时保存代码到云端
版本管理——实训每步都有迹可循
需安装依赖模块如下:
pip install imutils
pip install numpy
pip install argparse
pip install opencv-python
备注:需要在Python3的环境下运⾏哦,复制上⾯安装命令命令到命令⾏安装,或使⽤pycharm安装。
安装模块完成以后复制代码到pycharmIDE即可运⾏,代码如下
# import the necessary packagesfrom __future__ import print_function # 确保代码同时在Python2.7和Python3上兼容from imutils.object_detection import non_max_suppressionfrom imutils import pathsimport numpy as npimport argparseimport imutils # 安装库pip install imutils ;pip install --upgrade imutils更新版本⼤于v0.3.1import cv2# construct the argument parse and parse the argumentsap = argparse.ArgumentParser()ap.add_argument("-i", "--images", required=True, help="path to images directory")# args = vars(ap.parse_args())# 初始化我们的⾏⼈检测器hog = cv2.
学python看谁的视频比较好HOGDescriptor() # 初始化⽅向梯度直⽅图描述⼦hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) # 设置⽀持向量机(Support Vector Machine)使得它成为⼀个预先训练好了的⾏⼈检测器# hog.load('myHogDector3.bin')# 到这⾥,我们的OpenCV⾏⼈检测器已经完全载⼊了,我们只需要把它应⽤到⼀些图像上# ---------------------------------------------------------------------------------------------------------srcTest =
'003.mp4'# srcTest = 'G:/PycharmProjects/PedestrianDetection/videos/001.mp4'cap = cv2.VideoCapture(srcTest) # Open video file# loop over the image pathswhile(cap.isOpened()): # args["images"] # load the image and resize it to (1) reduce detection time # and (2) improve detection accuracy ret, image = ad() image = size(image, width=min(800, image.shape[1])) frameForView = py() ''' 构造了⼀个尺度scale=1.05的图像⾦字塔,以及⼀个分别在x⽅向和y⽅向步长为(4,4)像素⼤⼩的滑窗 scale的尺度设置得越⼤,在图像⾦字塔中层的数⽬就越少,相应的检测速度就越快,但是尺度太⼤会导致⾏⼈出现漏检; 同样的,如果scale设置得太⼩,将会急剧的增加图像⾦字塔的层数,这样不仅耗费计算资源,⽽且还会急剧地增加检测过程 中出现的假阳数⽬(也就是不是⾏⼈的被检测成⾏⼈)。这表明,scale是在⾏⼈检测过程中它是⼀个重要的参数,。 '''# detect people in the image: (rects, weights) = hog.detectMultiScale(image, winStride=(4, 4), padding=(8, 8), scale=200.05) # 应⽤⾮极⼤抑制⽅法,通过设置⼀个阈值来抑制那些重叠的边框 rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects]) pick =
non_max_suppression(rects, probs=None, overlapThresh=0.65) # draw the final bounding boxes for (xA, yA, xB, yB) in pick: angle(image, (xA, yA), (xB, yB), (0, 255, 0), 2)# 捕获异常 try: cv2.imshow('FrameForView', image) #
cv2.imshow('Frame', frame) except Exception as e: print(e) break # Abort and exit with 'Q' or ESC k = cv2.waitKey(30) &
0xff if k == 27: lease()cv2.destroyAllWindows()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论