YOLOv3-Tiny检测包装标签

实验目标

能够对包装上的标签进行检测,找出其位置并进行分类。(由于拿到的标签数据与需要的不一致,该处主要讲解格式转化及其标注框转化的一点心得)

标注工具

之前使用的标注工具为labelImg保存的为xml格式,使用的是矩形框标注。拿到的数据是使用labelme标注的为json格式,其是通过多边形标注的,这其中需要进行转化。另外拿到的数据为675*1280尺寸的不支持YOLO的输入,将尺寸压缩的同时要注意标注框的坐标也要进行相应的转化。(YOLO中使用矩形框进行标注)

https://github.com/spytensor/prepare_detection_dataset

在这里插入图片描述
关键的转化函数部分
在这里插入图片描述

批量复制图片

#提取目录下所有图片,复制后保存到另一目录
from PIL import Image
import os.path
import glob
import shutil

saved_path = "./VOC2007/"
labelme_path = "./train_1280/"  

#5.复制图片到 VOC2007/JPEGImages/下
image_files = glob.glob(labelme_path + "*.jpg")
print("copy image files to VOC007/Images/")
for image in image_files:
    shutil.copy(image,saved_path +"JPEGImages/")

批量更改图片尺寸

#提取目录下所有图片,更改尺寸后保存到另一目录
from PIL import Image
import os.path
import glob

def convertjpg(jpgfile,outdir,width=416,height=416):
    img=Image.open(jpgfile)
    try:
        new_img=img.resize((width,height),Image.BILINEAR)   
        new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
    except Exception as e:
        print(e)

for jpgfile in glob.glob("E:\\360MoveData\\Users\\Administrator\\Desktop\\TagDetect\\VOC2007\\JPEGImages\\*.jpg"):
    convertjpg(jpgfile,"E:\\360MoveData\\Users\\Administrator\\Desktop\\TagDetect\\VOC2007\\JPEGImages")

labelme转voc格式

import os
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 = "./train_1280/"              #原始labelme标注数据路径
saved_path = "./VOC2007/"                #保存路径

#2.创建要求文件夹
if 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值