公共场合不允许吸烟,我用Python实现吸烟监测!给商场试用

2.1 初始函数搭建

其中包括YOLO初始化基本参数,初始化类别、获取先验框、计算会话等。

def __init__(self, **kwargs):

self.__dict__.update(self._defaults)

self.class_names = self._get_class()

self.anchors = self._get_anchors()

self.sess = K.get_session()

self.boxes, self.scores, self.classes = self.generate()

def _get_class(self):

classes_path = os.path.expanduser(self.classes_path)

with open(classes_path) as f:

class_names = f.readlines()

class_names = [c.strip() for c in class_names]

return class_names

def _get_anchors(self):

anchors_path = os.path.expanduser(self.anchors_path)

with open(anchors_path) as f:

anchors = f.readline()

anchors = [float(x) for x in anchors.split(‘,’)]

return np.array(anchors).reshape(-1, 2)

å¾ç

2.2 YOLO网络层搭建

YOLO算法将整幅图像分为了多个网格单元,对每个网格中心目标进行检测,该算法不用生成候选区域,在一个卷积网络中就可以完成特征提取、分类回归等任务,检测过程得到了简化,检测速度也变得更快,但该算法对于小尺度目标的检测不够准确,如果图像中存在重叠遮挡等现象就可能出现遗漏。整个网络模型搭建包括DarknetConv2D、 BatchNormalization和 LeakyReLU卷积块的设置以及卷积层特征提取。

def DarknetConv2D(*args, **kwargs):

darknet_conv_kwargs = {‘kernel_regularizer’: l2(5e-4)}

darknet_conv_kwargs[‘padding’] = ‘valid’ if kwargs.get(‘strides’)==(2,2) else ‘same’

darknet_conv_kwargs.update(kwargs)

return Conv2D(*args, **darknet_conv_kwargs)

def DarknetConv2D_BN_Leaky(*args, **kwargs):

no_bias_kwargs = {‘use_bias’: False}

no_bias_kwargs.update(kwargs)

return compose(

DarknetConv2D(*args, **no_bias_kwargs),

BatchNormalization(),

LeakyReLU(alpha=0.1))

模型调用

常见的目标检测算法常分为三个步骤进行:

第一步:分类,用事前确定好的类别或实例ID对化为信息的图像结构进行描述。

第二步:检测,上一步是对整张图片内容的描述,这一步则需要选定一个物体目标进行检测,获取物体所处位置以及类别信息。

第三步:分割,这一步需要对语义和实例进行分割,并得出像素属于哪个目标物体或哪个场景的结论。

流程为调整输入图像或视频流的尺寸以满足模型规范输入大小,通过模型预测出类别、框体大小和分数。

其中模型调用显示框图代码如下:

def detect_image(self, image):

boolen=False

start = timer()

new_image_size = self.model_image_size

boxed_image = letterbox_image(image, new_image_size)

image_data = np.array(boxed_image, dtype=‘float32’)

image_data /= 255.

image_data = np.expand_dims(image_data, 0) # Add batch dimension.

out_boxes, out_scores, out_classes = self.sess.run(

[self.boxes, self.scores, self.classes],

feed_dict={

self.yolo_model.input: image_data,

self.input_image_shape: [image.size[1], image.size[0]],

K.learning_phase(): 0

})

print(‘Found {} boxes for {}’.format(len(out_boxes), ‘img’))

font = ImageFont.truetype(font=‘font/simhei.ttf’,

size=np.floor(3e-2 * image.size[1] + 0.5).astype(‘int32’))

thickness = (image.size[0] + image.size[1]) // 300

small_pic=[]

for i, c in list(enumerate(out_classes)):

predicted_class = self.class_names[c]

box = out_boxes[i]

score = out_scores[i]

top, left, bottom, right = box

top = top - 5

left = left - 5

bottom = bottom + 5

right = right + 5

top = max(0, np.floor(top + 0.5).astype(‘int32’))

left = max(0, np.floor(left + 0.5).astype(‘int32’))

bottom = min(image.size[1], np.floor(bottom + 0.5).astype(‘int32’))

right = min(image.size[0], np.floor(right + 0.5).astype(‘int32’))

画框框

label = ‘{} {:.2f}’.format(predicted_class, score)

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-5k6sH7eD-1711080565753)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值