Ask Your Question

Possede's profile - activity

2019-04-18 06:03:51 -0600 received badge  Nice Question (source)
2016-08-24 21:57:23 -0600 received badge  Famous Question (source)
2016-03-30 03:50:25 -0600 received badge  Famous Question (source)
2015-02-05 06:14:10 -0600 received badge  Notable Question (source)
2014-12-02 07:10:39 -0600 received badge  Notable Question (source)
2014-04-17 18:45:58 -0600 received badge  Popular Question (source)
2014-04-14 10:16:37 -0600 received badge  Popular Question (source)
2013-06-12 06:17:18 -0600 received badge  Nice Question (source)
2013-05-14 02:08:46 -0600 received badge  Self-Learner (source)
2013-03-10 18:55:56 -0600 commented answer Brightness variation between cameras

Hello there, thanks for taking the time to answer my question. I am not able to access the camaras' internal parameters so I will try adjusting their brightnesses by decomposing each image into HSV. If I get something working I will post back. :)

2013-03-05 14:31:37 -0600 asked a question Brightness variation between cameras

Hello all,

I have written a program that will take three video inputs (from an array of webcams) and "stitch" the corresponding images together, as shown here: http://i1276.photobucket.com/albums/y475/sesj13/Panorama2_zps3a060d17.jpg

Even though the seams have been blended together there is still a noticeable step in gain between each camera. I am wondering if there is a way to adjust the brightness of the two side images to be the same brightness as that of the middle image? I'm really not too sure and if anyone can point me in the right direction it would be much appreciated. :)

2013-02-19 08:43:04 -0600 answered a question Feature detector problem (unhandled exception)

It was my fault in setting up OpenCV in Microsoft Visual Studio 2010. Fixed now!

2013-02-19 08:37:44 -0600 commented answer Real-time Image Stitching

Hello, sorry for not making it clear in my post but I am using the calculated homography matrices in the warpPerspective function to change the perspective of both the side images. I agree that the captured frames can be transformed in real-time. It's the normalised cross correlation which is causing the frame-rate to drop. I have scaled the ROIs which results in ~12FPS. I think I will be able to reduce the width of the ROI (and therefore reduce the correlation computation time) without hampering the quality of the alignment. Thanks anyway! :)

2013-02-19 03:30:50 -0600 received badge  Student (source)
2013-02-18 12:00:13 -0600 commented answer Real-time Image Stitching

Hello, thank you for your input. I have decided to abandon the SURF implementation for just now and go with your idea. What I have done is compute the homography matrices for the side cameras and then perform a normalised cross correlation to align the edges of the side images to that of the centre image (which is computed each loop). It gives a nice result at about 12FPS. I think with some optimisation and some thinking I should be able to increase the frame rate.

2013-02-14 18:44:33 -0600 asked a question Real-time Image Stitching

Hello there,

I have a project in which I am trying to create a real-time stitched panorama from three webcams mounted as shown here: http://i1276.photobucket.com/albums/y475/sesj13/IMG_2959_zpsb710bae8.jpg

The idea is to stitch together the frames captured by the side cameras with the frame captured by the central camera to create a "seamless" video panorama. I have so far hacked together some code that uses SURF to find the keypoints and corresponding descriptors that lie within the overlapping regions, as shown here: http://i1276.photobucket.com/albums/y475/sesj13/ROI_zpsffce8c7d.png

The keypoints are then matched and filtered. A video demonstration of this can be seen here: http://s1276.beta.photobucket.com/user/sesj13/media/SURF_zpsa47b8d56.mp4.html

The resulting "good" matches are then used to compute the corresponding homography matrices. The two homography matrices are then used warp the perspective of the frames captured from the side images. The problem is that the homography matrices change quite dramatically every loop. Also, the findHomography() function (using RANSAC) also appears to slow the frame rate quite dramatically from 30fps to 1-2fps. I have just been using the default settings thus far, so I'm sure it could be speeded up.

I am wondering if anyone knows of a different/better approach to this problem? I have read somewhere that if the cameras are in a fixed position relative to each other then you should only need to calculate the homography matrices once (possibly using stereo calibration). If anyone has any general pointers or input it would be much appreciated.

2013-02-13 11:18:56 -0600 commented question Strange Effect SURF GPU Keypoints

Thanks for your input. I am trying to achieve real-time image stitching using three Logitech C600 webcams to create a video panorama. They are mounted as shown here: http://i1276.photobucket.com/albums/y...

Unfortunately the effect is present in all of the webcams when selecting anything below 305 pixels in width and can be seen here: http://i1276.photobucket.com/albums/y...

The ROI is the overlap region between the left and right webcams and the centre webcam. I have tried dusting the lens but to no avail. It looks like a bug to me.

2013-02-12 11:36:01 -0600 asked a question Strange Effect SURF GPU Keypoints

I have come across a strange effect when outputting the keypoints found using the GPU implementation of SURF. I am capturing frames (640x480) from a webcam and reducing the ROI before passing them to be SURF function. However, I have found when the ROI is set to anything below 305 pixels in width (with a static height of 480 pixels), there is a band of keypoints found on the right hand side of the frame. The keypoints around the area of the band change every iteration (i.e. they are not static), however they remain in the same area. This band remains there even when I cover up the lens of the webcam (i.e. when there should be no keypoints found). This effect can be seen here:

http://i1276.photobucket.com/albums/y475/sesj13/KeypointsBand_zpsb89bc245.png http://i1276.photobucket.com/albums/y475/sesj13/KeypointsBandBlack_zps5539d2b4.png

