11/08/2025
- Kom i gang med at træne egne SSD-modeller i TensorFlow
- Hvad er SSD?
- Forberedelse af dit miljø
- Download af forudtrænede SSD-modeller
- Forberedelse af dit eget datasæt
- Konfiguration af træningsprocessen
- Træning af modellen
- Evaluering af modellen
- Eksport af modellen til inferens
- Kan TensorFlow/models træne med nye SSD-modeller?
- Ofte stillede spørgsmål (FAQ)
- Konklusion
Kom i gang med at træne egne SSD-modeller i TensorFlow
TensorFlow og dets omfattende Object Detection API giver udviklere mulighed for at skabe og træne avancerede modeller til objektdetektering. En af de mest populære arkitekturer inden for dette felt er Single Shot MultiBox Detector (SSD), kendt for sin effektivitet og nøjagtighed. Denne artikel vil guide dig trin for trin gennem processen med at træne dine egne SSD-modeller ved hjælp af TensorFlow, herunder hvordan du downloader forudtrænede modeller, forbereder dine data og konfigurerer træningsprocessen.

Hvad er SSD?
Single Shot MultiBox Detector (SSD) er en dyb læringsmodel til objektdetektering, der opnår høj nøjagtighed og hastighed ved at forudsige bounding boxes og klasse-sandsynligheder direkte fra et enkelt billede i ét enkelt trin (single shot). I modsætning til to-trins detektorer, der først identificerer regioner af interesse og derefter klassificerer objekterne inden for disse regioner, behandler SSD hele billedet på én gang. Dette gør den markant hurtigere og mere velegnet til applikationer i realtid.
Forberedelse af dit miljø
Før du kan begynde at træne, er det essentielt at have et velfungerende udviklingsmiljø. Dette involverer installation af TensorFlow, nødvendige biblioteker og kloning af TensorFlow Models repository.
Hardware og Software Krav
For en optimal træningsoplevelse anbefales det at bruge en kraftig GPU, såsom NVIDIA Tesla V100 eller lignende. Følgende software er typisk påkrævet:
- TensorFlow (gerne den nyeste version eller en specifik anbefalet version til Object Detection API)
- Python (version 3.6+ anbefales)
- CUDA Toolkit og cuDNN (hvis du bruger NVIDIA GPU)
- TensorFlow Models Repository (indeholder Object Detection API og træningsscripts)
- Pip (Python package installer)
- Git (til at klone repositories)
- Docker (anbefales for at sikre et ensartet miljø)
Opsætning af TensorFlow Models Repository
Det første skridt er at klone TensorFlow Models repository fra GitHub. Dette repository indeholder alle de nødvendige scripts og konfigurationsfiler.
git clone https://github.com/tensorflow/models.git cd models/research Efter kloning skal du kompilere Protocol Buffers. Dette er nødvendigt for at TensorFlow kan deserialisere konfigurationsfiler.
protoc object_detection/protos/*.proto --python_out=. Installer derefter de nødvendige Python-pakker:
pip install tf_slim pip install lxml pip install pillow pip install jupyter pip install matplotlib pip install pycocotools pip install pandas # For TensorFlow 2.x, installer også: pip install tensorflow-gpu==2.2 # Eller en anden kompatibel version Det er en god idé at tilføje stierne til TensorFlow Models repository til din PYTHONPATH for at sikre, at alle scripts kan findes:
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/research:`pwd`/research/slim Download af forudtrænede SSD-modeller
At starte med en forudtrænet model kan spare enormt meget tid og ressourcer, da modellen allerede har lært generelle træk fra et stort datasæt som COCO. TensorFlow Object Detection Model Zoo tilbyder flere forudtrænede SSD-modeller.
Hvor finder man forudtrænede modeller?
Du kan finde links til de forudtrænede modeller i TensorFlow's officielle dokumentation. En typisk model, du kan downloade, er ssd_mobilenet_v1_coco eller ssd_mobilenet_v2.

Eksempel på download af en SSD MobileNet v1 model:
# Opret en mappe til dine modeller mkdir ~/tensorflow_models/models cd ~/tensorflow_models/models # Download modellen (eksempel for SSD MobileNet v1) wget http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2017_11_17.tar.gz tar xvf ssd_mobilenet_v1_coco_2017_11_17.tar.gz Når modellen er downloadet og udpakket, vil du have en mappe, der indeholder model.ckpt filer (checkpoint-filer) og en pipeline.config fil.
Forberedelse af dit eget datasæt
For at træne en SSD-model til dine specifikke behov, skal du bruge dit eget datasæt med annoterede billeder.
Datasætformat
TensorFlow Object Detection API understøtter typisk data i Pascal VOC-format eller COCO-format. Du skal have dine billeder og tilsvarende annoteringsfiler (typisk XML eller JSON), der angiver bounding boxes og klassenavne for objekterne i hvert billede.
Billedmærkning (Image Labelling)
Værktøjer som LabelImg er populære til manuel annotering af billeder. Du skal oprette en mappe med dine billeder og gemme de tilsvarende XML-filer i samme mappe.
Installations- og brugseksempel for LabelImg:
cd ~/tensorflow_models git clone https://github.com/tzutalin/labelImg.git cd labelImg # Installer afhængigheder (følg instruktionerne i labelImg repo for din OS) pip install -r requirements/requirements-linux-python3.txt # Eksempel for Linux Python 3 python labelImg.py Konvertering til TFRecord
TensorFlow Object Detection API kræver, at data er i TFRecord-format. Du skal bruge scripts til at konvertere dine billeder og annoteringer til dette format.
Du skal også oprette en label_map.pbtxt fil, der mapper klassenavne til ID'er:
# Eksempel: roadsign_label_map.pbtxt item { id: 1 name: 'stop_sign' } item { id: 2 name: 'speed_limit_50' } Derefter kører du scripts til at generere TFRecord-filer:
# Antag at du har dine data i ~/tensorflow_models/data/images/train og ~/tensorflow_models/data/images/test # og dine XML-filer er i ~/tensorflow_models/data/annotations # Konverter XML til CSV (kræver muligvis et hjælpescript) # Derefter brug CSV til TFRecord konvertering # Eksempel på konvertering (kræver passende scripts): python ~/models/research/object_detection/dataset_tools/create_pascal_tf_record.py \ --label_map_path=~/tensorflow_models/data/roadsign_label_map.pbtxt \ --data_dir=~/tensorflow_models/data \ --set=train \ --output_path=~/tensorflow_models/data/train.record python ~/models/research/object_detection/dataset_tools/create_pascal_tf_record.py \ --label_map_path=~/tensorflow_models/data/roadsign_label_map.pbtxt \ --data_dir=~/tensorflow_models/data \ --set=val \ --output_path=~/tensorflow_models/data/val.record Konfiguration af træningsprocessen
Konfigurationsfilen (typisk .config) er central for træningsprocessen. Den definerer modelarkitekturen, data-input, træningsparametre og meget mere.

Tilpasning af pipeline.config
Du skal kopiere en eksempel-konfigurationsfil fra TensorFlow Models repository og tilpasse den til dit projekt. For en SSD MobileNet-model skal du typisk ændre følgende parametre:
| Parameter | Beskrivelse | Eksempel på ændring |
|---|---|---|
num_classes | Antallet af klasser i dit datasæt (eksklusive baggrund). | num_classes: 3 (hvis du har 3 objekttyper) |
fine_tune_checkpoint | Stien til den forudtrænede model checkpoint-fil. | fine_tune_checkpoint: "~/tensorflow_models/models/ssd_mobilenet_v1_coco_2017_11_17/model.ckpt" |
fine_tune_checkpoint_type | Angiver typen af checkpoint. For forudtrænede modeller ofte "detection". | fine_tune_checkpoint_type: "detection" |
label_map_path | Stien til din label_map.pbtxt fil. | label_map_path: "~/tensorflow_models/data/roadsign_label_map.pbtxt" |
train_input_reader | Stien til din trænings TFRecord-fil. | input_path: "~/tensorflow_models/data/train.record" |
eval_input_reader | Stien til din validerings TFRecord-fil. | input_path: "~/tensorflow_models/data/val.record" |
batch_size | Antal billeder pr. træningsiteration. Juster efter GPU-hukommelse. | batch_size: 16 |
num_steps | Det samlede antal træningstrin. | num_steps: 20000 |
Du kan også justere parametre for data augmentation, learning rate decay og optimizer-indstillinger for at forbedre træningsresultaterne.
Træning af modellen
Når dit miljø er sat op, dine data er forberedt, og konfigurationsfilen er tilpasset, kan du starte træningsprocessen.
Start af træning
Brug train.py (eller model_main.py/model_main_tf2.py for nyere versioner) scriptet til at starte træningen.
cd ~/tensorflow_models/models/research/object_detection # Brug train.py (ældre versioner): python train.py \ --logtostderr \ --pipeline_config_path=~/tensorflow_models/ssd_mobilenet_v1_roadsign.config \ --train_dir=~/tensorflow_models/training_output # Brug model_main.py (TensorFlow 1.x): python model_main.py \ --pipeline_config_path=~/tensorflow_models/ssd_mobilenet_v1_roadsign.config \ --model_dir=~/tensorflow_models/training_output \ --alsologtostderr # Brug model_main_tf2.py (TensorFlow 2.x): python model_main_tf2.py \ --pipeline_config_path=~/tensorflow_models/ssd_mobilenet_v2_320x320_coco17_tpu-8/pipeline.config \ --model_dir=~/tensorflow_models/trained-checkpoint \ --alsologtostderr \ --num_train_steps=50000 Træningsprocessen vil gemme checkpoints periodisk i den angivne train_dir. Du kan overvåge træningen ved hjælp af TensorBoard, som giver indsigt i loss-kurver, mAP (mean Average Precision) og andre metrikker.
tensorboard --logdir=~/tensorflow_models/training_output Evaluering af modellen
Regelmæssig evaluering er vigtig for at vurdere modellens ydeevne på et separat valideringsdatasæt.
python ~/tensorflow_models/models/research/object_detection/eval.py \ --logtostderr \ --pipeline_config_path=~/tensorflow_models/ssd_mobilenet_v1_roadsign.config \ --checkpoint_dir=~/tensorflow_models/training_output \ --eval_dir=~/tensorflow_models/eval_output Eksport af modellen til inferens
Når du er tilfreds med træningsresultaterne, skal du eksportere den trænede model til et format, der kan bruges til inferens.

# Opret en output-mappe hvis den ikke findes mkdir ~/tensorflow_models/exported-model # Eksempel for TensorFlow 1.x: python ~/tensorflow_models/models/research/object_detection/export_inference_graph.py \ --input_type image_tensor \ --pipeline_config_path=~/tensorflow_models/ssd_mobilenet_v1_roadsign.config \ --trained_checkpoint_prefix=~/tensorflow_models/training_output/model.ckpt \ --output_directory=~/tensorflow_models/exported-model # Eksempel for TensorFlow 2.x: python ~/tensorflow_models/models/research/object_detection/exporter_main_v2.py \ --input_type image_tensor \ --pipeline_config_path=~/tensorflow_models/ssd_mobilenet_v2_320x320_coco17_tpu-8/pipeline.config \ --trained_checkpoint_dir=~/tensorflow_models/trained-checkpoint \ --output_directory=~/tensorflow_models/exported-model Dette vil generere en saved_model mappe indeholdende den eksporterede model, klar til brug i applikationer.
Kan TensorFlow/models træne med nye SSD-modeller?
Ja, TensorFlow's models repository, især Object Detection API, er designet til at være fleksibelt og understøtter træning af forskellige SSD-arkitekturer. Ved at tilpasse konfigurationsfilen og eventuelt modeldefinitionen, kan du træne med nye varianter af SSD eller endda helt nye modeller, så længe de følger den forventede struktur.
Ofte stillede spørgsmål (FAQ)
Hvilken version af TensorFlow skal jeg bruge?
Det afhænger af den specifikke version af TensorFlow Models repository, du kloner. Nyere versioner af Object Detection API er optimeret til TensorFlow 2.x, mens ældre versioner kan kræve TensorFlow 1.x. Tjek altid dokumentationen for den version, du bruger.
Hvad hvis jeg løber tør for GPU-hukommelse?
Reducer batch_size i din pipeline.config fil. Du kan også overveje at bruge en model med en lavere opløsning eller en mere hukommelseseffektiv arkitektur som MobileNet-varianter.
Hvordan kan jeg genoptage træningen fra et checkpoint?
Sørg for, at fine_tune_checkpoint i din pipeline.config peger på det checkpoint, du vil genoptage fra, og at train_dir er den samme mappe, hvor checkpoints gemmes. Kør derefter træningsscriptet igen.
Konklusion
At træne dine egne SSD-modeller med TensorFlow er en kraftfuld måde at tilpasse objektdetekteringsløsninger til specifikke behov. Ved at følge disse trin – fra miljøopsætning og dataforberedelse til træning og eksport – kan du udnytte dyb læring til at løse komplekse computer vision-opgaver.
Hvis du vil læse andre artikler, der ligner Træn dine egne SSD-modeller med TensorFlow, kan du besøge kategorien Teknologi.
