Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

One of the best methods (to my knowledge) will be using a Deep Neural Network. And one of the best among them is YOLO (YOLOv3 to be exact). It will detect and recognize objects almost regardless of the viewpoint.

Altohough DNNs generally require time consuming training, there are many out there that had already been trained. For example YOLO was trained on the COCO dataset that contains 80 common object categories and it is ready to use out of the box. If your robot is to recognize these objects, you're home. If, however, you viewpoint is going to be drastically different or you want to recognize objects that are not in the COCO dataset, you will have to (re)train the network for your specific purposes.

YOLO will run on RPi but, naturally, it will not be as fast and as accurate as when run on the PC (if I am not wrong, due to memory requirements, on RPi you have to run a smaller version of YOLO, called YOLO-tiny, which is faster, but less accurate). On the PC you can run the full version of YOLO in real time. The latter is unfortunately not possible with the OpenCV DNN module implementation as it does not use the power of NVIDIA graphics card, but only CPU. Still, on a decent gaming laptop you can get about 5 frames per second at full HD resolution. Should you have a low voltage CPU, however, expect 1-3 fps. If you want to unleash the full power of YOLO you have to use the original Darknet project or rather its Python wrappers (like this one? https://github.com/madhawav/YOLO3-4-Py I don't know, I never used it). This solution will, however, require streaming of video from the RPi to the PC, which might be a bottleneck.

Have a look at: https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/ https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/ http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html

One of the best methods (to my knowledge) will be using a Deep Neural Network. And one of the best among them is YOLO (YOLOv3 to be exact). It will detect and recognize objects almost regardless of the viewpoint.

Altohough DNNs generally require time consuming training, there are many out there that had already been trained. For example YOLO was trained on the COCO dataset that contains 80 common object categories and it is ready to use out of the box. If your robot is to recognize these objects, you're home. If, however, you your viewpoint is going to be drastically different or you want to recognize objects that are not in the COCO dataset, you will have to (re)train the network for your specific purposes.

YOLO will run on RPi but, naturally, it will not be as fast and as accurate as when run on the PC (if I am not wrong, due to memory requirements, on RPi you have to run a smaller version of YOLO, called YOLO-tiny, which is faster, but less accurate). On the PC you can run the full version of YOLO in real time. The latter is unfortunately not possible with the OpenCV DNN module implementation as it does not use the power of NVIDIA graphics card, but only CPU. Still, on a decent gaming laptop you can get about 5 frames per second at full HD resolution. Should you have a low voltage CPU, however, expect 1-3 fps. If you want to unleash the full power of YOLO you have to use the original Darknet project or rather its Python wrappers (like this one? https://github.com/madhawav/YOLO3-4-Py I don't know, I never used it). This solution will, however, require streaming of video from the RPi to the PC, which might be a bottleneck.

Have a look at: https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/ https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/ http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html

One of the best methods (to my knowledge) will be using a Deep Neural Network. And one of the best among them is YOLO (YOLOv3 to be exact). It will detect and recognize objects almost regardless of the viewpoint.

Altohough DNNs generally require time consuming training, there are many out there that had already been trained. For example YOLO was trained on the COCO dataset that contains 80 common object categories and it is ready to use out of the box. If your robot is to recognize these objects, you're home. If, however, your viewpoint is going to be drastically different or you want to recognize objects that are not in the COCO dataset, you will have to (re)train the network for your specific purposes.

YOLO will run on RPi but, naturally, it will not be as fast and as accurate as when run on the PC (if I am not wrong, due to memory requirements, on RPi you have to run a smaller version of YOLO, called YOLO-tiny, which is faster, but less accurate). On the PC you can run the full version of YOLO in real time. The latter is unfortunately not possible with the OpenCV DNN module implementation as it does not use the power of NVIDIA graphics card, but only CPU. Still, on a decent gaming laptop you can get about 5 frames per second at full HD resolution. Should you have a low voltage CPU, however, expect 1-3 fps. If you want to unleash the full power of YOLO you have to use the original Darknet project or rather its Python wrappers (like this one? https://github.com/madhawav/YOLO3-4-Py I don't know, I never used it). This solution will, however, require streaming of video from the RPi to the PC, which might be a bottleneck.

Have a look at: https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/ https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/ https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/

https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/

http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html

One of the best methods (to my knowledge) will be using a Deep Neural Network. And one of the best among them is YOLO (YOLOv3 to be exact). It will detect and recognize objects almost regardless of the viewpoint.

Altohough DNNs generally require time consuming training, there are many out there that had already been trained. For example YOLO was trained on the COCO dataset that contains 80 common object categories and it is ready to use out of the box. If your robot is to recognize these objects, you're home. If, however, your viewpoint is going to be drastically different or you want to recognize objects that are not in the COCO dataset, you will have to (re)train the network for your specific purposes.

YOLO will run on RPi but, naturally, it will not be as fast and as accurate as when run on the PC (if I am not wrong, due to memory requirements, on RPi you have to run a smaller version of YOLO, called YOLO-tiny, which is faster, but less accurate). On the PC you can run the full version of YOLO in real time. The latter is unfortunately not possible with the OpenCV DNN module implementation as it does not use the power of NVIDIA graphics card, but only CPU. Still, on a decent gaming laptop you can get about 5 frames per second at full HD resolution. Should you have a low voltage CPU, however, expect 1-3 fps. If you want to unleash the full power of YOLO you have to use the original Darknet project or rather its Python wrappers (like this one? https://github.com/madhawav/YOLO3-4-Py I don't know, I never used it). This solution will, however, require streaming of video from the RPi to the PC, which might be a bottleneck.

Have a look at: at:

https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/

https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/

http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html

One of the best methods (to my knowledge) will be using a Deep Neural Network. And one of the best among them is YOLO (YOLOv3 to be exact). It will detect and recognize objects almost regardless of the viewpoint.

Altohough DNNs generally require time consuming training, there are many out there that had already been trained. For example YOLO was trained on the COCO dataset that contains 80 common object categories and it is ready to use out of the box. If your robot is to recognize these objects, you're home. If, however, your viewpoint is going to be drastically different or you want to recognize objects that are not in the COCO dataset, you will have to (re)train the network for your specific purposes.

YOLO will run on RPi but, naturally, it will not be as fast and as accurate as when run on the PC (if I am not wrong, due to memory requirements, on RPi you have to run a smaller version of YOLO, called YOLO-tiny, which is faster, but less accurate). On the PC you can run the full version of YOLO in real time. The latter is unfortunately not possible with the OpenCV DNN module implementation as it does not use the power of NVIDIA graphics card, but only CPU. Still, on a decent gaming laptop you can get about 5 frames per second at full HD resolution. resolution just using the CPU which is the simplest and fastest way to go if you want to experiment with YOLO and OpenCV. Should you have a low voltage CPU, however, expect 1-3 fps. If you want to unleash the full power of YOLO you have to use the original Darknet project or rather its Python wrappers (like this one? https://github.com/madhawav/YOLO3-4-Py I don't know, I never used it). This solution will, however, require streaming of video from the RPi to the PC, which might be a bottleneck.

Have a look at:

https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/

https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/

http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html

One of the best methods (to my knowledge) will be using a Deep Neural Network. And one of the best among them is YOLO (YOLOv3 to be exact). It will detect and recognize objects almost regardless of the viewpoint.

Altohough DNNs generally require time consuming training, there are many out there that had already been trained. For example YOLO was trained on the COCO dataset that contains 80 common object categories and it is ready to use out of the box. If your robot is to recognize these objects, you're home. If, however, your viewpoint is going to be drastically different or you want to recognize objects that are not in the COCO dataset, you will have to (re)train the network for your specific purposes.

YOLO will run on RPi but, naturally, it will not be as fast and as accurate as when run on the PC (if I am not wrong, due to memory requirements, on RPi you have to run a smaller version of YOLO, called YOLO-tiny, which is faster, but less accurate). On the PC you can run the full version of YOLO in real time. The latter is unfortunately not possible with the OpenCV DNN module implementation as it does not use the power of NVIDIA graphics card, but only CPU. Still, on a decent gaming laptop you can get about 5 frames per second at full HD resolution just using the CPU which is the simplest and fastest way to go if you want to experiment with YOLO and OpenCV. Should you have a low voltage CPU, however, expect 1-3 fps. If you want to unleash the full power of YOLO you have to use the original Darknet project or rather its Python wrappers (like this one? https://github.com/madhawav/YOLO3-4-Py I don't know, I never used it). And, of course, you need a good graphics card like GTX 1080 or something. This solution will, however, require streaming of the video from the RPi to the PC, which might be a bottleneck.

Have a look at:

https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/

https://www.pyimagesearch.com/2019/03/25/building-a-raspberry-pi-security-camera-with-opencv/

http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html