Tensorflow 归类学习

一、 安装 tensorflow object detection api 以及利用faster_rcnn_inception_v2_coco模型做扑克识别

https://blog.csdn.net/csdn_6105/article/details/82933628

 

二、安装 tensorflow object detection api 以及基于ssd_mobilenet模型实现目标检测

https://www.cnblogs.com/White-xzx/p/9503203.html

 

三、 安装tensorflow-gpu版本 

step1. conda create --name tfg python=3.6
step2. conda activate  tfg
step3. conda install cudnn cudatoolkit numba 
step4. conda install tensorflow-gpu
step5:import tensorflow as tf    #验证成功与否

#安装使用豆瓣的源速度快很多
pip install XXX -i https://pypi.douban.com/simple

-------------------------------------------------------------------------------------------------

提前修改minidom.py 去除<?xml version="1.0" ?>
在这里插入图片描述
原因是
在这里插入图片描述


在这里插入图片描述
所以可以修改minidom.py 最方便
在这里插入图片描述

--------------------------------------------------------------------------------------------------

1.修改XML文件floder 、filename 、path

import os
import xml.dom.minidom
import xml.etree.ElementTree
 
xmldir = './annotations/' #你的xml文件的路經,注意最后一定要有'/'
 
for xmlfile in os.listdir(xmldir):
	xmlname = os.path.splitext(xmlfile)[0]
 
	#读取 xml 文件
	dom = xml.dom.minidom.parse(os.path.join(xmldir,xmlfile))
	root = dom.documentElement
	item=root.getElementsByTagName('path')
	a,b=os.path.splitext(xmlfile)
	#获取标签对的名字,并为其赋一个新值
	root.getElementsByTagName('folder')[0].firstChild.data = 'annotations'
	root.getElementsByTagName('filename')[0].firstChild.data = str(a)+ '.jpg'
	#root.getElementsByTagName('path')[0].firstChild.data = '/home/dulingwen/Pictures/road/' + xmlname + '.jpg'
	root.getElementsByTagName('path')[0].firstChild.data = '/mnt/object_detection/colorImage/20180601/JPEGImages'
	
	#修改并保存文件
	xml_specific = xmldir + xmlfile 
	with open(xml_specific,'w') as fh:
		dom.writexml(fh)

 

 

2. 将新做好的xml文件按照2019_00000格式修改名字


from PIL import Image
import os.path
import glob
import xml.etree.ElementTree as ET
import xml.dom.minidom
 
i = 1357 #你想修改的数字i++ 2019_001357.jpg
xmldir = "../new_xml"
imgsdir = "../jpg"

for xmlfile in os.listdir(xmldir):
    xmlname = os.path.splitext(xmlfile)[0]
    for pngfile in os.listdir(imgsdir):
        pngname = os.path.splitext(pngfile)[0]
        if pngname == xmlname:
             # 修改图片文件名
             # 图片文件名修改前后的路径
             olddir = os.path.join(os.path.abspath(imgsdir), pngname + ".jpg")
             newdir = os.path.join(os.path.abspath(imgsdir), "2019_00"+str(i)+".jpg")
             os.rename(olddir, newdir)
             print(xmlfile, '----->', "2019_00"+str(i) + '.jpg')
             # 修改filename结点属性
             # 读取xml文件
             dom = xml.dom.minidom.parse(os.path.join(xmldir, xmlfile))
             root = dom.documentElement
 
             # 获取标签对filename之间的值并赋予新值i
             root.getElementsByTagName('filename')[0].firstChild.data ="2019_00"+ str(i) + '.jpg'
 
             # 将修改后的xml文件保存
             # xml文件修改前后的路径
             old_xmldir = os.path.join(xmldir, xmlfile)
             new_xmldir = os.path.join(xmldir, "2019_00"+str(i)+'.xml')
             # 打开并写入
             with open(old_xmldir, 'w') as fh:
                 dom.writexml(fh)
             os.rename(old_xmldir, new_xmldir)
             i += 1
print('total number is ', i)

3.修改XML中的标签名

import os
import xml.etree.ElementTree as ET

#批量修改VOC数据集中xml标签文件的标签名称
def changelabelname(inputpath):
    listdir = os.listdir(inputpath)
    for file in listdir:
        if file.endswith('xml'):
            file = os.path.join(inputpath,file)
            tree = ET.parse(file)
            root = tree.getroot()
            for object1 in root.findall('object'):
                for sku in object1.findall('name'):       #查找需要修改的名称
                    if (sku.text == 'oriented arrow'):    #‘preName’为修改前的名称
                        sku.text = 'oriented_arrow'       #‘TESTNAME’为修改后的名称
                        tree.write(file,encoding='utf-8') #写进原始的xml文件并避免原始xml中文字符乱码
                    else:
                        pass
        else:
            pass

if __name__ == '__main__':
    inputpath = r'/mnt/hdd/home/Annotations'  #此处替换为自己的路径
    changelabelname(inputpath)

4. 批量将文件夹下的所有视频按40一帧截成图片并且
    按"年月日_时分秒毫秒_''文件夹名'"修改图片名字 //20180601_144950302_JPG1.jpg

import cv2
import os
import time
def save_img():
	video_path = './'
	videos = os.listdir(video_path)
	
	for video_name in videos:
		file_name = video_name.split('.')[0]
		folder_name = video_path + file_name
		os.makedirs(folder_name,exist_ok=True)
		vc = cv2.VideoCapture(video_path+video_name) #读入视频文件
		c=0
		a=0
		rval=vc.isOpened()
		
		while rval:   #循环读取视频帧
		
			ct = time.time()
			local_time = time.localtime(ct)
			data_head = time.strftime('%Y%m%d_%H%M%S',time.localtime(time.time()))

			data_secs = (ct - int(ct)) * 1000
			time_stamp = "%03d" % data_secs

			new_time = str(data_head) + str(time_stamp)
			
			rval, frame = vc.read()
			pic_path = folder_name+'/'
			a=a+1
			if (a%40) == 0:
				print("write img")
				cv2.imwrite(str(new_time) + '_JPG01' + '.jpg', frame)#""修改你想要的名字
				cv2.waitKey(1)
		vc.release()
		print('save_success')
		print(folder_name)
save_img()

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值