Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DoIs] 原始数据集整理 #2

Open
4 of 7 tasks
ZoomQuiet opened this issue Sep 9, 2019 · 5 comments
Open
4 of 7 tasks

[DoIs] 原始数据集整理 #2

ZoomQuiet opened this issue Sep 9, 2019 · 5 comments
Labels
question Further information is requested wontfix This will not be worked on

Comments

@ZoomQuiet
Copy link
Collaborator

ZoomQuiet commented Sep 9, 2019

(优先级别标定-> XXXL|XXL|XL|L|M|S 参考: TEE-style)

背景

~ 阐述 记录/问题/事件/... 发生的背景

demo/DoIs at master · tfugzh/demo

分析

~ 先给出自己的态度以及尝试

一个可用的 AI 模型, 很大程度上依然训练集的良好;
所以, 从根据背鳍外形 来自动识别目标看,
需要的照片应该是:

  • .jpg 统一格式
  • 统一形状 -> 1:1 长宽比
    • 具体像素不作要求
    • 但是, 至少高于 lpx72 屏幕分辨率
  • 统一内容:
    • 只包含一位海豚的背鳍
    • 尽可能:
      • 背鳍形状在图片中央
      • 不包含其它海浪等等干挠
    • 角度/光线/阴影/...不作要求
  • 统一预处理:
    • 不进行任何颜色/边缘之类 PS 调节
    • 只进行关键部位的正方形截取
  • 统一标定:
    • 针对已知海豚的照片准备训练照片集
    • 选择其中三位识别照片最多的
    • 完成照片内容处理后, 统一照片命名为:
      • 海豚编号-照片编号.jpg
      • 海豚编号 - 就是档案中海豚名称要求:
        • 全英文小写字母
        • 可包含数字
        • 首字母不得是数字
        • 不包含 -._+~等等连字符
        • 不包含空格
      • 照片编号 - 就是同一位海豚各种识别出来的图片样本序号, 要求:
        • 全数字
        • 不包含 -._+~等等连字符
        • 不包含空格
        • 格式 000001
          • 6位数字
          • 前缀补0
  • 期望数量:
    • 每位海豚至少准备 200 张照片, 以便开展模型基础训练

方案

~ 给出可以追踪进展的行为追踪顺序

  • XL 规划整体
    • M 达成共识
  • L 明确样本照片规格
    • M 照片示例样本明确
  • M 接收第一批样本
  • L 开展第一轮 AI 训练
  • S ...

记录

~ 原始数据/过程/现象/...收集

变更

~ 记录合并大家 建议/增补/.. 来的主要变动信息

  • 171117 ZQ init.
  • ... 使用日期 作者 记要 <-- 这种行格式来嗯哼
 o
  o
ooo

参考: 禁止事项清单

@ZoomQuiet ZoomQuiet added question Further information is requested wontfix This will not be worked on labels Sep 9, 2019
@ZoomQuiet ZoomQuiet mentioned this issue Sep 9, 2019
@ZoomQuiet
Copy link
Collaborator Author

ZoomQuiet commented Sep 9, 2019

「 MMMM: 我先介绍一下我们之前的数据收集和处理流程哈

  • 0: 哈哈哈哈
  • 1: 出海找海豚,找到后给每群里的每一头拍照
  • 2: 回来后把照片按群分文件夹,重命名
  • 3: 按照对焦,清晰度,角度,光照等人工给照片评分(后续识别只用一定质量以上的照片)
  • 4: 裁剪质量好的照片,把水之类的背景去掉,留下海豚露出水面的部分
  • 5: 把4的照片人工分成不同的个体
  • 6: 把5的照片和数据库里面已经识别的个体做比对,已经识别过的就加一个新的目击记录,没识别过的就增加一个新的编号 」

是也乎,( ̄▽ ̄)

太辛苦了...整体过程要多久? 处理一次出海的数据?

  • 现在我们就是尝试基于 TensorFlow 自动化 第5/6 步的工作;
  • 在这个基础上才可能逐步自动化 第3/4 步工作.

@ZoomQuiet
Copy link
Collaborator Author

@linsong: 昨天从早到晚一天在外面跑,早上系统看了下,说说想法。

大妈竟然称呼每位海豚,真是尊敬啊。

关于数据集的准备,前面聊天最后三张图就很好,宗旨是让所要研究的目标尽量大,海水背景尽量小。作为纳入训练模型用的素材,对于每一只,不管哪次拍的只要能用上的就都纳进来,毕竟姿态光照什么的越丰富越好。

关于特征,因为机器识别毕竟不同于人眼,一个海豚身上所有斑点加起来的像素点的个数应该还没有背景海水多,所以恐怕从机器识别的角度,背鳍远重要于斑点。我个人对这个案例里面让机器用斑点来区分持非常不乐观的态度。(当然demo1.0可以说先通过背鳍做了初步筛查,减轻了后续人眼验证的重复劳动量?)

之前看过养殖场对猪牛之类的根据身上斑点做分类的,和海豚的区别在于,养殖场可以通过通道设计,把每只动物姿态一致的限制在一个位置一小段时间,这样你采集到的图片都是相当一致的,并且效果比较好的那些的斑点占躯体的面积,要远大于海豚斑点的面积。(当然,说到底我觉得养殖场这种识别是为了作秀,你都养殖了直接在脖子或者耳朵上栓个牌不就得了?)

咱们一开始是不是可以先静态的只考虑目前这些海豚的情况,至于长大了体征有变化,或者又被咬了一口之类的,可以2.0,3.0版的时候再说?(其实如果被咬了,那么从机器识别角度来说,之前没被咬的那项样本就废掉了,因为原有特征没了,今后再识别就得用咬了之后的了)

