image analysis/openCV object detection - image

I'm attempting to experiment and get started with image analysis and OpenCV
My aim is to detect certain objects in random pictures, which are easy to detect, for example: symbols and brand logos. I'd also like to be able to detect more variable features like facial features, porn features. usecase: autotagging, autofiltering
My questions:
Where should I start learning applied image-analysis in the context of my aims?
What are important existing concepts/approches that I should introduce myself to?
What are good existing solutions/components of OpenCV which i can feed with training-datasets of example pictures showing the objects of interest and then make a human manually outline the shapes of interest in order to make it learn to detect the features.

Related

Simple program to create moveable "cards" on static background?

I am an educational content developer converting traditional lessons and materials into online activities. I make videos showing these materials being moved around a table or board, and need a way for them to practice at home.
In the past, I've just made each card/etc on a Google Slide and set it up for kids to manipulate, but that can lead accidentally stretching or deleting something (or just playing around).
What I need:
Import images.
Set one image as background
Set other images as cards that can be clicked and dragged on background.
Ideally, set specific areas where different card can be placed.
Place starting cards in stacks (ideally, either in specific order or shuffled)
Return cards to original stacks with one click.
Ideally, cards on which users can write their own text and/or import picture.
What is the easiest way to achieve this?
Stencyl seems totally capable but can do more so the tutorials aren't focused on something so simple. Dulst is built for cards specifically, but it seems more oriented to a Pokemon-style attack-your-enemy's-cards game.

Is it possible to programatically create labels in AutoCad?

Our engineering department wastes a great amount of time reviewing drawings for errors. The majority of these problems involve human errors in labeling (ie. two rooms have the name 01-01-00-RM). Our IT department has come up with a partial solution by automation the room names. However, the engineers still have to type this into AutoCAD.
Is there any way to create labels in AutoCAD based on another file (ie. an Excel/CSV document)? Ideally, one would create a group in a layer and enforce that all elements be unique, then have them retrieve their values from a document.
EDIT
Some screenshots of the labels. Note, for company reasons, I can't put full PDF screenshots up.
First image showing compact label next to a camera. This was on a floor plan overlay.
Second image showing the full lable next to a camera. This was in the block diagram
Yes it's possible, there some different paths:
Lisp: very common on AutoCAD environment and allow some basic (and not so basic) automations.
VBA/COM: can be used from inside AutoCAD or by external process, just need to CreateObject("Application.AutoCAD") and program the steps
.NET or C++: in-process automation that allow powerful customization, up to a major remodeling of AutoCAD.
So, depending on your expertise, you may choose different approaches. It may also combine with batch processing via AutoCAD Console.
Find more at http://www.autodesk.com/developautocad and at the blog http://adndevblog.typepad.com/autocad
If the labels were blocks with attributes then you could use the ATTOUT and ATTIN commands in Express tools to export / import them in to/out of Excel. Watch for cell formatting in Excel - eg. numbers like 1/2 turn into dates if you leave the formatting as "General".
Programmatically this is reasonably trivial if the data is structured. An AutoCAD drawing is actually a hierarchical object database so everything in it is addressable, finding it is often the hardest part. If you have an AutoCAD installation handy, have a look into a drawing with MGDDBG to get an idea of the database structure.

OpenCV FaceRecognizer - facial recognition. Does anyone know of a link

With the class FaceRecognizer of OpenCV anybody has a link to somewhere explaining with available source code how to use it to save a model from images (say cropped tags of the same person in photos) and then with any other image that wasn't used to make the model load the model saved of the person(s) (possibly previously stored in db) and find a match on a photo from the stored model therefore calling it facial recognition? This would be a breakthrough for a small social network I have that already uses facial detection to tag people now I need the facial recognition to be able to implement automatically tagging in photos recognizing the users in the images.
Been looking but can't find source code, it's been over a year since the class has been released, for facial detection there's source code as to detect nose, ears, eyes, eyebrows, mouth, etc but not for facial recognition.
Have tried from the official opencv site with the documentation they have, they do post source code in chunks making you think how to put the code in order but haven't been able to compile what I had created to save the model "trained" from an array of photos.
I am afraid you are more than mistaken. There are lots and lots of face
recognition documentation.
Just a quick search on google, http://docs.opencv.org/modules/contrib/doc/facerec/facerec_tutorial.html
Is this the documentation you are talking about? There are many examples, pretty clear cut and straight forward with source code. Which part are you having problems from the documentation? The codes are not in chunks, and it's the whole code by itself. Do comment on my answer so I can help you.
If this is not the documentation you talking about, then have a look at it. Example source code all included inside. Cheers.
Last but not least, when you say trained, you are talking about classifier? If you already have trained it, there's no need to compile it, just insert the path of the classifier into the program.

Programmatically generate video

