2023.3.24 小记与展望

Posted cqust_qilin02811

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2023.3.24 小记与展望相关的知识,希望对你有一定的参考价值。

一、关于毕设

毕设开题答辩答完了,老师说目标设置合理,虽然已经有大创的研究基础,但我觉得时间有点不够,主要是加了一些课程刷GPA,但是自己又懒!!

毕设题目:基于深度学习+Openpose的摔倒检测报警系统
考虑APP端,PC端,网页端,毕设只涉及到APP端和PC端的应用
PC端主要面向商用、如商场、安防等
APP端主要面向家用:如居家老人的摔倒检测、家庭安防
可配备信息包

目前还在考虑毕设的选型,考虑两种实现方式:

第一种方式(更简单、但可拓展性只面向功能和软件):

  1. 直接用摄像头连接PC端,随后PC端获取视频数据直接处理然后显示
  2. 同时PC端将处理好的视频数据传到云服务器,云服务器再发给android
  3. Android端再显示视频数据

第二种方式:(更难、但可拓展性强,硬件也可以进行一些改良)

  1. 摄像头采集视频数据通过嵌入式平台处理发送到云服务器
  2. PC端和APP端分别获取视频数据并处理,然后显示
  3. 或者也可以在服务器端处理视频数据后再发送处理好的摔倒视频数据?

主要问题:
没有实现过Tensorflow在android平台的部署,如果将tensorflow嵌入到app内,可能APP太大,(不过实验室其他同学有过部署经验,后面可以了解一下)

预计五月初的第一个星期(5.7)就得完成该项目,时间很紧,得留两三天写毕业论文和PPT

二、关于实习

  1. Linux端产测软件已经基本完成功能,还剩WIFI和CAN测试需要完善,CAN测试考虑先读一下Android端的测试代码再写,应该能调好
  2. WIFI测试暂时没有解决思路,通过shell命令和pywifi包都不好搞,后面问问软件部请教一下解决方案
  3. 今天会写一下触摸测试的博客,其实最开始接触需求编写代码时,不认为自己能够写出触摸测试这个功能来,但真正开发的时候,沉下心竟然真正写出来这个功能了,中间遇到很多困难和bug都一一解决,获得了极大的成就感
  4. 产测软件是上个星期弄好的,目前工作是想做OTA升级,需要把*云SDK集成到公司自有的APP中,各种代码还是比较复杂,需要加深理解才能集成
  5. 实习快两个月了,收获很大,期间也看了《流畅的Python》和《Head First Java》(希望实习结束前能看完),熟悉了git各种命令的使用,linux各种命令的使用,另外了解了AT指令和PCB板的生产流程。
  6. 就业形式严峻,希望能转正,希望工资高些 😃

三、学习内容概览

因为立了重新捡起算法的flag,所以在准备毕设、刷GPA的这一个多月一样也会每天学学算法,主要还是刷acwing,leetcode会打打周赛

毕设相关:

目前发现时间紧张,暂时考虑将Tensorflow2.0 再速刷一遍,先不使用Pytorch(等毕设完成后再学不迟),然后直接对大创项目的代码进行重构

  1. 速刷Tensorflow2.0同时 将以前的Tensorflow笔记系列 博客进行重构(3.31之前)
  2. PC端可以重构代码,能够节约时间,APP端进行界面搭建,数据库设计,云服务器了解与使用(4.1-4.7)
  3. 拍摄摔倒图片,了解mediapipe,用卷积神经网络进行网络搭建,对比训练效果,对参数设置进行讨论,使用mediapipe进行关键点提取,然后对比Openpose讨论(4.8-4.14)
  4. 系统调试,完善APP端和PC端,将其与云服务器进行连接,对出现的问题debug(4.15-4.21)
  5. 灵活时间安排,继续系统调试,完成未完成功能,申请软著(4.22-4.28)
  6. 毕业论文撰写,推动软著申请(4.29-5.5)
  7. 答辩PPT,总结项目写成博客(5.6-5.12)

GPA相关:

