, K9 O9 z& a- R$ G2 J
去年11月有相关的报道,谷歌用深度学习守卫海洋:如何在 4.5 万张照片中找到一只濒危的“美人鱼”?
! H% E" r% M+ \. { 8 w9 S. y2 j" Z) t0 {; o
今年TensorFlow-dev-summit中又提到了这个是利用tensorflow自动化构建的海洋生物系统,使用的是大量的高像素的无人机航拍图片,然后在图片中找出到了”海牛“这种濒临物种。 6 D' X& @/ w% v. r7 N* I
% {. g8 q' M% C* Z 前几天我看到了报道中的内容,然后提问了 用Tensorflow自动化构建海洋生物系统,利用上万的图片训练,找到濒临物种“海牛”是什么原理? - 人工智能 - 知乎 ,后来经过回答者给出了该应用的相关论文《Automating Marine Mammal Detection in Aerial Images Captured During Wildlife Surveys: a Deep Learning Approach》,看了论文后发现,报道有误导,因为报道中给出的图片非常模糊,显得识别的效果非常出人意料,但是在论文中使用的训练数据和人工标注数据其实是非常高像素的无人机航拍图片,如图: $ H4 y" j. }# B5 F% e
3 c, r! ]# Y5 C* V1 ~4 [/ }' {$ a1 H 论文使用的方法其实也是非常常规的方法,而且主要也是有非常优质的数据,我们来看看。 & R [( o' I2 a7 ?# @
1. 系统概述
/ y. i. A' @ n0 s# A % e' @- e- Z M: w }
首先使用Simple Linear Iterative Clustering (SLIC)做图像分割,然后把每一个分割区块看做一个region proposal,然后对候选窗口使用DCNN做one-hot分类。 # C8 Y3 m: f6 i8 z1 u2 b
2. SLIC参数设置 SLIC中最重要的一个参数设置就是把像素分类的个数,论文中设置的个数的计算方式为:
q6 c4 c: t, ` - E2 q* r! F: e
其中,w,h分别是整个画面的宽和长,d是一个预测的每个bounding box的长,这个其实可以理解为就是”海牛“在画面中的大小。
6 E) T0 D# ^. A8 e N8 Q& Q 3. CNN结构 $ w& @% n; M7 G, x7 \
文中的CNN结构对比了两种结构, 第一种是没有使用maxout的结构:0 I' ]2 Y* M3 S4 C& z
3 `, n# R( h/ C) Z* {: p, ]
第二种是使用了maxout的结构: 9 D9 f! ?4 U, w9 @7 c
( E& I3 K3 ^, N6 P% }* P k 4. 实验结果
6 K5 y* J; V' t$ w7 [9 {2 q I8 @2 q: m1 x
- Y6 s3 v4 B, \' k3 g 准确度其实还不是很高,不过训练还是挺快的,文中用GPU训练,大概就训练了半天,实际应用中,据说可以帮助解决80%的海牛检测。 % e+ c* C5 W b
5. 延伸 [1]实验数据的HDF5格式和python code[2]另外一个关于bowhead whale的研究:《Trends in bowhead whales in West Greenland: Aerial
; w- }1 J+ x& L: M& _ surveys vs. genetic capture-recapture analyses》2 {1 W: H7 q3 X& r
---人工智能应用系列·介绍--- ! [7 h( x5 j8 k9 ~1 _' Q- R
本系列介绍各领域的一些有趣的人工智能应用,原理可能并没有那么复杂,目的是开拓大家的视野和思路,也许人工智能能做的事情比我们想象的还要多。 专栏地址:人工智能应用系列 - 知乎专栏 (欢迎投稿和关注)
9 {! _9 e# {1 o6 z# B/ r, W 本人的Live:「跨领域人工智能应用」系列Live的开篇--如何做跨领域人工智能应用 # X& t8 j8 x+ d+ e8 {/ a5 C
D0 b6 R1 O) g) y. B8 O6 ]! S% E% ^1 z+ a4 B
! h. r% \$ S! u: b0 x
7 R1 R, b* I2 I& v9 N, V
|