Thursday 7 January 2016

Day 3 - Sight

Well, my webcam arrived, nothing spectacular, just some Logitech HD thing. I figured it would do the job.
Plugged in and ready to go.

I managed to find some Python packages that suit my needs, unfortunately they sit on an older version of Python that I was currently using. Which is fine, it just means I need to do some compatability testing at some point. My main goal today was to make sure I could open my camera via python.

And I managed it, sort of. It's annoying because I wanted to tick of "Stage1" tonight. Basically it turns on, but doesn't turn off. It quits responding and crashes about 2 seconds into activation.
This is a fairly big problem at the moment, but at least it turned on, so that's positive.

Whilst typing this, I had a brainwave, 15mins or debugging and it works.
Running the code, the camera turns on, clicking the mouse turns the camera off.

It's baby steps, I understand that but the components are slowly coming together.
I now have code that -  Turns on a camera
                                   -  Checks a database for a list of names and returns if it knows (Soon to write                                           new names into the database as  a rudimentary memory)

But yeah, I feel like I'm in a good place with this after the first few days of work.

Stage 1 was to give my AI (still need a name) sight. Mission accomplished.
Now, onto the more complicated things

Next steps  - Still need a name, possibly SEER
                   - Move my memory code over to Python 2. whatever I'm using now, 2.7 I think
                   - Work on writing things to memory

At least I dont have to spend any more money for a while. I'm thinking the next expense will probably end up being a server or something, long way to go until that becomes something approaching a necessity though.


First picture from SEER

Tuesday 5 January 2016

Day 2 - Learning more Python and basic memory

I'm trying to get into the mindset of exactly what I need to do.
First off (at least until my webcam arrives) I need to understand more about the language, and also more about the nature of how we remember things, and how we store memories.

I'm doing the latter as I'm learning the former, best use of my time.

A "What is your name?"
B "Mike"
A <Searches memory>
A "I know you" or "We have never met"

This is the basics of what I have achieved so far.
Linking the python interface with a simple excel sheet I have a list of names. My AI (Need a name for this) will search the excel sheet (it's memory) and try and find a match, then return a value if we've met or if we haven't.

Very basic but it's a good start and it works.
This will work in a similar way to my end products short term memory bank.

Text is different to image though but I believe conceptually they're the same thing. for my upscale replace excel with a proper database and connect it to the internet for its learning and we're talking business.

Feels like I'm making good progress.

Next steps

Think of a name for him/her/it
Give it the ability to learn (write to the excel sheet)
Set up the webcam and find out how to make it see

Monday 4 January 2016

Day 1.5 Progress so far

My first few hours looking into this were actually fairly fruitful.

I've landed on python as a definite go for language. I just need to learn more about how it works.

My first challenge is to create a UI that asks for a name, then python will search for that name on a memory bank (temporarily excel) and if the name is in the list it will return "I know you", else it'll return "We've never met".

Something basic and I'm halfway there. I think it's a fairly sensible starting point as recognising text input is also important.
I've learned a bit of python. I've also ordered a decent webcam. I'm future proofing the project by getting one with a microphone built in, you never know.

So I have software and the hardware is on its way.
All the gear but no idea as they say. I'm excited though. I won't be working on this everyday, but my aim is to devote a fair bit of time towards it, so stay tuned for updates.

M

Day 1 - Ground Zero

Right,
Who am I? and what am I going to do?

I'm an amateur developer, amateur down to experience, I actually create analytical tools for a major international retailer. These tools are mainly down to forecasting likely profit/loss of ranging decisions, but I dabble in a variety of other tools.
I'm self taught and I've been doing these odd bits and pieces for the last three years. What I lack in experience I make up for in ambition and effort (most days)

What I'm going to do is create an AI like system that can correctly identify objects by sight, and then to understand the relationship between objects.
I'm breaking this down into three stages

Seeing
Recognizing
Understanding

Seeing - Just as it sounds, making a computer see.
Recognizing - Not just seeing objects, but returning what that item is.
Understanding - Not just recognizing an object, but knowing what it is, and what it's purpose is.

These three stages have a few layers within themselves but I believe they get to the crux of what my aims are.
My ultimate aim is to create an intelligence that see's a number of objects, and draws understanding from seeing them together.

E.g

Seeing - A human can see
Recognizing - A human can see an onion, a packet of mince and tomatoes and knows them to be what they are
Understanding - A human can see an onion, a packet of mince and tomatoes and knows they work together to make bolognese sauce.

Today is research.
I think I need initially, some python packages for the coding and a webcam of course.

I want to re-iterate just in case. This is a vanity project, I have no experience with this kind of thing. I'll be feeling my way around, I have no overarching motivation for doing this, just for a bit of fun. And blogging because if I have an audience it'll help keep me honest and motivated. So would appreciate advice, questions or encouragement.