added keras support

This commit is contained in:
2023-02-05 13:30:06 +10:00
parent c671fb9bf6
commit a2894791e2
2 changed files with 21 additions and 24 deletions

View File

@@ -175,6 +175,10 @@ class OCRController extends ApiController
$data['ocr']['pixelate'] = $result;
imagedestroy($imgcreate);
// keras
$cmd = "python3 scripts/keras.py " . base64_encode(file_get_contents($tmpfname));
$command = escapeshellcmd($cmd); #no special characters it will work
$data['ocr']['keras'] = shell_exec($command);
unlink($tmpfname);
return $this->respondJson($data);
@@ -203,28 +207,4 @@ class OCRController extends ApiController
// // Do something with the text from Tesseract
// echo $text;
// function is_ani($filename) {
// if(!($fh = @fopen($filename, 'rb')))
// return false;
// $count = 0;
// //an animated gif contains multiple "frames", with each frame having a
// //header made up of:
// // * a static 4-byte sequence (\x00\x21\xF9\x04)
// // * 4 variable bytes
// // * a static 2-byte sequence (\x00\x2C) (some variants may use \x00\x21 ?)
// // We read through the file til we reach the end of the file, or we've found
// // at least 2 frame headers
// $chunk = false;
// while(!feof($fh) && $count < 2) {
// //add the last 20 characters from the previous string, to make sure the searched pattern is not split.
// $chunk = ($chunk ? substr($chunk, -20) : "") . fread($fh, 1024 * 100); //read 100kb at a time
// $count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s', $chunk, $matches);
// }
// fclose($fh);
// return $count > 1;
// }
}

17
scripts/keras.py Normal file
View File

@@ -0,0 +1,17 @@
import io
import sys
import base64
import numpy as np
import keras_ocr
if len(sys.argv) > 1:
# Decode the base64-encoded image
img = base64.b64decode(sys.argv[1])
img = np.array(bytearray(img), dtype=np.uint8)
# Use Keras-OCR to recognize text in the image
pipeline = keras_ocr.pipeline.Pipeline()
prediction = pipeline.recognize([img])
# Return the recognized text
print prediction[0][0]['text']