目前绩点是2.82,好好刷绩点应该能提到3.05左右,估计还有一个月要考试了,刷GPA的科目有:

  • Java (Head First Java正好覆盖考试内容)
  • 深度学习(最好完成老师发的每周作业)
  • 深度学习综合训练
  • 高数Ⅰ(每天学)
  • 概率论(每天学)

算法相关:

目前计划是捡起acwing的算法基础课,只看完了快排,计划是在毕业之前刷完算法基础课,毕设答辩之前每天半小时学一个算法内容即可

雅思:

等毕业答辩完成后开始做题

四、关于未来方向的思考

目前对于未来还是比较迷茫
近期关于互联网寒冬的讨论,算法岗和后端开发岗趋向饱和,不知道是否要去卷这两个岗位还是另选赛道
不过学习基础语言和计算机基础是百利而无一害的

算法踩坑小记

经过前面研究图像算法和近阶段研究视频和音频算法的经历经验.

在2019年快要来临的时候,写下这篇小记.

目的很简单,总结过往,展望未来.

这里列举一些本人在算法上踩过的坑和出坑思路.

 

主要是数据标准化问题.

 

1.临界值问题  (最大值,最小值,阈值,无穷小,无穷大)

最早做一键修图的时候,在这个坑上踩了太多次.

简单描述就是,

(示例伪代码例子仅供理解思考参考,不具有实际意义)

1.1 梯度消失

 

如果一个算法在计算过程中,存在最小值(无穷小,一般为0或接近0的数),

那就很可能出现"梯度消失"的问题.

例如:  

float weight = 0f; // (或 趋近于0)

float num = 255.0f;

float taget = num/weight;

这种问题最简单的解法就是归一化取值范围, 

原来取值范围是 0-255,归一化为 1-256

或转换到对数空间计算然后再转回来.

 

1.2 梯度爆炸

反之,结果为最大值或者接近无穷大的数,甚至溢出有效范围,那就可能出现"梯度爆炸"的问题.

例如:

int num1 = 255;
int num2 = 256;
unsigned char taget = num1-num2;
clamp 虽搓,但是简单有效,
这个解决思路基本跟梯度消失是一个逻辑,归一化.

1.3 阈值人为主义,非黑即白

采用阈值的做法,除非你清楚的知道你后续计算,

只有两种明确情况,否则不要轻易使用阀值.

 int threshold = 127;

if ( num>threshold)

 taget = 0;

else

 taget = 1;

 

其实,这三个临界值问题,熟悉深度学习的朋友,

可以类比一下激活函数.

 

深度学习现有的激活函数,其实并没有很好解决临界值问题,

只是采用规避的策略,降低临界值事件的发生概率.

这里不打算展开讨论,流言止于智者.

 

2.信息信号属性问题

多维空间与时序序列 的困局

2.1 多维空间

一般多维空间的问题在图像领域比较常见,当然音频领域也有.

例如:

灰度,彩色,YUV空间等.

多维数据绝大多数情况是为了 "信息互补","信息压缩".

也就是预计通过多个维度的信息,互相补充作用,最终合成最佳的信号.

这里最常见的坑就是,多维数据的归一化问题.

因为很有可能,RGB三个通道的颜色分布并不完全一致,

这个时候你要融合RGB三个通道的信息,

就必须考虑将数据归一化到三个通道都适宜的取值范围.

否则,最后合入时,就会出现上面提到的 临界值问题.

基本上只要做好 临界值的处理 就可以规避掉了.

例如图像领域做梯度金字塔融合时候,出现的晕轮效应或强边缘溢色.

 

当然,还有一种特例,就是评估策略.

当你碰到一个问题,对一张彩色图片,你只能用一个值来表达这张图片的全局情况.

一定要谨记,这个值的得出,必须所有数据参与计算.

不然就会犯多维数据的 阈值人为主义,非黑即白.

这个问题,当年设计一键修图算法的时候,就碰到过.

你怎么判断一张图片的是否需要去雾.

局部有雾或者全局有雾,去雾系数的确认就是这种问题.

 

2.2 时序序列

时序序列除了 多维空间碰到的问题,它还有更加恼人的问题.

主要是音频数据和文字语义数据的问题.

时序信号最最最严重的问题就是时长和叠加.

