warp

一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

蹲街弑〆低调 提交于 2021-02-11 20:31:09
一、目标检测常见算法 object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要解决的问题就是物体在哪里以及是什么的整个流程问题。 然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,更何况物体还可以是多个类别。 目前学术和工业界出现的目标检测算法分成3类: 1. 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化; 2. 候选区域/框 + 深度学习分类:通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如: R-CNN(Selective Search + CNN + SVM) SPP-net(ROI Pooling) Fast R-CNN(Selective Search + CNN + ROI) Faster R-CNN(RPN + CNN + ROI) R-FCN 等系列方法; 3. 基于深度学习的回归方法:YOLO/SSD/DenseBox 等方法;以及最近出现的结合RNN算法的RRC detection;结合DPM的Deformable CNN等 传统目标检测流程: 1)区域选择(穷举策略:采用滑动窗口,且设置不同的大小,不同的长宽比对图像进行遍历,时间复杂度高)

Warp filter moving variable out of its environment [duplicate]

点点圈 提交于 2021-02-05 12:19:19
问题 This question already has answers here : Is there another option to share an Arc in multiple closures besides cloning it before each closure? (2 answers) Closed 6 months ago . I am trying to implement a filter that sits in all my routes and extracts a header and matches a possible token to what is stored on my system. I want to implement something like the warp rejection example but I get the error expected a closure that implements the Fn trait, but this closure only implements FnOnce

特斯拉员工入职3天就“偷”代码,悄悄备份6300多Python脚本

ぐ巨炮叔叔 提交于 2021-01-29 04:35:02
贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 一名刚刚入职特斯拉的工程师,工作干了才十多天,就被公司告上了法庭。 特斯拉指控他说,从入职的第三天后,就开始盗窃公司重要的代码,将6300多个Python脚本文件上传到自己的Dropbox网盘中。 关键的是,这些代码之重要、敏感,据说可以让对手短时间“再造”一个特斯拉。 入职3天后,开始拷贝敏感文件 被指控的工程师名叫 Alex Khatilov ,去年12月28日入职特斯拉,职位是软件自动化工程师。 所谓软件自动化工程师,主要职责是负责运营维护公司的自动化流程软件。 而在特斯拉50000名左右的员工中,Alex Khatilov所在的自动化流程团队,大约有40人。 其中有权限访问底层脚本的只有8个人。 但起诉书没有说明Alex Khatilov的职位是否是这八个人之一。 总之,特斯拉内部的监测系统在今年1月6号首次检查到有未经授权的下载行为。 随后的调查中才发现,Alex Khatilov入职三天后,也就是从去年12月31日开始,往自己的云盘中拷贝了至少6300多个Python脚本文件。 当天,特斯拉就约谈了Alex Khatilov,但他坚称没有盗窃机密文件,说保存的都是和个人相关的行政类文件。 好说歹说,特斯拉终于促使Khatilov同意交出个人Dropbox的账号权限。于是,特斯拉就在云盘中找到了大量公司机密文件

(转)GEM -次表面散射的实时近似

耗尽温柔 提交于 2021-01-12 08:00:50
次表面散射( Subsurface Scattering ),简称 SSS ,或 3S ,是光射入非金属材质后在内部发生散射, 最后射出物体并进入视野中产生的现象, 即光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。 图 次表面散射原理图示 图 真实环境中的次表面散射 要产生使人信服的皮肤和其他半透明材质的渲染效果,次表面散射( Subsurface Scattering )的 渲染效果十分重要。 图 有无次表面散射的渲染对比图(左图:使用次表面散射 | 右图:无次表面散射) 另外需要提出,在《神秘海域 4 》中皮肤的渲染效果,很令人惊艳。当然,《神秘海域 4 》中 令人惊艳的,远远不止皮肤的渲染。 图 基于次表面散射的皮肤渲染 @ 《神秘海域 4 》 本章即描述了次表面散射的几种实时近似方法,关于皮肤的渲染,也关于近似地去模拟透明材 质的几种不同方法。 【核心内容提炼】 4.1 次表面散射的视觉特性( The Visual Effects of Subsurface Scattering ) 要重现出任何视觉效果,经常的做法是考察这种效果的图像,并把可视的外观分解为其组成要 素。在观察半透明物体的相片和图像时,能注意到如下几点,即次表面散射( Subsurface Scattering )的视觉特性: 1 、首先

