[python3.6] 运用tf实现自然场景文字检测,keras/pytorch实现ctpn+crnn+ctc实现不定长场景文字OCR识别

Overview

本文基于tensorflow、keras/pytorch实现对自然场景的文字检测及端到端的OCR中文文字识别

update20190706

  • 为解决本项目中对数学公式预测的准确性,做了其他的改进和尝试,效果还不错,https://github.com/xiaofengShi/Image2Katex 希望能有所帮助,另外,这几月换了工作,并且转了方向,还是cv方向,不过不做ocr相关了,目前主要做显著目标检测以及搜索意图相关,对repo的提问回答较慢,请见谅。

实现功能

  • 文字方向检测 0、90、180、270度检测
  • 文字检测 后期将切换到keras版本文本检测 实现keras端到端的文本检测及识别
  • 不定长OCR识别

环境部署

Bash
##GPU环境
sh setup.sh
## CPU环境
sh setup-cpu.sh
##CPU python3环境
sh setup-python3.sh

使用环境:python3.6+tensorflow1.7+cpu/gpu

模型训练

  • 一共分为3个网络 1. 文本方向检测网络-Classify(vgg16)
  • 2. 文本区域检测网络-CTPN(CNN+RNN)
  • 3. EndToEnd文本识别网络-CRNN(CNN+GRU/LSTM+CTC)

文字方向检测-vgg分类

基于图像分类,在VGG16模型的基础上,训练0、90、180、270度检测的分类模型.
详细代码参考angle/predict.py文件,训练图片8000张,准确率88.23%

模型地址BaiduCloud

文字区域检测CTPN

关于ctpn网络,网上有很多对其进行介绍讲解的,算法是2016年提出的,在印书体识别用的很多,本人也写过一篇相应的博文深度学习-TextDetection,在文章中结合本repo的代码对ctpn的原理进行了详细的讲解。CTPN网路结构如下

ctpn_model

ctpn是一种基于目标检测方法的文本检测模型,在本repo的ctpn中anchor的设置为固定宽度,高度不同,相关代码如下:

def generate_anchors(base_size=16, ratios=[0.5, 1, 2],
                     scales=2 ** np.arange(3, 6)):
    heights = [11, 16, 23, 33, 48, 68, 97, 139, 198, 283]
    widths = [16]
    sizes = []
    for h in heights:
        for w in widths:
            sizes.append((h, w))
    return generate_basic_anchors(sizes)

基于这种设置,ctpn只能检测水平方向的文本,如果想要ctpn可以支持垂直文本检测,可以在anchor生成函数上进行修改。更详细的内容可以参考博客讲解。

OCR 端到端识别:CRNN

ocr识别采用GRU+CTC端到到识别技术,实现不分隔识别不定长文字

提供keras 与pytorch版本的训练代码,在理解keras的基础上,可以切换到pytorch版本,此版本更稳定

为什么使用ctc

ctc是一种解码机制,在使用ctpn提取到待检测文本行之后,我们要识别提取到的区域内的文本内容,目前广泛存在两种解码机制。

一种是seq2seq机制,输入的是图像,经过卷积编码之后再使用RNN解码,为了提高识别的准确率,一般会加入attention机制。

另一种就是ctc解码机制,但是对于ctc解码要满足一个前提,那就是输入序列的长度不小于输出序列的长度。ctc主要用于序列解码,我们不需要对序列中的每个元素进行标记,只需要知道输入序列对应的整个label是什么即可,针对ocr项目,也就是输入一张图像上面写着“欢迎来到中国”这几个字,我们只需要是这几个字,而没必要知道这几个字在输入图像中所在的具体位置,实际上如果知道每个字所在的位置,就是单字符识别了,的确会降低任务的复杂多,但是现实中我们没有这么多标记号位置的数据,这个时候CTC就显得很重要了。关于ctc解码机制,本人同样谢了一个对应的博客CTC算法原理,在文章中进行了详细的讲解,,如有疑问,请提交提问。

本repo中使用的是CNN+RNN+CTC的机制,实际上可以使用CNN+CTC的机制,CNN推荐选择densenet或者resnet

使用说明

使用预训练测试

