V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thinkershare
V2EX  ›  机器学习

使用机器学习数鱼苗的可行性?

  •  
  •   thinkershare · 2022-04-07 16:42:14 +08:00 · 3220 次点击
    这是一个创建于 990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前一段时间, 一个养鱼的朋友咨询了我一个问题, 就是用手机拍几分钟长的鱼苗视频, 然后用电脑计算数目, 准确性要求 99%左右, 这个在技术上是否可行? 我主要是疑惑视频处理, 因为鱼有相互遮挡, 而且在游动, 识别并标记后该如何去重, 是否可以做到高准确率. 另外她对最终软件的价格也比较敏感, 最好不要超过 1W, 这个成本下, 使用机器学习是否在成本上可接受(包括研发)

    31 条回复    2022-05-21 10:09:51 +08:00
    noe132
        1
    noe132  
       2022-04-07 16:48:50 +08:00   ❤️ 1
    不了解机器学习,但我觉得问题很简单,如果你用手机拍下来的视频,人通过慢放重复播放能数出来,那么相对来说用计算机也能比较容易实现。如果人都没法数,那计算机怎么知道要怎么数
    zuiluo
        2
    zuiluo  
       2022-04-07 16:53:23 +08:00
    清晰度足够的话,技术是可行的。对比视频数鱼,可能用图片数鱼简单的多,

    因为视频可能存在的技术难点,数到 X 条鱼,视频镜头转向别处,过了一会儿,又把镜头转回来。鱼的姿态已经发生了改变+镜头角度视角可能改变,这个时候怎么标记这条鱼已经被数过了
    Puteulanus
        3
    Puteulanus  
       2022-04-07 16:54:01 +08:00   ❤️ 1
    去重可以参考下这个连续帧计算车辆数的
    https://stackoverflow.com/questions/36254452/counting-cars-opencv-python-issue

    连续帧追踪移动目标好像是有不少成熟技术的
    https://python.iitter.com/other/273189.html
    kop1989smurf
        4
    kop1989smurf  
       2022-04-07 16:54:32 +08:00
    机器学习数鱼苗,可以。

    准确性要求 99%,不能拍鱼塘全景,视频内容不清晰,不行。
    westoy
        5
    westoy  
       2022-04-07 17:04:49 +08:00   ❤️ 1
    摄像头方案明显不可行啊

    鱼又不是 2D 穿梭的, 而且小鱼那速度, 你不想拍出一堆动态模糊还得用工业高帧率相机, 还得多机位, 还得改造水下布光

    我记得大致评估鱼群数量不都基于声纳的么....

    感觉加几个 0 都不一定能做出来 80%~90%可用的方案
    sadfQED2
        6
    sadfQED2  
       2022-04-07 17:04:52 +08:00 via Android
    理论上,如果水足够透明,每条鱼都能清晰看到,或许可行

    我想到的思路,

    1.使用 yolo 网络给每条鱼进行定位
    2.计算每条鱼的特征值,用来去重(思路类似人脸识别)

    但是 1 万块钱的预算是绝对不够的,1 万块钱别说开发了,你请人做数据标注都不够。另外,99%这个精度也挺难的,真要做到这个级别的精度估计得 500 万起步吧
    GeruzoniAnsasu
        7
    GeruzoniAnsasu  
       2022-04-07 17:05:43 +08:00   ❤️ 6


    高中没听说过标记重捕法?


    投放 100 只假鱼,让其均匀分散,然后重新捕捞采样计数假鱼和真鱼的数量,假设捞回来 2 假 30 真,那么鱼池中约有 30 *(100/2) 条鱼



    这种问题为啥要机器学习
    thinkershare
        8
    thinkershare  
    OP
       2022-04-07 17:07:13 +08:00
    @kop1989smurf 你可能没有养过鱼. 养鱼的每年都需要购买鱼苗, 鱼苗用杯子人一尾一尾的数, 然后放到一个更大的鱼盆里面, 在然后放进鱼塘. 这个过程中, 清晰度, 全景都不是特别大的问题. 核心在准确率, 如果准确度太低 90%一下, 就完全失去了实用价值.
    thinkershare
        9
    thinkershare  
    OP
       2022-04-07 17:08:42 +08:00
    @GeruzoniAnsasu 实际养鱼的反正没人这么用, 具体原因我也不大清楚!
    GeruzoniAnsasu
        10
    GeruzoniAnsasu  
       2022-04-07 17:09:58 +08:00
    为啥我直接跳过了「能不能机器学习」这个过程

    —— 因为不知道大家见没见过鱼苗,都只有拇指那么大点,一池子就是一坨黑糊糊的玩意,然后还有水流光照环境影响,根本就不是拍张照片能数清的,视频游动的就更不显示了,除非你说的是那种一缸子只有三五只的红色锦鲤,对比度大数量少。那还有希望用视觉算法「玩一下」


    鱼苗?

    ……
    thinkershare
        11
    thinkershare  
    OP
       2022-04-07 17:10:27 +08:00
    @GeruzoniAnsasu 买鱼苗不是这个流程
    sadfQED2
        12
    sadfQED2  
       2022-04-07 17:14:03 +08:00 via Android
    @thinkershare 你说的清晰和我们说的清晰不是一个概念,如果要基于鱼的图片做去重,至少要保证鱼的纹理能足够清晰,单纯拿手机摄影我觉得肯定清晰度不够。而且你手机拍摄过程中还可能晃动等各种问题,总的来说,我觉得无论多少钱这个思路都绝对不可行
    GeruzoniAnsasu
        13
    GeruzoniAnsasu  
       2022-04-07 17:15:15 +08:00
    @thinkershare 哦那我想象的场景有偏差,我以为是育苗的过程大范围估算种群的数量。

    你想找的是投放时精确计量一小部分,总量可数的方案

    那应该还是比较可行的,分散度和背景都还比较可控
    thinkershare
        14
    thinkershare  
    OP
       2022-04-07 17:16:44 +08:00
    @GeruzoniAnsasu 不是的, 我看过她拍的那个视频, 那个鱼苗其实用机器识别肯定是可以识别的(2 厘米左右长), 一个 1.5m 直径的盆里面大概 1,200 尾, 因为我搞过自动驾驶的点云识别,主要是去重和成本是否可行! 他们这个行业很多都是用人数的, 因此成本可以在后期复用摊薄研发成本.
    popok
        15
    popok  
       2022-04-07 17:37:04 +08:00   ❤️ 1
    @kop1989smurf #4 他是数鱼苗,不需要鱼塘。
    这种方案有现成得提供方得,我抖音上刷到过很多次了。

    类似的有建材行业数钢管得
    popok
        16
    popok  
       2022-04-07 17:40:47 +08:00

    网上直接就有相关得方案,可行性肯定没问题。
    至于相互遮挡覆盖,多次测试,校正不就完了。
    Laurenfrost
        17
    Laurenfrost  
       2022-04-07 17:41:51 +08:00
    让大家光凭想象讨论可行性,得到的也未必会是你想要的结果,不如你先放个图片或者视频作为例子,这样更直观一些。
    gamexg
        18
    gamexg  
       2022-04-07 17:48:50 +08:00
    你的鱼苗如果是这种密度,感觉没指望。

    https://www.xuxiaomu.com//ueditor/php/upload/image/yumiao3.jpg
    thinkershare
        19
    thinkershare  
    OP
       2022-04-07 17:48:53 +08:00
    @bellfahle 就和 @popok 提供的图片差不多, @popok 有现成的话, 我就去找下链接, 然后扔给她, 让她自己去咨询, 我自己也没时间帮她折腾. 我感觉原理上应该是没问题的, 我也在网络上搜索了一下, 没找到合适的成品解决方案.
    stimw
        20
    stimw  
       2022-04-07 17:52:00 +08:00 via iPhone   ❤️ 1
    @westoy 避免动态模糊不需要高帧率,提高快门速度就可以了。。动态模糊=快门 /帧率
    popok
        21
    popok  
       2022-04-07 17:55:58 +08:00
    @thinkershare #19 https://github.com/avBuffer/AI_AquaticIndustry
    github 上这个老哥就是做这种项目得,让他自己找他把。

    或者市场上还有那种成品机器。1W 预算应该也够了把。

    ttgo
        22
    ttgo  
       2022-04-07 18:01:15 +08:00
    我一个同学,大学老师,就与公司合作搞过这个,当时还有媒体报道过。
    rming
        23
    rming  
       2022-04-07 18:22:36 +08:00
    可以做,不过 1w 好像少了点
    kekxv
        24
    kekxv  
       2022-04-07 18:38:27 +08:00 via iPhone
    要不你量水吧
    dengshen
        25
    dengshen  
       2022-04-07 18:47:17 +08:00 via iPhone
    从大盆到小盆中间搭一个通道。摄像机记录通过通道的鱼苗++就行。有一定的角度防止鱼回流
    icegaze
        26
    icegaze  
       2022-04-07 19:24:28 +08:00 via Android   ❤️ 3
    楼主,
    你思路不对…
    工程上数鱼的尾数是这样的做的:

    用一个细玻璃管,
    内径大于一个鱼而小于两个鱼并列…
    将鱼放置于上面水池,
    玻璃管连接到下面水池,
    开水泵从下到上,循环走水
    驱动水流从上池向下池流,
    裹挟着鱼通过玻璃管,

    用光电计数器即可数清楚,
    一千多尾鱼一个小时就搞定了。
    czqzero
        27
    czqzero  
       2022-04-07 19:39:54 +08:00
    应该是可行的, 之前看过细胞计数(显微镜拍照, 机器学习识别)的 case ,但准确率能否达到这么高就不太清楚了。
    cshlxm
        28
    cshlxm  
       2022-04-07 23:22:37 +08:00
    通过类似过道的形式,可以盘点数量,准确率高低取决于密集度,无遮挡,慢速 100%准确率是可以做到的,成本纯说硬件,一个手机就能实现,软件研发成本就高了,熟练的调参工程师有充足样本的话,1 个月是能搞定的。我们在做类似产品 ,不是数鱼苗,而是猪牛羊
    thinkershare
        29
    thinkershare  
    OP
       2022-04-08 10:44:33 +08:00
    @czqzero 感觉目标太小的话只能提高照片的分辨率, 否则识别精度应该会很差!
    shm7
        30
    shm7  
       2022-05-20 23:57:39 +08:00   ❤️ 1
    @popok 公司以前做过这个,准确率还不错。鱼苗个数太多,个头太小不一定好做。而且要在水面光照比较理想的环境下处理才好。也许可以用 cv2 的一些形状匹配规则来做。
    thinkershare
        31
    thinkershare  
    OP
       2022-05-21 10:09:51 +08:00
    @shm7 我给朋友找了一个成熟的供应商, 我自己不折腾, 没有那个精力. 我感觉要做到商用精度也不是一个人短时间可以搞出来的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4657 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 05:36 · PVG 13:36 · LAX 21:36 · JFK 00:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.