NAC-Python-GUI 和 NAC-React-App 的使用指南

注意事项

本页面为 使用 YOLOv4 检测目标并远程查看数据 的基本使用指南(并非开发指南,开发指南详见 https://xd.sh.cn/pje-nac/),可以根据本教程的步骤检测有鱼🐟类目标的视频或者摄像头所拍摄的实时录像。

本项目至此暂停更新🤣,相关文章的列表如下所示:

快速开始

下载 nac-python-gui 的源码,目前有以下两个地址可以下载:

下载权重文件,权重文件有两种物体的训练结果,分别为鱼🐟和仓鼠🐹(下方以鱼类为目标):

下载和安装 Anaconda :

Windows 的左下角直接搜索并打开 Anaconda Prompt,安装 openCV-python 和 PySimpleGUI,就是下方的命令复制粘贴回车即可。若系统内没有安装 imutils,也需要安装:

Windows 的左下角直接搜索并打开 Anaconda Navigator,选择并打开 Spyder,打开刚才克隆的 nac-python-gui 文件夹下的 yolo_video_with_webcam.py。正常情况下,此时其已经可以正常运行。

如果有自备的视频(有鱼🐟类目标)可以将视频放在 nac-python-gui/videos 路径下,并且更改相应的文件名称。

注意:视频分辨率不宜过大,过大可能导致 GUI 界面显示不全。

若不想使用自备的视频可以直接使用摄像头进行检测,勾选上方 GUI 界面中的 Utiliser la webcam 可以进入摄像头模式。下图中展示了当使用摄像头实时识别的画面:

注意:当关闭 GUI 界面时,摄像头可能不会被关闭。此时关闭整个 Spyder 软件即可完全退出并关闭摄像头。

配合 nac-react-app 使用

如果要配合 nac-react-app 使用,需要在 Anaconda Prompt 安装:

打开刚才克隆的 nac-python-gui 文件夹下的 yolo_video_with_webcam_focus.py,界面如下所示,即可登录到 nac-react-app 的账号。

注意:该账号需要从 xd.sh.cn/nac/espace 注册,其会以加密的形式保存在 Google Firebase 上。管理员能够得知您的邮箱地址,但是无法获知您的密码。该账号和谷歌账号无关。

注意:xd.sh.cn/nac 的路由仍存在一定问题,慢慢改,但可以直接访问具体链接。

若成功登录该账号,则 nac-python-gui 所检测的画面(截图)会每隔一定的时间上传至 Firebase,并可以通过 xd.sh.cn/nac/espace 远程查看。

进一步 DIY

若需要进一步 DIY,可以直接修改 nac-python-gui 的相关代码,亦可通过 https://xd.sh.cn/pje-nac/ 参见详细的开发指南。若需要修改 nac-react-app 的代码,可以从下列的地址获得该网站的源码,该网站使用 React 开发:

下载 nodejs 安装包:

使用 Visual Studio Code 打开刚才克隆的 nac-react-app 文件夹。输入命令 npm install 下载必要的依赖包,下载完毕之后输入 npm start 即可预览。其将会自动打开浏览器并跳转至 http://localhost:3000/ 页面。

《NAC-Python-GUI 和 NAC-React-App 的使用指南》有7个想法

  1. 1、关于opencv的版本问题,已经解决(是numpy的问题),谢谢博主!
    2、我根据博主教程检测6类物种,在使用gui的时候,报下面的错:
    runfile(‘D:/github/nac-python-gui-main/yolo_video_with_webcam_focus.py’, wdir=’D:/github/nac-python-gui-main’)
    Reloaded modules: firebase_login
    b’77616d6d39303940676d61696c2e636f6d’
    [INFO] loading YOLO from disk…
    [INFO] 710 total frames in video
    [[1024.5, 285.5]]
    [5]
    Traceback (most recent call last):

    File “D:\github\nac-python-gui-main\yolo_video_with_webcam_focus.py”, line 175, in
    color = [int(c) for c in COLORS[classIDs[i]]]

    IndexError: index 5 is out of bounds for axis 0 with size 1
    不知道是不是检测的种类的太多,导致超出索引范围;如何修改,请博主指条明路,非常感谢yolo_video_with_webcam_focus.py

    1. 您好!yolo-coco文件夹下面我记得有个文件叫做 coco.names ,需要将这六类物种都写进去(记事本就行),每行一个,一共六行,顺序要和训练时的顺序一致。好像确实漏写这步了🤣,我之后再补充一下。

  2. 您好!
    1、写上类名后,使用yolo_video_with_webcam.py 测试正常;
    2、使用yolo_video_with_webcam_focus.py 测试失败:一开始窗口提示密码错误(密码正确的),点击确定后关闭GUI的小窗口,奇怪的一幕出现了,竟然运行起来了,但是运行只出现一个静止的检测的画面,spyder一边同时报错:

    File “pandas\_libs\hashtable_class_helper.pxi”, line 1039, in pandas._libs.hashtable.Int64HashTable.get_item

    KeyError: 0

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):

    File “D:\github\nac-python-gui-main\yolo_video_with_webcam_focus.py”, line 252, in
    targetDetailNumber_elem.Update(pd.value_counts(targetDetailNumber)[0])

    File “D:\Anaconda3\envs\python36\lib\site-packages\pandas\core\series.py”, line 882, in __getitem__
    return self._get_value(key)

    File “D:\Anaconda3\envs\python36\lib\site-packages\pandas\core\series.py”, line 990, in _get_value
    loc = self.index.get_loc(label)

    File “D:\Anaconda3\envs\python36\lib\site-packages\pandas\core\indexes\base.py”, line 2900, in get_loc
    raise KeyError(key) from err

    KeyError: 0

    运行出来的界面窗口的数据部分此时疯狂显示:远程主机拒绝连接;且https://xd.sh.cn/nac/espace页面登录后无任何状况。

    据我查阅,说是数字索引取值的问题,但并未解决。

    1. 我刚才试了一下,https://xd.sh.cn/nac/espace 目前可以登陆(firebase验证要梯子🪜),进入界面要点一下“下一步”🤣。桌面版的话如果要调用firebase登陆也要梯子🪜。yolo_video_with_webcam_focus.py 这个文件我目前没测试过,因为电脑没梯子🤣,但是登陆只是为了传截图到firebase,不影响检测。

      1. 谢谢!
        1、我有梯子,一个人用不完,您可以留个邮箱,我直接发给你
        2、https://xd.sh.cn/nac/espace 我登上了一切正常,只是yolo_video_with_webcam_focus.py 这个文件可能和我的pandas版本有点冲突,不过没事,我也不用,只是没事跑跑,

        1. 哈哈哈哈🤣没事,手机上有够用。这个写着也是自娱自乐🤣,这个项目其实时间短很简陋,当时图方便用了firebase,我觉得腾讯云开发应该也可以。其他的您可以试试,我这边暂时试下来OK。🤣

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注