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)。


