🕵️♂️Tensorflow Object Detection API ile Obje Bulma
Tensorflow Object Detection API ile Obje Bulma ve kullanımı için gerekli talimatlarım

📢 Önemli Duyuru
💥 Bu yazının güncel hali verimliliği artırma adına parçalara ayrılmıştır
👮♂️ Güncel hali 🕵️ Tensorflow Object Detection API alanında derlenmektedir
🚧 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.
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 kurulumuAlttaki 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
Video üzerinden açıklama için buraya bakabilirsin
Tensorflow modellerini kullanabilmek için alttaki kurulumlara da ihtiyaç olabilmekte:
conda install opencv pillow matplotlib pandas jupyter🐧 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_desktopAlttaki 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
modelsdizinine 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
...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=.# TensorFlow/models/research/ dizininde
python setup.py build
python setup.py installEğ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_detectionset 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 edilirHer
conda deactivateyazı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
Jupyter notebook ile API'ları test etmemiz gerekmekte.
cd object_detection
jupyter notebook💷 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
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 lxmlPaketlerin 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
pyqtsürümüne göre komutu kullanın (pyrcc<pyqt_sürümü_ilk_basamağı>)
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
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"
Bilgisayarıma sağ tıklayın
Ayarlarkısmına girinSol alanda
Gelişmiş Sistem Ayarları'na tıklayınAçılan ekranda
Ortam Değişkenleributonuna tıklayınÜst kısımdaki kullanıcı değişkenleri alanında
Yenibutonuna tıklayınDeğişken ismine:
TensorflowDeğerine: 'dizin yolunuzu' yazın
🧱 Temel Klasörlerin Oluşturulması
İ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+ 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
...
...
...addons
LabelImg vs.
docs
Dökümanlar
models
Tensorflow Models dosyası
scripts
Kullanacağınız ortak kod parçaları
workspace
Çalışma Alanı
+ workspace
+ example_detection
+ data
+ models
...
+ example2_detection
+ data
+ models
...
...data
Eğitime katılacak verileri (eval.record, train.record, label_map) içeririr.
model
Eğitilecek modellerin dosyalarını içerir.
+ example_detection
+ data
- label_map.pbtxt
- eval.record
- train.record
+ models
...
...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)
+ example_detection
+ data
+ models
+ <model_ismi>
+ eval
+ train
- *.config
...
+ <model_ismi>
+ eval
+ train
- *.config
...
...
...
...Her bir model için ayrı dizinler oluşturulur.
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:
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 evalAlttaki komutla açılan dizinde
.pbtxtuzantı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'
}catvedogetiket isimleridir
Resim verileri toplanır veya çekilir.
Toplanan resimler
labelimgyardımıyla etiketlenir ve.xmluzantılı dosyaları oluşturulur.imagesdizinine resimler ve onlara ait xml dosyaları %80'i train %20'i eval olacak şekilde klasörlere ayrılarak yerleştirilir.scripts/preprocessingdizindekixml_path_regulator.pyscripti aracılığıyla xml ve resimlerde yol sorunları düzeltilir, veriler yeniden adlandırılır.scripts/preprocessingdizindekixml_to_csv.pyscripti aracılığıyla veriler.csvuzantı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
idbelirtilecek şekildelabel_map.pbtxtadlı etiket haritası oluşturulurOluşturulan csv, etiket haritası ve resim verileri
scripts/preprocessingdizindekigenerate_tfrecord.pyscripti aracılığıyla veriler.recorduzantılı kayıtlara dönüştürülür.Seçilen modele özgü yapılandırma dosyası indirilir.
Yapılandırma dosyası olan
*.configdosyasındakiPATH_TO_CONFIGUREDolarak işaretlenen alanlar,num_classes,num_examplesvebatch_sizedeğerleri güncellenir.num_exampleseval 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\evalVerileri 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 evalEtiketlenmemiş 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\evalXML'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.csvCSV'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.
classhücresiinin bir altındaki hücreyi seçinctrl+shift+aşağı okile tüm sınıf verilerini seçinSağ alttaki butona tıklayın
Tablessekmesine gelinAçılan sekmede
Pivot Tablebutonuna tıklayınTablo'dan etiketlenen verileri kontrol edin
Fazladan etiketlenmiş verilerin ismini bulup, filename, width vs. verilerin yazıldığı alanda
CTRL+Fkomutu ile aratıp, uygun dosya ismini vexmldosyası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.recordTensorflow'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
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.gzuzantılı dosyanın adıTABtuşu ile dizindeki dosya adlarını tamamlayabilirsiniz*.tar.gzuzantı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.gzuzantılı dosyanın adıTABtuşu ile dizindeki dosya adlarını tamamlayabilirsiniz*.tar.gzuzantısı yazılmayacakTarih son ekini içermemeli
*_2018_07_03.tar.gzise*.tar.gzolarak 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.
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ğitmek için train.py script dosyasını kullanacağız.
Modeli önerilen dosya olan
model_main.pyile 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.pyEğ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=2Modeli 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.pykod 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.pyile eğitime nazaran, kaldığı yerden devam eder1000 adım yapıldıysa, ikinci eğitimi 1200 yaptığınızda 200 adım eğitir
train.pyeğ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=PythonAPIAçı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 cocoapiEğitimi Hazırlama ve Başlatma
Resmi kaynağa ulaşmak için buraya bakabilirsin.
model_main.pyeğitim için önerilen dosyadırVarsayı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 \
--alsologtostderrEğ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ı
Last updated
Was this helpful?