标签: computer-vision

使用OpenCV提取HoG功能

我正在尝试使用OpenCV的HoG API提取功能,但我似乎无法找到允许我这样做的API.

我想要做的是从我的所有数据集(一组正面和负面图像)中使用HoG提取特征,然后训练我自己的SVM.

我在OpenCV下偷看了HoG.cpp,但没有用.所有代码都埋没在复杂性中,需要满足不同的硬件需求(例如英特尔的IPP)

我的问题是:

  1. 我是否可以使用OpenCV中的任何API来提取所有要提供给SVM的功能/描述符?如果我可以用它来训练我自己的SVM?
  2. 如果没有,是否有任何现有的库,可以完成同样的事情?

到目前为止,我实际上是将一个现有的库(http://hogprocessing.altervista.org/)从Processing(Java)移植到C++,但它仍然非常慢,检测时间至少为16秒

有没有其他人成功提取HoG功能,你是如何解决它的?你有任何我可以使用的开源代码吗?

提前致谢

opencv feature-extraction computer-vision object-recognition feature-detection

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

立体匹配中视差图与视差图像的区别

我是Stereo Matching的新手.我无法理解Disparity的概念.请告诉我什么是视差图和视差图像,它们之间有什么区别?两个术语是相同还是不同?

computer-vision disparity-mapping stereo-3d

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

差异图的定义

我被要求实现基于边缘的视差图,但我从根本上不了解视差图是什么.谷歌搜索似乎没有产生直截了当的答案.有人可以解释它还是指向更好的资源?

imaging image-processing computer-vision disparity-mapping stereo-3d

37
推荐指数
1
解决办法
4万
查看次数

深层信念网络与卷积神经网络

我是神经网络领域的新手,我想知道Deep Belief Networks和Convolutional Networks之间的区别.还有,深度卷积网络是深信仰和卷积神经网络的结合吗?

这是我到现在为止所收集到的.如果我错了,请纠正我.

对于图像分类问题,Deep Belief网络有许多层,每个层都使用贪婪的分层策略进行训练.例如,如果我的图像大小是50 x 50,我想要一个4层的深度网络

  1. 输入层
  2. 隐藏层1(HL1)
  3. 隐藏层2(HL2)
  4. 输出层

我的输入层将具有50 x 50 = 2500个神经元,HL1 = 1000个神经元(比如说),HL2 = 100个神经元(比如说)和输出层= 10个神经元,以便训练输入层和HL1之间的权重(W1),I使用AutoEncoder(2500 - 1000 - 2500)并学习大小为2500 x 1000的W1(这是无监督学习).然后我通过第一个隐藏层向前馈送所有图像以获得一组特征,然后使用另一个自动编码器(1000-100-1000)来获得下一组特征,最后使用softmax层(100-10)进行分类.(仅学习最后一层的权重(HL2-作为softmax层的输出)是监督学习).

(我可以使用RBM而不是自动编码器).

如果使用卷积神经网络解决了同样的问题,那么对于50x50输入图像,我将仅使用7 x 7个补丁开发一个网络(比方说).我的图层就是

  1. 输入层(7 x 7 = 49个神经元)
  2. HL1(25个不同特征的25个神经元) - (卷积层)
  3. 池层
  4. 输出层(Softmax)

为了学习权重,我从尺寸为50 x 50的图像中取出7 x 7个补丁,并通过卷积层向前馈送,因此我将有25个不同的特征映射,每个都有大小(50 - 7 + 1)x(50 - 7) + 1)= 44 x 44.

然后我使用一个11x11的窗口用于汇集手,因此获得25个大小(4 x 4)的特征映射作为汇集层的输出.我使用这些功能图进行分类.

在学习权重时,我不像深度信念网络(无监督学习)那样使用分层策略,而是使用监督学习并同时学习所有层的权重.这是正确的还是有其他方法来学习权重?

我所理解的是正确的吗?

因此,如果我想使用DBN进行图像分类,我应该将所有图像调整到特定大小(例如200x200)并在输入层中放置那么多神经元,而在CNN的情况下,我只训练一个较小的补丁.输入(比如尺寸为200x200的图像为10 x 10)并将学习的权重卷积在整个图像上?

DBN提供的结果是否比CNN更好,还是纯粹依赖于数据集?

谢谢.

machine-learning computer-vision neural-network dbn autoencoder

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

检测图像上文本存在的算法

通过我的新作业,我正在寻找一种方法来检测图像上是否存在文本.图像是地图 - 例如可以是谷歌地图.任务是检测街道/城市标签的放置位置.