至于到底是发现了新海豚,还是由于光照角度什么的分明是原来的某只但是没匹配上,这个就需要试了。这一点就像大妈讲的那个mnist手写里面,新来一个人写一个数字2,只是和原有数字2风格不一致,那么也可能认错。或者你写个m,分明不是数字,但是可能也勉强的给分到某一个数字那一类里面。

你们现在已经识别了的种群里面总共多少只了?

最后,道理我都懂,但是海豚不是很白啊。 」

@mmmmm: 珠江口现在大概两千多,我们数据库里有两千三百多,已经识别了绝大部分了,包括一些已经死的,可能还会有还没发现的或者新生的没在数据库里 」

我们的数据库是目前国内最大的了 」
[呲牙]不是很白的那些是还没成年的,成年后就会全白 」

@mmmmm: [发呆][发呆]上次吃饭的时候不是说机器可以自动学会鉴别特征吗? 」
它会不会自动选择用背鳍形状还是斑点? 」

是也乎,( ̄▽ ̄)

当然可以自动,
但是, 前提是:

  • 0: 已经有可用的 背鳍以及斑点 针对专用识别模型
  • 1: 以及在这之上的, 分辩当前照片 背鳍还是斑点 那种特征可用的自动判定智能模型
  • 2: 以及在自动判定模型之上还有从背景中识别海豚的模型
  • 3: 以及在识别海豚模型之上能自动调节照片的处理过程
  • 4: 以及在...

是的, 人工一眼看出来的事儿,
到 人工 智能就必须分解为一个个专用模型,
混合起来, 不是不可能, 只是成本太大,
比如说:

  • 根据良好的外形特征训练一个可用模型
  • 可能只需要几百张照片, 几分钟,
  • 但是, 已经自动分解出上千种特征了

而, 要一次综合对边缘外形和斑点来识别

  • 可能就需要几十万张良好标定的照片
  • 以及几个月训练时间....
  • 因为, 可能自动提取并追踪上百万种特征了...

因为, 你想, 之前就针对一条边界曲线不同角度下的识别,
变成一堆特定封闭图形的组合识别,
这种计算量, 是单一特征的指数倍,
而不是简单的倍数...

也就是说, 难度从1 变成了 1000000 」

但是, 不妨碍我们折腾出一个,
或是, 一组针对性识别模型了.

到时, 一位新志愿者要作的事儿可能:

  • 0: 将所有照片从 SD 卡中导出来
  • 1: 整理到一个指定目录中
  • 2: 运行 DoIs
  • 3: 获得一组 Excel 表格, 包含根据自动识别结果排序的报告:
    • 没识别出来的,给出可能性排序
    • 识别出来的, 根据每位海豚的代号为对应文件
      • 每一行是:
      • 照片文件名
      • 识别出哪位的精度度, 从 50~99%
      • 识别特征列表:
        • 背鳍
        • 斑点
        • 体型
        • 肤色
        • 眼神
        • ....
      • 以及每种特征的精度, 从 0%~90%

这样, 这位从来没出过海的志愿者,
就可以根据数字来明确, 哪些照片可用,
哪些要请教老司机...

瞬间将几万张照片的逐一处理,
变成几百张不确定照片的综合会诊...

这就是 AI 现在可以期待的.... 」

@ZoomQuiet
Copy link
Collaborator Author

「 莫莫莫莫: 这个工程量有点大,有没有什么方法或工具可以快速截取的? 」


是也乎,( ̄▽ ̄)
有的....
但是, 前提也是先人工完成一两位的整理,
明确其中的规律, 然后来寻求对应工具,
否则, 照片处理工具太多了,
现在我们这种行为, 属于哪种, 没明白前找工具....
只能先用通用的 比如说 Photoshop,
标准定比例截取功能...
如果熟悉了配合快捷键, 比定制工具还快....

而且, 这里的 1:1 只是俺的建议,
具体固定到什么比例, 可以最大程度的:
0: 只包含关键特征
1: 屏蔽尽可能多海等无关像素
...

都只能在新目标驱动下作起来, 才能发现的

@ZoomQuiet
Copy link
Collaborator Author

「 莫莫莫莫: 假设AI训练好后可以识别了,后面拿给它识别的照片也需要先处理成这样吗?还是可以给它完整的照片去识别 」


是也乎,( ̄▽ ̄)
参考: [DoIs] 原始数据集整理 · Issue #2 · tfugzh/demo
#2

这些都阐述过,
以后, 当然可以在明确 AI 鉴定基础上,
正式立项,
那么, 增补上识别->自动裁剪->鉴定 数据自动处理流水线
才能真正完成全部自动化,
一开始就想全部自动化,
将发现, 不可能, 因为可选择的变化太多, 无从自动化

@ZoomQuiet
Copy link
Collaborator Author

「 莫莫莫莫: 截取的照片里面背鳍的占比需要一致吗?比如这样行不行? 」


「 莫莫莫莫: 因为海豚有的露出水面多一点,有的少一点 」


「 莫莫莫莫: 所以按照相同比例截取的话,有的可截取的部分会多一点,有的会少一点 」


是也乎,( ̄▽ ̄)
其实和现场展示的 AI 模型训练机制一致,
无论你怎么截取, 最终都是变成一个曲线而已,
AI 根本就是不可能理解照片内容的,
人家只是针对矩阵化的数据从中求导而已...
所以, 既然,
我们确认可以作为海豚靠谱识别特征是
背鳍 的 边缘曲线
那么, 编辑上, 照片中就应该尽可能仅仅包含这一关键特征的信息,
其它任何无关曲线, 尽可能不出现....

综上, 比例,位置, 大小, 颜色,,,
一系列对人眼有意义的东西, 对 AI 都无意义,是干挠....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant