Ran through the nice working jupyter notebook https://colab.research.google.com/drive/16jcaJoc6bCFAQ96jDe2HwtXj7BMD_-m5#scrollTo=OpLg_MAQGPUT and produced this video
It is the Mask R-CNN algorithm from matterport, ported over by facebook labs, and better maintained. It was forked and fixed up for tourists.
We can train it on the robot eye view camera, maybe train it on google images of copyleft chickens and eggs.
I think this looks great, for endowing the robot with a basic “recognition” of the features of classes it’s been exposed to.
https://github.com/facebookresearch/detectron2/tree/master/projects
https://detectron2.readthedocs.io/tutorials/extend.html
Seems I was oblivious to Facebook AI but of course they hire very smart people. I’d sell my soul for $240k/yr too. It is super nice to get a working Jupyter Notebook. Thank you. https://ai.facebook.com/blog/-detectron2-a-pytorch-based-modular-object-detection-library-/
Here are the other FB project using detectron2, copy pasted:
Projects by Facebook
Note that these are research projects, and therefore may not have the same level of support or stability as detectron2.
- DensePose: Dense Human Pose Estimation In The Wild
- Scale-Aware Trident Networks for Object Detection
- TensorMask: A Foundation for Dense Object Segmentation
- Mesh R-CNN
- PointRend: Image Segmentation as Rendering
- Momentum Contrast for Unsupervised Visual Representation Learning
- DETR: End-to-End Object Detection with Transformers
External Projects
External projects in the community that use detectron2:
- AdelaiDet, a detection toolbox including FCOS, BlendMask, etc.
- CenterMask
- Res2Net backbones
- VoVNet backbones
- FsDet, Few-Shot Object Detection.
Also, more generally, https://ai.facebook.com/research/#recent-projects
Errors encountered while attempting to install https://detectron2.readthedocs.io/tutorials/getting_started.html
File "demo.py", line 8, in import tqdm ImportError: No module named tqdm pip3 uninstall tqdm pip3 install tqdm
Ok so…
python3 -m pip install -e . python3 demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --webcam --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl
Requires pyyaml>=5.1
ok
pip install pyyaml==5.1 Successfully built pyyaml Installing collected packages: pyyaml Attempting uninstall: pyyaml Found existing installation: PyYAML 3.12 ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. pip3 install --ignore-installed PyYAML Successfully installed PyYAML-5.1 Next error... ModuleNotFoundError: No module named 'torchvision' pip install torchvision Next error... AssertionError: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx ok python3 demo.py --config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml --webcam --opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl MODEL.DEVICE cpu [08/17 20:53:11 detectron2]: Arguments: Namespace(confidence_threshold=0.5, config_file='../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml', input=None, opts=['MODEL.WEIGHTS', 'detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl', 'MODEL.DEVICE', 'cpu'], output=None, video_input=None, webcam=True) [08/17 20:53:12 fvcore.common.checkpoint]: Loading checkpoint from detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl [08/17 20:53:12 fvcore.common.file_io]: Downloading https://dl.fbaipublicfiles.com/detectron2/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl … [08/17 20:53:12 fvcore.common.download]: Downloading from https://dl.fbaipublicfiles.com/detectron2/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl … model_final_f10217.pkl: 178MB [01:26, 2.05MB/s] [08/17 20:54:39 fvcore.common.download]: Successfully downloaded /root/.torch/fvcore_cache/detectron2/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl. 177841981 bytes. [08/17 20:54:39 fvcore.common.file_io]: URL https://dl.fbaipublicfiles.com/detectron2/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl cached in /root/.torch/fvcore_cache/detectron2/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl [08/17 20:54:39 fvcore.common.checkpoint]: Reading a file from 'Detectron2 Model Zoo' 0it [00:00, ?it/s]/opt/detectron2/detectron2/layers/wrappers.py:226: UserWarning: This overload of nonzero is deprecated: nonzero() Consider using one of the following signatures instead: nonzero(*, bool as_tuple) (Triggered internally at /pytorch/torch/csrc/utils/python_arg_parser.cpp:766.) return x.nonzero().unbind(1) 0it [00:06, ?it/s] Traceback (most recent call last): File "demo.py", line 118, in cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL) cv2.error: OpenCV(4.3.0) /io/opencv/modules/highgui/src/window.cpp:634: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow' Ok...pip install opencv-python
Requirement already satisfied: opencv-python in /usr/local/lib/python3.6/dist-packages (4.2.0.34) Looks like 4.3.0 vs 4.2.0.34 kinda thingsudo apt-get install libopencv-*
nope... /opt/detectron2/detectron2/layers/wrappers.py:226: UserWarning: This overload of nonzero is deprecated: nonzero() Consider using one of the following signatures instead: nonzero(*, bool as_tuple) (Triggered internally at /pytorch/torch/csrc/utils/python_arg_parser.cpp:766.) return x.nonzero().unbind(1) def nonzero_tuple(x): """ A 'as_tuple=True' version of torch.nonzero to support torchscript. because of https://github.com/pytorch/pytorch/issues/38718 """ if x.dim() == 0: return x.unsqueeze(0).nonzero().unbind(1) return x.nonzero(as_tuple=True).unbind(1) AttributeError: 'tuple' object has no attribute 'unbind' https://github.com/pytorch/pytorch/issues/38718 FFS. Why does nothing ever fucking work ? pytorch 1.6: "putting 1.6.0 milestone for now; this isn't the worst, but it's a pretty bad user experience." Yeah no shit. let's try... return x.nonzero(as_tuple=False).unbind(1) Ok next error same /opt/detectron2/detectron2/modeling/roi_heads/fast_rcnn.py:111 Ok... back to this error (after adding as_tuple=False twice) File "demo.py", line 118, in cv2.namedWindow(WINDOW_NAME, cv2.WINDOW_NORMAL) cv2.error: OpenCV(4.3.0) /io/opencv/modules/highgui/src/window.cpp:634: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'
Decided to check if maybe this is a conda vs pip thing. Like maybe I just need to install the conda version instead?
But it looks like a GTK+ 2.x isn’t installed. Seems I installed it using pip, i.e. pip install opencv-contrib-python
and that isn’t built with gtk+2.x. I can also use qt as the graphical interface.
“GTK supposedly uses more memory because GTK provides more functionality. Qt does less and uses less memory. If that is your logic, then you should also look at Aura and the many other user interface libraries providing less functionality.” (link )
https://stackoverflow.com/questions/14655969/opencv-error-the-function-is-not-implemented
https://askubuntu.com/questions/913241/error-in-executing-opencv-in-ubuntu
So let’s make a whole new Chapter, because we’re installing OpenCV again! (Why? Because I want to try run the detectron2 demo.py file.)
pip3 uninstall opencv-python
pip3 uninstall opencv-contrib-python
(or sudo apt-get remove ___)
and afterwards build the opencv package from source code from github.
git clone https://github.com/opencv/opencv.git
cd ~/opencv
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..
make
sudo make install
ok… pls…
python3 demo.py –config-file ../configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml –webcam –opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl MODEL.DEVICE cpu
sweet jaysus finally.
Here’s an image of the network from a medium article on RCNN: https://medium.com/@hirotoschwert/digging-into-detectron-2-47b2e794fabd