As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have a project to recognize the footprint of animals. It is similar to facial recognition.
There is a need to store footprint images in a database and compare them with images captured by camera.
What is the appropriate programming language to do this?
Any language can be used for image processing, pattern recognition and object detection, which is what you're trying to do here. But you're better off finding a library or even an application instead, and then picking the language based on that choice.
Matlab is fine if you're familiar with it, unless you plan on delivering a working system that will be used by others to add or annotate data. In that case, you'll need something easier to deploy beyond your own workstation.
OpenCV might be a good place to start, and there's an OpenCV tutorial here.
Since it's a similar problem, you may want to check out the Face Recognition Homepage for more detailed information.
I think the question is rather how you represent the data and determine likeness/sameness/distance measuring rather than an implementation language.
Lisp is a strong candidate, as is C/C++ - but really you are probably better off with whatever language you/your team knows best.
Again, figure out the data representation first.
Also - find another imaging/matching solution out there. There are already ones for license plates, fingerprint, etc - and maybe just use that source. The roblem is mostly solved...
If you need to get something working quickly, I would suggest Matlab or some similar math package. There are a lot of built-in algorithms that you can use for image processing and rapid prototyping.
Your biggest problem here is developing the algorithm, not choosing the language. My advice would be to prototype your project in Matlab, if you have access to it. What you are trying to do is an active area of research, and many researchers prefer Matlab and publish their Matlab code. This means that you may be able to find Matlab code on the web that may do at least some of what you need, such as image segmentation.
I would advise against using C++, unless you actually get your algorithm to work, and speed becomes important. Matlab would allow you to quickly try out ideas, and avoid spending most of your time on implementation details. Once you develop your algorithm to the point when you are happy with the results, then you can think about implementing it as a usable system in a "real" programming language.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
If so, what is the storage and memory footprint?
EDIT
I had done some research about this, but failed to find useful information. The site http://www.erlang-embedded.com/ doesn't help at all. The blog article http://www.1011ltd.com/web/blog/post/embedded_erlang was a little helpful, but It would be nice to hear answers from people with more experience.
EDIT 2
The hardware that I intend to use for Erlang has 32Mb of FLASH storage for the system and 512Mb of RAM. It is dual core with 400Mhz per core. It runs Linux version 2.6.18.
EDIT 3
The motivation behind my interest in Erlang would be to solve gracefully concurrency problems. On the project that I work we have some complex middleware software that is not robust, it's hard to understand and hard to extend. Of course, you can write great concurrent software in C, but Erlang just seems like a better tool for this problem domain.
What is embedded for you?
In my world it's a system with less than 1MB Flash and typically ~64kB Ram.
In my world exists C and sometimes also C++ compilers.
But nobody heard ever for an erlang compiler for such a system (and nobody missed them).
But if embedded is for you WindowsCE or a linux running on a non PC basis hardware with > 64MB Ram and 1GB Flash,
then there should be no problem with erlang.
I would echo the sentiment that the question is vague. But, ...
Not trying to troll, but I think the answer is either "Yes!!" or "No!!" depending on your assumptions regarding hardware and what problems your are trying to solve that aren't easily solved by something more standard like C (i.e., why aren't you using something like C, there must be a reason... reducing code-size, need hot-upgrade, {erlang_value_prop, n}, etc.).
Under a certain set of criteria, the answer seems to be "yes". Evidence includes:
EMBEDDED ERLANG? ABSOLUTELY (http://www.1011ltd.com/web/blog/post/embedded_erlang)
Its embedded use in ATM switches and other telecom equipment
There is (or was) an embedded-Erlang group on Google
I think Ulf Wiger has an Embedded Erlang slide-deck as part of his work with Erlang Solutions
etc
No,
Many embedded systems don't have Erlang compilers, while all have C compilers and most have C++.
Erlang lacks the low level access required by an embedded system.
Its certainly possible to get Erlang on a cluster of Raspberry Pis, but this isn't an embedded device.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
As the title says, any pointers are much appreciated.
I am exploring, where do we stand in terms of ML/NLP efforts, in context of solving (to begin with - parsing) Math Word Problems.
We have decent enough softwares in likes of Mathematica which can solve well formulated math equations.
But when it comes to solving math problems expressed in natural languages, I could not find anything substantial.
When I think about how to approach this, I see it as a sort of Machine Translation problem (translating from English to Math-equations), but there is hardly any 'labeled' data for that. Other approach can be semi (or un) sypervised Relation Extraction.
Since these are just random thoughts, I want to start with some existing work/papers in this direction. My otherwise decent googling skills, didn't help much.
I don't know of any work that parses language into mathematical expressions: the closest I can think of is semantic parsing, where the goal is to translate text into logical forms. There are supervised attempts at this, but I suspect you're right to say that there is no labelled data available. You could consider an unsupervised variant too.
I think your intuition that it's similar to machine translation is partly correct, and indeed alignment techniques would form one half of the solution. The other half is what would replace your target language model, which is an interesting problem for mathematics since you'd be looking to determine whether the resulting mathematical expression was "well-formed" or meaningful.
I hope that's of some use, and sorry I couldn't point to anything on your specific problem.
Wolfram|Alpha are some way along with this, but I don't know what papers are driving the progress they have made. You can check it out here
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm starting a Computer Vision project, and need to build an interface between a "Vision Agent" I want to develop and Images and Videos it should use as input.
I'm working in C++ and this interface should expose some methods for low level Input/Output operations:
load Image (in memory)
load a pool of Images (saved in a Directory)
access a single pixel in a loaded Image
load a Video as a pool of Images (would like to decide time interval between each frame)
load a single frame of a Video as an Image
I'm a newbie to Computer Vision, and need to find an efficient library that will help me implement this interface.
By browsing on the web I found some of the most used libraries for this kind of projects, such as:
OpenCV
VXL
IVT
What I'd like to know is:
Has anyone of you has worked with one of these?
Do you think they are appropriate for my task?
If yes, which one is better in your opinion (more usable and efficient).
Do you have any other suggestions?
ADDED QUESTION:
Do you know what kind of license these libraries (or other suggested ones) are produced under?
I worked with OpenCV. I don't know (or remember) the other but OpenCV is quite a first choice.
It supports all of the features you mentioned. These are rather base needs.
Keep in mind that OpenCV is rather low-level library. You will work on image matrices and some common math or statistics functions as well. It may be hard at the beginning.
I would suggest reading (or just browsing) O'Reilly's 'Learning OpenCV' especially to make use of more advanced features.
EDIT: OpenCV will be efficent for sure. Its image frame-by-frame processing would be a benefit for your needs. It is released over BSD licence.
I would also suggest OpenCV for your task at hand.
You may also check this older question for other possibilities and opinions.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
According to the computer language benchmark game, the LuaJIT implementation seems to beat every other JIT-ed dynamic language (V8, Tracemonkey, PLT Scheme, Erlang HIPE) by an order of magnitude.
I know that these benchmarks are not representative (as they say: "Which programming language implementations have the fastest benchmark programs?"), but this is still really impressive.
In practice, is it really the case? Someone have tested that Lua implementation?
There's a good discussion at Lambda the Ultimate. LuaJIT is very good.
Many people have reported impressive speedups on lua-l (the lua mailing list). The speedups are most impressive for pure Lua code; the trace compiler is not as effective when there are lots of calls to C functions in loadable library modules.
In my case (a game prototype development), I observed no performance improvement at all. I use lua for embedding, so there are lots of calls to C++ library functions. Even though main loop is in a lua script and all of the important logic is implemented in lua, the overall performance was determined by rendering engines and physics engines implemented in C++.
The original lua is already fast enough for such applications.
I made an experiment with the lesson learned here: http://www.sampalib.org/luajit2.0_tunning.html
Some data are not that valid anymore ( maxmcode=1024 is enough ), but luajit brings a robust improvement on a 600 lines of code pure Lua script (no C call to hit perfs...) that is not a large scale application nor an embedded use case but much more than the benchmarks.
The performance of JIT depends on two things: performance of original scripting language, and the performance of the compiler.
Compiler is a pretty mature technique and most JIT compiler have comparable performance. However, lua itself, i.e. lua-without-JIT, is probably one of the fastest scripting language.
lua is faster than Java-without-JIT.
lua is faster than Javascript-without-JIT.
lua is faster than most-scripting-languages-without-JIT.
so,
lua-JIT is faster than Java-with-JIT (the sun Java),
lua-JIT is faster than V8 (Javascript-with-JIT),
etc, ...
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I've been considering experimenting with game development and XNA. I'm already an expert C/C++ programmer. I read through some C# books, but haven't done any development in C# yet.
What's a good resource for learning XNA, from the point of view of someone who's already an expert programmer?
I'll second reimers and the creators.xna.com samples as a good way to get a handle on how to quickly whip things up.
On the other side of the spectrum, I highly recommend Nick Gravelyn's Tile Engine tutorials. It's a different approach, as the entire series is presented in video. It seems like a great place for beginners to get started, though new coders might have a bit of trouble with his pace. Having said that, the section on the Content Pipeline (which is an XNA-specific implementation of the pipeline concept) is a good introduction.
Ziggyware also has a good selection of tutorials, some of which are more advanced.
Shawn Hargreaves, one of the XNA's devs, has a great blog that let's you in on the internals of XNA a little more. Check out the archive if there's a topic that interests you in particular.
This is good: http://www.riemers.net/, just keep in mind that navigation is through the bar on the right. I must have been tired because it took me a while to figure it out :-O
Check out the XNA homepage and the tutorials over there, under Community -> Resources. As an experienced programmer you should be able to take it from there.
For more in-depth infos browse the XNA Team's blogs, also linked from the XNA Creators page.
I would say that a library called XNA Debug Terminal should be of some help to you. It is open source and can be setup in seconds. It allows you to see the value of any variable, invoke any method, watch values changing in real-time, and more by simply typing c# code into a terminal-like display that appears atop your game window. Unlike the normal Visual Studio debugger, you can invoke arbitrary code while your game is running. You can find out more about this at http://www.protohacks.net/xna_debug_terminal . This will greatly help you to avoid a lot of frustration while learning XNA.