avatar

OpenCV_Learning

计算机视觉算法—基于OpenCV 基础知识 图像基本约定俗成 图像即矩阵,一个二维向量 图像宽度对应矩阵列数 图像高度对应矩阵行数 矩阵每个元素代表一个像素 每个像素可以包含一到多个数值来对应其视觉表示, 像素的每个数值表示一个通道。 每个像素(矩阵的元素)可以是整数或者浮点数。假设一个四通道的图像使用 16位整数来表示每个通道,其深度就是16乘以4位,即64位 图像的分辨率反映了图像中的像素数量 色彩空间 灰度色彩空间 ​ 每个像素用一个8位无符号整型来表示其亮度或灰度值。这样就可以存储256级灰度,其中0对应纯黑,255对应纯白。 数值越高,像素亮度越高 RGB (Red, Green, Blue) 每个像素用三个八位整型对应其红、绿、蓝颜色分量的强度。 所有的色彩都可以由不同比例的红、绿、蓝混合而成。 HSV(Hue, Saturation, and Value) 每个像素由三个数值表示,分别代表色调(色彩),饱和度(色彩强度)和明亮度(有多亮) 色调值介于0~360度之间,用来表示该像素的色彩 CMYK OpenCV 入门 基本图像展示 1 2 3 4 5 6 7 import cv2 image = cv2.imread("1.jpg") if image is not None : cv2.imshow("image", image) cv2.waitKey() else: print("Empty image!") 图像读写 imread(img_path,flag) 读取图片,返回图片对象

Numpy_Learning

Numpy 学习 [TOC] 常量 函数 含义及其备注 np.nan 空值,np.nan!=np.nan np.isnan 返回同样维度的 boolean array np.inf 正无穷大 np.pi 圆周率 np.e 自然常数 数据类型 常见数据类型 类型 备注 说明 bool_ = bool8 8位 布尔类型 int8 = byte 8位 整型 int16 = short 16位 整型 int32 = intc 32位 整型 int_ = int64 = long = int0 = intp 64位 整型 uint8 = ubyte 8位 无符号整型 uint16 = ushort 16位 无符号整型 uint32 = uintc 32位 无符号整型 uint64 = uintp = uint0 = uint 64位 无符号整型 float16 = half 16位 浮点型 float32 = single 32位 浮点型 float_ = float64 = double 64位 浮点型 str_ = unicode_ = str0 = unicode Unicode 字符串 datetime64 日期时间类型 timedelta64 表示两个时间之间的间隔 创建数据类型 每个内建类型都有一个唯一定义它的字符代码,如下:

Mathematical_modeling 数学建模

数学建模 [TOC] 初等模型 核军备竞赛 冷战时期美苏声称为了保卫自己的安全,实行“核威胁战略”, 核军备竞赛不断升级。 随着前苏联的解体和冷战的结束,双方通过了一系列核裁军协议。 在什么情况下双方的核军备竞赛不会无限扩张,而存在暂时的平衡状态。 估计平衡状态下双方拥有的最少的核武器数量,这个数量受哪些因素影响。 当一方采取加强防御、提高武器精度、发展多弹头导弹等措施,平衡状态会发生什么变化。 模型假设 以双方(战略)核导弹数量描述核军备的大小。假定双方采取如下同样的核威胁战略: 认为对方可能发起所谓第一次核打击,即倾其全部核导弹攻击己方的核导弹基地: 己方在经受第一次核打击后,应保存足够的核导弹,给对方重要目标以毁灭性的打击。 在任一方实施第一次核打击时,假定一枚核导弹只能攻击对方的一个核导弹基地。 摧毁这个基地的可能性是常数,它由一方的攻击精度和另一方的防御能力决定。 图的模型 $ y= f(x)$~甲有$x$枚导弹,乙所需的最少导弹数(乙安全线) $x = g(y)$~乙有$y$枚导弹,甲所需的最少导弹数 (甲安全线) 当$x =0$,$y = y_0$, $y_0$~乙方的威胁值 $y_0$~甲方实行第一次打击后已经没有导弹,乙方为毁灭甲方工业、交通中心等目标所需导弹数。 $y = f(x)$ 是一条上凸曲线,若非上凸曲线,图2无交点 分析模型 乙方残存率$s $~甲方一枚导弹攻击乙方一个基地,基地未被摧毁的概率。 $x < y$ 甲方以$x$枚导弹攻击乙方$y$个基地中的$x$个,$sx$个基地未被摧毁, $y - x$个基地未被攻击。 $y_0 = sx + y - x$ => $y = y_0 + (1-s)x$ $x =y$

FCN_paper

FCN (Fully Convolutional Networks) [TOC] 概念辨析 语义分割:不同的目标上不同的颜色 实例分割:只关注我关心的东西(汽车,行人) 其他为背景,统一为黑色 全景分割: 语义分割和实例分割的结合 难度层层递进 全局信息与局部信息 局部信息 全局信息 提取位置 浅层网络中提取局部信息 深层网络中提取全局信息 特点 物体的几何信息比较丰富,对应的感受野较小 物体的空间信息比较丰富,对应的感受野较大 目的 有助于分割尺寸较小的目标,有利于提高分割精确程度 有助于分割尺寸较大的目标,有利于提高分割的精确程度 论文结构 核心思想 构建 fully convolutional, 输入任意大小,并输出相应尺寸的输出。 关键点 skip architecture 结合来自深层的语义信息和来自浅层的表征信息 先验知识 感受野 是对应原图的区域大小,而不是对应上一层 在卷积神经网络中,决定某一层输出结果中一个元素所对应的输出层的区域大小。 $ RF_{l+1} = RF_l + (kernel_size-1)\times stride$ 大感受野的效果要比小感受野的效果更好。 由公式可见,stride越大,感受野越大。 但是过大的stride会使feature map保留的信息变少。

Hands on Data Analysis

动手数据分析笔记 第一章 第一节 数据载入及初步观察 数据载入 1 2 3 df = pd.read_csv('file_path') df2 = pd.read_table('file_path') read_csv 函数 见CSDN 博客: https://blog.csdn.net/weixin_39175124/article/details/79434022 问:read_csv 和 read_table 区别? 函数 说明 read_csv 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号 read_table 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符('\t’) read_fwf 读取定宽列格式数据(也就说,没有分隔符) read_clipboard 读取剪贴板中的数据,可以看作read_table的剪贴板,在将网页转换为表格时很有用。 问:什么是逐块读取?为什么要逐块读取呢? 1 chunker = pd.read_csv('train.csv', chunksize=1000) 有chunksize参数可以进行逐块加载。经测试,它的本质就是将文本分成若干块,每次处理chunksize行的数据,最终返回一个TextParser对象 1 2 3 4 5 6 chunker = pd.

Tensorflow2_CH1

Tensorflow 2.x B站视频: BV1zE411T7nb Hello, World! 1 2 3 4 5 6 7 8 9 model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer='sgd', loss='mean_squared_error') xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float) model.fit(xs, ys, epochs=500) print(model.predict([10.0])) Example 1: recognize shoes and t-shirts 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 # 导入相关包 import keras import tensorflow as tf import numpy as np #写回调类 class myCallback(tf.