运行demo.py  写入测试图片的路径即可,如果想要显示ctpn的结果,修改文件./ctpn/ctpn/other.py 的draw_boxes函数的最后部分,cv2.inwrite('dest_path',img),如此,可以得到ctpn检测的文字区域框以及图像的ocr识别结果

使用自己的数据训练

1 对ctpn进行训练

  • 定位到路径--./ctpn/ctpn/train_net.py
  • 预训练的vgg网络路径VGG_imagenet.npy 将预训练权重下载下来,pretrained_model指向该路径即可, 此外整个模型的预训练权重checkpoint
  • ctpn数据集还是百度云 数据集下载完成并解压后,将.ctpn/lib/datasets/pascal_voc.py 文件中的pascal_voc 类中的参数self.devkit_path指向数据集的路径即可

2 对crnn进行训练

  • keras版本 ./train/keras_train/train_batch.py model_path--指向预训练权重位置 MODEL_PATH---指向模型训练保存的位置 keras模型预训练权重
  • pythorch版本./train/pytorch-train/crnn_main.py
parser.add_argument(
    '--crnn',
    help="path to crnn (to continue training)",
    default=预训练权重的路径,看你下载的预训练权重在哪啦)
parser.add_argument(
    '--experiment',
    help='Where to store samples and models',
    default=模型训练的权重保存位置,这个自己指定)

pytorch预训练权重

识别结果展示

文字检测及OCR识别结果

ctpn原始图像1 =========================================================== ctpn检测1 =========================================================== ctpn+crnn结果1

主要是因为训练的时候,只包含中文和英文字母,因此很多公式结构是识别不出来的

看看纯文字的

ctpn原始图像2 =========================================================== ctpn检测2 =========================================================== ctpn+crnn结果2

未完待续

tensorflow版本crnn,计划尝试当前的各种trick(dropuout,bn,learning_decay等)

可以看到,对于纯文字的识别结果还是阔以的呢,感觉可以在crnn网络在加以改进,现在的crnn中的cnn有点浅,
并且rnn层为单层双向+attention,目前正在针对这个地方进行改动,使用迁移学习,以restnet为特征提取层,
使用多层双向动态rnn+attention+ctc的机制,将模型加深,目前正在进行模型搭建,结果好的话就发上来,不好的话只能凉凉了~~~~

训练数据集补充

列举可用于文本检测和识别领域模型训练的一些大型公开数据集, 不涉及仅用于模型fine-tune任务的小型数据集。

Chinese Text in the Wild(CTW)

该数据集包含32285张图像,1018402个中文字符(来自于腾讯街景), 包含平面文本,凸起文本,城市文本,农村文本,低亮度文本,远处文本,部分遮挡文本。图像大小2048*2048,数据集大小为31GB。以(8:1:1)的比例将数据集分为训练集(25887张图像,812872个汉字),测试集(3269张图像,103519个汉字),验证集(3129张图像,103519个汉字)。

文献链接:https://arxiv.org/pdf/1803.00085.pdf 
数据集下载地址:https://ctwdataset.github.io/

Reading Chinese Text in the Wild(RCTW-17)

该数据集包含12263张图像,训练集8034张,测试集4229张,共11.4GB。大部分图像由手机相机拍摄,含有少量的屏幕截图,图像中包含中文文本与少量英文文本。图像分辨率大小不等。

http://mclab.eic.hust.edu.cn/icdar2017chinese/dataset.html
文献:http://arxiv.org/pdf/1708.09585v2

ICPR MWI 2018 挑战赛

大赛提供20000张图像作为数据集,其中50%作为训练集,50%作为测试集。主要由合成图像,产品描述,网络广告构成。该数据集数据量充分,中英文混合,涵盖数十种字体,字体大小不一,多种版式,背景复杂。文件大小为2GB。

https://tianchi.aliyun.com/competition/information.htm?raceId=231651&_is_login_redirect=true&accounttraceid=595a06c3-7530-4b8a-ad3d-40165e22dbfe

Total-Text

该数据集共1555张图像,11459文本行,包含水平文本,倾斜文本,弯曲文本。文件大小441MB。大部分为英文文本,少量中文文本。训练集:1255张 测试集:300

http://www.cs-chan.com/source/ICDAR2017/totaltext.zip
http:// arxiv.org/pdf/1710.10400v