也就是一句话的长短,一句话中重叠数据的多少,都有可能推翻所有.

例如:

在一起,好不好.

在一起,不好.

在一起,好.

时序问题绝大多数,数据中某个孤立的数据,反而是决定性因子.

这就有点像,

中国政府某年颁布了什么什么条例.

某某行业消亡了.

时序信号问题,真的就有点大海里去捞针.

 

由于近期一直在做音频降噪算法,

我就碰到这么一根针.

音频处理算法三大问题,自动增益,噪声抑制,回声消除.

大家想一个问题,

如果一个数据连续出现,例如一段音乐.

你说,太小声,我放大它,

结果你发现,这时不需要啊,有些音乐就是要渐隐渐现.

这个时候你会想说,好吧,那么设定一个时长,超过就处理,不超过就不处理.

参见 临界值问题,这种非黑即白,会死得很惨烈.

而噪声和回声,就刚才那几句:

 

在一起,好不好.

在一起,不好.

在一起,好.

 

我就问一个问题,"好"出现了两次,有没有可能其中一个"好"是回声.

第二个问题,第一个"好"是回声,还是第二个"好"是回声.

第三个问题,如果两个"好"不是回声,那它有没有可能是噪声.

 

这就是时序最让人恼火的问题,因为 时序的长度是"模糊"的.

你说一句话停半秒,他说一句话停一秒.

 

这个问题可以称之为,多维空间叠加的数据标准化困局.

 

更可怕的是,几乎没有任何标准和直接规律可言.

 

3.常识与自然规律

这个我要重点说一下,之前与不少科班出身的同事共事.

发现他们经常犯一些常识性错误.

举个例子:  

A 是有限集合

B 是数学向量

C 是 A+B 的理论结果.

根据向量的定义,C应该也算是向量的一种表达.

好的问题来了,C的置信度有多少?

我相信大多数人都会发现问题,不在B和C而在A.

因为A是有限集合,它是确认的.

那么C的置信度只能在A的区间范围内,而不在它之外.

 

那么,把上面这问题的变量稍微改动一下,

A是空间数据集合.

B是时序数据集合.

请简述C的置信度?

 

我就只能说,你没有常识.

两种不同维度的数据集合,在我有限的理解范围内,

我只能将其定义为"噪"动不安.

 

也许这个时候,有某位大神跳出来,不对,

你们都不对,是你们数据量太小了.数据量大了,

就不会存在这个问题.

负分滚粗!

 

我就问,什么量级的空间数据和什么量级的时序数据,进行什么量级的什么计算,

可以达到相对平衡的稳态,或者说符合什么样的自然规律.

 

这个时候,又一个大神跳出来,广义相对论和狭义相对论.

时间和空间的问题,就是时空的问题.

等你超越了时间和空间也就是所谓的超时空,一切问题都不复存在了.

 

大神,请收下我的膝盖,带我装逼带我飞向超时空.

 

当然还有各种各样的其他问题,当以不变应万变.

以上仅仅为个人的心得体会,

若有出入,不要太过较真.

路漫漫其修远兮.

以上,权当抛砖引玉.

 

关于本人自研的语音增强算法的试用接口已经开放出来,

地址是http://47.98.140.120/

拖放wav 和 mp3即可试听降噪前后的效果.

可能存在特定的wav和mp3由于解码失败问题导致失败.

我会逐步完善的.

 

算法现在是实时处理,

用在什么硬件环境都毫无压力.

效果还是不能到达我自己对它的要求.

主要还是没能很好的解决时序叠加的问题,还有不少的坑要填.

 

2019年预计会陆续将以前做的一些图像算法逐步梳理开源.

 

最后,祝大家新的一年,心想事成,美梦成真,好事成双.

 

本人主要专注 音频,图像,视频算法方向.

若有其他相关问题或者需求也可以邮件联系俺探讨。

邮箱地址是: 
[email protected]

 







以上是关于2023.3.24 小记与展望的主要内容,如果未能解决你的问题,请参考以下文章

剩一个月规划已将展望

回顾2017,规划2018,展望2019

Java学习之路的回顾与展望

2019年总结与2020年展望

2019年总结,展望2020年,规划……

算法踩坑小记