暑假实践(二)
AI studio
AI studio是一个集项目、数据集、课程、比赛、认证于一体的综合性社区。AI studio有丰富的公开项目,提供给用户学习,并且每个项目都可以直接运行,用户可以选择不同配置的运行环境,环境默认为Notebook。我对计算机视觉方面的项目较为感兴趣,fork了通过Paddle手势识别玩吃豆豆游戏的项目。
AI studio拥有大量公开数据集,包含结构化数据、NLP大类、CV大类和语言大类等,用户可以自由收藏、创建、公开数据集。AI studio对新手也相当友好,提供了新手引导系列和AI学习地图,帮助加快入门。AI studio的课程包含了机器学习、深度学习、EasyDL等内容,在学习课程后会有课程作业,并会有老师直播点评作业。AI studio每年都有各种各样的比赛,用户可以参加适合自己难度的比赛,部分比赛有丰厚的奖金,或者用户也可以参加AI studio的认证考试,帮助就业。
Python
fork项目
Python基础知识总结
一、基础数据结构
主要数据类型有数字(整数和浮点),字符串,容器(列表list,元组tuple,集合set,字典dictionary),布尔(True,False),None。
1. 基础数学
+,-,*,/(数除,结果属于float类型),%,//(整除),**(乘方)。
2. 字符串
- 使用单引号或双引号创建字符串,字符串的拼接用加号,若要使输出后两个字符串间存在空格,可以在其间加入逗号。
- 可以直接使用 .method_name()表示法调用字符串对象上的方法
3. 容器
- List列表
列表需要用方括号括起来,可修改元素。
a)访问列表里的值,如a[1]、a[-1](-1代表倒数第一个)。
b)切分列表,格式为[start : end : step](start从0开始,-1结束;step表示步长,为正时从左向右取值,为负时从右向左取值,step可以不写,默认为1;输出时不包含end)。
c)其他
append():在列表结尾添加一个对象;
remove():删除列表中一个元素,若没有该元素报错;
pop():删除列表中指定位置的对象;
extend():通过在列表末尾续加的方式延长列表;
insert():在列表指定位置前插入对象;
min(),max(),len(),sum():最大值,最小值,长度,总和;
count():对列表对象出现次数进行统计;
sort():对列表进行排序; - Tuple元组
元组和列表类似,但不可修改元素,元组使用小括号。
a)初始化元组,当元组中只包含一个元素时,需要在元素后面添加逗号。
b)元组的元素不允许修改,但可以通过加号对元组进行组合。
c)其他
index():返回对应值的第一个索引;
count():返回值在元组中出现的次数。 - Set集合
Set具有无序性,无重复元素,不可排序,集合使用花括号。
add():新增一个元素到集合;
copy():拷贝整个集合并赋值给变量;
update():可增加多个元素;
discard():删除指定元素,若无指定元素,程序正常运行。 - Dictionary字典
字典是一种可变容器模型,可储存任意类型对象,格式如{key1:value2,key2:value2},key唯一且不可变,value可修改。
get():返回给定键的值;
pop():删除键,但同时可以返回值。
二、条件判断
与c语言条件判断相似,但要注意缩进级别,格式为if……elif……else。
三、循环语句
Python的循环语句有for(for…in…)和while,要注意缩进级别,循环语句中的break用以终止当前循环,continue用以跳过本次循环,执行下一轮循环。
四、函数
创建函数,用关键字def标志函数头的开始,冒号标记函数头的结尾,构成函数体的python语句必须具有相同的缩进级别,函数的返回值用return语句返回。
Jupter Notebook
Jupter Notebook是基于网页的用于交互计算的应用程序,其可被引用于全过程计算:开发、文档编写、运行代码和展示结果。————Jupter Notebook官方介绍
Jupter Notebook可将文档、视频、图片、PPT等交互于一身。Jupter Notebook因可执行shell命令,避免了开发过程中在shell和IDE之间频繁切换。Jupter Notebook支持多种语言,如同vscode是一款综合开发工具,另外支持多种途径分享,也支持导出成HTML、Markdown、PDF等多种格式的文档。Jupter Notebook可以安装丰富的插件,如Execute Time,Codefolding等,让工作变得更加简单、高效。
Linux基本命令
ctrl+shift+= 放大终端窗口的字体显示
ctrl+- 缩小终端窗口的字体显示
- ls (list)————查看当前文件夹下的内容
ls-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来
ls-d :仅列出目录本身,而不是列出目录的文件数据
ls-R :该目录下的所有文件都会显示出来 - pwd (print wrok directory)————查看当前所在文件夹
- cd (change directory)————切换目录
cd /目录A/目录B 切换到目录/目录A/目录B
cd ./目录 切换到当前目录下的目录中,“.”表示当前目录
cd ../目录 切换到上层目录中的目录中,“..”表示上一层目录 - touch[文件名]————如果文件不存在,新建文件
- mkdir[目录名] (make directory)————创建文件
创建多级目录及多文件夹,使用 -p(文件夹之间用空格隔开)(若上层目录没找到,则会一并创建) - rm[文件名] (remove)————删除指定的文件名
rm -r(或rm -R):删除当前目录下除隐含文件外的所有文件和子目录 - find[目录名]————在指定目录下查找文件
查找文件,忽略大小写 :使用 -i - clear————清屏
fork:PaddleHub头部姿态估计
该项目结合PaddleHub发布的人脸关键点检测模型face_landmark_localization完成,face_landmark_localization预测人脸的68个关键点坐标,然后抽取姿态估计需要的点坐标,并获取旋转向量和平移向量,将旋转向量转换为欧拉角,通过截取固定帧数内头部动作,再比较当前头部欧拉角与过去欧拉角,根据头部动作幅度是否超过阈值,判断头部是否发生点头或摇头的动作。