参加今年微软的 Hackathon 是 2019 年 7 月份的事情,但是后来各种各样的事情,考托、考G、网申……就给耽搁了。我本来以为自己的记忆力足够好,几个月以后也能写很多东西,然鹅……现在发现好像已经忘得差不多了,只能凭记忆写写大致的感受……

(小声:不过好在当时拍的照片够多,就用图片凑字数吧~~

为什么要参加 Hackathon?

  • 可以见识很多大佬,结交有趣的小伙伴(×)
  • 有思维的碰撞,能增长见识、拓宽眼界(×)
  • 锻炼代码能力,能做出有实用价值的产品(×)
  • 可以吃到很多免费的零食(√)
  • 可以拿到一件免费的衣服(√)
  • 可以拿到很多免费的贴纸(√)
    于是……

    贴纸[1/1]任务完成

    衣服[1/1]任务完成



    零食[3/3]任务完成
    正文结束。
    以下是花絮。
    今年7月份的时候上海说要垃圾分类,于是大家觉得用这个东西来做 Hackathon 可以蹭一波热点,完美提供了破事思路和应用价值,就有很多 FTE 不约而同立项,后来在韩老师的牵头下,几个小组合并,组成了一个大组,叫做 Intelligent Garbage Classification。
    顾名思义,这个项目主要就是智能垃圾分类。我是 7 月 1 日开始实习的,大概一两周之后才开始加入这个组,那时微信小程序端已经做得差不多了,而韩老师他们想 toB 和 toC 两个方案都做,toC 就是一个微信小程序,toB 的话想做一个不依赖网络的、部署在 Edge 设备上的模型。恰巧我所在的组是与 Azure IoT 相关的,韩老师那里也有树莓派等设备,就让我先尝试。
    微信小程序端我没有参与,所以说不来太多,只能偷点 PPT 来说一说。主要的卖点是我们支持一次识别多个物体,而且准确率超高。

    别的小程序识别率不够高

    我们的小程序支持一次识别多个物体
    而 toB 项目是我全程参与的,从模型的训练,到 IoT Edge Runtime 的部署,再到树莓派展示线路板的搭建和 LED 小灯控制程序,很多内容都是我亲力亲为的,所以了解的非常清楚。
    模型是利用 Microsoft Custom Vision 来训练的,它原生支持导出成树莓派上能运行的模型代码。之后利用一个摄像头拍摄一张照片,并作为输入给模型,模型输出分类后的结果,树莓派根据结果亮灯。

    一开始就很劝退啊,各种迷之不能运行,就连微软内部都查不到可以查的文档……
    终于好不容易运行起来了,也能成功拍照了,但是也不知是摄像头的性能不行,还是我手上这块树莓派的存储不行了,拍照的速度远远低于预期,并不是秒拍……


    算了,能用就行。
    由于这个边缘设备是不联网的,这意味着当模型下载到本地的时候,可以放在垃圾桶边上,或者别的地方,实现离线运作。
    但是同时由于 Azure IoT Service 的存在,如果需要更新模型数据,只需要将设备联网,就可以实现 OTA 更新。
    韩老师帮我翻箱倒柜,找到了可能也许大概是全微软最稀缺的:面包板、杜邦线、小灯……

    我搞了一个展示用的电路逻辑。
    最终 demo 的效果是:垃圾放在摄像头前面,摄像头拍照,输入给模型,模型返回结果,查表得垃圾分类,亮起对应小灯。
    更一般地,在实际应用中,甚至可以改造成,查表得垃圾分类,对应垃圾桶的盖子自动打开,或者,分拣传送带自动导向指向对应方向……
    这个项目的代码已经在开源在 GitHub:https://github.com/jxtxzzw/Microsoft-Hackathon-2019-Intelligent-Garbage-Classification-IoT-Edge-Solution
    演示视频和 PPT 也已经上传了。
    可(给)以(个)自(star)取(吧)。
    我们组最终获得了 The Most Impactful Award。

    我也不转正,什么转正筹码,对我来说也没有意义。
    不过,主线任务(衣服、零食、贴纸)已经完成了,附带了一个彩蛋就是韩老师请大家吃了一顿很好吃的午饭~~,支线任务就没人 care 了。



但是要说 Hackathon 有什么收获,其实最大的收获就是,真的是大家都在利用自己的能力帮助这个世界上千千万万的人。
视频中说的“团圆系统”已经成为一个美谈,除此而外,我看到了:为了解决“卫生间总是人满,上个卫生间要跑好几楼找哪里有空”这个问题的的厕所预约程序;我看到了为了解决广西贫困地区养鸡问题的智能手机APP;我看到了关于优化餐厅就餐问题的;我看到了关于旧物交换的……
另外有一点感触也特别深,就是在养鸡那组的 leader 那里,我听到他说,他们希望程序越简单越好,本来以为,就输入每天鸡生了几个蛋,输入一个数字,就会根据传感器收集的温湿度信息判断一大串的信息,比如是不是有很多鸡得病了……但是,就是简单到这个程度,对于广西那边有些农民,也是难于上青天,就连让他输入几个数字都做不到。leader 说,他发现有些农民,不要说是小程序了,他理解不了小程序的概念的,只能做成一个 Bot,其实是机器人在回复,但是他以为是他微信联系人里面的一个真人,在回复,如果做成小程序,他们可能真的用不了。leader 说,就连输入一个数字,都很难,他看到输入框,不知道要手在屏幕上点一下,才能 focus 到下一个 Input box……
那时候我就想起了当时翁凯老师有吐槽过的一句话“有些我们习以为常的事情,在很多人眼中是天方夜谭”,翁凯老师贴了一张图,是他的学生问他的。翁老师在课堂用 Eclipse 做 Java 语言编程课的 demo,用的是 编程字体,有一个 return 0。翁老师的字体下,0 中间有一个斜线。课下,很多学生发信息问他,老师,请问θ(theta)怎么打,老师,为什么我的θ没有变颜色……
我又想起了之前看到 Fenng 大说过的一句话:怎样算是「用户体验」良好?就是你做的事情必须为对方考虑,而且,你的确考虑到了。有的时候,我们把为对方考虑这种行为,也叫做同理心。
可能这个才是我这次 Hackathon 最大的收获。
世界因为你们才会变得更好。
上天若是不生我们,这世间该是有多无趣啊。


Microsoft Hackathon 2019 留念的更多相关文章

  1. Microsoft office 2019 正式版镜像下载

    http://www.xitongtiandi.net/soft_yy/4373.htmlMicrosoft office 2019 正式版镜像下载 http://www.xitongtiandi.n ...

  2. Microsoft Word 2019 mac破解版下载

    Microsoft Word 2019 Mac版是大名鼎鼎的Office办公软件组件之一,能帮助你进行文字排版,可方便的进行创作项目.作业.信件.博客.剧本.笔记.评论文章或简历. Microsoft ...

  3. Microsoft Surface 2019新品发布会汇总

    Microsoft Surface 2019 新品发布会汇总 10月2日晚,微软举行了Microsoft Surface 2019秋季新品发布会,本次发布会涉及如下设备内容等: SurfaceLapt ...

  4. office 2019 下载地址

    office2019激活密钥 W8W6K-3N7KK-PXB9H-8TD8W-BWTH9    Office2019下载地址: 下载地址 专业增强版(强烈推荐): http://officecdn.m ...

  5. Word 2019 for mac更新喽!

    新的Word2019添加了许多的新功能,提供了新的文档处理方式,如改进的数字笔功能.焦点模式.学习工具和翻译,为用户提供了用于创建专业而优雅的高效文档工具,帮助用户节省时间,并得到优雅美观的结果,有效 ...

  6. office visio 2019 下载激活

    安装 下载 office ed2k://|file|cn_office_professional_plus_2019_x86_x64_dvd_5e5be643.iso|3775004672|1E4FF ...

  7. 微软SQL Server 2019 全新发布,更新内容亮点都在这里了

    IT之家11月7日消息 在Microsoft   Ignite 2019 大会上,微软正式发布了新一代数据库产品SQL Server 2019.使用统一的数据平台实现业务转型SQL Server 20 ...

  8. office project visio 2019

    office2019,2016,2013,2010 Visio.Project 各版本下载激活!点我! http://blog.sina.com.cn/s/blog_170abd40a0102yah2 ...

  9. Office/Visio/Project 2019 专业版iso

    一.Microsoft Office 2019专业增强版1.简体中文版Office Professional Plus 2019 (x86 and x64) – DVD (Chinese-Simpli ...

随机推荐

  1. Nginx之什么是反向代理(一)

    什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...

  2. 详解Object.create(null)

    在Vue和Vuex的源码中,作者都使用了Object.create(null)来初始化一个新对象.为什么不用更简洁的{}呢? 在SegmentFault和Stack Overflow等开发者社区中也有 ...

  3. Java的值传递和引用传递的说法

    学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java ...

  4. Java8-Stream-No.11

    import java.util.Arrays; import java.util.List; public class Streams11 { static class Person { Strin ...

  5. 解决Spring对静态变量无法注入问题(转)

    问题今天在学习的过程中想写一个连接和线程绑定的JDBCUtils工具类,但测试时发现一直报空指针异常,上网查了之后Spring并不支持对静态成员变量注入,所以光试用@Autowired肯定是不行的.可 ...

  6. python不换行输出

    python默认的print是换行输出的.要想实现不换行输出,方法如下: python 2.X版本: print('要在print后面加个逗号-> , '), python 3.X版本: pri ...

  7. jvm虚拟机笔记<六> 运行期优化

    这节我们总结一下JVM运行期的优化问题. https://www.cnblogs.com/zhouyuqin/p/5224573.html JVM运行期优化 即时编译器(JIT) 编译对象与触发条件 ...

  8. BZOJ 1195: [HNOI2006]最短母串 AC自动机+状压+搜索

    思路比较直接. 由于 $n$ 很小,直接定义 $f[i][j]$ 表示当前在自动机中的节点 $i,$ 被覆盖串的集合为 $j$ 的方案数. #include <bits/stdc++.h> ...

  9. mac 使用express -e ./

    利用express构建一个简单的Node项目 命令: express -e ./ -e表示使用ejs作为模板 ./表示当前目录中 使用上面的命令之前我们应该使用npm安装express框架 sudo ...

  10. node中fs内置模块

    Node.js内置的fs模块就是文件系统模块,负责读写文件. 和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法. 回顾一下什么是异步方法.因为JavaScript的单线程 ...