计算机视觉-直线检测

复习一下hw1所需知识。

四、特征检测

1、直线检测

Hough变换

不仅限于直线和圆,许多形状都能检测。

原理

变换到参数空间。

例如图像中的直线y=ax+b,y和x是变量,参数空间中a和b是变量。直线上的各个点对应的a和b是相同的,在参数空间中表现为多条直线的交点。

RANSAC

步骤
  1. 选取一组点(直线2个点)
  2. 计算模型
  3. 计算局内点
  4. 根据局内点重新计算
图像拼接中的作用

https://zhuanlan.zhihu.com/p/338654260

https://blog.csdn.net/ak47fourier/article/details/80343372

假设img1和img2上都找到了n个关键点,并且一一对应。那么在sift描述子上选取一组点,计算出一个变换矩阵(模型)。如果img1中的关键点n1能够变换为img2中的n2关键点,则将该描述子纳入局内点。

不变性

动机

图像匹配

资料

https://zhuanlan.zhihu.com/p/208239730

https://zhuanlan.zhihu.com/p/143003200

https://zhuanlan.zhihu.com/p/96027288

区块链术语解释

仅针对比特币而言

节点不停地收到交易,验证其合法性后,将其纳入区块的计算中

挖矿:计算符合条件的sha256哈希值

区块:算出来的符合条件的哈希值,其中包含了上一区块以及许多交易

记账权——奖励

挖矿成功——铸币

区块结构:上一区块,版本,默克尔树,难度,随机数

铸币交易字段:略

哈希指针和普通指针的区别在于,哈希指针的值是通过数据计算出来的且指向数据所在位置,所以哈希指针可以告诉我们数据存储位置及数据的哈希值。而普通指针只能告诉你数据存储的位置。

计算机视觉-特征描述子

复习一下hw1所需知识。

五、特征描述子

SIFT描述子

特征提取算法(3)——SIFT特征提取算子 - keepgoing18 - 博客园 (cnblogs.com)

步骤

  1. 找到关键点
  2. 将关键点图像划分为4x4的小块,再将小块划分为4x4的小小块
  3. 对于每个小小块,计算其内部的梯度幅值和梯度方向,然后将梯度方向分成8个方向,每个方向覆盖45度,并将该方向上的梯度幅值累加起来,每个小块拥有8个方向的方向向量。
  4. 把每个小块的方向向量组成一个8维向量
  5. 所有8维向量拼接起来得到一个128维向量,这就是sift描述子

HOG描述子

HOG特征提取原理及实现 - 无趣的鱼 - 博客园 (cnblogs.com)

步骤

  1. 预处理:灰度化,gamma矫正
  2. 将图像划分为窗口(window),窗口划分为块(block),块划分为细胞(cell)
  3. 归一化
  4. 计算梯度:像素点计算梯度,判断所属方向区间(9个方向)
  5. 细胞内构建梯度直方图:像素点梯度加权统计
  6. 块内梯度直方图归一化:假设一个块有4个细胞,每个细胞9维向量,共4个9维向量
  7. 拼接生成HOG特征向量

窗口特征向量维度:窗口64x128,块8x8,细胞4x4,那么一个窗口有7x15个块,一个块有4个细胞,那么一个块就有4个9维向量,一个窗口就有7x15x4x9=3780维度的向量。

梯度只算180度,即将180度划分为9个方向,而不是360度,因为完全相反的梯度被认为是同一个梯度方向。

计算机视觉-harris算法

复习一下hw1所需知识。

四、特征检测

2、角点检测

Moravec

Harris角点检测器

原理

窗口在角点上按任意角度移动时,窗口的灰度图都会有明显的变化。

窗口滑动分别按x和y方向移动[u, v]后,灰度的变化为

${w(x,y)}$是窗口函数,二维的滤波器。

${I(x+u,y+v)}$和${I(x,y)}$分别是平移前和平移后的窗口灰度图。

再用泰勒公式${f(x+u,y+v) = f(x,y)+uf_x(x,y)+vf_y(x,y)}$ 简化为

${I_x}$和${I_y}$为x和y方向的梯度值,可以用Sobel进行计算。

接着${M}$可以用实对称矩阵对角化进一步化简:

最后根据${\lambda_1}$和${\lambda_2}$计算角点响应函数R:

k为经验常数,一般取0.04-0.06。

当R很小且小于threshold时,认为是平坦区域;

当R<0且R<threshold时,认为是边缘;

当R>0且R>threshold时,认为是角点。

