标签: computer-vision

什么是车牌检测的好算法?

背景

对于我在大学的最后一个项目,我正在开发车辆牌照检测应用程序.我认为自己是一名中级程序员,但是我的数学知识缺乏中学以上的任何东西,这使得生产正确的公式比它应该更难.

我花了很多时间查阅学术论文,例如:

谈到数学,我迷路了.由于这种测试,各种图形图像被证明是有效的,例如:

替代文字

替代文字

然而,这种方法仅适用于该特定图像,如果将这些技术应用于不同的图像,我确信会发生较差的转换.我读过一个名为"底帽形态变换"的公式,它执行以下操作:

基本上,变换保留了图片的所有暗部细节,并消除了其他一切(包括更大的暗区和亮区).

我找不到很多关于此的信息,但是报告末尾附近的文档中的图像显示了它的有效性.

其他限制

  • 用C#开发
  • 仅将项目限制在英国注册牌照
  • 我可以选择要转换的图像作为演示

我需要建议我应该关注哪些转换技术,以及哪些算法可以帮助我.

编辑:关于续 - 车辆牌照检测的新信息

c# ocr image object-detection computer-vision

58
推荐指数
1
解决办法
5万
查看次数

检测器,提取器和匹配器的分类

我是opencv的新手,并尝试在两个图像之间实现图像匹配.为此,我试图理解特征描述符,描述符提取器和描述符匹配器之间的区别.我遇到了很多术语,试图在opencv文档网站上阅读它们,但我似乎无法理解这些概念.我理解这里的基本区别.特征检测与描述符提取的区别

但是在研究这个主题时我遇到了以下术语:

快速,GFTT,SIFT,SURF,MSER,STAR,ORB,BRISK,FREAK,Brief

我理解FAST,SIFT,SURF是如何工作的,但似乎无法弄清楚上面哪些只是探测器,哪些是提取器.

然后是匹配者.

FlannBased,BruteForce,knnMatch以及其他一些人.

经过一些阅读后,我认为某些匹配器只能与某些提取器一起使用,如此处所述.OpenCV ORB功能检测器如何工作? 给出的分类非常清楚,但它仅适用于少数提取器,我不理解float和uchar之间的区别.

所以基本上,有人可以请

  1. 如上所述,基于float和uchar,或其他类型的分类,对检测器,提取器和匹配器的类型进行分类?
  2. 解释float和uchar分类之间的区别或者使用哪种分类?
  3. 提到如何初始化(代码)各种类型的探测器,提取器和匹配器?

我知道它要求很多,但我将非常感激.谢谢.

c++ opencv image-processing computer-vision feature-detection

58
推荐指数
1
解决办法
2万
查看次数

图像中的标识识别

有没有人知道最近在图像中识别标识的学术工作?请仅在您熟悉此特定主题时回答(我可以在Google上搜索"徽标识别",非常感谢您).任何对计算机视觉有所了解并且已完成物体识别工作的人也欢迎发表评论.

更新:请参考算法方面(您认为合适的方法,本领域的论文,是否应该对现实世界数据(效率考虑)起作用(并且已经过测试)而不是技术方面(使用的编程语言或是否与OpenCV ...)图像索引和基于内容的图像检索的工作也可以帮助.

machine-learning image-recognition computer-vision

57
推荐指数
3
解决办法
4万
查看次数

如何使用SIFT算法计算两个图像的相似程度?

我使用了Andrea VedaldiSIFT实现来计算两个相似图像的筛选描述符(第二个图像实际上是从不同角度放大同一个对象的图片).

现在我无法弄清楚如何比较描述符以告诉图像有多相似

我知道这个问题是不负责任的,除非你之前真的玩过这些东西,但我认为之前做过这个的人可能知道这个,所以我发布了这个问题.

我做的很少生成描述符:

>> 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

56
推荐指数
2
解决办法
5万
查看次数

如何在内部绘制带有双色颗粒的水晶球

我只想提出一个有可能关闭的想法.我需要绘制一个水晶球,其中红色和蓝色颗粒随机定位.我想我必须和photoshop一起去,甚至试图用图像制作球,但是因为这是用于研究论文并且不一定要花哨,我想知道是否有任何方法可以使用R,matlab或任何方法进行编程其他语言.

matlab plot r computer-vision

56
推荐指数
9
解决办法
2660
查看次数

如何确定视频中对象的距离?

我有一个从移动车辆前面记录的视频文件.我将使用OpenCV进行对象检测和识别,但我坚持一个方面.如何确定与识别对象的距离.

我可以知道我目前的速度和现实世界的GPS位置,但就是这样.我无法对我正在跟踪的对象做出任何假设.我打算使用它来跟踪和跟踪对象而不会与它们发生碰撞.理想情况下,我想使用这些数据来推导物体的真实世界位置,如果我能确定从相机到物体的距离,我就能做到这一点.

c++ opencv computer-vision photogrammetry

54
推荐指数
3
解决办法
3万
查看次数

卷积神经网络中的批量归一化

我是卷积神经网络的新手,只是想知道特征映射以及如何对图像进行卷积以提取特征.我很高兴知道在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

54
推荐指数
3
解决办法
3万
查看次数

如何验证网络摄像头校准的正确性?

我对相机校准技术完全不了解......我正在使用OpenCV棋盘技术...我正在使用Quantum的网络摄像头......

这是我的观察和步骤..

  1. 我保持每个国际象棋方面= 3.5厘米.这是一个7 x 5的棋盘,有6 x 4个内角.我在距离网络摄像头1到1.5米的距离拍摄了10张不同视角/姿势的图像.
  2. 我下面的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)
  3. 在调用此函数之前,我将沿着内部矩阵的对角线的第一个和第二个元素作为一个,以保持焦距的比率恒定并使用 CV_CALIB_FIX_ASPECT_RATIO

  4. 随着棋盘距离的变化fxfy变化fx:fy几乎等于1.有200到400的数量级cxcy值.当我改变距离时fx,fy它们在300到700的数量级.

  5. 目前我把所有的失真系数都归零,因为我没有得到包括失真系数在内的好结果.我的原始图像看起来比未失真的图像更漂亮!!

我正确地进行了校准吗?我应该使用除CV_CALIB_FIX_ASPECT_RATIO?之外的任何其他选项吗?如果是的话,哪一个?

opencv computer-vision camera-calibration

53
推荐指数
2
解决办法
3万
查看次数

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

我有一个校准过的相机(内在矩阵和失真系数),我想知道相机位置知道一些3d点及其在图像中的对应点(2d点).

我知道,cv::solvePnP能帮助我,看完这个这个我明白solvePnP的,我的产出rvectvec是对象在相机的旋转和平移坐标系.

所以我需要找出世界坐标系中的摄像机旋转/平移.

从上面的链接看来,代码在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++),但这对我来说没有多大意义:

  • rvec,来自solvePnP的tvec输出是3x1矩阵,3个元素向量
  • cv2.Rodrigues(rvec)是一个3x3矩阵
  • cv2.Rodrigues(rvec)[0]是3x1矩阵,3个元素向量
  • cameraPosition是一个3x1*1x3矩阵乘法,是一个.. 3x3矩阵.我如何在opengl中使用这个简单glTranslatefglRotate调用?

c++ opengl opencv computer-vision pose-estimation

51
推荐指数
2
解决办法
4万
查看次数

将两个图像与OpenCV结合使用

我正在尝试使用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)

python opencv image-processing computer-vision

50
推荐指数
5
解决办法
10万
查看次数