/ Модель

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

Контекст
1 024 токена
Параметры
6,3 млн
Лицензия
Apache 2.0
Архитектура
conditional_detr · dense
Базовая модель
conditional-detr-resnet-50
Библиотека
transformers
Опубликована
18 июн 2025

conditional-detr-50-signature-detector

Поиск объектовИзображение → bounding_boxes6 профессий

Дообученная Conditional DETR с ResNet-50 находит рукописные подписи и их координаты на изображениях документов.

3 787скачиваний за 30 дней8лайковвеса обновлены18 июн 2025

Бенчмарки

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

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

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

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

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

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

Conditional DETR с backbone ResNet-50, дообученная Tech4Humans для обнаружения рукописных подписей на изображениях документов. Модель принимает изображение документа и возвращает ограничивающие рамки объектов подписи. Она создана на основе microsoft/conditional-detr-resnet-50 и распространяется в формате safetensors; в метаданных указано 6,3 млн параметров.

Обучение проводилось на наборе из 2 819 изображений документов с разметкой координат подписей, собранном из Tobacco800 и signatures-xc8up. В README для Conditional DETR приведён результат mAP@0.5 около 93,65% в сравнении архитектур; показатели в других таблицах относятся к отдельным экспериментам и моделям YOLO, поэтому их нельзя напрямую считать характеристиками этого чекпойнта. Модель предназначена для поиска областей подписей в потоке обработки документов. Лицензия — Apache-2.0.

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

  • поиск областей рукописных подписей на сканах документов
  • проверка наличия подписи в цифровом документе
  • извлечение координат подписи для последующей обработки документа

Ограничения

Модель обучена на ограниченном наборе из 2 819 изображений и предназначена для обнаружения подписей; качество на других типах документов и изображений в README не установлено. Приведённые метрики относятся к тестированию авторов и могут не отражать качество на новых данных.

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

Conditional-DETR ResNet-50 - Handwritten Signature Detection

This repository presents a Conditional-DETR model with ResNet-50 backbone, fine-tuned to detect handwritten signatures in document images. This model achieved the highest mAP@0.5 (93.65%) among all tested architectures in our comprehensive evaluation.

ResourceLinks / BadgesDetails
ArticlePaper pageA detailed community article covering the full development process of the project
Model Files (YOLOv8s)HF ModelAvailable formats: PyTorch ONNX TensorRT
Dataset – OriginalRoboflow2,819 document images annotated with signature coordinates
Dataset – ProcessedHF DatasetAugmented and pre-processed version (640px) for model training
Notebooks – Model ExperimentsColab W&B TrainingComplete training and evaluation pipeline with selection among different architectures (yolo, detr, rt-detr, conditional-detr, yolos)
Notebooks – HP TuningColab W&B HP TuningOptuna trials for optimizing the precision/recall balance
Inference ServerGitHubComplete deployment and inference pipeline with Triton Inference Server OpenVINO Docker Triton
Live DemoHF SpaceGraphical interface with real-time inference Gradio Plotly

Dataset

Dataset Summary:

  • Training: 1,980 images (70%)
  • Validation: 420 images (15%)
  • Testing: 419 images (15%)
  • Format: COCO JSON
  • Resolution: 640x640 pixels

Roboflow Dataset


Training Process

The training process involved the following steps:

1. Model Selection:

Various object detection models were evaluated to identify the best balance between precision, recall, and inference time.

Metricrtdetr-lyolos-baseyolos-tinyconditional-detr-resnet-50detr-resnet-50yolov8xyolov8lyolov8myolov8syolov8nyolo11xyolo11lyolo11myolo11syolo11nyolov10xyolov10lyolov10byolov10myolov10syolov10n
Inference Time - CPU (ms)583.6081706.49265.346476.831425.6491259.47871.329401.183216.6110.4421016.68518.147381.652179.792106.656821.183580.767473.109320.12150.07673.8596
mAP500.927090.9011540.8698140.9365240.888850.7942370.8003120.8753220.8747210.8160890.6670740.7074090.8095570.8356050.8137990.6810230.7268020.7898350.7876880.6638770.734332
mAP50-950.6223640.5835690.4690640.6533210.5794280.5529190.5939760.6654950.654570.6239630.4822890.4991260.6007970.6388490.6174960.4745350.5226540.5788740.5812590.4738570.552704

Model Selection

Highlights:

  • Best mAP50: conditional-detr-resnet-50 (0.936524)
  • Best mAP50-95: yolov8m (0.665495)
  • Fastest Inference Time: yolov10n (73.8596 ms)

Detailed experiments are available on Weights & Biases.

2. Hyperparameter Tuning:

The YOLOv8s model, which demonstrated a good balance of inference time, precision, and recall, was selected for hyperparameter tuning.

