我想使用ORB特征检测器和提取器实现基于特征的对齐算法.
到目前为止,我使用OpenCV中的ORB类
提取了这些特征ORB orb;
orb(gray_image,Mat(),features.keypoints,features.descriptors);
,并使用openCV中的knnMatch函数进行匹配.matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);
之后我尝试使用findHomography函数找到一个单应性,但是这个函数需要在图像特征之间至少有4个匹配,并且在大多数情况下我测试过的图像不到4.
有人用过这个功能吗?是否有任何关于它的文档,或关于OpenCV的ORB类(ORB构造函数参数的含义)?
PS这是我的第一个问题.我不能发布超过2个链接.对于opencv文档,请使用此方法.
众所周知,现代最流行的CNN(卷积神经网络):VGG/ResNet(FasterRCNN),SSD,Yolo,Yolo v2,DenseBox,DetectNet - 不是旋转不变的:现代CNN(卷积神经网络)是否像DetectNet一样旋转不变?
还知道,有几个神经网络具有旋转不变对象检测:
Rotation-Invariant Neoperceptron 2006(PDF):https://www.researchgate.net/publication/224649475_Rotation-Invariant_Neoperceptron
学习用于纹理分类的旋转不变卷积滤波器2016(PDF):https://arxiv.org/abs/1604.06720
RIFD-CNN:用于物体检测的旋转不变和Fisher判别卷积神经网络2016(PDF):http://www.cv-foundation.org/openaccess/content_cvpr_2016/html/Cheng_RIFD-CNN_Rotation-Invariant_and_CVPR_2016_paper.html
卷积神经网络中的编码不变性2014(PDF)
用于星系形态预测的旋转不变卷积神经网络(PDF):https://arxiv.org/abs/1503.07077
学习旋转不变卷积神经网络用于VHR光学遥感图像中的物体检测2016:http://ieeexplore.ieee.org/document/7560644/
我们知道,在这样的图像检测竞赛中:IMAGE-NET,MSCOCO,PASCAL VOC - 使用的网络集合(同时是一些神经网络).或网络集成在单网中,如ResNet(残留网络表现得像相对浅网络的集合)
但是在像MSRA这样的获胜者中使用旋转不变的网络集合,如果没有,那么为什么呢?为什么在整体中额外的旋转不变网络不会增加精确度以检测某些物体,例如飞机物体 - 哪些图像是在不同的旋转角度下完成的?
有可能:
为什么旋转不变神经网络不会用于流行的对象检测竞赛的获胜者?
machine-learning computer-vision neural-network deep-learning conv-neural-network
我是OpenCV的新手,尝试捕获图像,然后将其保存到文件中.我发布的代码供您参考,如下.
正在保存jpg文件,但它是黑色的.
// Capture the Image from the webcam
CvCapture *pCapturedImage = cvCreateCameraCapture(0);
// Get the frame
IplImage *pSaveImg = cvQueryFrame(pCapturedImage);
// Save the frame into a file
cvSaveImage("test.jpg". ,pSaveImg); // A JPG FILE IS BEING SAVED
// OF 6KB , BUT IT IS BLACK
Run Code Online (Sandbox Code Playgroud)
所有功能都是成功的.我在XP和Vista中都尝试了上面的代码 - 结果是两者都是黑色图像.请让我知道我错过了什么.
我使用Matlab编程,但在检测到平行线对和正交对之后,我必须检测这些对的交集.我的问题是关于霍夫空间中两线交叉口的质量.
我通过求解四个方程系统找到了交点.这些交叉点是否位于笛卡尔坐标或极坐标空间中?
我是一名大学生,他发现计算机视觉很有吸引力.计算机视觉的新手应该从哪里开始?
我必须制作一个移动应用程序来计算图像中对象的实际大小.
我对它进行了一些研究,发现有用[问题]:你如何找到给定图像的物体的高度?
相机的距离与物体的实际尺寸之间的关系实际上并不复杂,传感器上的物体尺寸与现实生活中物体的尺寸之比与之间的比率相同.焦距和物体距离.
distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
---------------------------------------------------------------------------
object height (pixels) * sensor height (mm)
Run Code Online (Sandbox Code Playgroud)
但是如果距离未知,如何获得物体的实际高度值?
从图像创建3d模型的工具是否具有真实的生命维度?
我正在使用opencv 2.1.在我的代码中,我有几个图像存储为Mat对象初始化如下:
Mat img1 = imread("img/stuff.pgm", CV_LOAD_IMAGE_GRAYSCALE);
Run Code Online (Sandbox Code Playgroud)
在矩阵运算完成后,我可以使用imshow()正确显示它们.现在我想在图像上添加一些文字来描述发生了什么.看看文档似乎就是cvPutText()我需要的功能.但是,当我尝试这样的事情时:
cvPutText(result, "Differencing the two images.", cvPoint(30,30), &font, GREEN);
我得到以下编译错误:
error: cannot convert ‘cv::Mat’ to ‘CvArr*’ for argument ‘1’ to ‘void cvPutText(CvArr*, const char*, CvPoint, const CvFont*, CvScalar)’
在显示此图像时,我需要做些什么才能添加一些文字?
几天前,我开始使用新的OpenCV-Python界面cv2.
我的问题是关于比较cv和cv2界面.
关于易用性,新cv2界面的改进程度要大得多,而且使用起来非常简单有趣cv2.
但速度怎么样?
我制作了两个小码密码,一个在cv另一个cv2,用于检查性能.两者都具有相同的功能,访问图像的像素,测试它,进行一些修改等.
以下是代码:
cv2 interface:
import time
import numpy as np
import cv2
gray = cv2.imread('sir.jpg',0)
width = gray.shape[0]
height = gray.shape[1]
h = np.empty([width,height,3])
t = time.time()
for i in xrange(width):
for j in xrange(height):
if gray[i,j]==127:
h[i,j]=[255,255,255]
elif gray[i,j]>127:
h[i,j]=[0,0,255-gray[i,j]]
else:
h[i,j]=[gray[i,j],0,0]
t2 = time.time()-t
print "time taken = ",t2
Run Code Online (Sandbox Code Playgroud)
================================================== ===
结果是:
所用时间= 14.4029130936
================================================== ====
cv界面:
import cv,time …Run Code Online (Sandbox Code Playgroud) 首先,我想让你知道我真的很喜欢OpenCV.我已经使用了很长时间了,而且我使用它太多了,我可以指望上个月我必须查看文档的次数.我认为这是您每天使用计算机视觉时想要使用的工具.
我越来越觉得Opencv真的不适合使用应用程序.我正在开展宠物项目,这些项目旨在让任何人都可以轻松安装.
最新版本的OpenCV没有附带exes,Linux软件包已经过时了,我甚至都不敢使用它们.因此,最好的解决方案是大多数情况下的编译.在考虑移动应用程序或云计算时也是如此(即使解决方案似乎存在).
所以我的问题是,你们是怎么做的?我周围有很多基于计算机视觉的应用程序,基于云,基于移动,...你用什么工具?
我会寻找可用于最多平台的东西,但最重要的是通过应用程序可以轻松实现!
我在互联网上搜索了很多,但总是回到OpenCV是计算机视觉的"最佳"工具.
我对任何解决方案/语言/工具/框架都很开放.
谢谢 !