Оригинал материала

Оригинал фото

Проект "AutismSmartDetector" представляет собой инновационную систему на основе искусственного интеллекта, предназначенную для автоматического определения черт аутистического спектра по фотографиям лиц. Система использует свёрточную нейронную сеть (CNN), обученную на большом наборе данных, чтобы классифицировать изображения на две категории: "Autistic" и "Non-Autistic".

Преимущества для различных отраслей

Для врачей и медицинских учреждений

  • Ранняя диагностика: Система позволяет врачам быстро и эффективно проводить предварительную оценку пациентов на наличие аутистических черт, что способствует ранней диагностике и своевременному началу лечения.

  • Улучшение качества обслуживания: Автоматизация процесса диагностики позволяет врачам сосредоточиться на более сложных случаях и уделить больше времени пациентам.

  • Повышение точности: Использование искусственного интеллекта снижает вероятность ошибок в диагностике, что повышает точность и надежность результатов.

Для финансовых организаций

  • Оценка рисков: Система может использоваться для оценки рисков при выдаче кредитов или страховых полисов, учитывая особенности поведения и состояния здоровья клиентов.

  • Персонализация услуг: Финансовые организации могут предлагать персонализированные услуги и продукты, учитывая индивидуальные особенности клиентов.

Для цифровых экосистем

  • Улучшение пользовательского опыта: Система может быть интегрирована в платформы для улучшения пользовательского опыта, предлагая персонализированные рекомендации и услуги.

  • Анализ поведения пользователей: Анализ черт аутистического спектра может помочь в понимании поведения пользователей и адаптации интерфейсов и сервисов под их потребности.

Для соцсетей

  • Безопасность и модерация: Система может использоваться для модерации контента и обеспечения безопасности пользователей, особенно тех, кто может быть уязвим из-за особенностей поведения.

  • Персонализация контента: Социальные сети могут предлагать персонализированный контент и рекомендации, учитывая индивидуальные особенности пользователей.

Для сервисов знакомств

  • Персонализация рекомендаций: Система может помочь в подборе партнеров, учитывая индивидуальные особенности и потребности пользователей.

  • Безопасность и защита: Сервисы знакомств могут использовать систему для защиты пользователей от мошенников и недобросовестных участников.

Основные возможности

  • Обучение модели: Обучение модели на основе данных, собранных из различных источников.

  • Предсказание по одному изображению: Возможность загрузки и анализа одного изображения для определения наличия аутистических черт.

  • Предсказание по множеству изображений: Анализ нескольких изображений одновременно.

  • Предсказание по URL: Возможность анализа изображений, загруженных по URL.

Требования

  • Python 3.8+

  • PyTorch

  • Torchvision

  • Pillow

  • Requests

  • Glob

  • Matplotlib

Загрузка репозитория с кодом и моделью

Исходный код и модель доступны в git-сервисах. Однако данные для обучения берутся с Kaggle, где это решение было реализовано:

Установка

Для установки всех необходимых библиотек выполните следующую команду:

pip install torch torchvision pillow requests matplotlib

Структура проекта

.
|-- README.md
|-- best_model.pth
|-- data
| |-- consolidated
| | |-- Autistic
| | |-- Non-Autistic
| |-- train
| | |-- Autistic
| | |-- Non-Autistic
| |-- valid
| | |-- Autistic
| | |-- Non-Autistic
| |-- test
| | |-- Autistic
| | |-- Non-Autistic
|-- main.py

Использование

1. Обучение модели:

Запустите скрипт main.py для обучения модели на данных из папки data. После завершения обучения модель будет сохранена в файле best_model.pth.

2. Предсказание по одному изображению(на основе изображении из датасета, по которому обучалась модель):

import torch
from torchvision import transforms
from PIL import Image

# Загрузка модели
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = AutismClassifier().to(device)
model.load_state_dict(torch.load('best_model.pth', map_location=device))
model.eval()

