1

我已经安装了Darknet,我可以从命令行运行它来执行各种任务,例如:

./darknet classifier train cfg/cifar.data cfg/cifar_small.cfg

这将使用中指定的网络架构训练分类器 CIFAR 数据cfg/cifar_small.cfg

好的,但是如何在我自己的 C 项目中使用 Darknet?例如,我想在我自己的代码中调用load_network()、、、和声明。train_network()save_weights()network_predict()darknet.h

我可以为此使用 Darknet 作为静态库或共享库吗?我在网站上没有看到有关如何执行此操作的任何说明。

到目前为止,我唯一的方法是以示例文件夹中示例的样式创建自己的源文件,并修改darknet.h,darknet.cMakefile给自己一个入口点,我可以从命令行调用类似于我上面发布的分类器示例。但这并不理想,因为我想拥有自己的项目结构。

4

2 回答 2

3

对于那些对细节感兴趣并使用 CMakeLists.txt 的人,这里是亮点,假设 Darkned 已经编译:

# Path to Darknet project folder.
set(DARKNET_PATH /home/<custom_path_to>/darknet)

# Give a custom name to shared library which is provided by Darkned when 
# the one compiled.
set(DARKNET_LIB_NAME libdarknet)

# Link Darknet library' include folder.
include_directories(${DARKNET_PATH}/include)

# Define Darknet library' shared library.
add_library(${DARKNET_LIB_NAME} SHARED IMPORTED)

# Set a path to Darknet library' shared library
set_property(
        TARGET ${DARKNET_LIB_NAME}
        PROPERTY IMPORTED_LOCATION 
        "${DARKNET_PATH}/libdarknet.so"
)

# Link all libraries together.
target_link_libraries(${PROJ_NAME} ${DARKNET_LIB_NAME})

下一个链接提供了使用 Darknet 库的项目:

暗网应用

于 2019-02-19T13:31:53.037 回答
2

好的,Makefile 似乎支持生成共享库和静态库,并且这些是在运行安装时默认生成的:

git clone https://github.com/pjreddie/darknet.git
cd darknet
make

之后libdarknet.a出现libdarknet.so在我的暗网目录中。

所以我可以#include darknet.h在我自己的项目中,然后通过以下方式编译:

gcc -Wall -o myprog main.c -ldarknet
于 2017-12-23T02:54:04.580 回答