纠纷奇闻作文社交美文家庭
聚热点
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

使用OpenCVPython检测对象

4月16日 听雨眠投稿
  使用OpenCVPython检测对象ObjectDetectionTwostage目标检测算法Onestage目标检测算法HaarCascadesexample1example2SSDRetinaNetRCNNFastrcnnFasterRCNNMaskRCNNyoloReference使用OpenCVPython检测对象
  OpenCV是用于计算机视觉、机器学习和图像处理的庞大开源库,现在它在实时操作中发挥着重要作用,这在当今的系统中非常重要通过使用它,人们可以处理图像和视频以识别物体、面部,甚至是人类的笔迹。本文重点介绍检测对象。ObjectDetection
  对象检测是一种与计算机视觉、图像处理和深度学习相关的计算机技术,用于检测图像和视频中的对象实例
  目标检测算法的任务是找出图像中所有感兴趣的目标(物体),确定他们的类别和位置。
  计算机视觉中的图像分类获取图像并预测图像中的对象,而对象检测不仅可以预测对象,还可以根据边界框找到它们的位置。例如,当我们构建游泳池分类器时,我们获取输入图像并预测它是否包含游泳池,而对象检测模型也会告诉我们游泳池的位置。
  分类和物体检测的区别?
  假设图像中最多有一个类和一个对象,那么对象检测模型的输出应该包括:存在物体的概率边界框的高度边界框的宽度边界框中心点的水平坐标边界框中心点的纵坐标这只是指定输出的约定之一,不同的模型和实现可能有不同的格式,但是思路是一样的,都是输出物体的概率和位置。
  2。为什么滑动窗口方法不起作用?很自然地想到在图像分类模型之上构建对象检测模型。一旦我们有了一个好的图像分类器,检测对象的一种简单方法是在图像上滑动一个窗口,然后对该窗口中的图像(图像的裁剪区域)是否属于所需类型进行分类。听起来很简单!好吧,至少有两个问题:您如何知道窗口的大小以使其始终包含对象?不同类型的对象(棕榈树和游泳池),即使是相同类型的对象(例如小型建筑物和大型建筑物)也可以具有不同的大小。纵横比(边界框的高宽比)。许多物体可以以各种形状存在,例如建筑物的占地面积与棕榈树的纵横比不同。为了解决这些问题,我们必须尝试不同大小形状的滑动窗口,这是非常计算密集的,尤其是对于深度神经网络。
  在实践中,主流的目标检测算法有两种:Twostage目标检测算法
  首先识别预计会找到对象的区域,然后使用卷积网络仅在这些区域中检测对象。先进行区域生成(regionproposal,RP)(一个可能包含待检测物体的预选框),再通过卷积神经网络进行样本分类。任务:特征提取生成RP分类定位回归。常见Twostage目标检测算法有:RCNN、SPPNet、FastRCNN和RFCN等。Onestage目标检测算法
  另一方面,像YOLO(YouOnlyLookOnce)〔1〕和SSD(SingleShotDetector)〔2〕等算法使用完全卷积的方法,其中网络能够一次找到图像中的所有对象(因此通过卷积网络单次拍摄或看一次不用RP,直接在网络中提取特征来预测物体分类和位置。任务:特征提取分类定位回归。常见的onestage目标检测算法有:OverFeat、YOLOv1、YOLOv3、SSD和RetinaNet等。
  HaarCascades
  Haar特征选择类似Haar的特征由暗区和亮区组成。它通过取暗区域强度之和与亮区域强度之和的差来产生单个值。这样做是为了提取识别对象所需的有用元素。viola和jones提出的特征是:
  创建积分图像(IntegralImages)积分图像中的给定像素是左侧所有像素及其上方所有像素的总和,由于提取Haarlike特征的过程涉及计算暗矩形区域和亮矩形区域的差异,积分图像的引入显着减少了完成此任务所需的时间AdaBoostTraining该算法从所有特征中选择最佳特征,它将多个弱分类器(最佳特征)组合成一个强分类器,生成的强分类器基本上是所有弱分类器的线性组合。级联分类器(CascadeClassifier)它是一种将越来越复杂的分类器(如AdaBoost)组合在级联中的方法,它允许快速丢弃负输入(非人脸),同时在有希望或正人脸区域上花费更多计算。它显着减少了计算时间并提高了处理效率。example1
  Openinganimageimportcv2frommatplotlibimportpyplotaspltOpeningimageimgcv2。imread(image。jpg)OpenCVopensimagesasBRGbutwewantitasRGBandwealsoneedagrayscaleversionimggraycv2。cvtColor(img,cv2。COLORBGR2GRAY)imgrgbcv2。cvtColor(img,cv2。COLORBGR2RGB)Createstheenvironmentofthepictureandshowsitplt。subplot(1,1,1)plt。imshow(imgrgb)plt。show()
  Recognition我们将使用OpenCV的detectMultiScale()函数来识别大符号和小符号:UseminSizebecausefornotbotheringwithextrasmalldotsthatwouldlooklikeSTOPsignsfoundstopdata。detectMultiScale(imggray,minSize(20,20))Dontdoanythingiftheresnosignamountfoundlen(found)ifamountfound!0:Theremaybemorethanonesignintheimagefor(x,y,width,height)infound:Wedrawagreenrectanglearoundeveryrecognizedsigncv2。rectangle(imgrgb,(x,y),(xheight,ywidth),(0,255,0),5)importcv2frommatplotlibimportpyplotaspltOpeningimageimgcv2。imread(image。jpg)OpenCVopensimagesasBRGbutwewantitasRGBWellalsoneedagrayscaleversionimggraycv2。cvtColor(img,cv2。COLORBGR2GRAY)imgrgbcv2。cvtColor(img,cv2。COLORBGR2RGB)UseminSizebecausefornotbotheringwithextrasmalldotsthatwouldlooklikeSTOPsignsstopdatacv2。CascadeClassifier(stopdata。xml)foundstopdata。detectMultiScale(imggray,minSize(20,20))Dontdoanythingiftheresnosignamountfoundlen(found)ifamountfound!0:Theremaybemorethanonesignintheimagefor(x,y,width,height)infound:Wedrawagreenrectanglearoundeveryrecognizedsigncv2。rectangle(imgrgb,(x,y),(xheight,ywidth),(0,255,0),5)Createstheenvironmentofthepictureandshowsitplt。subplot(1,1,1)plt。imshow(imgrgb)plt。show()
  example2
  OpenCV带有许多预训练的分类器。这些XML文件可以通过cv2模块的cascadeClassifier方法加载。在这里,我们将使用haarcascadefrontalfacedefault。xml来检测人脸。importcv2frommatplotlibimportpyplotaspltloadingtheimageimgcv2。imread(。imgfootballteam。png)convertingtheimagetograyscale最初,图像是三层图像(即RGB),因此将其转换为一层图像(即灰度)。grayimgcv2。cvtColor(img,cv2。COLORBGR2GRAY)加载所需的haarcascadeXML分类器文件cv2模块中的CascadeClassifier方法支持加载haarcascadeXML文件要haarcascadefrontalfacedefault。xml进行人脸检测。haarcascadecv2。CascadeClassifier(。imghaarcascadefrontalfacedefault。xml)Applyingthefacedetectionmethodonthegrayscaleimage在灰度图像上应用人脸检测方法这是使用cv2::CascadeClassifier::detectMultiScale方法完成的,该方法返回检测到的人脸的边界矩形(即x、y、w、h)。它有两个参数,即scaleFactor和minNeighbors。ScaleFactor确定窗口大小的增加因子,最初从大小minSize开始,并且在测试了该大小的所有窗口之后,窗口被scaleFactor放大,窗口大小上升到maxSize。如果scaleFactor很大,(例如,2。0),步骤会更少,所以检测会更快,但我们可能会错过大小在两个测试尺度之间的对象。(默认比例因子为1。3)。minNeighbors的值越高,误报的数量就越少,在人脸错误检测方面的错误也就越少。但是,也有可能遗漏一些不清楚的面部痕迹。facesrecthaarcascade。detectMultiScale(grayimg,scaleFactor1。1,minNeighbors9)Iteratingthroughrectanglesofdetectedfaces遍历检测到的人脸的矩形通过cv2模块的rectangle方法通过迭代所有检测到的人脸,在检测到的人脸周围绘制矩形。for(x,y,w,h)infacesrect:cv2。rectangle(img,(x,y),(xw,yh),(0,255,0),thickness2)cv2。imshow(Detectedfaces,img)cv2。waitKey(0)plt。subplot(1,1,1)plt。imshow(img)plt。show()
  input:
  output:
  ps:我们假设您对卷积神经网络(CNN)概念有一些基本了解。您可以通过阅读这篇简短的论文深度学习卷积算法指南来更新您的CNN知识SSD
  SSD是一个统一的单一网络目标检测框架。
  RetinaNet
  RetinaNet是最好的单阶段目标检测模型之一,已被证明可以很好地处理密集和小规模目标。因此,它已成为一种流行的对象检测模型,可用于航空和卫星图像。RCNN
  RCNN(具有卷积神经网络的区域)架构是多种算法的组合。它首先使用选择搜索算法来选择2000个可能包含对象的区域建议。这些区域提议或感兴趣区域(RoI)中的每一个都通过卷积网络进行处理以获得特征图。然后将特征图传递给SVM模型以对对象类进行分类,并传递给回归模型以获得紧密的边界框〔2〕。这种方法在当时虽然新颖,但速度极慢预训练模型。选择一个预训练模型(pretrained)神经网络(如AlexNet、VGG)。重新训练全连接层使用需要检测的目标重新训练(retrain)最后全连接层(connectedlayer)。提取prosals并计算CNN特征。利用选择性搜索(SlectiveSearch)算法提取所有prosals(大约2000幅images),调整(resizewarp)它们固定大小,以满足CNN输入,然后将featuremap保存到本地磁盘。训练SVM。利用featuremap训练SVM来对目标和背景进行分类(每个类一个二进制SVM)。边界框回归(BoundingboxesRegression)。训练将输出一些校正因子的线性回归分类器。
  Fastrcnn将原图上的提议框按照几何比例缩放到特征图上利用RoIPooling将不同尺寸的特征图变换到相同大小最后基于相同尺寸的特征图进行分类和回归。FastRCNN是对RCNN的改进。在这个模型中,不是将2000个区域中的每一个都输入到单独的CNN中,而是将整个图像输入到单个CNN中。这导致所有感兴趣区域的组合特征图。使用类似于RCNN中使用的算法来选择区域建议。一个RoI池化层用于提取所有候选区域的特征图并将其调整为相同大小。然后将其传递到具有两个分支的全连接层一个softmax分类器为每个类提供概率,一个边界框回归器用于精确的边界框坐标〔3〕。与RCNN相比,这种设计加快了目标检测任务,但仍不足以处理大型数据集。FasterRCNN
  在FasterRCNN出现之前,它的同时代人一直在使用各种算法进行区域提议,这些算法在CPU上进行计算并造成瓶颈。FasterRCNN通过将FastRCNN中的选择搜索算法替换为称为区域提议网络(RPN)的卷积网络来改进对象检测架构。模型架构的其余部分与FastRCNN相同图像被馈送到CNN以生成特征图,RPN提出的区域的特征从中被选择并由池化层调整大小并馈送到FC层有两个头,一个softmax分类器和一个边界框回归器。这种设计提高了检测速度并使其更接近实时输入、数据预处理。首先,假设样本图片image,尺寸大小QP,将其输入FasterRCNN网络,然后进行resize操作,处理图片的尺寸到HW,适应模型要求。Convlayers(backbone提取特征)。FasterRCNN可以采用多种的主干特征提取网络,常用的有VGG,Resnet,Xception等等。该featuremaps被共享用于后续RPN层和全连接层。也就是使用共享的卷积层为全图提取特征。RegionProposalNetworks。RPN网络用于生成regionproposals(目标候选区域)。将RPN生成的候选框投影到特征图上获得相应的特征矩阵。该层通过softmax判断anchors(锚)属于前景或者背景,再利用boundingboxregression修正anchors获得精确的proposals。RoIPooling。该层收集输入的featuremaps和proposals,将每个特征矩阵缩放到77大小的特征图,综合这些信息后提取proposal和featuremaps,送入后续全连接层判定目标类别。Classifier。通过全连接层得到最后的概率,计算得到类别,同时再次boundingboxregression获得检测框最终的精确位置。尤其注意的是,FasterRCNN真正实现了端到端的训练(endtoendtraining)。MaskRCNN
  (。。。。)yolo
  YOLO(YouOnlyLookOnce)是最受欢迎的对象检测模型系列之一。它的优势在于提供实时检测,同时接近最先进的对象检测模型的准确性。在早期的目标检测工作中,模型要么使用滑动窗口技术,要么使用区域提议网络。滑动窗口,顾名思义,通过在图像上滑动窗口来选择感兴趣区域(RoI),然后在所选RoI中执行分类以检测对象。
  区域提议网络分两步工作首先,它们提取区域提议,然后使用CNN特征对提议的区域进行分类。滑动窗口方法不是很精确和准确,尽管一些基于区域的网络可以非常准确,但它们往往速度较慢。随后出现了SSD、YOLO和RetinaNet等一次性目标检测器。这些模型在图像的单次通过中检测对象,因此速度更快,并且可以匹配基于区域的检测器的准确性。SSD指南解释了一次性目标检测模型的基本组成部分。您还可以在此处阅读RetinaNet指南。这些模型已经是ArcGISAPIforPython的一部分,并且YOLOv3的添加在我们的深度学习工具箱中提供了另一个工具。arcgis。learn中YOLOv3的最大优势在于它预加载了在COCO数据集上预训练的权重。这使得它可以立即用于作为COCO数据集一部分的80个常见对象(汽车、卡车、人等)
  ReferenceAguidetoconvolutionarithmeticfordeeplearningFastRCNNRapidObjectDetectionusingaBoostedCascadeofSimpleFeaturesComputerVisionandPatternRecognitionSSD:SingleShotMultiBoxDetectorcode:https:github。comweiliu89caffetreessdPPT:http:www。cs。unc。eduwliupapersssdeccv2016slide。pdfRetinaNetFocalLossforDenseObjectDetectioncode:https:github。comfacebookresearchDetectronYOLOv3ObjectDetectorYouOnlyLookOnce:Unified,RealTimeObjectDetectionYOLO9000:Better,Faster,StrongerRichfeaturehierarchiesforaccurateobjectdetectionandsemanticsegmentationFastRCNNTowardsRealTimeObjectDetectionwithRegionProposalNetworksdarknetopencvcascadeclassifiertrainingFasterRCNNObjectDetector一文读懂FasterRCNN目标检测之FasterRCNNFasterRCNN详解code:https:github。comrbgirshickpyfasterrcnnFasterRCNN:TowardsRealTimeObjectDetectionwithRegionProposalNetworks
投诉 评论 转载

刘强东与初恋罕见同框!女方成熟知性大方,站一起比奶茶更像夫妻近日,刘强东又上了热搜。这次热搜无关明州X侵案,而是他和初恋的瓜。在曝光的照片中,刘强东和初恋罕见同框。只见刘强东一身西装,手插着裤兜,对着镜头微笑,他……yeezy350黑天使搭配什么裤子好看椰子黑天使配什么袜子椰子350黑天使是一双非常火的配色,也是今年yeezy350系列的一个重磅款,很多朋友入手之后都不知道应该怎么搭配,一起来看看yeezy350黑天使怎么搭配裤子和袜子吧。yee……董洁对黄梅莹说您和我一起穿旗袍演母女吧!如果让你在所有演员中选出两个人演母女,你会选谁呢?另外,还有一个要求,那就是这两位还都必须是穿旗袍都好看的女神。你首先想到的是谁?应该是黄梅莹和董洁吧!那说明你的眼光和导……春日限定浪漫,枫林花海郁金香惊艳绽放春天是远道而来的浪漫,而郁金香是春天最浪漫的文案不知从何时起,每过一段时间郁金香就会刮起一阵潮流。短视频的拍照教程,朋友圈的打卡照但这并非无迹可寻……脖子粗戴什么项链好看脖子粗的人适合戴什么项链脖子粗的女生在选择项链的时候往往会比较困难,一般来说,在选择项链的时候形状、长度和粗细都是非常重要的,这些都会影响到佩戴的效果。脖子粗戴什么项链好看脸大脖子粗,最重要的就……朱之文带儿子去相亲,女方比陈亚男强,网友劝朱之文不要过于着急近日,一段朱之文带儿子朱小伟相亲的视频在网上迅速传开,之前陈亚楠还否认和朱小伟分手,这则视频是确实了朱小伟和陈亚楠分手的消息了。即使是这样,陈亚楠还要蹭大衣哥的热度,把朱……男士花衬衫什么款式好看男生花衬衫搭配图片对于很多男生来说,其实花衬衫都是不敢挑战的单品,但其实像度假的时候,穿上一身花衬衫是十分好看的,下面小编就来给大家推荐几款好看的花衬衫吧。花卉植物衬衫首先要推荐的花衬衫就……balenciaga巴黎世家2018度假系列怎么样好看吗?balenciaga这几年被娱乐圈的明星给穿的非常火,她家的很多都是爆款,这次又带来了一批新款,都非常好看。下面5号网小编带大家看看balenciaga巴黎世家2018度假系列……施华洛世奇黑天鹅项链断了怎么办黑天鹅项链断了能修吗施华洛世奇黑天鹅项链是她家的经典款了,不过有不少人反应在佩戴的过程中出现了断掉的情况,这个时候要赶紧拿去施华洛世奇专柜或者是外面的首饰维修店去进行维修。施华洛世奇黑天鹅项链断了……广东三市一旦合并,有望诞生第二个深圳,晋级万亿城市随着中国经济的飞速发展,不少城市正逐渐走向繁荣。而在这些城市中,广东省的珠海、中山和江门市更是颇具发展潜力。这三个城市地理位置相邻,如果进行合并,有望诞生第二个深圳,晋级万亿城……nikelittlepositeonespacejam大灌篮nikelittlepositeonespacejam是耐克喷泡系列带来的又一个爆款,这双被称为大灌篮喷的球鞋设计的非常有特色,很值得我们期待。下面5号网小编给大家讲讲nike……使用OpenCVPython检测对象使用OpenCVPython检测对象ObjectDetectionTwostage目标检测算法Onestage目标检测算法HaarCascadesexample1example……
秋季时尚单品搭配穿的简单点回头多一点国庆爆赞的发圈文案简约时尚紧身裤打造优雅女人,精致而且洋气秋冬季节打造复古时髦造型质感鹿皮单品穿出时尚瞭望元宇宙真正的游戏元宇宙还有多遥远?秋款呢子大衣美搭简约干练总有一款让你心动内搭外穿都时尚又甜美的刺绣圆领灯笼袖毛衣(图)纯色开叉大衣这样搭配彰显时尚优雅与知性(图)时尚套装毛呢连衣裙穿上它优雅气质出众冬季必备3大时尚单品穿上时髦指数直线飙升可爱时尚个性气质毛衣演绎秋日别样的时尚风情优美生态环境引来神秘贵客反嘴鹬落户杭州西溪
下周生肖地运势(属牛今日运势)玉米病虫害防治技术措施风起霓裳原著小说的结局是什么揭秘哈克尼海盗:教育是场欢乐的大冒险基于的供应链管理优化分析背上梦想启程初二作文普通零食吃腻了来一波轻盈爽口零食吧每天来头条写东西有什么好处?人脉财富宝典慷慨大气结交朋友造就亿万富翁简单易学的减肥动作有哪些经常反酸烧心嘴巴臭,不一定是胃病,大多可能性是幽门螺杆菌怎样做有助于自然分娩

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形