步骤
  1. 计算${I_x}$和${I_y}$
  2. 计算${I_xI_y}$
  3. 把${w(x,y)}$,一般是高斯滤波器,应用到${I_x}$、${I_y}$和${I_xI_y}$上,计算$M$矩阵
  4. 计算响应值R
特性

平移不变性

旋转不变性

不满足尺度不变性

高斯差分滤波器(DoG)

尺度不变性

导师推荐了个智能合约的实习,这里补充点区块链的知识。

1
2
3
4
5
6
7
8
9
10
11
岗位要求:
1. 本科及以上学历,计算机,通讯,软件工程等相关专业;
2. 熟悉基本的数据结构和常用算法;
3. 熟练掌握一门计算机编程语言,熟悉Go/Java/Rust等语言之一者最佳;
4. 熟悉常用的Java web开发框架或Go web开发框架;
5. 熟练使用Linux操作系统的基本命令;
6. 有较好的逻辑分析,明确问题,独立解决问题的能力;
7. 了解信息安全和密码学基础知识者优先;
8. 有Fabric、Ethereum等区块链平台的使用或开发经验者优先;
9. 有智能合约虚拟机、区块链共识算法开发经验者优先;
10. 较强的团队协作能力,具有良好的执行力和责任心。

什么是区块链

new bing的解释:区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。它本质上是一个去中心化的数据库。

通俗点的解释:记账的时候我这里记录,你那里也记录,接着我们互相检查一下,没问题,这笔账就记下了。

比特币

用积分奖励提供电脑记账的人。

公链和联盟链

new bing的解释:公链和联盟链都是区块链的一种类型。公链是指公有/公共的区块链,访问与编写的权限对所有人开放。而联盟链则是机构联盟的区块链,访问与编写的权限仅对加入组织联盟的节点开放。总体来说,公链性能低,去中心化好,有激励,无准入门槛;而联盟链正好相反,性能高,去中心化差,有准入门槛。

加密技术

哈希函数(为什么这也算加密?),私钥加密,公钥加密

共识算法

new bing的解释:
区块链的共识算法有很多种,包括POW、POS、BFT等等。
其中,POW是比较常见的一种共识算法,它是通过计算机的算力来解决问题,从而获得奖励。而POS则是通过持有货币来获得权益,从而参与共识。
【深度知识】25种区块链共识算法全面详解 - 腾讯云开发者社区-腾讯云 (tencent.com)

POW

工作量证明

POS

股息证明

DPOS

委托权益证明

常用语言

GO,Solidity

流行平台

BTC,ETH,Fabric

网络流定义

流的定义

最简单的定义

通过TCP的SYN和FIN判断一条流的开始和结束

基于超时值的流定义

同一源地址与目的地址的数据包在时间上的间隔小于指定的超时值,则判断该流处于活动状态。

流的参数定义

方向性:单向or双向

单端点or双端点

端点粒度:app,终端,局域网,服务器

协议层:TCP,UDP,HTTP等等

单流的测度

根据流超时值划分为多个小流

组流:流聚合,可根据端点粒度划分

不同流的特性存在差异

聚合流的定义

流超时值的设置

过低

优点:频繁地创建和清除流的方式,需要的内存资源更少

缺点:需要更大的CPU功率和更多内存管理资源。即使观测的网络流尚未结束,流也可能判定为超时,从而产生重新建立该流导致的潜在处理延迟和处理成本。

过高

优点:较低的CPU功率和较少内存管理资源,不易发生流分裂。

缺点:容易对内存造成负担,导致流记录溢出从而丢失应有的流条目。

对特定流的优化

满足一定条件时可优化传输该流的路由资源

按协议类型划分流量

组流的一般方式

对头部进行解析,判断所属流

流记录输出判定

把部署在github page上的博客从jekyll转到hexo时遇到了一点点的麻烦。

  1. hexo的deploy和我的一开始的git产生了冲突,hexo deploy后直接重写了我的远程仓库history,导致无法merge(远程仓库只有deploy的两个commit,而本地有博客的所有commit)。最后我把.git删了,用deploy部署(它会生成一个./deploy_git文件夹,然后push这个文件夹到远端),这样就只需要hexo deploy而不用我手动同步了,但git那里会显示“发布到branch”,一点小小的不足。
  2. 在repo里设置readme,需要先在_config.yml中设置skip_render: README.md,否则会转成html格式。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

剑指offer 15——二进制中1的个数

  1. 逐位判断
  2. n=10101000,n-1=10100111;当n不为0时,执行n&(n-1),循环次数即是1的个数

剑指offer 65——不用加减乘除做加法

位运算

0%