rasberry_perception

General purpose ROS package for using deep learning/object detection frameworks on robots

https://github.com/raymondcm/rasberry_perception

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 6 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

deep-learning detection object-detection perception ros ros-melodic
Last synced: 6 months ago · JSON representation ·

Repository

General purpose ROS package for using deep learning/object detection frameworks on robots

Basic Info
  • Host: GitHub
  • Owner: RaymondCM
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 3.44 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 8
  • Open Issues: 1
  • Releases: 0
Topics
deep-learning detection object-detection perception ros ros-melodic
Created over 6 years ago · Last pushed over 3 years ago
Metadata Files
Readme Citation

README.md

rasberry_perception

strawberry_localisation

The rasberry_perception package aims to interleave ROS and deep learning frameworks for perception. If using any of the models in research please contact Raymond Kirk to obtain the relevant citation and ensure no conflict of interest.

Quick start

bash roslaunch rasberry_perception detector.launch backend:="detectron2" password:="obtain_from_raymond" image_ns:="/your_camera/colour" depth_ns:="/your_camera/depth" score:="0.5"

Installation

Cuda 10.2 must be installed locally to run gpu based backends.

bash cd catkin_ws/src git clone https://github.com/RaymondKirk/rasberry_perception catkin build rasberry_perception

Detection Backends

Modular detection backends are available in rasberry_perception enabling users to utilise deep learning frameworks/non-ros methods to detect objects.

You can try to launch both the backend and detector with the command below:

```bash

Run together (will download the backend from docker_hub if it exists)

roslaunch rasberryperception detector.launch colourns:="" depthns:="" score:="" showvis:="" backend:="" backend_arg1:=""

Or run separately! (Will use a local installation of the backend if available)

rosrun rasberryperception detectionserver.py backend:="" backendarg1:="" roslaunch rasberryperception detector.launch colourns:='' depthns:='' score:='' ```

Adding a new detection backend

Adding custom backends such as TensorFlow, PyTorch, Detectron, Onnx etc. to rasberry_perception is easy. See interfaces for examples.

A simple example given in four steps, register the name in the detection registry with the class decorator (1), inherit from the base (2), implement the service call logic (3) and finally add to the __all__ definition here (4).

```python import rosnumpy from rasberryperception.interfaces.default import BaseDetectionServer from rasberry_perception.msg import Detections, ServiceStatus

@DETECTIONREGISTRY.registerdetectionbackend("CustomBackendName") # (1) class CustomVisionBackend(BaseDetectionServer): # (2) # These args are passed from ros parameters when running the backend def _init(self, customarg1, customarg2, defaultarg1="hello"): # Do your imports here i.e import imagetoresultsfunction # Do initialisation code here self.busy = False BaseDetectionServer.init__(self) # Spins the server and waits for requests!

def get_detector_results(self, request):  # (3)
    if self.busy:  # Example of other status responses
        return GetDetectorResultsResponse(status=ServiceStatus(BUSY=True))
    # Populate a detections message
    detections = Detections()
    # i.e. detections = image_to_results_function(image=ros_numpy.numpify(request.image))
    return GetDetectorResultsResponse(status=ServiceStatus(OKAY=True), results=detections)

```

When launching the detection server via rosrun or roslaunch you can pass in arguments to your custom backend as you would usually. The node will fail if you do not pass any non-default arguments such as custom_arg1 and custom_arg2 in the example.

bash rosrun rasberry_perception detection_server.py backend:="CustomBackendName" _custom_arg1:="a1" _custom_arg2:="a2" _default_arg1"="world"

Owner

  • Name: Raymond
  • Login: RaymondCM
  • Kind: user
  • Location: Lincoln, UK
  • Company: @FruitCast

Dr. Raymond Martin. Founder, FruitCast Ltd.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Kirk"
  given-names: "Raymond"
  orcid: "https://orcid.org/0000-0001-5118-9358"
title: "rasberry_perception"
version: 1.0.0
date-released: 2020-01-01
url: "https://github.com/RaymondKirk/rasberry_perception"

GitHub Events

Total
Last Year

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 180
  • Total Committers: 6
  • Avg Commits per committer: 30.0
  • Development Distribution Score (DDS): 0.044
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
RaymondKirk r****l@l****k 172
Rob r****w@s****m 2
saulgoldsaga 7****a 2
Nikolaus Wagner e****0@s****t 2
Nikolaus Wagner n****r@p****m 1
Nikolaus Wagner n****r@o****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 7
  • Total pull requests: 17
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 11 days
  • Total issue authors: 2
  • Total pull request authors: 6
  • Average comments per issue: 0.86
  • Average comments per pull request: 0.94
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • RaymondCM (6)
  • rjwb1 (1)
Pull Request Authors
  • RaymondCM (6)
  • rjwb1 (4)
  • saulgoldsaga (3)
  • nikolauswagner (2)
  • sariahmghames (1)
  • arsh09 (1)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels
enhancement (1)

Dependencies

requirements.txt pypi
  • numpy >=1.13.3
  • opencv-python >=3.2.0,<=4.2.0.32
  • pathlib >=1.0.1
docker/base_gpu/Dockerfile docker
  • nvidia/cuda 10.2-cudnn7-devel-ubuntu18.04 build
docker/detectron2/Dockerfile docker
  • rasberry_perception base_gpu build
docker/fruitcast/Dockerfile docker
  • rasberry_perception base_gpu build