How can I create a script that can turn pictures into 2D low poly images?
You'll still have to place the geometry by hand, but I've put together a simple material that will automatically set the colors for you.  For this example I've used a triangulated, subdivided plane.  Its not a bad result, but it does look a bit dry and grid like.



In order for this to work each triangle should be its own object with its its origin at its center.  To do this quickly you could create your triangles as a single mesh object and then in edit mode press crtl+e and choose "edge split".  You would then need to press p -> "separate by loose parts", after which you would exit edit mode and do a ctrlaltshiftc -> "set origin to geometry".

Input image:


Output: 



Update: Here's what my sample looks like after applying @3pointedit's suggestion