Google FSNS(谷歌街景文本数据集)

该数据集是从谷歌法国街景图片上获得的一百多万张街道名字标志,每一张包含同一街道标志牌的不同视角,图像大小为600*150,训练集1044868张,验证集16150张,测试集20404张。

http://rrc.cvc.uab.es/?ch=6&com=downloads
http:// arxiv.org/pdf/1702.03970v1

COCO-TEXT

该数据集,包括63686幅图像,173589个文本实例,包括手写版和打印版,清晰版和非清晰版。文件大小12.58GB,训练集:43686张,测试集:10000张,验证集:10000张

http://arxiv.org/pdf/1601.07140v2
https://vision.cornell.edu/se3/coco-text-2/

Synthetic Data for Text Localisation

在复杂背景下人工合成的自然场景文本数据。包含858750张图像,共7266866个单词实例,28971487个字符,文件大小为41GB。该合成算法,不需要人工标注就可知道文字的label信息和位置信息,可得到大量自然场景文本标注数据。

下载地址:http://www.robots.ox.ac.uk/~vgg/data/scenetext/
文献:http://www.robots.ox.ac.uk/~ankush/textloc.pdf
Code: https://github.com/ankush-me/SynthText (英文版)
Code https://github.com/wang-tf/Chinese_OCR_synthetic_data(中文版)

Synthetic Word Dataset

合成文本识别数据集,包含9百万张图像,涵盖了9万个英语单词。文件大小为10GB

http://www.robots.ox.ac.uk/~vgg/data/text/

Caffe-ocr中文合成数据

数据利用中文语料库,通过字体、大小、灰度、模糊、透视、拉伸等变化随机生成,共360万张图片,图像分辨率为280x32,涵盖了汉字、标点、英文、数字共5990个字符。文件大小约为8.6GB

https://pan.baidu.com/s/1dFda6R3

参考

