资源简介
基于opencv的安全帽佩戴检测,开发语言采用python,自己训练的安全帽分类器。

代码片段和文件信息
# -*- coding: utf-8 -*-
import threadpool
import threading
import time
import random
import Queue
import numpy as np
import cv2
import sys
import osshutil
import time
import datetime
from imutils.object_detection import non_max_suppression
from imutils import paths
import imutils #安装库pip install imutils ;pip install --upgrade imutils更新版本大于v0.3.1
import threading
#import get_video_address
import copy
import hashlib
from imutils.video import FileVideoStream
from imutils.video import VideoStream
class bug_rect_info:
def __init__(selfxywh):
self.x = x
self.y = y
self.w = w
self.h = h
self.count = 1
class people_detect:
def __init__(self):
#已经训练好的分类器,检测佩戴安全头的人员
self.face_cascade = cv2.CascadeClassifier(os.path.join(sys.path[0] ‘cascade-v2.5.xml‘))
#检测行人
self.hog = cv2.HOGDescriptor() #初始化方向梯度直方图描述子
self.hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) #设置支持向量机(Support Vector Machine)使得它成为一个预先训练好了的行人检测器
self.font = cv2.FONT_HERSHEY_SIMPLEX
self.IsExit = False
self.dir_temp = os.path.join(sys.path[0] “temp“)
self.dir_people = os.path.join(sys.path[0] “people“)
self.dir_hat = os.path.join(sys.path[0] “hat“)
self.dir_empty = os.path.join(sys.path[0] “empty“)
self.dir_head = os.path.join(sys.path[0] “head“)
self.bug_list = []
#创建临时目录
if not os.path.exists(self.dir_temp): os.makedirs(self.dir_temp)
if not os.path.exists(self.dir_people): os.makedirs(self.dir_people)
if not os.path.exists(self.dir_hat): os.makedirs(self.dir_hat)
if not os.path.exists(self.dir_temp): os.makedirs(self.dir_temp)
if not os.path.exists(self.dir_empty): os.makedirs(self.dir_empty)
if not os.path.exists(self.dir_head): os.makedirs(self.dir_head)
#获取视频流的地址
def getframes(self):
#工地摄像头
#capture = cv2.VideoCapture(get_video_address.get_video_url())
#本地摄像头
#capture = cv2.VideoCapture(0)
#本地文件
capture = FileVideoStream(os.path.join(sys.path[0]‘test01.ts‘)).start()
#print(capture.isOpened())
return capture
#获取行人
def get_people(selfframesmall_frame):
#检测行人
(rects weights) = self.hog.detectMultiScale(small_frame winStride=(8 8) padding=(8 8) scale=1.15)
rects = np.array([[x y x + w y + h] for (x y w h) in rects])
index = 0
offset_x = float(frame.shape[0]) / float(small_frame.shape[0])
offset_y = float(frame.shape[1]) / float(small_frame.shape[1])
print offset_xoffset_y
head = datetime.datetime.now().strftime(‘%Y_%m_%d_%H_%M_%S‘)
for (xywh) in rects:
if weights[index] <= 0.68: continue
#检测安全帽
face = self.get_safe_hat(small_frame[y:hx
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3998948 2018-07-17 18:16 test01.ts
文件 219097 2018-07-14 05:00 cascade-v2.5.xm
文件 10593 2018-07-24 10:45 safety_hat_detect2.py
----------- --------- ---------- ----- ----
4228638 3
相关资源
- python人脸识别(opencv)
- 图片智能拼接(opencv)
- 计算机视觉 opencv 数数.ipynb
- python opencv 银行卡识别.ipynb
- python opencv 图片更换背景. ipynb
- 计算机视觉 opencv 答题卡阅卷.ipynb
- 计算机视觉 opencv 检测不合格产品.
- 计算机视觉 opencv 做一个动态时钟.
- 计算机视觉 opencv 哈哈镜
- 计算机视觉 opencv 蒙太奇.ipynb
- 计算机视觉 opencv 超像素分割.ipynb
- 计算机视觉 opencv 医学图片处理.ipy
- MicroPython中文教程
- openmv二维码识别
- openmv控制舵机
- 图片分类,图像识别,目标检测
- 人脸检测和识别(opencv3+python)
- python检测图片是否有人脸
- xpath爬取豆瓣电影top250
- Python 3 Web Development. Beginners Guide
- python语言实现的基于opencv的表针识别
- OpenCV入门教程+OpenCV官方教程中文版
- wxPython Application Development Cookbook
- opencv+Python的教程大全
- openmv一次性识别红黄蓝三种颜色
- 工程训练大赛openmv二维码、色环、色
- OpenMV交通灯识别例程
- opencv手势识别
- 单重态Majoron模型中的两场宇宙相变和
- 卷积神经网络图像识别python代码pdf
评论
共有 条评论