Snake

Deep Snake : 基于轮廓调整的SOTA实例分割方法,速度32.3fps | CVPR 2020

江枫思渺然 提交于 2020-05-01 13:33:48
论文提出基于轮廓的实例分割方法Deep snake,轮廓调整是个很不错的方向,引入循环卷积,不仅提升了性能还减少了计算量,保持了实时性,但是Deep snake的大体结构不够优雅,应该还有一些工作可以补,推荐大家阅读   来源:晓飞的算法工程笔记 公众号 论文: Deep Snake for Real-Time Instance Segmentation 论文地址: https://arxiv.org/abs/2001.01629 论文代码: https://github.com/zju3dv/snake/ Introduction   实例分割是许多计算机视觉任务中的重要手段,目前大多数的算法都采用在给定的bbox中进行pixel-wise分割的方法。受snake算法和Curve-GCN的启发,论文采用基于轮廓的逐步调整策略,提出了Deep snake算法进行实时实例分割,该算法将初始轮廓逐渐优化为目标的边界,如图1所示,达到很好的性能且依然保持很高的实时性(32.3fps)。   论文的主要贡献如下: 提出基于学习的snake算法用于实时实例分割,对初始轮廓调整至目标边界,并且引入循环卷积(circular convolution)进行轮廓特征的学习。 提出two-stage流程进行实例分割,先初始化轮廓再调整轮廓,两个步骤均可以用于修正初始定位的误差。 Deep

贪吃蛇_C实现 (初学者) (o゚▽゚)o

不打扰是莪最后的温柔 提交于 2020-04-23 01:51:06
我是刚入坑不久的,贪吃蛇算是我第一个用C写出来的小游戏 这个程序里并没有什么难懂的部分,大多都是刚开始学就接触到的,so 加油吧! 源代码在文章的末尾. 效果图就不上了 (〃'▽'〃) 首先, 来确定我们所需的头文件 #include <time.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <windows.h> <time.h>  这是我们在之后生成随机食物坐标时,用来以时间来生成随机数种子所需的头文件 <conio.h>  这个是 gotoxy()函数 所需的头文件 至于其他的应该都明白的. 接下来, 定义我们需要的常量和全局变量 //常量 // 蛇的行进状态 U:上 D:下 L:左 R:右 #define U 1 #define D 2 #define L 3 #define R 4 // 全局变量的设定 int state; // 当前蛇的状态 int wall_x= 1 ,wall_y= 1 ,wall_x1= 97 ,wall_y1= 25 ; // 围墙的坐标 int speed = 200 ; // 蛇每一次运行的时间间隔 int snake_x= 6 ,snake_y= 5 ; // 蛇头的坐标 int food_x,food_y; // 食物的坐标 int path

JSON命名约定[关闭]

*爱你&永不变心* 提交于 2020-03-14 12:13:56
JSON命名是否有标准? 我看到大多数使用由下划线(lower_case)分隔的小写的示例。 但是,你可以使用PascalCase或camelCase吗? #1楼 在本文档中, Google JSON样式指南 (在Google上构建JSON API的建议), 它建议: 属性名称必须是 camelCased ,ASCII字符串。 第一个字符必须是字母,下划线(_)或美元符号($)。 例: { "thisPropertyIsAnIdentifier": "identifier value" } 我们的团队使用此惯例。 #2楼 特别是对于我在NodeJS上,如果我正在使用数据库并且我的字段名称是下划线分隔,我也在结构键中使用它们。 这是因为db字段有很多首字母缩略词/缩写,所以像 appSNSInterfaceRRTest 看起来有点乱,但 app_sns_interface_rr_test 更好。 在Javascript变量中,所有camelCase和类名(构造函数)都是ProperCase,所以你会看到像 var devTask = { task_id: 120, store_id: 2118, task_name: 'generalLedger' }; 要么 generalLedgerTask = new GeneralLedgerTask( devTask ); 当然

优雅的Python函数将CamelCase转换为snake_case?