Comments
  • pytorch的crnn训练中出现问题

    pytorch的crnn训练中出现问题

    pytorch训练过程中,会在utils.py里的encode()函数卡住,不停迭代 def encode(self, text, depth=0): """Support batch or single str.""" if isinstance(text, str): text = [self.dict[char.lower()] for char in text] length = [len(text)] if isinstance(text, str): text = [self.dict.get(char, 0) for char in text] length = [len(text)] ######## add for unicode # elif isinstance(text, unicode): # text = [self.dict.get(char, self.dict[u'-']) for char in text] # length = [len(text)] elif isinstance(text, collections.Iterable): length = [len(text)] print(length) #试着打印这个length 会一直增加 text = ''.join(str(v) for v in text) text, _ = self.encode(text) if depth: return text, len(text) return (torch.IntTensor(text), torch.IntTensor(length))

    这个函数是有什么问题吗?@xiaofengshi

    opened by infinitisun 12
  • 'NoneType' object has no attribute 'model_checkpoint_path'

    'NoneType' object has no attribute 'model_checkpoint_path'

    您好,我在运行demo.py的时候出现的这个问题一直没有找到,请问有跑通的同胞们分享以下怎么解决这个问题呢? File "/home/xshine6/Downloads/CHINESE-OCR/ctpn/ctpn/model.py", line 37, in load_tf_model reader = tf.train.NewCheckpointReader(ckpt.model_checkpoint_path) AttributeError: 'NoneType' object has no attribute 'model_checkpoint_path'

    opened by Wini1680 3
  • ModuleNotFoundError: No module named 'utils'

    ModuleNotFoundError: No module named 'utils'

    请问一下这个是什么问题 Using TensorFlow backend. Traceback (most recent call last): File "demo.py", line 8, in import model File "D:\QQ\CHINESE-OCR-master (2)\CHINESE-OCR-master\model.py", line 13, in from crnn.crnn import crnnOcr File "D:\QQ\CHINESE-OCR-master (2)\CHINESE-OCR-master\crnn\crnn.py", line 11, in import models.crnn as crnn File "./crnn\models\crnn.py", line 4, in import utils ModuleNotFoundError: No module named 'utils'

    opened by Nicolasdeke 2
  • oc4的预训练模型是否不是用trainbatch.py训练出来的?

    oc4的预训练模型是否不是用trainbatch.py训练出来的?

    在训练自己的模型的时候(keys修改过)发现得到的结果总是00或000。 是否预训练模型不是用trainbatch.py训练出来的?

    我用的是keras的ocr代码,里面对样本的处理存在以下差异:

    1. ocr/model.predict方法只是把图像resize为(32,width),之后reshape为(32,width,1),将数据处理为0,1之间。

    2. 而trainbatch.py和dataset.py中会在resize后把数据reshape为(-1,32,256,1)。之后处理为0,1之间之后,再减0.5,再除0.5。

    3. train.py中是Length = int(imgW/4)-1,trainbatch.py中是Length = int(imgW/4)-2

    这样trainbatch.py,train.py和ocr/model.predict三个地方的对样本的处理方式不是都不同吗?好像只有allinonetrain.py与trainbatch.py一致。

    是因为这个原因导致我用自己的keys.py训练的时候总是得不到想要的效果吗?

    opened by Jamsa 2
  • 请教下,win10环境跑demo.py一直跑不起来,怎么回事。。

    请教下,win10环境跑demo.py一直跑不起来,怎么回事。。

    报错信息如下:(折腾好久了,跪求指点) 2020-08-25 16:21:11.287250: E tensorflow/stream_executor/cuda/cuda_dnn.cc:319] Loaded runtime CuDNN library: 7.4.1 but source was compiled with: 7.6.0. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. If using a binary install, upgrade your CuDNN library. If building from sources, make sure the library loaded at runtime is compatible with the version specified during compile configuration. Traceback (most recent call last): File "d:/python_files/CV/OCR/CHINESE-OCR/demo.py", line 24, in img, model='keras', adjust=True, detectAngle=True) File "d:\python_files\CV\OCR\CHINESE-OCR\model.py", line 102, in model angle = angle_detect(img=np.copy(img)) ##文字朝向检测 File "d:\python_files\CV\OCR\CHINESE-OCR\angle\predict.py", line 66, in predict pred = model.predict(np.array([img])) File "C:\Users\AppData\Roaming\Python\Python36\site-packages\keras\engine\training.py", line 1462, in predict callbacks=callbacks) File "C:\Users\AppData\Roaming\Python\Python36\site-packages\keras\engine\training_arrays.py", line 324, in predict_loop batch_outs = f(ins_batch) File "C:\Users\AppData\Roaming\Python\Python36\site-packages\tensorflow_core\python\keras\backend.py", line 3476, in call
    run_metadata=self.run_metadata) File "C:\Users\AppData\Roaming\Python\Python36\site-packages\tensorflow_core\python\client\session.py", line 1472, in call run_metadata_ptr) tensorflow.python.framework.errors_impl.UnknownError: 2 root error(s) found. (0) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [[{{node block1_conv1/convolution}}]] [[predictions_class/Softmax/_291]] (1) Unknown: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above. [[{{node block1_conv1/convolution}}]]

    opened by lmw0320 1
  • demo.py 的模型 的ocr部分好像不是在用crnn?

    demo.py 的模型 的ocr部分好像不是在用crnn?

    根據 #83

    针对错误 NameError: name 'basemodel' is not defined
    下载ocr0.2.h5( https://github.com/jiangxiluning/chinese-ocr/blob/master/ocr/ocr0.2.h5 ),放到./CHINESE-OCR/ocr/路径下
    
    

    的建議 我成功運行了demo.py 但問題發現 這個ocr h5被load的時候不是在用crnn?

    我發現demo.py模型ocr的代碼是在 https://github.com/xiaofengShi/CHINESE-OCR/blob/46395d14802d876adc0ee0c943621d6b4e3ddf3a/ocr/model.py#L28

    def get_model(height, nclass):
        rnnunit = 256
        input = Input(shape=(height, None, 1), name='the_input')
        m = Conv2D(64, kernel_size=(3, 3), activation='relu', padding='same', name='conv1')(input)
        m = MaxPooling2D(pool_size=(2, 2), strides=(2, 2), name='pool1')(m)
        m = Conv2D(128, kernel_size=(3, 3), activation='relu', padding='same', name='conv2')(m)
        m = MaxPooling2D(pool_size=(2, 2), strides=(2, 2), name='pool2')(m)
        m = Conv2D(256, kernel_size=(3, 3), activation='relu', padding='same', name='conv3')(m)
        m = Conv2D(256, kernel_size=(3, 3), activation='relu', padding='same', name='conv4')(m)
    
        m = ZeroPadding2D(padding=(0, 1))(m)
        m = MaxPooling2D(pool_size=(2, 2), strides=(2, 1), padding='valid', name='pool3')(m)
    
        m = Conv2D(512, kernel_size=(3, 3), activation='relu', padding='same', name='conv5')(m)
        m = BatchNormalization(axis=1)(m)
        m = Conv2D(512, kernel_size=(3, 3), activation='relu', padding='same', name='conv6')(m)
        m = BatchNormalization(axis=1)(m)
        m = ZeroPadding2D(padding=(0, 1))(m)
        m = MaxPooling2D(pool_size=(2, 2), strides=(2, 1), padding='valid', name='pool4')(m)
        m = Conv2D(512, kernel_size=(2, 2), activation='relu', padding='valid', name='conv7')(m)
        # m的输出维度为HWC?
        # 将输入的维度按照给定模式进行重排,例如,当需要将RNN和CNN网络连接时,可能会用到该层
        # 将维度转成WHC
        m = Permute((2, 1, 3), name='permute')(m)
        m = TimeDistributed(Flatten(), name='timedistrib')(m)
    
        m = Bidirectional(GRU(rnnunit, return_sequences=True), name='blstm1')(m)
        m = Dense(rnnunit, name='blstm1_out', activation='linear')(m)
        m = Bidirectional(GRU(rnnunit, return_sequences=True), name='blstm2')(m)
        y_pred = Dense(nclass, name='blstm2_out', activation='softmax')(m)
    
        basemodel = Model(inputs=input, outputs=y_pred)
    
        labels = Input(name='the_labels', shape=[None, ], dtype='float32')
        input_length = Input(name='input_length', shape=[1], dtype='int64')
        label_length = Input(name='label_length', shape=[1], dtype='int64')
        loss_out = Lambda(ctc_lambda_func, output_shape=(1,), name='ctc')([y_pred, labels, input_length, label_length])
        model = Model(inputs=[input, labels, input_length, label_length], outputs=[loss_out])
        sgd = SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True, clipnorm=5)
        # model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer='adadelta')
        model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=sgd)
        # model.summary()
        return model, basemodel
    
    opened by sunset1234321 1
  • ModuleNotFoundError: No module named 'keys_ocr'

    ModuleNotFoundError: No module named 'keys_ocr'

    请问明明同一文件夹下有keys_ocr.py, 为什么说找不到呢,感谢

    Traceback (most recent call last): File "demo.py", line 8, in import keras_model File "/Users/yanwenqian/Desktop/CHINESE-OCR/keras_model.py", line 13, in from ocr.model import predict as ocr File "/Users/yanwenqian/Desktop/CHINESE-OCR/ocr/model.py", line 10, in import keys_ocr ModuleNotFoundError: No module named 'keys_ocr'

    opened by wyan00 0
  • 再Ubuntu 16.04下 运行demo.py出错

    再Ubuntu 16.04下 运行demo.py出错

    Traceback (most recent call last): File "demo.py", line 8, in import model File "/home/dc2-user/dlprojects/CHINESE-OCR1/model.py", line 13, in from crnn.crnn import crnnOcr File "/home/dc2-user/dlprojects/CHINESE-OCR1/crnn/crnn.py", line 11, in import models.crnn as crnn File "./crnn/models/crnn.py", line 4, in import utils ImportError: No module named 'utils' 可是.\CHINESE-OCR1\crnn\models目录下确实是有utils.py文件呀。

    opened by moFang222 0
  • !): Make pytorch train in GPU work.

    !): Make pytorch train in GPU work.

    Fix https://github.com/xiaofengShi/CHINESE-OCR/issues/17

    ref: https://github.com/Sierkinhane/crnn_chinese_characters_rec/blob/master/utils.py

    thx @Sierkinhane

    opened by tbfly 0
  • 使用作者的pytorch-train/crnn.main.py训练,accuracy一直为0

    使用作者的pytorch-train/crnn.main.py训练,accuracy一直为0

    使用作者的数据集源代码训练的,使用的环境配置为:python3.6+pytorch1.3 中间调了三个bug

    1. 由于在'cpu_texts = [clean_txt(tx.decode('utf-8')) for tx in cpu_texts]'这句时会报错str没有decode的方法,查询资料后感觉是python2和python3的区别,便把代码改成了'cpu_texts = [clean_txt(tx.encode('utf-8').decode('utf-8')) for tx in cpu_texts]';
    2. 在clean_texts函数中,作者是将在字典中找不到的字用空格代替了,但是这样在查询时会报错误,因此将该函数中的newTxt += u' '改成了newTxt += u'',即直接去掉了找不到的字;
    3. 由于预测出来的preds在后续处理中会报错:IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2),因此将‘preds = preds.squeeze(2)’这句代码删除了; 不知道是我修改的代码导致特征的维度发生了问题还是什么,模型训练过程中得到的accuracy一直为0,有没有大佬可以帮忙解答一下~感激不尽! https://imgtu.com/i/hy8weP
    opened by yyyyykp 2
  • 出现File

    出现File "D:/新建文件夹 (4)/pythonProject5/CHINESE-OCR-master/ctpn/lib/utils/bbox.py", line 14 ctypedef np.float_t DTYPE_t ^ SyntaxError: invalid syntax

    File "D:/新建文件夹 (4)/pythonProject5/CHINESE-OCR-master/ctpn/lib/utils/bbox.py", line 14 ctypedef np.float_t DTYPE_t ^ SyntaxError: invalid syntax 有谁知道这个问题怎么解决吗

    opened by elist11 4
  • 我配置了两天多,终于在windows10+anaconda3+python3.6+pytorch下配置好了,不过速度和准确率感人。

    我配置了两天多,终于在windows10+anaconda3+python3.6+pytorch下配置好了,不过速度和准确率感人。

    我配置了两天多,终于在windows10+anaconda3+python3.6+pytorch下配置好了,主要是三点吧。 1、安装pytroch gpu版本,并验证通过。 2、可以仔细看博主的setup.sh中有个sh make.sh,因此需要找到那个make.sh中有个python setup.py build_ext --inplace,应该是要生成一个bbox.py和cython_nms.py。但是由于经常编译不成功,可以参考:https://github.com/xiaofengShi/CHINESE-OCR/issues/130 ,将bbox.py和cython_nms.py重新保存。 3、下载相关资源,主要是ctpn-checkpoint 和角度模型modelAngle.h5、ocr0.2.h5等资源,可以参考:https://www.jianshu.com/p/58671f61e886,然后坐着很多文件路径用的自己的绝对路劲,可以将路径进行全部的查找替换成你自己的路劲,比如可以搜索:“xiaofeng”等关键词。

    不过速度和准确率感人。 如下图所示,运行了./test/4.jpg图片,耗时300多秒,显卡是GTX2060,不知道是不是我电脑问题, image

    image

    opened by QiTianDaShengMaoHuiFei 4
