{"id":875,"date":"2020-12-18T14:20:19","date_gmt":"2020-12-18T06:20:19","guid":{"rendered":"http:\/\/www.yatenglg.cn\/?p=875"},"modified":"2022-10-18T16:37:12","modified_gmt":"2022-10-18T08:37:12","slug":"tensorflow-object-detection-api-with-tensorflow-1-%e7%9b%ae%e6%a0%87%e6%a3%80%e6%b5%8b","status":"publish","type":"post","link":"http:\/\/www.yatenglg.cn\/blog\/?p=875","title":{"rendered":"TensorFlow Object Detection API with TensorFlow 1 \u76ee\u6807\u68c0\u6d4b"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/tensorflow\/models\/blob\/master\/research\/object_detection\/g3doc\/tf1.md\">Object Detection API with TensorFlow 1<\/a><\/p>\n<p><strong>\u73af\u5883\u4f9d\u8d56<\/strong><\/p>\n<ol>\n<li>tensorflow==1.15.0<\/li>\n<li>cuda10.0 &gt; 10.0<\/li>\n<li>cudnn &gt; 7.6<\/li>\n<li>protoc &gt; 3.0<\/li>\n<\/ol>\n<p><strong>\u4e0b\u8f7d<\/strong>\uff1a<\/p>\n<div class=\"hcb_wrap\">\n<div class=\"highlight highlight-source-shell\">\n<pre>git clone https:\/\/github.com\/tensorflow\/models.git<\/pre>\n<\/div>\n<\/div>\n<p><strong>\u5b89\u88c5<\/strong>\uff1a\uff08pip\u7248\u672c\u8f83\u4f4e\u4f1a\u9020\u6210\u5b89\u88c5\u5931\u8d25\uff09<\/p>\n<pre><span class=\"pl-c1\">cd<\/span> models\/research\n<span class=\"pl-c\"># Compile protos.<\/span>\nprotoc object_detection\/protos\/<span class=\"pl-k\">*<\/span>.proto --python_out=.\n<span class=\"pl-c\"># Install TensorFlow Object Detection API.<\/span>\ncp object_detection\/packages\/tf1\/setup.py <span class=\"pl-c1\">.<\/span>\npython -m pip install --use-feature=2020-resolver .<span class=\"pl-c1\"><\/span><\/pre>\n<p><strong>\u6d4b\u8bd5<\/strong>\uff1a<\/p>\n<pre>python object_detection\/builders\/model_builder_tf1_test.py<\/pre>\n<p><strong>\u7ed3\u6784<\/strong>\uff1a<\/p>\n<p>object detection api\u76f8\u5173\u6587\u4ef6\u5b58\u653e\u5728\/research\/object_detection\/<\/p>\n<p><strong>\u8bad\u7ec3<\/strong>\uff1a\uff08\u4f7f\u7528\u4e0b\u8f7d\u7684\u6587\u4ef6\u8fdb\u884c\u8bad\u7ec3\uff09<\/p>\n<p>\u4ee5\u4f7f\u7528voc\u6570\u636e\u96c6\u8bad\u7ec3faster_rcnn_inception_resnet_v2\u4e3a\u4f8b\uff1a<\/p>\n<p>\u9700\u51c6\u5907config\u914d\u7f6e\u6587\u4ef6\uff0c\u6570\u636e\u96c6\u8f6ctfrecord\u3002<\/p>\n<p>1.\u65b0\u5efa\u9879\u76ee\u6587\u4ef6\u5939voc<\/p>\n<p>2.\u5c06\u4e0b\u8f7d\u7684voc2012\u6570\u636e\u96c6\u653e\u5165voc\u6587\u4ef6\u5939\u4e2d\uff0c\u89e3\u538b\u751f\u6210VOCdevkit\u6587\u4ef6\u5939<\/p>\n<p>3.\u6570\u636e\u96c6\u51c6\u5907\uff08research\/object_detection\u76ee\u5f55\u4e0b\uff09<\/p>\n<pre code-id=\"xYekQFmh\" class=\"mCustomScrollbar _mCS_8 mCS-autoHide mCS_no_scrollbar\">python dataset_tools\/create_pascal_tf_record.py --data_dir voc\/VOCdevkit\/ --year=<span>VOC2012 <\/span> --set=train --output_path=voc\/<span>pascal_train.record <\/span><\/pre>\n<pre code-id=\"xYekQFmh\" class=\"mCustomScrollbar _mCS_8 mCS-autoHide mCS_no_scrollbar\">python dataset_tools\/create_pascal_tf_record.py --data_dir voc\/VOCdevkit\/ --year=<span>VOC2012 <\/span>--set=val --output_path=voc\/pascal_val.record<\/pre>\n<p>\u751f\u6210\u8bad\u7ec3\u548c\u6d4b\u8bd5\u6570\u636e\uff1a <span>pascal_train.record<\/span> \uff0c pascal_val.record<\/p>\n<p>\u590d\u5236data\/pascal_label_map.pbtxt\u5230voc\u6587\u4ef6\u5939\u4e0b\uff0c\u6b64\u4e3a\u6570\u636e\u6807\u7b7e\u6587\u4ef6<\/p>\n<p>4. \u9884\u8bad\u7ec3\u6a21\u578b\u4e0b\u8f7d<\/p>\n<p>\u53bbhttps:\/\/github.com\/tensorflow\/models\/blob\/master\/research\/object_detection\/g3doc\/tf1_detection_zoo.md\u4e0b\u8f7d<a href=\"http:\/\/download.tensorflow.org\/models\/object_detection\/faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28.tar.gz\" rel=\"nofollow\">faster_rcnn_inception_resnet_v2_atrous_coco<\/a>\u6587\u4ef6\u3002<\/p>\n<p>\u590d\u5236\u7684voc\u6587\u4ef6\u5939\u540e\u89e3\u538b\u3002<\/p>\n<p>\u751f\u6210faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28\u6587\u4ef6\u5939\uff08\u5185\u5b58\u653e\u4e86\u4ee5\u53ca\u8bad\u7ec3\u597d\u7684\u9884\u8bad\u7ec3\u6a21\u578b\uff09<\/p>\n<p>5.\u914d\u7f6e\u6587\u4ef6config<\/p>\n<p>\u4ecesamples\/configs\/ \u590d\u5236 faster_rcnn_inception_resnet_v2_atrous_coco.config \u5230voc\u76ee\u5f55\u4e0b<\/p>\n<p>\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u4e2d\uff08\u51715\u5904\u4fee\u6539\uff09\uff1a<\/p>\n<pre code-id=\"DtBaYPr5\" class=\"mCustomScrollbar _mCS_9 mCS-autoHide\"><span>fine_tune_checkpoint: <\/span><span>\"<\/span><span>voc\/faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28\/model.ckpt<\/span><span>\"<\/span><span>#\u9884\u8bad\u7ec3\u6a21\u578b\u5b58\u653e\u5904<\/span><\/pre>\n<pre code-id=\"DtBaYPr5\" class=\"mCustomScrollbar _mCS_9 mCS-autoHide\"><span>train_input_reader: {\ntf_record_input_reader {\ninput_path: <\/span><span>\"<\/span><span>voc\/pascal_train.record<\/span><span>\"<\/span><span>#\u8bad\u7ec3\u6570\u636e\u96c6\n}\nlabel_map_path: <\/span><span>\"<\/span><span>voc\/pascal_label_map.pbtxt<\/span><span>\"<\/span><span>#\u8bad\u7ec3\u6570\u636e\u96c6\u6807\u7b7e\u6587\u4ef6\n}<\/span><\/pre>\n<pre code-id=\"DtBaYPr5\" class=\"mCustomScrollbar _mCS_9 mCS-autoHide\"><span>eval_input_reader: {\ntf_record_input_reader {\ninput_path: <\/span><span>\"<\/span><span>voc\/pascal_val.record<\/span><span>\"<\/span><span>#\u6d4b\u8bd5\u6570\u636e\u96c6\n}\nlabel_map_path: <\/span><span>\"<\/span><span>voc\/pascal_label_map.pbtxt<\/span><span>\"<\/span><span>#\u6d4b\u8bd5\u6570\u636e\u96c6\u6807\u7b7e\u6587\u4ef6\nshuffle: <\/span><span>false<\/span><span>\nnum_readers: <\/span><span>1<\/span><span>\n}<\/span><span><\/span><\/pre>\n<p>6.\u8bad\u7ec3<\/p>\n<div id=\"mCSB_10\" class=\"mCustomScrollBox mCS-minimal-dark mCSB_vertical_horizontal mCSB_outside\" tabindex=\"0\">\n<pre id=\"mCSB_10_container\" class=\"mCSB_container\" dir=\"ltr\">python model_main.py --model_dir voc\/train_dir\/ --pipeline_config_path voc\/faster_rcnn_inception_resnet_v2_atrous_voc.config<\/pre>\n<p>\u6216<\/p>\n<pre>python legacy\/train.py --train_dir voc\/train_dir\/ --pipeline_config_path voc\/faster_rcnn_inception_resnet_v2_atrous_voc.config<\/pre>\n<p>\u5f00\u59cb\u8bad\u7ec3<\/p>\n<p><img src=\"http:\/\/www.yatenglg.cn\/wp-content\/uploads\/2020\/12\/gnome-shell-screenshot-BH7WV0.png\" alt=\"\" class=\"alignnone wp-image-877 size-full\" width=\"1271\" height=\"273\" srcset=\"http:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2020\/12\/gnome-shell-screenshot-BH7WV0.png 1271w, http:\/\/www.yatenglg.cn\/blog\/wp-content\/uploads\/2020\/12\/gnome-shell-screenshot-BH7WV0-300x64.png 300w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Object Detection API with TensorFlow 1 \u73af\u5883\u4f9d\u8d56 tensorflow=&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,5],"tags":[],"_links":{"self":[{"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts\/875"}],"collection":[{"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=875"}],"version-history":[{"count":3,"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts\/875\/revisions"}],"predecessor-version":[{"id":1162,"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=\/wp\/v2\/posts\/875\/revisions\/1162"}],"wp:attachment":[{"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=875"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yatenglg.cn\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}