Here is my code:

  // Capture an image from the webcam
  cam_0 >> img;

  // Convert to grayscale
  cvtColor(img,img_grey,CV_RGB2GRAY);

  img_roi = img_grey(Rect(0, 0, 304, HEIGHT));

  // Upload greyscale images
  imgGPU.upload(img_roi);

  // Perform GPU SURF and obtain keypoints and descriptors
  surfGPU(imgGPU, GpuMat(), keypGPU, descriptorsGPU);

  // Download the keypoints
  surfGPU.downloadKeypoints(keypGPU, keyp);

  // Draw the keypoints
  drawKeypoints(img_grey, keyp, outImgGPU, Scalar(255, 255, 255), DrawMatchesFlags::DEFAULT);

  // Show the keypoints on the image
  imshow("Show Keypoints", outImgGPU);

EDIT: Also, sometimes when I block the lens of the webcam for long enough, I get the following error:

http://i1276.photobucket.com/albums/y475/sesj13/Error_zpsade6146c.png

I am just wondering if anyone can point out what is going on.

Cheers

2013-02-08 10:17:36 -0600 commented question SURF GPU Small Image Size

Thank you! That solved the problem.

2013-02-07 15:51:06 -0600 asked a question SURF GPU Small Image Size

Hello all,

I have seen a massive increase in speed using the GPU SURF algorithm compared to running it purely on the CPU. I have three images which overlap as illustrated here:

http://i1276.photobucket.com/albums/y475/sesj13/ROI_zpsffce8c7d.png

Where, Width = 640 and Height = 480

I wish to find SURF descriptors on each of the four sub-images which are of dimensions 160*480, however when I try to feed the GPU SURF algorithm I get the error:

http://i1276.photobucket.com/albums/y475/sesj13/SURFError_zpsa71a9022.png

I believe I read somewhere that this is to do with the size of the image being passed into the GPU SURF function being too small, is there anyway around this?

Cheers!

2013-02-06 10:23:46 -0600 commented answer ROI Assertion Error

Thank you very much, I was being a plonker!

2013-02-05 15:25:29 -0600 asked a question ROI Assertion Error

Three webcams are used to capture three images which overlap as shown here: http://i1276.photobucket.com/albums/y475/sesj13/ROI_zpsffce8c7d.png

I am trying to reduce the ROIs to just the overlapped regions (1/4 of the width of each image), but having problems. My code and the associated error is shown here: http://i1276.photobucket.com/albums/y475/sesj13/ROIError_zpsede8e7d3.jpg

I am trying this (which I believe is correct), but to no avail:

img_roi0 = img_grey0(Rect((WIDTH-(WIDTH/4)), 0, WIDTH, HEIGHT));

img_roi1 = img_grey1(Rect(0, 0, (WIDTH/4), HEIGHT));

img_roi2 = img_grey1(Rect((WIDTH-(WIDTH/4)), 0, WIDTH, HEIGHT));

img_roi3 = img_grey2(Rect(0, 0, (WIDTH/4), HEIGHT));

Any input would be appreciated!

2013-01-31 14:27:28 -0600 commented answer Image stitching in real-time (Parallel Processing)

I decided due to my limited time-frame it would be best to just go ahead and dive into GPU programming. I went ahead and purchased an Nvidia GTX 660 as I was due an upgrade anyway! Thank you for your input, I will keep that in mind if I end up becoming stuck. I look forward to the performance gains!

2013-01-31 14:23:19 -0600 received badge  Scholar (source)
2013-01-30 10:25:59 -0600 received badge  Editor (source)
2013-01-30 10:14:06 -0600 asked a question Feature detector problem (unhandled exception)

Hello,

I am trying to perform FAST feature detection on an image. Everything compiles fine with no errors, however when the program hits "Ptr<featuredetector> detector = FeatureDetector::create("FAST");" an unhandled exception is flagged. My code and the error is shown here:

http://i1276.photobucket.com/albums/y475/sesj13/Issue4_zpseb537a9b.jpg

Any help would be really appreciated - it is driving me up the wall!

I am using Microsoft Visual Studio 2010 with Windows 7 64 bit. I believe I have all the necessary additional libraries in place. If you need any more information let me know,

Cheers!

2013-01-28 17:40:43 -0600 received badge  Supporter (source)
2013-01-28 17:40:16 -0600 commented answer Image stitching in real-time (Parallel Processing)

Ah, that looks like a promising link! I did not come across that video when browsing YouTube. Okay, I think I will go with a newer card such as the nVidia GTX 650/660 TI. From looking at: 'http://www.timzaman.com/?p=2256&lang=en' it seems that there is significant improvement going from the CPU to GPU processing. Hopefully I get something working!

Thanks again!

2013-01-28 17:17:26 -0600 commented answer Image stitching in real-time (Parallel Processing)

Thank you for your input, I will look into that module. I think I will program it with multiple threads to measure its performance and then, if necessary go down the GPU route.

2013-01-27 18:36:37 -0600 asked a question Image stitching in real-time (Parallel Processing)

Hello all,

I have a little over 3 months to put together my best attempt at image stitching in real-time. I am using 3 webcams (@320x240 pixels) which have been stripped back to their PCBs and mounted onto aluminium - i.e. their positions and angles relative to each other are fixed. I first approached this using MATLAB but have had to give that up because it is too slow at processing. I have now turned to OpenCV hoping that I will be able to take advantage of the vast library and improved processing speeds!

I believe my best chance of achieving image stitching in real-time would be to utilise the power of the GPU. My question is, would I be better off purchasing an Nvidia GTX 295 (with 2 GPUs) or a slightly newer card such as the Nvidia GTX 570? Or would my i7 920 (4 cores) suffice to process the data in parallel? I would be happy to hear if anyone has any pointers or general advice about the project as well.

Cheers!