how does SLAM extract landmarks? [closed] - computer-vision

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
In the "slam for dummies" tutorial, laser scanner was used, and two methods of landmark extraction were shown.
But most practical SLAM implementations are based on camera images. In these applications how are landmarks extracted? The Durrant-Whyte paper does not mention it and I could not find an end-to-end demo project that includes landmark extraction.

Usually landmarks are many distinct, salient features like blobs or corners within an image/frame. Salient features in computer vision are an art in itself. There are dozens of different approaches to extract, describe and match such features (you obviously need to recognize them in different frames).
Wikipedia has an overview and here you see a video of a practical SLAM implementation running on a mobile phone (a little bit of advertising for an excellent university:).

In case of images, they uses feature matching algorithms like SURF or ORB. ORB SLAM, one of the most popular open source slam solution uses ORB feature extraction only.

In vision-based applications, firstly features (interest points) are detected. The feature description step detects salient features only such as corners, blobs etc. and it doesn't make sense alone. Feature descriptors identify each feature in the scene. From this moment, you can choose the ones you want as landmark, keeping in mind your SLAM algorithm.

Related

Multiple View Stereo software recommendation [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 12 months ago.
Improve this question
I have a collection of camera images taken by 4 calibrated cameras mounted on a mobile robot moving in a static outdoor environment. In addition, I have information from a farely accurate OxTS RT3000 Inertial Navigation System (IMU + GPS).
I would like to combine these images to form a 3d model (point cloud) of the static environment. I know there are many Structure from Motion applications, but I would like to find some software/library that is able to make use of the odometry and calibration, at least as an initialization, and to produce a dense point cloud. (All of this is for offline recordings.)
Any suggestions?
Agisoft Photoscan does what you want. From their manual:
PhotoScan supports import of external and internal camera orientation parameters. Thus, if precise camera
data is available for the project, it is possible to load them into PhotoScan along with the photos, to be
used as initial information for 3D reconstruction job.
Taken from page 21 of http://www.agisoft.com/pdf/photoscan-pro_1_4_en.pdf
You may have to do some wrangling of data to get it into a supported format, but it's certainly possible. You'll probably want to use the local coordinate output of the OxTS IMU to go from lat/lon/alt to XYZ and save yourself the conversion. Be careful also to correct for the extrinsic parameters - the rotations and translations between the IMU navigation frame and the cameras.

How can I programmatically identify altered frames from a video [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
A video can be edit by deleting some frames from it.that can be done by deleting consecutive frames or random frames in that video.
we need to detect the tampered videos, we hope to do this by detecting frames which has been altered , simply we need to have an algorithm for way to identify deleted frames.Because we are creating a tool which could use for tamper detection as a video surveillance tool.Which could use in law enforcements and courts
Is there any method to identify that frames of a video has been deleted by malicious attacks, there are already available methods such as watermarking, digital signature, but we need an algorithm to detect that frames by using proper algorithm.
In general, whatever image sequence I am handed, some or all of it could have come from a real camera, from Photoshop or from a 3D renderer, and there is no general purpose image processing technique that will be able to tell the difference based on analysis of the image content alone, either well enough to stand up in court, or, indeed, at all.
You'll need to embed some easy to recognise yet difficult to fake, relocate or tamper with signal into the video at recording time. You've tagged the question "opencv", but the fields you want to investigate are cryptography and watermarking, not computer vision.
Have the video surveillance equipment use public key crypto to visibly watermark each frame with an identifier unique to the piece of equipment, a timestamp, a frame sequence number and a hash or other suitable function of the frame image, using a scheme robust to compression.
Tampering with the video sequence will then require either knowledge of the device's private key, or removal of the watermark. This isn't great (keeping the private key secret will be a logistical headache) but is probably the best solution you can get.
this can't be done in general. However some approaches may be possible.
the used video format may support frame wise meta data that stores the index or time index and that is not touched during editing
the image sensor itself may be configured to write some meta data to some specific region of the image
you may have some external reference that was imaged by the camera and may help identify missing frames
precise clock
fast blinking indicator
some uniform motion

Recognising Image Patches - Advice Needed [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I am looking for advice on algorithms that would allow me to recognise an image patch of a hand. So given an image, I would like to extract patches that would belong to a hand (those will be positive patches). Everything else would be negative patches.
My target application is to distinguish a hand (of any hand shape) from other objects without using colour, by being able to identify if a patch belongs to a hand..
The figure below depicts what I have in mind,
The only problem with hands is that it can take any shape form. Are there any suggestions or algorithms to do the above?
Thank you in advance.
This is a very broad research topic, so you are unlikely to find any good example software available, but you are likely to find many research papers in this area, and if you are lucky then you might find some where the authors publish their code.
You've given a picture of a cat, so taking that as inspiration I did a quick search and found this paper from the Andrew Zisserman group at Oxford University. Another group to look into is that of Jitendra Malik at University of California at Berkeley who have an interest in this area using a combination of image segmentation and feature detection.
Depending on your motives search terms could include: deformable shape models, skin segmentation (although you say you don't want to use colour - why not?), object detection. The possibilities are numerous, and they are all current research topics throughout a number of computer vision communities.

OpenGL: navigating a 3D scene (a room with walls) with collision detection [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
For a school project, I have to be able to move inside a 3D scene like a room and implement collision detection with its walls.
I'm looking for tutorials and bibliography that deals with the subject.
I already have the Redbook and Opengl's Superbible.
Simplest thing that comes to mind is using a Colour Map of the top view of the room.
Basically you create a bitmap using only 2 colours:
One that will determine your 'walls'
One for 'everything else'
Here are a few articles found by googling:
2D Collision Detection using a Color
Map
Collision Detection and Bounce
Calculation using Colour Maps
They use different languages, but that's irrelevant, the principle is the same.
Once you've got the colour map, you will have ratio to convert from x,z in your 3D to x,y in the 2D colour map. In theory, if you want, you could generate the colour map at runtime, rendering an ortographic top view. You would render just the walls using the fact that the walls will probably by the 'tallest' objects in your scene.
HTH
Those guys are pretty good at it: http://www2.imm.dtu.dk/visiondag/
You can try and contact them. I took a course there but I don't have the exact references here.
Here there is a course links with tutorial:
http://www2.imm.dtu.dk/~bdl/virtualreality.html
There is an entire book on Real-Time Collision Detection.
Before you write your own collision detector from scratch, you should consider implementing the rest of your setup and plugging in an existing library. It is much easier to develop a program, if you have a correct result to compare to.
The GAMMA research group has developed a number of collision detection packages that are popular in robotics and more. You or your institution may ask them for a package for non-commercial or academic use. One of these packages, PQP, is the inspiration for Yaobi, an open-source C++ library.
Yaobi and PQP are both easy to use, requiring only a bunch of triangles to model a geometry.

How to start writing a music visualizer in C++? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I'm interested in learning to use OpenGL and I had the idea of writing a music visualizer. Can anyone give me some pointers of what elements I'll need and how I should go about learning to do this?
If you use C++/CLI, here's an example that uses WPF four (fourier that is;) display.
He references this site (archived) that has considerable information about what your asking, here's anoutline from the specific page;
How do we split sound into
frequencies? Our ears do it by
mechanical means, mathematicians do it
using Fourier transforms, and
computers do it using FFT.
The Physics of Sound
Harmonic Oscillator
Sampling Sounds
Fourier Analysis
Complex Numbers
Digital Fourier Transform
FFT
Ahhh, I found this (archived) a few minutes later, it's a native C++ analyzer. Code included, that should get you off and running.
My approach for creating BeatHarness (http://www.beatharness.com) :
record audio in real time
have a thread that runs an FFT on the audio to get the frequency intensities
calculate audio-volume for left and right channel
filter the frequencies in bands (bass, midtones, treble)
now you have some nice variables to use in your graphics display.
For example, show a picture where the size is multiplied by the bass - this will give you a picture that'll zoom in on the beat.
From there on it's your own imagination ! :)
Are you trying to write your own audio/music player? Perhaps you should try writing a plugin for an existing player so you can focus on graphics rather than the minutia of codecs, dsp, and audio output devices.
I know WinAMP and Foobar have APIs for visualization plugins. I'm sure Windows Media Player and iTunes also have them. Just pick a media player and start reading. Some of them may even have existing OpenGL plugins from which you can start so you can focus on pure OpenGL.
If you're just after some basic 3D or accelerated 2D then I'd recommend purchasing a copy of Dave Astle's "Beginning OpenGL Game Programming" which covers the basics of OpenGL in C++.
For the music analysis part, you should study the basis of Fourier series, then pick a free implementation of a DFFT (digital fast fourier transform) algorithm.
You can find implementation of FFT algorithms and other useful informations in Numerical Recipes in C book. The book is free AFAIK. There is also Numerical Recipes in C++ book.
You may want to consider using libvisual's FFT/DCT functions over FFTW; they're much simpler to work with and provide data that's similarly easy to work with for the sake of generating visuals. Several media players and visualization plugins use libvisual to some extent for their visuals. Examples: Totem (player), GOOM (plugin for Totem and other players), PsyMP3 2.x (player)
From my point of view...check this site:
http://nehe.gamedev.net/
really good Information and Tutorials for using OpenGL
edit:
http://www.opengl.org/code/