游戏性能优化杂谈(十二)

霸气de小男生 提交于 2020-11-14 12:54:53
GPU的光栅化模块之后,是一个工作量打包模块。这个模块负责将光栅化的结果(fragment)按照一定大小(N卡:warp32,A卡:wavefront64或wavefront32)打包,然后交给下面的处理阶段(PS) 这里需要注意的一个细节是,离散化的粒度虽然最终是像素级,但是在近代GPU当中,离散化模块输出的单位却不是单个像素,而是Quad(2x2像素)。其中的一个原因(可能并不是最根本的那个原因)是单个像素无法计算ddx、ddy,从而在PS当中判断选用贴图的MIPS层级会发生困难。当然,我也怀疑这可能与GPU当中贴图单元与计算单元配比等有关,亦或是和内部带宽有关,但是无从验证。 总之,对于当前主流的GPU来说,一个三角形至少会产生一个Quad。当三角形很小面积无法覆盖一个Quad的时候,未被覆盖的那些像素(准确来说是fragment)会被标志为无效,但是坑并不会让出来。 所以对于上一篇所举的那个dither的例子,一些位置上整个Quad被mask掉,而另外一些地方其实只是Quad里面的部分像素被标志为无效。 什么意思呢?就是其实PS工作量总的来说是减少了,但是并没有减少很多。如果用GPU抓帧工具来看,会发现很多warp/wavefront里面的thread不饱满,有的甚至里面只有几个thread。 就好像公司组织去旅游,包了6辆旅游巴士,结果当天1半人取消

修图技术之瘦脸效果的实现

最后都变了- 提交于 2020-11-02 02:33:22
一、初识Canvas.drawBitmapMesh() 1、方法介绍分析 先来看看 Android API 中对 drawBitmapMesh 方法的介绍: 这个方法的参数还不少, 下面稍微讲讲几个比较重要的参数的意思: bitmap:将要扭曲的图像 meshWidth:控制在横向上把该图像划成多少格 meshHeight:控制在纵向上把该图像划成多少格 verts:网格交叉点坐标数组,长度为(meshWidth + 1) * (meshHeight + 1) * 2 vertOffset:控制verts数组中从第几个数组元素开始才对bitmap进行扭曲 Android 中的 drawBitmapMesh() 方法与操纵像素点来改变色彩的原理类似。只不过是把图像分成一个个的小块,然后通过改变每一个图像块来改变整个图像。来看看下面这张经典的图像对比: 如上图,我们将图像分割成若干个图像块,在图像上横纵方向各划分成 N-1 格,而这横纵分割线就交织成了N*N个点,而每个点的坐标将以x1,y1,x2,y2,···,xn,yn的形式保存在 verts 数组里。也就是说,verts 数组中每两个元素保存一个交织点的位置,第一个保存横坐标,第二个保存纵坐标。 而 drawBitmapMesh() 方法改变图像的方式,就是通过改变这个 verts 数组里的元素的坐标值来重新定位对应的图像块的位置

数字图像处理&OpenCV学习

为君一笑 提交于 2020-11-01 14:30:14
OpenCV仿射变换——平移 OpenCV仿射变换——平移 OpenCV仿射变换——平移 公式及原理 OpenCV函数 实现代码 代码执行效果 公式及原理 定义原坐标为(x,y),平移后(xoffect,yoffset)后的坐标为(x * ,y * ): 也就是说,原来在(x,y)位置的像素值,被平移到(x ’ ,y ’ )位置处,为方便计算机运算,可以写成矩阵样式: 在OpenCV中的防射变换矩阵 M 就是: OpenCV函数 通过cv::getAffineTransform函数得到变换矩阵 cv::Mat getAffineTransform(cv::InputArray src, cv::InputArray dst) 输入 InputArray src:表示输入的三个点 InputArray dstL:表示输出的三个点 返回 cv::Mat对象 通过cv::warpAffine得到平移或旋转的cv::Mat对象 void warpAffine(InputArray src, OutputArray dst, InputArray M, Size dsize, int flags=INTER_LINEAR, int borderMode=BORDER_CONSTANT, const Scalar& borderValue=Scalar()); src : Source

