游戏电视苹果数码资讯常识
家庭阅读
常识投稿
常识美丽
时装彩妆
资讯历史
明星安卓
数码生活
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

图像预处理随机贴图生成标注文件的python实现

11月11日 寒霜坞投稿 造句
  1。任务目标
  在训练目标检测模型时,若数据存在以下情况:图像之间差异小、不同类别数目差异大、有些目标物体的样本图片难以搜集等,需要对数据进行处理。本文以fire类别为例实现对数据的随机贴图增广,生成新的标注文件,或在已有标注文件中添加,且避免覆盖已有标注。2。Python实现2。1将已标注的目标保存
  数据存储格式:(路径中不要包含中文)
  输入文件夹:datafiredatasetJPEGImages。jpgdatafiredatasetAnnotations。xml
  输出文件夹:datafirecut
  代码:importosimportcv2importtimeimportargparseimportxml。etree。ElementTreeasETfromtqdmimporttqdmparserargparse。ArgumentParser(descriptionReadboxfromxmlandcropfromimage。)parser。addargument(dstlabel,defaultfire,helplabelboxtocut)parser。addargument(inputpath,defaultdatafiredataset,helpcontainAnnotations,JPEGImagesfolder)parser。addargument(outputpath,defaultdatafirecut,helpoutputpath)argsparser。parseargs()defreadxmlbox(xmlfile):xmlannoET。parse(xmlfile)result〔〕forobjinxmlanno。findall(object):classnameobj。find(name)。text。strip()xminobj。find(bndbox)。find(xmin)。textxmaxobj。find(bndbox)。find(xmax)。textyminobj。find(bndbox)。find(ymin)。textymaxobj。find(bndbox)。find(ymax)。textresult。append(〔classname,int(xmin),int(xmax),int(ymin),int(ymax)〕)returnresultdefmain():xmlpathos。path。join(args。inputpath,Annotations)imgpathos。path。join(args。inputpath,JPEGImages)forimgnameintqdm(os。listdir(imgpath)):xmlname{}。xml。format(imgname。rsplit(。,maxsplit1)〔0〕)xmlfileos。path。join(xmlpath,xmlname)ifnotos。path。exists(xmlfile):print({}notexists。format(xmlname))continueimgcv2。imread(os。path。join(imgpath,imgname))clsboxesreadxmlbox(xmlfile)forclsboxinclsboxes:classname,xmin,xmax,ymin,ymaxclsboxifclassname!args。dstlabel:continuecropimgimg〔ymin:ymax,xmin:xmax,:〕newname{}{}。jpg。format(xmlname〔:4〕,str(time。time())。replace(。,))savepathos。path。join(args。outputpath,classname)ifnotos。path。exists(savepath):os。makedirs(savepath)savenameos。path。join(savepath,newname)print(savename)cv2。imwrite(savename,cropimg)ifnamemain:main()
  生成结果:
  2。2随机贴图扩充数据
  数据存储格式:
  输入文件夹:datafirecutdatafirebgJPEGImages。jpgdatafirebgAnnotations。xml
  注意:此处作为背景的数据,可以只有图片,没有标注文件。也可以既有图片又有标注文件。若没有标注文件,则生成;若有标注文件,则在贴图时会避免目标框的遮挡。
  输出文件夹:dataoutput
  输入参数:gennum:生成的图片数目,实际生成数目小于等于该值;clsname:待扩增的类别名称;tietudir:前景图片文件夹,保存fire目标图,是从已标注的fire数据中剪切保存;imgpath:背景图片文件夹,其他含fire目标或不含fire目标的图片;xmlpath:背景图片标注文件夹savepath:保存结果文件夹
  代码:importosimporttimeimportrandomimportargparseimportxml。etree。ElementTreeasETfromPILimportImageparserargparse。ArgumentParser()parser。addargument(tietudir,defaultdatafirecutfire,help贴图路径)parser。addargument(xmlpath,defaultdatafirebgAnnotations,help躲避路径)parser。addargument(imgpath,defaultdatafirebgJPEGImages,help底图路径)parser。addargument(savepath,defaultdataoutput,help保存路径)parser。addargument(gennum,default11,help保存个数)parser。addargument(clsname,defaultfire,help目标类别名)argsparser。parseargs()defcreatsrcxml(widthditu,heightditu,box,savepath,name,clsname):xmlnamenamexmlfilesavepathxmlnamexopen(xmlfile,w)x。writelines()x。writelines(folderdatafolder)x。writelines(filenamexmlnamefilename)x。writelines(pathxmlfilepath)x。writelines(source)x。writelines(databaseUnknowndatabase)x。writelines(source)x。writelines(size)x。writelines(widthstr(widthditu)width)x。writelines(heightstr(heightditu)height)x。writelines(depth3depth)x。writelines(size)x。writelines(segmented0segmented)x。writelines(object)x。writelines(nameclsnamename)x。writelines(poseUnspecifiedpose)x。writelines(truncated0truncated)x。writelines(difficult0difficult)x。writelines(bndbox)x。writelines(xminstr(int(box〔0〕))xmin)x。writelines(yminstr(int(box〔1〕))ymin)x。writelines(xmaxstr(int(box〔2〕))xmax)x。writelines(ymaxstr(int(box〔3〕))ymax)x。writelines(bndbox)x。writelines(object)x。writelines(annotation)x。close()defcreatxml(box,savepath,copypath,clsname):readFileopen(copypath,encodingUTF8)linesreadFile。readlines()readFile。close()xopen(savepath,w,encodingUTF8)x。writelines(〔itemforiteminlines〔:1〕〕)x。writelines(object)x。writelines(nameclsnamename)x。writelines(poseUnspecifiedpose)x。writelines(truncated0truncated)x。writelines(difficult0difficult)x。writelines(bndbox)x。writelines(xminstr(int(box〔0〕))xmin)x。writelines(yminstr(int(box〔1〕))ymin)x。writelines(xmaxstr(int(box〔2〕))xmax)x。writelines(ymaxstr(int(box〔3〕))ymax)x。writelines(bndbox)x。writelines(object)x。writelines(annotation)x。close()defreadxmlbox(xmlfile):xmlannoET。parse(xmlfile)result〔〕forobjinxmlanno。findall(object):classnameobj。find(name)。text。strip()xminobj。find(bndbox)。find(xmin)。textxmaxobj。find(bndbox)。find(xmax)。textyminobj。find(bndbox)。find(ymin)。textymaxobj。find(bndbox)。find(ymax)。textresult。append(〔classname,int(xmin),int(ymin),int(xmax),int(ymax)〕)returnresultdefcomputeIOU(rec1,rec2):leftcolumnmaxmax(rec1〔0〕,rec2〔0〕)rightcolumnminmin(rec1〔2〕,rec2〔2〕)uprowmaxmax(rec1〔1〕,rec2〔1〕)downrowminmin(rec1〔3〕,rec2〔3〕)ifleftcolumnmaxrightcolumnminordownrowminuprowmax:return0else:s1(rec1〔2〕rec1〔0〕)(rec1〔3〕rec1〔1〕)s2(rec2〔2〕rec2〔0〕)(rec2〔3〕rec2〔1〕)scross(downrowminuprowmax)(rightcolumnminleftcolumnmax)returnscross(s1s2scross)defrandombox(end1,end2,end3,end4):xminrandom。randint(0,end1)yminrandom。randint(0,end2)xmaxxminend3ymaxyminend4returnxmin,ymin,xmax,ymaxdefgetshufflelist(imgpath,gennum):imgsos。listdir(imgpath)numlen(imgs)ifnotnum:returnNonerandom。shuffle(imgs)times,remainderpmod(gennum,num)namegenimgs〔:remainder〕foriinrange(times):namegen。extend(imgs)random。shuffle(namegen)returnnamegendefprocess(gennum,tietudir,imgpath,xmlpath,savepath,clsname):os。makedirs(savepath,existokTrue)loadfgfggengetshufflelist(tietudir,gennum)loadbgbggengetshufflelist(imgpath,gennum)iffggenisNoneorbggenisNone:returncombinenum0forfg,bginzip(fggen,bggen):num1fgimgImage。open(os。path。join(tietudir,fg))bgimgImage。open(os。path。join(imgpath,bg))savenamebg。rsplit(。,maxsplit1)〔0〕bgxmlname{}。xml。format(savename)bgxmlpathos。path。join(xmlpath,bgxmlname)clsboxes〔〕ifos。path。exists(bgxmlpath):clsboxesreadxmlbox(bgxmlpath)fgwidthfgimg。size〔0〕贴图长宽fgheightfgimg。size〔1〕bgwidthbgimg。size〔0〕底图长宽bgheightbgimg。size〔1〕scale1。0try:box2randombox(bgwidthfgwidth,bgheightfgheight,fgwidth,fgheight)except:scale0。5fgimg。resize((int(fgwidthscale),int(fgheightscale)))fgwidthfgimg。size〔0〕fgheightfgimg。size〔1〕iffgwidthbgwidthorfgheightbgheight:continuebox2randombox(bgwidthfgwidth,bgheightfgheight,fgwidth,fgheight)timer50loopflagTruewhiletimerandloopflagandclsboxes:timer1loopflagFalseforboxinclsboxes:areacomputeIOU(box〔1:5〕,box2)ifarea0:box2randombox(bgwidthfgwidth,bgheightfgheight,fgwidth,fgheight)loopflagTruebreakiftimer0:bgimg。paste(fgimg,(box2〔0〕,box2〔1〕))bgimgaddbgimg。convert(RGB)newname{}{}。format(savename,str(time。time())。replace(。,))bgimgadd。save(os。path。join(savepath,newname。jpg))xmlsavepathos。path。join(savepath,newname。xml)ifnotclsboxes:creatsrcxml(bgwidth,bgheight,box2,savepath,newname。xml,clsname)else:creatxml(box2,xmlsavepath,bgxmlpath,clsname)ifnamemain:process(args。gennum,args。tietudir,args。imgpath,args。xmlpath,args。savepath,args。clsname)
  生成结果:(labelimg查看)
  智驱力科技驱动生产力
