V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
pming1
V2EX  ›  程序员

关于静态车辆识别项目的技术选型

  •  
  •   pming1 · 2023-08-23 11:09:36 +08:00 · 4289 次点击
    这是一个创建于 492 天前的主题,其中的信息可能已经有所发展或是发生改变。

    城中村,平时一般都是把车停家门口,最近邻居也买车了,如果邻居已经把车停进来了,平常最方便的入口就进不来,需要绕一圈从另一边开进来。家门口有两路监控,能清晰看到左右两边邻居有没停车进来,家里有 nas 和树莓派,于是有一些想法,是否可以通过静态图像或者动态视频的方式,识别是否有车辆停放,通过“嗨,Siri”知道情况,提前选好路线回家停车。 uGwmRI

    第 1 条附言  ·  2023-08-23 16:04:14 +08:00
    补充说明:有兄弟问,手机上不能看监控肉眼判断有没车吗?这个是最准确的。答案:可以,但开车不方便,不安全也很不极客,而且我个人开车习惯用 CarPlay 功能,手机都是放一边去或者裤兜里。
    第 2 条附言  ·  2023-08-23 16:06:11 +08:00
    有位兄弟提到一个很重要的点,我确实不应该关注邻居是否有停车进来,而是关注领居门前的巷子是否是空的,可以让我开车直接进入的。不能进入的情况有太多的,不一定是停了车;但能进入的只有一种情况,就是巷子是空的。
    第 3 条附言  ·  2023-08-24 09:54:49 +08:00

    本着闲着也是闲着,我打算把兄弟提供的可执行方案,一个个尝试一遍。先从最简单粗暴的开始,拍照上传(假定大家也跟我一样,已经部署好ZLMediakit以及海康IPC到服务端是网络通畅的):

    1. 先配置/index/api/addStreamProxy接口,动态添加所有海康IPC的rtsp拉流代理;
    2. 通过访问ZLMediakit提供的flv拉流地址"/live/204.live.flv",测试正常;
    3. 通过访问ZLMediakit提供的截图接口"/index/api/getSnap",测试正常; 4J1Tbw
    4. 在iOS快捷指令中添加指令如图所示: ey12dl
    5. “嘿,Siri!查看门口右边有没停车”,效果出来啦~~! 0f8UiT
    6. 为了更加的智能,还添加了自动化,根据定位,一旦我开车回到家附近,就自动触发查询提醒 9Kd3qf

    到这里,通过iOS快捷指令,自动化展示监控实时截图,肉眼快速准确判断是否有障碍物,暂无借助任何视频或者图像分析算法,基本满足需求,第一版完美收工!

    62 条回复    2023-08-25 09:20:04 +08:00
    x1abin
        1
    x1abin  
       2023-08-23 11:19:12 +08:00   ❤️ 2
    可以用 mediapipe 的 Object Detection 识别车辆状态,启个 web 服务提供查询,配置个苹果的捷径查询你那个状态,就可以通过 Siri 去问了。
    spicy777
        2
    spicy777  
       2023-08-23 11:20:58 +08:00
    加下邻居微信,每次进来之前问一下
    raycool
        3
    raycool  
       2023-08-23 11:23:12 +08:00
    直接 YOLO 模型就行。
    pming1
        4
    pming1  
    OP
       2023-08-23 11:23:51 +08:00
    @spicy777 哈哈,是可以的,但容易打扰到邻居,以及及时响应也是个问号。到底,还是怀着技术宅如果拯救不了世界,那至少要拯救下自己的心态。
    summerwar
        5
    summerwar  
       2023-08-23 11:25:57 +08:00
    写个接口,访问获取最新的摄像头画面(图片即可),然后就知道了
    yuhuan66666
        6
    yuhuan66666  
       2023-08-23 11:26:26 +08:00   ❤️ 1
    yoloV8
    pming1
        7
    pming1  
    OP
       2023-08-23 11:31:20 +08:00
    @x1abin 是的,我初步想法也是这样,通过一个算法完成识别,并通过 webapi 提供服务,从而打通 Siri 。我研究下 mediapipe ,看实现效果如何。非常感谢回复!
    pming1
        8
    pming1  
    OP
       2023-08-23 11:32:48 +08:00
    @summerwar 现状就是这样,但开车打开手机看监控,毕竟不太方便,提前看也不合适,时间差,可能我到了,邻居刚好早一秒停进来了。
    GeorgeGalway
        9
    GeorgeGalway  
       2023-08-23 11:33:00 +08:00
    跟邻居商量一家停一边
    pming1
        10
    pming1  
    OP
       2023-08-23 11:35:14 +08:00
    @yuhuan66666 yolo 和 mediapipe 有对比吗?我是做 web 开发的,语言没所谓,不太熟悉图像识别领域,哪种更简单和轻量?现有能力支持 rtsp 实时视频流,也支持实时拍照获取图片。
    SeaRecluse
        11
    SeaRecluse  
       2023-08-23 11:35:51 +08:00   ❤️ 4
    固定视角,甚至不用上 AI 模型,来个虚拟框判断帧间像素差距就好了
    pming1
        12
    pming1  
    OP
       2023-08-23 11:36:01 +08:00
    @GeorgeGalway 也是寸土寸金,巷子比较窄,完全靠墙,也过不了两辆车。
    quix
        13
    quix  
       2023-08-23 11:40:31 +08:00   ❤️ 2
    装个地磁传感器不是更简单便宜吗
    NakeSnail
        14
    NakeSnail  
       2023-08-23 11:40:58 +08:00
    @SeaRecluse 感觉你的方式靠谱,简单高效
    tool2d
        15
    tool2d  
       2023-08-23 11:42:48 +08:00 via Android   ❤️ 2
    固定视角做图片 hash 就可以了,对比两帧的图片,hash 值差距太大,即为有车占道。
    kkk9
        16
    kkk9  
       2023-08-23 11:47:39 +08:00
    不清楚 op 用的什么牌子,我两台 NVR (大华和海康)都有区域报警功能,只要划定区域有异动就会报警(邮件 smtp ),调整好灵敏度就行了
    makejohn2015
        17
    makejohn2015  
       2023-08-23 11:48:58 +08:00
    frame difference
    Baymaxbowen
        18
    Baymaxbowen  
       2023-08-23 11:54:25 +08:00 via iPhone
    换个思路 用车牌识别来实现 车牌识别 GitHub 上有很多能直接用的项目
    yolee599
        19
    yolee599  
       2023-08-23 11:54:48 +08:00   ❤️ 3
    直接获取一张摄像头截图就行了,现在的摄像头应该都有这样的接口,自己肉眼去判断有没有车,这是最准确的,最容易实现的,也是成本最小的方式
    summerwar
        20
    summerwar  
       2023-08-23 12:02:58 +08:00   ❤️ 2
    1.拍个没车的图片,然后将实时获取到的图片与没车的图片进行对比,超过一个阈值则认为是有车即可,阈值多调整几次

    2.从实时获取到的图片中获取车牌,如果识别到车牌则认为停车了,没获取到则没车
    maxxfire
        21
    maxxfire  
       2023-08-23 12:18:55 +08:00   ❤️ 4
    地上画个 X 号,不就完事了吗
    maxxfire
        22
    maxxfire  
       2023-08-23 12:20:04 +08:00   ❤️ 2
    搞清楚对象,你要的是空地,而不是车
    chairuosen
        23
    chairuosen  
       2023-08-23 13:25:42 +08:00
    x1abin
        24
    x1abin  
       2023-08-23 13:50:09 +08:00   ❤️ 3
    @summerwar @SeaRecluse 帧差异比较可能想象很简单,实际应用上很不准确,受太多其它环境变量影响,如一天的不同光照等...现在的 AI 模型用起来就跟买菜一样简单,几行代码就能解决的事情没必要自己去手撸。
    nzynzynzy
        25
    nzynzynzy  
       2023-08-23 14:06:32 +08:00   ❤️ 1
    挨着墙做一个宽的踏板,装一个滑轮组,当有车轮压在上面的时候牵动钢索,在楼的外侧竖起一个小红旗。这个没电的时候都好使,或者你家门口停了一只大象的时候也好使。
    SeaRecluse
        26
    SeaRecluse  
       2023-08-23 14:11:14 +08:00
    SeaRecluse
        27
    SeaRecluse  
       2023-08-23 14:20:44 +08:00
    如果是用 AI 模型,其实有个更傻瓜式的处理方案,就是直接用 Clip 模型,然后比较画面中是否有汽车停放就好了。可以直接咨询 new bing 这段话:给我一个使用 clip 的 python 脚本。用于判断摄像头画面中是否存在汽车停放
    d3js
        28
    d3js  
       2023-08-23 14:28:01 +08:00
    很有意思的话题
    balaWgc
        29
    balaWgc  
       2023-08-23 15:07:19 +08:00
    最近我在研究树莓派的摄像头运动检测,只需要帧差法比对就行了,就是连续的两帧做对比,设置一个阈值,车这种比较大的,阈值设置高一点,就能检测到了
    mightybruce
        30
    mightybruce  
       2023-08-23 15:16:34 +08:00
    @balaWgc
    说得不错,大多数人一看就是没做过,摄像头有 25fps, 直接使用 python 服务 和深度网络模型无疑是自杀。
    树莓派配上计算棒才能勉强达到 5 到 6FPS, 要么就是英伟达专门的板子 Jetson TX2
    处理速度远远跟不上视频的速度。
    建议先画一个感兴趣区域( ROI), 直接上粗暴简单的算法(比如帧差法,光流法)
    然后再保存图片,用深度学习网络判断是否为车
    mightybruce
        31
    mightybruce  
       2023-08-23 15:28:24 +08:00   ❤️ 1
    https://github.com/olgarose/ParkingLot
    这个就是简单粗暴的判断, 有了这个基本可以过滤多数情况,剩下的就交给神经网络去判断了。
    niji
        32
    niji  
       2023-08-23 15:28:31 +08:00 via iPhone
    摄像头远程看不了吗?
    Tink
        33
    Tink  
       2023-08-23 15:55:53 +08:00
    yolo ,很简单的
    zomco
        34
    zomco  
       2023-08-23 16:01:58 +08:00
    这个应该是车牌识别,用不上神经网络吧
    hanlin85
        35
    hanlin85  
       2023-08-23 16:11:07 +08:00   ❤️ 1
    我自己有个类似的需求,老房子的老小区,树莓派加摄像头对着下面空的车位,手机搞了个快捷指令(车位图片),hi Siri 就执行,树莓派就拍一张照片发送到我的邮箱,一般在老房子的最后一个红绿灯就查看一下是否有空车位,有就开下去,没有就绕到上面一点的停车场去。
    isnullstring
        36
    isnullstring  
       2023-08-23 16:25:53 +08:00
    从摄像头定时获取一张图片,上传到图床,固定连接,微信里打开,然后浮窗

    以后想看 就打开微信,右滑打开浮窗,刷新下就完事

    这不比搞什么识别简单、稳定、可靠?

    另外就是 监控也能做这种检测,检测到车辆就发邮件,微信里也能收到 邮件提示,搞定
    FawkesV
        37
    FawkesV  
       2023-08-23 16:31:36 +08:00
    什么时候做好了,发给帖子了。 看看咋实现的
    qwerhk
        38
    qwerhk  
       2023-08-23 16:41:05 +08:00
    第二张图,停的好像是新款宋 plus ?
    CodeXx
        39
    CodeXx  
       2023-08-23 16:41:17 +08:00
    @hanlin85 想到一起了,定时自动拍照发过来就行了
    Deplay
        40
    Deplay  
       2023-08-23 17:38:32 +08:00   ❤️ 1
    @mightybruce op 的需求不需要实时检测,webapi 收到请求的时候判断下就行了,yolo 拿 cpu 跑也就 10s 的样子
    @balaWgc 帧差法适合检测车辆进出,而不是存在
    sofukwird
        41
    sofukwird  
       2023-08-23 18:35:54 +08:00 via Android
    用红外线传感器?
    kimown
        42
    kimown  
       2023-08-23 19:06:22 +08:00
    买一个小米摄像头远程看
    pengtdyd
        43
    pengtdyd  
       2023-08-23 23:45:49 +08:00
    为啥非要用技术解决呢。养一条恶犬也行的。
    xinge666
        44
    xinge666  
       2023-08-24 05:47:05 +08:00   ❤️ 1
    YOLOv8 一键,用 Python 脚本也是一键,加个 Flask 做个简单的 API ,请求的时候拍张照然后送 YOLO ,直接就能识别有没有车,直接返回给 iOS 的捷径。
    chole
        45
    chole  
       2023-08-24 09:19:47 +08:00
    萤石 自带这个功能
    ykk
        46
    ykk  
       2023-08-24 09:19:59 +08:00
    你这个叫侵入检测,跟车辆检测没关系
    arvinsilm
        47
    arvinsilm  
       2023-08-24 09:44:30 +08:00
    在你邻居车底贴个 AirTag ( doge
    pming1
        48
    pming1  
    OP
       2023-08-24 10:02:27 +08:00
    @arvinsilm 聪明如你(哭笑不得
    pming1
        49
    pming1  
    OP
       2023-08-24 10:03:16 +08:00
    @ykk 也不完全是,我是要知道有没障碍物阻碍我把车开进来,如果有车只是经过,是没问题的。
    realpg
        50
    realpg  
       2023-08-24 10:15:58 +08:00
    感谢 OP 提供想法 我发现我手头啥都有 连夜做了个摄像头远程识别空车位判断我要去哪停车
    pming1
        51
    pming1  
    OP
       2023-08-24 10:32:43 +08:00
    @chole 是海康的设备,但没开萤石。本着技术宅拯救世界的精神,折腾折腾。
    pming1
        52
    pming1  
    OP
       2023-08-24 10:34:35 +08:00
    @qwerhk 眼神真好,是的。
    mightybruce
        53
    mightybruce  
       2023-08-24 10:54:13 +08:00
    如果是通过 siri 指令的形式抓拍一张,那么还不如网友所说,直接通过指令控制摄像头拍一张上传到 nas 或 邮箱,直接查看,简单省事。yolo,ssd,fastercnn 不建议了, 还不如人眼看一下快速。
    crisrock
        54
    crisrock  
       2023-08-24 11:13:55 +08:00
    和邻居说清楚,一人停一边,这样不用想
    pming1
        55
    pming1  
    OP
       2023-08-24 11:22:36 +08:00
    @crisrock 邻居很 nice ,只是巷子太窄,两辆车 0 距离挨着也过不去。
    pming1
        56
    pming1  
    OP
       2023-08-24 11:26:28 +08:00
    @mightybruce 现在实现的第一版,其实差不多,也是拍照,人眼确认。这个也会有两个不太方便的地方:1 、手机上要打开这张图片; 2 、眼睛要从开车视野挪到手机屏幕上。这两点多少会给行车安全带来一定的安全隐患。我预期实现的效果是这样的,“嘿,Siri !门店现在能不能开车停进去?”,“能的|不能”。
    SoyaDokio
        57
    SoyaDokio  
       2023-08-24 17:58:28 +08:00
    年轻就是好,看到啥都想写个轮子。

    如果是我,可能就网上随便找个车牌识别源码,只要识别到就算有车。毕竟识别车牌程序已经非常成熟了。
    mightybruce
        58
    mightybruce  
       2023-08-24 21:50:38 +08:00
    很多人提到车牌,其实并不可行,车牌检测如果离得较远,小于检测最小的像素框就基本很困难了,
    基于 ROI (region of interest) 检测一下是否为车就好,yolo 虽然快,但是准确率并不是很高,嵌入式的话可以参考 openvino 的 model zoo , gluoncv 的 model zoo
    结合 专门的嵌入式深度学习框架比如 tensorflow lite, ncnn, 腾讯 tnn, 阿里 mnn 来做。
    边缘计算推理这方面 需要对模型做剪裁 ,深度模型减枝。 浮点型运算也从 fp-32 变为 fp-16 甚至 int-8
    腾讯这方面深度学习的边缘计算资料很全
    https://qengineering.eu/
    crisrock
        60
    crisrock  
       2023-08-25 08:16:44 +08:00
    @pming1 无论邻居有没有停车,你是不是都可以从更远的地方绕进来,如果是这样,要是我的话就每次绕一下,省得折腾。
    pming1
        61
    pming1  
    OP
       2023-08-25 08:48:41 +08:00
    @crisrock 左右两边都有邻居,他们都有车,只是左边邻居把车停进来的概率比右边低很多,而且从左边进来要绕很大一圈,这个成本足够让我有折腾技术解决方案的动力。
    crisrock
        62
    crisrock  
       2023-08-25 09:20:04 +08:00
    @pming1 明白了,祝好运
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:40 · PVG 19:40 · LAX 03:40 · JFK 06:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.