Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Software

MIT's Picture Language Lets Computers Recognize Faces Through Inference 23

itwbennett writes: MIT researchers are working on a new programming language called Picture, which could radically reduce the amount of coding needed to help computers recognize objects in images and video. It is a prototype of how a relatively novel form of programming, called probabilistic programming, could reduce the amount of code needed for such complex tasks. In one test of the new language, the researchers were able to cut thousands of lines of code in one image recognition program down to fewer than 50.
This discussion has been archived. No new comments can be posted.

MIT's Picture Language Lets Computers Recognize Faces Through Inference

Comments Filter:
  • by Anonymous Coward on Tuesday April 14, 2015 @03:03PM (#49473407)

    "...the researchers were able to cut thousands of lines of code in one image recognition program down to fewer than 50."

    How many lines of code were used to write the MIT Picture language? The article summary claims to have replaced thousands of lines of code in an existing application yet do not mention the line count of the Picture language.

    • by TWX ( 665546 )
      Yeah, sounds like they've essentially developed a library that the programming language is dependent on.
      • Pretty much.

        I immediately thought of Quake1/2 as a parallel... the executable itself is relatively tiny (1-2MB or so, IIRC?), but the libraries it calls weigh in at hundreds of MB at least. Add in maps, image files, sound files, and meshes on top of that, and suddenly you have something that weighed in at the size of a nearly-full burned CD.

      • Yeah, sounds like they've essentially developed a library that the programming language is dependent on.

        Even if you wrote wrappers to access all their libraries in (for example) Python, operating an inference engine and manipulating the results returned would be a complete pain. This is a high-level language designed as a problem-solver over a probabilistic domain. That in itself is a very far-removed abstraction from the processor's opcodes...

    • More importantly, how flexible are those 50 lines of code vs the 1000 lines of code?
      If you're calling some functions for some MIT Picture Language object, then when you find a whole class of images where MIT's shit utterly fucking sucks, you're screwed.

      Faces = FindFaces(Image) is only one line! And it's recognizes faces in 68% of our test images wowowow!!!
      If 68% is not acceptable, your images aren't like MIT's test images, or you want to find faces of dogs instead of people, you're going to be writing your

      • After reading the article, it seems that the language allows for the code to modify itself. So that seems pretty flexible. Most languages specifically prohibit this kind of flexibility (as it is prone to errors).

    • by Sowelu ( 713889 )

      I don't see how that's misleading. So what if the program has all kinds of fancy algorithms--they're not waving around "look how smart we are!!". They're saying "Hey if you want to write image processing code, you can do it this easy". ...man, I miss my image processing class.

    • I don't see that Mr | Ms | Mrs Coward's comment is pertinent. I sure don't want to need to code "y = z++" in assembly, much less binary, each time I need it. Computer languages are made up of symbols that translate to several to many lines of code and come with libraries of still more abstract code and the trend of higher abstraction appears to be continuing. It's good have routines coded once that that are used many times. Productivity increases.

    • by msobkow ( 48369 )

      Probably about as many lines as the difference between software rendering in the original Doom vs. later games that used OpenGL and DirectX. But to be fair, they probably just linked in a shitload of libraries rather than writing them.

    • "...the researchers were able to cut thousands of lines of code in one image recognition program down to fewer than 50."

      How many lines of code were used to write the MIT Picture language? The article summary claims to have replaced thousands of lines of code in an existing application yet do not mention the line count of the Picture language.

      Your problem is that you're thinking to heavily in terms of C-like imperative programming. Picture sounds more comparable to Prolog to me -- an automated problem-solver. The core of Picture is an "inference engine" -- the core of Prolog is an inference engine too. The difference is that Prolog operates in pure predicate logic, whether Picture is a probabilistic language.

      Probabilistic programming in even a relatively high-level C-like (eg Python) would be a total pain, because you have to explicitly call all

  • by CaptainDork ( 3678879 ) on Tuesday April 14, 2015 @03:31PM (#49473615)

    ... long.

  • Anybody have a coded example?

If you steal from one author it's plagiarism; if you steal from many it's research. -- Wilson Mizner

Working...