阈值

OpenCV-Python学习笔记4:图像阀值

天大地大妈咪最大 提交于 2020-03-19 21:29:39
参考:Opencv官方教程 1、简单阀值 cv2.threshold , cv2.adaptiveThreshold 当像素值高于阀值时,我们给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。这个函数就是cv2.threshold()。这个函数的第一个参数就是原图像,原图像应该是灰度图。第二个参数就是用来对像素值进行分类的阀值,第三个参数就是当像素值高于(或者小于)阀值时,应该被赋予新的像素值。OpenCV提供了多种不同的阀值方法,这是有第四个参数来决定的。方法包括: cv2.THRESH_BINARY cv2.THRESH_BINARY_INV cv2.THRESH_TRUNC cv2.THRESH_TOZERO cv2.THRESH_TOZERO_INV import cv2 import numpy as np import matplotlib as mlp mlp.use('TkAgg') from matplotlib import pyplot as plt img = cv2.imread('./opencv_learn/image2.jpg',0) ret, thresh1 = cv2.threshold(img, 127,255,cv2.THRESH_BINARY) ret, thresh2 = cv2.threshold(img

【模型压缩】Channel Pruning via Optimal Thresholding

荒凉一梦 提交于 2020-03-17 06:24:48
论文链接: https://arxiv.org/pdf/2003.04566.pdf 动机: 现在压缩工作中,通过预定义的度量(metric)计算出的阈值进行模型剪枝,这种阈值忽略了不同层的变化和权值分布的不同,所以这种剪枝方法通常过剪枝和欠剪枝得到一个次优的结果。本篇论文中,作者提出了一个方法:最优阈值(OT,Optimal Thresholding),每层剪枝使用不同的阈值。通过使用OT,保证精度的同时,可以有效减掉那些不重要的通道; 方法: Training with Sparsity 图2是个典型的剪枝过程,在图2中,作者首先要解决稀疏约束问题: L,R,Θ分别是loss函数,用于稀疏的回归项,和训练参数。回归项用于减少模型尺寸约束的复杂度,计算和内存消耗。使用L1回归在bn层的scaling factors上, Γ是scaling factor是的集合,λ控制稀疏的程度,|r|即为L1正则化,r是BN层参数scaling factor; Distribution of Scaling Factors 为了解决过剪枝和欠剪枝问题,网络层不同的分布也是一个预定义阈值的问题。拿VGG-14的第7和第10个bn层,重要权值的分组不是一致的;通过使用一个全局阈值,对于数值较小的scaling factors而言,属于一个灾难。例如作者想使用NS【14】剪枝73%

乳酸阈值心率

跟風遠走 提交于 2020-03-16 18:08:21
乳酸阈值心率: ​ a: 205.8减去0.685乘年龄。这是目前误差最小的算法,正负6.46pm ​ b: a的数据乘以0.9,90%最大功率就是要对自己负责的运动安全边际。 ​ c: 如果休息不好心脏负担重的情况下,70%最大心率都会导致风险 ​ d: 运动过程中接近这个临界值必须有专业人士做安全辅助,因为这是机体极限,突破阈值持续时间过长会危及生命。 来源: CSDN 作者: MicroHarvester 链接: https://blog.csdn.net/weixin_43742062/article/details/104822704

jdk8中的metaspace

被刻印的时光 ゝ 提交于 2020-03-10 20:07:39
概述 metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所致,看到大家讨论来讨论去,看得出很多人对metaspace还是模棱两可,不是很了解它,因此我觉得有必要写篇文章来介绍一下它,解开它神秘的面纱,当我们再次碰到它的相关问题的时候不会再感到束手无策。 通过这篇文章,你将可以了解到 为什么会有metaspace metaspace的组成 metaspace的VM参数 jstat里我们应该关注metaspace的哪些值 为什么会有metaspace metaspace的由来民间已有很多传说,不过我这里只谈我自己的理解,因为我不是oracle参与这块的开发者,所以对其真正的由来不怎么了解。 我们都知道jdk8之前有perm这一整块内存来存klass等信息,我们的参数里也必不可少地会配置-XX:PermSize以及-XX:MaxPermSize来控制这块内存的大小,jvm在启动的时候会根据这些配置来分配一块连续的内存块,但是随着动态类加载的情况越来越多,这块内存我们变得不太可控,到底设置多大合适是每个开发者要考虑的问题,如果设置太小了,系统运行过程中就容易出现内存溢出,设置大了又总感觉浪费,尽管不会实质分配这么大的物理内存。基于这么一个可能的原因

自定义错误界面404

你离开我真会死。 提交于 2020-03-10 04:34:43
解决IE下自定义HTTP错误页太小不显示并导致显示默认友好错误页问题 我看到了这么一句话Ticket #11289, IE bug fix: always pad the error page with enough characters such that it is greater than 512 bytes, even after gzip compression,貌似和IE什么Bug有关系,立即Google之,找到了WordPress原先的Bug处理页 《Internet Explorer, 512-byte error page fix doesn’t work. Neglects gzip compression.》 。 通过上述描述得知当自定义HTTP错误页(Custom HTTP Error Page)体积过小,小于一个临界阈值(thresholds)时,IE浏览器将自动以内部错误页面(Microsoft-stylin’ error page)来取代你的自定义错误页。 什么意思呢?首先我们要理解什么是自定义HTTP错误页。当然要理解HTTP状态码(HTTP Status Code),比如说我们找不到页面时服务器将返回一个404状态码,表示找不到页面,当我们进行301或者302重定向时也是通过这个状态码来进行,当然还要有一些附加信息,比如状态

OpenCV自适应阈值化函数adaptiveThreshold

南楼画角 提交于 2020-03-07 03:26:19
图像阈值化的一般目的是从灰度图像中分享目标区域和背景区域,然而仅仅通过设定固定阈值(固定阈值的求解可点此查看我写的博文)很难达到理想的分割效果。在实际应用中,我们可以通过某个像素的邻域以某种方法确定这个像素应该具有的阈值,进而保证图像中各个像素的阈值会随着周期围邻域块的变化而变化。在灰度图像中,灰度值变化明显的区域往往是物体的轮廓,所以将图像分成一小块一小块的去计算阈值往往会得出图像的轮廓,而固定阈值的方法就不行。 OpenCV中提供了自适应阈值化函数adaptiveThreshold来实现自适应阈值处理、 函数adaptiveThreshold的原型如下: C++: void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C); 官方说明 int main(int argc, char* argv[]) { // 图像读取及判断 cv::Mat srcImage = cv::imread("2.jpg"); if (!srcImage.data) return 1; // 灰度转换 cv::Mat srcGray; cv::cvtColor(srcImage,

slab、slub内存管理与泄漏分析

☆樱花仙子☆ 提交于 2020-03-06 15:51:49
经典博客 类型 文章 slab、slub的关系 SLUB和SLAB的区别 系统性介绍kernel内存泄漏检测 Linux内存管理 (22)内存检测技术 、 Linux内存使用情况以及内存泄露分析之工具与方法 drop_cache应用 liunx的Slab占用比较高的问题 slub、slab内存泄漏诊断有区别 https://blog.csdn.net/dolp怎样诊断SLAB泄露问题 判断slub、slab是否内存泄漏 linux通过meminfo 与 slab 定位内存泄漏 实例 认识Kernel 内存泄漏 、 slub泄露分析 工具介绍与使用 kmemleak的使用 触发slab回收 博文: https://www.iteye.com/blog/fengbin2005-2218722 上文排查到Linux系统中有大量的dentry_cache占用内存,为什么会有如此多的dentry_cache呢? 首先,弄清楚dentry_cache的概念及作用:目录项高速缓存,是Linux为了提高目录项对象的处理效率而设计的;它记录了目录项到inode的映射关系。因此,当应用程序发起stat系统调用时,就会创建对应的dentry_cache项(更进一步,如果每次stat的文件都是不存在的文件,那么总是会有大量新的dentry_cache项被创建)。 当前服务器是storm集群的节点

目标检测中一些性能指标的含义

血红的双手。 提交于 2020-03-04 23:49:42
1. TP、FP、TN、FN的含义 对于一个二分类的预测来说,情况可以描述如下: 真实情况 预测结果 预测为正 预测为反 正例 TP(对正例) FN(错反例) 反例 FP(错正例) TN(对反例) TP( True Positives):预测它是正样本,预测 对 了; TN( True Negatives):预测它是负样本,预测 对 了; FP( False Positives):预测它是正样本,预测 错 了; FN( False Negatives):预测它是负样本,预测 错 了。 2. Precision(精度,查准率)和Recall(召回率,查全率)的概念 P r e c i s i o n = T P T P + F P Precision=\frac {TP}{TP+FP} P r e c i s i o n = T P + F P T P ​ 理解为:在分类器预测的所有正例中,预测正确的占多少比例(找得准); R e c a l l = T P T P + F N Recall=\frac {TP}{TP+FN} R e c a l l = T P + F N T P ​ 理解为:一共有这么多正例,分类器找出了其中的百分之多少(找得到); 由于所有情况组成的全集是 T P + F N + F P + T N TP+FN+FP+TN T P + F N + F P + T

Wellner 自适应阈值二值化算法

会有一股神秘感。 提交于 2020-03-04 19:16:11
参考文档: Adaptive Thresholding for the DigitalDesk.pdf       Adaptive Thresholding Using the Integral Image.pdf 一、问题的由来 一个现实: 当用照像机拍摄一副黑纸白字的纸张时,照相机获得的图像并不是真正的黑白图像。不管从什么角度拍摄,这幅图像实际上是灰度或者彩色的。除非仔细的设置灯光,否则照相机所拍摄的放在桌子上的纸张图像并不能代表原始效果。不像在扫描仪或打印机内部,想控制好桌子表面的光源是非常困难的。这个开放的空间可能会受到台灯、吊灯、窗户、移动的影子等影响。人类的视觉系统能自动补偿这些,但是机器没有考虑到这些因素因此拍出的效果会很差。 这个问题在处理那种高对比度的艺术线条或文字时尤为突出,因为这些东西都是真正的黑色或白色。而摄像头会产生一副具有不同等级的灰度图像。许多应用都必须清楚的知道图像的那一部分是纯黑或纯白,以便将文字传递给OCR软件去识别。这些系统无法使用灰度图像(典型的是8位每像素),因此必须将他们转换为黑白图像。这有很多种方式去实现。在某些情况下,如果这些图像最终是给人看的,这些图像会使用一些抖动技术,以便使他们看起来更像灰度图像。但是对于机器处理的过程,比如文字识别,选择复制操作,或多个图像合成,系统就不可以使用抖动的图像。系统仅仅需要简单的线条

HashMap源码深度解析

大城市里の小女人 提交于 2020-03-04 18:20:07
HashMap源码深度解析 一、重新认识HashMap 什么是HashMap? HashMap底层基于散列(Hash)算法,采用hash表实现键值对集合,继承了AbstractMap,实现了Map接口。最早出现在jdk1.2,允许null键和null值,null键的哈希值为0。需要注意的是HashMap不保证键值对顺序,同时非线程安全。 长啥样? 散列算法分为散列再探测和拉链式,HashMap采用的是拉链式,并在jdk1.8后使用红黑树优化长度大于等于8的链表。也就是说,目前HashMap底层数据结构为: 数组+链表+红黑树 。 数据结构如下图: 如上图所示,HashMap的数据结构采用数组和单链表(或者红黑树)组成,在进行增删改查时首先根据要查找元素的hash值定位到元素所在的数组下标(也称为桶),然后再根据这个桶所存储的元素的类型(单个node,单链表或红黑树)来找到该元素。 当单链表长度大于等于8时,转化为红黑树;当红黑树长度小于6时红黑树转化为链表。 HashMap特点 可以接受null键和null值,null键的hash值时0; 元素无序,可以序列化,线程不安全; 添加,查询的时间复杂度基本都是O(1); 存储元素时,根据键的hash值找到对应的桶。如果出现不同的对象计算出来的hash值相同,也就是hash冲突。为了解决这个问题