Tensorflow.物體檢測_資料(raccoon浣熊)


1、深度有趣 _ 11 TensorFlow物體檢測 - 掘金.html(https://juejin.im/post/5ba2fa4e6fb9a05cfa2fbcc4

  ZC:類似之前的文章,沒太多看頭

2、用TensorFlow訓練一個物體檢測器(手把手教學版) - 陳茂林的技術博客 - CSDN博客.html(https://blog.csdn.net/chenmaolin88/article/details/79357263

  ZC:主看這個

  ZC:(20190905)訓練起來好慢... 它指定的最多的step是 200k,文章中說 “TensorBoard的主界面,可以看出來,在20k step之前,loss下降很快,之后就波動很小了,經過一夜的訓練,目前接近80k step了, mAP平均精確率為67%,我們幾乎可以停止訓練了。”  但是 我用了 半天多一點的時間 才訓練了1000step(i5 9400F)... 暫時放棄這個吧...   (使用的是 ssd_mobilenet_v1_coco_2017_11_17

 2.1、一些記錄:

1、Home
cmd 切換到目錄:G:\Tensorflow\models_copy\research
執行命令:
python object_detection/dataset_tools/zz_create_pascal_tf_record_4raccoon.py --data_dir=G:/Tensorflow_dataset/raccoon_dataset/images --set=G:/Tensorflow_dataset/raccoon_dataset/train.txt --output_path=G:/Tensorflow_dataset/raccoon_dataset/train.record --label_map_path=G:/Tensorflow_dataset/raccoon_dataset/raccoon_label_map.pbtxt --annotations_dir=G:/Tensorflow_dataset/raccoon_dataset/annotations


python object_detection/dataset_tools/zz_create_pascal_tf_record_4raccoon.py --data_dir=G:/Tensorflow_dataset/raccoon_dataset/images --set=G:/Tensorflow_dataset/raccoon_dataset/val.txt --output_path=G:/Tensorflow_dataset/raccoon_dataset/val.record --label_map_path=G:/Tensorflow_dataset/raccoon_dataset/raccoon_label_map.pbtxt --annotations_dir=G:/Tensorflow_dataset/raccoon_dataset/annotations

python model_main.py --logtostderr --pipeline_config_path=G:/Tensorflow_dataset/raccoon_dataset/ssd_mobilenet_v1_raccoon.config --train_dir=G:/Tensorflow_dataset/raccoon_dataset/train

1.1、
ModuleNotFoundError: No module named 'pycocotools'
python -m pip install pycocotools
報錯 裝不了

Windows10下安裝Git - 勿忘初心的博客 - CSDN博客.html(https://blog.csdn.net/qq_32786873/article/details/80570783)

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
ZC:我用上面這句就成功了,下面的這句就沒有再嘗試了...
pip3 install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"

1.2、ModuleNotFoundError: No module named 'nets'
ModuleNotFoundError_ No module named 'nets' - qq_37644877的博客 - CSDN博客.html(https://blog.csdn.net/qq_37644877/article/details/92772820)

1.2.1、
error: could not create 'build': 當文件已存在時,無法創建該文件。
原因是git clone下來的代碼庫中有個BUILD文件,而build和install指令需要新建build文件夾,名字沖突導致問題。暫時不清楚BUILD文件的作用。將該文件移動到其他目錄,再運行上述指令,即可成功安裝。
Windows下Tensorflow-silm庫使用遇到ImportError_ No module named 'nets'問題的解決方法 - Orankarl的博客 - CSDN博客.html(https://blog.csdn.net/lgczym/article/details/79272579)


1.3、
python model_main.py --logtostderr --pipeline_config_path=G:/Tensorflow_dataset/raccoon_dataset/ssd_mobilenet_v1_raccoon.config --train_dir=G:/Tensorflow_dataset/raccoon_dataset/train
執行上面的語句 出錯
ZC: 公司 貌似沒有這個問題,已經看到在訓練了
ZC: 記得昨天搜了下 說是權限不夠的問題,說降到 Tensorflow1.2的gpu版,難道是 CMD的權限沒給夠??


2、Work

python object_detection/dataset_tools/zz_create_pascal_tf_record_4raccoon.py --data_dir=G:/Tensorflow_dataset/raccoon_dataset/images --set=G:/Tensorflow_dataset/raccoon_dataset/train.txt --output_path=G:/Tensorflow_dataset/raccoon_dataset/train.record --label_map_path=G:/Tensorflow_dataset/raccoon_dataset/raccoon_label_map.pbtxt --annotations_dir=G:/Tensorflow_dataset/raccoon_dataset/annotations

目錄"G:\TensorFlow_ZZ\models_copy\research\object_detection"下
python eval_util_test.py ^
	--logtostderr ^
	--pipeline_config_path=G:/Tensorflow_dataset/raccoon_dataset/ssd_mobilenet_v1_raccoon.config ^
	--checkpoint_dir=G:/Tensorflow_dataset/raccoon_dataset/train ^
	--eval_dir=G:/Tensorflow_dataset/raccoon_dataset/eval
ZC: 貌似 "^"沒用啊...

python eval.py --logtostderr --pipeline_config_path=G:/Tensorflow_dataset/raccoon_dataset/ssd_mobilenet_v1_raccoon.config --checkpoint_dir=G:/Tensorflow_dataset/raccoon_dataset/train --eval_dir=G:/Tensorflow_dataset/raccoon_dataset/eval

ZC: 貌似 應該是 使用"legacy/eval.py"??如下:
python legacy/eval.py --logtostderr --pipeline_config_path=G:/Tensorflow_dataset/raccoon_dataset/ssd_mobilenet_v1_raccoon.config --checkpoint_dir=G:/Tensorflow_dataset/raccoon_dataset/train --eval_dir=G:/Tensorflow_dataset/raccoon_dataset/eval

python legacy/eval.py --logtostderr --pipeline_config_path=G:/Tensorflow_dataset/raccoon_dataset/ssd_mobilenet_v1_raccoon.config --checkpoint_dir=C:/Users/Administrator/AppData/Local/Temp/tmpqui5qdpk --eval_dir=G:/Tensorflow_dataset/raccoon_dataset/eval


tensorboard --logdir=G:/Tensorflow_dataset/raccoon_dataset/




2.1、
ModuleNotFoundError: No module named 'object_detection'
在路徑"G:\TensorFlow_ZZ\models_copy\research>"下執行命令:
python setup.py install

2.2、
pip3 install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
公司用這個,好長時間沒反應...
c:\users\admini~1\appdata\local\temp\pip-install-63hmithl\pycocotools

我擦 公司用這個 也賊慢...
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

我擦 沒招了,copy到 gitee ...
pip3 install "git+https://gitee.com/zclxy/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
不慢...安裝成功了


2.3、
訓練的時候 報錯:

  File "C:\Program Files\Python37\lib\site-packages\object_detection-0.1-py3.7.e
gg\object_detection\eval_util.py", line 896, in get_evaluators
    raise ValueError('Metric not found: {}'.format(eval_metric_fn_key))
ValueError: Metric not found: pascal_voc_metrics

ZC: G:\Tensorflow_dataset\raccoon_dataset\ssd_mobilenet_v1_raccoon.config 中 有指定使用 "pascal_voc_metrics"
ZC: 看到 文章下面的提問,有人說 直接將這句 屏蔽就行了,我試了將"ssd_mobilenet_v1_raccoon.config"中的那句注釋掉了(我記得 原來的那個文件(object_detection/samples/configs/ssd_mobilenet_v1_coco.config)中 也是沒有指定這個東西的)

ZC: 也可以參看這個文章:“(Tensorflow Object detection Api)安裝 - ljyt2的博客 - CSDN博客.html(https://blog.csdn.net/ljyt2/article/details/82143904)”(這個文章是我 搜索“eval_util.py”時 搜到的)

 2.2、20190905 16:00不到 --> 20190906 08:18,訓練時間 16小時左右,訓練 step 3653,最后的 記錄如下:

I0906 08:08:33.096599  5416 estimator.py:2099] Saving 'checkpoint_path' summary
for global step 3618: C:\Users\ADMINI~1\AppData\Local\Temp\tmpulzzhj3v\model.ckp
t-3618
I0906 08:18:19.660601  5416 basic_session_run_hooks.py:606] Saving checkpoints f
or 3653 into C:\Users\ADMINI~1\AppData\Local\Temp\tmpulzzhj3v\model.ckpt.
I0906 08:18:21.548201  5416 estimator.py:1145] Calling model_fn.
I0906 08:18:22.697801  5416 convolutional_box_predictor.py:151] depth of additio
nal conv before box predictor: 0
I0906 08:18:22.729001  5416 convolutional_box_predictor.py:151] depth of additio
nal conv before box predictor: 0
I0906 08:18:22.759601  5416 convolutional_box_predictor.py:151] depth of additio
nal conv before box predictor: 0
I0906 08:18:22.776201  5416 convolutional_box_predictor.py:151] depth of additio
nal conv before box predictor: 0
I0906 08:18:22.807401  5416 convolutional_box_predictor.py:151] depth of additio
nal conv before box predictor: 0
I0906 08:18:22.823001  5416 convolutional_box_predictor.py:151] depth of additio
nal conv before box predictor: 0
I0906 08:18:24.036201  5416 estimator.py:1147] Done calling model_fn.
I0906 08:18:24.051801  5416 evaluation.py:255] Starting evaluation at 2019-09-06
T08:18:24Z
I0906 08:18:24.254601  5416 monitored_session.py:240] Graph was finalized.
I0906 08:18:24.254601  5416 saver.py:1280] Restoring parameters from C:\Users\AD
MINI~1\AppData\Local\Temp\tmpulzzhj3v\model.ckpt-3653
I0906 08:18:24.535401  5416 session_manager.py:500] Running local_init_op.
I0906 08:18:24.597801  5416 session_manager.py:502] Done running local_init_op.
I0906 08:18:36.455401   940 coco_evaluation.py:205] Performing evaluation on 40
images.
creating index...
index created!
I0906 08:18:36.455401   940 coco_tools.py:115] Loading and preparing annotation
results...
I0906 08:18:36.455401   940 coco_tools.py:137] DONE (t=0.00s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=0.19s).
Accumulating evaluation results...
DONE (t=0.02s).
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.157
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.395
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.101
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000

 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.180
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.267
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.360
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.424
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000

 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.490