# Загрузка и предобработка изображения
image_path = "/kaggle/input/autism-image-data/AutismDataset/consolidated/Autistic/0015.jpg"
transform = transforms.Compose([
 transforms.Resize((224, 224)),
 transforms.ToTensor(),
 transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

image = Image.open(image_path)
image_tensor = transform(image).unsqueeze_(0).to(device)

# Прогон через модель
with torch.no_grad():
 output = model(image_tensor)
 probabilities = torch.softmax(output, dim=1)
 pred_class = torch.argmax(probabilities, dim=1)

# Интерпретация результата
classes = ["Non-Autistic", "Autistic"]
print(f"Прогноз для изображения '{image_path}' — {classes[pred_class.item()]}. Вероятности: {probabilities.tolist()[0]} ")

3. Предсказание по множеству изображений(на основе изображении из датасета, по которому обучалась модель):

import glob
from torch.utils.data import DataLoader
from torchvision import transforms
from PIL import Image

# Список путей к изображениям
images_paths = glob.glob("/kaggle/input/autism-image-data/AutismDataset/valid/Autistic/*.jpg")

# Преобразование данных
transform = transforms.Compose([
 transforms.Resize((224, 224)),
 transforms.ToTensor(),
 transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

# Пользовательская функция для открытия и преобразования изображений
def load_and_transform(path):
 image = Image.open(path)
 return transform(image)

# Создаем генератор изображений
image_tensors = [load_and_transform(path) for path in images_paths]

# Пакуем в батч
image_batch = torch.stack(image_tensors).to(device)

# Прогон через модель
with torch.no_grad():
 outputs = model(image_batch)
 probabilities = torch.softmax(outputs, dim=1)
 preds = torch.argmax(probabilities, dim=1)

# Выводим прогнозы
for i, path in enumerate(images_paths):
 print(f"Изображение {path}: {classes[preds[i].item()]}, Вероятности: {probabilities[i].tolist()} ")

4. Предсказание по URL(на примере селфи Ренаты Ли из Pinterest):

import requests
from io import BytesIO
from torchvision import transforms
from PIL import Image

# Загрузка модели
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = AutismClassifier().to(device)
model.load_state_dict(torch.load('best_model.pth', map_location=device))
model.eval()

# Загрузка изображения по URL
url = "https://i.pinimg.com/originals/55/b7/93/55b793764f01746f78f54820caa9caeb.jpg"
response = requests.get(url)
image_bytes = response.content

# Преобразуем байты в изображение и далее по схеме
image = Image.open(BytesIO(image_bytes))
image_tensor = transform(image).unsqueeze_(0).to(device)

# Прогон через модель
with torch.no_grad():
 output = model(image_tensor)
 probabilities = torch.softmax(output, dim=1)
 pred_class = torch.argmax(probabilities, dim=1)

# Результат
print(f"Прогноз для изображения по URL '{url}' — {classes[pred_class.item()]}. Вероятности: {probabilities.tolist()[0]} ")

Заключение

Проект "AutismSmartDetector" предлагает уникальные возможности для различных отраслей, улучшая качество обслуживания, повышая точность диагностики и обеспечивая персонализированный подход к каждому пользователю.

 

Сама эффективность модели по результатам предрелизного тестирования:

  1. [Эпоха 1/10] Loss: 83.607, Train Accuracy: 62.34% [Эпоха 1/10] Validation Accuracy: 68.93% [Эпоха 2/10] Loss: 38.975, Train Accuracy: 68.80% [Эпоха 2/10] Validation Accuracy: 75.06% [Эпоха 3/10] Loss: 34.604, Train Accuracy: 73.62% [Эпоха 3/10] Validation Accuracy: 74.60% [Эпоха 4/10] Loss: 32.385, Train Accuracy: 75.95% [Эпоха 4/10] Validation Accuracy: 73.70% [Эпоха 5/10] Loss: 28.425, Train Accuracy: 79.54% [Эпоха 5/10] Validation Accuracy: 76.64% [Эпоха 6/10] Loss: 25.503, Train Accuracy: 82.46% [Эпоха 6/10] Validation Accuracy: 76.64% [Эпоха 7/10] Loss: 21.775, Train Accuracy: 85.81% [Эпоха 7/10] Validation Accuracy: 76.64% [Эпоха 8/10] Loss: 19.891, Train Accuracy: 87.37% [Эпоха 8/10] Validation Accuracy: 78.23% [Эпоха 9/10] Loss: 16.099, Train Accuracy: 90.77% [Эпоха 9/10] Validation Accuracy: 74.60% [Эпоха 10/10] Loss: 16.260, Train Accuracy: 89.84% [Эпоха 10/10] Validation Accuracy: 78.23% Модель успешно сохранена!

  2. Финальная точность на тестовом наборе: 72.79% precision recall f1-score support 0 0.7163 0.7230 0.7196 213 1 0.7389 0.7325 0.7357 228 accuracy 0.7279 441 macro avg 0.7276 0.7277 0.7277 441 weighted avg 0.7280 0.7279 0.7279 441

  3. Прогноз для изображения '/kaggle/input/autism-image-data/AutismDataset/consolidated/Autistic/0015.jpg' — Non-Autistic. Вероятности: [0.860454797744751, 0.1395452618598938]

  4. Прогноз для изображения по URL 'https://i.pinimg.com/originals/55/b7/93/55b793764f01746f78f54820caa9caeb.jpg' — Autistic. Вероятности: [0.3137427270412445, 0.6862573027610779]

  5. Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/45.jpg: Non-Autistic, Вероятности: [0.8975199460983276, 0.10248009860515594] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/20.jpg: Non-Autistic, Вероятности: [0.9396201372146606, 0.06037987396121025] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/30.jpg: Non-Autistic, Вероятности: [0.9228528738021851, 0.07714710384607315] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/38.jpg: Non-Autistic, Вероятности: [0.9985777139663696, 0.0014222444733604789] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/42.jpg: Non-Autistic, Вероятности: [0.5463358759880066, 0.4536641836166382] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/33.jpg: Non-Autistic, Вероятности: [0.9597986936569214, 0.04020124673843384] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/10.jpg: Non-Autistic, Вероятности: [0.9056074023246765, 0.09439262002706528] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/35.jpg: Non-Autistic, Вероятности: [0.9072375893592834, 0.09276241064071655] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/41.jpg: Non-Autistic, Вероятности: [0.985905110836029, 0.014094934798777103] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/03.jpg: Non-Autistic, Вероятности: [0.9916881918907166, 0.008311815559864044] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/37.jpg: Non-Autistic, Вероятности: [0.9996997117996216, 0.0003002843295689672] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/46.jpg: Non-Autistic, Вероятности: [0.9999425411224365, 5.7397330238018185e-05] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/44.jpg: Non-Autistic, Вероятности: [0.954089879989624, 0.045910123735666275] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/01.jpg: Non-Autistic, Вероятности: [0.9152106046676636, 0.08478938788175583] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/50.jpg: Non-Autistic, Вероятности: [0.7896190285682678, 0.21038097143173218] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/29.jpg: Non-Autistic, Вероятности: [0.7151452898979187, 0.2848546802997589] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/16.jpg: Non-Autistic, Вероятности: [0.7867441773414612, 0.2132558375597] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/23.jpg: Non-Autistic, Вероятности: [0.8975328803062439, 0.10246709734201431] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/02.jpg: Non-Autistic, Вероятности: [0.8802333474159241, 0.11976667493581772] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/28.jpg: Autistic, Вероятности: [0.009367822669446468, 0.990632176399231] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/22.jpg: Non-Autistic, Вероятности: [0.9999207258224487, 7.931755681056529e-05] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/40.jpg: Non-Autistic, Вероятности: [0.9571797847747803, 0.042820245027542114] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/48.jpg: Non-Autistic, Вероятности: [0.9040815830230713, 0.09591842442750931] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/24.jpg: Non-Autistic, Вероятности: [0.9861753582954407, 0.013824568130075932] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/09.jpg: Non-Autistic, Вероятности: [0.922892153263092, 0.07710782438516617] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/31.jpg: Non-Autistic, Вероятности: [0.6573981642723083, 0.34260186553001404] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/43.jpg: Non-Autistic, Вероятности: [0.9687045812606812, 0.03129534423351288] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/13.jpg: Non-Autistic, Вероятности: [0.9762715101242065, 0.02372846007347107] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/05.jpg: Non-Autistic, Вероятности: [0.8192707300186157, 0.18072926998138428] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/32.jpg: Non-Autistic, Вероятности: [0.9272454380989075, 0.07275455445051193] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/06.jpg: Non-Autistic, Вероятности: [0.9824183583259583, 0.017581643536686897] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/17.jpg: Non-Autistic, Вероятности: [0.7582643032073975, 0.24173569679260254] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/26.jpg: Non-Autistic, Вероятности: [0.7538187503814697, 0.24618127942085266] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/39.jpg: Non-Autistic, Вероятности: [0.9258626103401184, 0.07413731515407562] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/15.jpg: Non-Autistic, Вероятности: [0.9963406920433044, 0.003659237874671817] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/04.jpg: Non-Autistic, Вероятности: [0.9123560786247253, 0.08764392137527466] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/12.jpg: Non-Autistic, Вероятности: [0.8905658721923828, 0.10943407565355301] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/11.jpg: Non-Autistic, Вероятности: [0.9802691340446472, 0.019730882719159126] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/34.jpg: Autistic, Вероятности: [0.08379518985748291, 0.9162048101425171] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/27.jpg: Non-Autistic, Вероятности: [0.9824625253677368, 0.017537495121359825] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/21.jpg: Non-Autistic, Вероятности: [0.9023659825325012, 0.09763399511575699] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/08.jpg: Non-Autistic, Вероятности: [0.9468685984611511, 0.05313147231936455] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/36.jpg: Non-Autistic, Вероятности: [0.9947085380554199, 0.005291415844112635] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/07.jpg: Non-Autistic, Вероятности: [0.9940096139907837, 0.005990440957248211] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/19.jpg: Non-Autistic, Вероятности: [0.8153501749038696, 0.18464983999729156] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/47.jpg: Non-Autistic, Вероятности: [0.9986063838005066, 0.0013936901232227683] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/14.jpg: Non-Autistic, Вероятности: [0.9618967175483704, 0.038103245198726654] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/18.jpg: Non-Autistic, Вероятности: [0.9967671632766724, 0.00323283183388412] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/49.jpg: Non-Autistic, Вероятности: [0.9685015082359314, 0.03149845078587532] Изображение /kaggle/input/autism-image-data/AutismDataset/valid/Autistic/25.jpg: Non-Autistic, Вероятности: [0.9717873334884644, 0.028212685137987137]

Комментарии (0)