Loggy 项目






4.87/5 (13投票s)
记录你的生活,每一天!
引言
Loggy 是一个开源项目,可以让你记录你的生活。它使用智能手机的麦克风和摄像头作为基本硬件来捕捉帧和音频流。这个项目的另一个重要组成部分是 mindwave 头戴设备。通过这个设备,我们可以获取我们的注意力水平。利用这些信息,我们可以选择记录图像或视频多媒体文件。
背景
Mindwave... 这是什么?
Mindwave 是 Neurosky 生产的一款创新型头戴设备。Mindwave 将脑电波转换成数字电子信号。该设备有两种版本:
- Mindwave 头戴设备:这是 Mindwave 的基本配置。它只能连接到 PC,通过 Neurosky 应用程序读取数据。它的颜色是白色。你可以通过此链接购买:http://store-eu.neurosky.com/collections/hardware/products/mindwave-1
- Mindwave 移动头戴设备:此版本允许通过蓝牙 SPP 通信连接到移动设备。该设备能更精确地检索脑电波。因此,该设备可以连接到 Android 和 iOS 操作系统。它的颜色是黑色。你可以通过此链接购买:http://store-eu.neurosky.com/collections/hardware/products/mindwave-mobile
Mindwave... 两种版本,我应该选择哪一个?
对于本项目的范围,Mindwave 移动版是必不可少的。该设备支持蓝牙连接,通过蓝牙连接,它以 RAW 模式将数据发送到连接的设备。通过检索到的数据,我们可以解析头戴设备读取的各种频率。
我需要什么来实现这个项目?
创建这个项目需要以下基本要素:
- 带前置摄像头的 Android 智能手机
- Windows Seven 或 8
- Mindwave 头戴设备
- Loggy.apk
- FileZilla 服务器
- 照片库
复杂的架构但模块化
Loggy 分为两个逻辑模块:
- 捕捉多媒体文件:多媒体文件由 Android 设备存储和处理。这些文件直接保存为图像和视频到外部 SD 卡内存。这样可以避免消耗内部内存。
- 面部标记和照片组织:所有多媒体文件都通过 Android 设备和 Windows 服务器之间的 FTP 通信进行保存。通过这种模式,我们每天都会卸载 Android 设备。文件下载后,我们必须使用名为“照片库”的软件对其进行分类。
捕捉多媒体文件
所有多媒体文件都在 Android 设备外部内存中临时捕捉、处理和保存。使用此方法,我们优化和简化了文件管理。允许捕捉文件的主要事件是由头戴设备提供的注意力水平。当注意力水平在 25% 到 60% 之间时,它会捕捉一帧。当注意力水平高于 60% 时,它会录制视频。每个视频长度为 10 秒。下方是逻辑图及其相应的源代码:
case TGDevice.MSG_ATTENTION:
attentionBar.setProgress(msg.arg1/20);
if((msg.arg1 > 25)&&(msg.arg1<60) && (!pictureTaken) &&(!recording)){
sndUtility.playShortResource(R.raw.chimes);
camera.takePicture(null, null, jpegCallback);
pictureTaken = true;
}else if(msg.arg1<50){
pictureTaken = false;
}
if(msg.arg1 > 60){
if(!recording){
try{
InitMediaRecoder();
mediaRecorder.prepare();
mediaRecorder.start();
recording= true;
}catch (IOException e) {
// TODO: handle exception
}
}
}
break;
类初始化
Loggy 的业务逻辑使用 Android 框架的两个基本类来捕捉多媒体文件内容。
Camera
类:此类别用于设置图像捕捉、启动/停止预览、捕捉帧以及获取每一帧进行编码和录制视频。为了正确使用 Camera 类,请按以下顺序执行步骤:- 通过其静态方法
open();
获取类实例 - 使用
setParameters()
检索默认设置 - 如果需要,修改返回的
Camera.Parameters
对象并调用Parameters(Camera.Parameters)
- 设置 surface holder 以查看预览
- 使用
startPreview()
方法启动预览
之后,我们可以使用
takePicture()
方法拍照。- 通过其静态方法
MediaRecorder
类:MediaRecorder
类用于录制音频和视频流。它需要Camera
类的实例。下方是创建正确MediaRecorder
对象的步骤:- 创建
MediaRecorder
类的实例 - 设置音频源
- 设置输出格式
- 设置音频编码
- 设置软件保存视频文件的路径
- 调用
prepare()
方法以根据上述设置初始化MediaRecorder
- 使用
start()
方法开始录制
最后,调用
stop
、reset
和release
方法将MediaRecorder
资源释放给另一个进程。- 创建
面部标记和照片组织
写完代码后,我们必须创建将多媒体文件发送到服务器的架构。使用的通信协议是 FTP(文件传输协议)。
智能手机配置
这一步非常简单。我们只需从 PlayStore 下载并安装 AndFTP 应用。
FTP 服务器配置
您知道 FileZilla Server 吗?如果您的答案是“否”,FileZilla Server 是一款允许创建 FTP 服务器的软件。使用它可以管理用户、主目录和相关权限。请按照以下步骤设置环境:
- 从这里下载 FileZilla Server 二进制包:https://filezilla-project.org/download.php?type=server
- 安装它
- 之后,运行服务器(图标在您的桌面上)
- 创建一个用户及其关联的 HOME_PATH - 此路径将包含 Android 手机捕捉的所有多媒体文件
- 使用 AndFTP Android 应用测试连接。
照片库
现在我们可以使用 Windows 照片库对传输的多媒体文件进行分类。打开照片库,然后单击左上角的蓝色按钮:
然后添加包含 Loggy 多媒体文件的文件夹
之后,在左侧列表中只选择 Loggy 的文件夹,然后单击“批量人物标签”以标记所有面孔
搜索人物
现在我们拥有了一个人物目录。通过照片库的搜索功能,我们可以知道例如何时遇到过某人,或者如果可能,我们可以知道我们在哪里遇到过他/她!
捕获的图像
以下是 Loggy 捕捉的几张图像!
- 我使用 Loggy:
- 我使用 Loggy(2):
- 我开车时:
- 我的鹦鹉
- 我的鬣鳞蜥:
结论
使用 Loggy,您可以记录您的生活并在 Facebook 上标记您的朋友。我使用这个项目已经很多天了,并且已经存储了数 GB 的数据!更多信息请访问我的网站(www.blesciasw.it)。