手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2009年07月9日的文章

纯记录:微软亚洲研究院:空中手书的舞动奇迹

新闻来自于Cnbeta.com,我这里是纯记录
感慨一下科技的发展,就象新闻里说的,我也很向往少数派报告中在虚空中操作电脑。

原文如下:http://www.cnbeta.com/articles/88286.htm

如果不是学计算机科学的话,你可能不知道什么叫计算机视觉,也可能不知 道什么叫模式识别。但是看过电影《少数派报告》的人或许都希望自己能和汤姆·克鲁斯一样,在空中用手比划一下就能完成未来电脑的操作;甚至想过如果有像哈 利·波特那样的魔棒,挥一挥就无所不能。微软亚洲研究院语音组最近发明的空中手书项目就部分地实现了这些科幻迷、童话迷的梦想。

 大小: 31.1 K
尺寸: 500 x 376
浏览: 1254 次
点击打开新窗口浏览全图

就如上图所展示的那样,用户手中抓一支笔、一个苹果或者其他容易辨认的 物体,在空中写下文字、做出手势,通过摄像头的“眼睛”观察,计算机就能知道用户写的是哪个汉字,想表达的是哪种手势,从而完成计算机和人的自然交流。这 也正是我们项目命名为“空中手书”的由来。之所以说是部分实现了用户的梦想,那是因为我们只是成功实现了空中手书,而真正科幻式的未来生活需要各个行业、 各个学科的共同发展进步。

孝心引发的创新

空中手书项目诞生的直接导火索是迎接2009年的微软技术节 (TechFest),为此语音组在内部广征TechFest的参展议案,结论莫衷一是。当时,我还在家休假。我的经理霍强说,“等马磊回来再讨论吧,这 家伙鬼点子多。”回公司上班那周,正好和霍强1:1交流,当谈到组里还为TechFest参展项目悬而未定时,我就提出了要做“空中手书”的建议。其实, 这个念头由来已久,但是那次回老家度假更坚定了我的这个想法。2009年初在家过年的时候,就经常听到父母抱怨不会用键盘输入,手写板也不好用(需要不断 的抬头看屏幕和低头看板子),我当时便吹牛说,明年回来给家里的电脑装个摄像头,然后你们对着摄像头就可以写字了。其实有这个想法也是因为之前全院的某次 Offsite,在一段非常酷的视频短片里,四位院长用手指在空中轻而易举地写下了MSRA (微软亚洲研究院的英文缩写) 四个字母,这当然是电影特效,但是却让我浮想联翩。

虽然“空中手书”的想法听上去很炫,但是霍强还是对需要投入的时间和人 力成本有所顾虑。为此,我主动请缨用两周时间先做个原型出来,然后再评定能不能继续做下去。实际上最后做出这个原型只用了2天时间,也还是一个比较简陋的 演示:首先把手的运动轨迹跟踪下来,接着保存成数据文件,然后再调用我们的识别引擎,得到识别结果文件,最后经过读取把它显示在屏幕上。

令人惊讶的是,这个原型的效果已经令人相当满意了。因此,便有了更多的人加入到这个项目的开发完善的过程中,比如我的实习生朱晓恩、霍强的实习生孙雷,以及现在继续把这个演示中加入手势识别的禹果。

技术里面隐藏的奥妙

那是不是因为这个问题太简单了,所以用两天就能做出这个演示?当然不是了。我们设计的空中书写系统里面有两个主要的组成部分,一个是运动轨迹的追踪算法,一个是手写体汉字的识别算法。而这两个领域本身都有了几十年的发展,至今还是有很多的未解问题。

比如说这个跟踪算法,跟踪什么东西、提取什么样的特征来跟踪、跟踪的效率,是不是白天晚上各种不同的光照条件下都能跟踪等等,每一个问题都可以展开来细细的做研究。而这些问题如果不解决或一定程度上解决,就不会是一个用户体验良好且稳定的方案。

再比如说这个手写体汉字识别也同样是有很多值得研究的问题。写字的风格 (楷书、行书、隶书、草书) 不同会影响识别率,不同人的写法更是差异很大。另外,汉字的笔顺也是个大问题。除去这些问题不谈,在空中写字的方式和纸面上写出来的字样式上也差别很大, 至少现在空中的汉字是要一笔写成的。这都要求我们的汉字识别器可以稳定地处理和识别出来。

两天做出来的原型只是描述了一个概念,后面还有大量的工作等着我们去做。

我们连同实习生一起做了认真的特征研究,去考虑哪些特征在光线不足的情 况下稳定,哪些在亮光甚至点光源(一般会场和室内的条件)下能够稳定等等问题。另外,现在的摄像头有自动聚焦、白平衡和自动滤波的功能,而这些功能是不是 对我们的应用有帮助?其实,有些功能不但没有帮助反而有害。我们就需要把这些问题一个个研究清楚。除了特征外,什么样的追踪算法稳定高效,适合我们的应用 场景?为此,霍强和我查阅了大量研究资料,咨询了我们微软内部的许多在这方面资深专家寻求更好的方案。

在手写识别方面,我们研究院语音组有很多年研究的积累,平面上的手写体 识别算法的性能和识别率上是全世界领先的。相关算法已经transfer (转化)到了产品部门。但是这个空中字体的轨迹有自身的特点,如一笔连画,三维空间的轨迹映射到二维上,比划之间的转折相对圆滑等。我们的算法在特征上的 处理可以对付这些问题,信号的预处理部分也可以过滤掉由于光线条件不是很好情况下跟踪算法带来的信号抖动。

除了这些在核心技术上的研究之外,在用户界面上我们也考虑了很多。这部 分我的实习生朱晓恩动了很多脑子,比如如何设计更美观的界面,捕捉到的轨迹如何呈现会更舒适。另一个重要的改进就是把识别结果中最可靠的结果放置在候选区 域的中心,把不太确定的候选结果放置在边缘。这也是为了能让用户平均选取正确汉字的手移动距离最短。

最终,完成了我们现在看到的这个对公众演示的算法设计和实现。

空中书写的应用前景

如我所言,空中手书这个项目一开始就是从用户的需求中来(有相当一批人不会用键盘输入或者不知道怎么用包括拼音输入法在内的方式)。我们的项目就给了这些人一个与机器设备交互的可能性。

我们这个空中手书关注的应用场景可以分为以下几类:

1.  交互式游戏场景。比如在Xbox中,在很多时候需要玩家的输入才能导致游戏的继续进行。这时候我们的空中手书就提供给用户一种截然不同的使用体验,用于输入名字,谜题答案;用于交互式控制完成游戏的部分场景等等。

2.  搜索是海量信息时代重要的信息组织方式。 输入搜索的查询关键词有时候并非是一件非常容易的事情。比如在IPTV上,用户的计算机连接到互联网上,用户有需要从互联网上找到有趣的视频或者电影电视 然后从自己家的电视屏幕上进行播放。这时候,我们的空中手书就提供给用户一个输入方式选择。尤其是那些不会用T9输入法的中年以上用户。毕竟,手写输入还 是自然的输入方法之一。

3.  我们的空中手书还允许用户输入手势。通过一组直观易用的手势,用户可以方便地和各种智能设备交互。控制音视频的播放,提升用户体验,快速访问某些设定功能,等等。

总之,空中手书给了用户新的选择。它的应用场景就仅仅受限于我们和用户的想象力。

空中手书的演示成功恰恰是一个研究问题的开始,恰恰说明用户对更自然的 人机交互方式提出了诉求。就在写本文的时候,我们还在研究是否有更自然的方式可以捕捉人的运动,从而和计算机交互;是否能让我们的跟踪算法和人眼的跟踪一 样稳定。同时,我们还在研究使用手势识别来理解用户意图,让每个人都可以体验到空中舞动之美,体验到人机交互带来的便利。

mysql命令行常用命令

这是某人整理的东西,发现还是挺有用的。。

它来自于PHP博客,看着挺有用。值得摘抄

mysql命令行常用命令

第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on  数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

 

MySQL 包括一个服务器进程管理数据库,以及一系列访问数据库和创建应用的工具:

mysql               : 在 MySQL 中执行 SQL 查询,也可以执行在文件中存储的SQL命令;
mysqlaccess  : 管理用户;
mysqladmin   : 管理数据库服务器,包括数据库的创建和移除;
mysqld            : 实际的 MySQL 服务器进程;
mysqldump    : 将数据库或表的定义和内容转储到文件;
mysqlhotcopy : 热备份;
mysqlimport   : 将不同文件格式的数据导入到 MySQL 表中;
mysqlshow    : 显示服务器或者任何对象(数据库和表)的信息。

mysql_secure_installation  :  用于管理 root 密码,远程访问、移除临时(测试)数据库及临时用户的一个脚本。

一般来讲,Root 应只用于数据库本机上登录 MySQL,我们可以增加一个拥有超级管理权限的用户 'admin' 来实现远程的维护。

Tips:

1、用 root 登录;(在命令行键入:mysql -u用户名 -p密码)
2、执行如下语句:
   mysql>grant all privilages on *.* to admin@localhost identified by 'password' with grant option;
   mysql>grant all privilages on *.* to admin@"%" identified by 'password' with grant option;

   "%"是通配符,授予 admin 用户可以从任何主机发起访问,password 是为 admin 用户设置的密码。

===============================================

mysql命令行常用命令

mysql命令行常用命令

第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to user1@localhost Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;

 第六招、执行外部脚本文件

mysql - u test - p1234 --database BugFree < D:/GreenAMP/BugFree.sql

Tags: mysql