Owner
xiaofeng
Algorithm Engineer
xiaofeng
Creating a virtual tv using opencv in python3.

Virtual-TV Creating a virtual tv using opencv in python3. In order to run the code follow the below given steps: Make sure the desired videos which ar

Vamsi 1 Jan 1, 2022
Implementation of EAST scene text detector in Keras

EAST: An Efficient and Accurate Scene Text Detector This is a Keras implementation of EAST based on a Tensorflow implementation made by argman. The or

Jan Zdenek 208 Nov 15, 2022
CTPN + DenseNet + CTC based end-to-end Chinese OCR implemented using tensorflow and keras

简介 基于Tensorflow和Keras实现端到端的不定长中文字符检测和识别 文本检测:CTPN 文本识别:DenseNet + CTC 环境部署 sh setup.sh 注:CPU环境执行前需注释掉for gpu部分,并解开for cpu部分的注释 Demo 将测试图片放入test_images

Yang Chenguang 2.6k Dec 29, 2022
Convolutional Recurrent Neural Networks(CRNN) for Scene Text Recognition

CRNN_Tensorflow This is a TensorFlow implementation of a Deep Neural Network for scene text recognition. It is mainly based on the paper "An End-to-En

MaybeShewill-CV 1000 Dec 27, 2022
Generate text line images for training deep learning OCR model (e.g. CRNN)

