标签: computer-vision

如何从增强现实开始?

我现在是计算机科学的本科生,明年我将进入最后一年.我发现增强现实是一个非常有趣的话题,但我不知道从哪里开始学习它.

您从哪里开始了解此主题以及可用的库?

language-agnostic computer-science computer-vision augmented-reality

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

无论大小如何,可以使用什么算法来识别图像是"相同"还是相似?

TinEye,"反向图像搜索引擎",允许您上传/链接到图像,它能够搜索它已爬行的十亿个图像,它将返回到找到的图像是同一图像的链接.

但是,它不是一个天真的校验和或任何与此相关的东西.它通常能够找到比您提供的原始图像更高分辨率和更低分辨率以及更大和更小尺寸的图像.这是一个很好的服务用途,因为我经常找到一个图像,并希望它的最高分辨率版本.

不仅如此,我已经找到了相同图像集的图像,图像中的人处于不同的位置,但背景基本保持不变.

TinEye可以使用哪种类型的算法,可以将图像与各种尺寸和压缩比的图像进行比较,但仍能准确地发现它们是"相同"的图像或集合?

algorithm image-processing computer-vision

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

我应该在GPU或CPU上计算矩阵吗?

我是否更愿意在CPU或GPU上计算矩阵?

假设我有以下矩阵P * V * M,我应该在CPU上计算它们以便我可以将最终矩阵发送到GPU(GLSL),还是应该将这三个矩阵分别发送到GPU以便GLSL可以计算最终矩阵?

我的意思是在这种情况下,GLSL必须为每个顶点计算MVP矩阵,因此在CPU上预先计算它可能更快.

但是,让我们说GLSL只需要计算一次MVP矩阵,GPU会比CPU更快地计算出最终矩阵吗?

opengl glsl computer-vision

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

什么是梯度方向和梯度大小

我目前正在研究一种称为边缘检测的计算机视觉模块.我试图理解梯度方向和梯度大小的含义.

computer-vision

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

如何计算卷积神经网络的参数个数?

我无法提供正确数量的AlexNetVGG Net参数.

例如,要计算conv3-256一层VGG Net 的参数个数,答案是0.59M =(3*3)*(256*256),即(内核大小)*(两者中的两个通道数的乘积)联合层),但是这样,我无法得到138M参数.

那么请你告诉我计算的错误,或者告诉我正确的计算程序?

machine-learning computer-vision neural-network vgg-net

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

使用OpenCV自动调整一张纸的彩色照片的对比度和亮度

拍摄一张纸时(例如,使用电话摄像头),我得到以下结果(左图)(jpg 在此处下载)。所需的结果(使用图像编辑软件手动处理)在右侧:

我想用openCV处理原始图像,以自动获得更好的亮度/对比度(以使背景更白)

假设:图像具有A4纵向格式(在本主题中,我们无需对其进行透视变形),并且纸页为白色,可能带有黑色或彩色的文本/图像。

到目前为止,我已经尝试过:

  1. 各种自适应阈值方法,例如高斯,OTSU(请参阅OpenCV doc 图像阈值)。通常可以与OTSU配合使用:

    ret, gray = cv2.threshold(img, 0, 255, cv2.THRESH_OTSU + cv2.THRESH_BINARY)
    
    Run Code Online (Sandbox Code Playgroud)

    但仅适用于灰度图像,不适用于彩色图像。此外,输出是二进制(白色或黑色),我不希望这样:我更喜欢保留彩色非二进制图像作为输出

  2. 直方图均衡

    • 应用于Y(在RGB => YUV变换之后)
    • 或应用于V(在RGB => HSV变换之后),

    如本建议答案直方图均衡化不是彩色图像的工作- OpenCV的)或该一个OpenCV的Python的equalizeHist彩色图像):

    img3 = cv2.imread(f)
    img_transf = cv2.cvtColor(img3, cv2.COLOR_BGR2YUV)
    img_transf[:,:,0] = cv2.equalizeHist(img_transf[:,:,0])
    img4 = cv2.cvtColor(img_transf, cv2.COLOR_YUV2BGR)
    cv2.imwrite('test.jpg', img4)
    
    Run Code Online (Sandbox Code Playgroud)

    或使用HSV:

    img_transf = cv2.cvtColor(img3, cv2.COLOR_BGR2HSV)
    img_transf[:,:,2] = cv2.equalizeHist(img_transf[:,:,2])
    img4 = cv2.cvtColor(img_transf, cv2.COLOR_HSV2BGR)
    
    Run Code Online (Sandbox Code Playgroud)

    不幸的是,结果非常糟糕,因为它会在本地创建可怕的微对比度(?):

    我还尝试了YCbCr,这很相似。

  3. 我还尝试了CLAHE(对比度受限的自适应直方图均衡化),范围tileGridSize从 …

python opencv image-processing computer-vision image-thresholding

40
推荐指数
5
解决办法
3094
查看次数

Sobel滤芯大尺寸

我正在使用尺寸为3x3的索贝尔滤波器来计算图像导数.看一下互联网上的一些文章,似乎sobel过滤器的大小为5x5和7x7的内核也很常见,但我无法找到它们的内核值.

有人可以让我知道尺寸为5x5和7x7的sobel滤波器的内核值吗?此外,如果有人可以共享一个方法来生成内核值,那将非常有用.

提前致谢.

image-processing computer-vision edge-detection sobel

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

OpenCV中连接的组件

我正在寻找一个OpenCV函数,它可以找到连接的组件并对它们执行一些任务(比如获取像素数,轮廓,对象中的像素列表等).

是否有OpenCV(C++)的功能类似于MatLab的regionprops?

c++ matlab opencv image-processing computer-vision

39
推荐指数
4
解决办法
6万
查看次数

Keras中的自定义丢失功能

我正在研究一种图像类增量分类器方法,使用CNN作为特征提取器和一个完全连接的块进行分类.

首先,我对每个训练有素的VGG网络进行了微调,以完成一项新任务.一旦网络被训练用于新任务,我就为每个班级存储一些示例,以避免在新班级可用时忘记.

当某些类可用时,我必须计算样本的每个输出,包括新类的示例.现在为旧类的输出添加零,并在新类输出上添加与每个新类对应的标签,我有新标签,即:如果有3个新类输入....

旧班类型输出: [0.1, 0.05, 0.79, ..., 0 0 0]

新类类型输出:[0.1, 0.09, 0.3, 0.4, ..., 1 0 0]**最后的输出对应于类.

我的问题是,我如何改变自定义的损失函数来训练新的类?我想要实现的损失函数定义为:

损失功能

蒸馏损失对应于旧类别的输出以避免遗忘,而分类损失对应于新类别.

如果你能给我一些代码样本来改变keras中的损失函数会很好.

谢谢!!!!!

computer-vision deep-learning conv-neural-network keras loss-function

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

实例规范化与批量规范化

我知道批量标准化通过将激活转向单位高斯分布,从而有助于更快的训练,从而解决消失的梯度问题.批量标准行为在训练时使用不同(使用每批的平均值/ var)和测试时间(使用训练阶段的最终运行平均值/ var).

另一方面,实例规范化作为对比度规范化,如本文中提到的https://arxiv.org/abs/1607.08022.作者提到输出风格化图像应该不依赖于输入内容图像的对比度,因此实例规范化有所帮助.

但是,我们不应该使用实例规范化进行图像分类,其中类标签不应该依赖于输入图像的对比度.我还没有看到任何使用实例规范化的纸张来进行批量归一化以进行分类.这是什么原因?此外,可以并且应该一起使用批处理和实例规范化.我渴望在何时使用哪种规范化方面获得直观和理论上的理解.

machine-learning computer-vision neural-network conv-neural-network batch-normalization

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