GithubHelp home page GithubHelp logo

xiaohythu / pointcloud-based-row-detection-using-shellnet-and-pytorch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dung-han-lee/pointcloud-based-row-detection-using-shellnet-and-pytorch

0.0 0.0 0.0 10.85 MB

PyTorch implementation of ShellNet, which is used for pointcloud-based row detection. ROS integration for robots is available.

License: MIT License

Python 99.86% Shell 0.14%

pointcloud-based-row-detection-using-shellnet-and-pytorch's Introduction

Pointcloud-based Row Detection for Agriculture Robot

This repo contains python codes that detects traversible row for agriculture robots
using ShellNet. The model in this repo is a naive pytorch adoption of the authors'
tensorflow release
. Note that the very same pipeline could be used for generic
object detection, and semantic segmentation, while this work only concerns about
detecting a single row without row switching.

The purpose of this work is to enable autonomous, LIDAR-based in-row navigation for
agriculture robots. Specifcially, to address the occassions where GPS are not reliable
or not accurate enough. The training data were collected from a vineyard field using
Velodyne's VLP-16, which was mounted on a mobile agriculture robot.

Output sample

ShellNet

Proposed in 2019, ShellNet was designed to process pointcloud data directly. The
authors introduced a new method called shell convolution. Essentially, it obtains
sorted k nearest neighbor, divides them into D cells, selects the maximum feature
from each cell, and finally combines the features from each cell with a traditio-
nal 1D convolution. The network is then constructed with multi-layers of shellconv
layers, using an encoder-decoder architecture like UNet.

Run with Visualization

download data using link in ./data/README.md and put them under /data

     cd evaluation && python3 evaluate.py --model ../weight/shellnet01/91.pth

Run using Ros

change subsriber channel as needed

     cd ros && python2.7 row_decection 

Input and Target

The model was trained with 150 sets of pointcloud data. The model takes as input
an downsampled pointcloud tensor (1024 x 3), and a label tensor (1024,) with each
element represents one of the N class in [0, N)

Success Example

Limitations

The network was mostly trained on data facing forward, with vehicle standing in the center.
The behavior when the vehicle has different orientation is poorer. It could make more
sense to detect vineyard instead of rows.

Also, the KNN implementation of the model is naive, which could be optimized. In addition,
the sampling method in this work is uniform sampling, but some more advanced sampling in
the author's work could also be implemented.

License

MIT License

pointcloud-based-row-detection-using-shellnet-and-pytorch's People

Contributors

dung-han-lee avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.