在中 我们搭建了目标识别的环境并且测试了自带的案例
本期我们将使用自己的图片进行相应的目标识别
本次我们使用Demo里面的 mobilenet_ssd_v1_2017_11_17 进行识别作为预训练模型
github上也有对应官方的各种
1、使用labelImg打标签
链接:
提取码:xawz
解压后直接双击 labelImg.exe 即可
选择自己要打标签的区域
CTRL+S另存为xml文件,文件名默认为图片名称
2、配置文件
在object_detection 文件夹中新建raccoon_images文件夹,再在raccoon_images文件夹中新建test和train文件夹
在raccoon_images新建xml_to_csv.py和generate_tfrecord.py
xml_to_csv.py内容:
import os
import glob
import pandas as pd
import xml.etree.ElementTree as ET
os.chdir(r'D:\Develop\tensorflow\models\research\object_detection\images\train') # 修改为自己的读取、输出路径
path =r'D:\Develop\tensorflow\models\research\object_detection\images\train'
def xml_to_csv(path):
xml_list = []
for xml_file in glob.glob(path + '/*.xml'):
tree = ET.parse(xml_file)
root = tree.getroot()
for member in root.findall('object'):
value = (root.find('filename').text,
int(root.find('size')[0].text),
int(root.find('size')[1].text),
member[0].text,
int(member[4][0].text),
int(member[4][1].text),
int(member[4][2].text),
int(member[4][3].text)
)
xml_list.append(value)
column_name = ['filename', 'width', 'height', 'class', 'xmin', 'ymin', 'xmax', 'ymax']
xml_df = pd.DataFrame(xml_list, columns=column_name)
return xml_df
def main():
image_path = path
xml_df = xml_to_csv(image_path)
xml_df.to_csv('raccoon_train.csv', index=None) #修改输出后csv文件的文件名,test和train要对应
print('Successfully converted xml to csv.')
main()
generate_tfrecord.py内容:
import os
import io
import pandas as pd
import tensorflow as tf
from PIL import Image
from object_detection.utils import dataset_util
from collections import namedtuple, OrderedDict
os.chdir(r'D:\Develop\TensorFlow\models\research\object_detection\hulingyu_images')
# 修改为自己的img路径,之后会自动寻找test及train文件夹
flags = tf.app.flags
flags.DEFINE_string('csv_input', '', 'Path to the CSV input')
flags.DEFINE_string('output_path', '', 'Path to output TFRecord')
FLAGS = flags.FLAGS
# TO-DO replace this with label map
# 注意将对应的label改成自己的类别!!!!!!!!!!
def class_text_to_int(row_label):
if row_label == 'hulingyu': #修改为自己的类别
return 1
else:
return None
def split(df, group):
data = namedtuple('data', ['filename', 'object'])
gb = df.groupby(group)
return [data(filename, gb.get_group(x)) for filename, x in zip(gb.groups.keys(), gb.groups)]
def create_tf_example(group, path):
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务