Generate text line images for training deep learning OCR model (e.g. CRNN)

null 532 Jan 6, 2023
CRNN With PyTorch

CRNN-PyTorch Implementation of https://arxiv.org/abs/1507.05717

Vadim 4 Sep 1, 2022
This is an implementation of Googles Yogi-Optimizer in Keras (tf.keras)

Yogi-Optimizer_Keras This is an implementation of Googles Yogi-Optimizer in Keras (tf.keras) The NeurIPS-Paper can be found here: http://papers.nips.c

null 14 Sep 13, 2022
Keras udrl - Keras implementation of Upside Down Reinforcement Learning

keras_udrl Keras implementation of Upside Down Reinforcement Learning This is me

Eder Santana 7 Jan 24, 2022
Example-custom-ml-block-keras - Custom Keras ML block example for Edge Impulse

Custom Keras ML block example for Edge Impulse This repository is an example on

Edge Impulse 8 Nov 2, 2022
Classification models 1D Zoo - Keras and TF.Keras

Classification models 1D Zoo - Keras and TF.Keras This repository contains 1D variants of popular CNN models for classification like ResNets, DenseNet

Roman Solovyev 12 Jan 6, 2023
python3.5+ hubspot client based on hapipy, but modified to use the newer endpoints and non-legacy python

