nvidia-docker yolov7的一些坑

  1. docker容器图形化显示 :主机 xhost +,容器apt install gedit
  2. docker不能联网问题(方法2亲测有效)解决docker容器不能连接网络_南极浮冰的博客-CSDN博客_docker连不上网
  3. yolov7 配置和测试方法 GitHub - pkuyjxu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
  4. cv2.imshow() is disabled in Docker environments
  5. VIDEOIO ERROR: V4L: can’t open camera by index 1    初始化容器时要添加–privileged, 否则docker 里面即使有/dev/video0 也是无法访问。所以1的命令要更改成如下
    nvidia-docker run --name yolov7d --privileged -it -v /home/pkuyjxu/Downloads/yolov7_project/:/coco/ -v /home/pkuyjxu/Downloads/yolov7_project/:/yolov7 -v /dev/video0:/dev/video0 -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY --shm-size=128g nvcr.io/nvidia/pytorch:21.08-py3
    

    6, yolov7官网的容器镜像自带opencv3.4, 现在已经有opencv4.6,编译好后可以把cv2.so放到要运行的project的py文件目录中

  6. opencv4.6和opencv4.2在处理yolo时不一样,前者会碰到net.getUnconnectedOutLayers()报错IndexError: invalid index to scalar variable, 这时候ln = [ln[i[0] - 1] for i in net.getUnconnectedOutLayers()]是为了获取YOLO输出层的名字,net.getUnconnectedOutLayers()得到的是[200 227 254],每个元素都是标量,不能用索引来取,因此将i[0]改为i即可。

  7. docker 已经初始化的容器内如何暴露ip给局域网?

  8. 编译opencv 的dnn

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=OFF -D OPENCV_ENABLE_NONFREE=ON -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=7.5 -D WITH_CUBLAS=1 -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D HAVE_opencv_python3=ON -D PYTHON_EXECUTABLE=/opt/conda/bin/python -D BUILD_EXAMPLES=ON ..
    

  9. make install 后 cv2.***.so 是在/usr/local/lib/python3.8/site-packages/cv2/python-3.8里 所以需要copy到conda的python路径里  root@cabf80e200d3:/usr/local/lib/python3.8/site-packages/cv2/python-3.8# cp cv2.* /opt/conda/lib/python3.8/site-packages/cv2/python-3.8/

  10. opencv的videowriter保存不了视频,这主要2个原因: 1,输入和输出的视频分辨率不一,2,本文主要因为在编译opencv前没有安装编码器

    apt-get install build-essential cmake unzip pkg-config  libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran python3-dev

  11. 树莓派搭建视频流的坑

    A,motion速度很慢

    B, raspikill  或 raspivid 只能用于csi摄像头,usb不能用     C, 用ffmpeg+node.js搭建rtsp视频流树莓派4B配置usb摄像头RTSP推流_搬砖的肖傲楠的博客-CSDN博客_树莓派ffmpeg推流rtsp

你可能感兴趣的:(人工智能,docker,容器,运维)