Spaces:
Sleeping
Sleeping
from src.application.image.image_comparison import compare_images, get_image_from_file, get_image_from_url | |
from src.application.image.model_detection import image_generation_detection | |
from src.application.image.search_yandex import yandex_reverse_image_search | |
def compare_list_of_images(news_image_path, img_urls): | |
news_image = get_image_from_file(news_image_path) # TODO: news_image_path is arrays | |
if news_image is None: | |
return None, -1 | |
matched_url = "" | |
max_similarity = 0 | |
for url in img_urls: | |
print(f"\t{url}") | |
referred_image = get_image_from_url(url) | |
if referred_image is None: | |
continue | |
distance = compare_images(news_image, referred_image) # Hamming algorithm | |
similarity = max(100 - distance, 0) | |
if similarity > max_similarity: | |
max_similarity = similarity | |
matched_url = url | |
if max_similarity > 90: | |
return matched_url, max_similarity | |
return None, -1 | |
def detect_image_from_news_image(news_image_path, image_urls): | |
print("\tFrom news:") | |
for url in image_urls: | |
print(f"\t{url}") | |
return compare_list_of_images(news_image_path, image_urls) | |
def detect_image_by_reverse_search(news_image_path): | |
image_urls = yandex_reverse_image_search(news_image_path) # url or file_path | |
print("\tFrom search engine:") | |
for url in image_urls: | |
print(f"\t\t{url}") | |
return compare_list_of_images(news_image_path, image_urls) | |
def detect_image_by_ai_model(news_image_path): | |
print("\tFrom AI model:") | |
image_prediction_label, image_confidence = image_generation_detection( | |
news_image_path, | |
) | |
return image_prediction_label, image_confidence |