lishengyin hace 3 años
commit
f0aa283f87

BIN
3rdparty/ZLToolKit.tar.gz


BIN
3rdparty/opencv.tar.gz


+ 41 - 0
Dockerfile.infer

@@ -0,0 +1,41 @@
+# 配置miva推理镜像
+
+# Use L4T base docker
+FROM nvcr.io/nvidia/deepstream-l4t:5.0.1-20.09-samples
+
+# install基础依赖
+RUN apt-get update && \
+      DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgstrtspserver-1.0-dev libx11-dev \
+      build-essential \ 
+      cmake \ 
+      libmysqlclient-dev \
+      libssl-dev 
+
+# 拷贝文件
+COPY ./3rdparty/ZLToolKit.tar.gz /root
+COPY ./3rdparty/opencv.tar.gz /root
+
+# COPY lib
+COPY ./lib/* /usr/local/lib/ 
+
+# install zltoolkit
+RUN cd /root/ && tar -zxvf ZLToolKit.tar.gz 
+RUN cp -rf /root/ZLToolKit/lib/* /usr/local/lib/
+RUN cp -rf /root/ZLToolKit/include/* /usr/local/include/
+
+# install opencv
+RUN cd /root/ && tar -zxvf opencv.tar.gz
+RUN cp -rf /root/opencv/lib/* /usr/local/lib/
+RUN cp -rf /root/opencv/include/* /usr/local/include/
+
+# 清除缓冲
+# RUN rm ${HOME}/.cache/gstreamer-1.0/registry.*
+
+
+
+
+
+
+
+
+

+ 38 - 0
check_tacks/watchDog.py

@@ -0,0 +1,38 @@
+'''
+Description: 
+Version: 1.0
+Autor: lishengyin
+Date: 2022-01-14 10:11:13
+LastEditors: lishengyin
+LastEditTime: 2022-01-14 14:49:21
+'''
+# 简易UDP看门狗
+import time
+import socket
+import os
+
+def resetMiva():
+    # 查询PID
+    result = os.popen('pidof main').readlines()
+    if len(result):
+        Ctime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
+        os.popen('echo "' + Ctime + ' MIVA卡死" >> ./watchDog.log')
+        # 判定为卡死
+        os.popen('killall main').readlines()
+        
+if __name__ == '__main__':
+    # 2、创建套接字
+    udp_socket_server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
+    udp_socket_server.settimeout(30)
+    # 3、绑定服务端的IP和端口
+    udp_socket_server.bind(("",9527))
+    
+    try:
+        udp_socket_server.settimeout(30)
+        # 4、接收客户端的信息
+        recv_data,ip_port = udp_socket_server.recvfrom(1024)
+    except socket.timeout:
+        print("超时没收到")
+        resetMiva()
+    # 7、关闭套接字
+    udp_socket_server.close()

BIN
data/models/FP16/yolov5s.engine


BIN
data/models/INT8/yolov5s.engine


+ 35 - 0
docker-compose.yml

@@ -0,0 +1,35 @@
+version: '2.3'
+
+services:
+  infer:
+    build:
+      context: $PWD/
+      dockerfile: Dockerfile.infer
+    volumes:
+      - /tmp/.X11-unix:/tmp/.X11-unix
+      - /dev:/dev
+      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
+      - /opt/datas/video:/home/data/video
+      - $PWD/source/:/opt/MIVA/
+      - $PWD/data/:/opt/data/
+    network_mode: "host"
+    privileged: true
+    tty: true
+    environment:
+      - NVIDIA_VISIBLE_DEVICES=all
+      - DISPLAY:$DISPLAY
+    ipc: "host"
+    pid: "host"
+    runtime: "nvidia"
+    depends_on:
+      - mivadb
+    command: /bin/bash -c "cd /opt/MIVA && ./start.sh"
+
+  mivadb:
+    image: miva_mysql:1.3
+    network_mode: "host"
+    privileged: true
+    ports:
+      - "3306:3306"
+     
+

BIN
lib/libflv.a


BIN
lib/libmk_api.so


BIN
lib/libmodules.so


BIN
lib/libmov.a


BIN
lib/libmpeg.a


BIN
lib/libmyplugins.so


BIN
lib/libnvbufsurface.so.1.0.0


BIN
lib/libnvdsinfer_custom_impl_Yolo.so


BIN
lib/libzlmediakit.a


BIN
lib/libzltoolkit.a


+ 25 - 0
source/bin/log/2022-02-21_00.log

@@ -0,0 +1,25 @@
+2022-02-21 16:26:34.235 I main[13517-main] EventPoller.cpp:466 EventPollerPool | 创建EventPoller个数:6
+2022-02-21 16:26:34.317 D main[13517-main] TCPClient.h:56 TCPClient | 
+2022-02-21 16:26:34.318 D main[13517-main] user_app.cpp:371 ConnectNetty | 登录Netty
+2022-02-21 16:26:34.324 E main[13517-main] HttpClient.cpp:52 Init | Failed to log in to netty
+2022-02-21 16:26:34.324 E main[13517-main] user_app.cpp:373 ConnectNetty | HttpClient登录Netty失败
+2022-02-21 16:26:34.325 I main[13517-event poller 2] TCPClient.cpp:23 onConnect | host is unreachable
+2022-02-21 16:26:34.331 D main[13517-main] user_app.cpp:566 GetNettyDatas | 获取用户数据失败,请检查网络是否正常
+2022-02-21 16:26:34.419 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.68:554/cam/realmonitor?channel=1&subtype=0] index:0
+2022-02-21 16:26:34.422 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.18:554/cam/realmonitor?channel=1&subtype=0] index:1
+2022-02-21 16:26:34.422 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.80:554/cam/realmonitor?channel=1&subtype=0] index:2
+2022-02-21 16:26:34.422 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.77:554/cam/realmonitor?channel=1&subtype=0] index:3
+2022-02-21 16:26:34.422 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.73:554/cam/realmonitor?channel=1&subtype=0] index:4
+2022-02-21 16:26:34.423 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.72:554/cam/realmonitor?channel=1&subtype=0] index:5
+2022-02-21 16:26:34.423 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.70:554/cam/realmonitor?channel=1&subtype=0] index:6
+2022-02-21 16:26:34.423 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.60:554/cam/realmonitor?channel=1&subtype=0] index:7
+2022-02-21 16:26:34.423 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.25:554/cam/realmonitor?channel=1&subtype=0] index:8
+2022-02-21 16:26:34.423 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.24:554/cam/realmonitor?channel=1&subtype=0] index:9
+2022-02-21 16:26:34.423 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.6:554/cam/realmonitor?channel=1&subtype=0] index:10
+2022-02-21 16:26:34.424 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.10:554/cam/realmonitor?channel=1&subtype=0] index:11
+2022-02-21 16:26:34.424 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.12:554/cam/realmonitor?channel=1&subtype=0] index:12
+2022-02-21 16:26:34.424 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.18:554/cam/realmonitor?channel=1&subtype=0] index:13
+2022-02-21 16:26:34.424 D main[13517-main] inference.cpp:775 create_uridecode_bin | creating uridecodebin for [rtsp://admin:admin123@192.168.160.60:554/cam/realmonitor?channel=1&subtype=0] index:14
+2022-02-21 16:26:34.473 W main[13517-main] inference.cpp:175 Init | WARNING: Overriding infer-config batch-size:12with number of sources (15)
+2022-02-21 16:26:34.478 I main[13517-main] user_app.cpp:206 Init | System initialization is successful!
+2022-02-21 16:26:34.478 I main[13517-main] user_app.cpp:302 StartTask | Task started successfully!

BIN
source/bin/main


+ 22 - 0
source/config/config.ini

@@ -0,0 +1,22 @@
+[Netty]
+Netty_ip = 47.112.106.146
+Netty_port = 94
+Netty_IdName = Netty
+
+[PIS]
+PIS_ip = 192.168.31.95
+PIS_port = 9082
+PIS_IdName = PIS
+
+[MySql]
+sql_ip = 127.0.0.1
+sql_port = 3306
+user = root
+password = 123456
+character = utf8mb4
+
+[USER]
+device_id = 1
+
+
+

+ 68 - 0
source/config/config_infer_primary_yoloV5.txt

@@ -0,0 +1,68 @@
+# Following properties are mandatory when engine files are not specified:
+#   int8-calib-file(Only in INT8), model-file-format
+#   Caffemodel mandatory properties: model-file, proto-file, output-blob-names
+#   UFF: uff-file, input-dims, uff-input-blob-name, output-blob-names
+#   ONNX: onnx-file
+#
+# Mandatory properties for detectors:
+#   num-detected-classes
+#
+# Optional properties for detectors:
+#   cluster-mode(Default=Group Rectangles), interval(Primary mode only, Default=0)
+#   custom-lib-path
+#   parse-bbox-func-name
+#
+# Mandatory properties for classifiers:
+#   classifier-threshold, is-classifier
+#
+# Optional properties for classifiers:
+#   classifier-async-mode(Secondary mode only, Default=false)
+#
+# Optional properties in secondary mode:
+#   operate-on-gie-id(Default=0), operate-on-class-ids(Defaults to all classes),
+#   input-object-min-width, input-object-min-height, input-object-max-width,
+#   input-object-max-height
+#
+# Following properties are always recommended:
+#   batch-size(Default=1)
+#
+# Other optional properties:
+#   net-scale-factor(Default=1), network-mode(Default=0 i.e FP32),
+#   model-color-format(Default=0 i.e. RGB) model-engine-file, labelfile-path,
+#   mean-file, gie-unique-id(Default=0), offsets, process-mode (Default=1 i.e. primary),
+#   custom-lib-path, network-mode(Default=0 i.e FP32)
+#
+# The values in the config file are overridden by values set through GObject
+# properties.
+
+[property]
+gpu-id=0
+net-scale-factor=0.0039215697906911373
+#0=RGB, 1=BGR
+model-color-format=0
+# custom-network-config=yolov3-tiny.cfg
+# model-file=yolov3-tiny.weights
+model-engine-file=/opt/data/models/INT8/yolov5s.engine
+labelfile-path=labels.txt
+process-mode=1
+batch-size=12
+## 0=FP32, 1=INT8, 2=FP16 mode  
+network-mode=2
+num-detected-classes=1
+gie-unique-id=1
+network-type=0
+#is-classifier=0
+output-blob-names=prob
+## 0=Group Rectangles, 1=DBSCAN, 2=NMS, 3= DBSCAN+NMS Hybrid, 4 = None(No clustering)
+#cluster-mode=2
+interval=0
+maintain-aspect-ratio=1
+parse-bbox-func-name=NvDsInferParseCustomYoloV5
+custom-lib-path=/usr/local/lib/libnvdsinfer_custom_impl_Yolo.so
+engine-create-func-name=NvDsInferYoloCudaEngineGet
+#scaling-filter=0
+#scaling-compute-hw=0
+
+[class-attrs-all]
+nms-iou-threshold=0.5
+pre-cluster-threshold=0.4

+ 0 - 0
source/config/labels.txt


+ 12 - 0
source/start.sh

@@ -0,0 +1,12 @@
+###
+ # @Description: 
+ # @Version: 1.0
+ # @Autor: lishengyin
+ # @Date: 2022-02-21 11:37:47
+ # @LastEditors: lishengyin
+ # @LastEditTime: 2022-02-21 15:38:24
+### 
+#!/bin/bash
+cd ./bin/
+
+LD_PRELOAD=/usr/local/lib/libmyplugins.so ./main

+ 9 - 0
start/start.sh

@@ -0,0 +1,9 @@
+###
+ # @Description: 
+ # @Version: 1.0
+ # @Autor: lishengyin
+ # @Date: 2022-02-21 16:27:28
+ # @LastEditors: lishengyin
+ # @LastEditTime: 2022-02-21 16:27:28
+### 
+cd ../

+ 1 - 0
stop/stop.sh

@@ -0,0 +1 @@
+

+ 1 - 0
version

@@ -0,0 +1 @@
+Version: 1.4.2