Tag: 计算机视觉

改变训练的图像训练neural network

我目前正试图制定一个计划,根据其外观区分腐烂的橙子和食用橙子。 为了做到这一点,我正计划使用卷积neural network来训练腐烂的橙子和普通的橙子。 经过一番search,我只能find约一个数据库。 黑色背景上的150个橙子和150个普通橙子( http://www.cofilab.com/downloads/ )。 显然,一个机器学习模式将需要至less几千个桔子才能达到90%左右的精度。 但是,我可以通过某种方式改变这150个橙子来制作更多的橘子照片吗? 通过改变,我的意思是在柑橘类水果上添加不同的橙色色调,以形成“不同的橙色”。 这是否是训练neural network的有效方法?

我如何检测和跟踪使用OpenCV的人?

我有一个静止的相机,指向室内的地方。 人们会在相距约5米的地方走过相机。 使用OpenCV ,我想要检测个体走过去 – 我理想的返回是一个检测到的个人数组,边界矩形。 我看了几个内置的示例: 没有一个Python样本真的适用 C blob跟踪样本看起来很有前景,但不接受实况video,这使testing变得困难。 这也是最复杂的示例,提取相关知识并将其转换为Python API有问题。 C'motempl'样本也看起来很有前景,因为它可以从后续的video帧中计算出轮廓。 据推测,我可以使用它来find强连通的组件,并提取单个斑点和边界框 – 但我仍然试图找出一种方法来识别在随后的帧中发现的斑点作为相同的斑点。 任何人都可以提供指导或样本做这个 – 最好在Python ?

深信仰networking与卷积neural network

我是neural network领域的新手,我想知道Deep Belief Networks和Convolutional Networks之间的区别。 另外,还有深度卷积networking是深信与卷积neural network的结合吗? 这是我迄今为止收集的。 如果我错了,请纠正我。 对于图像分类问题, Deep Beliefnetworking有很多层次,每个层次都是使用贪心层次策略进行训练的。 例如,如果我的图片大小是50 x 50,并且我想要一个包含4个图层的深度networking input层 隐藏层1(HL1) 隐藏层2(HL2) 输出层 为了训练input层和HL1之间的权重(W1),我的input层将有50 x 50 = 2500个神经元,HL1 = 1000个神经元(比方说),HL2 = 100个神经元(比方说),输出层= 10个神经元。使用自动编码器(2500 – 1000 – 2500),并学习大小为2500 x 1000的W1(这是无监督学习)。 然后,我通过第一个隐藏层向前馈送所有图像以获得一组特征,然后使用另一个自动编码器(1000 – 100 – 1000)获取下一组特征,最后使用softmax图层(100 – 10)进行分类。 (只学习最后一层的权重(HL2 – 作为softmax层的输出)是监督学习)。 (我可以使用RBM代替autoencoder)。 如果使用卷积neural network解决同样的问题,那么对于50×50的input图像,我将只使用7×7的补丁(比如说)来开发一个networking。 我的层将是 input层(7 x 7 = 49个神经元) HL1(25个不同特征的25个神经元) […]

在cv :: solvePnP的世界坐标中的摄像机位置

我有一个校准摄像机(固有的matrix和失真系数),我想知道相机的位置知道一些3d点和它们在图像中的相应点(2d点)。 我知道cv::solvePnP可以帮助我,读完这个后 ,我明白了solvePnP rvec和tvec的输出是摄像机坐标系中对象的旋转和平移。 所以我需要找出世界坐标系下的相机旋转/平移。 从上面的链接看来,代码很简单,在python中: found,rvec,tvec = cv2.solvePnP(object_3d_points, object_2d_points, camera_matrix, dist_coefs) rotM = cv2.Rodrigues(rvec)[0] cameraPosition = -np.matrix(rotM).T * np.matrix(tvec) 我不知道Python / numpy的东西(我正在使用C ++),但是这对我来说并没有什么意义: rvec,solvePnP的tvec输出是3x1matrix,3个元素的向量 cv2.Rodrigues(rvec)是一个3x3matrix cv2.Rodrigues(rvec)[0]是一个3x1matrix,3个元素向量 cameraPosition是一个3×1 * 1x3matrix乘法,即一个.. 3x3matrix。 我怎么可以在opengl中使用简单的glTranslatef和glRotate调用?

使用OpenCV提取HoG特性

我正在尝试使用OpenCV的HoG API提取function,但是我似乎无法find允许我这样做的API。 我想要做的是从我的所有数据集(一组正面和负面的图像)使用HoG提取function,然后训练我自己的SVM。 我在OpenCV下偷看到HoG.cpp,并没有帮助。 所有的代码都被埋在复杂性之中,并且需要满足不同的硬件(例如英特尔的IPP) 我的问题是: 是否有任何OpenCV API可用于提取所有要提交给SVM的特征/描述符? 如果有什么可以用它来训练我自己的SVM? 如果没有,那里有没有现成的图书馆可以完成同样的事情? 到目前为止,我实际上是从Processing(Java)向C ++移植一个现有的库(http://hogprocessing.altervista.org/),但是它仍然非常慢,检测至less需要16秒 有没有其他人成功提取HoGfunction,你是如何绕过它? 你有没有可以使用的开源代码? 提前致谢

透视变形矩形的比例

给定一个矩形扭曲的二维图片: 我知道这个形状最初是一个矩形,但我不知道它的原始大小。 如果我知道这幅图中angular点的像素坐标,我怎样才能计算出原来的比例,即矩形的商(宽度/高度)? (背景:目标是自动不失真矩形文件的照片,边缘检测可能会做hough变换) 更新: 有一些讨论是否可以根据给出的信息来确定宽高比。 我的天真的想法是,这一定是可能的,因为我想不出一个1:4矩形投影到上面描述的四边形的方法。 这个比例显然接近1:1,所以应该有一种方法来确定它的math。 然而我没有证据certificate这超出了我的直觉猜测。 我还没有完全理解下面提出的论点,但是我认为我们必须有一个隐含的假设,就是我们在这里失踪了,这个假设是不同的。 但经过几个小时的search,我终于find了一些与这个问题有关的文件。 我正努力去理解那里使用的math,迄今为止没有成功。 特别是第一篇论文似乎正在讨论我想要做的事情,不幸的是没有代码例子和非常密集的math。 张正友,何立伟,“白板扫描与图像增强” http://research.microsoft.com/en-us/um/people/zhang/papers/tr03-39.pdf p.11 “由于透视变形,矩形的图像看起来像是一个四边形,但是由于我们知道它是一个空间上的矩形,所以我们能够估计出摄像机的焦距和矩形的高宽比。 ROBERT M. HARALICK“从矩形透视投影确定相机参数” http://portal.acm.org/citation.cfm?id=87146 “我们展示了如何在3D空间中使用未知大小和位置的矩形的2D透视投影来确定相对于矩形平面的摄像机视angular参数。

什么algorithm可以用来识别图像是“相同”还是相似,不pipe大小?

TinEye ,“反向图像search引擎”,允许你上传/链接到一个图像,它能够search它爬过的亿图像,它会返回到它发现的图像是相同的图像的链接。 但是,这不是一个天真的校验和或任何有关的。 通常能够find比您提供的原始图像更高分辨率和更低分辨率以及更大和更小尺寸的图像。 这是一个很好的使用服务,因为我经常发现一个图像,并希望它的最高分辨率的版本。 不仅如此,我还find了相同图像集的图像,图像中的人物处于不同的位置,但背景基本保持不变。 TinEye可以使用什么types的algorithm来比较一个图像和其他不同大小和压缩比的图像,但是仍然准确地发现它们是“相同的”图像或集合?

如何从增强现实开始?

我目前是计算机科学的本科生,明年我将进入我的最后一年。 增强现实是我发现的一个非常有趣的话题,但我不知道从哪里开始学习。 你从哪里开始学习这个主题,以及有哪些库可用?

特征检测与描述符提取的区别

有谁知道OpenCV 2.3中FeatureDetection和DescriptorExtraction的区别吗? 我知道后者是使用DescriptorMatcher进行匹配所必需的。 如果是这样,什么是FeatureDetection使用? 谢谢。

解释Hough变换

我只是冒险,走向计算机视觉的第一步。 我试图自己实施霍夫变换,但我只是没有得到全面的情况。 我读了维基百科条目,甚至是理查德·杜达(Richard Duda)和彼得·哈特(Peter Hart)的原始“用霍夫变换来检测图片中的线条和曲线”,但没有帮助。 有人可以用更友好的语言向我解释吗?