python面向对象
实例方法、类方法、静态方法
实例方法
类中定义的方法默认都是实例方法,实例方法是由实例调用的方法,在定义时默认有 self 参数
1234567891011121314151617class Student: # 类的构造方法也是实例方法 def __init__(self,name,age): self.name = name self.age = age # 定义一个添加分数的方法,实例方法 def add_score(self,score): self.score = score# 使用方法# 实例方法jim = Student(Jim,25)jim.add_score(98)# 也可以由类名调用实例方法Student.add_score(jim)
类方法
类方法是供类调用的一类方法,最少也要包含一个参数,通常为cls,python会将类本身绑定给cls参数,与实例方法最大的不同之处在于,需要使用 @classmethod 修饰器进行修饰,否则为实例方法。
1234567891011121314class Stud ...
linux-shell
Shell 变量
定义
定义变量时,变量名和等号之间不能有空格,命名规则如下:
只能使用英文字母、数字和下划线,首个字符不能为数字
中间不能有空格, 使用下划线代替
不能使用标点符号
不能使用 bash 中的关键字
使用
使用一个定义过的变量,在变量名前面加美元符号,如
12user='DF'echo $user
也可以添加花括号帮助解释器识别变量的边界
12user='DF'echo "This callable from ${user}'s bash"
只读变量
使用readonly设置只读变量
123#!/bin/bashuser='DF'readonly user
删除变量
使用unset删除变量
1unser user
变量类型
运行 shell 时,存在 环境变量、shell 变量、局部变量 三种
环境变量就是系统变量;
shell 变量是由 shell 程序设置的特殊变量,一部分是环境变量;一部分为局部变量;
在脚本或命令中定义的,仅在当前 shell 实例 ...
Mask-RCNN
MASK-RCNN 沿用 Faster RCNN 的思想,由于我也只用来训练做测试了,具体原理可见原文,Github,知乎
标注数据
环境准备
标注数据使用 labelme,在安装之前需要安装 pyqt5,使用教程可以参考labelme 详解
12pip install pyqt5pip install labelme
格式转换
labelme 保存的都是 json 文件,需要使用 label_json_to_dataset.exe 转换一下,在 labelme 安装路径下找到 label_json_to_dataset.exe,使用
1for /r <path of json> %i in (*.json) do labelme_json_to_dataset %i
之后会生成一个同名的文件夹,里面包含了 mask 文件、label.png、info.yaml、label_viz.png、label_names.txt 五个文件(如果生成的文件缺少 info.yaml,这是由于 lableme 版本造成的,可以使用 3.20.0,也可以修改 label_json_to_d ...
文本识别CRNN
CRNN
在传统的文本识别中,需要将检测到的文本行分割为单字符,再利用模板匹配或者图像分类识别单字符,这类方法处理过程较为繁琐,并且受限于字符分割的效果,左右结构的中文字符分割仍存在较多问题。在深度学习飞速发展的今天,端到端的文本识别,略去了字符分割步骤,将文本识别转化为序列识别,即将输入的文本行看作是文本序列,不需要严格要求输入文本行的长度统一。
CNN+RNN+CTC是目前最为流行的文本识别模型,其出处为https://arxiv.org/abs/1507.05717,通过CTC算法在转录时解决文本对齐问题。
网络结构
网络结构包含三个部分,卷积层、循环层和转录层:
卷积层:利用CNN提取输入图像的图像特征;
循环层:使用RNN提取序列的上下文语义信息;
转录层:使用CTC将RNN输出的序列预测概率整合为最后的输出结果。
卷积层
上图是论文中采用的网络参数,在输入时将图片统一为高度为32的灰度图。在结构中需要注意的是第三个和第四个pooling层采用的window大小为1*2,这样可以更好的区别i与I类似的字符。
这部分也可以采用VGG16,增加网络深度
循环层
采用循环 ...
常见出版社以及其出版地
常见引用
Berlin, German: Springer
New York, NY: ACM
Piscataway, NJ: IEEE
Los Alamitos, CA: IEEE Computer Society
New York, NY: IEEE Communications Society
Madison, WI: Omnipress
Curran Associates.: New York, NY
Palo Alto, CA: AAAI Press
San Francisco, CA: Margan Kaufmann
常见的出版社以及出版地
出版社
出版地
Margan Kaufmann
San Francisco
MIT Press
Cambridge
AAAI
Menlo Park
IEEE
Piscataway, NJ
IEEE Computer Society
Los Alamitos,CA /Washington /Brussels /Tokyo
IEEE Communications Society
New York, NY ...
cpp-命名规范
命名规范原则
必须要遵守的规则
变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。
第一个字母不能是数字,例如 2L 这不是一个合法的C++变量。
不能是c++关键字,例如不能用 class 、 int 这些单词来命名一个变量。
变量名区分大小写。
尽量遵守的规则
不用拼音。
尽量用较少的单词。
有含义的变量或者多处调用的变量,用有含义的单词,不要用i,j,k。
同一个程序中用同一种命名方法。
常用命名法
驼峰命名法
指混合使用大小写字母来构成变量和函数的名字。
当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:
12string myName;int myAge;
帕斯卡命名法
帕斯卡命名法指当变量名和函式名称是由二个或二个以上单词连结在一起,而构成的唯一识别字时,每个单词首字母大写,例如:
12string MyName;int MyAge;
匈牙利命名法
它通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等这些符号可以多个同时使用 ...
TX2·基础配置
宿主机上安装SDK Manager
在英伟达官网上下载NVIDIA SDK Manager,得到一个.deb文件。
在一台装有Ubuntu的X86架构的电脑上安装,sudo apt install ./~~~~~~.deb
Ps:在安装过程中,可能会出现缺少某些依赖库的情况,参考AGX Jetson Xavier 刷机和图像处理配置教程
通过SDK Manager对TX2进行刷机
命令行启动,sdkmanager,登陆NVIDIA开发账户。
将TX2调整到恢复模式。(通电后,按下并松开开机键S4;按下并保持FORCE RECOVERY键S3;按下并松开RESET键S1;两秒后松开FORCE RECOVERY键S3)。
根据引导安装程序。
Jetson系统监控工具Jtop
jtop是通过pip安装
1234567# 需要为python3的pipsudo apt-get install python3-pip# 安装jtopsudo pip3 install jetson-stats# 运行sudo jtop
TX2 控制风扇
开启
1sudo /usr/ ...
Hexo版本升级
Node.js
简介
Node.js在浏览器外运行V8 JavaScript引擎。
Node.js应用程序运行于单个进程中,无需为每个请求创建新的线程,而是采用一组异步I/O原生功能。
npm
npm是node.js标准的软件包管理器。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647# 安装软件包# --save 安装并添加到package.json文件的dependencies# --save-dev 安装并添加到package.json文件的devDependenciesnpm install <package-name># -g 标志可以执行全局安装# 安装到node.js的位置,可以通过 npm root -g 查看npm install -g <packagae-name># 不使用 -g 软件包会被安装到当前文件树中的 node_modules 子文件夹下。npm install <package-name># 安装 ...
【linux】桌面环境
CentOS 桌面环境
X Window System 与 图形界面软件
X Window System 是一种计算机软件系统和网络协议,提供了一个基础的图形用户界面和丰富的输入设备能力联网计算机。提供了计算机显示图形界面的能力。
图像界面软件,例如常用的 GNOME 和 KDE,是用户直接看到的桌面环境。
安装
安装 X Windos System
1yum groupinstall 'X Window System'
安装桌面环境
12345678# 安装GNOME桌面环境yum groupinstall 'GNOME Desktop Environment'# 安装KDE桌面环境yum groupinstall 'K Desktop Environment'# 安装MATE Desktop(基于Gnome2开发的桌面系统)yum groupinstall 'MATE Desktop'
设置默认环境启动服务器
命令模式
1systemctl set-default multi-user.target
图 ...
【Linux】SSH
SSH 简介
SSH,Secure Shell, 是一种用于计算机之间加密远程登录的网络协议。
传统的网络通信中,如 FTP、Pop 和 Telnet 等,使用明文传输数据,一旦被截获,很容易受到中间人攻击。
值得注意的是 SSH 只是一种协议,存在着多种实现,既有商业实现,也有开源实现,目前使用最多的是 OpenSSH。SSH 分为客户端与服务端,如果只用来连接远程服务器则只需要客户端,如果需要被其他主机连接则需要安装服务端。SSH 的 1.x 版本与 2.x 版本并不兼容,即 1.x 的客户端不能连接到 2.x 的服务端上,OpenSSH 2.x 同时支持 SSH 1.x 和 2.x。
服务端是一个进程守护(daemon),一般为 sshd 进程,提供了对远程连接的处理,包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端包含 ssh 程序以及 scp(远程拷贝,文件上传下载)、slogin(远程登录)、stfp(安全文件传输)等其他应用程序。
SSH 安装
CentOS 系统中,采用 rpm -qa | grep ssh 查看是否安装了客户端和服务端,下图中 opens ...