View三大流程分析

假装没事ソ 提交于 2020-10-24 01:54:02
同事件分发一样,View的三大流程也是自定义控件中要重要掌握的知识点。View的三大流程指的是测量(measure)、布局(layout)和绘制(draw),测量流程的作用是度量控件尺寸,布局流程的根据测量流程中度量的尺寸来确定控件的摆放位置,绘制流程最终将控件绘制在屏幕上。 然而,对于View和ViewGroup的三大流程具体的实现又有所不同。 测量流程:对于View来说测量过程就是简单的测量自己的尺寸,而ViewGroup因为是容器会装有子元素,它的尺寸有可能和子元素尺寸相关(如果给ViewGroup指定为wrap_content),所以ViewGroup的测量流程首先做的是度量所有子元素的尺寸,接着根据子元素的尺寸来确定自己的尺寸。根据这样的分析我们就知道了View的测量流程是它的父容器的测量流程中完成的。 布局流程:对于View来说布局流程就是确定自己的位置,而ViewGroup的布局流程首先会确定自己的位置,再确定子元素在自己中的位置。因此View的布局流程也是在ViewGroup的布局流程中完成的。 绘制流程:对于View来说绘制流程就是绘制自己的内容,而ViewGroup是容器,绘制自己没有什么意义,子元素都绘制完毕那么它也就绘制完毕了,所以它的绘制流程就是让子元素去绘制自己。所以说View的绘制流程也是在它的父容器的绘制流程中完成的。

ICRA2019 | 用于移动设备的双目立体匹配

五迷三道 提交于 2020-10-22 08:46:24
点击 上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达 作者: 红薯好吃 https://zhuanlan.zhihu.com/p/86481492 本文仅做学术分享,如有侵权,请联系删除。 2019机器人顶会ICRA一篇关于可以满足移动设备的双目立体模型 代码地址: https://github.com/mileyan/AnyNet 论文题目 《Anytime Stereo Image Depth Estimation on Mobile Devices》 论文摘要: 许多用于机器人领域的深度估计方法都对实时性有很大的需求。目前sota模型面临在精度和实时性做出平衡的问题,加快推理速度往往会导致精度大幅度下降。针对这个问题,作者提出了一种高速推理模型。该模型能够处理1242x375分辨率的双目图片,在NVIDIA Jetson TX2上达到10-35FPS。在减少两个数量级参数情况下,仅仅比SOTA精度略微下降。 方法概述 图1 图1所示,是作者提出的AnyNet预测的时间线示意图,视差是随着时间逐步优化的。这个算法可以随时返回当前最优的视差。initial estimates即使精度不高,但是足以触发避障操作,之后的更优的深度图可以为更高级的路径规划提供线索。 AnyNet整体网络示意图如图2所示: 图2 AnyNet利用U-Net架构提取多分辨率级别下的特征

qemu-pwn 强网杯 2019 两道 qemu 逃逸题 writeup

你离开我真会死。 提交于 2020-10-13 09:51:36
作者:raycp 原文链接: https://mp.weixin.qq.com/s/rJJYXIUWUh33G0KnvYT06w 终于到了这里,把qwb2019的这两题qemu逃逸题复现之后,qemu pwn的复现到这里就告一段落,接下来将会去分析几个qemu的cve。qwb初赛和决赛各有一道qemu逃逸题,初赛是 qwct ,决赛是 ExecChrome 。 因为通过前面的几题分析,对这类pwn题有了一定的掌握。部分分析过程可以省略,所以此次也是将两题写在了一起。 qwct 描述 文件目录: $ ll -rwxrw-rw- 1 raycp raycp 179 Aug 26 06 :01 launch.sh drwxr-xr-x 6 raycp raycp 4 .0K Sep 6 2017 pc-bios -rwxr-xr-x 1 raycp raycp 53M May 25 18 :07 QWCT_qemu-system-x86_64 -rw-rw-r-- 1 raycp raycp 3 .1M Aug 28 04 :42 rootfs.cpio -r-xr-xr-x 1 raycp raycp 8 .2M Jun 3 23 :37 vmlinuz-5.0.5-generic launch.sh 1 2 #!/bin/bash ./qemu-system-x86_64