注意事项
本页面为 使用 YOLOv4 检测目标并远程查看数据 的基本使用指南(并非开发指南,开发指南详见 https://xd.sh.cn/pje-nac/),可以根据本教程的步骤检测有鱼🐟类目标的视频或者摄像头所拍摄的实时录像。
本项目至此暂停更新🤣,相关文章的列表如下所示:
- 在 Windows 中安装 Visual Studio 2022 和 OpenCV 摄像头截帧并保存 2022/10/11
- NAC-Python-GUI 和 NAC-React-App 的使用指南 2021/3/19
- 使用 YOLOv4 检测目标并远程查看数据 2021/2/9
- Firebase 的数据传输和用户验证:以 Python 和 JavaScript 为例 2021/2/4
- 更简单一点!PySimpleGUI 快速创建 YOLO 目标检测的界面 2021/1/13
- 目标检测用 YOLO:制作自己的数据集(观赏鱼)并使用 Darknet YOLOv4 在线训练 2020/11/18
快速开始
下载 nac-python-gui
的源码,目前有以下两个地址可以下载:
- https://github.com/0sheldonhuang0/nac-python-gui
- https://xdshcn.coding.net/public/public/nac-python-gui/git/files
下载权重文件,权重文件有两种物体的训练结果,分别为鱼🐟和仓鼠🐹(下方以鱼类为目标):
下载和安装 Anaconda :
Windows 的左下角直接搜索并打开 Anaconda Prompt,安装 openCV-python 和 PySimpleGUI,就是下方的命令复制粘贴回车即可。若系统内没有安装 imutils,也需要安装:
pip install opencv-python
pip install pysimplegui
pip install 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 安装:
pip install pyrebase4
打开刚才克隆的 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 开发:
- https://github.com/0sheldonhuang0/nac-react-app
- https://xdshcn.coding.net/public/public/nac-react-app/git/files
下载 nodejs 安装包:
使用 Visual Studio Code 打开刚才克隆的 nac-react-app 文件夹。输入命令 npm install 下载必要的依赖包,下载完毕之后输入 npm start 即可预览。其将会自动打开浏览器并跳转至 http://localhost:3000/ 页面。
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
您好!yolo-coco文件夹下面我记得有个文件叫做 coco.names ,需要将这六类物种都写进去(记事本就行),每行一个,一共六行,顺序要和训练时的顺序一致。好像确实漏写这步了🤣,我之后再补充一下。
您好!
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页面登录后无任何状况。
据我查阅,说是数字索引取值的问题,但并未解决。
我刚才试了一下,https://xd.sh.cn/nac/espace 目前可以登陆(firebase验证要梯子🪜),进入界面要点一下“下一步”🤣。桌面版的话如果要调用firebase登陆也要梯子🪜。yolo_video_with_webcam_focus.py 这个文件我目前没测试过,因为电脑没梯子🤣,但是登陆只是为了传截图到firebase,不影响检测。
谢谢!
1、我有梯子,一个人用不完,您可以留个邮箱,我直接发给你
2、https://xd.sh.cn/nac/espace 我登上了一切正常,只是yolo_video_with_webcam_focus.py 这个文件可能和我的pandas版本有点冲突,不过没事,我也不用,只是没事跑跑,
哈哈哈哈🤣没事,手机上有够用。这个写着也是自娱自乐🤣,这个项目其实时间短很简陋,当时图方便用了firebase,我觉得腾讯云开发应该也可以。其他的您可以试试,我这边暂时试下来OK。🤣
感谢分享 赞一个
鸟叔来串门,通过虫洞穿梭至此,期待回访!
嘿嘿 欢迎欢迎😁
一直想学习下YOLO