TC CODE HOME


  • Home

  • Categories

  • Archives

  • Search

leetcode Median of Two Sorted Arrays

Posted on 2019-12-25 | In leetcode |

Median of Two Sorted Arrays

  There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).
You may assume nums1 and nums2 cannot be both empty.
Example 1:
nums1 = [1, 3] nums2 = [2]
The median is 2.0

Example 2:
nums1 = [1, 2] nums2 = [3, 4]
The median is (2 + 3)/2 = 2.5

Read more »

非极大值抑制算法原理

Posted on 2019-05-22 | In 深度学习 |

  目标检测器从端到端学习范式中获益匪浅。推荐、特征和分类器成为一个神经网络将通用的目标检测的精度提高了2倍。另外一个不可或缺的组成部分就是非极大值抑制算法(non-maximum suppression,NMS),一种后处理算法,主要用于负责合并同一对象的所有检测结果。

目标检测步骤

  所有的目标检测器都经过以下三个步骤:
1)利用滑动窗口提取一个窗口的搜索空间(由许多边界框(bounding box)组成);
2)用分类器或者回归器对窗口进行置信度(confidence score)评估;
3)利用非极大值抑制算法合并每一个对象的边界框。

非极大值抑制算法

  下面主要对非极大值抑制算法做一个简单的介绍。

  如上的第一步,目前的目标检测算法会在第一步的时候,为每一个对象确定不止一个边界框,但是算法最后进行目标种类识别的时候,仅仅需要一个边界框。这个时候,我们需要去找一个最有利于目标识别的框来进行目标识别,例如下面这个例子:

Read more »

YOLO实时目标检测

Posted on 2019-05-19 | In 深度学习 |

  我们可以一眼识别出图片里面的目标和目标的位置以及目标的动作等信息。我们的视觉系统快速且准确,可以让我们几乎不用思考就可以识别复杂的目标。用于物体检测的快速,准确的算法将允许计算机在没有专用传感器的情况下驾驶汽车,使得辅助设备能够实时传送 场景信息给人类用户,并可以用于通用的响应式机器人系统。快速准确的目标检测算法的研究一直没有停下来。

  目前比较流行的目标检测算法可以分为两类:一类是基于Region Proposal的R-CNN系算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的,需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。
  另一类是Yolo,SSD这类one-stage算法,其仅仅使用一个CNN网络直接预测不同目标的类别与位置。
  第一类方法是准确度高一些,但是速度慢,但是第二类算法是速度快,但是准确性要低一些。

  下面将要介绍YOLO算法,You Only Look Once: Unified, Real-Time Object Detection。从算法的名字上就可以很容易知道此算法的特点,只需要进行一次CNN运算,Unified指的是这是一个统一的框架,提供end-to-end的预测,而Real-Time则时体现Yolo算法速度快。

Read more »

利用MTCNN和Facenet实现实时人脸识别

Posted on 2019-05-14 | In 深度学习 |

MTCNN做人脸检测和对齐

  将需要识别的含有人脸的图片放在’./images/test_img’,代码首先使用detection_face_and_crop对提供的人脸图像进行预处理(人脸检测和对齐),将预处理之后的人脸图像存放到’./images/emb_img’目录下。
  三个重要参数:
  minisize: 图片中人脸的最小尺寸,控制人脸金字塔阶数参数之一,其值越小,可计算的阶数越多,计算量越大。
  threhold: MTCNN中三个网络人脸框的阈值,三个阈值可以分别设置,这里分别设置为0.6、0.7、0.7。阈值太小将会导致人脸框太多,增加计算量;还可能导致不是人脸的图像检测为人脸。
  factor: 生成图像金字塔时候的缩放系数, 范围(0,1),可控制图像金字塔的阶层数的参数之一,越大,阶层越多,计算量越大。
  detect_face()返回值为人脸框的坐标以及是人脸的概率。

动态分配显存

1
2
3
config = tf.ConfigProto()
config.gpu_options.allow_growth = True # increase slowly until to max capacity when use GPU
sess = tf.Session(config=config)
Read more »

基于深度卷积神经网络的人脸检测和人脸对齐方法——MTCNN

Posted on 2019-05-07 | In 深度学习 |
人脸检测和人脸对齐是搭建人脸识别模型的基础,下面将介绍一种基于深度卷积神经网络的人脸检测和对齐的方法——MTCNN。将展示MTCNN网络的结构以及利用Tensorflow实现对应的模型。
Read more »

设计模式六大原则——单一职责原则

Posted on 2019-04-18 | In 设计模式 |

单一职责原则(Single Responsibility Principle, SRP)

单一职责原则定义:就一个类而言,应该仅有一个引起它变化的原因。或者说,一个类只负责一项职责。

单一职责原则是实现高内聚、低耦合的指导方针,它是最简单又是最难用的原则。
问题提出:假如一个类负责两项职责,R1和R2。当职责R1的需求发生变化的时候,需要对该类进行修改,这个修改可能会影响到职责R2的功能。

问题解决:这个问题的解决方案是很容易想到的,即遵循单一职责原则。分别建立两个类C1和C2,分别去实现职责R1和R2。在职责R1的需求发生变化的时候,可以直接修改类C1,而不用担心R2的功能收到影响;职责R2的需求变更亦然。

软件工程真正要做的许多内容,就是发现职责并把那些职责相互分离。

Read more »

从神经元到神经网络

Posted on 2019-04-14 | In 神经网络 |
神经网络(neural networks)方面的研究很早就已经出现,今天神经网络已经出现了很多种类,比如CNN(Convolution Neural Network), RNN(Recurrent Neural Network)等等。下面将从模型神经元逐步深入到神经网络,再到如今流行的卷积神经网络,循环神经网络;还将介绍一些常见的激活函数,如:阶跃函数,Sigmoid函数, tanh函数, ReLU函数。
Read more »

Hexo配置过程中遇到的坑及解决方法

Posted on 2019-04-12 | In hexo |

1、ssh -T git@github.com出现Permission denied (publickey)

在创建执行ssh-keygen命令之后,会让你输入一个文件名(yourfilename)来保存key。
此时的文件名需要.ssh/文件夹里文件名相同,如下面的id_rsa。

1
2
3
$ ssh-keygen -t rsa -C "xxxxxxx@xx.xxx"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa):yourfilename

Read more »
12
TomCat代码小屋

TomCat代码小屋

18 posts
7 categories
33 tags
0%
© 2020 TomCat代码小屋
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4