Sunday, December 16, 2007

Why Straight Lines?

Why should a visual recognition system expect straight lines? The arrangement of photoreceptors in the retina has no straight lines. Very little in nature that may be seen has straight lines. Primitive people do not build angular objects. Yet, I think straightness came from building things. What could be the first straight thing? Baskets? Arrows? Lines drawn in clay? Not even knife edges were straight. Maybe the horizon - out over the ocean. There is no survival value in building a recognition system within an animal upon a framework of straight lines. Except maybe for orientation to the horizon.
Why did Hubel and Wiesel concentrate on straight lines?
The things that are important to recognize are curved. In all directions. Food like berries, fruits, grasses and animals are all curved. The path upon which you walk. The trees over your head.
So can a recognition system be built upon collections of curves?

Monday, December 10, 2007

Artificial Intelligence: Answer the Questions

The point of AI is to get answers to questions.

In music:

  • What is that instrument?
  • Who is that artist?
  • What else have they done?
  • What is similar?
  • Has this been done before?
  • How is that sound made?
  • What are the words?
  • What is its name?
  • Where was this performed?

In images and video:

  • What is that thing?
  • Who made it?
  • What else have they made?
  • What is similar?
  • Where can I get one?
  • Who is that person?
  • What is it made from?
  • How old is it?
  • Who made it?
  • Can you show me more details?
  • How did they do that?

About things:

  • What are the parts?
  • How much does it cost?
  • Where can I get one?
  • How does it work?
  • Who made it?
  • Who's working on its development?

Then there are the 'what if' scenarios: Substitute this for that - what happens?

AI is so complex and deep that it is very easy to get lost in the implementation details. The details need to get worked out, but the point is to answer questions.

Thursday, September 20, 2007

Day 58 Telecom Inertia


In VON Magazine FMC Converges on Business, Ivar Plathe from OnRelay says that “The key for making [FMC] technology work is making the extension work seamlessly over a public network over a 3G, or CDMA network, which is really the hard part...”
I'll agree that's hard - I think what's making it difficult is using the old cellular protocols. I can't believe that when something is that hard, that anyone sticks with it! I think you're following a dead end Mr. Plathe. Good thing you've got people willing to pay.
In my mind the real solution is to run IP through the cell system. You've just got to run IP over a new layer 2 that can switch cell towers to follow the handset around. Mobile WiFi? 'The routing system says your phone is at this tower now.' I'm not sure, but isn't this what IMS is all about? That's hard too - I'm talking about infrastructure replacement - but when you're done you've got a real mobile IP network. Run IP over the cell system. Then you can use SIP to do everything you need for PBX functionality: proxying calls to multiple terminals, short numbering, transfers etc. And you'll have the standard protocols for mail, messaging, web, services, games, everything.
What's up with all this shoehorning new tech on top of old? Oh, billions of dollars worth of existing cell infrastructure! OnRelay's customers could be paying for development of a real mobile network instead of band-aiding an old system.
It's the same thing with VoIP gateways. Huge money in the gateway market. But why? You've IP'ed your internal phones, why connect outside over analog? Oh, standard numbering system, QOS, bandwidth. You could be spending that gateway and analog money on more bandwidth, a better RTP (let's have another post on that) and click-to-call. If you're all IP, your ISP should provide service for POTS interconnect.
All this legacy support is telecom inertia. If you want better than legacy, abandon it. Just git 'er done!

Saturday, August 11, 2007

Day 18 WPF

Not on time, but after 2 weeks or 100 hours I've got the shooting game controller done. Client is OK, he's not on time either. This thing won't be seen till Labour Day.
One main panel, a multipage settings dialog, a password dialog and a high score dalog. I'm not totally loving WPF because I'm not used to flow layout - not having done much HTML. I like that it adjusts to screen size, and everything stretches etc., but I'll have to work at it more to get complex dialog panels to look the way I want. I'm using VS 2005 on XP so maybe there's better layout tools? I immediately stopped using the VS 2005 graphical layout tool, because it just messed my XAML totally. Positioning controls to 8 decimal places, spanning controls over columns, yech! I just let it show me the results of my hand-coding.
So now I'm going on vacation at Pinery Provincial Park. Surf, beach, shady trees, long walks, beers and guitars around friendly campfires.

Friday, July 27, 2007

Day 3

I'm going to be busy for a week or two because today I've started a contract job for Maverick Paintball (when I wrote this their site was down).
The project is a sort of a game console. It's a Windows program to control a panel of targets for paintball target shooting. There may be ten targets on the panel. I can light up any target and I get a notification when the target has been hit, all by serial port I/O.
My console has to be playing videos all the time and also media for events like game start and end. So it's like a media player and a game scoring system.
I'm using .NET 3.0 in C# with WPF.
Come and see it in Grand Bend on Civic Holiday weekend when it's done!

Thursday, July 26, 2007

Day 1

I had to make up a new word to get a good name for my business and this blog.

'Nimajin' is a combination of 'neural' and 'new' and 'imagine' and 'imaging', and it has this peppy kind of ninja feel to it that I like.

I'm no ninja though, I'm a programmer. (I just had to put those links in there for fun)

I went to Programmer Personality Test at Doolwind's for some insight into myself. It said:

Your programmer personality type is:

PHSB

You're a Planner.

You may be slow, but you'll usually find the best solution. If something's worth doing, it's worth doing right.


You like coding at a High level.

The world is made up of objects and components, you should create your programs in the same way.


You work best in a Solo situation.

The best way to program is by yourself. There's no communication problems, you know every part of the code allowing you to write the best programs possible.


You are a liBeral programmer.

Programming is a complex task and you should use white space and comments as freely as possible to help simplify the task. We're not writing on paper anymore so we can take up as much room as we need.


I think that's pretty good.
(I found out about this test indirectly via Virtual Genius)

So anyway I've got to plug my business page to feed Google: Nimajin