- 博客(193)
- 资源 (1)
- 收藏
- 关注
原创 限制OpenMP线程数提速
背景:视频帧序列逐个跑一遍CNN模型,发现CPU被占满了经过debug发现问题出在torchvision transorms.totensor上经过搜索,torch在设计多线程加速计算时候会默认占满所有core,因此cpu会飙满,这对别的应用程序速度影响非常大,因此需要控制一下。解决方法:1)torch.set_num_threads(1)手动控制一下torch占用的线程数2)设置环境变量export OMP_NUM_THREADS=1 or export MKL_NUM_THREADS=1
2021-06-11 11:14:39
16133
6
原创 Auto-Directed Video Stabilization with Robust L1 Optimal Camera Paths论文笔记
2021-01-25 11:23:23
764
1
原创 Guided Anchor论文笔记
Region Proposal by Guided Anchoring 出自mmlab的陈凯,作者提出一种模型自己生成anchor的策略来替换常规的RPN层,起到获取更加稀疏更高质量Proposal的目的。痛点:不同数据集需要人手工调整anchor的尺度和比例参数,这些anchor参数极大影响后续的检测结果。想要获取更高的proposal召回率,需要铺设更多的anchor,但这无疑拖慢了模型计算,同时更多的anchor会一定程度干扰训练优化因此,模型自己生成anchor成为一个很好解决方
2020-12-18 15:20:14
984
原创 GCN初探
CNN能在规则结构数据上取得惊人成绩归功于规则结构数据的平移不变性,因此CNN利用参数共享完成规则数据的特征抽取,这里的规则数据有如图片等数据。但图结构数据不具备结构规则性,CNN因此失效了,图数据上的节点受到周边乃至更远节点的影响,因此我们需要一种方法能够考虑节点以及它所相关的节点相互影响的模型来完成节点特征抽取。GCN和CNN一样,可以理解为一种特征提取器,GCN可以完成节点分类,图分类,边预测,图嵌入等。在GCN中,有几个重要的概念需要清楚(这儿以无向图为例)度矩阵D:表示节点的度邻接矩阵
2020-10-21 16:58:36
357
原创 GCN实现人脸聚类
首先介绍一下GCN实现人脸聚类这篇论文,然后记录一下作者开源代码的阅读心得(代码写的很nice!)Learning to Cluster Faces via Confifidence and Connectivity Estimation CVPR2020一图胜千言,图2即作者提出的GCN网络来实现人脸聚类的全流程,其实本文的重点不在于GCN模型的构建,而是一种GCN思想在人脸聚类上的应用。GCN实现人脸聚类主要分为四个部分:图的构建,GCN-V实现节点置信度预测,GVN-E实现边连接预测,通过基于
2020-10-21 16:54:43
4339
9
原创 arcface笔记
ArcFace可以说是现在人脸识别损失函数中应用最为成功也最为有效的损失之一,在各大人脸数据集上可谓屠榜。论文:ArcFace: Additive Angular Margin Loss for Deep Face Recognition常规交叉熵损失如下:当我们将W和X都通过L2归一化,设置偏执b为0,则可将矩阵相乘的结果logit看成一个余弦距离与缩放因子S的乘积,这两者在结果上是等价的,那么logit就与w和x无关了,仅与θ和s有关,如果固定s,那仅与θ有关。...
2020-10-14 09:24:41
503
原创 Consensus-Driven Propagation in Massive Unlabeled Data for Face Recognition 人脸聚类
看论文前可先看下作者自己在知乎的总结:https://zhuanlan.zhihu.com/p/51806059这篇论文简称CDP,利用监督方式训练一个度量模型判别图片对判别进而实现人脸聚类,使用聚类的人脸来训练人脸识别模型。open-setandclose-set类似ImageNet识别这种,明确知道类别范围的分类问题称为close-set问题,但人脸方面基本都属于open-set问题(测试类别不一定在训练集范围内),因此测试过程通常是提取人脸特征进行比对,而非直接通过网络推理...
2020-10-14 09:22:19
1313
原创 DSFD: dual shot face detector
DSFD为CVPR2019的工作,作者提出一种双分支的人脸检测算法,网络结果如下创新点如下:1.一种新的特征增强模块(FEM)该模块可看做FPN的升级版,在特征融合后使用空洞卷积捕捉多尺度表征增强感受野对比实验发现涨点明显2.双分支结构DSFD为并行双预测分支组成,训练阶段两条分支都作预测,而测试阶段仅使用第二条分支(特征增强分支)。为什么使用双分支呢?作者提到可以将第一条预测分支看成是一种辅助监督,使得特征更符合人脸检测(个人理解:第一条分支可看成一种特征约束)。其中两条分支除了采用的a
2020-05-21 21:28:41
1598
原创 pytorch分布式训练使用笔记
参考:DDP使用讲解:https://zhuanlan.zhihu.com/p/113694038官方ImageNet分布式训练案例: https://github.com/pytorch/examples/blob/e49fa5846f/imagenet/main.py官方DDP使用案例: https://github.com/pytorch/examples/blob/e49fa5846f/distributed/ddp/main.py...
2020-05-17 12:40:06
402
原创 S3FD
2017年的文章了,作者对已有基于anchor的人脸检测算法在感受野不匹配、小脸特征少、anchor匹配不均、以及浅层预测出现大量FP等问题分别分析并提出改进。S3FD模型结构如上图可见为SSD的改进版,分别针对现有的不足,作者分别作了以下改进。1.在模型结构上的改进这一块作者称为scale-equitable framework,在vgg16模型基础上新增卷积层,并在6层特征图上分别做预...
2020-04-23 20:37:41
533
原创 pyramidbox笔记
百度2018年出品,霸榜wider face一段时间,性能小怪兽。对于遮挡、小、模糊的人脸,仅仅靠人脸那点信息较为判别那是人的脸,得借助头啊,上半身这些上下文信息来辅助判别才能较好判定那些很难看出来的人脸。这就是本文作者提出的pyramidanchors的核心思想,如下图所示,借助人头,上半身能较好判别人脸。作者主要有以下贡献:提出一个FPN的改进版,LFPN。作者分析较高层的特征可...
2020-04-23 20:35:07
1154
原创 bounding box voting
找了个开源的实现,这个实现版本将NMS结果与优化框一起作为输出参考:https://github.com/sfzhang15/SFD/blob/c1abcf014d430354ce3a61c7f33de0dcf2021186/sfd_test_code/WIDER_FACE/wider_test.py#L41https://github.com/facebookresearch/Dete...
2020-03-31 17:37:36
728
原创 mmdetection——assign and sample
assign和sample是在anchor target中的核心操作。assign一般基于IOU,mmdet中也有基于atss和基于point的等。sample一般为随机,也有ohem的,基于伪标签的。MaxIoUAssigner这是常用的assign方法,下面为mmdet中该类介绍及构造函数参数说明"""Assign a corresponding gt bbox or backgro...
2020-03-29 20:30:46
2567
1
原创 mmdetection——anchor_target解读
anchor_target函数解读该函数输入参数:"""Compute regression and classification targets for anchors.Args: anchor_list (list[list]): Multi level anchors of each image. valid_flag_list (list[list]): Multi ...
2020-03-29 20:19:00
1760
原创 mmdetection——anchor_head解读
mmdet中anchor_head为预测分支的基类,包含了_inti_layers, init_weights, forward_single,forward, get_anchors, loss,get_bboxes这些功能,囊括了训练用到的loss计算以及预测用到的get_bboxes方法。1、forward_single and forward单尺度预测,得出分类,边框预测def fo...
2020-03-29 20:13:08
3359
3
原创 mmdetection框架解读——anchor生成机制
anchor是一组先验框,在faster rcnn中被提出,再次记录mmdetection anchor生成思路。mmdet中的AnchorGenerator类负责生成anchor,该类构造函数接收三个参数:base size,ratios,scalesbase size:anchor大小ratios:anchor 高宽比scales:anchor缩放比例每一处生成ratios*scal...
2020-03-29 11:03:16
3998
原创 搭建frp服务实现内网穿透
内网穿透意思就是使用某种技术实现外网访问到内网比如公司内网只能在公司局域网内访问,在家里无法直接访问到公司的电脑。那么使用frp搭建一个内网穿透服务就能实现在家远程访问公司内网电脑。所需设备:一个有公网ip的设备整个frp的搭建流程很简单,将家里电脑(内网内设备)称为客户端,即想要访问的对象;将有公网ip的设备叫服务器。我们需要分别在公网服务器上起一个frp服务器,然后在客户端上起一个frp...
2019-11-02 10:07:25
5250
原创 keras绘制网络结构图
keras可以方便画出网络结构图,但在使用过程中有两个库需要先安装 pydot 和graphvizos: unbantupydot使用pip很容易安装graphviz直接用pip装没问题,但是使用时候遇到环境变量问题。这儿需要将graphviz/bin添加到环境变量,但是我装完发现graphviz文件下无bin文件。。。另寻他路,apt-get install graphviz直接安装成功...
2019-10-06 17:47:59
1522
原创 leetcode139 单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成...
2019-09-14 17:29:21
284
原创 最长回文子串
dabadcmnm最长回文子串为dabad此题有多种解法,暴力法就是逐个子串来比较,记录最长子串,复杂度太高。动态规划当子串是回文子串时候,我们只需要看两遍新添的两个字符是否相等,若相等则最新串也是最长子串;若不等,则新串不是回文子串。这也是此题的状态转移方程。例如,aba是回文子串,当aba子串两端新添的两个字符相等时候,新串dabad也是回文子串。我们可以用一个二维数组dp记录所有的...
2019-08-30 17:14:53
209
原创 House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent house...
2019-08-28 14:34:02
168
原创 Valid Sudoku
Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to the following rules:Each row must contain the digits 1-9 without repetition.Each column must contain...
2019-08-27 14:14:04
188
原创 322. Coin Change
You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money ...
2019-08-26 17:27:54
126
原创 Dungeon Game
The demons had captured the princess § and imprisoned her in the bottom-right corner of a dungeon. The dungeon consists of M x N rooms laid out in a 2D grid. Our valiant knight (K) was initially posit...
2019-08-23 20:34:54
216
原创 数组中超过一半的数
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。这个题目看到了首先会想到排序,然后统计个数。O(nlogn)了,不够快超过一半的数字肯定会是中位数,尝试快排的思想,找到中位数即可。这儿遇到一个坑,就是写partition函数的时候nu...
2019-08-21 10:50:25
613
原创 链表反转+交叉链接
给个链表1->2->3->4->5->6把它变成1->6->2->5->3->4先把后半段链表反转,然后交叉链接前后半段链表即可#include <iostream>#include <iomanip>#include <vector>#include <algorithm>#...
2019-08-14 11:01:18
463
原创 链表快排
快排的核心在于根据哨兵将节点二分,使用双指针分别从头和尾开始遍历即可完成。可是链表的访问时单向的,无法使用一个指针从后往前访问节点。换个思路来解,我们的目的还是要将数据二分嘛。还是用双指针,慢指针 i 指向头结点,快指针 j 从第二个节点开始遍历,一旦遇到节点值小于哨兵的key,那说明 j 指向的节点应该在哨兵前,这时候我们将慢指针后移一步,然后替换 i 和 j 的值。替换后保证了 j 的值大于...
2019-08-13 23:11:35
229
原创 翻转单词序列
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?这道题用栈来解非常简单,坑在于牛客...
2019-08-08 17:36:11
100
原创 八皇后问题
八皇后问题,太经典了。这儿记录一个回溯写法。回溯法适用于求解含有多个步骤的问题,且每个步骤都有多个选择,每次我们只选一个选择去求解,若达到解的条件则为一个解,若无解那么回到上一步换一个选择继续求解。八个皇后在水平竖直对角方向都不能共线,那这肯定作为求解过程中的限制。我们用一个数组记录每个皇后在对应行上的位置。假设棋盘有n格,每个皇后就有n个选择,每次选一个,然后判断该皇后在这儿会不会与已有皇...
2019-08-02 10:59:59
141
原创 Longest Consecutive Sequence
Given an unsorted array of integers, find the length of the longest consecutive elements sequence.Your algorithm should run in O(n) complexity.Example:Input: [100, 4, 200, 1, 3, 2]Output: 4Explan...
2019-08-01 15:35:01
150
原创 编码字符串,使得总长度最短
字符串“liulishuo”,我们需要对该字符串每个字符编码,使得编码后的字符串总长度最小。我们可以通过哈夫曼树来对字符编码,累积树中非叶子节点的和即为所求总长度。总长度也等于词频1字符长度1+词频2字符长度2+…/*liulishuo23对字符串编码,使得编码后的总长度最短;哈夫曼编码,总长度=字符长度1*频数1+字符长度2*频数2利用最小堆找最小元素*/int MinLe...
2019-08-01 11:49:24
2623
原创 Pow(x, n)
Implement pow(x, n), which calculates x raised to the power n (xn).Example 1:Input: 2.00000, 10Output: 1024.00000Example 2:Input: 2.10000, 3Output: 9.26100该题简单的循环累乘会超时,时间复杂度O(n).不够快!可以用分治法将复杂度...
2019-08-01 11:01:27
136
原创 Lowest Common Ancestor of a Binary Search Tree
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between t...
2019-07-29 00:06:07
119
原创 Validate Binary Search Tree
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node’s key.The rig...
2019-07-28 21:11:58
102
原创 二叉树非递归遍历方式
前序遍历:root,left,right用栈实现非递归遍历,访问root,将right先存栈,然后left再存栈vector<int> preorderTraversal(TreeNode* root) { stack<TreeNode*> s; vector<int> res; if (!root) retu...
2019-07-26 17:54:21
156
原创 3Sum
Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solution set must not contai...
2019-07-25 19:39:50
157
原创 Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements.Example 1:Input: nums = [1,1,1,2,2,3], k = 2Output: [1,2]Example 2:Input: nums = [1], k = 1Output: [1]输出数组内最重复的k个数。emmm,...
2019-07-24 19:39:19
130
原创 Sliding Window Maximum
Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window m...
2019-07-20 19:34:23
113
原创 703. Kth Largest Element in a Stream
Design a class to find the kth largest element in a stream. Note that it is the kth largest element in the sorted order, not the kth distinct element.Your KthLargest class will have a constructor whi...
2019-07-20 12:27:06
130
原创 Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null.To represent a cycle in the given linked list, we use an integer pos which represents the position (0-in...
2019-07-20 10:58:02
143
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人