ぃ、小莉子 提交于 2020-03-06 21:35:26
例: >>> convert('CamelCase') 'camel_case' #1楼 我已经很幸运了: import re def camelcase_to_underscore(s): return re.sub(r'(^|[a-z])([A-Z])', lambda m: '_'.join([i.lower() for i in m.groups() if i]), s) 如果您愿意的话,显然可以对速度进行 一 点点优化。 import re CC2US_RE = re.compile(r'(^|[a-z])([A-Z])') def _replace(match): return '_'.join([i.lower() for i in match.groups() if i]) def camelcase_to_underscores(s): return CC2US_RE.sub(_replace, s) #2楼 不在标准库中,但是我发现 此脚本 似乎包含您需要的功能。 #3楼 有趣的是: >>> def un_camel(input): ... output = [input[0].lower()] ... for c in input[1:]: ... if c in ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'): ... output

2020Intellij IDEA 实用插件推荐必看!

安稳与你 提交于 2020-03-06 16:04:19
1. 前言 2020 年 JVM 生态报告 可以看出 Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。 IDEA 的优良设计保证了编程的生产力,也是我情愿为之付费的软件之一。今天把我自己经常用的一些插件拿出来分享一波。 2. IDEA 插件 分享之前我们来看看其插件体系。 Intellij IDEA 大部分功能是通过插件集成进来的。默认情况下已经集成了很多插件。你可以通过 Preferences 查看: Intellij IDEA 为人诟病的是性能问题,我们可以禁用一些我们不用的自带插件减轻负担。接下来我把我必备插件分享出来。 3. 常用插件 你可以在上图 Plugins 选项卡 的搜索中输入插件的关键字来搜索到它们。 3.1 Key promoter X 很多人不愿意切换 IDE 就是因为快捷键的习惯问题。刚好这个插件可以提醒快捷键,有代入感,提醒的多了你就会了。对于新手建议安装熟悉一下快捷键。 3.2 Maven Helper 旗舰版也就是收费版自带有 Maven 模块,但是如果你是免费的社区版这个是唯一的替代选择,让你拥有依赖分析和依赖冲突快速解决的能力。 3.3 IDEA Mind Map 思维导图对于我们需求分析和知识库关系梳理十分重要。有了这个插件以后 IDEA 也可以画思维导图了。而且功能还十分强大

TypeScript基础入门

六月ゝ 毕业季﹏ 提交于 2020-03-02 18:14:45
转载 TypeScript基础入门 - 类 - 继承 项目实践仓库 https:// github.com/durban89/typescript_demo.git tag: 1.1.0 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接运行看到输出的结果。 npm install -D ts-node 后面自己在练习的时候可以这样使用 npx ts-node 脚本路径 类 继承 在TypeScript里,我们可以使用常用的面向对象模式。 基于类的程序设计中一种最基本的模式是允许使用继承来扩展现有的类。看下面的例子: class Animal { move(distanceMeter: number = 0) { console.log(`Animal moved ${distanceMeter}m`); } } class Dog extends Animal { bark() { console.log('Woof........!'); } } const dog = new Dog(); dog.bark(); dog.move(3); dog.bark(); 运行后得到如下结果 $ npx ts-node src/classes_2.ts Woof........! Animal moved 3m Woof........!

一步步教你怎么用python写贪吃蛇游戏

老子叫甜甜 提交于 2019-12-27 20:03:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇),那再合适不过了🤣🤣🤣 先通过下面这个效果图来感受下吧! 1 环境 操作系统:Windows Python版本:3.7.3 2 需求分析 我们先来回顾下贪吃蛇中的游戏元素及游戏规则。 首先呢,需要有贪吃蛇、有食物;需要能控制贪吃蛇来上下移动获取食物;贪吃蛇在吃取食物后,自身长度增加,同时食物消失并随机生成新的食物;如果贪吃蛇触碰到四周墙壁或是触碰到自己身体时,则游戏结束。 游戏规则就是这么简单,接下来我们借助一个第三方库pygame来实现它。 Pygame是一个利用SDL库的游戏库, 是一组用来开发游戏软件的 Python 程序模块。 SDL(Simple DirectMedia Layer)是一个跨平台库,支持访问计算机多媒体硬件(声音、视频、输入等),SDL非常强大,但美中不足的是它是基于 C 语言的。 PyGame是 SDL 库的 Python 包装器(wrapper),Pygame 在SDL库的基础上提供了各种接口

