Code Monkey home page Code Monkey logo

tocker's Introduction

基于智能图像识别的番茄时钟软件

今天的我们面对着一个变化更快,知识更迭迅速的世界,工作和学习作为永恒的主题不会改变,但是我们对于效率方面的要求在不断提高,我们都需要需要掌握一些时间管理方面的技能,来充分提高学习效能。 君欲成其事,必先利其器。为了帮助个人提高效率,首先我们需要找到适合自己的时间管理方法,其次我们也需要一个可以帮助我们管理时间的有效工具,番茄工作法是一种有效的时间管理方法。

#1.番茄工作法简介

番茄工作法是由弗朗西斯科•西里洛于1992年创立的一种相对于简单地完成任务更微观的时间管理方法。 使用番茄工作法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起,然后在纸上画一个X短暂休息一下(5分钟就行),每4个番茄时段多休息一会儿。番茄工作法极大地提高了工作的效率,还会有意想不到的成就感。

番茄工作法原则: i.一个番茄时间(25分钟)不可分割,不存在半个或一个半番茄时间。 ii.一个番茄时间内如果做与任务无关的事情,则该番茄时间作废。 iii.不要拿自己的番茄数据与他人的番茄数据比较。 iv.番茄的数量不可能决定任务最终的成败。 v.必须有一份适合自己的作息时间表。

作为一种比较有效的时间管理方法,番茄工作法有助于我们科学休息和工作,使得工作效率更高。

配合个人使用番茄工作法,我们就需要使用一种计时工具来有效管理我们的番茄时间,我们对各种可以用作番茄工作法的解决方案进行了了解和分析。

#2.目前可用的番茄工作法的解决方案分析

  1. 笔记本+闹钟:这是一种最原始,最传统的番茄工作法。 通过把闹钟设置每25分钟响一次,并在笔记本上罗列学习项目,打个“×”表示该番茄工作完成。该方法较繁琐,需要手动记录。这种方法可适当提升用户时间效率,养成番茄工作法习惯,但在设置闹钟和记录事项上花费时间较多,也不能自动统计,对进一步提升效率帮助有限,而且很难作为当今时代广大学生能够接受的时间管理工具。
  2. 桌面软件:目前有多种基于番茄工作法的桌面软件,比如番茄盒子,它具备传统的笔记本+闹钟的所有功能,还能按一定的时段进行统计,以便于回顾和总结,来改善时间的使用习惯。虽然不再需要闹钟和笔记本,但是还是需要电脑来支持,设置还是需要用手动的方法,更不要说“智能”。
  3. 手机APP:目前有许多种专门为番茄工作法开发的手机APP或在计时的手机APP中融入了番茄工作法的功能,目前主流的APP有:番茄土豆,嘀嗒,Tomato,Pomodoro等等,这些APP通过手动设置番茄时间,通过计时,提醒,统计等功能,能让使用者养成番茄工作法的习惯。 由于这些APP的开发都是以计时为出发点,有的结合了一些记事方面的功能,能够在时间管理方面发挥有效作用。事前的手动设置,手动开启的模式,操作虽然不复杂,但是还是会影响效率,另外目前的这类APP也不够“智能”。
  4. 植入硬件(例如米家台灯):此类硬件配合手机APP使用也可以快速启动番茄工作法,比如米家台灯双击开灯键即可激活手机APP, 虽然激活操作比手机APP更加容易,但它还是没有脱离手动开启,还是非智能的。
  5. 总结:综合来看,手机APP是目前最佳的番茄工作法辅助管理的解决方案,它提供的设置,计时,记事,提醒,统计等功能,对用户形成良好工作习惯,能够达到有效推进,逐步改善的效果。但是从未来进一步发展的要求来看我们需要一款更加自动化,更加智能的番茄工作法解决方案。

#3.基于智能图像识别的番茄时钟软件构想

