对于我在大学的最后一个项目,我正在开发车辆牌照检测应用程序.我认为自己是一名中级程序员,但是我的数学知识缺乏中学以上的任何东西,这使得生产正确的公式比它应该更难.
我花了很多时间查阅学术论文,例如:
谈到数学,我迷路了.由于这种测试,各种图形图像被证明是有效的,例如:
至
然而,这种方法仅适用于该特定图像,如果将这些技术应用于不同的图像,我确信会发生较差的转换.我读过一个名为"底帽形态变换"的公式,它执行以下操作:
基本上,变换保留了图片的所有暗部细节,并消除了其他一切(包括更大的暗区和亮区).
我找不到很多关于此的信息,但是报告末尾附近的文档中的图像显示了它的有效性.
我需要建议我应该关注哪些转换技术,以及哪些算法可以帮助我.
编辑:关于续 - 车辆牌照检测的新信息
我是opencv的新手,并尝试在两个图像之间实现图像匹配.为此,我试图理解特征描述符,描述符提取器和描述符匹配器之间的区别.我遇到了很多术语,试图在opencv文档网站上阅读它们,但我似乎无法理解这些概念.我理解这里的基本区别.特征检测与描述符提取的区别
但是在研究这个主题时我遇到了以下术语:
快速,GFTT,SIFT,SURF,MSER,STAR,ORB,BRISK,FREAK,Brief
我理解FAST,SIFT,SURF是如何工作的,但似乎无法弄清楚上面哪些只是探测器,哪些是提取器.
然后是匹配者.
FlannBased,BruteForce,knnMatch以及其他一些人.
经过一些阅读后,我认为某些匹配器只能与某些提取器一起使用,如此处所述.OpenCV ORB功能检测器如何工作? 给出的分类非常清楚,但它仅适用于少数提取器,我不理解float和uchar之间的区别.
所以基本上,有人可以请
我知道它要求很多,但我将非常感激.谢谢.
c++ opencv image-processing computer-vision feature-detection
有没有人知道最近在图像中识别标识的学术工作?请仅在您熟悉此特定主题时回答(我可以在Google上搜索"徽标识别",非常感谢您).任何对计算机视觉有所了解并且已完成物体识别工作的人也欢迎发表评论.
更新:请参考算法方面(您认为合适的方法,本领域的论文,是否应该对现实世界数据(效率考虑)起作用(并且已经过测试)而不是技术方面(使用的编程语言或是否与OpenCV ...)图像索引和基于内容的图像检索的工作也可以帮助.
我使用了Andrea Vedaldi的SIFT实现来计算两个相似图像的筛选描述符(第二个图像实际上是从不同角度放大同一个对象的图片).
现在我无法弄清楚如何比较描述符以告诉图像有多相似?
我知道这个问题是不负责任的,除非你之前真的玩过这些东西,但我认为之前做过这个的人可能知道这个,所以我发布了这个问题.
我做的很少生成描述符:
>> i=imread('p1.jpg');
>> j=imread('p2.jpg');
>> i=rgb2gray(i);
>> j=rgb2gray(j);
>> [a, b]=sift(i); % a has the frames and b has the descriptors
>> [c, d]=sift(j);
Run Code Online (Sandbox Code Playgroud) matlab image-comparison pattern-matching computer-vision sift
我只想提出一个有可能关闭的想法.我需要绘制一个水晶球,其中红色和蓝色颗粒随机定位.我想我必须和photoshop一起去,甚至试图用图像制作球,但是因为这是用于研究论文并且不一定要花哨,我想知道是否有任何方法可以使用R,matlab或任何方法进行编程其他语言.
我有一个从移动车辆前面记录的视频文件.我将使用OpenCV进行对象检测和识别,但我坚持一个方面.如何确定与识别对象的距离.
我可以知道我目前的速度和现实世界的GPS位置,但就是这样.我无法对我正在跟踪的对象做出任何假设.我打算使用它来跟踪和跟踪对象而不会与它们发生碰撞.理想情况下,我想使用这些数据来推导物体的真实世界位置,如果我能确定从相机到物体的距离,我就能做到这一点.
我是卷积神经网络的新手,只是想知道特征映射以及如何对图像进行卷积以提取特征.我很高兴知道在CNN中应用批量标准化的一些细节.
我读了本文https://arxiv.org/pdf/1502.03167v3.pdf和可以理解的BN算法应用于数据,但最终他们提到,当应用到CNN的轻微修改是必需的:
对于卷积层,我们还希望归一化遵循卷积属性 - 以便在不同位置对同一特征映射的不同元素以相同方式进行归一化.为实现这一目标,我们联合规范了所有地点的小批量激活.在Alg.1,我们令B是该组中跨越小批量的两个元件和空间位置的特征地图的所有值的 - 因此对于小批量大小p×Q的大小为m和特征映射的,我们使用的短跑运动员 - 小型m'= | B |的小批量 = m·pq.我们学习每个特征图的一对参数γ(k)和β(k),而不是每次激活.ALG.类似地修改图2,使得在推理期间,BN变换对给定特征图中的每个激活应用相同的线性变换.
当他们说"以不同位置的相同特征地图的不同元素以相同方式标准化"时,我完全感到困惑 "
我知道哪些特征映射意味着什么,不同的元素是每个特征映射中的权重.但我无法理解什么位置或空间位置意味着什么.
我根本无法理解下面的句子 "在Alg.1中,我们让B成为特征图中所有值的集合,跨越小批量和空间位置的元素"
如果有人冷静地阐述并用更简单的术语解释我,我会很高兴的
machine-learning computer-vision deep-learning conv-neural-network batch-normalization
我对相机校准技术完全不了解......我正在使用OpenCV棋盘技术...我正在使用Quantum的网络摄像头......
这是我的观察和步骤..
我下面的C代码学习OpenCV的由Bradski用于校准.我的校准代码是
cvCalibrateCamera2(object_points,image_points,point_counts,cvSize(640,480),intrinsic_matrix,distortion_coeffs,NULL,NULL,CV_CALIB_FIX_ASPECT_RATIO);
Run Code Online (Sandbox Code Playgroud)在调用此函数之前,我将沿着内部矩阵的对角线的第一个和第二个元素作为一个,以保持焦距的比率恒定并使用 CV_CALIB_FIX_ASPECT_RATIO
随着棋盘距离的变化fx
和fy
变化fx:fy
几乎等于1.有200到400的数量级cx
和cy
值.当我改变距离时fx
,fy
它们在300到700的数量级.
目前我把所有的失真系数都归零,因为我没有得到包括失真系数在内的好结果.我的原始图像看起来比未失真的图像更漂亮!!
我正确地进行了校准吗?我应该使用除CV_CALIB_FIX_ASPECT_RATIO
?之外的任何其他选项吗?如果是的话,哪一个?
我有一个校准过的相机(内在矩阵和失真系数),我想知道相机位置知道一些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)
Run Code Online (Sandbox Code Playgroud)
我不知道python/numpy东西(我正在使用C++),但这对我来说没有多大意义:
glTranslatef
和glRotate
调用?我正在尝试使用OpenCV 2.1将两个图像合二为一,两个图像彼此相邻放置.在Python中,我正在做:
import numpy as np, cv
img1 = cv.LoadImage(fn1, 0)
img2 = cv.LoadImage(fn2, 0)
h1, w1 = img1.height,img1.width
h2, w2 = img2.height,img2.width
# Create an array big enough to hold both images next to each other.
vis = np.zeros((max(h1, h2), w1+w2), np.float32)
mat1 = cv.CreateMat(img1.height,img1.width, cv.CV_32FC1)
cv.Convert( img1, mat1 )
mat2 = cv.CreateMat(img2.height, img2.width, cv.CV_32FC1)
cv.Convert( img2, mat2 )
# Copy both images into the composite image.
vis[:h1, :w1] = mat1
vis[:h2, w1:w1+w2] = mat2
h,w = vis.shape
vis2 …
Run Code Online (Sandbox Code Playgroud)