计算机视觉

VOT 2017挑战赛——目标追踪相关分享

不打扰是莪最后的温柔 提交于 2020-05-06 14:57:59
转载于微信公众号:新智元 视觉跟踪领域国际顶级赛事 Visual-Object-Tracking Challenge (VOT) 2017年结果出炉,结合传统滤波及深度学习的方案取得最佳成绩。本文是第二名北京邮电大学代表团队的技术分享。他们基于滤波的框架,抛弃传统特征,只使用CNN特征,减少了特征冗余,缓解了模型过拟合,使追踪器在速度和精度上都有不小的提高。代码分享链接:https://github.com/he010103/CFWCR.git 随着深度学习在计算机视觉方面大放异彩,近几年物体追踪也得到了飞速的发展。物体追踪解决的问题是在一段时间内对于同一个物体在复杂的背景下(如遮挡,光照,物体旋转等),进行持续高速的跟踪。因此,物体追踪是监控,安防,自动驾驶,无人机,智能家居等应用中必须解决的关键课题。 作为视觉跟踪领域的最高峰,Visual-Object-Tracking Challenge (VOT) 是国际目标跟踪领域最权威的测评平台,由伯明翰大学、卢布尔雅那大学、布拉格捷克技术大学、奥地利科技学院联合创办,旨在评测在复杂场景下单目标短时跟踪的算法性能。由于每年的评测序列都会更新,且标注的精确度一年一年提高,VOT竞赛也被视为视觉跟踪领域最难的竞赛,远远超过了其他数据集。因此,每年最好的追踪算法都会在上面一展拳脚,在激烈的比拼中擦出灵感的火花。 今年的比赛 VOT 2017

相机标定究竟在标定什么?[转]

二次信任 提交于 2020-05-05 14:59:24
相机标定可以说是计算机视觉/机器视觉的基础,但是初学者不易上手,本文将给读者整理一遍相机标定的逻辑,并在文末回答评论区提出的问题。分为以下内容: 相机标定的目的和意义 相机成像过程的简化与建模 针孔相机模型的数学描述 标定针孔相机模型的参数 相机标定的目的和意义 我们所处的世界是三维的,而照片是二维的,这样我们可以把相机认为是一个函数,输入量是一个场景,输出量是一幅灰度图。这个从三维到二维的过程的函数是不可逆的。 相机标定的目标是我们找一个合适的数学模型,求出这个模型的参数,这样我们能够近似这个三维到二维的过程,使这个三维到二维的过程的函数找到反函数。 这个逼近的过程就是「相机标定」,我们用简单的数学模型来表达复杂的成像过程,并且求出成像的反过程。标定之后的相机,可以进行三维场景的重建,即深度的感知,这是计算机视觉的一大分支。 相机成像过程的简化与建模 提到相机的成像,从根本上来说,就是在讨论相机的镜头。固定结构的相机镜头决定了一对固定的物像共轭关系,所谓「共轭」,意思是镜头前某个位置的物,它的像一定在镜头后的某个位置,这个关系是固定的。举个最简单的例子,无穷远处的物必然会在镜头的焦点处成像。这里说的固定结构,指的是镜头的焦距固定,光圈固定。 上图是Canon EF 85mm/F1.2L II USM,我们可以找一个与这个镜头具有相同的物像共轭关系的凸透镜来等效这个镜头

我所理解的卡尔曼滤波----转载

假装没事ソ 提交于 2020-05-05 14:13:26
文章总结不错,特此转载。20181121 原文见于: https://www.jianshu.com/p/d3b1c3d307e0 卡尔曼滤波在我当学生的时候就用过,但是当年我似乎就是套公式,没有理解其精髓,加之时间久了有点模糊,突然需要指导学生使用,有了强烈的陌生感觉,不得不逼自己再一次捡起。自己学会和教会别人是学习的两个层次,为了自我提高,也为了更好得指导学生。于是,我又翻出自己当年写的算法以及在网上找了些大神写的资料,进行融会贯通,总结提炼,希望稍微有点大学概率论的人能够看懂此文并熟练使用。 为了可以更加容易得理解卡尔曼滤波器,我们先回顾了基础的数学知识,然后采用形象的描述方法来讲解其算法本质,接着利用数学符号抽象出数学公式并进行归纳总结,最后给出计算机程序实现。希望初学者从头看到尾,循序渐进,具有较好数学功底者可直接看数学公式,实用主义者可直接拷贝源代码。 1.卡尔曼与其提出的滤波器 在学习卡尔曼滤波器之前,先搞懂“卡尔曼”是什么鬼?其实卡尔曼是人,而且还是一个现代的牛人!卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。 我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach

自动驾驶视觉融合-相机校准与激光点云投影