以上的解决方案分析罗列了从手工方式到桌面电脑到手机方式,再到硬件植入方式的,眼下我们到了智能时代的前夜,我们需要一个智能番茄时钟软件,它不该是仅仅是存在于你手机上的一个计时软件,它应该是一款专业的智能番茄闹钟软件: a) 它应该尽量减少你通过手工或手动的方式来设置,输入,开启等等工作,所有计时,提醒,统计的工作应该完全自动化。 b) 具备感知功能,它能够对用户或场景做出一定程度的自我判断,并自动启动相应的功能。 c) 它应该能够和用户交流互动而不只是通过响铃或振动来提醒用户完成某事或切换某种工作模式,做用户时间分配的真正助理。 d) 它应该是一款更加智能的软件,通过存储用户自身大量的数据及自动访问其他专业数据库,通过适当的算法它不断学习用户本人和他人学习时间优化方面的有益经验,可以提供实时的用户本人最佳学习时间分配的建议,从时间分配的助理走向学习时间管理的高级参谋。 e) 它应该是一款主动学习,自动优化的软件。通过自身数据的积累和大数据分析,可自动优化算法。通过软件升级可增加更多功能。

#4.设计方案

  1. 基本功能

遵循番茄工作法基本原则,以25分钟为一个番茄单位,点击开始专注,进行专注时间计时。

计时结束有一个5分钟的休息,4个番茄时间之后有一个30分钟的休息。

右上角有菜单可以对自己的番茄时间进行累计,查看历史番茄时间,来激励自己。

2、 通过智能图像识别技术,对学习状态进行主动检查。

通过手机前置摄像头每10秒钟拍摄一张照片,对学习者进行不间断图像采集,进行学习状态判断和检查。在确定发生偏离后时钟会自动对用户进行声音提醒,提醒后如状态仍然异常,停止番茄计时。 图像识别算法比较成熟,我们对目前主要的算法包括百度、GOOGLE和FACE++进行了超过100张的图片测试,从识别率、识别速度和返回属性信息丰富程度三个维度进行了比较,最终选择了FACE++提供的算法。 将每次拍摄的照片,进行处理,将大小压缩到2M以内,按照BASE64编码,传入 Analyze API进行分析,分析返回属性信息包括年龄、性别、头部姿态,以及83个面部关键信息。 其中头部姿态包括pitch_angle, roll_angle, yaw_angle三个数据,分别对应抬头角度,旋转(平面旋转)角度,摇头角度。

学习者的注意力方向和头部姿态直接关系,通过对头部姿态,面部表情进行分析,如果头部姿态和面部表情保持一定特征,可以认为学生在专注学习。 参考有关文献,已有进行头部姿势分析的较多研究和论文,并已用于驾驶员监控等,但是该应用的特点是摄像机位置和驾驶员位置都是固定。我们面临的困难是不同学习者姿势、不同学习动作(看书,做题,背单词)和摄像机角度在不同番茄时间会有较大变化。基于此我们放弃算法研究,尝试用统计学处理。我们设想在一个番茄时间内学习者和摄像机位置保持相对固定,则头部位置应该基本符合正态分布。 我们开始实验,通过对pitch_angle, roll_angle, yaw_angle三个数据,每次实验在采集6组数据即学习开始1分钟后进行分析。正态分布检验有多种方法,由于样本数据较少,一个学习周期N=150,采用Kolmogorov-Smirnov检验法(KSTEST函数),经过对不同学习对象多次试验,统计结果表明,在看书、书写等模式下,头部姿态相当符合正态分布。但是试验也发现坐姿、灯光改变也会显著影响判断结果。 总体上通过图像识别获取的头部姿态的统计学分析,能够实现对学习状态的自动检查。如异常状态,软件会通过颜色改变温和提醒进入注意力集中状态。

#5.开发和测试环境

开发工具:Android Studio, 开发语言:JAVA(Android-SDK) 开发环境:Android 7.0(支持Android 5.0以上版本)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.