Optuna was used for 20 optimization trials. The hyperparameter tuning used the following parameter configuration:

    dropout = trial.suggest_float("dropout", 0.0, 0.5, step=0.1)
    lr0 = trial.suggest_float("lr0", 1e-5, 1e-1, log=True)
    box = trial.suggest_float("box", 3.0, 7.0, step=1.0)
    cls = trial.suggest_float("cls", 0.5, 1.5, step=0.2)
    opt = trial.suggest_categorical("optimizer", ["AdamW", "RMSProp"])

Results can be visualized here: Hypertuning Experiment.

Hypertuning Sweep

3. Evaluation:

The models were evaluated on the test set at the end of training in ONNX (CPU) and TensorRT (GPU - T4) formats. Performance metrics included precision, recall, mAP50, and mAP50-95.

Trials

Results Comparison:

MetricBase ModelBest Trial (#10)Difference
mAP5087.47%95.75%+8.28%
mAP50-9565.46%66.26%+0.81%
Precision97.23%95.61%-1.63%
Recall76.16%91.21%+15.05%
F1-score85.42%93.36%+7.94%

Results

After hyperparameter tuning of the YOLOv8s model, the best model achieved the following results on the test set:

  • Precision: 94.74%
  • Recall: 89.72%
  • mAP@50: 94.50%
  • mAP@50-95: 67.35%
  • Inference Time:
    • ONNX Runtime (CPU): 171.56 ms
    • TensorRT (GPU - T4): 7.657 ms

How to Use

Installation

pip install transformers torch torchvision pillow

Inference

from transformers import AutoImageProcessor, AutoModelForObjectDetection
from PIL import Image
import torch

# Load model and processor
model_name = "tech4humans/conditional-detr-50-signature-detector"
processor = AutoImageProcessor.from_pretrained(model_name)
model = AutoModelForObjectDetection.from_pretrained(model_name)

# Load and process image
image = Image.open("path/to/your/document.jpg")
inputs = processor(images=image, return_tensors="pt")

# Run inference
with torch.no_grad():
    outputs = model(**inputs)

# Post-process results
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(
    outputs, target_sizes=target_sizes, threshold=0.5
)[0]

# Extract detections
for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
    box = [round(i, 2) for i in box.tolist()]
    print(f"Detected signature with confidence {round(score.item(), 3)} at location {box}")

Visualization

import matplotlib.pyplot as plt
import matplotlib.patches as patches
from PIL import Image

def visualize_predictions(image_path, results, threshold=0.5):
    image = Image.open(image_path)
    fig, ax = plt.subplots(1, figsize=(12, 9))
    ax.imshow(image)
    
    for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
        if score > threshold:
            x, y, x2, y2 = box.tolist()
            width, height = x2 - x, y2 - y
            
            rect = patches.Rectangle(
                (x, y), width, height, 
                linewidth=2, edgecolor='red', facecolor='none'
            )
            ax.add_patch(rect)
            ax.text(x, y-10, f'Signature: {score:.3f}', 
                   bbox=dict(boxstyle="round,pad=0.3", facecolor="yellow", alpha=0.7))
    
    ax.set_title("Signature Detection Results")
    plt.axis('off')
    plt.show()

# Use the visualization
visualize_predictions("path/to/your/document.jpg", results)

Demo

You can explore the model and test real-time inference in the Hugging Face Spaces demo, built with Gradio and ONNXRuntime.

Open in Spaces


🔗 Inference with Triton Server

If you want to deploy this signature detection model in a production environment, check out our inference server repository based on the NVIDIA Triton Inference Server.


Infrastructure

Software

The model was trained and tuned using a Jupyter Notebook environment.

  • Operating System: Ubuntu 22.04
  • Python: 3.10.12
  • PyTorch: 2.5.1+cu121
  • Ultralytics: 8.3.58
  • Roboflow: 1.1.50
  • Optuna: 4.1.0
  • ONNX Runtime: 1.20.1
  • TensorRT: 10.7.0

Hardware

Training was performed on a Google Cloud Platform n1-standard-8 instance with the following specifications:

  • CPU: 8 vCPUs
  • GPU: NVIDIA Tesla T4

License

Model Weights, Code and Training Materials – Apache 2.0

  • License: Apache License 2.0
  • Usage: All training scripts, deployment code, and usage instructions are licensed under the Apache 2.0 license.

Contact and Information

For further information, questions, or contributions, contact us at iag@tech4h.com.br.

Author


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

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

GPU в ailist

Универсальный рантайм · transformers · object-detection

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

Подбираем GPU…

Класс архитектуры
ConditionalDetrForObjectDetection
Ревизия весов
9582471

0 моделей