Questions tagged [convolution]

A mathematical operation that combines two signals to generate a third signal. Convolution often arises in audio processing (e.g., filtering, reverb) and image processing (e.g., blurring, edge detection).

Convolution takes two signals and combines them to generate a third signal. For 1-D signals, the operation can be thought of as sliding the time-reverse of one signal along the other, and at each time step, taking the integral of the product of the signals (see wikipedia). The convolution operation describes the response of linear time-invariant systems to common input signals. Therefore, it commonly occurs in digital signal processing (DSP) contexts. Audio and image processing are two very common application areas for convolution.

A simple implementation for convolving two discrete time signals requires M*N multiply-add operations, where M and N are the lengths of the two signals. However, by taking advantage of the fact that convolution in the time domain is equivalent to multiplication in the frequency domain, and that transforming between domains can be implemented with O(N*log N) operations, convolution can be sped up. See here for more details.


Related tags

2052 questions
0
votes
1 answer

DeepFix - Location Biased Convolution

I got a question regarding this paper: https://arxiv.org/pdf/1510.02927.pdf In the Network Architecture they implement something called location biased convolution. Basically it is 16 2d-gausians appended to the 512 filters of the convolutional…
0
votes
1 answer

Dilated kernel vs kernel 5x5 in convolution

If the purpose of dilated convolution is to extend receptive fields (extract image features from distant regions) and kernel 5x5 with mirror padding is also able to get the feature from distant regions. Why do people more often use the dilated…
0
votes
1 answer

Perform convolution 2D + Average pooling in Tensorflow/Keras

Is known that the convolution has the associative property: (A*B)*C=A*(B*C), where (*) denotes the convolutional operator. In keras, perform a 2D Convolution + 2D Average Pooling (with strides=(2,2)) is less expensive that perform only one…
0
votes
1 answer

Numpy convolve: comparing step and impulse responses

I am new to digital signal processing and while developing my first model-based control approach I was faced with the need to compute a convolution for the first time outside any school context (my background being another domain of numerical…
0
votes
0 answers

Efficient sum of distributions - convolution - in python

I want to sum multiple distributions together accounting for their correlation. What is the most efficient way to do that in python? Unfortunately numpy convolve function seems to be only for independent variables. Many thanks, Pierre
Peslier53
  • 587
  • 1
  • 7
  • 21
0
votes
1 answer

How to properly resize an image?

I am a starter for the CNN DL. During CNN code I faced this error: Negative dimension size caused by subtracting 3 from 1 for 'conv2d_3/convolution' (op: 'Conv2D') with input shapes: [?,19,1,64], [3,3,64,64] My image data show 300(w), 855(h)…
0
votes
1 answer

Gaussian Blur Glitching/Segmentation

I'm trying to implement a Gaussian Blur from scratch (using C++). In the code below I've hard-coded the Gaussian kernel I'm using. I only kept one dimension as I'm trying to use the optimization I've read about where you can do a horizontal…
0
votes
1 answer

How to use nupmy.as_strided

I am creating my own neural network library and I am now creating a convolution algorithm. I am trying to part the input to local receptive fields, and then multiply it by the respective weights, sum the multiplied receptive fields, add the biases…
user10794514
0
votes
0 answers

How create a sphere image with smooth boudaries

Trying to create a ghost 3d image with a known volume to create a calibrated gold standard : a sphere. I've tried this code but it doesn't provide me what i'm really want. import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d…
Beethov
  • 1
  • 1
0
votes
1 answer

Should the input image in a CNN model only have 1's and 0s as its matrix entries?

Since a network doesn't learn colors and computer don't understand anything other than 1's and 0's, does this mean an input image in a CNN model should only have 1's and 0s as its matrix entries?
0
votes
0 answers

What is the difference between cropping an image and applying an ROI (region of interest) on the image

I'm using opencv. Having a base image (640x640) I want to know if applying a rectangular white shape mask of (100x100), in another words, a ROI is more time consuming compared to cropping the image in the same rectangular shape (100x100). What I…
Cătălina Sîrbu
  • 1,253
  • 9
  • 30
0
votes
1 answer

Convolution using numpy.fft causes time shift

I'm trying to write a convolution code entirely in the spectral domain. I'm taking a spike series in time (example below only has one spike for simplicity) of n samples and calculating the Fourier series with numpy.fft.fft. I create a 'Ricker…
MBurianyk
  • 11
  • 1
  • 3
0
votes
1 answer

performing convolution or correlation will be same if the filter is symmetric in Digital Image Processing. Why?

Convolution and correlation are in most cases different and produce different outputs. But when the filter used for convolution or correlation is symmetric, we get the same output for both. Why? What property makes the output the same for both?
Harini Sj
  • 173
  • 1
  • 2
  • 11
0
votes
1 answer

Optimizing CalculateConvolutionOutputTensor__im2col

Request I am writing to request guidance in optimizing my solution / method "CalculateConvolutionOutputTensor__im2col". I would like help determining the best strategy for moving beyond my naive approach; offerings of intuition about any relevant…
Tom Lever
  • 321
  • 3
  • 16
0
votes
0 answers

How can I make a convolution function with double pointer matrices in C?

I need to make a convolution function in C and I'm kind of lost. Basically I need something like: My function needs to be prepared for square matrices from 3x3 to even 1000x1000. This is what I tried: int calcConv(int **matrix, int ** filter,int i,…
RaCo
  • 21
  • 2
  • 8
1 2 3
99
100