上两周, 我去剑桥听了 DDD 开发者大会, DDD是 DeveloperDeveloperDeveloper 的缩写, 是英国比较有名的 .NET 开发者大会. 来自微软的大神 Gary Short 讲了一个如何用 机器学习来数鸡的讲座, 我印象深刻, 于是想整理一下和大家分享.
鸡场数鸡是件很痛苦的事情, 因为鸡嘛, 跑来跑去, 人工数是不太可能的, 所以才会有这个问题. 最后面想出一个方法就是当所有的鸡都在室内鸡场的时候, 开足灯光, 然后从上面拍张照片, 然后我们的目的就变成了, 快速的数一数照片中的鸡. 比如这个:
当鸡的数量少的时候, 人眼一下子就看出来了, 但鸡场少说也有成千上万的鸡, 人眼数是费时费力的, 这时候我们就要让计算机学会数鸡.
问题一: 死鸡怎么办?
答案: 没关系, 假设数得N只鸡, 把门打开, 活鸡跑出去, 然后死鸡就可以数了(同样可以拍照让程序来数)
问题二: 需要多少的准确率?
答案: 对于鸡场来说, 他们不需要100%的准确率, 如果从一张照片中很快的得到90%的准确度就已经乐得屁颠屁颠了.
数鸡需要几步?
简单来说, 五步:
- 数据筛选 Data Reduction
- 灰度化 Greyscale
- 计算阈值 Threshold
- 变成0和1
- 计算分类 Cluster
数据筛选 Data Reduction
这步没啥好说的, 包括图片裁减 (Crop) 和去掉无用的背景信息. 缩小图片大小有助于后面加快分析和计算. 无用的信息属于噪声, 会影响算法分析的准确度.
灰度化 Greyscale
图片色彩鲜艳, 不利于计算机分析(不同的色彩在计算机眼里属于不同的变量), 我们可以通过计算亮度 Luminosity 来把不同的色彩变成单一的数值, 也就是把 RGB 用以下的公式来计算亮度:
Gary Short 的代码用于把图片变成灰度化:
当然你也可以用笨方法, 遍例图片每个点相素, 不过这样的代码实现效率就较低.
陪媳妇去了, 未完待续, 请听下文分解, 请见谅……
- 机器学习系列之: 怎么样数鸡?
- 机器学习系列之: 怎么样数鸡鸡? 大津算法来计算阈值
- 机器学习系列之: 怎么样数鸡鸡? 分类 Clustering
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK