Skip to content

Instantly share code, notes, and snippets.

@amstan
Last active February 5, 2020 06:18
Show Gist options
  • Save amstan/da10ea2718b0726a1168 to your computer and use it in GitHub Desktop.
Save amstan/da10ea2718b0726a1168 to your computer and use it in GitHub Desktop.
Computer Vision Projects

Computer Vision Projects

Alexandru Stan

Mushrooms

One of my first Projects at Harvest Robotics was automated harvesting of mushrooms. With a top down picture of a mushroom bed, the software would have to locate(and size) all the mushrooms, select a few of them ready for harvesting then direct an industrial robot(Adept s650).

The location was done by taking advantage of the fact that the mushrooms were brighter in the middle and that the soil was in contrast with it. Once centers were found, a ray-tracing like algorithm found points on the wall. Then i would fit those points to a circle resulting in the center and radius of each mushroom. I mainly used simplecv and numpy for this part.

Location

The selection was done on the basis of size and agglomeration. I used a numpy to speed up distances from all to all mushrooms.

Selected

Once the set of mushrooms to harvest was found I would send them to the robot using a trivial tcp protocol.

Adept s650

Tulip bulbs

Tulip Bulbs

The project scope of this one was to plant tulip bulbs in soil. The software would have to determine bulb position and orientation from the incoming conveyor. I used 6 cameras for this purpose.

6 Cameras

From each of these perspectives the software would have to determine the centroid of the bulb and possibly the tip. Given the 6 projections of those 2 points I was able to triangulate the position of them in 3d space. Resulting in the position(triangulated centroids) and orientation(centroid-tip).

Triangulation

I was also able to test this whole setup by visualizing the scene in blender.

Blender testing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment