darknetlib

Darknet 的 C API 库
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 图形/图像处理
软件类型 开源软件
地区 国产
投 递 者 明阳旭
操作系统 Windows
开源组织
适用人群 未知
 软件概览

darknetlib 是 Darknet 的 C API 库,简单地封装了 Darknet 的一些接口,主要用于为 LC-Finder 项目提供图像识别功能。

特性

  • 支持简单的异常处理
  • 重新定义了接口,接口命名风格参考自 LeveDB/c.h
  • 适合作为动态库来使用

示例代码

#include <stdio.h>
#include <string.h>
#include <time.h>

#include "../include/darknet.h"

void print_detections(const darknet_detections_t *dets)
{
	size_t i, j;
	darknet_detection_t *det;

	printf("detections:\n");
	for (i = 0; i < dets->length; ++i) {
		det = &dets->list[i];
		printf("[%zu] best name: %s, box: (%g, %g, %g, %g)\n", i,
		       det->best_name, det->box.x, det->box.y, det->box.w,
		       det->box.h);
		printf("names: \n");
		for (j = 0; j < det->names_count; ++j) {
			printf("%s, %g%%\n", det->names[j],
			       det->prob[j] * 100.0f);
		}
	}
}

int detect(void)
{
	clock_t c;
	int code = 0;

	// initialize variables so that darknet can check if they need to be
	// destroyed after catching exception
	darknet_config_t *cfg = NULL;
	darknet_dataconfig_t *datacfg = NULL;
	darknet_detections_t dets = { 0 };
	darknet_detector_t *d = NULL;
	darknet_network_t *net = NULL;

	c = clock();
	darknet_try
	{
		cfg = darknet_config_load("cfg/yolov3.cfg");
		datacfg = darknet_dataconfig_load("cfg/coco.data");

		net = darknet_network_create(cfg);
		darknet_network_load_weights(net, "yolov3.weights");
		d = darknet_detector_create(net, datacfg);

		printf("\ntime: %.2fs\n\n",
		       (clock() - c) * 1.0f / CLOCKS_PER_SEC);
		c = clock();
		darknet_detector_test(d, "img/dog.jpg", &dets);
		printf("\ntime: %.2fs\n\n",
		       (clock() - c) * 1.0f / CLOCKS_PER_SEC);
	}
	darknet_catch(err)
	{
		printf("error: %s\n", darknet_get_last_error_string());
		code = -1;
	}
	darknet_etry;

	print_detections(&dets);

	darknet_detections_destroy(&dets);
	darknet_config_destroy(cfg);
	darknet_dataconfig_destroy(datacfg);
	darknet_detector_destroy(d);
	darknet_network_destroy(net);
	return code;
}
int main(int argc, char *argv[])
{
	return detect();
}

运行结果:

 相关资料
  • 问题内容: 我将eclipse用于Google Android开发。 我创建了一个库项目(在Android设置中),其中包括一个外部jar文件(参考库)。该库项目在另一个项目(将使用该库项目的实际项目)中引用。这是通过在Android设置下添加项目来完成的。 源代码可以编译,但是如果我想在设备上执行它,则将获取NoClassDefFoundError,该类 位于库项目中包含的jar文件中 。 编辑

  • 本文向大家介绍Python中的XML库4Suite Server的介绍,包括了Python中的XML库4Suite Server的介绍的使用技巧和注意事项,需要的朋友参考一下 在继续阅读本文之前,您务必要对我们在本专栏中将要讨论的一些技术有所了解。我们要使用的技术包括:可扩展的样式表语言转换(Extensible Stylesheet Language Transformations,XSLT)、

  • 本文向大家介绍详解Django中的form库的使用,包括了详解Django中的form库的使用的使用技巧和注意事项,需要的朋友参考一下 Django带有一个form库,称为django.forms,这个库可以处理我们本章所提到的包括HTML表单显示以及验证。 接下来我们来深入了解一下form库,并使用她来重写contact表单应用。 Django的newforms库 在Django社区上会经常看到

  • 我现在正在尝试让它运行在我的Android平板电脑使用处理Android模式。但是我得到了很多编译器错误说“找不到符号”。 我正在使用我使用https://github.com/Processing/processing-library-template创建的一些处理库。 这些库本身并不实际访问系统资源或调用处理库。或Java.util以外的任何其他外部Java。他们只是在操纵数据结构。 更新:进

  • 比如我们在开发一个后端项目, 里面使用mysql数据库, 请问常规做项目的情况下对数据库的表的初始化操作,里面的字段是在项目第一次启动之前就预设好了,还是指的是,在第一次启动项目的时候,看到表不存在,然后再进行创建表呢?

  • 本文向大家介绍Android的Glide库加载图片的用法及其与Picasso的对比,包括了Android的Glide库加载图片的用法及其与Picasso的对比的使用技巧和注意事项,需要的朋友参考一下 Glide Glide是一个高效、开源、 Android设备上的媒体管理框架,它遵循BSD、MIT以及Apache 2.0协议发布。Glide具有获取、解码和展示视频剧照、图片、动画等功能,它还有灵活

  • 问题内容: 我使用 动画矢量 从 支持库23.2.0 ,就像这样: 我正在尝试设置动画“ pathData ”(将行彼此变形)。我的代码如下所示。 drawable / ic_done.xml: drawable / ic_done_animated.xml: 动画师/tick_path_animation.xml: Java代码: 它在 API级别21的 较新设备上运行良好,但在 API级别16

  • 问题内容: 谁能推荐我一个Java库来允许我通过URL进行XPath查询?我尝试JAXP失败。 谢谢。 问题答案: jsoup,Java HTML Parser非常类似于jQuery语法方式。