New Features in this version

Using Context in Recognition

Within Picture Recognition the main technical difference will always be how to give the computer the ability to think in terms of context on the initial find and then the analysis stage. I have attempted to do this by giving the software a sort of memory. Humans learn from near enough the day they are born and each day after that they learn just a little bit more. If you wish to test this it is quite simple to do so, ask a five year old what communication means and they will be totally lost and the same person what communications means when they are ten years of age and most will have a fair idea.

Even now if someone gives you something that you have never seen before and something that you are not familar with then you will say something like; so what is that. You may see the object well enough but seeing that object and making sense of that object are two different things. However if you put the same item in its context then it is possible that you will be able to have a fair guess of what that thing actually maybe.

Now take all the problems with programming and implementing a memory system into the software then the complexity starts to mount. From a non technical point of view you would expect the software to find every picture given a good sample. However if picture recognition was that simple everybody would be producing good quality software that got perfect results everytime.

Therefore once you understand that picture recognition of any sort is very difficult indeed then when software starts to find pictures with the same object in them there should be some sort of wow and amazement.

Today the closest we have really got to picture recognition is software that in the most can recognise just one particular thing. For example face recognition where the software only looks for a face or recognition where the software is designed to look for a single thing like a unique pattern.

This is really as far as we have reached in the most when it comes to software recognition. Even software that recognises things like houses are usually programmed to only recognise a single item or part of that building in some detail. Iris recognition again is looking for a pattern in a specific thing; the eye. Even to achieve this there is some very impressive and complex code usually at work. But this is really the high end limitation so far achieved.

Therefore general picture recognition is just a different discipline trying to achieve the almost impossible. If we are only recognising a picture from the outset we are at a disadvantage. We cannot make certain assumptions made by humans. For instance we cannot usually identify movement. Secondly we cannot use sound to help put a picture it its correct context. But what we can do is use other pictorial context within the picture to help us make sense of that picture.

Context within the general picture recognition software can be turned on or off. It really gives an advantage being ON if you know the type of picture your looking to find and therefore will reduce redundancy. An example is if you know that you are looking for a similar picture with blue sky and say below that is a house and below the house is a road. Context will look for images that relate in this way to each other. This is a very simple example but in reality the actual technical challenge is very complex.

So version 4 is my first real go at implementing context recognition into the software itself. I have seen an improvement in searches made that relate to the same type of context that is within the original sample. It however does take a little thought before deciding whether a sample image has a similar context. I am really very happy with this new functionality and I have noticed that it really does reduce redundancy.

Time Laps for Photography

The other big new feature in this version after user feedback is a new feature that has several applications. It can be very useful in time-laps photography, or research or amateur photography.

Motion Detection for Still Pictures

It's actually motion detection but with images. It can also be used to distinguish between two or more images. However it is not "Picture Recognition" its more about comparing the background or original picture with other new objects. If there is a difference then that image is flagged and put into a list. You can even view the difference between the two images by allowing the software to highlight the difference in "Yellow".

You would think that this is a very simple thing to achieve and if you are taking photos indoors and take a background then take another shot and put an object in it. But once you start to add several other parameters then it can get much more complex. The first problem you have is attempting to line up both pictures. Because you would have to line up using a pixel compare then any change in colour would make the result uncertain. It would work if the lighting was identical but any change in lighting would make it almost impossible to guarantee the vertical and horizontal off-set. Skew within the picture would also make it impossible to align correctly. This solution would fail often. Also computer power would come into lining up the image correctly. There are several ways of attempting to achieve this but the problem is that each method really has time delay factors involved. If alignment is not a problem because you are using a tripod then results will improve because the compare is going to be guaranteed more accuracy, apart from changes in light. There are however other light factors that have to be considered. What if your outdoors and the light changes quite a lot during the period you are taking photos. This may happen several times, cloud, sun cloud again also you have the possibility of rain etc. Therefore you need to have the flexibility of being able to adjust for best results.

Tripod is difficult but what about Hand held

I wished to push the boundaries a little further. Say you wished to use a handheld mobile phone camera. This could be done however you would expect some shudder, skew and slight movement between photos. All of these things make it more difficult to recognise change between two photos. This is because even if there was no new object introduced into the backgrounds both backgrounds could be significantly different. Take a camera and change the vertical angle only by a couple of degrees and the light will change a lot. The problem here is that when light changes also colour is reflected back to the lens differently, also include shudder and skew and you will soon find that a computer would see the two background images as completly different images. This is not good because it would then think that they were different images when infact they were just the same background.

The software is complex enough however to handle both types of pictures. Picture taken with a tripod and pictures taken handheld. The software can calibrate for either Tripod (little or no movement) or handheld (some movement,and skew).

The concept that I think really does not work well enough is colour compare. The concept I have used is my concept and my concept alone to deal with this problem and its based on the concept of Mass not just colour compare.

This has some huge advantage for instance it will be able to compare object that pass through the background that are quite similar on colour. Colour compare just fails when this situation happens. Also colour compare will fail when the object is very very small compared to the whole picture. If there is any sort of movement in the background with the object and the background without the object. However there are limits on the handheld method. The size of the object needs to be a fair proportion of the image. However using the tripod method the object can be very small.

The mass methods seems to deal with these situations much better. Also using handheld with movement and skew fails a lot when using colour match methods.

Something that you would think would be very easy in practice is actually very difficult to achieve however in the main part I think the General Picture Recognition Software gets around these issues most of the time.

Web Cam and Motion Detection

I must say this has been my favourite area when designing this new function given user feedback. There seems to be a requirement for good motion detection software that can use a web cam or security cam. Currently this software only works with certain web-cams. Well the one I purchased to test it with I guess it will work with some others as well. I have given the name of the web-cam that I tested the software with, it retails at about £6.00 also microsoft web cams seem to work..

I have taken a great deal of time with this side of the software and have worked hard at developing motion detection software that will work in just about any condition. I have also incorporated a lot of Auto functions for instance if the light changes then it will adjust the light etc. This motion detection software works well indoors and outside you can even choose an area of the web-cam feed (picture) and eliminate areas where there are natural movement that cannot be avoided like a tree moving in the wind. To some extent it will even compensate for a slight amount of tree movement when calibrating. Also you can set auto position, this means that if you move the web-cam it will auto refresh the background. On testing I have got some very impressive pictures like a spider moving through the width of the camera at night near the skirting board. To boats coming into dock and other things like bird life in the back garden as they look for food. I must say I have really enjoyed using the web cam its been great fun and you can leave it for many hours and once an object moves through the web-cam path it starts to collect stills of that movement. You can scroll through them and get an interesting moving picture. Well that's enough about the web-cam.

TECHNICAL INFORMATION BELOW ABOUT THE PICTURE RECOGNITION SIDE -

New Technologies and a New Age for Picture Recognition (Version 5)

More information on context. We all view things in their context, if you take something out of it's normal context then you often find it is more difficult to identify that if it is in its context. With picture recognition there are several advantages to using context in certain ways. If you have a fair idea of the sort of picture you are looking for then context is very helpful. Take a simple example if you are looking for an outdoor type picture then setting context on will help find similar pictures and reduce redundancy or another common term used is reduce false negatives. The main disadvantage with context is that it will not usually look at similar pictures that are outside the parameters of the type of context than the original sample.

This software is Copyright Protected and all intellectual rights also belong to myself.