暑假实践(二)

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+- 缩小终端窗口的字体显示

  1. ls (list)————查看当前文件夹下的内容
    ls-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来
    ls-d :仅列出目录本身,而不是列出目录的文件数据
    ls-R :该目录下的所有文件都会显示出来
  2. pwd (print wrok directory)————查看当前所在文件夹
  3. cd (change directory)————切换目录
    cd /目录A/目录B 切换到目录/目录A/目录B
    cd ./目录 切换到当前目录下的目录中,“.”表示当前目录
    cd ../目录 切换到上层目录中的目录中,“..”表示上一层目录
  4. touch[文件名]————如果文件不存在,新建文件
  5. mkdir[目录名] (make directory)————创建文件
    创建多级目录及多文件夹,使用 -p(文件夹之间用空格隔开)(若上层目录没找到,则会一并创建)
  6. rm[文件名] (remove)————删除指定的文件名
    rm -r(或rm -R):删除当前目录下除隐含文件外的所有文件和子目录
  7. find[目录名]————在指定目录下查找文件
    查找文件,忽略大小写 :使用 -i
  8. clear————清屏
    暑假实践(二)

fork:PaddleHub头部姿态估计

暑假实践(二)
该项目结合PaddleHub发布的人脸关键点检测模型face_landmark_localization完成,face_landmark_localization预测人脸的68个关键点坐标,然后抽取姿态估计需要的点坐标,并获取旋转向量和平移向量,将旋转向量转换为欧拉角,通过截取固定帧数内头部动作,再比较当前头部欧拉角与过去欧拉角,根据头部动作幅度是否超过阈值,判断头部是否发生点头或摇头的动作。