­čĽÁ´ŞĆÔÇŹÔÖé´ŞĆ Tensorflow Object Detection API ile Obje Bulma

Tensorflow Object Detection API ile Obje Bulma ve kullan─▒m─▒ i├žin gerekli talimatlar─▒m

­čôó ├ľnemli Duyuru

­čÜž Tensorflow Kurulumu

  • Tensorflow anaconda ├╝zerinden daha sa─čl─▒kl─▒, ta┼č─▒nabilir ve verimli ├žal─▒┼čabilmekte

  • Anaconda'n─▒n sanal ortamlar─▒, paketlerin ├žak─▒┼čmas─▒n─▒ engelleyecektir

  • Anaconda'n─▒n Tensorflow'daki avantaj─▒ i├žin buraya g├Âz atabilirsin.

­čĺÜ Anaconda Kurulumu
­čĺŤ Tensorflow CPU veya GPU Kurulumu
Ôťů Kurulumu Test Etme
­čĺŤ Tensorflow CPU veya GPU Kurulumu
  • Bu kurulum CPU kurulumu olarak da ge├žmekte

  • GPU kurulumu CPU'ya nazaran olduk├ža h─▒zl─▒ e─čitim se├žene─či sa─člar

  • GPU kurulumu i├žin gereksinimleri sa─čl─▒yorsan─▒z GPU kurulumu (tensorflow-gpu) yapman─▒z tavsiye edilir

Sanal Ortam Olu┼čturma ve ├ťzerine Kurma

conda create -n tensorflow tensorflow # CPU kurulumu
conda create -n tensorflow tensorflow-gpu # GPU kurulumu
Ôťů Kurulumu Test Etme

Alttaki komut ile 'Hello, TensorFlow!' ├ž─▒kt─▒s─▒n─▒ alman─▒z gerekmektedir.

python -c
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))

­čÜž Tensorflow Alg─▒lama Modellerinin Kurulumu

  • Alg─▒lama modelleri tabloma eri┼čmek i├žin buraya t─▒klayabilirsin

    • Resmi sitesi i├žin buraya bakabilirsin

  • Video ├╝zerinden a├ž─▒klama i├žin buraya bakabilirsin

Resmi a├ž─▒klamalar models/research/object_detection/g3doc dizinindedir.

­čôŽ Paketler
­čĄľ Modeller
ÔťĘ Protobuff'lar─▒n ─░┼členmesi
­čžÉ Obje Alg─▒lama K├╝t├╝phaneleri
­čîâ Ortam De─či┼čkenleri
Ôťů Kurulumlar─▒ Test Etme
­čôŽ Paketler

Tensorflow modellerini kullanabilmek i├žin alttaki kurulumlara da ihtiya├ž olabilmekte:

conda install opencv pillow matplotlib pandas jupyter

Mod├╝l bulunamamas─▒ gibi durumlarda lxml, protobuf paketlerini y├╝klemeyi deneyebilirsin.

­čÉž Linux i├žin OpenCv Kurulumu

GTK ve FFMPEG hatas─▒n─▒ engellemek i├žin pip ile kurulum yap─▒n

pip install opencv-contrib-python

­čŹ▒ Script Dosyalar─▒ i├žin Gerekli Mod├╝ller

pip install pynput # detect_from_desktop
­čĄľ Modeller

Alttaki talimatler ve komutlar yard─▒m─▒yla tensorflow modellerini kurun:

  • Modelleri indirmek i├žin buraya t─▒klayabilirsin

  • ─░stersen buraya t─▒klayarak github linkine eri┼čebilirsin

  • ─░ndirdi─činiz dosyan─▒n i├žindekileri models dizinine koyman─▒z gerekmektedir.

Bu ad─▒ndan sonras─▒ models/research/ dizininde ger├žekle┼čtirilmelidir.

powershell.exe Expand-Archive models-master.zip .
ren models-master models
move models %TENSORFLOW%
cd %TENSORFLOW%\models\research\

Models Klas├Âr├╝ Yap─▒s─▒

+ models
+ offical
+ research
+ sample
...
ÔťĘ Protobuff'lar─▒n ─░┼členmesi

Protobuf dosyalar─▒ (.proto uzant─▒l─▒ olan dosyalar) python kodlan─▒ olu┼čturmak i├žin kullan─▒lan dosyalard─▒r. TensorFlow/models/research/ dizininde

Windows:

for /f %i in ('dir /b object_detection\protos\*.proto') do protoc object_detection\protos\%i --python_out=.

Linux:

