/ Модель

Характеристики

Базовая модель
mobilenetv4_conv_medium.e250_r384_in12k
Библиотека
timm
Опубликована
29 июн 2026

phone-screen-classifier

Классификация изображенийИзображение → label3 профессии

Модель классифицирует мобильные скриншоты по типу экрана и категории безопасности, помогая фильтровать и направлять изображения на дальнейший анализ.

15скачиваний за 30 дней0лайковвеса обновлены15 авг 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

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

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Yap Phone Screenshot Classifier — модель классификации изображений, разработанная Yapwithai и дообученная на основе timm/mobilenetv4_conv_medium.e250_r384_in12k. Она предназначена для маршрутизации и фильтрации рабочих процессов с мобильными скриншотами: модель одновременно определяет категорию экрана и категорию безопасности изображения. Она возвращает оценки для двух независимых наборов меток — screen и safety; в описанной версии для выбора класса используется argmax. Модель принимает изображения с переменными размером и соотношением сторон и предусматривает обработку без обрезки, с сохранением пропорций.

В README приведены результаты оценки на тестовых наборах и замеры инференса ONNX Runtime на Apple M4 Max; эти показатели относятся к указанным условиям и не гарантируют аналогичного качества на других данных или устройствах. Для эксплуатации доступны файлы ONNX, включая вариант FP16, а также веса safetensors. Лицензия в предоставленных сведениях не указана.

Сценарии применения

  • определение типа экрана на скриншоте телефона
  • фильтрация скриншотов по категории безопасности
  • маршрутизация мобильных скриншотов перед подробным анализом
  • отделение интерфейсов телефона от изображений вне целевого распределения

Ограничения

Результаты зависят от соответствия входного изображения обучающему распределению скриншотов; метка other предназначена, в частности, для изображений вне этого распределения. Описание не приводит лицензию модели.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Yap Phone Screenshot Classifier

Yap Phone Screenshot Classifier predicts two labels for one image:

  1. screen: the phone-screen category.
  2. safety: the content-safety category.

The model returns exactly two outputs: screen and safety.

The model is fine-tuned from timm/mobilenetv4_conv_medium.e250_r384_in12k.

What It Is For

This model is built for routing and filtering mobile screenshot workflows. It separates UI classification from safety classification so an application can answer both of these questions before running more expensive analysis:

  • What kind of screen is this?
  • Which safety category does this image belong to?

generic and other are real screen labels when included in the exported label map. generic means phone UI that is not one of the more specific trained screen classes. other means non-phone UI or images outside the phone-screenshot distribution.

Files

FilePurpose
onnx/model.onnxONNX model for CPU/server inference.
onnx/model.fp16.onnxOptional FP16 ONNX candidate.
onnx/model.onnx.dataExternal ONNX weight data loaded beside model.onnx.
model.safetensorsPyTorch state dict for reproducibility and continued training.
config.jsonModel identity, base model, output names, and label arrays.
preprocess.jsonResize and normalization contract used during training/export.
train.jsonSanitized training recipe for post-training or reproduction.
inference/python.pyPython helper for ONNX inference from image paths.
inference/typescript.tsTypeScript helper for ONNX inference from image paths.
inference/labels.jsonScreen and safety labels used to decode model logits.
README.mdThis model card and runnable inference reference.

Outputs

The ONNX graph has two outputs in this exact order:

OutputShapeMeaning
screen[batch, screen_class_count]Screen-category logits.
safety[batch, safety_class_count]Content-safety logits.

Inference uses argmax for both heads in this version.

Test Results

ModelTestOutputAccuracyBalanced AccMacro F1Top-2Images
fp32full testscreen0.91540.83850.72650.971923615
fp32full testsafety0.95750.89410.86000.992123615
fp32screen-balanced testscreen0.83770.84210.81330.94006246
fp32screen-balanced testsafety0.97760.92850.91100.99786246
fp32safety-balanced testscreen0.95800.77520.65470.98703000
fp32safety-balanced testsafety0.89570.89570.89470.98473000
fp16full testscreen0.91530.83840.72640.971923615
fp16full testsafety0.95750.89410.86000.992123615
fp16screen-balanced testscreen0.83730.84190.81300.94006246
fp16screen-balanced testsafety0.97760.92850.91100.99786246
fp16safety-balanced testscreen0.95800.77520.65470.98703000
fp16safety-balanced testsafety0.89570.89570.89470.98473000

CPU Timing

ModelImages/sLoad MeanModel MeanTotal MeanTotal MedianTotal P95Provider
fp3220.05380.12 ms49.52 ms49.87 ms57.84 ms85.82 msonnxruntime:CPUExecutionProvider
fp1620.83510.11 ms47.69 ms48.00 ms48.60 ms63.65 msonnxruntime:CPUExecutionProvider

Timing is measured with ONNX Runtime CPU execution on Apple M4 Max (16 logical cores). Total latency includes image load/preprocess, model inference, and label decoding.

Classification Labels

For the screen and safety label lists, see config.json.

Preprocessing

Use the preprocessing contract in preprocess.json.

  1. Read the image.
  2. Apply EXIF orientation.
  3. Convert to RGB.
  4. Resize so the longest side is 1024 pixels and keep the original aspect ratio.
  5. Do not crop, stretch, square-pad before preprocessing, or horizontally flip.
  6. Convert to float32 in [0, 1].
  7. Normalize with the mean and standard deviation from preprocess.json.
  8. Pad each normalized tensor to the batch maximum height and width, rounded up to a multiple of 32.

The exported model accepts dynamic batch, height, and width.

ONNX Inference

The helpers intentionally return only screen and safety.

Keep onnx/model.onnx.data beside onnx/model.onnx; ONNX Runtime loads the external tensor data when it opens the graph. By default the helpers load the FP32 model at onnx/model.onnx. Pass fp16 to load onnx/model.fp16.onnx.

Download

Download the exported model folder from Hugging Face:

from huggingface_hub import snapshot_download

model_dir = snapshot_download("yapwithai/phone-screen-classifier")

Python

Install the runtime dependencies:

python -m pip install numpy pillow onnxruntime

Import the helper from the exported model folder:

from inference.python import Classifier, classify

print(classify("example.png"))
print(classify("example.png", model_format="fp16"))

classifier = Classifier(model_dir)
print(classifier.classify_batch(["one.png", "two.png"]))

fp16_classifier = Classifier(model_dir, model_format="fp16")
print(fp16_classifier.classify_batch(["one.png", "two.png"]))

Or run it directly:

python inference/python.py example.png another.png --model-format fp16

TypeScript

Install the runtime dependencies:

bun add sharp onnxruntime-node

Import the helper from the exported model folder:

import { Classifier, classify } from './inference/typescript.ts';

console.log(await classify('example.png'));
console.log(await classify('example.png', modelDir, 'fp16'));

const classifier = await Classifier.create(modelDir);
console.log(await classifier.classifyBatch(['one.png', 'two.png']));

const fp16Classifier = await Classifier.create(modelDir, 'fp16');
console.log(await fp16Classifier.classifyBatch(['one.png', 'two.png']));

Or run it directly:

bun inference/typescript.ts example.png another.png --model-format fp16

Citation

If you use this model, please cite:

@misc{phone-screen-classifier,
  title={Yap Phone Screenshot Classifier},
  year={2026},
  publisher={Yap With AI},
  url={https://huggingface.co/yapwithai/phone-screen-classifier}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · timm · image-classification

Можно запустить

Подбираем GPU…

Ревизия весов
db48747

0 моделей