资源简介
该脚本可以通过opencv的dnn模块调用darknet模型对数据进行自动标注,生成xml文件,使用时需要自己修改路径。
代码片段和文件信息
#!/usr/bin/python
# -*- coding=utf-8 -*-
# author : DongLZ
# date: 2020-05-22
from xml.etree import ElementTree as ET
import cv2
import os
import numpy as np
from os import getcwd
imgdir = ‘img‘
IMAGES_LIST=os.listdir(imgdir) # 图片路径
weightsPath = “./face/face.weights“
configPath = “./face/face.cfg“
labelsPath = “./face/face.names“
LABELS = open(labelsPath).read().strip().split(“\n“)
print(LABELS)
net = cv2.dnn.readNetFromDarknet(configPath weightsPath)
net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
def coordinate_get(img):
coordinates_list=[] # 创建坐标列表
boxes = []
confidences = []
classIDs = []
(H W) = img.shape[:2]
# 得到 YOLO需要的输出层
ln = net.getlayerNames()
ln = [ln[i[0] - 1] for i in net.getUnconnectedOutlayers()]
# 从输入图像构造一个blob,然后通过加载的模型,给我们提供边界框和相关概率
blob = cv2.dnn.blobFromImage(img 1 / 255.0 (416 416) swapRB=True crop=False)
net.setInput(blob)
layerOutputs = net.forward(ln)
# 在每层输出上循环
for output in layerOutputs:
# 对每个检测进行循环
for detection in output:
scores = detection[5:]
classID = np.argmax(scores)
confidence = scores[classID]
# 过滤掉那些置信度较小的检测结果
if confidence > 0.01:
# 框后接框的宽度和高度
box = detection[0:4] * np.array([W H W H])
(centerX centerY width height) = box.astype(“int“)
# 边框的左上角
x = int(centerX - (width / 2))
y = int(centerY - (height / 2))
# 更新检测出来的框
boxes.append([x y int(width) int(height)])
confidences.append(float(confidence))
classIDs.append(classID)
idxs = cv2.dnn.NMSBoxes(boxes confidences 0.2 0.3)
if len(idxs) > 0:
for i in idxs.flatten():
(x y) = (boxes[i][0] boxes[i][1])
(w h) = (boxes[i][2] boxes[i][3])
xmin = int(x)
ymin = int(y)
xmax = int(x + w)
ymax = int(y + h)
coordinates_list.append([xminyminxmaxymaxclassIDs[i]])
return coordinates_list
#创建一级分支object
def create_object(rootxiyixayaobj_name): # 参数依次,树根,xmin,ymin,xmax,ymax
#创建一级分支object
_object=ET.SubElement(root‘object‘)
#创建二级分支
name=ET.SubElement(_object‘name‘)
- 上一篇:DynaSLAM/src/python/
- 下一篇:爬取b站前百视频名称和链接
相关资源
- 梯度下降python程序实现+可视化
- 基于深度学习的表情识别系统
- 语义分割标注转为目标检测框标注
- keras上LSTM长短期记忆网络金融时序预
- 深度学习 莫烦 Keras源代码
- 合并BN层的python脚本
- 机器学习深度学习篇系列分享_超值
- 《TensorFlow2深度学习》
- 深度学习视频教程,包括python入门,
- python三阶深度学习框架-Real-Time-Voice
-
xm
l_parse.py - 可直接运行版本python实现yolov3调用摄
- Deep Learning for Computer Vision with Python链
- 莫烦全部代码Reinforcement-learning-with-
- cifar-10-python.tar.gz的资源
- python全栈视频某智
- YOLO_train.py
- 强化深度学习迷宫问题
- 基于PyTorch的深度学习技术进步
-
深度学习目标检测提取xm
l文件中的 - 深度学习入门:基于Python的理论与实
- 深度学习算法实践源码
- 《白话深度学习与TensorFlow》
- Tensorflow+实战Google深度学习框架
- mnist_CNN 深度学习小
- 基于深度学习字符型图片数字验证码
- 《Python深度学习》2018英文版.pdf
- OpenCV-Python调用训练好的深度学习模型
- 深度学习之一:卷积神经网络(CNN)
- 深度学习之二:用Tensorflow实现卷积神
评论
共有 条评论