2015 杭州黑客马拉松赛后随笔

2015 杭州黑客马拉松

上个周末(10月24,25号)第一次参加了黑客马拉松(hackathon),其实之前或多或少都了解过一些,这次比赛是偶然间上sf看到的,我几乎没多想就报名参加了,期间怂恿了几名同事一起去玩一下无奈他们都是比较懒的人,所以这次的比赛我独身一人前往


大赛回顾

由于这是我第一次参加hackathon,之前通过看2014比赛的视频发现了有一些参赛者是开发智能硬件这块的,起初我以为大赛的主办方会提供一些智能硬件和API供我们选择使用。等到比赛开始才知道原来hackathon就是任意发挥,不过今年还是有主题的:技术与生活。


这次由于是一个人来参加的,我是直接在现场组队,非常幸运的遇到了“陆熠”,“Arthur yang”,“老方”,“小江”,他们都是非常优秀有潜力的hacker,虽然最后没有获奖有点遗憾,但是一起codeing真的是非常享受的一件事。附一张合照:
图片描述

Hack

这次比赛我们的作品是“智能抓拍”,就是利用“陆熠”同学带来的“直升飞机”飞行拍摄视频,通过人脸识别将头像显示到网页上。


起初我们的想法是拍摄照片然后将人身上的服饰抓取出来,然后通过数据库匹配相应的服饰(比如找到某宝的同款)无奈队伍里没有对图像算法非常精通的人,所以我们只能改变计划

使用到的技术

主要的功能实现有3块

  • 1:将直升飞机拍摄的视频转化为图片

  • 2:将图片进行人脸识别

  • 3:将人脸图片进行展示

直升飞机视频转化图片的模块由“陆熠”,“Arthur yang”,“老方”合作完成,大概就是使用OpenCV的api将视频流(RTSP协议传输)转化为图片,然后以5秒左右的时间发送到服务器(为什么这里要5秒左右,是因为视频流是连续的,如果不间断的发送图片就会导致人脸识别的重复,虽然代码是这么写的,但是实际效果还是重复的居多),大致的过程如下:

直升机->iPhone: 利用wifi发送视频流(RTSP协议)
iPhone->服务器: 发送图片(间隔5秒)

服务器模块是我实现的,大概流程就是将iPhone传输过来的图片,上传到阿里百川的CDN上,然后再调用Face++的接口将图片的信息解析出来

服务器->百川CDN: 上传图片
服务器->Face++API: 发送图片url
Face++API->服务器: 返回相关信息

后端代码是直接使用java+mysql实现的,并没有什么太多的难度。代码就不上传了,因为时间紧写的也比较丑陋


最后就是前端显示的模块,由于我平时写前端不多,所以这次的大多数时间都花在前端调试上面,就是将识别出人脸的图片实时的更新到“1024”的字幕上,最终效果如下:
图片描述

其实还有一个前端展示的模块就是:iPhone传输图片后,将识别出的人脸的信息发布到网页上(性别,年龄,状态)这里是直接调用了Face++的api,因为没有时间给我们自己hack图像识别的算法


关于人脸识别重复的问题,最后由于网络的io时间过长,我不想每次都匹配CDN中的图片导致实时性的下降就放弃这个操作,所以最后得到的图片效果并不佳

后记

非常可惜由于第二天下午有事,我不能和组员一起参与作品的展示,还是非常高兴能参与hackathon这样的活动,但是以后估计不会再熬夜Coding了,身体有点小吃不消,下次有机会还是会来继续hack,最后附一张彩蛋:(广大程序员的梦想)

图片描述


一个年轻hacker的世界
想到什么就写什么,不局限于代码

just a hack

132 声望
7 粉丝
0 条评论
推荐阅读
克雷格.兰丁&hagersten (CLH Lock)
CLH lock is Craig, Landin, and Hagersten (CLH) locks, CLH lock is a spin lock, can ensure no hunger, provide fairness first come first service.The CLH lock is a scalable, high performance, fairness...

风花狂月9阅读 7.8k

Java 编译器 javac 及 Lombok 实现原理解析
javac 是 Java 代码的编译器12,初学 Java 的时候就应该接触过。本文整理一些 javac 相关的高级用法。Lombok 库,大家平常一直在使用,但可能并不知道实现原理解析,其实 Lombok 实现上依赖的是 Java 编译器的注...

nullwy10阅读 5.9k

与RabbitMQ有关的一些知识
工作中用过一段时间的Kafka,不过主要还是RabbitMQ用的多一些。今天主要来讲讲与RabbitMQ相关的一些知识。一些基本概念,以及实际使用场景及一些注意事项。

lpe2348阅读 1.8k

封面图
Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 1.8k评论 2

封面图
Redis 发布订阅模式:原理拆解并实现一个消息队列
“65 哥,如果你交了个漂亮小姐姐做女朋友,你会通过什么方式将这个消息广而告之给你的微信好友?““那不得拍点女朋友的美照 + 亲密照弄一个九宫格图文消息在朋友圈发布大肆宣传,暴击单身狗。”像这种 65 哥通过朋...

码哥字节5阅读 1.1k

封面图
NB的Github项目,看到最后一个我惊呆了!
最近看到不少好玩的、实用的 Github 项目,就来给大家推荐一把。中国制霸生成器最近在朋友圈非常火的一个小网站,可以在线标记 居住、短居、游玩、出差、路过 标记后可生成图片进行社区分享,标记过的信息会记录...

艾小仙5阅读 1.5k评论 1

好好的系统,为什么要分库分表?
今天是《分库分表 ShardingSphere 原理与实战》系列的开篇文章,之前写过几篇关于分库分表的文章反响都还不错,到现在公众号:程序员小富后台不断的有人留言、咨询分库分表的问题,我也没想到大家对于分库分表的话...

程序员小富3阅读 1.5k

just a hack

132 声望
7 粉丝
宣传栏