我知道,OpenCV库有算法,可以检测功能(例如人脸) - Haar分类或猪(方向梯度直方图),但我听说,学习这样的算法过程是相当困难的.

您是否知道可以执行此操作的任何算法,方法或库(检测图像上是否存在文本)?

谢谢,约翰

opencv image image-processing image-recognition computer-vision

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

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

我有一个静止的相机,指向室内区域.人们将走过相机,距离它约5米.使用OpenCV,我想检测走过的人 - 我理想的回归是一组检测到的个体,带有边界矩形.

我看了几个内置示例:

  • 没有Python样本真正适用
  • ç斑点跟踪样品看起来很有希望,但不接受现场视频,这使得检测困难.它也是最复杂的样本,使得提取相关知识并将其转换为Python API存在问题.
  • ç "motempl"样本也看起来很有希望,因为它计算在随后的视频帧的一个剪影.据推测,我可以使用它来查找强连接组件并提取单个blob及其边界框 - 但我仍然试图找出一种方法来识别后续帧中发现的blob作为相同的blob.

是否有人能够提供指导或样本 - 最好是在Python中

python opencv motion-detection computer-vision

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

OpenCV错误:函数imshow中的(-215)size.width> 0 && size.height> 0

我正在尝试制作一个结合Haar Cascade Classification和Lucas Kanade良好特征检测的人脸跟踪器.但是,我不断收到一个错误,我无法弄清楚它的含义以及如何解决它.

有人能帮我一下吗?

错误:

line 110, in <module>
cv2.imshow('frame',img)
error: /build/buildd/opencv-2.4.8+dfsg1/modules/highgui/src/window.cpp:269: 
error: (-215)size.width>0 && size.height>0 in function imshow
Run Code Online (Sandbox Code Playgroud)

码:

from matplotlib import pyplot as plt
import numpy as np

import cv2

face_classifier = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')


cap = cv2.VideoCapture(0)


# params for ShiTomasi corner detection
feature_params = dict( maxCorners = 200,
                       qualityLevel = 0.01,
                       minDistance = 10,
                       blockSize = 7 )

# Parameters for lucas kanade optical flow
lk_params = dict( winSize  = (15,15),
                  maxLevel = 2,
                  criteria = (cv2.TERM_CRITERIA_EPS …
Run Code Online (Sandbox Code Playgroud)

python opencv image computer-vision opencv3.0

35
推荐指数
5
解决办法
12万
查看次数

改变训练的图像来训练神经网络

我目前正在尝试制作一个程序,仅根据其外观区分腐烂的橙子和可食用的橙子.为此,我计划使用卷积神经网络训练腐烂的橙子和普通的橙子.经过一番搜索,我只能找到一个约数据库.黑色背景上的150个烂橙子和150个普通橙子(http://www.cofilab.com/downloads/).显然,机器学习模型至少需要几千个橙子才能达到90%左右的精度.但是,我可以用某种方式改变这150种橙子来制作更多的橙子照片吗?通过改变,我的意思是在柑橘类水果上添加不同浓度的橙色,以形成"不同的橙色".这是训练神经网络的有效方法吗?

machine-learning computer-vision training-data neural-network conv-neural-network

35
推荐指数
1
解决办法
2034
查看次数

如何使用Keras训练模型预测输入图像?

我只是从一般的keras和机器学习开始.

我训练了一个模型来分类来自2个类的图像并使用它保存model.save().这是我使用的代码:

from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K


# dimensions of our images.
img_width, img_height = 320, 240

train_data_dir = 'data/train'
validation_data_dir = 'data/validation'
nb_train_samples = 200  #total
nb_validation_samples = 10  # total
epochs = 6
batch_size = 10

if K.image_data_format() == 'channels_first':
    input_shape = (3, img_width, img_height)
else:
    input_shape = (img_width, img_height, 3)

model = Sequential()
model.add(Conv2D(32, …
Run Code Online (Sandbox Code Playgroud)

python machine-learning computer-vision keras

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

我从哪里开始学习图像处理和对象识别?

我有兴趣编写一些基本的计算机化对象识别应用程序,所以我想我需要一些图像处理算法的理论背景,以及一些用于决策能力的AI.

我是计算机科学专业的毕业生,有一天我打算获得硕士学位,希望能够进入这些领域.与此同时,我想先行一步,做一些自学.

所以我的问题是,我从哪里开始?我很欣赏正确方向的箭头,如果可能的话,还有一些链接.

theory image-processing computer-vision object-recognition

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