A Work In Progress client for the number plate game. This is an adapted version of the battleships bot from AIGaming.com.
This project makes use of several common libraries:
- numpy
- Pillow for image processing
- matplotlib only for jupyter notebooks
- tkinter for the UI
- requests to talk with the API server
There exist other powerful python packages for image processing which have not been used in this project in order to conserve future server space. They could however be used though the python API. These are:
- cv2 which is currently in its beta for python 3. Also; it's huge (large memory foorprint)
- scikit-image A well-made collection of algorithms for image processing. It has good documentation and examples.
- scipy.ndimage Multi-dimentional image processing part of scipy
- University of Oxford robotics image analysis notes
- Grayscale image entropy - could be useful for something and it's pretty easy to implement
- RDP algorithm - algorithm for simplifying a piecewise linear curve
- contour approximation in cv2
- Minimal Bag of Visual Words Image Classifier
- University of Washington computer vision lecture slides
- Matplotlib colormap in a PIL image
- Static variables in python
- Number plate font
- Scale-Invariant Feature Transform and Speeded up robust features are two feature-based algorithms (and a very good stack exchange post about them)
Things which need to be done and a few ideas on what could be done
- Make use of sending off multiple moves in one request
- Make use of some number plate statistics (for example this)
- Pull images from the links provided in the
gamestate
instead of using the hard-coded library. - Make use of the color in the images. This will require one to rewrite a bunch of code in the helper functions including some really core stuff like
pil2np
andnp2pil
though
- Write own class for (RGB?) images which should probably hold them as
numpy
arrays and convert toPIL
when necessary - Make the
RMSMultiSearch
faster - Use some cutting-edge cv2/scikit-learn trickery voodoo