I0906 08:18:36.689401  5416 evaluation.py:275] Finished evaluation at 2019-09-06
-08:18:36
I0906 08:18:36.689401  5416 estimator.py:2039] Saving dict for global step 3653:
 DetectionBoxes_Precision/mAP = 0.1565868, DetectionBoxes_Precision/mAP (large)
= 0.1803251, DetectionBoxes_Precision/mAP (medium) = 0.0, DetectionBoxes_Precisi
on/mAP (small) = -1.0, DetectionBoxes_Precision/mAP@.50IOU = 0.39549702, Detecti
onBoxes_Precision/mAP@.75IOU = 0.10103414, DetectionBoxes_Recall/AR@1 = 0.266666
68, DetectionBoxes_Recall/AR@10 = 0.36, DetectionBoxes_Recall/AR@100 = 0.4244444
4, DetectionBoxes_Recall/AR@100 (large) = 0.4897436, DetectionBoxes_Recall/AR@10
0 (medium) = 0.0, DetectionBoxes_Recall/AR@100 (small) = -1.0, Loss/classificati
on_loss = 6.1131063, Loss/localization_loss = 2.1550155, Loss/regularization_los
s = 0.45052153, Loss/total_loss = 8.718643, global_step = 3653, learning_rate =
0.004, loss = 8.718643
I0906 08:18:36.689401  5416 estimator.py:2099] Saving 'checkpoint_path' summary
for global step 3653: C:\Users\ADMINI~1\AppData\Local\Temp\tmpulzzhj3v\model.ckp
t-3653

  ZC:差不多 算了一下,和 用ssd_mobilenet_v1_coco_2017_11_17時的速度 差不多啊... 基本是 每36step 花費10分鍾,"2.2"中 3600多step 花費 16小時左右 也差不多

  ZC:"2.1" 和 "2.2" 的額區別:在 "2.2"里面,文件ssd_mobilenet_v1_raccoon.config 中,這2句 是注釋掉的,如下:

