python检测吸烟的算法_EfficientDet训练自己的数据集实现抽烟检测

本文介绍了使用EfficientDet检测吸烟的算法,首先展示实验结果,然后详细阐述了从Labelme标注的JSON数据集转换为VOC XML格式的过程,包括代码实现。接着介绍了EfficientDet的基本理论,最后讲解了训练数据的准备、模型训练及测试的步骤。
摘要由CSDN通过智能技术生成

哈哈,我又来了!!! 再次立下flag,开学之后还是要保持更新频率!!!

本次用efficientdet来对抽烟检测,检测出是否抽烟。那么,老规矩,先上结果图!!!

那么,接下来,还是原先一套流程。走起!!!

一、环境配置

python==3.7.4

tensorflow-gpu==1.14.0

keras==2.2.4

numpy==1.17.4

本次,在租的gpu的机器上的。没办法,efficientnet这个网络占据显存太大了。本次机器带不动呀。

二、抽烟数据集

本次数据集是用labelme标注的,提供的json格式的数据集,但本次我们的voc格式的xml数据集,所以需要对json格式的数据进行转换。

图片:

标注的json格式数据:

转换后的xml格式

本次json转xml的源码如下:

# -*- coding: utf-8 -*-

"""

Created on Sun May 31 10:19:23 2020

@author: ywx

"""

import os

from typing import List, Any

import numpy as np

import codecs

import json

from glob import glob

import cv2

import shutil

from sklearn.model_selection import train_test_split

# 1.标签路径

labelme_path = "annotations/"

#原始labelme标注数据路径

saved_path = "VOC2007/"

# 保存路径

isUseTest=True#是否创建test集

# 2.创建要求文件夹

if not os.path.exists(saved_path + "Annotations"):

os.makedirs(saved_path + "Annotations")

if not os.path.exists(saved_path + "JPEGImages/"):

os.makedirs(saved_path + "JPEGImages/")

if not os.path.exists(saved_path + "ImageSets/Main/"):

os.makedirs(saved_path + "ImageSets/Main/")

# 3.获取待处理文件

files = glob(labelme_path + "*.json")

files = [i.replace("\\","/").split("/")[-1].split(".json")[0] for i in files]

print(files)

# 4.读取标注信息并写入 xml

for json_file_ in files:

json_filename = labelme_path + json_file_ + ".json"

json_file = json.load(open(json_filename, "r", encoding="utf-8"))

height, width, channels = cv2.imread('jpeg/' + json_file_ + ".jpg").shape

with codecs.open(saved_path + "Annotations/"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值