Python中变量和函数名称的命名约定是什么?

人走茶凉 提交于 2019-12-23 22:50:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 来自C#背景,变量和方法名称的命名约定通常是camelCase或PascalCase: // C# example string thisIsMyVariable = "a" public void ThisIsMyMethod() 在Python中,我已经看到了上面的内容,但我也看到了使用下划线: # python example this_is_my_variable = 'a' def this_is_my_function(): Python有更优选的,明确的编码风格吗? #1楼 请参阅Python PEP 8 。 函数名称应为小写,并根据需要用下划线分隔,以提高可读性。 只有在已经成为流行风格的情境中才允许使用mixedCase 变量... 使用函数命名规则:小写,必要时用下划线分隔,以提高可读性。 就个人而言,我与此不同,因为我也喜欢 mixedCase 在 lower_case 为我自己的项目。 #2楼 编码风格通常是组织内部策略/约定标准的一部分,但我认为通常,all_lower_case_underscore_separator样式(也称为snake_case)在python中最常见。 #3楼 正如其他答案所示,有 PEP 8 ,但PEP 8只是标准库的样式指南,并且它仅作为福音。 PEP

IntelliJ IDEA 社区版使用指南

[亡魂溺海] 提交于 2019-12-06 14:16:50
由于IDEA的专业版商用是需要付费的,所以不建议大家在工作中使用破解的软件,这样无助于IDEA变得更好。但是大家完全可以使用社区版,最棒的就是大家都可以贡献插件,本文从性能调优和安装插件两个方面来阐述社区版在使用过程中需要如何操作。 0.写在前面   首先,IntelliJ IDEA 社区版可以商用,在官网中我们能看到如下的声明:   其英文内容为: It can also be used for commercial development. 。在此,我对于 JET BRAINS 致以崇高敬意! 1.性能调优   由于IDEA要满足大部分电脑,故配置的jvm参数会较低,对于大部分性能很好的电脑,这样的参数是不适用的,故需要调整文件 IntelliJ IDEA Community Edition 2019.3/bin/idea64.exe.vmoptions -Xms512m -Xmn512m -Xmx2048m   更加详细的调优,请参考 记一次idea性能调优 2.安装 Spring Assistant 插件   很多人抱怨说社区版没有专业版中的 springboot 项目的创建向导,安装此插件后就有了。 3.其它你需要安装的插件 我强烈建议您在开发过程中使用如下插件: 插件名称 用途 Lombok 便捷编程必备,不必手写Getter Setter等方法 Properties

IntelliJ IDEA 社区版使用指南

谁说胖子不能爱 提交于 2019-12-06 09:57:25
IDEA的专业版商用是需要付费的,不建议大家在工作中使用破解的软件。大家完全可以使用社区版,最棒的就是大家都可以贡献插件,本文从性能调优和安装插件两个方面来阐述社区版在使用过程中需要如何操作。 0.写在前面   首先,IntelliJ IDEA 社区版可以商用,在官网中我们能看到如下的声明:   其英文内容为: It can also be used for commercial development. 。在此,我对于 JET BRAINS 致以崇高敬意! 1.性能调优   由于IDEA要满足大部分电脑,故配置的jvm参数会较低,对于大部分性能很好的电脑,这样的参数是不适用的,故需要调整文件 IntelliJ IDEA Community Edition 2019.3/bin/idea64.exe.vmoptions -Xms512m -Xmn512m -Xmx2048m   更加详细的调优,请参考 记一次idea性能调优 2.安装 Spring Assistant 插件   很多人抱怨说社区版没有专业版中的 springboot 项目的创建向导,安装此插件后就有了。 3.其它你需要安装的插件 我强烈建议您在开发过程中使用如下插件: 插件名称 用途 Lombok 便捷编程必备,不必手写Getter Setter等方法 Properties to YAML Converter