# fine_tune_checkpoint: "G:/TensorFlow_ZZ/models_copy/research/object_detection/ssd_mobilenet_v1_coco_2017_11_17/model.ckpt"
# from_detection_checkpoint: true

    而在"2.1"里面,上面2句 是放開的。

    網上查到說:上2句放開 --> 在人家訓練好的數據集上繼續訓練(ssd_mobilenet_v1_coco_2017_11_17/model.ckpt),上2句注釋掉 --> 不使用人家預先訓練好的數據集(但是 看 訓練的時間和速度 感覺沒有什么區別... 我覺得 有點懷疑這個說法了...

 

3、這個 也要看

 https://pythonprogramming.net/search/?q=Tensorflow+Object+Detection+API+Tutorial

  https://pythonprogramming.net/introduction-use-tensorflow-object-detection-api-tutorial/

4、

5、(20190905)資料:(度搜“TensorFlow訓練 自己物體檢測器”)

 5.1、關於使用tensorflow object detection API訓練自己的模型-補充部分(代碼,數據標注工具,訓練數據,測試數據) - 開到荼蘼的博客 - CSDN博客.html(https://blog.csdn.net/zj1131190425/article/details/84997740

   使用tensorflow object detection API 訓練自己的目標檢測模型 (三) - 開到荼蘼的博客 - CSDN博客.html(https://blog.csdn.net/zj1131190425/article/details/80778888

  ZC:先看此人的系列文章

 5.2、訓練自己的目標檢測模型:tensorflow+win7 - twinkle_star1314的博客 - CSDN博客.html(https://blog.csdn.net/twinkle_star1314/article/details/88980551

  ZC:使用了 coco的配置文件,但是貌似沒有使用 ssd_mobilenet_v1_coco_2017_11_17

 5.3、TensorFlow使用object detection訓練自己的模型用於物體識別 - zk_ken的博客 - CSDN博客.html(https://blog.csdn.net/zk_ken/article/details/80826835

 5.4、Win10 Tensorflow訓練一個自己的物體檢測 - 簡書.html(https://www.jianshu.com/p/d9fb1b3799b9

6、

7、度搜“tensorflow object detect 訓練 中斷”

 TensorFlow 訓練自己的目標檢測器 - 簡書.html(https://www.jianshu.com/p/86894ccaa407/

  內容摘錄:“在訓練過程中可使用 Ctrl+C 任意時刻中斷訓練,之后再執行上述代碼會從斷點之處繼續訓練,而不是從頭開始(除非把訓練輸出文件全部刪除)。”

8、

9、

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM