货品目标检测样本制作方法(代码片段)

author author     2022-10-24     408

关键词:

最近公司要做无人超市项目,基本实现方式是通过摄像头检测货柜里面有多少个什么类别的货品,也就是目标检测算法。该方法所需数据样本为标记了位置的货品图片,如下所示。技术分享图片
为了制作该图片,设计方法如下:
1、拍摄该样品360度的视频
2、将视频抓帧
3、将图片通过opencv拼装成样本

拍摄视频如下并抓帧的程序如下:


import os
import cv2
path = "F:/objectdect/avi/"

def openavifiletopic(filepath,index):
cap = cv2.VideoCapture(filepath)
if cap.isOpened(): # 判断是否正常打开
rval, frame = cap.read()
else:
rval = False
c = 0
num = 0
while rval: # 循环读取视频帧
rval, frame = cap.read()
if (c % 10 == 0):
filesavepath = path + str(index) + "/" + str(num) + ".jpg"
cv2.imwrite(filesavepath, frame) # 存储为图像
num = num + 1
c = c + 1
cap.release()

for index in range (1,21):
pathavi = path + str(index)
rootdir = pathavi
list = os.listdir(rootdir) # 列出文件夹下所有的目录与文件
for i in range(0, len(list)):
filepath = os.path.join(rootdir, list[i])
if os.path.isfile(filepath):
print(list[i])
filepath = pathavi + "/" + str(list[i])

你想对文件的操作

        openavifiletopic(filepath,index)

