from keras.callbacks import EarlyStopping, TensorBoard from ctpn import CTPN from ctpn.data_loader import DataLoader from ctpn.lib.utils import get_session from custom import LRScheduler, SingleModelCK import keras.backend as K if __name__ == '__main__': import argparse K.set_session(get_session(0.8)) parser = argparse.ArgumentParser() parser.add_argument("-ie", "--initial_epoch", help="初始迭代数", default=0, type=int) parser.add_argument("--epochs", help="迭代数", default=20, type=int) parser.add_argument("--gpus", help="gpu的数量", default=1, type=int) parser.add_argument("--images_dir", help="图像位置", default="E:\data\VOCdevkit\VOC2007\JPEGImages") parser.add_argument("--anno_dir", help="标注文件位置", default="E:\data\VOCdevkit\VOC2007\Annotations") parser.add_argument("--config_file_path", help="模型配置文件位置", default="config/ctpn-default.json") parser.add_argument("--weights_file_path", help="模型初始权重文件位置", default=None)
parser = argparse.ArgumentParser() parser.add_argument("--image_path", help="图像位置") parser.add_argument("--dict_file_path", help="字典文件位置", default="data/char_std_5990.txt") parser.add_argument("--config_file_path", help="模型配置文件位置", default="config/densent-default.json") parser.add_argument("--weights_file_path", help="模型权重文件位置", default="model/weights-densent-init.hdf5") args = parser.parse_args() K.set_session(get_session(0.4)) image_path = args.image_path dict_file_path = args.dict_file_path # 字典文件位置 weight_path = args.weights_file_path # 权重文件位置 config_path = args.config_file_path # 模型配置文件位置 id_to_char = load_dict(dict_file_path, "UTF-8") config = DenseNetOCR.load_config(config_path) config['weight_path'] = weight_path ocr = DenseNetOCR(**config) start = datetime.now() print(ocr.predict(image_path, id_to_char)[0])
if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("--image_path", help="图像位置") parser.add_argument("--dict_file_path", help="字典文件位置", default="data/char_std_5990.txt") parser.add_argument("--densenet_config_path", help="densenet模型配置文件位置", default="config/densent-default.json") parser.add_argument("--ctpn_config_path", help="ctpn模型配置文件位置", default="config/ctpn-default.json") parser.add_argument("--ctpn_weight_path", help="ctpn模型权重文件位置", default="model/weights-ctpnlstm-init.hdf5") parser.add_argument("--densenet_weight_path", help="densenet模型权重文件位置", default="model/weights-densent-init.hdf5") parser.add_argument("--adjust", help="是否对图像进行适当裁剪", default=True, type=bool) args = parser.parse_args() K.set_session(get_session()) app = TextDetectionApp(ctpn_weight_path=args.ctpn_weight_path, densenet_weight_path=args.densenet_weight_path, dict_path=args.dict_file_path, ctpn_config_path=args.ctpn_config_path, densenet_config_path=args.densenet_config_path) start_time = datetime.now() for rect, line in app.detect(args.image_path, args.adjust): print(line) print(f"cost {(datetime.now() - start_time).microseconds / 1000}ms")
parser.add_argument("--dict_file_path", help="字典文件位置", default="/home/sunsheenai/application/data/OCR/char_std_5990.txt") parser.add_argument("--train_file_path", help="训练文件位置", default="/home/sunsheenai/application/data/OCR/train.txt") parser.add_argument("--test_file_path", help="测试文件位置", default="/home/sunsheenai/application/data/OCR/test.txt") parser.add_argument("--config_file_path", help="模型配置文件位置", default="config/densent-default.json") parser.add_argument("--weights_file_path", help="模型初始权重文件位置", default=None) parser.add_argument("--save_weights_file_path", help="保存模型训练权重文件位置", default=r'model/weights-densent-{epoch:02d}.hdf5') args = parser.parse_args() K.set_session(utils.get_session(0.8)) batch_size = args.batch_size encoding = "UTF-8" initial_epoch = args.initial_epoch # 载入模型配置文件 config = DenseNetOCR.load_config(args.config_file_path) weights_file_path = args.weights_file_path gpus = args.gpus config['num_gpu'] = gpus # 载入初始权重 if weights_file_path is not None: config["weight_path"] = weights_file_path