安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

PytorchRCNN进行多目标检测

1月25日 壹世缘投稿
  1说明
  1。1目标检测在pythonopencv(cv2)里占很大的比重,而目标检测当红网络肯定少不了RCNN家族。
  1。22014年,RBG(RossB。Girshick)使用RegionProposalCNN代替传统目标检测使用的滑动窗口手工设计特征,设计了RCNN框架,使得目标检测取得巨大突破,并开启了基于深度学习目标检测的热潮。
  1。3FastRCNN就是在RCNN的基础上采纳了SPPNet方法,对RCNN作了改进,使得性能进一步提高,让人们看到了RegionProposalCNN这一框架实时检测的希望。
  1。4FasterRCNN最新进展。
  RCNN(SelectiveSearchCNNSVM)
  SPPnet(ROIPooling)
  FastRCNN(SelectiveSearchCNNROI)
  FasterRCNN(RPNCNNROI)
  总的来说,从RCNN,SPPNET,FastRCNN,FasterRCNN一路走来,基于深度学习目标检测的流程变得越来越精简,精度越来越高,速度也越来越快。可以说基于regionproposal的RCNN系列目标检测方法是当前目标检测技术领域最主要的一个分支。
  2准备
  2。1环境:python3。8deepinlinux操作系统微软编辑器vscode。
  2。2切记:opencv4。2。0torch1。5。1(注意版本,否则报错)。
  2。3图片来源:今日头条正版免费图库,效果图。
  2。4进行多目标检测,适当修改,提高可调试性,注意事项已经交代。
  代码:1。py执行1。jpeg图片(threshold0。8)
  代码:1。py执行2。jpeg图片(threshold0。5)
  3代码1。py
  3。1来源https:github。comspmallicklearnopencv,对其代码进行删除,修改,注释,修复bug,调试和注意事项。
  3。2代码头注释部分Pytorch使用FasterRCNN进行目标检测复杂性多种物体的目标检测注意版本查询opencv版本importcv2cv2。versionopencv4。2。0本机终端输入python3。81。py
  3。3完整代码1。py第1步:导入模块importcv2importnumpyasnpimporttorchimporttorchvisionimporttorchvision。transformsasT第2步:模型加载使用的是FasterRCNNResNet50预训练模型。下载预训练模型,Resnet50FasterRCNN,带有训练好的权重参数。modeltorchvision。models。detection。fasterrcnnresnet50fpn(pretrainedTrue)不启用BatchNormalization和Dropout,保证BN和dropout不发生变化,pytorch框架会自动把BN和Dropout固定住,不会取平均,而是用训练好的值model。eval()第3步:识别内容可识别内容,注意顺序不能调动和NA不能删除COCOINSTANCECATEGORYNAMES〔background,person,bicycle,car,motorcycle,airplane,bus,train,truck,boat,trafficlight,firehydrant,NA,stopsign,parkingmeter,bench,bird,cat,dog,horse,sheep,cow,elephant,bear,zebra,giraffe,NA,backpack,umbrella,NA,NA,handbag,tie,suitcase,frisbee,skis,snowboard,sportsball,kite,baseballbat,baseballglove,skateboard,surfboard,tennisracket,bottle,NA,wineglass,cup,fork,knife,spoon,bowl,banana,apple,sandwich,orange,broccoli,carrot,hotdog,pizza,donut,cake,chair,couch,pottedplant,bed,NA,diningtable,NA,NA,toilet,NA,tv,laptop,mouse,remote,keyboard,cellphone,microwave,oven,toaster,sink,refrigerator,NA,book,clock,vase,scissors,teddybear,hairdrier,toothbrush〕第4步:定义预测函数defgetprediction(imgpath,threshold):imgcv2。imread(imgpath)transformT。Compose(〔T。ToTensor()〕)imgtransform(img)predmodel(〔img〕)predclass〔COCOINSTANCECATEGORYNAMES〔i〕foriinlist(pred〔0〕〔labels〕。numpy())〕修改np。int32,原来打印出np。floatpredboxes〔〔(np。int32(i〔0〕),np。int32(i〔1〕)),(np。int32(i〔2〕),np。int32(i〔3〕))〕foriinlist(pred〔0〕〔boxes〕。detach()。numpy())〕predscorelist(pred〔0〕〔scores〕。detach()。numpy())predt〔predscore。index(x)forxinpredscoreifxthreshold〕〔1〕predboxespredboxes〔:predt1〕predclasspredclass〔:predt1〕returnpredboxes,predclass第5步:定义目标检测函数defobjectdetectionapi(imgpath,threshold0。5,rectth2,textsize1,textth2):调用预测函数,获取框和识别名boxes,predclsgetprediction(imgpath,threshold)读取图片imgcv2。imread(imgpath)foriinrange(len(boxes)):绿色框cv2。rectangle(img,boxes〔i〕〔0〕,boxes〔i〕〔1〕,color(0,255,0))红色识别物体名称cv2。putText(img,predcls〔i〕,boxes〔i〕〔0〕,cv2。FONTHERSHEYSIMPLEX,textsize,(0,0,255))显示结果cv2。imshow(out,img)cv2。waitKey(0)cv2。destroyAllWindows()第6步:指定图片启动目标检测默认threshold0。5,也可以修改objectdetectionapi(。1。jpeg,threshold0。8)objectdetectionapi(。2。jpeg,threshold0。5)
  以上仅仅只能对图片进行多目标检测,档次有点低
  高级一点,全套功能:图片、摄像头实时和视频文件mp4
  4全套功能代码2。py
  4。1头文件注释和代码来源:coding:utf8CreatedonThuJul3008:47:122020author:Johnsonhttps:blog。csdn。netzhonglongshenarticledetails107682640?utmmediumdistribute。pcrelevant。nonetaskblogBlogCommendFromBaidu7。controldepth1utmsourcedistribute。pcrelevant。nonetaskblogBlogCommendFromBaidu7。control对其代码进行删除,修改,注释,修复bug,调试和注意事项。本机终端输入python3。82。py
  4。2coco。names文件内容,注意去除引号和逗号
  4。3完整代码2。py第1步:模块导入importnumpyasnpimportcv2importtorchimporttorchvisionfromtorchvisionimporttransforms第2步:打开文件coco。names将代码1的目标识别名放入coco。names中withopen(。coco。names)asf:获取类别名称coconames〔line。strip()forlineinf。readlines()〕第3步:加载模型在torchvision框架可以直接加载预训练模型modeltorchvision。models。detection。fasterrcnnresnet50fpn(pretrainedTrue)model。eval()将图片变成Tensor,并且把数值normalize到〔0,1〕transformtransforms。Compose(〔transforms。ToTensor()〕)第4步:图片检测函数定义,功能1deffasterrcnndetection(path):imagecv2。imread(path)blobtransform(image)c,h,wblob。shapeinputxblob。view(1,c,h,w)outputmodel(inputx)〔0〕这里如果是GPU。cuda()boxesoutput〔boxes〕。cpu()。detach()。numpy()scoresoutput〔scores〕。cpu()。detach()。numpy()labelsoutput〔labels〕。cpu()。detach()。numpy()index0forx1,y1,x2,y2inboxes:大于0。9比较好,太小要识别过多不精准,误识别类似与代码1的threshold0。6ifscores〔index〕0。6:框的颜色等设置cv2。rectangle(image,(np。int32(x1),np。int32(y1)),(np。int32(x2),np。int32(y2)),(0,255,0),1,8,0)labelidlabels〔index〕labeltxtcoconames〔labelid〕文字的颜色等设置将字体1。0改为2。0将1改为2,未报错cv2。putText(image,labeltxt,(np。int32(x1),np。int32(y1)),cv2。FONTHERSHEYPLAIN,2。0,(0,0,255),2)index1cv2。imshow(FasterRCNNDetectionDemo,image)cv2。waitKey(0)cv2。destroyAllWindows()第5步:视频检测函数定义,功能2defvideodetection(path):capturecv2。VideoCapture(path)循环whileTrue:while(capture。isOpened()):whilecv2。waitKey(1)0:ret,framecapture。read()ifretTrue:视频翻转framecv2。flip(frame,1)0颠倒,1翻转一下blobtransform(frame)c,h,wblob。shapeinputxblob。view(1,c,h,w)outputmodel(inputx)〔0〕这里如果是GPU。cuda()boxesoutput〔boxes〕。cpu()。detach()。numpy()scoresoutput〔scores〕。cpu()。detach()。numpy()labelsoutput〔labels〕。cpu()。detach()。numpy()index0forx1,y1,x2,y2inboxes:大一些,否则漏识别ifscores〔index〕0。5:框的颜色等设置cv2。rectangle(frame,(np。int32(x1),np。int32(y1)),(np。int32(x2),np。int32(y2)),(0,255,0),1,8,0)labelidlabels〔index〕labeltxtcoconames〔labelid〕文字的颜色等设置cv2。putText(frame,labeltxt,(np。int32(x1),np。int32(y1)),cv2。FONTHERSHEYPLAIN,1。0,(0,0,255),1)index1wkcv2。waitKey(1)ifwk27:breakcv2。imshow(videodetection,frame)摄像头检测函数videodetection(0)视频文件检测videodetection(。video。mp4)图片检测函数fasterrcnndetection(。1。jpeg)
  5小bug
  视频保存未成功!大家可以加油。总之比较完美。
