Skip to content
This repository has been archived by the owner on Aug 25, 2024. It is now read-only.

plugin: model: darknet: Create YOLO Model #10

Open
johnandersen777 opened this issue Mar 10, 2019 · 5 comments
Open

plugin: model: darknet: Create YOLO Model #10

johnandersen777 opened this issue Mar 10, 2019 · 5 comments
Labels
enhancement New feature or request kind/ml Issues partaining to machine learning p3 Average Priority tM Esitmated Time To Complete: Medium
Milestone

Comments

@johnandersen777
Copy link

johnandersen777 commented Mar 10, 2019

DFFML is hoping to participate in Google Summer of Code (GSoC) under the Python Software Foundation umbrella. You can read all about what this means at http://python-gsoc.org/. This issue, and any others tagged gsoc and project are not generally available bugs, but related to project ideas for GSoC.

Project Idea: YOLO/darknet Model.

Project description:
DFFML's initial release included a Model for Tensorflows DNN estimator.

YOLOv1,2,3 are awesome, it would be possible to wrap the YOLO work in a DFFML model and then it could be used within the DFFML API.

This involves filling out the Model abstract base class, just as the Tensorflow DNN does (use this as an example, or probably more as an education because this is likely to be rather different as we're working with images).

Tensorflow DNN: https://github.com/intel/dffml/blob/master/model/tensorflow/dffml_model_tensorflow/model/dnn.py

Model ABC:

async def train(self, sources: Sources, features: Features,
classifications: List[Any], steps: int, num_epochs: int):
'''
Train using repos as the data to learn from.
'''
raise NotImplementedError()
@abc.abstractmethod
async def accuracy(self, sources: Sources, features: Features,
classifications: List[Any]) -> Accuracy:
'''
Evaluates the accuracy of our model after training using the input repos
as test data.
'''
raise NotImplementedError()
@abc.abstractmethod
async def predict(self, repos: AsyncIterator[Repo], features: Features,
classifications: List[Any]) -> \
AsyncIterator[Tuple[Repo, Any, float]]:
'''
Uses trained data to make a prediction about the quality of a repo.
'''

Skills: Python, git
Difficulty level: Hard

Related Readings/Links:

Demo video
YOLOv3

Potential mentors: @pdxjohnny

Getting Started: Start by copying the directory model/tensorflow to model/darknet and re-naming everything. Then move dnn.py to darknet.py (still re-naming everything) and make sure all the tests in the model/darknet directory still pass. Then you'll need to gut the DNN class and start replacing it withsubprocess.call or check_output or whatever which will call out the the darknet binary which you compiled from Joseph's darknet repo for training, accuracy, and prediction (which is object detection in this case).

What we want to see in your application: Describe how you intend to solve the problem, and give us some "stretch goals", perhaps use the Python C bindings instead of calling subprocess out to the darknet binary. Don't forget to include some time for building appropriate tests.

@johnandersen777 johnandersen777 added enhancement New feature or request gsoc Google Summer of Code related project Issues which will take a while to complete customer labels Mar 10, 2019
@johnandersen777 johnandersen777 changed the title plugin: model: darknet: GSoC Project Idea plugin: model: darknet: Create YOLO Model Mar 10, 2019
@hsfzxjy
Copy link

hsfzxjy commented Mar 30, 2019

@pdxjohnny Hi. I'm Jingyi Xie from China, an undergraduate from University of Science and Technology of China. I've used Python for many years to accomplish various jobs, including some deep learning tasks. I would like to participate in GSOC and contribute to this challenging issue. Now I'm wondering what should I do for my first commit? It'll be appreciated if you could give some advice. Thanks!

@johnandersen777
Copy link
Author

Hi @hsfzxjy ! Thanks for your interest in DFFML! I'd say the best place for you to start is with the new model tutorial.

You could implement a Model class using an ML library you're familiar with, or do it without a library if you'd rather.

@hsfzxjy
Copy link

hsfzxjy commented Mar 31, 2019

OK. I will try to get it ready in one day or two.

@hsfzxjy
Copy link

hsfzxjy commented Apr 1, 2019

@pdxjohnny I've created a simple demo to classify IRIS dataset using pytorch. Here is the PR: #42

@hsfzxjy
Copy link

hsfzxjy commented Apr 4, 2019

Hi @pdxjohnny . I've just finished my GSOC application and sent it to your gmail. Would you please have a look and give some advice? Thanks!

@johnandersen777 johnandersen777 added kind/ml Issues partaining to machine learning p3 Average Priority tM Esitmated Time To Complete: Medium and removed gsoc Google Summer of Code related project Issues which will take a while to complete labels Feb 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request kind/ml Issues partaining to machine learning p3 Average Priority tM Esitmated Time To Complete: Medium
Projects
None yet
Development

No branches or pull requests

2 participants