I want to dynamically generate videos.
My program needs to query a database to get certain information (height, width, color, speed, ...).
Based on this information it will generate a video of several simple 2D objects moving in certain ways.
This needs to be saved in some sort of videoformat, preferably usable in HTML5.
There will need to be several 1000s of videos like this created on a daily basis.
What is the best technology to develop this in ?
I am looking for ease of use but also the speed of generation.
I am familiar with java, flex, perl but I am definately willing to adept to another language if necessary.
If you're open to using Mac, Apple's Quartz Composer (included free with the Developer Tools) might be useful for this purpose.
With Quartz Composer, you can easily create graphic animations, and make them parametric (so you can set input values for the animation).
Kineme's QuartzCrystal provides a way (both via GUI and command line) to render these animations to QuickTime movies and image sequences.

Qt, CEGUI or wxWidgets for a text game GUI?

I tried to sign up, but I was unable; perhaps a problem from my side. Hopefully I'll get an answer as anonymous.
I apologize for the grammar/syntax, but English isn't my native language.
Recently I lost my job, so I have enough spare time to try something fun. I decided to create a simple text RPG game for me and some friends. It will very close to the board games like Talisman, Dungeon Run, and HeroQuest, using dice and a simple attribute/skill system. So no 3d graphics. The only 2d element, if I decide to include it, will be a map
that will allow the hero to move between locations. Currently I'm using Windows XP SP3, for the game I use wxDev-C++, and although cross platform would be cool, I don't really care.
I have some experience in C++ (currently using wxDev-C++), but I'm far from being called an expert or even a great programmer. I was about to start writing parts of the code, but I decided to check if creating a GUI for the game is possible. In some forums, many suggested I use Qt, CEGUI or wxWidgets, but most examples I saw are grey boxes that are
indifferent at best, when I want something that fits better in a fantasy setting. I don't claim I would do better, but I want a GUI that is more fantasy related.
What I want from the GUI:
1. A "cool" Gui with decent graphics. I could even create an image to serve as a mask in Photoshop, but the GUI builder will have to support imported images.
2. A relatively large textbox in the middle (with a scrollbar) that will display die rolls, damage and options.
3. The ability to display dynamically values (like the change in the health after each action without requiring to refresh manually)
4. Display an icon or a small image of the character in the area where I display stats/abilities.
5. Open new windows created with tha same GUI builder to allocate points, buy/sell things and open a map.
About the map in the game: I decided to create a map in photoshop. When the hero decides to move to another location, a new window will open showing the map. I thought of 2 possible ways to move between locations: 1) Create hotspots on the image and select one by clicking on the name of the location.(I dare not think about the complexity of this so we
move to idea #2) and 2) Have the image as a backgroung to a grid with vertical and horizontal coordinates. When the hero selects a new area to visit, he clicks on the area, but what he really does is click on the grid, which returns the two values (x,y) of the location and informs the game about the area the hero wants to visit.
Yeah, yeah, I know it's too much, so what I'm most interested in are the 1-3. I know that even if they are possible, it will propably take forever, but as I said I have spare time, and I like learning new things. I apologize for the size of the post, but I decided to post as many info as possible so you know what I want.
If any of you has used Qt, CEGUI or wxWidgets could you tell which covers most of my criteria? I saw some great stuff build with CEGUI, but I don't know if it is too hard to learn?
Thank in advance.
I know my answer comes pretty late, I only recently started using stackoverflow fairly recently, but maybe this response will help anybody.
CEGUI fully supports skinning widgets using XML. Our CEED editor (WYSIWYG) fully supports layout editing, but the skinning editor (LNF editor) is not finished as of now (11.11.2014), the development version supports exchanging images however and changing sizes and proportions, but more advanced adjustments have to be done in XML.
CEGUI has an imageset editor, fully supported by the CEED editor. Creating imagesets (sets of named subimages, with position and dimension inside a big texture atlas) is supported there. Additionally there is a way to create imagesets from just a bunch of jpg/png/... files using a tool. You would have to ask for specifics in the forum though because it is not integrated into CEED yet.
So basically with CEGUI you are free to make whatever fantasy GUI you want. Skinning simple elements like buttons and progress bars isn't much work in XML anyways. Without the finished editor, some more advanced widgets are more work to skin, but many skins have already been created done this way and some of them are even publically available in the forum and in the CEGUI stock files.
StaticText widgets supports what you want, you can even use images in there or change fonts and colours in the text if you want. Scrollbars are supported too.
I am not sure what you mean by this. You have to specify this.
A simple "Generic/Image" widget is available in CEGUI for this purpose. You can use precreated images or even RTT textures.
You can create and destroy windows in CEGUI without issues.
Regarding the map: I m not sure what you mean, but getting the position of a click in respect to an image (representing the map) is possible in CEGUI.
CEGUI is not particularly hard to learn. There is always the forums and the chat if you got questions. For an Open Source project it is quite well documented so if you read all of the API docu, and look at the supplied samples in the sample browser, you should already get quite far. And for everything additional there is the forum (search), the IRC chat and a community wiki (mind the targeted versions of an article there though)
For a project like yours, CEGUI seems perfectly suited (this is what it was created for in the first place). Qt is not really optimal for games for numerous reasons. wxWidgets I have never used.

Resources