File size: 2,668 Bytes
690ada3 0d2d614 f4eb306 0d2d614 7559e30 86e69fa 0d2d614 f4eb306 0d2d614 f4eb306 0d2d614 90d7188 27b7cb5 690ada3 0d2d614 690ada3 f4eb306 690ada3 0d2d614 f4eb306 690ada3 a7129dd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import numpy as np
from skimage.metrics import structural_similarity as ssim
from PIL import Image
import gradio as gr
from difflib import SequenceMatcher
# Function to calculate SSIM between two images
def calculate_ssim(img1, img2):
img1_gray = img1.convert("L")
img2_gray = img2.convert("L")
return ssim(np.array(img1_gray), np.array(img2_gray))
# Function to compare trademarks based on text similarity
def compare_text(trademark1, trademark2):
text1 = pytesseract.image_to_string(trademark1).lower()
text2 = pytesseract.image_to_string(trademark2).lower()
similarity_ratio = SequenceMatcher(None, text1, text2).ratio()
return similarity_ratio
# Function to compare trademarks based on color similarity
def compare_colors(trademark1, trademark2):
trademark1 = trademark1.convert("RGB")
trademark2 = trademark2.convert("RGB")
colors1 = trademark1.getcolors(trademark1.size[0] * trademark1.size[1])
colors2 = trademark2.getcolors(trademark2.size[0] * trademark2.size[1])
color_vector1 = np.zeros(3)
color_vector2 = np.zeros(3)
for count, color in colors1:
color_vector1 += np.array(color) * count
for count, color in colors2:
color_vector2 += np.array(color) * count
color_vector1 /= trademark1.size[0] * trademark1.size[1]
color_vector2 /= trademark2.size[0] * trademark2.size[1]
color_similarity = 1 - np.linalg.norm(color_vector1 - color_vector2)
return color_similarity
# Function to compare trademarks based on multiple aspects
def compare_trademarks(trademark1, trademark2):
ssim_score = calculate_ssim(trademark1, trademark2)
text_similarity = compare_text(trademark1, trademark2)
color_similarity = compare_colors(trademark1, trademark2)
# Adjust weights based on the importance of each aspect
ssim_weight = 0.6
text_weight = 0.2
color_weight = 0.2
overall_similarity = (ssim_weight * ssim_score) + (text_weight * text_similarity) + (color_weight * color_similarity)
return overall_similarity
# Function to perform trademark conflict prevention
def prevent_trademark_conflict(trademark1, trademark2):
similarity_score = compare_trademarks(trademark1, trademark2)
result = f"Trademark Similarity Score: {similarity_score:.4f}"
return result
iface = gr.Interface(
fn=prevent_trademark_conflict,
inputs=[
gr.inputs.Image(type="file", label="Trademark Image 1"),
gr.inputs.Image(type="file", label="Trademark Image 2")
],
outputs="text",
title="Trademark Conflict Prevention",
description="Upload two trademark images. Get the trademark similarity score."
)
iface.launch()
|