生成样本的程序如下:
import random
import cv2
path = "F:/objectdect/all"
for index in range(0,10001):
filepath = path + "/" + str(index) + ".jpg"
#产生一个1到5的随机数
numlist = [1,2,4]
rndnum = random.sample(numlist, 1)[0]
imglist = []
for numindex in range(1,rndnum+1):
#print(numindex)
#随机取出一个文件夹中的一个图片
classnum = random.randint(1, 20)
jpgpath = "F:/objectdect/avi/" + str(classnum) + "/" + str(random.randint(0, 200))+".jpg"
imgtemp = cv2.imread(jpgpath)
imgtemp = cv2.resize(imgtemp, (500, 500), interpolation=cv2.INTER_CUBIC)
imglist.append(imgtemp)
try:
print(rndnum)
if rndnum == 1:
imgall = cv2.hconcat(imglist)
res = cv2.resize(imgall, (500, 500), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(filepath, res) # 存储为图像
if rndnum == 2:
imgall = cv2.hconcat([imglist[0],imglist[1]])
res = cv2.resize(imgall, (500, 500), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(filepath, res) # 存储为图像
if rndnum == 4:
imgall1 = cv2.hconcat([imglist[0],imglist[1]])
imgall2 = cv2.hconcat([imglist[2], imglist[3]])
imgall = cv2.vconcat([imgall1, imgall2])
res = cv2.resize(imgall, (500, 500), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(filepath, res) # 存储为图像
except:
print("错误")
该程序保存了样本图片之后可以通过 voc数据集标记工具 生成对应的xml文件 即可开始目标检测算法的训练。
http://blog.csdn.net/hx921123/article/details/56484876

sylph|一种用于增量小样本目标检测的超网络框架(代码片段)

...,我是极智视界,本文解读一下一种用于小样本目标检测的超网络框架Sylph。 作者研究了具有挑战性的增量小样本目标检测任务(iFSD)。近年来,基于超网络的方法在连续的、无微调的iFSD背景下进行了研究,但取... 查看详情

目标检测yolov5跑xview数据集/小样本检测策略实验(代码片段)

前言在YOLOv5的6.1版本新出了xView.yaml数据配置文件,提供了遥感数据集xView的检测方法。此篇就使用YOLOv5来试跑xView数据集,并对一些小样本检测的策略进行消融实验。xView数据集下载:https://github.com/zstar1003/Dataset数据... 查看详情

目标检测yolo+dota:小样本检测策略(代码片段)

前言之前在使用YOLOv5跑xView数据集时,发现准确率还是非常低的。在网上冲浪时,我发现了一种小样本检测策略:那就是把大分辨率的图片分割成小块进行训练,然后再输入大图进行检测。那么本篇博文就使用DOTA... 查看详情

一种关注于重要样本的目标检测方法!

...作者:宋志龙,浙江工业大学,Datawhale成员在目标检测中训练模型时,样本间往往有差异性,不能被简单地同等对待。这次介绍的论文提出了一种重要样本的关注机制,在训练过程中帮助模型 查看详情

睿智的目标检测61——tensorflow2focalloss详解与在yolov4当中的实现(代码片段)

睿智的目标检测61——Tensorflow2Focalloss详解与在YoloV4当中的实现学习前言什么是FocalLoss一、控制正负样本的权重二、控制容易分类和难分类样本的权重三、两种权重控制方法合并实现方式学习前言TF2的也补上咯。其实和Keras的一摸... 查看详情

目标检测小脚本:根据xml批量复制jpg图片(代码片段)

问题场景在使用LabelImg标注完目标检测的数据之后,由于很多样本是负例(没有目标的样本),将其输入到模型中意义不大,因此需要进行剔除。那么实现思路就是根据xml的名称来筛选对应的jpg图片。文件结构如图,... 查看详情

损失函数解读之focalloss(代码片段)

前言Focalloss是一个在目标检测领域常用的损失函数,它是何凯明大佬在RetinaNet网络中提出的,解决了目标检测中 正负样本极不平衡 和难分类样本学习 的问题。论文名称:FocalLossforDenseObjectDetection目录什么是正负样... 查看详情

传统目标检测实战:hog+svm(代码片段)

传统目标检测实战:HOG+SVM文章目录传统目标检测实战:HOG+SVM1.前言1.1传统和深度1.2何为传统目标检测1.3传统目标检测方法不足2.先验知识3.项目框架3.1文件架构3.2方法简要介绍4.工具函数(utils.py)5.特征提取... 查看详情

深度学习之目标检测(代码片段)

算法的设计往往与名字有着绝对的关联性,目标定位检测即目标定位+检测。在深度学习中比较常用的目标定位检测方法有RCNN系列方法和YOLO系列方法。其中RCNN系列方法的定位过程和检测过程是分开的,即先定位目标&#x... 查看详情

九大遥感目标检测数据集(附下载链接)(代码片段)

目标检测领域遥感数据集码字不易,点个赞再走呗1.中科院大学高清航拍目标数据集合(UCAS-AOD)-3.25G1.1基本信息UCAS-AOD(Zhuetal.,2015)用于飞机和汽车的检测,包含飞机与汽车2类样本以及一定数量的反例样本ÿ... 查看详情

opencv车辆识别目标检测级联分类器c++案例实现(代码片段)

目录前言一、目标检测技术二、样本采集工作原理三、创建自己的级联分类器Step1:准备好样本图像Step2:环境配置(OpenCVwin10)Step3:设置路径Step4:实现样本数据采集 Step5:实现样本数据训练Step6࿱... 查看详情

目标检测中的样本不平衡处理方法——ohem,focalloss,ghm,pisa

参考技术AGitHubCSDN目前。计算机视觉中的性能最好的目标检测方法主要分为两种:one-stage和two-stage方法。two-stage方法分为两步,第一步为候选区域生成阶段(Proposalstage),通过如SelectiveSearch、EdgeBoxes等方法可以生成数量相对较小候选... 查看详情

传统目标检测方法研究(代码片段)

1传统算法目标检测区域选择-->特征提取-->特征分类1.1区域选择python实现图像滑动窗口区域选取:首先选取图像中可能出现物体的位置,由于物体位置、大小都不固定,因此传统算法通常使用滑动窗口(SlidingWi... 查看详情

图像异常检测anomalib(代码片段)

...陷需要被可靠的检出。工业异常检出旨在从正常的样本中检测异常的、有缺陷的情况。工业异常检测主要面临的挑战:难以获取大量异常样本正常样本和异常样本差异较小异常的类型不能预先得知这些挑战使得很难使用传统... 查看详情

如何利用opencv进行样本训练

OpenCV训练分类器一、简介目标检测方法最初由PaulViola[Viola01]提出,并由RainerLienhart[Lienhart02]对这一方法进行了改善。该方法的基本步骤为:首先,利用样本(大约几百幅样本图片)的harr特征进行分类器训练,得到一个级联的booste... 查看详情

深度学习和目标检测系列教程19-300:关于目标检测apiou和map简介(代码片段)

@Author:RunsenR-CNN和YOLO等对象检测模型,使用了平均精度(mAP)。mAP将真实边界框与检测到的框进行比较并返回分数。分数越高,模型的检测就越准确。PrecisionandRecall现在有两个类,Positive和Negative,这里是10个... 查看详情

深度学习和目标检测系列教程19-300:关于目标检测apiou和map简介(代码片段)

@Author:RunsenR-CNN和YOLO等对象检测模型,使用了平均精度(mAP)。mAP将真实边界框与检测到的框进行比较并返回分数。分数越高,模型的检测就越准确。PrecisionandRecall现在有两个类,Positive和Negative,这里是10个... 查看详情

深度学习目标检测概述(代码片段)

目录1目标检测2常用的开源数据集2.1PASCALVOC数据集2.2MSCOCO数据集3常用的评价指标3.1IOU3.2mAP(*MeanAveragePrecision*)4NMS(非极大值抑制)5目标检测方法分类6总结1目标检测目标检测(ObjectDetection)的任务是找出... 查看详情