-
概述 YUV是一种图像编码方式,或者称为色彩空间,与RGB是同级的概念. YUV是三个分量,Y,U和V,其中: Y 表示明亮度(Luminance或Luma),也就是灰度值, U,V表示色度,浓度(Chrominance、Chroma),可以简单理解成用来表示某个像素的颜色的量. YUV格式的特点是,在对照片或影片编码时,考虑到人类的感知能力,允许降低色度的带宽。 也就是说,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。 其中YCbCr是YUV压缩和偏移的版本。YCbCr的Y与YUV中的Y含义一致,Cb和Cr与UV同样都指色彩,Cb指蓝色色度,Cr指红色色度,在应用上很广 …
Read More -
动机 将一张图分成多个grid cell进行检测之后,每个cell只能检测到一个object. 如果这个grid cell中不止有一个物体要怎么办呢? 因此提出了anchor box algorithm来解决这个问题. 什么是anchor anchor其实就是一组预设的参考框,每个框有不同的长宽比和大小. 提供参考框可以将问题转换为"这个固定参考框中有没有认识的目标,目标框偏离参考框多远". 这样如果一个grid cell中有多个物体,那么就可以形状最姐姐的anchor box来负责检测该物体. anchor的其他用途 实际上当grid cell很多的时候,一个grid cell中有多个object的情况是很少 …
Read More -
对象检测(Object Detection)的目的是”识别对象并给出其在图中的确切位置”,其内容可解构为三部分: 识别某个对象(Classification); 给出对象在图中的位置(Localization); 识别图中所有的目标及其位置(Detection)。 本文将介绍滑动窗口这一方法. 滑动窗口 滑动窗口是这些方法中最暴力的一个.简单来说,就是暴力枚举侯选框的尺寸和位置,每次crop得到一张小图,将每个小图送进后面的分类器进行分类. 早年后面通常会接一个计算量比较小的分类器,比如SVM,随着算力的提升,现在常常后面会接CNN. 值得一提的是,原始的滑动窗口方法是将每个小图,分别放入后面的分类器.但是实际上,小图和小图之 …
Read More -
写在毕业一年之后
Jun 29, 2019 · 1 min read转眼毕业一整年了,是时候做一个复盘了。 依稀记得刚入职的时候leader提醒我要有职业规划时的场景。总体来说,这一年虽然没有完全走在最正确的路线上,但是大方向应该没有太偏。 工作之中 其实前半年做的事情非常杂,c++,java,爬虫,前端... 技术的广度和深度,我个人觉得是深度更重要的。 但是在规模不够大的公司,很多时候不得已去现学一些个人技术栈以外的东西。好在后半年以及之后的工作都会比较focus. 总体来说,这一年里主要是如下技能得到了一些提升: c++/cuda 图像编解码 CV算法 还点了一些奇奇怪怪的技能点,我觉得算不上什么竞争力,就不写了。 工作之外 这一年里,工作之外,主要做了两个方面的事情。 第一个方面补了一下 …
Read More -
在steam上买了 BattleBlock Theater, 官方说支持linux,但是却无法启动。 在steam里启动看不到log,于是找到游戏的安装目录。 /home/coder/.steam/steam/steamapps/common/BattleBlock Theater 在终端下启动,报错: BattleBlockTheater: /media/BGBS/BBT_Linux/Core/MemorySystem.cpp:161: void* MemoryBlock::Alloc(unsigned int): Assertion `(!"Got request for zero bytes!")' …
Read More -
JOS的environments基本可以理解成"process"进程的同义词,但是由于"process"是一个unix术语,因此使用environment这个词. Part A: User Environments and Exception Handling 查看 kern/env.c文件,看到三个全局变量: 1 struct Env *envs = NULL; // All environments 2 struct Env *curenv = NULL; // The current env 3 static struct Env *env_free_list; // Free …
Read More -
CSAPP第二章的内容以前组成原理基本都学过...所以就简单翻了翻。 对应的lab是用位运算实现各种有的没的... 题目基本都很tricky... 除了用到一些常规的位运算性质,还用到了一些奇怪的条件: * ~0x7FFFFFFF = 0x7FFFFFFF + 1 * 0xFFFFFFFF +1 = 0x00000000 * 0 == ~0+1 唯一让我觉得比较有趣的是how many bits这道题 题目要求是给一个32-bit signed int,问最少用多少位能得到它的补码表示。 考虑正数,显然,高位的连续的多个0是不必要的,只需要一个符号位的0即可。 那么对于负数,**高位的连续的多个1也是不必要的。 **原因 …
Read More -
系统版本为Manjaro 18.0.3 Illyria 运行文明5比较容易,只需要设置启动选项为: LD_PRELOAD=/usr/lib32/libopenal.so.1 %command% 文明6运行会报错 undefined symbol: FT_Done_MM_Var 解决办法是 在终端中用如下办法运行steam: LD_PRELOAD=/usr/lib/libfreetype.so steam 参考链接
Read More -
**Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines. ** halide有两个特性比较吸引人。一个是对于各种平台架构的支持。 * CPU architectures: X86, ARM, MIPS, Hexagon, PowerPC * Operating systems: Linux, Windows, macOS, Android, iOS, Qualcomm QuRT * GPU …
Read More