CTPN网络理解 本文主要对常用的文本检测模型算法进行总结及分析,有的模型笔者切实run过,有的是通过论文及相关代码的分析,如有错误,请不吝指正。一下进行各个模型的详细解析CTPN 详解代码链接:https://github.com/xiaofengShi/CHINESE-OCRCTPN是目前应用非常广泛的印刷体文本检测模型算法。CTPN由fasterrcnn改进而来,可以看下二者的异同网络结构...
Python程序打包成.exe(史上最全面讲解) 前言 也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇。再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈。 但是呢,我们开发的脚本一般都会用到一些第三方包,可能别人也需要用到我们的脚本,如果我们将我们的xx.py文件发给他,他是不能直接用的,他还需要安装python解释器,甚至还要安装我们用的那些第三方...
机制解决torchvision下载国外数据集mnist没有进度条的解决方案 我试着使用torchvison下载mnist数据集,但是由于是外国的站点,相信不只是mnist数据集,其他的数据集也可能遇到下载不了或者下载速度很慢的情况。cifar10/100也可以按照这样的方法进行下载但是呢,很多人已经从外国的网站下载过了,你再下载它们共享的资源就可以下载成功,接下来你可以手工的把下载好的数据集放到恰当的位置。你可能以为是万事大吉了,但是它会报错:RuntimeE...
Leetcode刷题日记(2020.07.19):两数相加II 题目:思路分析:让求两个数相加是个经典的问题。让我们复习一下小学的求加法:把两个加数的个位数字对齐;从两个加数的个位开始相加,如果相加结果大于10则只保留减去10的数字,并记录是否为进位。两个加数的前面一位数字相加,加上进位,重复步骤2.所以,我们需要三个变量:加数a当前的数字s1,加数b当前的数字s2,进位carry.计算过程是:从两个数字的末尾数...
Leetcode刷题日记-程序员面试经典(2020.7.15):珠玑妙算 题目描述如下:分析如下:a.建立两个字典,存放solution和guess颜色出现的个数b.因为题目中说“猜中”不能算入“伪猜中”,因此“猜中”的优先级更高c.先计算猜中的次数,对应的字典-1d.再计算伪猜中的次数,对应的字典-1e.最后返回结果即可代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3...
Leetcode刷题日记(2020.7.13)程序员面试经典:消失的两个数字 题目描述如下:分析如下:此题目乍一看挺难的没有思路,其实很简单,他要找消失的两个数字,那么也及时其实原数组应该是在现有输入数组的基础上加上两个数字,此时range()函数就可以上场了,但是很多人说,你这样会有重复哎,咋办呢,直接使用set()去重复即可。代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*-...
Leetcode刷题日记-程序员面试经典(2020.6.23):化栈为队 题目描述:思路整理:此题为简单题,没啥说的,我们直接用两个栈,一个输入栈,一个输出栈即可来实现代码:#!/usr/bin/env python# -*- coding: utf-8 -*-"""# @Time : 2020/6/24 9:20 # @Author : ZFJ# @File : 化栈为队.py # @Software: PyCharm"...
Leetcode刷题日记-剑指Offer(2020.6.19):从尾到头打印链表 题目描述如下:思路描述:这是一道简单的链表题目,我开始用了头插法,但是时间开销过大,因此进行了优化,分为以下几种方法给大家讲解方法一:使用头插法,我们可以直接使用列表的插入方法,每次插入数据,只插入在首位代码如下: 1 # -*- coding: utf-8 -*- 2 """ 3 @time: 2020/6/19 9:14 4 @author: ZFJ ...
Leetcode刷题日记(2020.6.11):旋转矩阵 题目如下:分析如下:本题其实就是将矩阵进行旋转,因为我主要是研究CV的,所以对于这种坐标的转换很熟悉,看到后,我就用了自己常用的方法:首先我们将矩阵进行上下交换,接着再将得到的新矩阵按照对脚线进行交换机可代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 # @Time :...
Leetcode刷题日记(2020.6.10):求和路径 题目如下:思路:首先说下,这是典型的二叉树的题目,用递归便能解决算法流程:1.首先进行安全检查,如果空树,那么直接返回02.首先我们从根节点出发,去遍历这个根节点下所有满足条件的路径数目,每次到达一个节点,将传入的参数sum减去root的val,这是一个递归。然后我们需要遍历所有的根节点,那么又需要一个递归去遍历。两层递归。代码如下: 1 #!/usr/bin/env...
Leetcode刷题日记(2020.6.9):最小值 题目如下:分析:本题说实话,没什么特殊的技巧,有的只是细节首先假如我们用暴力枚举两个数组中的所有数对,然后再计算绝对值最小的差值,肯定超时;那么我想了下,我们可以先分别对两个数组按照从小到大的顺序进行排序,然后再使用双指针的方法来计算算法流程:1.初始时,我们设置i=0,j=0分别指向两个数组中的第一个元素;2.然后我们计算a[i]-b[j]的绝对值,如果比当前的最小值...
Leetcode刷题日记(2020.06.05):翻转单词顺序 题目如下:分析:本体涉及到多个空格当成一个空格,因此我立刻想到了Python中的split()函数,在这里首先普及下split()和split(' ')两个函数的区别: 1 s1 = "we are family"#中间一个空格 2 s2 = "we are family"#中间两个空格 3 s3 = "we are family"#中间三个空格...
Leetcode刷题日记(2020.06.03):最长连续递增序列 题目描述如下:这是一道简单题目,思路如下:我们只需要判断后一个元素是否大于前一个元素,如果是的,我们的计数器+1;如果不是,那么我们在计数器和最大长度这个变量上进行取值分析,并且重置计数器为1。代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 # @Time : 2020/6/3 9:33 ...
Leetcode刷题日记(2020.06.02):面试题53-II.0~n-1中缺失的数字 题目难度:简单题目描述:一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。实例如下:这道题我自己开始的分析:我将其分为三种情况进行考虑:a.当数组缺失的是数值0,即为第一个元素缺失;b.当数组中缺少中间值;c.当数组中缺少最大值,即最末位的元素代码如...
CV热门面试题总结1 题目1:如何应对图像光照变化大?1、直方图均衡化2、对比度拉伸,或者调节3、若受光源影响,使得图片整体色彩往一方面移动,用白平衡算法进行修正,使其发黄、发蓝、发红的照片更加趋于自然光下的图像4、若是过爆或者过暗,可是设计阈值函数,不用全局阈值,对特定区域进行特定阈值分割。5、若是太暗,可以采用对数变化,对数图像增强是图像增强的一种常见方法,其公式为:S = c log (r+1...
Leetcode刷题笔记(Python 找出所有相加之和为n的k个组合,组合中只允许含有1-9的正整数,并且每种组合中不存在重复的数字。)... eg:输入:k=3,n=9 输出:[[1,2,6],[1,3,5],[2,3,4]] 输入:k=2,n=5 输出:[[1,4][2,3]] 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 # @Time : 2019/12/19 21:11 5 6 # ...
opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用 cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下:#ret:暂时就认为是设定的thresh阈值,mask:二值化的图像ret,mask = cv2.threshold(img2gray,175,255,cv2.THRESH_BINARY)plt.imshow(mask,cmap='gray')上面代码的作用是,将灰度图img2gray中灰度值小于...
2019年目标检测论文汇总 object-detection[TOC]This is a list of awesome articles about object detection. If you want to read the paper according to time, you can refer toDate.R-CNNFast R-CNNFaster R-CNNMask R-CNN...