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

关于人脸识别项目的技术选型

  •  
  •   luomao · 2023-08-23 10:05:34 +08:00 · 2630 次点击
    这是一个创建于 466 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近有一些想法,关于存储照片之类的想要搞一个服务,对比了市面上很多做相关的产品辟如 photoprism / immich / plex 等,发现还是没有自己心目中的能力,于是产生了自己开发的想法。 无奈自己是个 java 仔,关于如何做人脸识别匹配完全没有涉及过,我看了阿里云的人脸识别是挺便宜的,但考虑到隐私问题这个不是首选,不知道各位大佬有没有推荐开源比较适合我这种菜鸟使用的人脸识别项目,谢谢各位了

    14 条回复    2023-08-23 16:27:19 +08:00
    i979491586
        1
    i979491586  
       2023-08-23 10:10:30 +08:00   ❤️ 1
    我最近也在研究这个我打算用 tensorflow 做,我目的主要是做活体验证,都在移动端完成。
    securityCoding
        2
    securityCoding  
       2023-08-23 10:12:07 +08:00 via Android   ❤️ 1
    github 好多,直接搜 face 关键字
    Donahue
        3
    Donahue  
       2023-08-23 10:19:39 +08:00
    @i979491586 pytorch 好像简单点,包括在移动端用 torchscript 部署都简单点,然后最好就是用别人现有的网络模型而不是重新写一个会省事点
    imxiaoi
        4
    imxiaoi  
       2023-08-23 10:24:59 +08:00   ❤️ 1
    mediapipe 不知道能不能满足
    Alias4ck
        5
    Alias4ck  
       2023-08-23 10:37:44 +08:00   ❤️ 2
    luomao
        6
    luomao  
    OP
       2023-08-23 10:55:58 +08:00
    @i979491586
    @securityCoding
    @imxiaoi
    @Alias4ck
    感谢各位,我仔细研究一下
    m2276699
        7
    m2276699  
       2023-08-23 10:57:00 +08:00
    飞桨
    NoOneNoBody
        8
    NoOneNoBody  
       2023-08-23 11:22:51 +08:00   ❤️ 1
    翻了一下我的 python 程序,从采集到识别(机器学习),几十行
    大部分工作都是三方包完成了,现有模型已经不俗,不需自己搞模型,我脑子花得更多还是在如何方便地遍历图片文件

    github 上一大堆人脸识别,java 应该也不少,毕竟 android 端需求挺大的

    初入门先理清需求:
    a. 判别两个样本是否同一人,这个更像是人脸鉴权开机、开门那种
    b. 未知照片找已知的人,已知的人已经有相当多样本(照片)
    c. 找未知的人(不属于任何已知的人)
    这几个前面采集的步骤是一样的,但后面判别的方式有点不同
    b 是比较简单的,我恰巧做的是这个,逻辑不复杂,代码很少
    c 对我来说就比较难,看上去好像将 b 取反就是了,但实际逻辑并非这样,因为存在 threshold ,threshold 意味着有可能误判,需要更完善考虑“误判”情况
    luomao
        9
    luomao  
    OP
       2023-08-23 11:55:40 +08:00
    @NoOneNoBody 感谢大佬提供思路
    mightybruce
        10
    mightybruce  
       2023-08-23 14:31:09 +08:00   ❤️ 1
    像详细写写你的需求再决定。
    人脸识别做得好没有那么容易。
    工程上如果不是调用服务,那就必须写 c++(python) 代码来做,
    虽然 OpenCV 有提供 java, 但是支持得不怎么样,很多库是没有 jni 的。
    其他语言第一不成熟,第二不适合。
    移动端更加不一样了,要考虑更多取舍, 性能,模型大小。
    移动端最好不要直接跑 pytorch, 用移动端的一些框架,和一些工具转换原模型到 onnx 再到一些移动端框架模型。

    你先写清楚再说
    elonmask
        11
    elonmask  
       2023-08-23 14:57:44 +08:00
    @i979491586 android 可以 mlKit 识别人脸,也可以 yoloV5 或者 mtcnn ,对于人脸匹配可以用 mobile facenet 。
    都有现成的模型可以拿来用,效果很不错。但是难点是活体检测。
    c2const
        12
    c2const  
       2023-08-23 14:59:39 +08:00   ❤️ 1
    1.自写人脸识别,还会存在安全问题,即被灰/黑产用视频/图片+AI 来生成假视频,蒙混过关 :)
    2.个人项目无所谓,如果要商用,还得在这方面攻防 :(
    LXGMAX
        13
    LXGMAX  
       2023-08-23 15:01:43 +08:00   ❤️ 1
    商用建议和相关算法公司合作
    luomao
        14
    luomao  
    OP
       2023-08-23 16:27:19 +08:00
    @mightybruce
    @c2const
    @LXGMAX
    谢谢各位大佬,目前可能不会往商用方向走,我也没想好如何商业化,可能是自己小圈子里玩玩。其次我应该都放到服务端跑,应该不会涉及到移动端跑模型,只是想在图片管理系统中简单做点人物标识啥的。至于安全问题应该也不会遇到,我不会拿人脸数据做安全相关的功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:05 · PVG 19:05 · LAX 03:05 · JFK 06:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.