A python wrapper around HubSpot's APIs, for python 3.5+. Built initially around hapipy, but heavily modified. Check out the documentation here! (thank

Jacobi Petrucciani 140 Dec 21, 2022
🎨 Python3 binding for `@AntV/G2Plot` Plotting Library .

PyG2Plot ?? Python3 binding for @AntV/G2Plot which an interactive and responsive charting library. Based on the grammar of graphics, you can easily ma

hustcc 990 Jan 5, 2023
Display machine state using Python3 with Flask.

Flask-State English | 简体中文 Flask-State is a lightweight chart plugin for displaying machine state data in your web application. Monitored Metric: CPU,

null 622 Dec 18, 2022
A Python3 script to decode an encoded VBScript file, often seen with a .vbe file extension

vbe-decoder.py Decode one or multiple encoded VBScript files, often seen with a .vbe file extension. Usage usage: vbe-decoder.py [-h] [-o output] file

John Hammond 147 Nov 15, 2022
Python3 Interface to numa Linux library

py-libnuma is python3 interface to numa Linux library so that you can set task affinity and memory affinity in python level for your process which can help you to improve your code's performence.

Dalong 13 Nov 10, 2022
学习 python3 以来写的一些垃圾玩具……

和东哥做兄弟 Author: chiupam 版权 未经本人同意,仓库内所有资源文件,禁止任何公众号、自媒体、开发者进行任何形式的转载、发布、搬运。 声明 这不是一个开源项目,只是把 GitHub 当作一个代码的存储空间,本项目不接受任何开源要求。 仅用于学习研究,禁止用于商业用途,不能保证其合法性

Chiupam 67 Mar 26, 2022
Basic Python3 request wrapper for the PancakeSwap API

?? Python Pancakes ?? A simple request wrapper for the Pancake-Swap API. Installation Install package # Using pip $ pip install pythonpancakes # Or f

Scott Burlovich 30 Nov 20, 2022
python3 scrip for case conversion of source code files writen in fixed form fortran

convert_FORTRAN_case python3 scrip for case conversion of source code files writen in fixed form fortran python3 scrip for case conversion of source c

null 7 Sep 20, 2022
a BTC mining program based on python3

BTC-Miner a BTC mining program based on python3 Our project refers to the nightminer project by ricmoo, which is written in Python2 (https://github.co

null 6 Jul 31, 2022
A Simple, LightWeight, Statically-Typed Python3 API wrapper for GogoAnime.

AniKimi API A Simple, LightWeight, Statically-Typed Python3 API wrapper for GogoAnime The v2 of gogoanimeapi (depreciated) Made with JavaScript and Py

null 17 Dec 9, 2022