V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
v2mo
V2EX  ›  程序员

js 从图片获取 10 个色块,再对照试纸的比色卡,读取色块对应的数值,求思路

  •  
  •   v2mo · 72 天前 · 914 次点击
    这是一个创建于 72 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有个需求:

    尿检有那种试纸,比如,一个试纸条,上面有 10 个测试项目(矩形小纸片贴在试纸上,有间隔),尿液侵泡几十秒后,就能读取数值了。

    现在要把整套程序化,自动识别数值。

    因为程序运行环境限制,js 实现最好。

    这似乎是 CV 计算机视觉领域的问题,难道要用 opencv 。

    感觉好难。有大佬能接吗?(可外包,有偿)

    给个思路也行。

    目前我想到的难点: 1 、从扫一扫那样的照片帧中,一帧一帧的识别图片

    2 、一个图片帧中,识别出 10 个色块,有点麻烦

    3 、试纸是湿的,颜色肯定会溢出矩形,对程序识别造成麻烦

    4 、取得的颜色,在比色卡中,如何解读出他对于的数值,好难。。。

    8 条回复    2022-04-22 13:09:59 +08:00
    ch2
        1
    ch2  
       72 天前
    直接深度学习,图片数量够多,打标训练很简单的事,就是 n 分类
    v2mo
        2
    v2mo  
    OP
       72 天前
    raycool
        3
    raycool  
       72 天前
    直接 CNN 一把梭
    7gugu
        4
    7gugu  
       72 天前
    看看 opencv.js ,它们官网提供了一部分的 demo ,你可以参考一下
    mikumkf
        5
    mikumkf  
       72 天前
    这个不需要用到任何的 CV 知识吧?视频就是图片,调用摄像头获得某一帧就好了,识别色块也简单,如果能限制试纸的放置位置直接拿图像对应的地方矩阵就好了 ,颜色的话把读到 RGB3 通道转到 HSL 空间和比色卡算数值差,设定一个 threshold 就可以了。如果不能限制试纸的位置,用读到的整张图片转化色彩空间到比色卡的空间范围内做 Clip 然后算最大的面积。 拿 JS+Canvas+Camera API 就行,可能这里唯一的问题是怎么保证 Camera 读到的颜色偏色不太大,可以考虑在拍的时候用一个亮的白光灯打着。
    rabbbit
        6
    rabbbit  
       72 天前
    tensorflow.js?
    测颜色估计要看试制质量和拍照环境.
    拿新冠的那个抗原测试棒为例, 没干的时候肉眼看着都费劲,色差非常小.
    还有大量干扰,例如滴多了会有不规则条纹 或者有人把自己鼻子捅漏了.
    rabbbit
        7
    rabbbit  
       72 天前
    试制 -> 试纸
    weiwoxinyou
        8
    weiwoxinyou  
       72 天前
    CNN 不背这个锅,深度学习需要大量数据进行训练,不适合这个场景。
    @mikumkf 的方案个人认为更可行,再补充一下细节问题:
    1. 针对视频,可以设置识别图像上限,一个视频也就识别10张可能比较合适。
    2. 确定试纸形成的颜色范围,需要考虑手、背景的影响,控制识别矩形框在一定的范围比较合适。
    3. 针对识别结果不同,建议选择连续识别一致的结果,如前8结果 A 后2结果 B 可以考虑丢弃后2的识别结果,如果间歇识别不同结果,建议同时给出。
    4. 用识别的矩阵减去由色卡组成的同样大小的矩阵,色差最小的即为识别结果。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2658 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 12:54 · PVG 20:54 · LAX 05:54 · JFK 08:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.