故事扮演 提交于 2020-05-04 21:52:06
点击 上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达 作者:william 链接:https://zhuanlan.zhihu.com/p/136263753 本文转载自知乎,作者已授权,未经许可请勿二次转载。 Camera Calibration and LIDAR Cloud Projection 多传感器融合一直是自动驾驶领域非常火的名词, 但是如何融合不同传感器的原始数据, 很多人对此都没有清晰的思路. 本文的目标是在KITTI数据集上实现激光雷达和相机的数据融合. 然而激光雷达得到的是3D点云, 而单目相机得到的是2D图像, 如何将3D空间中的点投影到图像平面上, 从而获得激光雷达与图像平面相交的区域, 是本文研究的重点. 其次本文会介绍相机这个大家常见的传感器, 以及讲解如何对相机进行畸变校准. Github: https://github.com/williamhyin/lidar_to_camera Email: williamhyin@outlook.com Camera Technology 针孔相机与透镜 人类最早的相机是针孔相机. 通过在目标物体之间放置一个带有微小开口(针孔)的光栅可以设计一个非常简单的相机. 物体发出的光穿过针孔并落在感光表面上, 该感光表面将光信息存储为图像. 之所以将针孔做得如此之小,

【python-opencv 】一、图像的加载与保存

北城余情 提交于 2020-05-04 19:23:29
1.准备工作 没学过Python... 我先参考了牛客网的Python教程: https://www.nowcoder.com/tutorial/10005/dc2c82d6557548beb0e2252869be13d8 (没看多少,不会再回来查) 首先装了个python   https://www.python.org/ 然后再cmd下输入  pip install opencv-python 还装了个IDE   PyCharm 2.读取和显示一张图片 import cv2 as cv img = cv.imread(" 1.png" ) # 读取图片 这里1.png和python文件在同一目录下 cv.imshow(" 1" ,img) # 显示图片  ""里面是窗口的名称 3.查阅的函数资料 imread函数 imread为image read的缩写,即图像读取的意思 【函数原型】cv2.imread(path_of_image, intflag) 参数1:需要读入图像的路径 参数2:标志以什么形式读入图像,可以选择一下方式: cv2.IMREAD_COLOR【1】: 加载彩色图像。任何图像的透明度都将被忽略。它是默认标志 cv2.IMREAD_GRAYSCALE【0】: 以灰度模式加载图像 cv2.IMREAD_UNCHANGED【-1】: 保留读取图片原有的颜色通道

Android OpenCV(二十二):边缘检测

▼魔方 西西 提交于 2020-05-04 18:59:47
边缘检测 什么是图像的边缘? 图像的边缘是图像最基本的特征之一。所谓边缘(或边沿)是指周围像素灰度有跳跃性变化或“屋顶”变化的那些像素的集合。边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域之间,因此它是图像分割依赖的重要特征。从本质上说,图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)的反应,它标志着一个区域的终结和另一个区域的开始。 检测出的边缘并不等同于实际目标的真实边缘。由于图像数据是二维的,而实际物体是三维的,从三维到二维的投影必然会造成信息的丢失,再加上成像过程中的光照不均和噪声等因素的影响,使得有边缘的地方不一定能被检测出来,而检测出的边缘也不一定代表实际边缘。 图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈。边缘上的这种变化可以用微分算子检测出来,通常用一阶或两阶导数来检测边缘。一阶导数认为最大值对应边缘位置,而二阶导数则以过零点对应边缘位置。 由于图像是离散的信号,我们可以用临近的两个像素差值来表示像素灰度值函数的导数,如下: 这种X轴方向求导方式对应于滤波器为[1, -1],对于Y轴方向则是[1, -1]的转置矩阵。 但是这种求导方式的计算结果最接近于两个像素中间位置的梯度,而两个像素之间是不存在像素的,因此,我们应该选取像素点的前后像素的差值来进行计算,如下: 此时

基于图像的单目三维网格重建

我们两清 提交于 2020-05-04 14:28:23
点击上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达 代码地址:https://github.com/ShichenLiu/SoftRas 论文题目:Soft Rasterizer: A Differentiable Renderer for Image-based 3DReasoning(CVPR2019) 概述 渲染通过模拟图像形成的物理过程来缩小二维视觉和三维场景之间的差距,通过反转这种渲染器,人们可以得到一种从二维图像中推断三维信息的学习方法。然而,光栅化阻止了渲染过程变成一个可微操作。 与目前最先进的可微渲染器不同,作者提出了一种真正可微的渲染框架,它可以直接使用可微函数渲染着色网格,并将有效的监督信号从不同的图像表示形式(包括轮廓、阴影和彩色图像)反向传播到网格顶点及其属性。 该框架的关键是一个新的公式,它将渲染视为一个聚合函数,将所有网格三角形关于渲染像素的概率贡献融合在一起并且使得框架能够将梯度流到被遮挡的和远距离的顶点,这是以前的技术所无法实现的。结果表明,利用该渲染器可以在质量和数量上对三维无监督单视图重建进行显著的改进。 简介 从二维图像中理解和重建三维场景和结构是计算机视觉的基本目标之一。基于图像的三维推理关键在于找到从像素到三维属性的足够监督。为了获得图像到三维的相关性,先验方法主要依赖于基于二维关键点 / 轮廓或形状 / 外观的匹配损失

python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学处理)

与世无争的帅哥 提交于 2020-05-04 12:11:10
  本篇博客接着讲解机器视觉的有关技术和知识。包括宽度测量,缺陷检测,医学处理。 一:宽度测量   在传统的自动化生产中,对于尺寸的测量,典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢,无法满足大规模的自动化生产需求。基于机器视觉的尺寸测量属于非接触式的测量,具有检测精度高、速度快、成本低、安装简便等优点。可以检测零件的各种尺寸,如长度、圆、角度、线弧等测量。   利用python+opencv方法可以进行宽度的测量。步骤是先选取出一个矩形,然后进行阈值分割,再进行反色,边缘提取之后进行点的选择,输出坐标做出两条线段,根据线段进行矩形绘制,这样之后就可以计算两条直线之间的距离,也就是我们需要求得的宽度。   OpenCV是一个c++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。配合python调用c++库,可以很方便地进行宽度测量,实现要求。   步骤如下: 1.导入需要的库 import cv2 import cv2 as cv import numpy as np import imutils 2.读取原图像查看 img = cv2.imread("1.jpg") 3.截取部分图像   手动地进行选取我们感兴趣的部分,然后截取出来。 img = imutils.resize(img, width=500) roi = cv2

你的厨房被水淹了!别担心,这只是3D深度估计做出的特效

拜拜、爱过 提交于 2020-05-04 10:50:24
还记得那个用论文外观判断论文质量的 研究 吗?在那份研究中,身为顶会领域主席的作者 Jia-Bin Huang 被自己开发的系统拒了稿,引来了大批社区成员的围观。最近,他和合作者提出了一项新的计算机视觉方法,可以让厨房「水漫金山」,让天空下起「彩球雨」…… 选自arXiv,作者:罗璇、Jia-Bin Huang等,机器之心编译,参与:魔王、张倩。 不止如此,想要猫主子不嫌弃自己拍的丑丑视频,这个方法也能拯救你! 这项研究由来自华盛顿大学、弗吉尼亚理工学院和 Facebook 的研究者合作完成。 其中第一作者罗璇现为华盛顿大学现实实验室博士,她本科毕业于上海交通大学,导师为卢宏涛教授,研究方向为立体匹配,曾在新加坡国立大学跟随颜水成钻研深度学习。 第二作者 Jia-Bin Huang 为弗吉尼亚理工学院助理教授,研究方向为计算机视觉、计算机图形学和机器学习。曾担任 WACV 2018、CVPR 2019、ICCV 2019、BMVC 2019 和 BMVC 2020 会议的领域主席。 这项研究主要探究了如何生成准确度和几何一致性更高的视频重建结果,目前该论文已被计算机图形学顶级会议 SIGGRAPH 2020 接收,代码也将在未来开源。 论文地址: https:// arxiv.org/pdf/2004.1502 1.pdf 项目网站: https:// roxanneluo

神童、数学家、抑郁症患者,控制论之父诺伯特·维纳的一生

不羁的心 提交于 2020-05-04 09:49:49
他是「控制论」之父,是 9 岁就读高中的神童,可以一手解一个方程。他先后涉足哲学、数学、物理学、工程学、生物学,但与此同时,他不记得自己车的颜色、不认得交谈数年的同事,甚至不记得自己有没有吃过午饭。这是一篇简短的传记文章,讲述了诺伯特·维纳的一生。 选自medium作者:jorgenveisdal,机器之心编译,参与:魔王、张倩、蛋酱。 「咱俩刚才见面的时候,我是要去教师餐厅还是刚从里边走出来?如果是刚从里边走出来,那我应该是吃过午饭了。」 美国数学家诺伯特·维纳(Norbert Wiener,1894–1964)被认为是一个非常古怪的人。 维纳 11 岁高中毕业进入塔夫茨大学;三年后获得数学学士学位;18 岁获得哈佛博士学位,博士论文主题是数理逻辑。作家 Sylvia Nasar 如此评价他: 「美国的冯洛伊曼,博学且具备强大的创造力,为纯粹数学做出了巨大贡献,在应用数学领域也成就了同样优秀的事业。」 维纳提出了控制论(探索调节系统的研究),从而赋予「feedback」以现代含义。控制论衍生出多个变革性子领域,如人工智能、计算机视觉、机器人学、神经科学等。 尽管维纳取得了卓越的职业成就,但他不同寻常的个性更为世人所铭记。根据其传记作者叙述,维纳在长达 30 年的时间里「像鸭子一样沿着麻省理工学院的走廊散步」。他是 MIT 最受好评也最知名的数学教授之一,尤其以「心不在焉」著称: