Skip to content

Instantly share code, notes, and snippets.

View YimianDai's full-sized avatar
💭
I may be slow to respond.

Yimian Dai YimianDai

💭
I may be slow to respond.
View GitHub Profile
@YimianDai
YimianDai / NormalizedBoxCenterDecoder.md
Created September 6, 2019 00:02
NormalizedBoxCenterDecoder

test

@YimianDai
YimianDai / nms.md
Last active September 6, 2019 02:03
Non-maximum suppression

典型的用法

            result = F.contrib.box_nms(
                result, overlap_thresh=self.nms_thresh, topk=self.nms_topk,
                valid_thresh=self.score_thresh,
                id_index=0, score_index=1, coord_start=2, force_suppress=False)
@YimianDai
YimianDai / ErrorAnalysis.md
Last active August 30, 2019 21:21
ErrorAnalysis

第一阶段:我应该只需要计算 TP、FP 这些数值

  1. self._n_pos[l] 就是 True Object 的个数
  2. np.sum(self._match[l] == 1) 就是 True Positive 的个数
  3. np.sum(self._match[l] == 0) 就是 False Positive 的个数
  4. len(self._match[l]) 就是 Positive 的个数
  5. recall 就是 #TP / #T,precision 就是 #TP / #P

因此,我感觉功能只要如下就可以了

@YimianDai
YimianDai / VOCMApMetric-Code.md
Last active September 6, 2019 01:51
VOCMApMetric 代码解读
@YimianDai
YimianDai / MultiPerClassDecoder.md
Last active August 27, 2019 16:35
MultiPerClassDecoder

输入是大小为 (N, H_1 x W_1 + ... + H_6 x W_6, self.num_classes + 1) 的 Prediction Probability,axis = -1 上的 self.num_classes + 1 类的概率和加起来为 1

        scores = x.slice_axis(axis=self._axis, begin=1, end=None)  # b x N x fg_class

slice_axis 是切片函数,指定 axis,然后 begin 和 end,end 是不包括在内的,这行代码就是将 Background 的 Prediction Probability 去掉,得到仅有 Foreground Class 的 Prediction Probability 矩阵,大小为 (N, H_1 x W_1 + ... + H_6 x W_6, self.num_classes)

 template = F.zeros_like(x.slice_axis(axis=-1, begin=0, end=1))
@YimianDai
YimianDai / Class-SSD.md
Last active September 6, 2019 00:42
Class-SSD

SSD-Data-Flow

__init__

            self.cls_decoder = MultiPerClassDecoder(len(self.classes) + 1, thresh=0.01)

这个输出跟 training loss 没关系,不会影响 training

@YimianDai
YimianDai / trash-cli.md
Last active August 22, 2019 01:19
Linux 的 回收站 trash-cli

Linux 没有回收站,rm 错删文件文件就回不来了,教训实在太惨痛。从 pansz 在知乎上对基于文本的 Linux 为什么没有回收站?的回答中得知,linux 也有类似回收站的工具 trash-cli。这篇日志记录下没有 root 权限下的安装过程。

1. 安装,没有 root 权限

$ git clone https://github.com/andreafrancia/trash-cli.git
$ cd trash-cli
$ python setup.py install --user
@YimianDai
YimianDai / matplotlib.md
Last active September 19, 2019 22:23
Notes on Matplotlib
@YimianDai
YimianDai / SSDAnchorGenerator.md
Last active September 5, 2019 17:47
SSDAnchorGenerator

顾名思义,代码是 Bounding box anchor generator。Anchor 是什么,是平铺过去的 box,不管里面有没有目标。box 的表示方式为 [cx, cy, w, h]。如果知道 Anchor sizes 和 ratio,对于最左上角像素的 Anchor 闭着眼睛也知道肯定是 [11, 11, 21, 21] 这样的,唯一不确定的是要在哪里(最右下角 anchor 的 cx,cy)截止,而这个是要看进来的 features 大小确定的。

这里代码的思路是先生成一个足够大的 Anchor Map (128 x 128),假设所有 feature map 都小于 128 x 128,只要从预设的 Anchor Map 左上角开始 截取 feature map 大小的 Anchor Map 就可以了,这就是 SSDAnchorGenerator 这个函数的思路。

__init__

__init__ 的下面代码负责生成 128 x 128 大小的预设的 Anchor Map

@YimianDai
YimianDai / 观点.md
Created August 21, 2019 03:27
观点

关于香港现在的情势,我觉得其实是一场“宗教战争”。现代海外社会在西方知识界和媒体努力下,自由民主明显成为了一种“宗教”一样的事物,绝对正确,不容质疑。香港民众,我认为是大部分不管有没有上街头,其实都是反感大陆的,这种反感来自于意识形态的不同。与实际经济利益上的冲突不同,意识形态上的冲突只可以视而不见,但一旦冲突则是不可妥协且极其惨烈的,参见历史上各个教派对异端的讨伐。这也可以解释为什么林郑哭诉香港未来而黑小将们置之不理且要更加勇武的原因。他们也知道自己的暴力行为对香港经济不利,但即使牺牲经济利益也在所不惜,这就是宗教战争。