投诉 评论

昨夜我回到了故乡日有所思,夜有所梦。昨天才和二姐说起女儿,担心她一边要工作,一边要准备考公务员;我们不在身边,她回家得自己做饭吃,很是辛苦,想说喊她来这边做事,可女儿不愿意过来。家里和孩……吴尊陈小春杜江晒娃车祸现场!你有没有中招?2012年4月,微信发布了4。0版本。这个版本有一个非常大的功能更新,从此奠定了微信的移动互联网巨头地位。这个功能,叫做朋友圈。发展到现在,朋友圈已经成为了我们生活……猎豹被鬣狗逼到树上,二兄弟无路可走上树焦急等待,鬣狗我太难这两只可爱的小豹子刚来到这个世界三个月左右的时间,出于对世界强烈的好奇感,它们仍旧沉迷在鲜花绿草中。妈妈在一旁睡觉,兄弟俩在一旁大吵大闹,因为年龄太小,经历很少,它们对危险毫无……中医小知识,身上两处养生窝今天为大家介绍两个身体上的养生保健的窝。经常按摩这两个地方,会有意想不到的养生效果哦,我们一起看看吧。颈窝:常点按可补益肺气锁骨三角即锁骨下窝,位于锁骨中段下方2厘……爷爷奶奶不能代替父母,家长要拒绝隔代教育,别把孩子养废了随着时代的发展,女性对于工作需求变得越来越高。独立女性的呼声很高,导致家庭主妇的比例在下降。很多母亲已经分身乏术,没有那么多的精力可以照顾自己的儿女了,所以可能会请孩子的……口腔里这些牙一定要拔,不能留陆博,口腔医学博士,苏州口腔医院副主任医师,擅长美学正畸。热衷于用简单浅显的文字,为您打开口腔知识大门,欢迎关注。世界上有几类牙,总是令人难以捉摸。你觉得它可以拔除……宝宝俩月加1睡觉宝宝起初住院回家是单独睡小床的,婆婆有点不满,觉得我不够疼爱宝宝,这么小就让独立睡觉,但也并无强求。我自己主要担心夜里睡觉碰到宝宝,也想培养她独立睡觉的习惯,就一直给她睡小床。……佳片有约电话谋杀案金无足赤人无完人,是不是说这个世界上就没有完美的存在呢?今天给大家安利一部好看的悬疑影片《电话谋杀案》,影片讲述的是关于一场近乎完美谋杀的故事。影片拍摄于1954年……PytorchRCNN进行多目标检测1说明1。1目标检测在pythonopencv(cv2)里占很大的比重,而目标检测当红网络肯定少不了RCNN家族。1。22014年,RBG(RossB。Girshi……孩子跟谁睡就跟谁亲,是真的吗?1hr刚开始有人跟钧妈说:是不是孩子跟谁睡就会跟谁更亲?钧妈还只是觉得这是一个麻麻的正常提问。然后,钧妈稍微搜了下孩子跟谁睡这个话题,就发现问题大了:1hr原来在那……一次遗失手机的经历,见证华为的担当放假最后一天,约了爷爷奶奶一起带俩娃出去玩。用高德打车,到达目的地下车,车开走后,发现自己的背包和打车用的手机都落在了车上。这就是昨天的开篇。第一时间拨打110,寻……如果多读书就不会这样了静静初中没毕业就出来工作了,倒不是家里不让读,是她自己读不下去了。静静虽然是农村女孩,可是皮肤细白,眉眼明亮,像极了城市的人,一同的小伙伴都羡慕的嫉妒了,可是没办法,农活一样干……
7个视力关键期,不同时期应关注哪些眼健康问题?警方护送迷路孩子回家,却意外发现残忍的父母犯了大案错换里的你儿和我儿抑郁家庭恢复的日常(三十八)儿童故事可以开启宝宝的思维和想象大门14岁全红婵夺冠荣誉背后是刻苦训练孩子到底啥时候可以睡整觉?宝妈不干涉吃夜奶到2岁后果咋样?她成了一个人见人烦的泼妇,可是却疗愈了自己的抑郁症父母要时刻保持威严?与孩子相处的几个误区,家长都知道吗?有一种绝望叫孩子是汗做的,宝宝怎么这么爱出汗?为了孩子你做了哪些方面的自我提升?刘德华过分了在天朝,爱情是一种病你知道汉族传统婚俗的禁忌吗在金融科技的赋能之下,作为金融科技企业的数禾科技争当排头兵清浅流年教你画超级简单的蚂蚁双宝记企业家价值几何女人为什么会喜欢有点坏坏的男人白领女性10大健康杀手校园经典求爱情书微信朋友圈18岁是什么梗,吴磊引发怀旧热潮90后都老了峨眉山八月旅游攻略旅游攻略峨眉山八月褪去造句用褪去造句大全

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利