mlearning: add Darknet (Open Source Neural Networks in C)

Darknet is an open source neural network framework written
in C and CUDA. It is fast, easy to install, and supports
CPU and GPU computation.

You Only Look Once (YOLO) is a state-of-the-art,
real-time object detection system

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
This commit is contained in:
Alin Jerpelea 2022-04-12 13:42:55 +00:00 committed by Xiang Xiao
parent 8fd4b6105b
commit b065d72194
3 changed files with 135 additions and 0 deletions

19
mlearning/darknet/Kconfig Normal file
View File

@ -0,0 +1,19 @@
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config DARKNET_YOLO
bool "YOLO: Real-Time Object Detection"
default n
---help---
You only look once (YOLO) is a state-of-the-art,
real-time object detection system
if DARKNET_YOLO
config DARKNET_YOLO_VER
string "DARKNET YOLO version"
default "master"
endif # DARKNET_YOLO

View File

@ -0,0 +1,26 @@
############################################################################
# apps/mlearning/darknet/Make.defs
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
ifeq ($(CONFIG_DARKNET_YOLO),y)
CONFIGURED_APPS += $(APPDIR)/mlearning/darknet
CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(APPDIR)/mlearning/darknet/darknet/include/}
CXXFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(APPDIR)/mlearning/darknet/darknet/include/}
endif

View File

@ -0,0 +1,90 @@
############################################################################
# apps/mlearning/darknet/Makefile
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
include $(APPDIR)/Make.defs
ifeq ($(CONFIG_DARKNET_YOLO),y)
SRC = darknet/src
CSRCS +=$(SRC)/gemm.c
CSRCS +=$(SRC)/utils.c
CSRCS +=$(SRC)/cuda.c
CSRCS +=$(SRC)/deconvolutional_layer.c
CSRCS +=$(SRC)/convolutional_layer.c
CSRCS +=$(SRC)/list.c
CSRCS +=$(SRC)/image.c
CSRCS +=$(SRC)/activations.c
CSRCS +=$(SRC)/im2col.c
CSRCS +=$(SRC)/col2im.c
CSRCS +=$(SRC)/blas.c
CSRCS +=$(SRC)/crop_layer.c
CSRCS +=$(SRC)/dropout_layer.c
CSRCS +=$(SRC)/maxpool_layer.c
CSRCS +=$(SRC)/softmax_layer.c
CSRCS +=$(SRC)/data.c
CSRCS +=$(SRC)/matrix.c
CSRCS +=$(SRC)/network.c
CSRCS +=$(SRC)/connected_layer.c
CSRCS +=$(SRC)/cost_layer.c
CSRCS +=$(SRC)/parser.c
CSRCS +=$(SRC)/option_list.c
CSRCS +=$(SRC)/detection_layer.c
CSRCS +=$(SRC)/route_layer.c
CSRCS +=$(SRC)/upsample_layer.c
CSRCS +=$(SRC)/box.c
CSRCS +=$(SRC)/normalization_layer.c
CSRCS +=$(SRC)/avgpool_layer.c
CSRCS +=$(SRC)/layer.c
CSRCS +=$(SRC)/local_layer.c
CSRCS +=$(SRC)/shortcut_layer.c
CSRCS +=$(SRC)/logistic_layer.c
CSRCS +=$(SRC)/activation_layer.c
CSRCS +=$(SRC)/rnn_layer.c
CSRCS +=$(SRC)/gru_layer.c
CSRCS +=$(SRC)/crnn_layer.c
CSRCS +=$(SRC)/demo.c
CSRCS +=$(SRC)/batchnorm_layer.c
CSRCS +=$(SRC)/region_layer.c
CSRCS +=$(SRC)/reorg_layer.c
CSRCS +=$(SRC)/tree.c
CSRCS +=$(SRC)/lstm_layer.c
CSRCS +=$(SRC)/l2norm_layer.c
CSRCS +=$(SRC)/yolo_layer.c
CSRCS +=$(SRC)/iseg_layer.c
CFLAGS += -Wno-shadow -Wno-strict-prototypes -Wno-unknown-pragmas
MODULE = $(CONFIG_DARKNET_YOLO)
darknet.zip:
$(Q) curl -L https://github.com/pjreddie/darknet/archive/refs/heads/$(DARKNET_YOLO_VER).zip -o darknet.zip
$(Q) unzip -o darknet.zip
$(Q) mv darknet-$(DARKNET_YOLO_VER) darknet
context:: darknet.zip
distclean::
$(call DELDIR, darknet)
$(call DELFILE, darknet.zip)
endif
include $(APPDIR)/Application.mk