From 25ed5881a12e062d1b853f32489a09385935231e Mon Sep 17 00:00:00 2001 From: Inga Ulusoy Date: Mon, 19 Dec 2022 15:03:05 +0100 Subject: [PATCH] Text 2 (#42) * start with translate * translate and clean - notebook * spacy model in requirements * translate in module * clean in module * upload coverage only for ubuntu * update ubuntu version on runner * update dependencies * start tests for text * skip gcv test * fix age * more text tests * more text tests * add comment * test translation * fix numpy version; add reference data for trans * use utf-8 for windows --- .github/workflows/ci.yml | 7 +- codecov.yml | 11 - misinformation/test/data/IMG_3755.jpg | Bin 0 -> 59047 bytes misinformation/test/data/IMG_3756.jpg | Bin 0 -> 38164 bytes misinformation/test/data/IMG_3757.jpg | Bin 0 -> 43372 bytes misinformation/test/data/text_IMG_3755.txt | 5 + misinformation/test/data/text_IMG_3756.txt | 14 + misinformation/test/data/text_IMG_3757.txt | 10 + .../test/data/text_translated_IMG_3755.txt | 5 + .../test/data/text_translated_IMG_3756.txt | 14 + .../test/data/text_translated_IMG_3757.txt | 10 + misinformation/test/pytest.ini | 3 +- misinformation/test/test_text.py | 77 +++ misinformation/text.py | 49 +- notebooks/facial_expressions.ipynb | 9 +- notebooks/get-text-from-image.ipynb | 451 +++++++----------- notebooks/objects_expression.ipynb | 4 +- pyproject.toml | 4 +- requirements.txt | 5 +- 19 files changed, 359 insertions(+), 319 deletions(-) delete mode 100644 codecov.yml create mode 100644 misinformation/test/data/IMG_3755.jpg create mode 100644 misinformation/test/data/IMG_3756.jpg create mode 100644 misinformation/test/data/IMG_3757.jpg create mode 100644 misinformation/test/data/text_IMG_3755.txt create mode 100644 misinformation/test/data/text_IMG_3756.txt create mode 100644 misinformation/test/data/text_IMG_3757.txt create mode 100644 misinformation/test/data/text_translated_IMG_3755.txt create mode 100644 misinformation/test/data/text_translated_IMG_3756.txt create mode 100644 misinformation/test/data/text_translated_IMG_3757.txt create mode 100644 misinformation/test/test_text.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 239de40..78fa7a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,12 +14,11 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04, windows-latest] + os: [ubuntu-22.04, windows-latest] python-version: [3.9] steps: - name: Checkout repository uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: @@ -28,11 +27,13 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install -e . + python -m spacy download en_core_web_md - name: Run pytest run: | cd misinformation - python -m pytest -s -m "not imageai" --cov=. --cov-report=xml + python -m pytest -s -m "not (imageai or gcv)" --cov=. --cov-report=xml - name: Upload coverage + if: matrix.os == 'ubuntu-22.04' && matrix.python-version == '3.9' uses: codecov/codecov-action@v3 with: fail_ci_if_error: true diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index 78b6eda..0000000 --- a/codecov.yml +++ /dev/null @@ -1,11 +0,0 @@ -codecov: - require_ci_to_pass: yes - -coverage: - status: - project: - default: - target: 0 - patch: - default: - target: 70 diff --git a/misinformation/test/data/IMG_3755.jpg b/misinformation/test/data/IMG_3755.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b2b3af2c12725ced583470a84536f6d4b9dbbbdf GIT binary patch literal 59047 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 VlyM-9P?fNp&?cv3FZjQo{s-xE3wi(m literal 0 HcmV?d00001 diff --git a/misinformation/test/data/IMG_3757.jpg b/misinformation/test/data/IMG_3757.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f7a50c6d426a1fee4602f5f60eec449834147ff9 GIT binary patch literal 43372 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

Tg!$ayLnDctqhISk3|w*b!AI5VY892Lww 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 None: super().__init__(subdict) self.subdict.update(self.set_keys()) + self.translator = Translator() + # spacy load should be separaate method with error if model not found / dynamic download + self.nlp = spacy.load("en_core_web_md") def set_keys(self) -> dict: - params = {"text": None} + params = { + "text": None, + "text_language": None, + "text_english": None, + "text_cleaned": None, + } return params def analyse_image(self): - """Detects text on the image.""" + self.get_text_from_image() + self.translate_text() + self._init_spacy() + self.clean_text() + return self.subdict + def get_text_from_image(self): + """Detects text on the image.""" path = self.subdict["filename"] client = vision.ImageAnnotatorClient() - with io.open(path, "rb") as image_file: content = image_file.read() - image = vision.Image(content=content) - response = client.text_detection(image=image) - texts = response.text_annotations + texts = response.text_annotations[0].description # here check if text was found - self.subdict = {"text": []} - for text in texts: - self.subdict["text"].append(text.description) - + self.subdict = {"text": texts} if response.error.message: raise Exception( "{}\nFor more info on error messages, check: " @@ -37,4 +47,21 @@ class TextDetector(utils.AnalysisMethod): response.error.message ) ) - return self.subdict + + def translate_text(self): + translated = self.translator.translate(self.subdict["text"]) + self.subdict["text_language"] = translated.src + self.subdict["text_english"] = translated.text + + def _init_spacy(self): + """Generate spacy doc object.""" + self.doc = self.nlp(self.subdict["text_english"]) + + def clean_text(self): + """Clean the text from unrecognized words and any numbers.""" + templist = [] + for token in self.doc: + templist.append( + token.text + ) if token.pos_ != "NUM" and token.has_vector else None + self.subdict["text_clean"] = " ".join(templist).rstrip().lstrip() diff --git a/notebooks/facial_expressions.ipynb b/notebooks/facial_expressions.ipynb index 3117ee7..a0d93a5 100644 --- a/notebooks/facial_expressions.ipynb +++ b/notebooks/facial_expressions.ipynb @@ -42,7 +42,7 @@ "outputs": [], "source": [ "images = misinformation.find_files(\n", - " path=\"/home/inga/projects/misinformation-project/misinformation/data/test_no_text/\",\n", + " path=\"../data/test_no_text/\",\n", " limit=1000,\n", ")" ] @@ -117,9 +117,8 @@ "metadata": {}, "outputs": [], "source": [ - "image_ids = [key for key in mydict.keys()]\n", - "for i in image_ids:\n", - " mydict[i] = misinformation.faces.EmotionDetector(mydict[i]).analyse_image()" + "for key in mydict.keys():\n", + " mydict[key] = misinformation.faces.EmotionDetector(mydict[key]).analyse_image()" ] }, { @@ -202,7 +201,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/notebooks/get-text-from-image.ipynb b/notebooks/get-text-from-image.ipynb index 1e8d485..7276073 100644 --- a/notebooks/get-text-from-image.ipynb +++ b/notebooks/get-text-from-image.ipynb @@ -28,7 +28,7 @@ "metadata": {}, "outputs": [], "source": [ - "images = misinformation.find_files(limit=1000)" + "images = misinformation.find_files(path=\"../data/images-little-text/\", limit=1000)" ] }, { @@ -38,7 +38,7 @@ "metadata": {}, "outputs": [], "source": [ - "for i in images:\n", + "for i in images[0:10]:\n", " display(Image(filename=i))" ] }, @@ -60,7 +60,7 @@ "metadata": {}, "outputs": [], "source": [ - "for i in mysubfiles:\n", + "for i in mysubfiles[0:10]:\n", " display(Image(filename=i))" ] }, @@ -71,287 +71,17 @@ "metadata": {}, "outputs": [], "source": [ - "mydict = misinformation.utils.initialize_dict(mysubfiles)" - ] - }, - { - "cell_type": "markdown", - "id": "07b7a7a3", - "metadata": {}, - "source": [ - "# Pre-process the images: Convert to greyscale and increase contrast" + "mydict = misinformation.utils.initialize_dict(images[0:10])" ] }, { "cell_type": "code", "execution_count": null, - "id": "4cacfb0d", + "id": "3be954ef-d31f-4e4d-857c-c14d5fda91f1", "metadata": {}, "outputs": [], "source": [ - "import cv2\n", - "from matplotlib import pyplot as plt\n", - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c94b02cb-9e96-4812-8448-8bc731bfd8aa", - "metadata": {}, - "outputs": [], - "source": [ - "! pip install matplotlib\n", - "! pip install numpy" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8a2d3057", - "metadata": {}, - "outputs": [], - "source": [ - "def preprocess(filename):\n", - " \"\"\"Preprocess the image to enhance features for extraction.\"\"\"\n", - " image = cv2.imread(filename)\n", - " # preserve the original image\n", - " # original = image.copy()\n", - " # Grayscale, Gaussian blur, Otsu's threshold\n", - " gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)\n", - " # sharpen contrast by first smoothing and then substracting the smoothed and thresholded version\n", - " sharpened = unsharp_mask(gray, amount=1.1, threshold=0.1)\n", - " inverted = invert_image(sharpened)\n", - " return gray, sharpened, inverted\n", - "\n", - "\n", - "# use unsharp mask algorithm from opencv\n", - "# https://docs.opencv.org/4.x/d1/d10/classcv_1_1MatExpr.html#details\n", - "def unsharp_mask(image, kernel_size=(5, 5), sigma=1.0, amount=1.0, threshold=0):\n", - " \"\"\"Return a sharpened version of the image, using an unsharp mask.\n", - " Amount: 1 is neutral, higher values result in shaprer images. threshold is the value below which the difference between blurred and original image gets discarded.\"\"\"\n", - " blurred = cv2.GaussianBlur(image, kernel_size, sigma)\n", - " sharpened = float(amount + 1) * image - float(amount) * blurred\n", - " sharpened = np.maximum(sharpened, np.zeros(sharpened.shape))\n", - " sharpened = np.minimum(sharpened, 255 * np.ones(sharpened.shape))\n", - " sharpened = sharpened.round().astype(np.uint8)\n", - " if threshold > 0:\n", - " low_contrast_mask = np.absolute(image - blurred) < threshold\n", - " np.copyto(sharpened, image, where=low_contrast_mask)\n", - " return sharpened\n", - "\n", - "\n", - "def invert_image(image):\n", - " return cv2.bitwise_not(image)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a483868b", - "metadata": {}, - "outputs": [], - "source": [ - "grey_image = []\n", - "for i in mysubfiles:\n", - " grey_image.append(preprocess(i))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "08ed750d", - "metadata": {}, - "outputs": [], - "source": [ - "for image in grey_image:\n", - " # disable default colormap in imshow\n", - " plt.imshow(image[0], cmap=\"gray\", vmin=0, vmax=255)\n", - " plt.imshow(image[1], cmap=\"gray\", vmin=0, vmax=255)\n", - " plt.show()" - ] - }, - { - "cell_type": "markdown", - "id": "71ac2229", - "metadata": {}, - "source": [ - "mabe further preprocess in cropping out text regions..?" - ] - }, - { - "cell_type": "markdown", - "id": "7786d09c", - "metadata": {}, - "source": [ - "# Try out different libraries\n", - "## The standard go-to tool that is slightly complicated: pytesseract\n", - "Install tesseract and the language libraries:\n", - "```\n", - "sudo apt install tesseract-ocr \n", - "sudo apt install tesseract-ocr-all \n", - "sudo apt install imagemagick \n", - "``` " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0d69504c", - "metadata": {}, - "outputs": [], - "source": [ - "from pytesseract import pytesseract\n", - "\n", - "pytesseract.tesseract_cmd = r\"tesseract\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0b27c98c-b437-4c8b-8844-96d8718eea49", - "metadata": {}, - "outputs": [], - "source": [ - "! pip install pytesseract" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "529de8d8", - "metadata": {}, - "outputs": [], - "source": [ - "myimage = grey_image[1]\n", - "plt.imshow(myimage[0], cmap=\"gray\", vmin=0, vmax=255)\n", - "plt.show()\n", - "\n", - "plt.imshow(myimage[1], cmap=\"gray\", vmin=0, vmax=255)\n", - "plt.show()\n", - "\n", - "plt.imshow(myimage[2], cmap=\"gray\", vmin=0, vmax=255)\n", - "plt.show()\n", - "\n", - "text = pytesseract.image_to_string(myimage[0])\n", - "print(text)\n", - "text = pytesseract.image_to_string(myimage[1])\n", - "print(text)\n", - "text = pytesseract.image_to_string(myimage[2])\n", - "print(text)" - ] - }, - { - "cell_type": "markdown", - "id": "e25dd39e", - "metadata": {}, - "source": [ - "Here we probably would need to compare extractopm from different preprocessed images and overlay in a final text." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "36495f3f", - "metadata": {}, - "outputs": [], - "source": [ - "for image in mysubfiles:\n", - " # Loading image using OpenCV\n", - " img = cv2.imread(image)\n", - "\n", - " # Preprocessing image\n", - " # Converting to grayscale\n", - " gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n", - "\n", - " # creating Binary image by selecting proper threshold\n", - " binary_image = cv2.threshold(\n", - " gray_image, 130, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU\n", - " )[1]\n", - "\n", - " # Inverting the image\n", - " inverted_bin = cv2.bitwise_not(binary_image)\n", - "\n", - " # Some noise reduction\n", - " kernel = np.ones((2, 2), np.uint8)\n", - " processed_img = cv2.erode(inverted_bin, kernel, iterations=1)\n", - " processed_img = cv2.dilate(processed_img, kernel, iterations=1)\n", - "\n", - " # Applying image_to_string method\n", - " text = pytesseract.image_to_string(processed_img)\n", - " plt.imshow(processed_img, cmap=\"gray\", vmin=0, vmax=255)\n", - " plt.show()\n", - " print(text)" - ] - }, - { - "cell_type": "markdown", - "id": "d6532019", - "metadata": {}, - "source": [ - "## keras-ocr\n", - "Not sure how to create an image object without a url.\n", - "https://keras-ocr.readthedocs.io/en/latest/examples/using_pretrained_models.html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "44e38871", - "metadata": {}, - "outputs": [], - "source": [ - "import keras_ocr\n", - "\n", - "pipeline = keras_ocr.pipeline.Pipeline()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2bb55068-ddd4-4b90-ae94-90181980d3c0", - "metadata": {}, - "outputs": [], - "source": [ - "! pip install keras-ocr" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0002f2c4", - "metadata": {}, - "outputs": [], - "source": [ - "images = [\n", - " keras_ocr.tools.read(url)\n", - " for url in [\n", - " \"https://storage.googleapis.com/gcptutorials.com/examples/keras-ocr-img-1.jpg\",\n", - " \"https://storage.googleapis.com/gcptutorials.com/examples/keras-ocr-img-2.png\",\n", - " ]\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "1567dc85", - "metadata": {}, - "outputs": [], - "source": [ - "prediction_groups = pipeline.recognize(images)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "fb1ca152", - "metadata": {}, - "outputs": [], - "source": [ - "predicted_image_1 = prediction_groups[0]\n", - "for text, box in predicted_image_1:\n", - " print(text)" + "mydict" ] }, { @@ -359,10 +89,30 @@ "id": "7b8b929f", "metadata": {}, "source": [ - "## google cloud vision API\n", + "# google cloud vision API\n", "First 1000 images per month are free." ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbf74c0b-52fe-4fb8-b617-f18611e8f986", + "metadata": {}, + "outputs": [], + "source": [ + "os.environ[\n", + " \"GOOGLE_APPLICATION_CREDENTIALS\"\n", + "] = \"../data/seismic-bonfire-329406-412821a70264.json\"" + ] + }, + { + "cell_type": "markdown", + "id": "0891b795-c7fe-454c-a45d-45fadf788142", + "metadata": {}, + "source": [ + "## Inspect the elements per image" + ] + }, { "cell_type": "code", "execution_count": null, @@ -370,19 +120,15 @@ "metadata": {}, "outputs": [], "source": [ - "os.environ[\n", - " \"GOOGLE_APPLICATION_CREDENTIALS\"\n", - "] = \"/home/inga/projects/misinformation-project/misinformation-notes/seismic-bonfire-329406-412821a70264.json\"\n", "misinformation.explore_analysis(mydict, identify=\"text-on-image\")" ] }, { "cell_type": "markdown", - "id": "d54407ad", + "id": "9c3e72b5-0e57-4019-b45e-3e36a74e7f52", "metadata": {}, "source": [ - "## MS Azure\n", - "https://docs.microsoft.com/en-us/azure/search/cognitive-search-concept-image-scenarios" + "## Or directly analyze for further processing" ] }, { @@ -391,6 +137,143 @@ "id": "365c78b1-7ff4-4213-86fa-6a0a2d05198f", "metadata": {}, "outputs": [], + "source": [ + "for key in mydict:\n", + " print(key)\n", + " mydict[key] = misinformation.text.TextDetector(mydict[key]).analyse_image()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c75a2fff-9d59-4634-8d28-e90a909caa23", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c978fdb4-1f3a-4b78-b6ff-79c6e8a6fe82", + "metadata": {}, + "outputs": [], + "source": [ + "print(mydict[\"104157S_eng\"][\"text\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3724f8d8-be0f-44eb-8ff9-b425eee94efc", + "metadata": {}, + "outputs": [], + "source": [ + "test = mydict[\"104157S_eng\"][\"text\"][0]\n", + "print(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2fb865ab-6d16-4a4c-b004-9d39fcba6812", + "metadata": {}, + "outputs": [], + "source": [ + "# flake8-noqa-cell\n", + "from googletrans import Translator" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "051ad473-8f75-40fc-ae90-7d8176cf816f", + "metadata": {}, + "outputs": [], + "source": [ + "translator = Translator()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b571d900-8829-4095-904f-dfee3ce46041", + "metadata": {}, + "outputs": [], + "source": [ + "result = translator.translate(test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e1ff0b21-d2cc-4a50-8e86-a45362f1a0a1", + "metadata": {}, + "outputs": [], + "source": [ + "print(result.text)\n", + "print(result.src)\n", + "print(result.origin)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e135f00e-cdd5-4931-8649-ba0b293e8bdd", + "metadata": {}, + "outputs": [], + "source": [ + "# now clean the gibberish\n", + "# do spell check\n", + "# flake8-noqa-cell\n", + "import contextualSpellCheck\n", + "import spacy\n", + "\n", + "nlp = spacy.load(\"en_core_web_md\")\n", + "contextualSpellCheck.add_to_pipe(nlp)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "01d17f6e-30ae-4cc1-ad03-11a3be6847c2", + "metadata": {}, + "outputs": [], + "source": [ + "doc = nlp(result.text)\n", + "print(doc._.outcome_spellCheck)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0ef91dd2-70a8-4a04-b50f-5efba076bbb0", + "metadata": {}, + "outputs": [], + "source": [ + "final_text = []\n", + "for token in doc:\n", + " if token.pos_ != \"SPACE\":\n", + " if token.pos_ != \"NUM\":\n", + " if token.has_vector:\n", + " final_text.append(token.text)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4d0a3360-3fd9-4ab3-b4dc-122e90c16c7c", + "metadata": {}, + "outputs": [], + "source": [ + "print(\" \".join(final_text))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b1abe05e-0c2b-4769-8fa5-fc67297288ea", + "metadata": {}, + "outputs": [], "source": [] } ], @@ -410,7 +293,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.10.6" }, "vscode": { "interpreter": { diff --git a/notebooks/objects_expression.ipynb b/notebooks/objects_expression.ipynb index 2bc71db..6a92294 100644 --- a/notebooks/objects_expression.ipynb +++ b/notebooks/objects_expression.ipynb @@ -165,7 +165,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.4" + "version": "3.10.6" }, "vscode": { "interpreter": { @@ -174,5 +174,5 @@ } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 } diff --git a/pyproject.toml b/pyproject.toml index 65bff80..91f7a01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,7 +25,7 @@ dependencies = [ "cvlib", "deepface", "ipywidgets", - "numpy", + "numpy<=1.23.4", "opencv_python", "pandas", "pooch", @@ -40,6 +40,8 @@ dependencies = [ "matplotlib", "pytest", "opencv-contrib-python", + "googletrans==3.1.0a0", + "spacy", ] [project.scripts] diff --git a/requirements.txt b/requirements.txt index 04d073a..9bb7582 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ google-cloud-vision cvlib deepface ipywidgets -numpy +numpy<=1.23.4 opencv_python pandas pooch @@ -16,3 +16,6 @@ pytest pytest-cov matplotlib opencv-contrib-python +googletrans==3.1.0a0 +spacy +https://github.com/explosion/spacy-models/releases/download/en_core_web_md-3.4.1/en_core_web_md-3.4.1.tar.gz \ No newline at end of file