tf2.0学习笔记1

import tensorflow as tf
from tensorflow import keras
import matplotlib.pyplot as plt
import numpy as np
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint, Callback, TensorBoard
import pathlib
import time
import os
import cv2
import random
os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = 'true'
gpu_ok = tf.test.is_gpu_available()
print("tf version:", tf.__version__)
print("use GPU", gpu_ok)

vaildpath = "testdata"
outppath = "result"
modelpath = "model/chepai-12-0.04.h5"
size =(96,96)
labelchar = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

def listdir(top_dir, type='image'):
    tmp_file_lists = os.listdir(top_dir)
    file_lists = []
    if type == 'image':
        for e in tmp_file_lists:
           if e.endswith('.jpg') or e.endswith('.png') or e.endswith('.bmp') or e.endswith('.JPG'):
               file_lists.append(e)
    elif type == 'dir':
        for e in tmp_file_lists:
           if os.path.isdir(top_dir + e): 
              file_lists.append(e)
    else:
        raise Exception('Unknown type in listdir')
    return file_lists

def check_parameter(param, param_type, create_new_if_missing=False):
    assert param_type == 'file' or param_type == 'directory'
    if param_type == 'file':
        assert os.path.exists(param)
        assert os.path.isfile(param)
    else:
        if create_new_if_missing is True:
            if not os.path.exists(param):
                os.makedirs(param)
            else:
                assert os.path.isdir(param)
        else:
           assert os.path.exists(param)
           assert os.path.isdir(param)


def CreatResultDir(Onelevel,Twolevel):
    if not os.path.exists(Onelevel):
        os.makedirs(Onelevel)
    for n ,label in enumerate(Twolevel):
        labpath = '%s/%s'%(Onelevel,label)
        if not os.path.exists(labpath):
            os.makedirs(labpath)
    fpath = pathlib.Path(Onelevel)
    listall = list(fpath.glob("*")) 
    listdir = [str(path) for path in listall]
    return listdir

#random.shuffle(all_image_paths)
#label_names = sorted(item.name for item in data_root.glob("*/") if item.is_dir()) 

def reprocessimage(img,size):
    resizeimg = cv2.resize(img,size)
    image  = resizeimg/255.0
    image = 2*image-1
    return image

def main():
    model = tf.keras.models.load_model(modelpath)
    print(CreatResultDir(outppath,labelchar))
    print("model load ready , and folder created ok")
    libDir = os.path.abspath(vaildpath)
    t = time.time()
    for root, dirs, files in os.walk(libDir):
        imglist = listdir(root, type='image')
        print("test image number :{}".format(len(imglist)))
        lasttime =time.time()
        for n in range(len(imglist)):
            img = cv2.imread(os.path.join(root,imglist[n]))
            if img is None:
                print("*********:{} is empty *********".format(imagelist[n]))
                continue
            outimage = reprocessimage(img,size)
            out = np.argmax(model.predict(np.expand_dims(outimage, axis=0),batch_size=1))
            wrpath = os.path.join(outppath,labelchar[out],imglist[n])
            cv2.imwrite(wrpath,img)
            if n%50==0:
                bashtime= time.time()
                print("now process number :{},with {} left,processing 50 using time :{}s".format(n,len(imglist)-n,bashtime-lasttime))
                lasttime=bashtime  
        t2=time.time()
        print("OK -----process image is {},all using time :{}s".format(len(imglist),t2-t))
    
if __name__=="__main__":
    
    main()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值