机器学习系列之:怎么样数鸡?(1)

in #cn7 years ago (edited)

上两周,我去剑桥听了 DDD 开发者大会,DDD是 DeveloperDeveloperDeveloper 的缩写,是英国比较有名的 .NET 开发者大会。来自微软的大神 Gary Short 讲了一个如何用 机器学习来数鸡的讲座,我印象深刻,于是想整理一下和大家分享。

2017-09-16 08.33.20.jpg

鸡场数鸡是件很痛苦的事情,因为鸡嘛,跑来跑去,人工数是不太可能的,所以才会有这个问题。最后面想出一个方法就是当所有的鸡都在室内鸡场的时候,开足灯光,然后从上面拍张照片,然后我们的目的就变成了,快速的数一数照片中的鸡。比如这个:

c1.jpg

当鸡的数量少的时候,人眼一下子就看出来了,但鸡场少说也有成千上万的鸡,人眼数是费时费力的,这时候我们就要让计算机学会数鸡。

问题一:死鸡怎么办?
答案:没关系,假设数得N只鸡,把门打开,活鸡跑出去,然后死鸡就可以数了(同样可以拍照让程序来数)

问题二:需要多少的准确率?
答案:对于鸡场来说,他们不需要100%的准确率,如果从一张照片中很快的得到90%的准确度就已经乐得屁颠屁颠了。

数鸡需要几步?

简单来说,五步:

  • 数据筛选 Data Reduction
  • 灰度化 Greyscale
  • 计算阈值 Threshold
  • 变成0和1
  • 计算分类 Cluster

数据筛选 Data Reduction

这步没啥好说的,包括图片裁减 (Crop) 和去掉无用的背景信息。 缩小图片大小有助于后面加快分析和计算。无用的信息属于噪声,会影响算法分析的准确度。

灰度化 Greyscale

图片色彩鲜艳,不利于计算机分析(不同的色彩在计算机眼里属于不同的变量),我们可以通过计算亮度 Luminosity 来把不同的色彩变成单一的数值,也就是把 RGB 用以下的公式来计算亮度:

Gary Short 的代码在: https://github.com/garyshort/chickens/blob/master/ChickenCounter/ChickenCounter/Program.cs

其中这段函数就是把一图片变成 灰度:

当然你也可以用笨方法,遍例图片每个点相素,不过这样的代码实现效率就较低。

陪媳妇去了,未完待续,请听下文分解,请见谅……


机器学习系列之:怎么样数鸡?(1)

@justyy 是CN 区的点赞机器人,对优质内容进行点赞,只要代理给 @justyy 每天收利息(100 SP 每天0.04 SBD)并且能获得一次相应至少2倍的点赞,可以认为是VP 200%+ ,详细请看:

Sort:  

哈哈,有意思

把大象放进冰箱要几步?

三步,打开放入关上,哈哈

This post has been ranked within the top 80 most undervalued posts in the second half of Sep 29. We estimate that this post is undervalued by $17.59 as compared to a scenario in which every voter had an equal say.

See the full rankings and details in The Daily Tribune: Sep 29 - Part II. You can also read about some of our methodology, data analysis and technical details in our initial post.

If you are the author and would prefer not to receive these comments, simply reply "Stop" to this comment.

开发好了就是很实用的鸡场神器

支持,希望再接再厉。你正数着鸡呢,媳妇就过来啦?

嗯,就过来了,过来了,来了,了……

我属鸡的,你让我感觉这你这是含沙射影哈哈哈哈哈哈

这个有点意思哈哈哈

This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond

This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond

Coin Marketplace

STEEM 0.16
TRX 0.12
JST 0.026
BTC 56905.21
ETH 2508.41
USDT 1.00
SBD 2.36