前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >15行Python代码 实现图像定位

15行Python代码 实现图像定位

作者头像
Python知识大全
发布2020-02-13 15:59:22
1.7K0
发布2020-02-13 15:59:22
举报
文章被收录于专栏:Python 知识大全

阅读本文需要5.5分钟

本教程使用的环境:Windows 10 Python 3.6

数据源:The Oxford-IIIT Pet Dataset

需要的第三方库:

代码语言:javascript
复制
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from lxml import etree
import glob
from matplotlib.patches import Rectangle

一 单张图片定位

1 读取图片:(这里使用tensflow的方法读取)

代码语言:javascript
复制
img = tf.io.read_file(r'\xxxxxxxx.jpg')

2 解码图片:

代码语言:javascript
复制
img = tf.image.decode_jpeg(img)

3 显示下读取的图片

代码语言:javascript
复制
plt.imshow(img)

4 解析图片规格信息(这里是一个xml文件,我们使用爬虫将其图片信息爬取下来)

文件格式如图:

代码语言:javascript
复制
xml = open(r'xxxxxxx.xml').read()
sel = etree.HTML(xml)
width = int(sel.xpath('//size/width/text()')[0])
height = int(sel.xpath('//size/height/text()')[0])
xmin = int(sel.xpath('//bndbox/xmin/text()')[0])
ymin = int(sel.xpath('//bndbox/ymin/text()')[0])
xmax = int(sel.xpath('//bndbox/xmax/text()')[0])
ymax = int(sel.xpath('//bndbox/ymax/text()')[0])

5 定位

代码语言:javascript
复制
plt.imshow(img)
rec = Rectangle((xmin, ymin), (xmax-xmin), (ymax-ymin), fill=False, color='red')
ax = plt.gca()
ax.axes.add_patch(rec)

输出:

二 统一规划

先给大家上一张图

所有

这是部分数据集图片,这里的图片大小不一,有的是长的有的是宽的。但是在创建data数据时,所有的图片数据应是统一的(也就是同长同高)所以我们得想个办法让其统一。

由上面的案例我们知道头部的位置由 (xmin, ymin), (xmax-xmin), (ymax-ymin)所决定,所以我们可以通过“放缩”的思想来实现目标值

1 统一图片大小(224,224):

代码语言:javascript
复制
img = tf.image.resize(img, [224,224])
img = img/255
plt.imshow(img)

2 确定相对于的目标值:

代码语言:javascript
复制
xmin = (xmin/width)*224
ymin = (ymin/height)*224
xmax = (xmax/width)*224
ymax = (ymax/height)*224

3 定位:

代码语言:javascript
复制
plt.imshow(img)
rec = Rectangle((xmin, ymin), (xmax-xmin), (ymax-ymin), fill=False, color='red')
ax = plt.gca()
ax.axes.add_patch(rec)

输出:

这时就可以把所有数据集导入训练,建立管道,训练成模型。(建议使用GPU版本)

若需要数据集,则在后台回复【数据集】即可获取

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python 知识大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档