很荣幸在本次活动中参与了某站点的最终审核过程。下面根据整次活动的过程进行梳理。
该活动以“将特定图片上传到微信朋友圈,发完后截图朋友圈,并上传截图”的形式展开,用户通过上传的朋友圈截图信息,就可以获得一定数量以上的奖励。
活动对上传的截图文件有以下要求:
- 请不要通过仅自己可见等设限方式上传到朋友圈
- 需要截图朋友圈带有自己发布内容的区域,不可以截图个人相册等其他区域
- 请完整截图,不要裁剪
- 如果同时加入了自己的文字推荐内容(如向大家介绍下本站),将有更高的几率获得更多奖励
同样,也列出了一些无法通过审核的原因:
- 图片没有标题栏或者标题没有写“朋友圈”字样,“我的相册”、“详情”均不能通过审核
- 上传编辑也不能通过审核
- 没有正确的图片,不能通过审核
- 请尽量包含朋友圈右侧个人头像区域,无法辨别是否本人所发的不能通过审核
结果一览
- 文件数量
在本次活动中,总共收集到了 10434
张上传照片,总大小 4.87 GB( 5,239,552,373 字节)
,平均单个文件的大小为 490.392 KiB
。图片大小最大为6.57 MB
,最小仅为1 KB
(当然是无效图片233)。
- 上传格式
用户上传的截图文件类型主要为jpg以及png格式(居然还有一张是gif格式的Orz)。其占比如下:
- 用户截图/提交时间
因为后台服务器并不对图片日期标签进行更改,所以通过读取图片文件的修改时间即可获取用户进行截图/上传的时间(这里有个假设就是用户截图后没多久就上传)。
在这些图片中,最早的一张的日期为2018/5/18 17:42
,最后一张上传图片的日期戳为2018/5/21 0:18
。通过对图片文件的时间进行统计并作图,可见,在20号15点52前提交人数均较少,而随着开放注册活动的持续进行,从20号19点30分到23点17分,出现用户参与活动的高潮,平均每次计数间隔(1分钟)均有超过30次提交。最高出现在20:23
,在这一分钟内出现了共54次提交。
(这个日活还是挺恐怖的23333
- 图片分辨率
如果假设用户未对图片做任何处理的话(实际上确实存在用户上传裁剪的或者其他情况存在),图片的分辨率应该是由手机自身分辨率确定的。通过使用Python的PIL库对文件夹内所有图片的分辨率进行统计,得到以下结果:有将近一半的上传照片的分辨率为1080 x 1920
(5727张),即其他绝大部分的图片分辨率为16:9
。很有意思的数据偏移点出现在 240 x 240
分辨率上,经过查询对应图片,发现该部分用户将网页提供的活动图片又原模原样的上传上来了23333 (掩耳盗铃是会被发现的23333
通过统计,最常见(数量超过50)的图片分辨率为下表
imgW | imgH | count |
---|---|---|
1080 | 1920 | 5727 |
750 | 1334 | 1587 |
1080 | 2160 | 573 |
640 | 1136 | 367 |
1242 | 2208 | 335 |
1440 | 2560 | 225 |
720 | 1280 | 204 |
1080 | 2220 | 76 |
1125 | 2436 | 72 |
1080 | 2339 | 69 |
540 | 960 | 59 |
1080 | 2280 | 57 |
- 审查结果
通过图片审查以及分类,将最终图片结果分为以下各类。(注:本处统计结果不代表最终活动评奖结果。
类别 | 说明 |
---|---|
合格图片 | 使用手机截图功能对朋友圈进行截图,并可能加入文字推荐或纯图片上传的图片。 |
违规图片 | 违反活动规则的图片,如:微信非朋友圈(编辑页面、我的相册等)截图、微信朋友圈无法进行身份识别的图片、上传到其他平台的截图、原始图片二次上传、无关图片 |
前期准备
为了防止用户名以及UID对审核人员的干扰(比如友情奖励什么滴啦),采用token形式对用户上传图片进行唯一标识,并对用户原始信息进行隐藏处理。通过token处理后,审查人员只能了解到token,而不能将站内信息与用户实际身份进行对应。
生成原理如下:
用户通过点击主站主导航里的按钮,向活动服务器发送含有自己username以及uid的ajax请求,活动服务器后台生成唯一的token,并通过303 Status Code重定向到带有token字段的上传页面。
后记
本次分析本来是想使用Python机器学习的方法进行的,奈何小样本跑下来看了看,发现识别和分类的情况并不理想,而且由于活动的性质,也不好怎么做进一步的展开说明。所以也就不贴什么code了,就这么4张图来总结吧~~