人工智能python3+tensorflow人脸识别_机器学习tensorflow object detection 实现人脸识别...

object detection是Tensorflow很常用的api,功能强大,很有想象空间,人脸识别,花草识别,物品识别等。下面是我做实验的全过程,使用自己收集的胡歌图片,实现人脸识别,找出胡歌。

安装tensorflow

官方的教程已经写得非常好了,这里就不多说,但是有一点必须注意的是,必须安装python3.6版本,不能安装最新的python3.7版本,不然会出现很多不兼容的问题难以处理。尽可能选择一台显卡性能较好的电脑做机器学习,尽量选择gpu训练,不然训练过程非常的慢。

https://tensorflow.google.cn/install/pip

安装object detection api

收集图片

我这里保存了一份胡歌的照片,一共50张,而且已经标记号了,但是我建议我们开发者应该自己动手来标记一份,尽可能的多些图片,越多越好。

https://pan.baidu.com/s/13Ln1FinjxX9ANkopBM6kLQ

安装标记工具labelImg

labelImg必须运行在python3.6,不然无法运行起来,这里就不展开了。

https://github.com/tzutalin/labelImg

brew install qt

brew install libxml2

make qt5py3

python3 labelImg.py

标记图片

打开了标记工具,选择Open Dir把图片添加进来,然后点击Create RectBox勾选我们要选择的目标,输入对应的label,然后ctrl s保存。最终xml文件是和文件名称保存在同一目录。

031239631bf7?from=groupmessage

image.png

把xml转换成csv格式

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# xml2csv.py

import glob

import pandas as pd

import xml.etree.ElementTree as ET

path = 'data/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(path + '/train.csv', index=None)

print('Successfully converted xml to csv.')

main()

把图片和csv转换成tfrecord格式

记得要修改部分地方

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# generate_tfrecord.py

# -*- coding: utf-8 -*-

"""

Usage:

# From tensorflow/models/

# Create train data:

python generate_tfrecord.py --csv_input=data/tv_vehicle_labels.csv --output_path=train.record

# Create test data:

python generate_tfrecord.py --csv_input=data/test_labels.csv --output_path=test.record

"""

import os

import io

i

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值