protoc object_detection/protos/*.proto --python_out=.

Protobuflarlar─▒n i┼členmesiyle .py uzant─▒l─▒ dosyalar olu┼čacakt─▒r

­čžÉ Obje Alg─▒lama K├╝t├╝phaneleri
# TensorFlow/models/research/ dizininde
python setup.py build
python setup.py install
­čîâ Ortam De─či┼čkenleri

E─čer daha ├Ânceden tan─▒ml─▒ PYTHONPATH ortam de─či┼čkeniniz yoksa ilk olan, varsa ikinci olan komutu kullan─▒n.

Bu ortam de─či┼čkenlerinin terminalin her a├ž─▒l─▒┼č─▒nda yaz─▒lmas─▒ gerekmektedir.

set PYTHONPATH=%TENSORFLOW%\models\research;%TENSORFLOW%\models\research\slim;%TENSORFLOW%\models\research\object_detection
set PYTHONPATH=%PYTHONPATH%;%TENSORFLOW%\models\research;%TENSORFLOW%\models\research\slim;%TENSORFLOW%\models\research\object_detection

­čĺź Anaconda Ortam─▒ i├žin Otomatik Tan─▒mlama

  • Her conda activate <ortam_ismi> komutu yaz─▒ld─▒─č─▒nda ortamlar dahil edilir

  • Her conda deactivate yaz─▒ld─▒─č─▒nda ortamlar kald─▒r─▒l─▒r

­čÄç Windows i├žin Otomatik Tan─▒mlama

cd <conda_ortam─▒_yolu>
mkdir .\etc\conda\activate.d
echo set PYTHONPATH=%TENSORFLOW%\models\research;%TENSORFLOW%\models\research\slim;%TENSORFLOW%\models\research\object_detection > .\etc\conda\activate.d\env_vars.bat

­čÉž Linux i├žin Otomatik Tan─▒mlama

Resmi kaynak i├žin buraya bakabilirsin.

cd <conda_ortam─▒_yolu>
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
echo export PYTHONPATH=${PYTHONPATH}:${TENSORFLOW}/models/research:${TENSORFLOW}/models/research/slim:${TENSORFLOW}/models/research/object_detection > etc/conda/activate.d/env_vars.sh
echo unset PYTHONPATH > etc/conda/deactivate.d/env_vars.sh
  • <conda_ortam─▒_yolu> Conda ortam─▒n─▒n kuruldu─ču yol

    • ├ľrn: %USERPROFILE%\Anaconda3\envs\tensorflow-cpu

Ôťů Kurulumlar─▒ Test Etme

Jupyter notebook ile API'lar─▒ test etmemiz gerekmekte.

cd object_detection
jupyter notebook

Jupyter notebook hakk─▒nda bilgi sahibi de─čilsen buraya t─▒klayarak ne yapman gerekti─čini ├Â─črenebilirsin.

­čĺĚ LabelImg Kurulumu

  • LabelImg tensorflow modelleri i├žin etiketleme ama├žl─▒ kullan─▒lmaktad─▒r

  • Derlenmi┼č s├╝r├╝m├╝n├╝ indirmek i├žin buraya t─▒klayabilirsin

  • Derlenmi┼č s├╝r├╝m├╝ ├žal─▒┼čmazsa alttaki y├Ânerge ile derleyebilirsin

─░ndirilen dosyay─▒ %TENSORFLOW%\addons dizinine atman─▒z daha verimli bir ├žal─▒┼čma sa─člayacakt─▒r.

­čîć Sanal Ortam Olu┼čturma
­čôŽ Paketlerini Kurma ve Derleme
Ôťů Test Etme
­čîć Sanal Ortam Olu┼čturma

Tensorflow ortam─▒n─▒n alt paketlerini etkilememsi i├žin ek bir sanal ortamda kurulum sa─člamal─▒y─▒z.

conda create -n labelImg pyqt # QT grafik k├╝t├╝phanesi
conda activate labelImg
conda install -c anaconda lxml
­čôŽ Paketlerini Kurma ve Derleme

Paketlerin kurulumu i├žin alttaki talimatlar─▒ s─▒rayla uygulay─▒n:

  • LabelImg dosyalar─▒n─▒ indirmek i├žin buraya t─▒klay─▒n

  • Di─čer i┼člemler i├žin indirdi─činiz dosya dizininde cmd a├ž─▒p alttaki komutlar─▒ yaz─▒n

# labelImg-master.zip dizininde
powershell.exe Expand-Archive labelImg-master.zip .
ren labelImg-master labelImg
mkdir %TENSORFLOW%\addons
move labelImg %TENSORFLOW%\addons
cd %TENSORFLOW%\addons\labelImg
pyrcc5 -o resources.py resources.qrc # QT grafiklerinin olu┼čturulmas─▒

'pyrcc5' is not recognized as an internal or external command hatas─▒ gelirse, y├╝kledi─činiz pyqt s├╝r├╝m├╝ne g├Âre komutu kullan─▒n (pyrcc<pyqt_s├╝r├╝m├╝_ilk_basama─č─▒>)

Ôťů Test Etme
conda activate tensorflow-cpu
cd %TENSORFLOW%\addons\labelImg
python labelImg.py
# python labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE]

­čôé Dizin Yap─▒s─▒n─▒ Olu┼čturma

­čîâ Tensorflow Dizininizi Ge├žici Ortam De─či┼čkenlerine Ekleme

ÔÜí H─▒zl─▒ ─░┼člem
­čÜÇ Kal─▒c─▒ ─░┼člem
ÔÜí H─▒zl─▒ ─░┼člem

Alttaki komut yard─▒m─▒yla a├ž─▒k olan cmd ekran─▒na ortam de─či┼čkeni tan─▒mlayabilirsiniz.

set TENSORFLOW=<dizin_yolu>
  • <dizin_yolu> Tensorflow'u kurmak istedi─činiz dizin

    • ├ľrn: "C:\Tensorflow"

­čÜÇ Kal─▒c─▒ ─░┼člem
  • Bilgisayar─▒ma sa─č t─▒klay─▒n Ayarlar k─▒sm─▒na girin

  • Sol alanda Geli┼čmi┼č Sistem Ayarlar─▒'na t─▒klay─▒n

  • A├ž─▒lan ekranda Ortam De─či┼čkenleri butonuna t─▒klay─▒n

  • ├ťst k─▒s─▒mdaki kullan─▒c─▒ de─či┼čkenleri alan─▒nda Yeni butonuna t─▒klay─▒n

  • De─či┼čken ismine: Tensorflow De─čerine: 'dizin yolunuzu' yaz─▒n

­čž▒ Temel Klas├Ârlerin Olu┼čturulmas─▒

­čĹęÔÇŹ­čĺ╗ Kod ile Dizin Olu┼čturma
­čôé Temel Yap─▒
­čĹĘÔÇŹ­čĺ╝ ├çal─▒┼čma Alan─▒
­čôÇ Data
­čĄľ Model Dizini
­čĹęÔÇŹ­čĺ╗ Kod ile Dizin Olu┼čturma

─░lerideki yap─▒ i├žin bu dizinin yolu %TENSORFLOW% olarak ifade edilecektir.

D├╝zg├╝n ve verimli ├žal─▒┼čmak i├žin buradaki yap─▒y─▒ kullanman─▒z ├Ânerilir.

mkdir %TENSORFLOW%\workspace\example_detection
mkdir %TENSORFLOW%\workspace\example_detection\data
mkdir %TENSORFLOW%\workspace\example_detection\images\train
mkdir %TENSORFLOW%\workspace\example_detection\images\eval
mkdir %TENSORFLOW%\workspace\example_detection\models
­čôé Temel Yap─▒
+ addons
+ docs
+ models
+ scripts
+ workspace
+ example_detection
+ data
+ models
+ <model_ismi>
+ eval
+ train
- *.config
...
+ <model_ismi>
+ eval
+ train
- *.config
...
...
...
+ example2_detection
+ data
+ models
+ <model_ismi>
+ eval
+ train
- *.config
...
+ <model_ismi>
+ eval
+ train
- *.config
...
...
...

Dizin

A├ž─▒klama

addons

LabelImg vs.

docs

D├Âk├╝manlar

models

Tensorflow Models dosyas─▒

scripts

Kullanaca─č─▒n─▒z ortak kod par├žalar─▒

workspace

├çal─▒┼čma Alan─▒

­čĹĘÔÇŹ­čĺ╝ ├çal─▒┼čma Alan─▒
+ workspace
+ example_detection
+ data
+ models
...
+ example2_detection
+ data
+ models
...
...

Dizin

A├ž─▒klama

data

E─čitime kat─▒lacak verileri (eval.record, train.record, label_map) i├žeririr.

model

E─čitilecek modellerin dosyalar─▒n─▒ i├žerir.

­čôÇ Data
+ example_detection
+ data
- label_map.pbtxt
- eval.record
- train.record
+ models
...
...

Dosya

A├ž─▒klama

label_map.pbtxt

Etiket haritas─▒ dosyas─▒

eval.record

Test i├žin kullan─▒lacak tensorflow kay─▒tlar─▒ (TF record)

train.record

E─čitim i├žin kullan─▒lacak tensorflow kay─▒tlar─▒ (TF record)

­čĄľ Model Dizini
+ example_detection
+ data
+ models
+ <model_ismi>
+ eval
+ train
- *.config
...
+ <model_ismi>
+ eval
+ train
- *.config
...
...
...
...

Her bir model i├žin ayr─▒ dizinler olu┼čturulur.

─░sim

Tipi

A├ž─▒klama

eval

Dizin

Test sonu├žlar─▒ burada tutulur.

train

Dizin

E─čitim ├ž─▒kt─▒lar─▒ burada tutulur

.config

Dosya

Yap─▒land─▒rma dosyas─▒

­čĹĘÔÇŹ­čĆź ├ľzelle┼čtirilmi┼č Tensorflow Obje Alg─▒lay─▒c─▒s─▒ E─čitme

├ľzelle┼čtirilmi┼č model e─čitmek i├žin alttakilerin yap─▒lm─▒┼č olmas─▒ gerekmektedir:

­čÄ┤ Resim Etiketleme
­čîŹ Etiket Haritas─▒ Olu┼čturma
­čôâ Tensorflow Kay─▒tlar─▒ Olu┼čturma
­čŹó Pipeline Yap─▒land─▒rma
­čĄľ Modeli E─čitme
­čÄ┤ Resim Etiketleme

Etiketleme i┼člemini labelImg ├╝zerinden yapmaktay─▒z.

­čĹĘÔÇŹ­čĺ╗ Derlenmi┼č LabelImg

─░ndirdi─činiz dizindeki labelimg.exe dosyas─▒n─▒ ├žal─▒┼čt─▒rman─▒z yeterlidir.

­čÉŹ Python ile LabelImg

─░┼člemleri Anconda Prompt ile i┼člemler yapmal─▒y─▒z.

conda activate labelImg
cd %TENSORFLOW%\addons\labelImg
python labelImg.py ..\..\workspace\example_detection\images # ├ž─▒kt─▒lar─▒ hedefleme

­čĹĘÔÇŹ­čöž Etiket Yollar─▒n─▒ veya Adlar─▒n─▒ D├╝zenleme

XML ve resim dosyalar─▒n─▒ ba┼čka bir yolda olu┼čturduyasan alttaki script yard─▒m─▒yla d├╝zeltebilirsin

  • Script dosyas─▒n─▒ buraya t─▒klayarak indirmeli ve gerekli dizine alttaki komutla koymal─▒y─▒z

  • Komutlar─▒ Anaconda Prompt ├╝zerinden tensorflow ortam─▒n─▒ aktif ederek uygulamay─▒ unutmay─▒n.

# Train verilerini yeniden adland─▒rma ve d├╝zeltme
python xml_path_regulator.py -i %TENSORFLOW%\workspace\example_detection\images\train -p train
ÔÇő
# Test verilerini yeniden adland─▒rma ve d├╝zeltme
python xml_path_regulator.py -i %TENSORFLOW%\workspace\example_detection\images\eval -p eval

LabelImg kullan─▒m─▒ i├žin bu videoya bakabilirsin.

­čîŹ Etiket Haritas─▒ Olu┼čturma
  • Alttaki komutla a├ž─▒lan dizinde .pbtxt uzant─▒l─▒ etiket haritas─▒ dosyas─▒s─▒ olu┼čturun

  • ├ľrnek dosya yap─▒s─▒ komutlar─▒n alt─▒ndad─▒r.

cd %TENSORFLOW%\workspace\example_detection\annotations
start .
item {
id: 1
name: 'cat'
}
item {
id: 2
name: 'dog'
}
  • cat ve dog etiket isimleridir

­čôâ Tensorflow Kay─▒tlar─▒ Olu┼čturma
  • Resim verileri toplan─▒r veya ├žekilir.

  • Toplanan resimler labelimg yard─▒m─▒yla etiketlenir ve .xml uzant─▒l─▒ dosyalar─▒ olu┼čturulur.

  • images dizinine resimler ve onlara ait xml dosyalar─▒ %80'i train %20'i eval olacak ┼čekilde klas├Ârlere ayr─▒larak yerle┼čtirilir.

  • scripts/preprocessing dizindeki xml_path_regulator.py scripti arac─▒l─▒─č─▒yla xml ve resimlerde yol sorunlar─▒ d├╝zeltilir, veriler yeniden adland─▒r─▒l─▒r.

  • scripts/preprocessing dizindeki xml_to_csv.py scripti arac─▒l─▒─č─▒yla veriler .csv uzant─▒l─▒ tablosal bir dosyaya d├Ân├╝┼čt├╝r├╝l├╝r.

  • Olu┼čturulan csv dosyas─▒nda resimlerin etiketlerine g├Âre say─▒lar─▒ tablo olarak g├Âsterilir. (Excel yard─▒m─▒yla)

  • Verilerde denge durumunun (her veriden yakla┼č─▒k olarak ayn─▒ say─▒da varsa) kontrol├╝ yap─▒l─▒r.

  • Her ├že┼čit veri i├žin bir id belirtilecek ┼čekilde label_map.pbtxt adl─▒ etiket haritas─▒ olu┼čturulur

  • Olu┼čturulan csv, etiket haritas─▒ ve resim verileri scripts/preprocessing dizindeki generate_tfrecord.py scripti arac─▒l─▒─č─▒yla veriler .record uzant─▒l─▒ kay─▒tlara d├Ân├╝┼čt├╝r├╝l├╝r.

  • Se├žilen modele ├Âzg├╝ yap─▒land─▒rma dosyas─▒ indirilir.

  • Yap─▒land─▒rma dosyas─▒ olan *.config dosyas─▒ndaki PATH_TO_CONFIGURED olarak i┼čaretlenen alanlar, num_classes, num_examples ve batch_size de─čerleri g├╝ncellenir.

    • num_examples eval dizindeki resim say─▒s─▒d─▒r (toplam class say─▒s─▒ de─čil)

Resimlerdeki Hatalar─▒ Bulma

Resimlerde hata oldu─ču zaman e─čitim a┼čamas─▒nda tensorflow modeli ├žal─▒┼čma hatas─▒ vermektedir. Resimleri kontrol etmek i├žin buradaki scripti alttaki komutlarla kullanabilirsiniz.

python scripts\preprocessing\check_images.py -i workspace\example_detection\images\train
ÔÇő
python scripts\preprocessing\check_images.py -i workspace\example_detection\images\eval

Verileri Yeniden Adland─▒rma ve XML Hatalar─▒n─▒ D├╝zeltme

LabelImg ile etiketledi─činiz resimleri farkl─▒ bir dizine ta┼č─▒man─▒z durumunda XML dosyalar─▒ndaki yollar uyu┼čmayacakt─▒r. XML dosya yollar─▒n─▒ d├╝zeltmek, etiketsiz resimleri g├Âr├╝nt├╝lemek i├žin buradaki script dosyam─▒ alttaki komutlar ile kullanabilirsiniz.

python scripts\preprocessing\xml_path_regulator.py -i %TENSORFLOW%\workspace\example_detection\images\train -p train
ÔÇő
python scripts\preprocessing\xml_path_regulator.py -i %TENSORFLOW%\workspace\example_detection\images\eval -p eval

Etiketlenmemi┼č Resimleri Bulma

Etiketlenmemi┼č resimleri buradaki script dosyas─▒ ile alttaki komutlar ile kullanabilirsiniz.

E─čer XML scriptini kulland─▒ysan─▒z bu kontrol├╝ yapman─▒za gerek yoktur, XML scripti bunu zaten yapmaktad─▒r.

python scripts\preprocessing\find_unlabeled_imgs.py -i %TENSORFLOW%\workspace\example_detection\images\train
ÔÇő
python scripts\preprocessing\find_unlabeled_imgs.py -i %TENSORFLOW%\workspace\example_detection\images\eval

XML'i CSV'ye Çevirme

XML dosyalar─▒n─▒ CSV dosyas─▒nda toparlamak i├žin buradaki scripti alttaki komutlar ile kullanabilirsin.

Komutlar─▒ Anaconda Prompt ├╝zerinden tensorflow ortam─▒n─▒ aktif ederek uygulamay─▒ unutmay─▒n.

# Create train data:
python scripts\preprocessing\xml_to_csv.py -i %TENSORFLOW%\workspace\example_detection\images\train -o %TENSORFLOW%\workspace\example_detection\images\train_labels.csv
ÔÇő
# Create eval data:
python scripts\preprocessing\xml_to_csv.py -i %TENSORFLOW%\workspace\example_detection\images\eval -o %TENSORFLOW%\workspace\example_detection\images\test_labels.csv

CSV'lerden Resim Bilgilerini Analiz Etme

Her bir etiketten ka├ž tane oldu─čunu anlamak i├žin csv dosyalar─▒n─▒ a├ž─▒p alltaki y├Ântemi uygulay─▒n.

  • class h├╝cresiinin bir alt─▒ndaki h├╝creyi se├žin

  • ctrl + shift + a┼ča─č─▒ ok ile t├╝m s─▒n─▒f verilerini se├žin

  • Sa─č alttaki butona t─▒klay─▒n

  • Tables sekmesine gelin

  • A├ž─▒lan sekmede Pivot Table butonuna t─▒klay─▒n

  • Tablo'dan etiketlenen verileri kontrol edin

  • Fazladan etiketlenmi┼č verilerin ismini bulup, filename, width vs. verilerin yaz─▒ld─▒─č─▒ alanda CTRL + F komutu ile arat─▒p, uygun dosya ismini ve xml dosyas─▒n─▒ silin

CSV'yi Record'a Çevirme

CSV dosyalar─▒n─▒ TF kay─▒tlar─▒na ├ževirmek i├žin buradaki scripti alttaki komutlar ile kullanabilirsin.

Komutlar─▒ Anaconda Prompt ├╝zerinden tensorflow ortam─▒n─▒ aktif ederek uygulamay─▒ unutmay─▒n.

python generate_tfrecord.py --label_map=%TENSORFLOW%\workspace\example_detection\data\label_map.pbtxt --csv_input=%TENSORFLOW%\workspace\example_detection\images\train_labels.csv --img_path=%TENSORFLOW%\workspace\example_detection\images\train --output_path=%TENSORFLOW%\workspace\example_detection\data\train.record
ÔÇő
python generate_tfrecord.py --label_map=%TENSORFLOW%\workspace\example_detection\data\label_map.pbtxt --csv_input=%TENSORFLOW%\workspace\example_detection\images\test_labels.csv --img_path=%TENSORFLOW%\workspace\example_detection\images\eval --output_path=%TENSORFLOW%\workspace\example_detection\data\eval.record
­čŹó Pipeline Yap─▒land─▒rma
  • Tensorflow'un resmi a├ž─▒klamas─▒ i├žin buraya t─▒klayabilirisin

Medellin ─░ndirilmesi ve Gerekli Yere Ta┼č─▒nmas─▒

  • Tensorflow ├Ânceden e─čitilmi┼č modelleri indirmek i├žin buraya t─▒klayabilirsin

  • .tar.gz uzant─▒l─▒ olaca─č─▒ i├žin winrar ya da 7zip gibi ek uygulamalarla buraya ├ž─▒kart demen gerekmekte

    • Klas├Âr'e ├ž─▒kart de─čil buraya ├ž─▒kart diyeceksiniz.

Klas├Âr i├žinde ayn─▒ isimde ba┼čka klas├Âr olmas─▒n

# Modelin ├ž─▒kart─▒ld─▒─č─▒ dizinde
cd <model_ismi>
move * %TENSORFLOW%\workspace\example_detection\pre_trained_model
move saved_model %TENSORFLOW%\workspace\example_detection\pre_trained_model
cd %TENSORFLOW%\workspace\example_detection\pre_trained_model
  • <model_ismi> Se├žip, indirdi─činiz .tar.gz uzant─▒l─▒ dosyan─▒n ad─▒

    • TAB tu┼ču ile dizindeki dosya adlar─▒n─▒ tamamlayabilirsiniz

    • *.tar.gz uzant─▒s─▒ yaz─▒lmayacak

    • ├ľrn: ssd_inception_v2_coco_2018_01_28

    • ├ľrn: ssd_mobilenet_v1_ppn_shared_box_predictor_300x300_coco14_sync_2018_07_03

Modellin Yap─▒land─▒rma Dosyalar─▒

Se├žti─činiz modelin *.config dosyas─▒n─▒ example_detection/training klas├Âr├╝ alt─▒na kopyalaman─▒z gerekmekte.

mkdir %TENSORFLOW%\workspace\example_detection\training
ÔÇő
copy %TENSORFLOW%\models\research\object_detection\samples\configs\<model_ismi>.config %TENSORFLOW%\workspace\example_detection\training
  • <model_ismi> Se├žip, indirdi─činiz .tar.gz uzant─▒l─▒ dosyan─▒n ad─▒

    • TAB tu┼ču ile dizindeki dosya adlar─▒n─▒ tamamlayabilirsiniz

    • *.tar.gz uzant─▒s─▒ yaz─▒lmayacak

    • Tarih son ekini i├žermemeli

      • *_2018_07_03.tar.gz ise *.tar.gz olarak yaz─▒lmal─▒

    • ├ľrn: ssd_inception_v2

    • ├ľrn: ssd_mobilenet_v1_ppn_shared_box_predictor_300x300_coco14_sync

Modelin Yap─▒land─▒rma Dosyas─▒n─▒ D├╝zenleme

Yap─▒land─▒rma ├Ârnek dosyas─▒ i├žin buraya bakabilirsin.

D├╝zenlenecek Sat─▒r

A├ž─▒klama

├ľrnek

num_classes

Etiket t├╝r├╝ say─▒s─▒

2

batch_size

Toplu i┼čleme boyutu

24

num_steps

Ad─▒m say─▒s─▒

2000

fine_tune_checkpoint

E─čitilmi┼č modelin yolu

"./pre_trained_model/model.ckpt"

label_map_path

Etiket haritas─▒ yolu

"./annotations/train.record"

input_path

Train dosyas─▒ yolu

"./annotations/train.record"

input_path

Test dosyas─▒ yolu

"./annotations/eval.record"

­čĄľ Modeli E─čitme

Modeli e─čitmek i├žin train.py script dosyas─▒n─▒ kullanaca─č─▒z.

Modeli ├Ânerilen dosya olan model_main.py ile e─čitmek i├žin buraya bakmal─▒s─▒n.

E─čitim Scriptlerini ├çal─▒┼čma Alan─▒na Kopyalama

├çal─▒┼čma ortam─▒n─▒n d├╝zg├╝n ilerlemesi ad─▒na alttaki komut ile gerekli yere scripti kopyalayal─▒m

copy %TENSORFLOW%\models\research\object_detection\legacy\train.py %TENSORFLOW%\workspace\example_detection
copy %TENSORFLOW%\models\research\object_detection\model_main.py

E─čitimde Raporlanacak Seviyeyi Ayarlama (iste─če Ba─čl─▒)

E─čitimde uyar─▒ ve bilgileri gizlemek i├žin TF_CPP_MIN_LOG_LEVEL adl─▒ ortam de─či┼čkeni olu┼čturup seviyesini tan─▒ml─▒yoruz

set TF_CPP_MIN_LOG_LEVEL=2

Modeli train.py Dosyas─▒ ile E─čitime

# TODO Daha d├╝zg├╝n ve detayl─▒ linkli bir yaz─▒ ekle

Eskimi┼č olan bir e─čitim kodudur, model_main.py kod dosyas─▒ tensorflow taraf─▒ndan ├Ânerilir.

python train.py --logtostderr --train_dir=training/ --pipeline_config_path=training\<yap─▒land─▒rma_dosyas─▒>
  • <yap─▒land─▒rma_dosyas─▒> Modelimizin yap─▒land─▒rma dosyas─▒n─▒n tam ad─▒

    • training klas├Âr├╝ne att─▒─č─▒m─▒z yap─▒land─▒rma dosyalar─▒

    • ├ľrn: ssd_inception_v2_coco.config

E─čitime Ba┼člad─▒─č─▒nda Gelen ├ľrnek ├ç─▒kt─▒

INFO:tensorflow:depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
INFO:tensorflow:depth of additional conv before box predictor: 0
INFO:tensorflow:Restoring parameters from ssd_inception_v2_coco_2017_11_17/model.ckpt
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:tensorflow:Starting Session.
INFO:tensorflow:Saving checkpoint to path training\model.ckpt
INFO:tensorflow:Starting Queues.
INFO:tensorflow:global_step/sec: 0
INFO:tensorflow:global step 1: loss = 13.8886 (12.339 sec/step)
INFO:tensorflow:global step 2: loss = 16.2202 (0.937 sec/step)
INFO:tensorflow:global step 3: loss = 13.7876 (0.904 sec/step)
INFO:tensorflow:global step 4: loss = 12.9230 (0.894 sec/step)
INFO:tensorflow:global step 5: loss = 12.7497 (0.922 sec/step)
INFO:tensorflow:global step 6: loss = 11.7563 (0.936 sec/step)
INFO:tensorflow:global step 7: loss = 11.7245 (0.910 sec/step)
INFO:tensorflow:global step 8: loss = 10.7993 (0.916 sec/step)
INFO:tensorflow:global step 9: loss = 9.1277 (0.890 sec/step)
INFO:tensorflow:global step 10: loss = 9.3972 (0.919 sec/step)
INFO:tensorflow:global step 11: loss = 9.9487 (0.897 sec/step)
INFO:tensorflow:global step 12: loss = 8.7954 (0.884 sec/step)
INFO:tensorflow:global step 13: loss = 7.4329 (0.906 sec/step)
INFO:tensorflow:global step 14: loss = 7.8270 (0.897 sec/step)
INFO:tensorflow:global step 15: loss = 6.4877 (0.894 sec/step)

Modeli model_main.py Dosyas─▒ ile E─čitme

Bu dosya ile e─čitim ├Ânerilen e─čitim ┼čeklidir.

  • train.py ile e─čitime nazaran, kald─▒─č─▒ yerden devam eder

    • 1000 ad─▒m yap─▒ld─▒ysa, ikinci e─čitimi 1200 yapt─▒─č─▒n─▒zda 200 ad─▒m e─čitir

    • train.py e─čitiminde modelin sonucunun ay─▒r─▒l─▒p, sonu├ž ├╝zerinden e─čitim yap─▒lmas─▒ gerekir

E─čitim dosyalar─▒ aras─▒nda performans veya kalite fark─▒ yoktur, kaynak i├žin buraya bakabilirsin.

E─čitim i├žin Gereksinimlerin Kurulmas─▒

E─čitim i├žin pycocotools kurulumu gereklidir

Windows i├žin PyCocoTools Kurulumu

Windows deste─čiyle kurulum yapmak i├žin alttaki komutu ko┼čturun

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

A├ž─▒klama i├žin buraya bakabilirsin.

Linux i├žin Cocotools

git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
make
cp -r pycocotools /content/models/research/
cd ../..
rm -rf cocoapi

E─čitimi Haz─▒rlama ve Ba┼člatma

Resmi kayna─ča ula┼čmak i├žin buraya bakabilirsin.

  • model_main.py e─čitim i├žin ├Ânerilen dosyad─▒r

  • Varsay─▒lan olarak ekrana raporlama yapmaz, yapmas─▒n─▒ isterseniz buraya bakabilirsiniz

# From the tensorflow/models/research/ directory
PIPELINE_CONFIG_PATH={path to pipeline config file}
MODEL_DIR={path to model directory}
NUM_TRAIN_STEPS=50000
SAMPLE_1_OF_N_EVAL_EXAMPLES=1
python object_detection/model_main.py \
--pipeline_config_path=${PIPELINE_CONFIG_PATH} \
--model_dir=${MODEL_DIR} \
--num_train_steps=${NUM_TRAIN_STEPS} \
--sample_1_of_n_eval_examples=$SAMPLE_1_OF_N_EVAL_EXAMPLES \
--alsologtostderr

E─čitimi Etkileyen Fakt├Ârler

Training times can be affected by a number of factors such as:

  • The computational power of you hardware (either CPU or GPU): Obviously, the more powerful your PC is, the faster the training process.

  • Whether you are using the TensorFlow CPU or GPU variant: In general, even when compared to the best CPUs, almost any GPU graphics card will yield much faster training and detection speeds. As a matter of fact, when I first started I was running TensorFlow on my Intel i7-5930k (6/12 cores @ 4GHz, 32GB RAM) and was getting step times of around 12 sec/step, after which I installed TensorFlow GPU and training the very same model -using the same dataset and config files- on a EVGA GTX-770 (1536 CUDA-cores @ 1GHz, 2GB VRAM) I was down to 0.9 sec/step!!! A 12-fold increase in speed, using a ÔÇťlow/mid-endÔÇŁ graphics card, when compared to a ÔÇťmid/high-endÔÇŁ CPU.

  • How big the dataset is: The higher the number of images in your dataset, the longer it will take for the model to reach satisfactory levels of detection performance.

  • The complexity of the objects you are trying to detect: Obviously, if your objective is to track a black ball over a white background, the model will converge to satisfactory levels of detection pretty quickly. If on the other hand, for example, you wish to detect ships in ports, using Pan-Tilt-Zoom cameras, then training will be a much more challenging and time-consuming process, due to the high variability of the shape and size of ships, combined with a highly dynamic background.

  • And many, many, many, more. . . .

E─čitim ─░┼člemini TensorBoard Kullanarak Takip Etme

Anaconda Prompt ├╝zerinden alttaki komutlar uygulan─▒r:

activate tensorflow_cpu # ya da gpu
tensorboard --logdir=training\

Alttaki gibi bir ├ž─▒kt─▒ gelmesi gerekmekte:

TensorBoard 1.6.0 at http://YOUR-PC:6006 (Press CTRL+C to quit)

├ç─▒kt─▒y─▒ g├Âr├╝nt├╝lemek i├žin verilen url'i taray─▒c─▒na kopyalaman yeterlidir.

Sonu├ž Grafi─čini D─▒┼čar─▒ Aktarma

Anaconda Prompt ├╝zerinden alttaki komutlar uygulan─▒r:

activate tensorflow_cpu # ya da gpu
ÔÇő
copy %TENSORFLOW%\models\research\object_detection/export_inference_graph.py %TENSORFLOW%\workspace\example_detection
ÔÇő
cd %TENSORFLOW%\workspace\example_detection
ÔÇő
python export_inference_graph.py --input_type image_tensor --pipeline_config_path training/<yap─▒land─▒rma_dosyas─▒> --trained_checkpoint_prefix training/model.ckpt-<checkpoint> --output_directory trained-inference-graphs/output_inference_graph_v1.pb
  • <yap─▒land─▒rma_dosyas─▒> Modelimizin yap─▒land─▒rma dosyas─▒n─▒n tam ad─▒

    • training klas├Âr├╝ne att─▒─č─▒m─▒z yap─▒land─▒rma dosyalar─▒

    • ├ľrn: ssd_inception_v2_coco.config

  • <checkpoint> example_detection/training dizinindeki g├Âsterilmek istenen ad─▒m─▒n numaras─▒

    • ├ľrn: 13302

­čîá Colab ├ťzerinden Tensorflow Modelini E─čitme

Colab ├╝cretsiz GPU sundu─ču i├žin ├žok h─▒zl─▒ bir e─čitim imkan─▒ sunar.

­čôé Colab E─čitimi i├žin Gereken Dosyalar

  • label_map.pbtxt

  • eval.record

  • train.record

  • *.config

  • model_main.py (eskisi: train.py)

  • export_inference_graph.py

­čĹęÔÇŹ­čĺ╗ Colab ├ťzerinden E─čitim Kodlar─▒