The purpose of this docker image is to dockerize darknet so that you may easily use it in a portable manner on your Raspbery Pi.
Detection with tiny weights.
docker run -it \
-v $HOME/git/docker-containers/rpi-darknet/cfg:/darknet/cfg \
-v $HOME/git/docker-containers/rpi-darknet/data:/darknet/data \
-v $HOME/git/docker-containers/rpi-darknet/image:/darknet/image \
-v $HOME/git/docker-containers/rpi-darknet/video:/darknet/video \
-v $HOME/git/docker-containers/rpi-darknet/log:/darknet/log \
-v $HOME/git/docker-containers/rpi-darknet/backup:/darknet/backup \
-v $HOME/git/docker-containers/rpi-darknet/scripts:/root/scripts \
rpi-darknet:local \
/bin/sh -c "cd /darknet; ./darknet detector test cfg/coco.data cfg/yolov3-tiny.cfg weight/yolov3-tiny.weights data/dog.jpg -dont_show > image/dog.log"
Detection on a real-time video stream and redirect output to JSON + MJPEG + AVIG. Note that you can test the below by downloading and installing IP Webcam on your phone; replace the IP below with the one on your phone (the software on the phone will show you what the phone's IP is).
After you run the command below, direct your browsers to the following URLs.
- http://localhost:8070 for the JSON data of the annotations
- http://localhost:8090 for the annotated video
docker run -it \
-v $HOME/git/docker-containers/rpi-darknet/cfg:/darknet/cfg \
-v $HOME/git/docker-containers/rpi-darknet/data:/darknet/data \
-v $HOME/git/docker-containers/rpi-darknet/image:/darknet/image \
-v $HOME/git/docker-containers/rpi-darknet/video:/darknet/video \
-v $HOME/git/docker-containers/rpi-darknet/log:/darknet/log \
-v $HOME/git/docker-containers/rpi-darknet/backup:/darknet/backup \
-v $HOME/git/docker-containers/rpi-darknet/scripts:/root/scripts \
-p 8070:8070 \
-p 8090:8090 \
rpi-darknet:local \
/bin/sh -c 'cd /darknet; ./darknet detector demo cfg/coco.data cfg/yolov3.cfg weight/yolov3.weights http://192.168.0.210:8080/video?dummy=param.mjpg -json_port 8070 -mjpeg_port 8090 -ext_output -dont_show -out_filename video/dummy.avi'
Training your own object detector.
docker run -it \
-v $HOME/git/docker-containers/rpi-darknet/cfg:/darknet/cfg \
-v $HOME/git/docker-containers/rpi-darknet/data:/darknet/data \
-v $HOME/git/docker-containers/rpi-darknet/image:/darknet/image \
-v $HOME/git/docker-containers/rpi-darknet/video:/darknet/video \
-v $HOME/git/docker-containers/rpi-darknet/log:/darknet/log \
-v $HOME/git/docker-containers/rpi-darknet/backup:/darknet/backup \
-v $HOME/git/docker-containers/rpi-darknet/scripts:/root/scripts \
rpi-darknet:local \
/bin/sh -c 'cd /darknet; ./darknet detector train /darknet/image/polygons/iaia-polygons.data /darknet/image/polygons/tiny-yolo-iaia-polygons.cfg -dont_show'
Testing your own object detector.
docker run -it \
-v $HOME/git/docker-containers/rpi-darknet/cfg:/darknet/cfg \
-v $HOME/git/docker-containers/rpi-darknet/data:/darknet/data \
-v $HOME/git/docker-containers/rpi-darknet/image:/darknet/image \
-v $HOME/git/docker-containers/rpi-darknet/video:/darknet/video \
-v $HOME/git/docker-containers/rpi-darknet/log:/darknet/log \
-v $HOME/git/docker-containers/rpi-darknet/backup:/darknet/backup \
-v $HOME/git/docker-containers/rpi-darknet/scripts:/root/scripts \
rpi-darknet:local \
/bin/sh -c 'cd /darknet; ./darknet detector test /darknet/image/polygons/iaia-polygons.data /darknet/image/polygons/tiny-yolo-iaia-polygons.cfg /darknet/backup/tiny-yolo-iaia-polygons_last.weights -ext_output -dont_show -out /darknet/log/result.json < /darknet/image/polygons/iaia-polygons_valid.txt'
Annotating the images with the results.
docker run -it \
-v $HOME/git/docker-containers/rpi-darknet/cfg:/darknet/cfg \
-v $HOME/git/docker-containers/rpi-darknet/data:/darknet/data \
-v $HOME/git/docker-containers/rpi-darknet/image:/darknet/image \
-v $HOME/git/docker-containers/rpi-darknet/video:/darknet/video \
-v $HOME/git/docker-containers/rpi-darknet/log:/darknet/log \
-v $HOME/git/docker-containers/rpi-darknet/backup:/darknet/backup \
-v $HOME/git/docker-containers/rpi-darknet/scripts:/root/scripts \
rpi-darknet:local \
/bin/sh -c '/opt/anaconda/bin/python /root/scripts/annotate.py -j /darknet/log/result.json -d /darknet/image/polygons/annotations'
Check out John McCarthy.
@misc{oneoffcoder_rpi_darknet_2019,
title={Raspberry Pi docker container with darknet},
url={https://github.com/oneoffcoder/docker-containers/tree/master/rpi-darknet},
journal={GitHub},
author={One-Off Coder},
year={2019},
month={Aug}}