评论 转载

造句:图像预处理随机贴图生成标注文件的实现
造句:图像预处理随机贴图生成标注文件的实
数解理想财报会是比亚迪的最大对手吗?根据乘联会的数据,今年1月,新能源SUV销量排行中,理想L9系列和L8系列分别位居第五和第六位。这是比亚迪之后,唯一一家,连续三个月,都有超过1个车型销量排进前十的车企。……realme双十一手机推荐摆脱机海战术,精品策略更具性价比?作为手机行业劳模,realme过去两年几乎每个月都有新机发布,海啸般机海战术让品牌本身也有些疲惫,今年的发机数量骤然减少。虽然新机密度下降,精品策略却让品质得到有效提升,今天推……九阴真经的招式动作也太真实了,不愧是最真实的武侠我们都知道武侠江湖里面最吸引人的一个特色之一,就是那一些奇妙的武学招式内功心法了,而在武侠游戏里面想要吸引更多的玩家,其中一个基本的要求就是做出符合我们内心形象的那一些武学招式……影视剧中令人窒息的假戏真做谁是真敬业,谁在公报私仇?演员演戏讲究一个真听真看真感受,才能做到真正入戏,更好地塑造人物。可有些演员入戏太深,打着敬业的旗号假戏真做,假耳光变成真耳光,有的人直接被扇成脑震荡,还有的人借着拍戏的……北京东大肛肠医院养生新主张防秋燥更要防秋郁进入深秋,不仅气温降低,空气干燥,让人体感寒冷。由于北半球日照时间变短,加上植物的凋零也容易让人有萧瑟之感。有些情绪比较敏感的人会陷入愁闷抑郁情绪当中,情绪低落、容易疲乏、做事……央视李思思河边踏春!戴金耳环别鲜花太娇美,裹黑棉袄打扮低调近日,央视主持人李思思在个人社交平台晒出几张自己春游的照片,画面中的李思思戴着一个中国风的帽子,蓝色的墨镜。可爱的是在耳朵上还别着两朵小雏菊,耳朵上戴着一个金色的小耳环很是别致……图像预处理随机贴图生成标注文件的python实现1。任务目标在训练目标检测模型时,若数据存在以下情况:图像之间差异小、不同类别数目差异大、有些目标物体的样本图片难以搜集等,需要对数据进行处理。本文以fire类别为例实现……被win11实力劝退!教你1个方法拒绝升级更新,很管用尽管,微软即将发布Win11系统22H2版本。但是,它的改动并不能打动每一名用户的心,比如说小编。Win11刚出来的时候,小编确实感兴趣,也就升级安装了。只是……每日优鲜的绝望求生路一个季度烧6亿IPO前画大饼误导投资者每日优鲜生鲜电商平台每日优鲜濒临倒闭,其资金链早已出现问题。为了从投资者手中筹集到资金,该公司用尽了办法。外媒根据法庭文件、投资者演示文稿以及对多位知情人士的采访发……观察珠宝商玩具厂猪企乳企扎堆跨界光伏,救命稻草还是飞蛾扑火被光伏市场高景气吸引的大举跨界者已屡见不鲜。猪企、乳企、玩具、服饰、车企、地产、环保、水泥甚至兽药公司这份跨界长名单还在持续更新,最新一例是国内知名珠宝商。光伏行业不乏成……保暖衣怎么选才科学?东华大学硬核实验室公开数据,这些材料最理每到寒冬之际,保暖衣都会成为人们服饰的首要选择。随着社会进步,人们对于保暖衣的要求,不仅仅只局限于保暖,更是要求它轻薄舒适。如今,市面上的保暖衣种类繁多,款式频出,保暖衣的卖点……游戏行业是财富密码?网友米哈游一年收入跟不上薇娅要补的税玩游戏,是目前普及度最高、最便捷的大众娱乐方式,因为市场的飞速发展,游戏产业也成为不少国人心目中的财富密码,似乎只要从事的是跟游戏相关的产业,都能赚的盆满钵溢,甚至连国内的股市……
长安欧尚X7到底怎么样?油耗如何?双离合变速器真的不靠谱吗?爸爸直男式聊天,父爱来得猝不及防,孩子我是亲生的吗?长城汽车坦克品牌的对手是谁?吉利奇瑞和比亚迪,销量为何都败给了长城?2。0T车型马力最大的是哪一款?想买合资SUV,落地价25W以内,四驱,有哪些推荐吗?请问20款吉普指南者优惠4万值得购买吗?能否推荐15万左右的轿车,偏向动力,噪音好点的?癌症患者频繁食用花生,竟会加速癌细胞扩散?一文给你科普分析中国最美的30个地方,去过3个不简单,去过6个就太幸福了泰国财政部长旅游业带动泰国经济增长今年外游将突破2000万人
失败的创业经验有多大价值蜗居主要演员(主演现状)写春节的作文我眼中的春节宝宝细菌感染发烧是怎么引起的和女朋友有隔阂怎么办和女朋友有隔阂怎么解决记住与春天有个约会卡耐基的句名言认真对待每一件事作文800字大学生产业化(由词目及其释义等构成的中文知识性百科条目)【歌词】有一点动心张信哲刘嘉玲歌手:台湾群星热闻聚热点网 铁皮石斛盆栽养护知识澳夫妇打造山寨版英国皇室引来如潮观者
©2025网站地图最近更新文明上网我要投诉