Slashdot Mirror


Image Recognition on Mobile Phones

mysticalgremlin writes "In a recent presentation, Semacode founder Simon Woodside presents his company's bar code scanning technology that is used in mobile phones. Simon also discusses many places where bar code scanning powered phones are being used. Not bad for an 'image recognizer for a 100 MHz mobile phone processor with 1 MB heap, 320x240 image, on a poorly-optimized Java stack'"

34 of 115 comments (clear)

  1. Bar code? by RedOregon · · Score: 3, Funny

    And here I thought a bar code was a hand signal you used to let everyone in a large crowd, in a noisy bar, know where you were going next.

    Like standing up and holding up five fingers to let everyone know the next bar is the "Five Spot".

    Oh well, live and learn.

    --
    Skivvy Niner? Email me!
    HEY! Look left just ONE MORE TIME!
  2. Bar code scanning powered phones? by Tim+C · · Score: 4, Insightful

    Surely you mean "phone-powered bar code scanning", ie using the phone to scan bar codes, not powering the phone by scanning bar codes...

    1. Re:Bar code scanning powered phones? by SnowZero · · Score: 4, Funny

      Surely you mean "phone-powered bar code scanning", ie using the phone to scan bar codes, not powering the phone by scanning bar codes...

      Perhaps the product is aimed toward use IN SOVIET RUSSIA?

    2. Re:Bar code scanning powered phones? by Randolpho · · Score: 3, Interesting

      The temperature of the black bars must be different from the temperature of the white bars -- simple light/color theory. Therefore, using carbon nanotubules (because you aren't high-techy if you don't), we could set up a system of microscopic thermocouples across those black and white bars. Channel that energy to a central location, and voila! Barcode powered cell-phones.

      --
      "Times have not become more violent. They have just become more televised."
      -Marilyn Manson
    3. Re:Bar code scanning powered phones? by andrewman327 · · Score: 3, Interesting
      Cuecat + cell phone = next big thing? I find it a little hard to believe, but with everything else that they have been throwing into phone I guess this makes some sense.


      My favorite use for this would be to conduct instant price comparisons. If I see something that I like, I would like to be able to check the price against Froogle, MySimon, etc.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
    4. Re:Bar code scanning powered phones? by plover · · Score: 2, Informative
      My favorite use for this would be to conduct instant price comparisons.
      Be prepared to be ushered out of the store. Chain stores frequently use "secret shoppers" for price comparisons in their areas, and they used to use small handheld scanners for data entry. I bet cell phones are high on the list of inconspicuous tools now, though. Either way, if they're spotted they're shown the door.

      Home Depot (and others) also have "No Cameras or Recording Devices" signs posted, so I'm sure they think they reserve the right to toss you out. That doesn't stop them from prominently featuring a shopper with a camera phone showing a ceiling fan to the waiting spouse at home on their TV commercials, though. I know I'd be calling a lawyer if they said "boo" to me about it.

      --
      John
    5. Re:Bar code scanning powered phones? by andrewman327 · · Score: 3, Insightful
      Their real concern in banning cameras is not competitors learning their prices. After all, they pay lots of money to publish their weekly flier in the Sunday paper. If a secret shopper wants prices they can also bring a pad and pen to the store and write down the SKUs and costs. When I shop at Home Depot I usually have a notebook with all of my measurements and requirements for whatever I am doing. I highly doubt that most associates would stop someone from walking around writing things down.


      The real concern is criminals casing the place for a robbery. Even larger stores can be hit by violent crime. I am an avid amateur photographer and I know my rights. Stores have every right to prevent pictures while you are in their building, but they cannot stop you from photographing their store from the street. (Disclaimer: IANAL). If I were a manager and I saw someone taking pictures of the roof, guards, alarm systems, et cetera, I would definitely throw them out. If theives want to hit a store they also need to know where the expensive stuff is kept, so they would be photographing the products.


      When I am at Comp USA most of their (otherwise frustrating) sales reps allow me to use their computers to compare the prices of items at other stores. I have bought more from them after learning that they were the best deal during their huge sales. If I walked in with a camera, that would be a different story.

      --
      Information wants a fueled airplane waiting at the hangar and no one gets hurt.
  3. Not bad... by SnowZero · · Score: 5, Interesting

    Beleive it or not this is pretty impressive. Computer vision gets quite difficult when you don't have a lot of pixels to work with, as the shapes are all "helpfully" smeared together by the imager. And with the cheap lenses in camera phones, edges can be smeared by more than one pixel. In some of my prior work doing vision systems for Sony Aibos for RoboCup, we had to deal with similar problems (find an orange ball in an image that may be only 3x2 pixels, while ignoring the boundaries between red and yellow objects). So, kudos for the technical achievement, and hopefully they find a better application than the cuecat :)

    1. Re:Not bad... by RileyCR · · Score: 2, Informative

      This is impressive. However this has been going on for a while. And not just barcodes. ABBYY for example has a complete SDK for barcode and full OCR. They use it to extract all bacodes and text on a cell phone, i believe currently support symbian and windows mobile.

    2. Re:Not bad... by phoebe · · Score: 2, Informative

      Although Japan and Russia got there a bit quicker ... Intelcom provide a encoder and decoder Java toolkit for mobile phones. Japan have a Sourceforge Java project for encoding and decoding too.

  4. Other uses by HugePedlar · · Score: 4, Interesting

    Some years ago, I read an article about the possibility of printing tiny barcodes in newspaper stories that would code for a website address. You'd use a special reader that interfaces with your PC to visit the referenced site. This was supposed to be easier than typing in a lengthy, complicated URL.

    We've got around this, mostly by having nice succinct URLs and tinyurl.com for everything else, and who wants to carry a barcode reader with them when they're reading the paper?

    However, I wonder whether this idea may have some re-interest. If your mobile phone can read barcodes, we could print them anywhere - in papers, on billboards, TV adverts - and all you'd need to do is take a photo and your phone automatically loads the webpage in its built-in browser.

    That might be useful.

    --
    Argh.
    1. Re:Other uses by cnettel · · Score: 3, Funny
      Fancy a set of scrabble-like plastic pieces, with additional barcode cues (barcode + distinct letter form would be easier than just the letter). Then you "set" your text message almost like on an old-style printing press, take a snapshot and voilà!

      Coming next: Non-invasive optical punch card recognition. Preserve your valuable yellow-tinted records in pristine condition, while emulating your IBM from the 60s on the cellphone.

    2. Re:Other uses by mehu · · Score: 5, Informative
      If your mobile phone can read barcodes, we could print them anywhere - in papers, on billboards, TV adverts - and all you'd need to do is take a photo and your phone automatically loads the webpage in its built-in browser.
      This is already standard in Japan- barcode readers come on pretty much every cell phone here. They read special 2d-matrix barcodes that look like this, which generally encode a URL or email address. You don't even need to take a picture of it in the usual sense- you run a little app called "barcode scanner" and just hold your phone over it, and as soon as it recognizes the barcode, it instantly launches the web browser or opens a new email with a specified To: address & possibly a predetermined Subject: line. They're often used on posters & product ads as a "get more info by scanning here" thing, or even to sign up for store memberships & things- hold your phone over the little square, and you instantly get a web page w/ a form to enter your info. Much faster than typing a URL on your phone.

      Yet another area where Japanese cell phones are WAY ahead of the US...
    3. Re:Other uses by RobotRunAmok · · Score: 5, Insightful

      It was called a "cuecat," and it became one of the great punchlines (along with AOL CDs, foosball tables, VRML, and Jon Katz) of the dot-com era. Cuecats presumed that people read magazines alongside their computers, completely missing the point that if anyone was that "wired" he would be reading his magazines online to begin with.

      If your mobile phone can read barcodes, we could print them anywhere - in papers, on billboards, TV adverts - and all you'd need to do is take a photo and your phone automatically loads the webpage in its built-in browser.

      These are the generic mass "in-your-face" ads that people, generally, try to avoid but cannot. Ads we "want to see," at least in theory, are, again, those that materialize in the marginalia of our web pages as a result of our search metadata being analyzed. The mobile phone bar scanners are, like the cuecats, already obsolete. If you can't remember the product the billboard is hawking, the billboarder has not done his basic job and does not deserve any gadgetery boost. And if you can remember the product, you can google it.

      Anyone running around pointing his cellphone at a billboard so he can capture the barcode and WAP-surf to the company's website should be rounded up, made to serve Nicholas Negroponte his frappe latte mocchachino in bed for a week, ride a segway from Grand Central Station to Wall Street, and have "TOOL" tatooed on his forehead in front of a crowd of 600 fat, drooling, naked, middle-aged "digerati" marketing execs at the next Burning Man festival.

    4. Re:Other uses by JanneM · · Score: 2, Informative

      However, I wonder whether this idea may have some re-interest. If your mobile phone can read barcodes, we could print them anywhere - in papers, on billboards, TV adverts - and all you'd need to do is take a photo and your phone automatically loads the webpage in its built-in browser.

      Exactly this has been available and used everywhere in Japan for a few years already.

      --
      Trust the Computer. The Computer is your friend.
    5. Re:Other uses by rm999 · · Score: 2, Interesting

      I think the cell phone scanner has potential if the phone is connected to the internet. It could be used to buy things from vending machines, for example (I'd be surprised if this hasn't been tried in japan).

    6. Re:Other uses by zeropaper · · Score: 2, Informative

      and there's also Semapedia.org who's using semacode to load content from wikipedia (related to a place) really nice idea

      --
      less will always still more
    7. Re:Other uses by mykdavies · · Score: 2, Informative

      Actually I think that the Japanese system is QR-Code http://en.wikipedia.org/wiki/QR_Code

      --
      The world has changed and we all have become metal men.
  5. We understand... by novus+ordo · · Score: 5, Funny
    Note: We are sorry that these talks are not available through BitTorrent, however under present IST policy we are not allowed to run BitTorrent. We thank you for your understanding.
    We, the slashdot army, are sorry that we have used up all your bandwidth for the next 20 years. We thank you for your understanding.
    --
    "You're everywhere. You're omnivorous."
  6. Lookup Required by hey · · Score: 3, Informative

    Once a barcode is read you just get the product code. What good is that?
    You need then to lookup that code up in a database for real info.

    1. Re:Lookup Required by Orange+Crush · · Score: 3, Insightful

      Once a barcode is read you just get the product code. What good is that? You need then to lookup that code up in a database for real info.

      As mentioned above, it could give you the lowest prices found on Froogle, Amazon, etc . . . or if they want to do something *really* neat, tell you if that product is available for considerably less (or on sale!) at a different store nearby.
    2. Re:Lookup Required by TubeSteak · · Score: 4, Informative

      They aren't trying to recognize 1-D barcodes (ya know, normal barcodes).

      "It needs to locate and read two-dimensional barcodes"

      Nowadays, PDF417 is the standard for 2d barcodes.
      http://www.barcodeman.com/faq/2dbarcode.gif

      It can store between 10 and a crapload of characters

      A 320x240 image gives you plenty of characters, depending on how much redundancy you want to throw in.

      --
      [Fuck Beta]
      o0t!
  7. Getting soft by Threni · · Score: 4, Insightful

    > Not bad for an 'image recognizer for a 100 MHz mobile phone processor with 1 MB heap, 320x240
    > image, on a poorly-optimized Java stack'"

    10 or so years ago we had 3d games on 7mhz machines with 512k of ram, pretty much the same screen resolution yadda yadda - this isn't so impressive.

    1. Re:Getting soft by glesga_kiss · · Score: 2, Insightful
      10 or so years ago we had 3d games on 7mhz machines with 512k of ram, pretty much the same screen resolution yadda yadda - this isn't so impressive.

      Rendering 3D and making sense of a real 3D environment are quite different feats however.

  8. Use this for payment/tickets by NusEnFleur · · Score: 3, Interesting

    My colleague once wrote a prototype doing the same thing (barcode recognition). This is also a nice solution for building tickets. THe main advantage is that you can give the guy at the entrance just one phone and he'll be able to scan entry tickets without the need for a computer or heavy equipment.

    We even have a video showing this technology being used for payment. Note that in the video you see the recognition engine in java run on a PC with a webcam, but the same engine runs on many MIDP 2.0 phones (like a nokia 6230) and is also able to find a barcode instantly. In this case the phone is only used as a client for the payment concept.

    1. Re:Use this for payment/tickets by josecanuc · · Score: 2, Interesting

      So are there any free to use (or even Open Source) software that does this on Windows or Linux? I would love to have some software that dumps out recognized barcodes (1-D or 2-D) from a live video source...

  9. Re:Hold your horses by cerberusss · · Score: 2, Funny

    Obviously, the web server does not run on the mobile phone.

    --
    8 of 13 people found this answer helpful. Did you?
  10. Not unique by csirac · · Score: 3, Informative

    I've seen some Japanese phones that have apparently had this ability for quite some time now, I was absolutely amazed when a friend showed me one that even OCR'd english text out of a snapshot!

    And there's a company called Grabba that makes commercial bar-code scanning solutions out of PDAs and PDA-phones (among other things). A friend of mine works there... interesting stuff; they also sell a dock thing that a PDA can clip into, which gives it a camera so you don't need to use a mobile phone. Popular with inventory/warehouse type applications, it also does 2D barcodes as well.

  11. Re:When barcodes came out ... by IamTheRealMike · · Score: 2, Insightful

    Well, it is fairly impressive. J2ME is many things, but convenient and fast are not amongst them. Getting a Java phone to do anything useful at all is quite a feat of programming, getting one to recognise barcodes in realtime is damn near a miracle. Bear in mind the "virtual machine" on most phones is in fact simply a slow interpreter - it makes BASIC look souped-up.

  12. In Japan ... not only bar codes ... OCR as well by mxpengin · · Score: 3, Informative

    My phone ( which I have had for more than half a year ) besides the bar code reader, has OCR of roman and japanese characters. And the most impresive use of this in the telephone is the ability to input some japanese word (yes in Kanji) directly into the dictionary. Really impresive for us non native japanese speakers. My phone is a sanyo w32SA , in the link you can read about in the part OCR kino.

    --
    "We all know Linux is great...it does infinite loops in 5 seconds." -- Linus
  13. Re:i don't know which phone they are using by tsvk · · Score: 2, Insightful

    Yes, the image resolution is low but you need to take into account that another spec mentioned is 1MB of Java heap memory. The captured images are stored in Java Image obejcts uncompressed. So the memory requirement for a QVGA (320x240) four-bytes-per-pixel RGBA image is 307,200 bytes, which will fit well within the 1MB of heap memory.

    The phone camera will probably be able to capture images with a higher resolution (up to megapixels), but because of this Java heap memory limitation they probably need to limit themselves to QVGA resolution. And besides, if the image processing / recognition algorithms work sufficiently well with images of QVGA resolution, there is no need to use higher resolutions.

  14. Some envelope-back calculations by Kadin2048 · · Score: 2, Informative

    Your comment got me thinking about how much information you could squeeze into one of those barcodes.

    At most, a 320x240 tag would give you 76,800 bits of information, or slightly less than 11,000 7-bit ASCII characters. That's assuming you could match the pixels of the tag to the camera's sensor exactly.

    I assume you probably wouldn't want to use any more than half of the camera's vertical and horizontal resolution though, which leaves you with 160x120 (for 2,700 characters), and I assume you'd need to have a few rows blacked-out on at least two sides to identify the border of the tag (so subtract (160+120)*2 pixels for bordering...that leaves 2662 characters) and you'd probably want to have a hash or checksum (lose 128 bits).

    Still, that leaves about 2,643 characters in an image, which is about a page and a half of typed text using the old guideline of approximately 1,500 characters per page.

    That's pretty impressive; provided you could make your reader focus on objects near to the lens, so that you could make the tag suitably small (less than an inch or so across), that's a lot more efficent way to convey textual information than actually writing it out. Instead of just embedding a URL link, you could put written information on there; maybe stuff that would clutter up the packaging / display / poster if you wrote it all down. If these things became ubiquitious, I could see whole advertising campaigns in urban areas (e.g. subways) where the "ad" got you interested, and then you could get more information via the tag.

    They say a picture's worth a thousand words, and it sounds like it may not be far off from that.

    --
    "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
  15. object recognition by gr8dude · · Score: 2, Interesting
    In some of my prior work doing vision systems for Sony Aibos for RoboCup, we had to deal with similar problems (find an orange ball in an image that may be only 3x2 pixels, while ignoring the boundaries between red and yellow objects).

    Could you tell me which approach was used in your project? I mean, I don't need an uber-detailed description, just some key facts; ex: "we used correlation", or maybe you applied some sort of scaling\rotation - invariant techniques, etc.

    As a student, I experimented with image processing last year, and I was amazed by all the cool things that could be done with different algorithms, but I never managed to write a tool that could recognize an object on an image. It sort of worked, but I haven't had time to finalize it and release a version that would work for others too, not only for me, only when launched with a debugger, and only at step-by-step execution :-)

    How reliable is object detection on a 3x2 sample? Looking for an orange ball on such a small image... Hmm, won't it be just an orange pixel on such a small image?

    Another question - was that pattern recognition? i.e. your program was fed with images of orange balls and it attempted to find them on the target images, or did you somehow define an orange ball (ex: "a closed curve, the color of which must be within the specified RGB range") and the program had to figure the rest by itself?

  16. Re:When barcodes came out ... by ashirusnw · · Score: 2, Informative

    Bear in mind the "virtual machine" on most phones is in fact simply a slow interpreter - it makes BASIC look souped-up.

    Presumably you're referring to the KVM (the J2ME JVM) which is slow. I think you're out of date.

    AFAIK modern phones have Sun's CLDC HotSpot VM (the "CLDC HI VM") which has speeds equivilent in relative terms to a JVM on a desktop PC. The Blackberry phones in particular have a great JVM. When more phones have decent ARM-based gigahertz processors speed Java speed will stop being an issue much like the desktop space.