
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Detect-i-cam是一个使用Yolo卷积神经网络(CNN)进行AI目标检测的摄像头监控解决方案。
您可以将Detect-i-cam作为Docker容器或命令行工具运行,推荐使用Docker。
bashdocker pull raimondb/detect-i-cam
yaml--- version: "2.2" services: detect-i-cam: image: raimondb/detect-i-cam container_name: detect-i-cam volumes: - ./capture:/captures - ./config:/config restart: unless-stopped
要运行Detect-i-cam,必须提供要监控的视频流。配置在https://github.com/RaimondB/Detecticam/blob/master/DetectiCam/appsettings.template.json%E6%96%87%E4%BB%B6%E4%B8%AD%E3%80%82
所需的最小配置是包含video-streams部分,其中仅id和path为必填项。path可以是视频流文件(需通过映射卷访问)、IP摄像头的HTTP URL或RTSP流。
json{ "video-streams": [ { "id": "side-door-live", "path": "rtsp://<user>:<passwd>@<cameraip>:<port>/<part>", "rotate": "Rotate90Clockwise", "fps": 15, "callbackUrl": "http://nas.home:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.Webhook&method=\"Incoming\"&version=1&token=x", "ROI": { "Left": 0, "Top": 172, "Right" : 479, "Bottom" : 639 }, "additionalObjectWhitelist": [ "cat" ] } ] }
可将检测对象配置为Yolo网络提供的类别子集。
json{ "detection": { "detectionThreshold": 0.5, "objectWhitelist": [ "person", "car" ] }
对于capturePattern和callbackUrl,可使用令牌替换部分内容,使其基于当前流和检测结果动态生成。
有几个特殊令牌:
此外,可在{}中使用所有常规时间戳格式化器。
默认情况下,所有包含"person"的捕获图像会写入/captures卷,包括所有检测对象的边界框及其置信度百分比。可通过appsettings.json中的以下设置配置:
json"capture-publisher": { "enabled": true, "captureRootDir" : "/captures", "capturePattern" : "{yyyy-MM-dd}/{streamId}-{ts}.jpg" }
现在可使用令牌配置捕获保存方式,还可动态生成子目录以便按日期分组文件。
以下旧设置已弃用,将在未来版本中移除:
json"capture-path": "./captures",
若要通过Webhook与其他解决方案集成,可在视频流配置中指定回调URL。示例中使用Webhook触发Synology NAS的录制。
另一个选项是使用MQTT发布。可在appsettings.json中使用以下配置:
json"mqtt-publisher": { "enabled": true, "server": "nuc.home", "port": 1883, "username": "myuser", "password": "passwd", "topicPrefix": "home", "clientId": "detecticam", "includeDetectedObjects": false, "topDetectedObjectsLimit" : 3 }
目前仅支持非安全连接,无需配置证书等。
每次检测到人员时会发布消息,主题格式:
bnf[<topicPrefix>/]detect-i-cam/<stream-id>/state
不包含检测对象时的消息值:
json{ "detection" : true }
当includeDetectedObjects:true时,消息格式如下:
json{ "detection":true, "detectedObjects": [ { "Index":2, "Label":"car", "Probability":0.99284625, "BoundingBox":{"X":0,"Y":62,"Width":120,"Height":73} } ] }
topDetectedObjectsLimit决定报告对象数量,按probability降序排序。
您可能需要使用不同的Yolov3 Darknet兼容配置。这些数据文件可通过从镜像映射的/config卷提供。默认情况下,镜像已包含完整YoloV3网络。仅当您训练了自己的数据集,或想使用YoloV3 tiny以节省内存和CPU时才需更改。此时应在appsettings.json配置文件中添加以下"yolov3"部分:
json{ "yolo3": { "rootPath": "/config/yolo-data", "namesFile": "coco.names", "configFile": "yolov3.cfg", "weightsFile": "yolov3.weights" } }
我们欢迎贡献。请在仓库提交issue和pull request,我们将尽快处理。有关如何提供帮助的更多信息,请参见贡献规则与指南。
Detect-i-cam采用GPLv3许可证。详情参见LICENSE。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务