4 ms·
I have a project to get to know something about ML in computer vision. The project I'm doing that with is OCR of a noisy, low-resolution image (~32x16) Main pr
by fest 10y ago
I have a project to get to know something about ML in computer vision. The project I'm doing that with is OCR of a noisy, low-resolution image (~32x16)
Main problems:
* Since the resolution is very low, I found it hard to use traditional CV approaches to segment individual characters and classify those (for example: is this rectangular blob a few pixels diagonal a dash symbol or just noise)
* End to end CNN approach on artificially generated dataset is approaching usefulness. Training dataset is completely artificially generated, test dataset comes from manual labeling (~2k samples, ~50 classes). This approach is almost usable (96.8% accuracy on test dataset), but it is still not acceptable performance. Next thing I'm going to try is first train the CNN on training data as best as I can (have had >99.9% during training, but that could be overfitting) and then do another training run just on a part of my test data to "fine tune" the weights from first run and use remaining test data for cross-validation.
All existing OCR engines I tried could not handle such inputs: abby, tesseract, google cloud vision.
- xchaotic 10y agoWhat is the use case? Why can't you 'enhance the resolution' CSI style?
- aub3bhat 10y agoHave you tried this. Convolutional recurrent network in pytorch. https://github.com/meijieru/crnn.pytorch https://github.com/meijieru/crnn.pytorch I think this is the current state-of-the-art (or close to it) for OCR on noisy low-res images. Here is a broader list of resources/papers for scene text recognition https://github.com/chongyangtao/Awesome-Scene-Text-Recognition https://github.com/chongyangtao/Awesome-Scene-Text-Recogniti...
- fest 10y agoNo, I have not- thanks for the pointer! I guess by this time, there really is an "Awesome-<insert ML topic here>" list for everything :)