前沿: 最近一直在可java,在用三角函数(其实,js里面也有),弧度和角度一些东西忘记了,小学没有学好。今天特地翻阅了一些资料,整理了一下三角函数弧度和角度之间的关系

角的两种单位

  1. “ 弧度”和“度”是度量角大小的两种不同的单位。就像“米”和“市尺”是度量长度大小的两种不同的单位一样。
  2. 在flash里规定:在旋转角度(rotation)里的角,以“度”为单位;而在三角函数里的角要以“弧度”为单位。这个规定是我们首先要记住的!!!例如:rotation2--是旋转“2度”;sin(π/2)--是大小为“π/2弧度”的角的正弦。

两种定义

度的定义

阅读全文 »

zdaiot.github.io为例介绍github子模块的使用。

添加子模块

例如:

1
2
git init
git submodule add git@github.com:zdaiot/hexo-theme-next.git themes/next

更新子模块

将配置好的主题覆盖该目录

1
2
3
4
cd themes/next
git add .
git commit -m "next settings in fork next rep"
git push origin master //这是提交到fork后主题的仓库

阅读全文 »

针孔相机模型

先简单说一下针孔摄像机的原理。成像平面(有的地方也称投影平面)到小孔的距离为焦距$f$,物体到小孔的距离为$Z$,其中物体和投影是倒立相似的关系,下图为针孔摄像机的实际物体投影到成像平面的示意图:

如果按照实际的投影关系建立坐标系,那么投影坐标和物体坐标的符号总是相反的,考虑起来不太方便,于是在“数学上”把成像平面平移到其关于小孔对称的位置,这样投影坐标和物体坐标符号就相同了,示意图如下:

阅读全文 »

对比判别式模型生成式模型
特点寻找不同类别之间的最优分类面,反映异类数据之间的差异对后验概率建模,以统计的角度表示数据的分布情况,能够反映同类数据本身的相似度
区别(假如输入特征x,类别标签y)估计的是条件概率分布 `P(yx)`估计的是联合概率分布 P(x,y)
联系由判别式模型不能得到生成式模型由生成式模型可以得到判别式模型(贝叶斯公式)
优势(1)能清晰地分辨出多类或某一类与其他类之间的差异特征;(2)适用于较多类别的识别;(3)模型更简单(1)研究单类问题比判别式模型更灵活;(2)模型可以通过增强学习得到;(3)能用于数据不完整的情况。
缺点不能反映训练数据本身的特性。能力有限,可以告诉你的是1还是2,没法把整个场景描述出来学习和计算过程比较复杂
性能较好(因为利用了训练数据的类别标识信息)较差
常见模型举例KNN,SVM,决策树,线性回归,LR,boosting,线性判别分析(LDA),条件随机场,感知机,传统神经网络朴素贝叶斯,隐马尔科夫模型,高斯混合模型,限制玻尔兹曼机
主要应用场景图像文本分类,时间序列预测NLP,医疗诊断

总结一句话,生成模型是预测联合概率分布,判别模型则直接预测出结果。

启用win10子系统

系统升级到一周年正式版及以上(1607)。按照下图,依次在 设置 - 更新与安全 - 针对开发人员 选项中,启用”开发人员模式“。主要需要打开win10自动更新(默认打开)。会下载并安装一段时间,等安装完毕再进行下一步。

在资源管理器中打开 控制面板\所有控制面板项\程序和功能 , 打开 启用或关闭 Windows功能 , 勾选 适用于Linux的Windows子系统(Beta)

阅读全文 »

结构体定义

C结构体定义方式一

在C中定义一个结构体类型用typedef:

1
2
3
4
typedef struct Student
{
int a;
}Stu;

上面的Student是标识符,Stu是变量类型(相当于(int,char等))。    
于是在声明变量的时候就可:

1
2
Stu stu1; // 方法一
struct Student stu1; // 方法二

这里的Stu实际上就是struct Student的别名。Stu==struct Student

阅读全文 »

在计算机系统,特别是嵌入式系统中,内存资源是非常有限的。尤其对于移动端开发者来说,硬件资源的限制使得其在程序设计中首要考虑的问题就是如何有效地管理内存资源。本文是作者在学习C语言内存管理的过程中做的一个总结,如有不妥之处,望读者不吝指正。

因为不同的编译器和平台,对于内存的管理(段的划分)不尽相同,所以这里以 Linux 为参考总结C语言的内存管理

几个基本概念

在C语言中,关于内存管理的知识点比较多,如函数、变量、作用域、指针等,在探究C语言内存管理机制时,先简单复习下这几个基本概念:

变量

阅读全文 »

准备工作

开启core, 采集程序崩溃的状态

首先你跟着我做开启core崩溃状态采集. 可以通过ulimit -c查看,如果是0表示没有开启. 开启按照下面操作:

1
sudo gedit /etc/profile

/etc/profile最后一行添加下面几句话设置全局开启 core文件调试,大小不限.

1
2
# No core files by default 0, unlimited is oo
ulimit -S -c unlimited > /dev/null 2>&1

最后立即生效.

1
source /etc/profile

阅读全文 »

本文内容大多来源于CMake 入门实战,并加入自己的笔记。

什么是 CMake

你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

CMake就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTKITKKDEOpenCVOSG 等。

在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:

阅读全文 »